/*!
* Copyright (c) 2009 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;
        }

    };

    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;
            }),

            hasClass: function(el, className) {
                return RegExp('(?:^|\\s)' + className + '(?=\\s|$)').test(el.className);
            },

            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(/\b./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
                };
                return function(text, style, node) {
                    if (ignore[style.get('display')]) return text;
                    if (!node.previousSibling) text = text.replace(/^\s+/, '');
                    if (!node.nextSibling) text = text.replace(/\s+$/, '');
                    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');

            function isContainerReady(el) {
                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 = 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,
				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 - 1] -= k;
                    }
                    width += jumps[++j] = ~ ~(glyph.w || this.w) + letterSpacing + (wordSeparators[chr] ? wordSpacing : 0);
                    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) {
                        if (node.contains) return node.contains(anotherNode);
                        return node.compareDocumentPosition(anotherNode) & 16;
                    }

                    function onOverOut(e) {
                        var related = e.relatedTarget;
                        if (!related || contains(this, related)) return;
                        trigger(this);
                    }

                    function onEnterLeave(e) {
                        trigger(this);
                    }

                    function trigger(el) {
                        // 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() {
                            api.replace(el, sharedStorage.get(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);
                        }
                    };

                }

                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) {
                        el.attachEvent('on' + type, function() {
                            return listener.call(el, window.event);
                        });
                    }
                }

                function attach(el, options) {
                    var storage = sharedStorage.get(el);
                    if (storage.options) return 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 = {}, args, key;
                    for (var i = 0, l = arguments.length; args = arguments[i], i < l; ++i) {
                        for (key in args) {
                            if (hasOwnProperty(args, key)) merged[key] = args[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 replaceElement(el, options) {
                    var style = CSS.getStyle(attach(el, options)).extend(options);
                    var font = getFont(el, style), node, type, next, anchor, text;
                    if (!font) return;
                    for (node = el.firstChild; node; node = next) {
                        type = node.nodeType;
                        next = node.nextSibling;
                        if (type == 3) {
                            // 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) {
                            el.replaceChild(process(font,
					CSS.whiteSpace(anchor.data, style, anchor),
					style, options, node, el), anchor);
                            anchor = null;
                        }
                        if (type == 1 && node.firstChild) {
                            if (CSS.hasClass(node, 'cufon')) {
                                engines[options.engine](font, null, style, options, node, el);
                            }
                            else arguments.callee(node, options);
                        }
                    }
                }

                var HAS_BROKEN_REGEXP = ' '.split(/\s+/).length == 0;

                var sharedStorage = new Storage();
                var hoverHandler = new HoverHandler();
                var replaceHistory = new ReplaceHistory();
                var initialized = false;

                var engines = {}, fonts = {}, defaultOptions = {
                    autoDetect: false,
                    engine: null,
                    //fontScale: 1,
                    //fontScaling: false,
                    forceHitArea: false,
                    hover: false,
                    hoverables: {
                        a: true
                    },
                    printable: true,
                    //rotation: 0,
                    //selectable: false,
                    selector: (
				window.Sizzle
			|| (window.jQuery && function(query) { return jQuery(query); }) // avoid noConflict issues
			|| (window.dojo && dojo.query)
			|| (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
                    textShadow: 'none'
                };

                var separators = {
                    words: /[^\S\u00a0]+/,
                    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.textShadow == 'string')
                        options.textShadow = CSS.textShadow(options.textShadow);
                    if (typeof options.color == 'string' && /^-/.test(options.color))
                        options.textGradient = CSS.gradient(options.color);
                    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('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-canvas{text-indent:0;}' +
		'@media screen,projection{' +
			'.cufon-canvas{display:inline;display:inline-block;position:relative;vertical-align:middle;' +
			(HAS_BROKEN_LINEHEIGHT
				? ''
				: 'font-size:1px;line-height:1px;') +
			'}.cufon-canvas .cufon-alt{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}' +
			(HAS_INLINE_BLOCK
				? '.cufon-canvas canvas{position:relative;}'
				: '.cufon-canvas canvas{position:absolute;}') +
		'}' +
		'@media print{' +
			'.cufon-canvas{padding:0;}' +
			'.cufon-canvas canvas{display:none;}' +
			'.cufon-canvas .cufon-alt{display:inline;}' +
		'}'
	).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.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('span');
                        wrapper.className = 'cufon cufon-canvas';
                        wrapper.alt = text;

                        canvas = document.createElement('canvas');
                        wrapper.appendChild(canvas);

                        if (options.printable) {
                            var print = document.createElement('span');
                            print.className = 'cufon-alt';
                            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.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">' +
		'.cufon-vml-canvas{text-indent:0;}' +
		'@media screen{' +
			'cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}' +
			'.cufon-vml-canvas{position:absolute;text-align:left;}' +
			'.cufon-vml{display:inline-block;position:relative;vertical-align:' +
			(HAS_BROKEN_LINEHEIGHT
				? 'middle'
				: 'text-bottom') +
			';}' +
			'.cufon-vml .cufon-alt{position:absolute;left:-10000in;font-size:1px;}' +
			'a .cufon-vml{cursor:pointer}' + // ignore !important here
		'}' +
		'@media print{' +
			'.cufon-vml *{display:none;}' +
			'.cufon-vml .cufon-alt{display:inline;}' +
		'}' +
	'</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 (value === '0') return 0;
                    if (/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 = 'sigma';
                        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('span');
                        wrapper.className = 'cufon cufon-vml';
                        wrapper.alt = text;

                        canvas = document.createElement('span');
                        canvas.className = 'cufon-vml-canvas';
                        wrapper.appendChild(canvas);

                        if (options.printable) {
                            var print = document.createElement('span');
                            print.className = 'cufon-alt';
                            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;

                };

            })());
/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright © 1988, 1990, 1993, 2002 Adobe Systems Incorporated.  All Rights
 * Reserved. © 1981, 2002 Heidelberger Druckmaschinen AG. All rights reserved.
 * 
 * Trademark:
 * Helvetica is a trademark of Heidelberger Druckmaschinen AG, exclusively
 * licensed through Linotype Library GmbH, and may be registered in certain
 * jurisdictions.
 * 
 * Full name:
 * HelveticaNeueLTStd-Md
 * 
 * Designer:
 * Linotype Staff
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":200,"face":{"font-family":"HelveticaNeue","font-weight":500,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 6 4 2 2 2 2 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-15 -343 338 79.8246","underline-thickness":"18","underline-position":"-18","stemh":"32","stemv":"41","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":100},"!":{"d":"40,-72v-7,-59,-15,-117,-12,-185r45,0v2,68,-5,126,-12,185r-21,0xm26,0r0,-45r48,0r0,45r-48,0","w":100},"\"":{"d":"30,-156r0,-101r37,0r0,101r-37,0xm93,-156r0,-101r37,0r0,101r-37,0","w":159},"#":{"d":"178,-103r0,27r-34,0r-11,76r-29,0r11,-76r-40,0r-11,76r-28,0r10,-76r-34,0r0,-27r38,0r7,-46r-34,0r0,-27r37,0r11,-76r29,0r-11,76r40,0r10,-76r29,0r-10,76r31,0r0,27r-35,0r-6,46r30,0xm125,-149r-40,0r-6,46r40,0"},"$":{"d":"109,-110r0,84v26,-2,44,-14,44,-43v0,-27,-22,-35,-44,-41xm6,-78r41,0v0,32,13,51,46,52r0,-87v-39,-11,-81,-27,-81,-80v0,-46,38,-70,81,-70r0,-28r16,0r0,28v43,0,79,22,79,70r-41,0v-1,-24,-12,-38,-38,-38r0,76v44,12,85,28,85,80v0,54,-37,79,-85,81r0,28r-16,0r0,-28v-52,-1,-88,-30,-87,-84xm93,-159r0,-72v-26,0,-40,11,-40,36v0,23,20,31,40,36"},"%":{"d":"270,5v-44,0,-60,-33,-60,-72v0,-39,18,-71,60,-71v42,0,60,32,60,71v0,39,-16,72,-60,72xm243,-67v0,27,7,49,27,49v20,0,28,-22,28,-49v0,-24,-6,-48,-28,-48v-22,0,-27,24,-27,48xm90,-114v-44,0,-60,-32,-60,-71v0,-39,18,-72,60,-72v42,0,60,33,60,72v0,39,-16,71,-60,71xm62,-185v0,27,7,48,27,48v20,0,28,-21,28,-48v0,-24,-6,-49,-28,-49v-22,0,-27,25,-27,49xm94,9r140,-270r27,0r-139,270r-28,0","w":360},"&":{"d":"109,-233v-15,0,-28,12,-28,29v0,17,15,30,24,43v15,-10,30,-21,30,-42v0,-17,-10,-30,-26,-30xm143,-56r-51,-63v-15,9,-39,17,-39,48v0,28,17,44,41,44v30,0,41,-19,49,-29xm188,0r-23,-29v-40,58,-153,40,-153,-42v0,-36,29,-60,59,-75v-13,-17,-26,-34,-26,-56v0,-37,28,-61,63,-61v33,0,64,20,64,61v0,30,-22,53,-47,66r40,48v3,-8,6,-18,8,-35r36,0v-3,22,-8,45,-20,63r49,60r-50,0","w":233},"(":{"d":"103,69r-34,0v-63,-88,-70,-237,0,-332r34,0v-58,99,-59,233,0,332","w":100},")":{"d":"-3,-263r34,0v63,88,70,237,0,332r-34,0v58,-99,59,-233,0,-332","w":100},"*":{"d":"47,-192r-40,-14r8,-23r39,15r0,-43r25,0r0,43r39,-15r9,23r-41,14r25,34r-19,14r-26,-36r-24,36r-20,-14","w":133},"+":{"d":"90,-109r0,-73r36,0r0,73r73,0r0,36r-73,0r0,73r-36,0r0,-73r-73,0r0,-36r73,0","w":216},",":{"d":"25,0r0,-49r50,0v4,55,-3,98,-49,106r0,-22v16,-4,24,-20,24,-35r-25,0","w":100},"-":{"d":"18,-78r0,-39r104,0r0,39r-104,0","w":140},".":{"d":"25,0r0,-49r50,0r0,49r-50,0","w":100},"\/":{"d":"-8,6r103,-269r40,0r-104,269r-39,0","w":126},"0":{"d":"100,-29v36,0,46,-44,46,-97v0,-53,-10,-97,-46,-97v-36,0,-46,44,-46,97v0,53,10,97,46,97xm100,-257v72,0,87,74,87,131v0,57,-15,131,-87,131v-72,0,-87,-74,-87,-131v0,-57,15,-131,87,-131"},"1":{"d":"19,-178r0,-32v35,0,68,-12,74,-42r33,0r0,252r-45,0r0,-178r-62,0"},"2":{"d":"186,-180v0,75,-103,96,-123,143r123,0r0,37r-172,0v0,-41,21,-71,55,-95v33,-23,75,-44,76,-83v0,-18,-7,-45,-42,-45v-32,0,-42,28,-43,63r-41,0v0,-56,30,-97,86,-97v62,0,81,45,81,77"},"3":{"d":"82,-117r0,-31v27,1,56,-8,56,-39v0,-21,-16,-36,-39,-36v-28,0,-43,26,-42,52r-41,0v2,-49,32,-86,83,-86v39,0,80,22,80,67v1,26,-14,44,-36,55v28,6,46,31,46,63v0,48,-41,77,-89,77v-58,0,-88,-35,-89,-88r41,0v-1,31,16,54,48,54v27,0,48,-16,48,-45v0,-39,-34,-44,-66,-43"},"4":{"d":"188,-92r0,32r-32,0r0,60r-39,0r0,-60r-108,0r0,-40r108,-152r39,0r0,160r32,0xm117,-203v-28,35,-51,75,-77,111r77,0r0,-111"},"5":{"d":"17,-114r27,-138r131,0r0,37r-100,0v-3,21,-12,45,-12,65v46,-47,125,-4,125,65v0,40,-25,90,-87,90v-49,0,-86,-27,-88,-77r41,0v3,27,19,43,46,43v35,0,47,-25,47,-56v0,-49,-69,-74,-89,-29r-41,0"},"6":{"d":"103,-29v30,0,44,-26,44,-53v0,-27,-14,-51,-44,-51v-30,0,-46,23,-46,51v0,27,16,53,46,53xm183,-188r-41,0v-2,-21,-16,-35,-37,-35v-44,-1,-51,56,-51,87v37,-62,134,-19,134,55v0,49,-34,86,-84,86v-74,0,-92,-59,-92,-132v0,-60,24,-130,95,-130v40,0,74,28,76,69"},"7":{"d":"13,-215r0,-37r172,0r0,34v-53,59,-88,127,-94,218r-45,0v5,-80,45,-157,97,-215r-130,0"},"8":{"d":"100,-27v27,0,48,-17,48,-47v0,-28,-21,-44,-48,-44v-27,0,-48,16,-48,44v0,30,21,47,48,47xm100,5v-51,0,-89,-30,-89,-79v0,-32,18,-55,46,-62v-63,-26,-36,-130,43,-121v79,-9,108,94,43,121v82,25,44,141,-43,141xm100,-225v-22,0,-40,14,-40,39v0,24,17,37,40,37v23,0,40,-13,40,-37v0,-25,-18,-39,-40,-39"},"9":{"d":"97,-223v-30,0,-44,25,-44,52v0,27,14,53,44,53v31,0,46,-25,46,-53v0,-27,-15,-52,-46,-52xm17,-64r41,0v2,21,16,35,37,35v44,1,51,-56,51,-87v-37,60,-134,23,-134,-55v0,-49,32,-86,87,-86v71,0,89,59,89,132v0,60,-24,130,-95,130v-40,0,-74,-28,-76,-69"},":":{"d":"25,-134r0,-48r50,0r0,48r-50,0xm25,0r0,-49r50,0r0,49r-50,0","w":100},";":{"d":"25,0r0,-49r50,0v4,55,-3,98,-49,106r0,-22v16,-4,24,-20,24,-35r-25,0xm25,-134r0,-48r50,0r0,48r-50,0","w":100},"<":{"d":"199,-34r0,37r-182,-81r0,-26r182,-81r0,37r-134,57","w":216},"=":{"d":"199,-146r0,37r-182,0r0,-37r182,0xm199,-73r0,37r-182,0r0,-37r182,0","w":216},">":{"d":"17,-34r134,-57r-134,-57r0,-37r182,81r0,26r-182,81r0,-37","w":216},"?":{"d":"80,-70v-8,-73,58,-66,58,-119v0,-29,-23,-40,-36,-40v-30,0,-43,22,-43,54r-41,0v0,-53,33,-88,86,-88v44,0,79,27,79,73v0,67,-66,52,-64,120r-39,0xm75,0r0,-45r48,0r0,45r-48,0"},"@":{"d":"130,-78v28,0,49,-38,49,-64v0,-17,-13,-32,-28,-32v-30,0,-50,36,-50,63v0,19,11,33,29,33xm221,-195r-26,95v-4,11,-6,24,4,24v22,0,47,-33,47,-77v0,-54,-43,-87,-96,-87v-61,0,-104,48,-104,108v0,109,126,150,188,79r25,0v-62,106,-241,57,-241,-80v0,-73,60,-130,132,-130v64,0,120,43,120,105v0,72,-56,108,-85,108v-12,0,-19,-9,-22,-21v-29,38,-92,16,-92,-36v0,-64,79,-133,119,-68r6,-20r25,0","w":288},"A":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0","w":240},"B":{"d":"72,-117r0,80v51,-3,123,15,123,-40v0,-54,-72,-38,-123,-40xm27,0r0,-257v83,4,202,-23,202,64v0,27,-16,43,-37,55v31,7,48,31,48,66v0,40,-28,72,-95,72r-118,0xm72,-220r0,71v47,-3,112,14,112,-36v0,-53,-67,-30,-112,-35","w":253},"C":{"d":"246,-175r-45,0v-8,-30,-27,-51,-64,-51v-55,0,-78,48,-78,97v0,49,23,98,78,98v40,0,61,-30,65,-67r44,0v-4,62,-47,104,-109,104v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134v58,0,104,33,109,88","w":259},"D":{"d":"72,-220r0,183r45,0v71,0,85,-41,85,-92v0,-51,-14,-91,-85,-91r-45,0xm27,0r0,-257r107,0v79,0,113,57,113,128v0,71,-34,129,-113,129r-107,0","w":259},"E":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0","w":226},"F":{"d":"27,0r0,-257r178,0r0,39r-133,0r0,67r117,0r0,37r-117,0r0,114r-45,0","w":213,"k":{"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46}},"G":{"d":"252,-135r0,135r-29,0r-7,-30v-73,86,-201,7,-201,-99v0,-73,47,-134,124,-134v56,0,103,30,110,88r-44,0v-4,-34,-34,-51,-66,-51v-55,0,-79,48,-79,97v0,49,24,98,79,98v46,0,71,-26,72,-70r-69,0r0,-34r110,0","w":273},"H":{"d":"26,0r0,-257r45,0r0,102r117,0r0,-102r45,0r0,257r-45,0r0,-116r-117,0r0,116r-45,0","w":259},"I":{"d":"27,0r0,-257r45,0r0,257r-45,0","w":100},"J":{"d":"166,-257r0,174v0,45,-11,89,-85,89v-59,-1,-79,-40,-76,-96r45,0v-1,33,3,59,35,59v29,0,36,-17,36,-49r0,-177r45,0","w":193},"K":{"d":"27,0r0,-257r45,0r0,117r115,-117r55,0r-102,103r109,154r-56,0r-84,-123r-37,37r0,86r-45,0","w":246},"L":{"d":"27,0r0,-257r45,0r0,218r131,0r0,39r-176,0","w":206,"k":{"T":33,"V":33,"W":20,"y":13,"\u00fd":13,"\u00ff":13,"Y":40,"\u00dd":40}},"M":{"d":"27,0r0,-257r63,0r72,201r69,-201r62,0r0,257r-42,0r-1,-198r-71,198r-38,0r-72,-198r0,198r-42,0","w":320},"N":{"d":"26,0r0,-257r47,0r118,189r0,-189r43,0r0,257r-48,0r-118,-189r0,189r-42,0","w":259},"O":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97","w":273},"P":{"d":"72,-220r0,85v52,-3,111,15,111,-43v0,-60,-61,-38,-111,-42xm27,0r0,-257r114,0v73,0,87,48,87,80v0,32,-14,78,-87,78r-69,0r0,99r-45,0","w":240,"k":{"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":61,".":61}},"Q":{"d":"166,-37r-26,-22r21,-25r32,27v42,-55,27,-169,-56,-169v-55,0,-78,48,-78,97v0,59,42,117,107,92xm224,-30r33,29r-22,24r-38,-32v-91,48,-183,-25,-183,-120v0,-73,46,-134,123,-134v118,0,160,156,87,233","w":273},"R":{"d":"72,-220r0,80v50,-2,120,14,118,-41v-2,-60,-68,-33,-118,-39xm27,0r0,-257r123,0v56,0,85,25,85,69v0,50,-35,60,-42,66v15,2,38,13,38,54v0,30,4,58,14,68r-48,0v-15,-44,4,-106,-58,-106r-67,0r0,106r-45,0","w":253,"k":{"T":6,"V":6,"W":6,"Y":13,"\u00dd":13}},"S":{"d":"12,-86r45,0v0,40,29,55,65,55v62,0,67,-56,33,-70v-18,-8,-42,-11,-77,-21v-44,-12,-56,-39,-56,-66v0,-51,48,-75,94,-75v54,0,98,28,98,82r-45,0v-2,-33,-24,-45,-55,-45v-21,0,-47,7,-47,33v0,44,65,38,104,53v33,12,50,38,50,65v0,58,-51,81,-102,81v-59,0,-106,-28,-107,-92","w":233},"T":{"d":"3,-218r0,-39r208,0r0,39r-82,0r0,218r-45,0r0,-218r-81,0","w":213,"k":{"\u00fc":33,"\u00f2":40,"\u00f6":40,"\u00e8":40,"\u00eb":40,"\u00ea":40,"\u00e3":36,"\u00e5":36,"\u00e0":36,"\u00e4":36,"\u00e2":36,"w":40,"y":40,"\u00fd":40,"\u00ff":40,"A":33,"\u00c6":33,"\u00c1":33,"\u00c2":33,"\u00c4":33,"\u00c0":33,"\u00c5":33,"\u00c3":33,",":40,".":40,"c":40,"\u00e7":40,"e":40,"\u00e9":40,"o":40,"\u00f8":40,"\u00f3":40,"\u00f4":40,"\u00f5":40,"-":46,"a":36,"\u00e6":36,"\u00e1":36,"r":33,"s":40,"u":33,"\u00fa":33,"\u00fb":33,"\u00f9":33,":":30,";":30}},"U":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99","w":259},"V":{"d":"84,0r-86,-257r47,0r65,203r66,-203r46,0r-88,257r-50,0","w":219,"k":{"\u00f6":20,"\u00f4":20,"\u00e8":20,"\u00eb":20,"\u00ea":20,"\u00e3":20,"\u00e5":20,"\u00e0":20,"\u00e4":20,"\u00e2":20,"y":6,"\u00fd":6,"\u00ff":6,"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46,"e":20,"\u00e9":20,"o":20,"\u00f8":20,"\u00f3":20,"\u00f2":20,"\u00f5":20,"-":20,"a":20,"\u00e6":20,"\u00e1":20,"r":13,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,":":17,";":17,"i":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4}},"W":{"d":"70,0r-68,-257r46,0r47,197r52,-197r46,0r51,197r48,-197r46,0r-71,257r-46,0r-52,-197r-53,197r-46,0","w":339,"k":{"\u00fc":6,"\u00f6":6,"\u00ea":6,"\u00e4":13,"A":9,"\u00c6":9,"\u00c1":9,"\u00c2":9,"\u00c4":9,"\u00c0":9,"\u00c5":9,"\u00c3":9,",":27,".":27,"e":6,"\u00e9":6,"\u00eb":6,"\u00e8":6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f2":6,"\u00f5":6,"-":10,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"r":6,"u":6,"\u00fa":6,"\u00fb":6,"\u00f9":6,":":6,";":6}},"X":{"d":"90,-133r-85,-124r54,0r58,91r61,-91r50,0r-85,124r91,133r-54,0r-64,-98r-66,98r-51,0","w":233},"Y":{"d":"94,0r0,-101r-96,-156r52,0r68,115r67,-115r50,0r-96,156r0,101r-45,0","w":233,"k":{"\u00fc":31,"\u00f6":33,"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f2":33,"\u00f5":33,"q":37,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":31,"\u00fa":31,"\u00fb":31,"\u00f9":31,":":33,";":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"p":31}},"Z":{"d":"20,-218r0,-39r195,0r0,34r-149,184r153,0r0,39r-211,0r0,-37r150,-181r-138,0","w":226},"[":{"d":"26,69r0,-332r80,0r0,32r-41,0r0,267r41,0r0,33r-80,0","w":106},"\\":{"d":"31,-263r104,269r-40,0r-103,-269r39,0","w":126},"]":{"d":"81,-263r0,332r-81,0r0,-33r42,0r0,-267r-42,0r0,-32r81,0","w":106},"^":{"d":"67,-121r-37,0r65,-131r26,0r65,131r-37,0r-41,-89","w":216},"_":{"d":"180,45r-180,0r0,-18r180,0r0,18","w":180},"a":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54"},"b":{"d":"114,-27v72,0,67,-133,0,-132v-35,0,-52,26,-52,66v0,37,19,66,52,66xm23,0r0,-257r41,0r0,95v11,-18,35,-29,56,-29v59,0,87,45,87,99v0,50,-25,97,-80,97v-25,0,-53,-7,-65,-31r0,26r-39,0","w":219},"c":{"d":"188,-124r-41,0v-3,-23,-19,-35,-42,-35v-21,0,-51,11,-51,68v0,31,13,64,49,64v24,0,40,-16,44,-43r41,0v-8,48,-37,75,-85,75v-58,0,-90,-41,-90,-96v0,-56,30,-100,91,-100v43,0,80,21,84,67"},"d":{"d":"106,-159v-71,1,-70,131,-1,132v37,0,52,-34,52,-66v0,-41,-19,-66,-51,-66xm197,-257r0,257r-39,0v-1,-8,2,-19,-1,-25v-11,21,-34,30,-57,30v-59,0,-87,-43,-87,-99v-2,-100,92,-123,143,-68r0,-95r41,0","w":219},"e":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50"},"f":{"d":"3,-156r0,-30r31,0v-5,-64,29,-80,80,-69r0,33v-15,-4,-40,-7,-39,17r0,19r35,0r0,30r-35,0r0,156r-41,0r0,-156r-31,0","w":113,"k":{"f":6,"\u00df":6}},"g":{"d":"103,-32v67,0,69,-128,0,-127v-67,1,-66,127,0,127xm194,-186r0,176v0,56,-33,84,-92,84v-37,0,-79,-14,-83,-58r41,0v5,23,24,27,45,27v44,0,53,-34,47,-76v-12,21,-33,33,-56,33v-59,0,-83,-45,-83,-98v0,-77,97,-128,140,-63r0,-25r41,0","w":213},"h":{"d":"22,0r0,-257r41,0r0,95v26,-47,122,-37,122,34r0,128r-41,0r0,-117v-1,-29,-12,-42,-36,-42v-65,2,-41,96,-45,159r-41,0","w":206},"i":{"d":"23,0r0,-186r41,0r0,186r-41,0xm23,-218r0,-39r41,0r0,39r-41,0","w":86},"j":{"d":"23,14r0,-200r41,0r0,202v3,44,-28,65,-72,56r0,-32v21,4,31,-1,31,-26xm23,-218r0,-39r41,0r0,39r-41,0","w":86},"k":{"d":"23,0r0,-257r41,0r0,146r74,-75r50,0r-71,68r78,118r-50,0r-57,-90r-24,23r0,67r-41,0","w":193},"l":{"d":"23,0r0,-257r41,0r0,257r-41,0","w":86},"m":{"d":"22,0r0,-186r38,0v1,8,-3,22,2,26v16,-37,93,-45,109,0v27,-46,121,-45,121,31r0,129r-41,0r0,-109v0,-30,-2,-50,-34,-50v-63,1,-34,101,-40,159r-41,0r0,-120v0,-26,-8,-39,-33,-39v-57,0,-37,101,-40,159r-41,0","w":313},"n":{"d":"22,0r0,-186r38,0v1,9,-2,21,1,28v27,-52,124,-42,124,30r0,128r-41,0r0,-117v-1,-29,-12,-42,-36,-42v-65,2,-41,96,-45,159r-41,0","w":206},"o":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98","w":213},"p":{"d":"114,-27v72,0,67,-133,0,-132v-35,0,-52,26,-52,66v0,37,19,66,52,66xm23,69r0,-255r39,0r0,25v12,-21,34,-30,58,-30v59,0,87,45,87,99v0,50,-25,97,-80,97v-24,0,-50,-8,-63,-29r0,93r-41,0","w":219},"q":{"d":"54,-93v0,32,14,66,51,66v36,0,52,-27,52,-66v0,-40,-18,-66,-52,-66v-34,0,-51,32,-51,66xm197,-186r0,255r-41,0r-1,-93v-13,21,-38,29,-62,29v-55,0,-80,-47,-80,-97v0,-54,28,-99,87,-99v25,-1,44,11,58,30r0,-25r39,0","w":219},"r":{"d":"22,0r0,-186r38,0v1,11,-2,27,1,36v6,-24,36,-47,70,-40r0,40v-41,-9,-68,13,-68,61r0,89r-41,0","w":126,"k":{",":33,".":33,"c":6,"\u00e7":6,"d":6,"e":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"n":-6,"\u00f1":-6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"q":6,"-":20}},"s":{"d":"12,-60r41,0v2,24,20,33,42,33v15,0,42,-4,41,-25v-1,-22,-31,-24,-61,-31v-30,-6,-60,-17,-60,-55v0,-76,151,-71,156,4r-43,0v-4,-19,-20,-25,-38,-25v-12,0,-33,3,-33,19v0,20,30,23,60,30v30,7,60,18,60,55v0,44,-44,60,-83,60v-47,0,-81,-21,-82,-65","w":186},"t":{"d":"3,-156r0,-30r31,0r0,-56r41,0r0,56r37,0r0,30r-37,0r0,100v-4,25,15,27,37,24r0,32v-44,8,-78,-4,-78,-46r0,-110r-31,0","w":119},"u":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0","w":206},"v":{"d":"71,0r-68,-186r45,0r48,143r45,-143r43,0r-67,186r-46,0","w":186,"k":{",":27,".":27}},"w":{"d":"62,0r-57,-186r43,0r37,139r35,-139r42,0r34,139r38,-139r41,0r-58,186r-42,0r-35,-138r-35,138r-43,0","w":280,"k":{",":20,".":20}},"x":{"d":"1,0r71,-98r-65,-88r50,0r39,57r40,-57r48,0r-63,86r71,100r-49,0r-48,-69r-45,69r-49,0","w":193},"y":{"d":"72,-1r-71,-185r45,0r49,139r48,-139r42,0r-72,196v-12,42,-37,74,-94,62r0,-35v33,12,49,-11,53,-38","w":186,"k":{",":33,".":33}},"z":{"d":"15,-154r0,-32r151,0r0,29r-106,125r112,0r0,32r-164,0r0,-29r103,-125r-96,0","w":180},"{":{"d":"-1,-81r0,-32v10,0,33,-6,33,-27r0,-74v7,-48,36,-52,79,-49r0,32v-24,-4,-44,5,-40,25r0,71v1,30,-27,34,-37,38v12,1,37,5,37,40v0,40,-23,102,40,93r0,33v-44,3,-79,-1,-79,-50r0,-71v0,-23,-23,-29,-33,-29","w":106},"|":{"d":"22,77r0,-360r36,0r0,360r-36,0","w":79},"}":{"d":"108,-113r0,32v-10,0,-34,5,-34,26r0,74v-7,48,-35,53,-79,50r0,-33v24,4,44,-5,40,-25r0,-70v-1,-30,28,-35,38,-39v-12,-1,-38,-5,-38,-40v0,-40,23,-102,-40,-93r0,-32v44,-2,79,0,79,49r0,71v0,23,24,30,34,30","w":106},"~":{"d":"70,-122v23,0,56,24,77,25v14,0,23,-14,31,-25r13,31v-11,15,-23,31,-45,31v-36,0,-90,-50,-108,0r-13,-31v8,-15,21,-31,45,-31","w":216},"\u00a1":{"d":"61,-120v6,60,15,117,12,186r-45,0v-2,-68,5,-127,12,-186r21,0xm74,-191r0,45r-48,0r0,-45r48,0","w":100},"\u00a2":{"d":"96,-27r0,-132v-58,9,-57,122,0,132xm96,37r0,-32v-52,0,-83,-44,-83,-96v0,-60,34,-100,83,-100r0,-33r16,0r0,33v40,0,74,25,77,67r-41,0v-3,-21,-17,-35,-36,-35r0,132v22,-4,34,-19,37,-43r41,0v-8,45,-33,75,-78,75r0,32r-16,0"},"\u00a3":{"d":"199,-14v-43,48,-118,-14,-167,20r-19,-29v27,-18,52,-56,31,-92r-33,0r0,-23r23,0v-43,-52,2,-125,67,-125v55,0,91,30,91,89r-42,0v-1,-31,-13,-55,-48,-55v-45,0,-48,62,-24,91r53,0r0,23r-44,0v18,34,-7,66,-30,84v40,-29,90,25,124,-11"},"\u00a5":{"d":"80,0r0,-59r-50,0r0,-24r50,0r0,-24r-50,0r0,-24r36,0r-68,-126r46,0r56,115r57,-115r45,0r-68,126r36,0r0,24r-49,0r0,24r49,0r0,24r-49,0r0,59r-41,0"},"\u00a7":{"d":"154,-82v0,-30,-61,-47,-85,-64v-25,11,-35,38,-2,57r65,37v13,-5,22,-15,22,-30xm133,12v0,-54,-125,-59,-125,-124v0,-27,15,-44,39,-54v-40,-38,4,-97,55,-97v41,0,73,26,73,68r-39,0v4,-40,-61,-50,-64,-9v6,49,121,53,121,118v0,23,-18,45,-39,52v13,11,20,24,20,46v0,41,-34,62,-71,62v-44,0,-77,-26,-78,-74r39,0v-5,44,69,60,69,12"},"\u00a4":{"d":"27,-32r-20,-21r21,-22v-24,-24,-24,-78,0,-102r-21,-22r21,-21r20,20v24,-20,79,-22,102,0r21,-21r22,22r-20,21v23,25,22,79,-1,104r20,21r-20,20r-20,-21v-24,24,-79,24,-104,1xm100,-72v29,0,51,-25,51,-54v0,-28,-21,-54,-50,-54v-30,0,-52,24,-52,54v0,30,22,54,51,54"},"'":{"d":"32,-156r0,-101r36,0r0,101r-36,0","w":100},"\u00ab":{"d":"74,-33r-56,-45r0,-40r56,-44r0,37r-34,27r34,27r0,38xm145,-33r-56,-45r0,-40r56,-44r0,37r-34,27r34,27r0,38","w":166},"\u00b7":{"d":"50,-81v-39,0,-32,-55,0,-54v14,0,27,12,27,26v0,14,-12,28,-27,28","w":100},"\u00b6":{"d":"89,58r0,-182v-47,0,-78,-27,-78,-65v0,-82,97,-68,177,-68r0,315r-29,0r0,-292r-42,0r0,292r-28,0","w":216},"\u00bb":{"d":"22,-162r55,44r0,40r-55,45r0,-38r34,-27r-34,-27r0,-37xm93,-162r56,44r0,40r-56,45r0,-38r34,-27r-34,-27r0,-37","w":166},"\u00bf":{"d":"18,1v-1,-68,65,-53,63,-121r39,0v0,42,-9,57,-28,74v-15,13,-29,22,-29,46v0,27,22,38,35,38v30,0,43,-21,43,-52r42,0v0,51,-34,86,-87,86v-44,0,-78,-26,-78,-71xm76,-191r48,0r0,45r-48,0r0,-45"},"`":{"d":"-10,-263r48,0r33,51r-30,0","w":86},"\u00b4":{"d":"16,-212r33,-51r48,0r-51,51r-30,0","w":86},"\u00af":{"d":"95,-223r-103,0r0,-23r103,0r0,23","w":86},"\u00a8":{"d":"54,-255r41,0r0,39r-41,0r0,-39xm33,-216r-41,0r0,-39r41,0r0,39","w":86},"\u00b8":{"d":"3,72r7,-14v15,6,45,11,45,-9v0,-15,-20,-17,-31,-10r-7,-7r23,-32r18,0v-5,8,-13,13,-17,22v20,-4,43,3,43,25v0,38,-53,38,-81,25","w":86},"\u00c6":{"d":"152,-218r-57,118r70,0r0,-118r-13,0xm-3,0r128,-257r208,0r0,39r-126,0r0,67r118,0r0,37r-118,0r0,75r128,0r0,39r-170,0r0,-66r-87,0r-30,66r-51,0","w":346},"\u00aa":{"d":"88,-193v-13,9,-51,2,-51,23v0,21,53,15,51,-7r0,-16xm119,-224r0,55v0,8,4,9,12,7r0,25v-17,5,-38,5,-39,-15v-19,26,-86,25,-86,-16v0,-28,25,-32,48,-36v19,-3,34,-4,34,-13v-1,-26,-46,-21,-47,-2r-31,0v3,-30,31,-38,58,-38v25,0,51,9,51,33","w":136},"\u00d8":{"d":"72,-71r118,-133v-12,-14,-29,-22,-53,-22v-76,0,-94,95,-65,155xm202,-186r-118,133v13,14,30,22,53,22v76,0,94,-95,65,-155xm244,-264r15,13r-28,32v63,79,20,225,-94,225v-33,0,-60,-11,-80,-29r-27,30r-16,-13r29,-32v-62,-80,-20,-225,94,-225v33,0,60,11,80,29","w":273},"\u00ba":{"d":"69,-158v45,-1,43,-75,0,-76v-42,1,-44,75,0,76xm134,-195v0,37,-23,61,-65,61v-42,0,-64,-24,-64,-61v0,-37,22,-62,64,-62v42,0,65,25,65,62","w":136},"\u00e6":{"d":"175,-109r94,0v0,-30,-17,-50,-47,-50v-29,0,-45,23,-47,50xm136,-93v-21,16,-88,0,-83,42v5,42,86,26,83,-14r0,-28xm268,-59r41,0v-12,68,-116,88,-153,30v-29,48,-143,50,-144,-20v0,-46,36,-53,71,-58v30,-4,54,-3,54,-27v0,-21,-20,-25,-37,-25v-23,0,-39,10,-41,30r-41,0v3,-48,44,-62,84,-62v23,0,49,3,63,25v14,-18,37,-25,59,-25v63,0,90,47,86,109r-135,0v0,28,15,55,49,55v22,0,37,-13,44,-32","w":320},"\u00f8":{"d":"152,-130r-81,88v9,9,21,15,36,15v50,-1,64,-62,45,-103xm23,10r-11,-10r23,-26v-47,-58,-17,-165,72,-165v25,0,46,7,61,20r23,-25r11,10r-23,25v46,59,17,166,-72,166v-25,0,-46,-7,-61,-20xm62,-56r81,-88v-9,-9,-21,-15,-36,-15v-50,1,-64,62,-45,103","w":213},"\u00df":{"d":"87,-155v29,0,50,-10,50,-39v0,-24,-12,-37,-36,-37v-17,0,-37,9,-37,47r0,184r-41,0r0,-188v0,-47,33,-75,79,-75v39,0,76,24,76,65v1,25,-14,45,-37,55v30,4,49,32,49,61v0,57,-40,95,-103,86r0,-32v45,9,62,-28,62,-56v0,-33,-31,-44,-62,-44r0,-27","w":206},"\u00b9":{"d":"13,-208r0,-21v24,0,46,-7,50,-25r25,0r0,156r-31,0r0,-110r-44,0","w":129},"\u00ac":{"d":"162,-39r0,-70r-145,0r0,-37r182,0r0,107r-37,0","w":216},"\u00b5":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-17,29,-55,44,-81,18r0,77r-41,0r0,-255r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0","w":206},"\u00d0":{"d":"27,0r0,-114r-24,0r0,-37r24,0r0,-106r107,0v79,0,113,57,113,128v0,71,-34,129,-113,129r-107,0xm72,-220r0,69r71,0r0,37r-71,0r0,77r45,0v71,0,85,-41,85,-92v0,-51,-14,-91,-85,-91r-45,0","w":259},"\u00bd":{"d":"49,9r151,-270r28,0r-150,270r-29,0xm13,-208r0,-21v24,0,46,-7,50,-25r25,0r0,156r-31,0r0,-110r-44,0xm287,-112v0,46,-67,57,-80,87r77,0r0,25r-114,0v-4,-67,86,-61,86,-111v0,-15,-11,-24,-26,-24v-20,0,-26,18,-27,35r-31,0v0,-37,21,-61,59,-61v31,0,56,16,56,49","w":300},"\u00b1":{"d":"90,-137r0,-45r36,0r0,45r73,0r0,37r-73,0r0,45r-36,0r0,-45r-73,0r0,-37r73,0xm17,0r0,-37r182,0r0,37r-182,0","w":216},"\u00de":{"d":"27,0r0,-257r45,0r0,39r69,0v73,0,87,47,87,79v0,32,-14,79,-87,79r-69,0r0,60r-45,0xm72,-181r0,85v52,-3,111,15,111,-43v0,-60,-61,-38,-111,-42","w":240},"\u00bc":{"d":"259,-35r0,35r-31,0r0,-35r-71,0r0,-29r67,-90r35,0r0,92r17,0r0,27r-17,0xm228,-62v-1,-18,2,-41,-1,-57r-42,57r43,0xm13,-208r0,-21v24,0,46,-7,50,-25r25,0r0,156r-31,0r0,-110r-44,0xm51,9r151,-270r28,0r-151,270r-28,0","w":300},"\u00f7":{"d":"199,-73r-182,0r0,-36r182,0r0,36xm108,-139v-14,0,-26,-12,-26,-26v0,-14,12,-26,26,-26v14,0,26,12,26,26v0,13,-12,26,-26,26xm108,9v-14,0,-26,-12,-26,-26v0,-14,12,-26,26,-26v14,0,26,12,26,26v0,13,-12,26,-26,26","w":216},"\u00a6":{"d":"22,32r0,-90r36,0r0,90r-36,0xm22,-148r0,-90r36,0r0,90r-36,0","w":79},"\u00b0":{"d":"18,-203v0,-30,24,-54,54,-54v30,0,54,24,54,54v0,30,-24,54,-54,54v-30,0,-54,-24,-54,-54xm38,-203v0,19,15,34,34,34v19,0,34,-15,34,-34v0,-19,-15,-34,-34,-34v-19,0,-34,15,-34,34","w":144},"\u00fe":{"d":"23,69r0,-326r41,0r0,95v11,-18,35,-29,56,-29v59,0,87,45,87,99v0,50,-25,97,-80,97v-23,0,-50,-8,-63,-29r0,93r-41,0xm114,-27v72,0,67,-133,0,-132v-35,0,-52,26,-52,66v0,37,19,66,52,66","w":219},"\u00be":{"d":"272,-35r0,35r-31,0r0,-35r-70,0r0,-29r66,-90r35,0r0,92r17,0r0,27r-17,0xm241,-62v-1,-18,2,-41,-1,-57r-42,57r43,0xm71,9r150,-270r28,0r-150,270r-28,0xm53,-171r0,-21v18,1,36,-5,36,-22v-7,-30,-55,-19,-51,10r-29,0v1,-33,22,-53,55,-53v27,0,54,11,54,42v1,16,-10,26,-23,33v18,3,29,18,29,38v0,32,-26,49,-59,49v-39,0,-58,-21,-59,-56r29,0v-1,17,10,31,30,31v17,0,30,-10,30,-26v0,-23,-21,-26,-42,-25","w":300},"\u00b2":{"d":"125,-210v0,46,-68,57,-81,87r77,0r0,25r-113,0v-6,-61,85,-66,85,-112v0,-15,-12,-22,-26,-22v-19,0,-25,17,-26,34r-32,0v0,-36,23,-59,59,-59v30,0,57,14,57,47","w":129},"\u00ae":{"d":"118,-115r0,64r-25,0r0,-150v50,0,111,-8,111,43v0,27,-17,38,-39,41r42,66r-28,0r-38,-64r-23,0xm118,-136v28,-2,62,8,62,-23v0,-28,-35,-20,-62,-21r0,44xm276,-129v0,81,-61,135,-132,135v-77,0,-132,-58,-132,-135v0,-81,61,-134,132,-134v71,0,132,53,132,134xm247,-129v0,-66,-45,-111,-103,-111v-58,0,-103,45,-103,111v0,61,39,112,103,112v58,0,103,-46,103,-112","w":288},"\u00f0":{"d":"108,-150v-38,0,-52,29,-52,62v0,33,15,61,48,61v66,2,73,-122,4,-123xm70,-195r-18,-17r34,-17v-11,-5,-21,-9,-30,-12r27,-22v13,4,26,10,38,18r37,-18r18,17r-34,17v79,55,84,232,-41,234v-55,0,-86,-40,-86,-96v0,-69,74,-118,133,-75v-8,-19,-24,-34,-39,-47","w":213},"\u00d7":{"d":"82,-91r-62,-63r31,-20r57,57r57,-57r31,20r-63,63r63,63r-31,20r-57,-58r-57,58r-31,-20","w":216},"\u00b3":{"d":"53,-171r0,-21v18,1,36,-5,36,-22v-7,-30,-55,-19,-51,10r-29,0v1,-33,22,-53,55,-53v27,0,54,11,54,42v1,16,-10,26,-23,33v18,3,29,18,29,38v0,32,-26,49,-59,49v-39,0,-58,-21,-59,-56r29,0v-1,17,10,31,30,31v17,0,30,-10,30,-26v0,-23,-21,-26,-42,-25","w":129},"\u00a9":{"d":"276,-129v0,81,-61,135,-132,135v-77,0,-132,-58,-132,-135v0,-81,61,-134,132,-134v71,0,132,53,132,134xm247,-129v0,-66,-45,-111,-103,-111v-58,0,-103,45,-103,111v0,61,39,112,103,112v58,0,103,-46,103,-112xm188,-103r24,0v-6,34,-31,56,-63,56v-46,0,-77,-36,-77,-82v0,-83,130,-109,140,-23r-24,0v-16,-55,-92,-30,-87,23v-8,56,76,81,87,26","w":288},"\u00c1":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm93,-277r32,-52r49,0r-51,52r-30,0","w":240},"\u00c2":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm120,-315r-25,32r-33,0r38,-51r40,0r39,51r-34,0","w":240},"\u00c4":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm131,-325r41,0r0,38r-41,0r0,-38xm110,-287r-41,0r0,-38r41,0r0,38","w":240},"\u00c0":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm66,-334r48,0r33,51r-30,0","w":240},"\u00c5":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm120,-269v-20,0,-37,-17,-37,-37v0,-20,17,-37,37,-37v20,0,37,17,37,37v0,20,-17,37,-37,37xm98,-306v0,12,10,22,22,22v12,0,22,-10,22,-22v0,-12,-10,-22,-22,-22v-12,0,-22,10,-22,22","w":240},"\u00c3":{"d":"120,-213v-16,35,-26,75,-40,111r79,0xm-3,0r99,-257r48,0r99,257r-48,0r-24,-68r-103,0r-24,68r-47,0xm94,-326v28,0,58,32,69,-2r21,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-20,0v3,-18,15,-41,37,-41","w":240},"\u00c7":{"d":"202,-98r44,0v-4,61,-46,103,-107,104r-11,16v20,-4,42,3,42,25v0,38,-52,38,-80,25r6,-14v15,6,45,12,45,-9v0,-15,-20,-18,-30,-10r-8,-7r20,-27v-68,-7,-109,-65,-109,-134v0,-73,46,-134,123,-134v58,0,104,33,109,88r-45,0v-8,-30,-27,-51,-64,-51v-55,0,-78,48,-78,97v0,49,23,98,78,98v40,0,61,-30,65,-67","w":259},"\u00c9":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm86,-283r33,-51r48,0r-51,51r-30,0","w":226},"\u00ca":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm113,-315r-25,32r-33,0r39,-51r40,0r38,51r-33,0","w":226},"\u00cb":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm124,-325r41,0r0,38r-41,0r0,-38xm103,-287r-41,0r0,-38r41,0r0,38","w":226},"\u00c8":{"d":"27,0r0,-257r185,0r0,39r-140,0r0,67r130,0r0,37r-130,0r0,75r143,0r0,39r-188,0xm60,-334r48,0r33,51r-30,0","w":226},"\u00cd":{"d":"27,0r0,-257r45,0r0,257r-45,0xm23,-281r32,-51r49,0r-51,51r-30,0","w":100},"\u00ce":{"d":"27,0r0,-257r45,0r0,257r-45,0xm50,-315r-25,32r-33,0r38,-51r40,0r39,51r-33,0","w":100},"\u00cf":{"d":"27,0r0,-257r45,0r0,257r-45,0xm61,-325r41,0r0,38r-41,0r0,-38xm40,-287r-41,0r0,-38r41,0r0,38","w":100},"\u00cc":{"d":"27,0r0,-257r45,0r0,257r-45,0xm-4,-334r49,0r32,51r-29,0","w":100},"\u00d1":{"d":"26,0r0,-257r47,0r118,189r0,-189r43,0r0,257r-48,0r-118,-189r0,189r-42,0xm104,-326v28,-1,58,32,70,-2r20,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-20,0v3,-18,15,-41,37,-41","w":259},"\u00d3":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm110,-277r32,-52r49,0r-51,52r-30,0","w":273},"\u00d4":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm137,-315r-25,32r-34,0r39,-51r40,0r39,51r-34,0","w":273},"\u00d6":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm148,-325r41,0r0,38r-41,0r0,-38xm127,-287r-41,0r0,-38r41,0r0,38","w":273},"\u00d2":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm83,-334r48,0r33,51r-30,0","w":273},"\u00d5":{"d":"137,-263v77,0,123,61,123,134v0,73,-46,135,-123,135v-77,0,-123,-62,-123,-135v0,-73,46,-134,123,-134xm137,-226v-55,0,-78,48,-78,97v0,49,23,98,78,98v55,0,78,-49,78,-98v0,-49,-23,-97,-78,-97xm111,-326v28,0,58,32,69,-2r21,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-21,0v3,-18,16,-41,38,-41","w":273},"\u00da":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm103,-277r32,-52r49,0r-51,52r-30,0","w":259},"\u00db":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm130,-315r-25,32r-33,0r38,-51r40,0r39,51r-33,0","w":259},"\u00dc":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm141,-325r41,0r0,38r-41,0r0,-38xm120,-287r-41,0r0,-38r41,0r0,38","w":259},"\u00d9":{"d":"24,-93r0,-164r45,0r0,150v0,35,3,74,61,74v58,0,60,-39,60,-74r0,-150r45,0r0,164v0,66,-42,99,-105,99v-63,0,-106,-33,-106,-99xm76,-334r49,0r32,51r-30,0","w":259},"\u00dd":{"d":"94,0r0,-101r-96,-156r52,0r68,115r67,-115r50,0r-96,156r0,101r-45,0xm90,-277r32,-52r49,0r-51,52r-30,0","w":233,"k":{"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"q":37,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":31,"\u00fa":31,"\u00fb":31,"\u00fc":31,"\u00f9":31,":":33,";":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"p":31}},"\u00e1":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm73,-212r32,-51r49,0r-51,51r-30,0"},"\u00e2":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm100,-244r-25,32r-33,0r38,-51r40,0r39,51r-33,0"},"\u00e4":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm111,-255r41,0r0,39r-41,0r0,-39xm90,-216r-41,0r0,-39r41,0r0,39"},"\u00e0":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm46,-263r49,0r32,51r-29,0"},"\u00e5":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm100,-198v-20,0,-37,-17,-37,-37v0,-20,17,-37,37,-37v20,0,38,17,38,37v0,20,-18,37,-38,37xm78,-235v0,12,10,22,22,22v12,0,22,-10,22,-22v0,-12,-10,-22,-22,-22v-12,0,-22,10,-22,22"},"\u00e3":{"d":"136,-93v-26,16,-83,-1,-83,42v9,39,81,30,83,-12r0,-30xm177,-137r0,96v-1,15,8,15,20,13r0,28v-22,7,-54,9,-57,-18v-37,36,-127,33,-128,-31v0,-46,36,-53,71,-58v30,-4,56,-3,56,-27v0,-40,-81,-31,-80,5r-41,0v3,-48,44,-62,85,-62v36,0,74,15,74,54xm74,-255v28,-1,58,32,70,-2r20,0v-4,23,-14,40,-40,41v-22,1,-60,-30,-67,2r-20,0v3,-18,15,-41,37,-41"},"\u00e7":{"d":"147,-70r41,0v-7,46,-34,72,-77,74v-4,6,-10,11,-13,18v20,-4,42,3,42,25v0,38,-52,38,-80,25r6,-14v15,6,46,12,46,-9v0,-14,-21,-18,-31,-10r-8,-7r21,-28v-53,-4,-81,-44,-81,-95v0,-56,30,-100,91,-100v43,0,80,21,84,67r-41,0v-3,-23,-19,-35,-42,-35v-21,0,-51,11,-51,68v0,31,13,64,49,64v24,0,40,-16,44,-43"},"\u00e9":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm73,-212r32,-51r49,0r-51,51r-30,0"},"\u00ea":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm100,-244r-25,32r-33,0r38,-51r40,0r39,51r-33,0"},"\u00eb":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm111,-255r41,0r0,39r-41,0r0,-39xm90,-216r-41,0r0,-39r41,0r0,39"},"\u00e8":{"d":"190,-82r-136,0v-9,54,81,78,95,24r39,0v-9,41,-43,63,-84,63v-58,0,-91,-41,-91,-98v0,-53,35,-98,90,-98v59,0,94,53,87,109xm54,-109r95,0v-1,-26,-18,-50,-46,-50v-28,0,-48,22,-49,50xm46,-263r49,0r32,51r-29,0"},"\u00ed":{"d":"64,0r-41,0r0,-186r41,0r0,186xm16,-212r33,-51r48,0r-51,51r-30,0","w":86},"\u00ee":{"d":"64,0r-41,0r0,-186r41,0r0,186xm43,-244r-25,32r-33,0r38,-51r40,0r39,51r-33,0","w":86},"\u00ef":{"d":"64,0r-41,0r0,-186r41,0r0,186xm54,-255r41,0r0,39r-41,0r0,-39xm33,-216r-41,0r0,-39r41,0r0,39","w":86},"\u00ec":{"d":"64,0r-41,0r0,-186r41,0r0,186xm-10,-263r48,0r33,51r-30,0","w":86},"\u00f1":{"d":"22,0r0,-186r38,0v1,9,-2,21,1,28v27,-52,124,-42,124,30r0,128r-41,0r0,-117v-1,-29,-12,-42,-36,-42v-65,2,-41,96,-45,159r-41,0xm77,-255v28,0,58,32,70,-2r20,0v-4,23,-14,40,-40,41v-23,1,-59,-30,-67,2r-20,0v3,-18,15,-41,37,-41","w":206},"\u00f3":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm80,-212r32,-51r49,0r-52,51r-29,0","w":213},"\u00f4":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm107,-244r-26,32r-33,0r39,-51r40,0r39,51r-34,0","w":213},"\u00f6":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm117,-255r41,0r0,39r-41,0r0,-39xm96,-216r-41,0r0,-39r41,0r0,39","w":213},"\u00f2":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm53,-263r48,0r33,51r-30,0","w":213},"\u00f5":{"d":"107,-27v72,-1,71,-131,0,-132v-72,1,-71,131,0,132xm107,5v-60,0,-94,-41,-94,-98v0,-57,34,-98,94,-98v60,0,94,41,94,98v0,57,-34,98,-94,98xm81,-255v28,0,58,32,69,-2r20,0v-4,23,-14,40,-40,41v-22,1,-59,-30,-66,2r-21,0v3,-18,16,-41,38,-41","w":213},"\u00fa":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm76,-212r33,-51r48,0r-51,51r-30,0","w":206},"\u00fb":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm103,-244r-25,32r-33,0r39,-51r39,0r39,51r-33,0","w":206},"\u00fc":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm114,-255r41,0r0,39r-41,0r0,-39xm93,-216r-41,0r0,-39r41,0r0,39","w":206},"\u00f9":{"d":"185,-186r0,186r-40,0v-1,-8,2,-20,-1,-26v-30,54,-122,36,-122,-42r0,-118r41,0r0,114v0,33,13,45,35,45v72,-1,39,-96,46,-159r41,0xm50,-263r48,0r33,51r-30,0","w":206},"\u00fd":{"d":"72,-1r-71,-185r45,0r49,139r48,-139r42,0r-72,196v-12,42,-37,74,-94,62r0,-35v33,12,49,-11,53,-38xm66,-212r33,-51r48,0r-51,51r-30,0","w":186,"k":{",":33,".":33}},"\u00ff":{"d":"72,-1r-71,-185r45,0r49,139r48,-139r42,0r-72,196v-12,42,-37,74,-94,62r0,-35v33,12,49,-11,53,-38xm104,-255r41,0r0,39r-41,0r0,-39xm83,-216r-41,0r0,-39r41,0r0,39","w":186,"k":{",":33,".":33}},"\u20ac":{"d":"21,-162v4,-83,114,-125,176,-68r-17,36v-10,-30,-68,-39,-94,-16v-12,10,-20,28,-24,48r104,0r-11,23r-96,1v-1,10,0,18,0,27r83,0r-11,23r-68,0v4,33,24,60,63,59v28,-1,45,-9,60,-26r0,41v-15,13,-37,19,-62,19v-60,1,-95,-41,-103,-93r-26,0r10,-23r13,0v-1,-9,-1,-17,0,-27r-23,0r10,-24r16,0"},"\u00a0":{"w":100},"\u00ad":{"d":"18,-78r0,-39r104,0r0,39r-104,0","w":140}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright © 1988, 1990, 1993, 2002 Adobe Systems Incorporated.  All Rights
 * Reserved. © 1981, 2002 Heidelberger Druckmaschinen AG. All rights reserved.
 * 
 * Trademark:
 * Helvetica is a trademark of Heidelberger Druckmaschinen AG, exclusively
 * licensed through Linotype Library GmbH, and may be registered in certain
 * jurisdictions.
 * 
 * Full name:
 * HelveticaNeueLTStd-Bd
 * 
 * Designer:
 * Linotype Staff
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":200,"face":{"font-family":"HelveticaNeue","font-weight":700,"font-stretch":"normal","units-per-em":"360","panose-1":"2 11 8 4 2 2 2 2 2 4","ascent":"257","descent":"-103","x-height":"5","bbox":"-21 -351 340 78.3653","underline-thickness":"18","underline-position":"-18","stemh":"39","stemv":"51","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":100},"!":{"d":"77,-257v3,67,-7,123,-14,180r-26,0v-7,-58,-17,-112,-14,-180r54,0xm22,0r0,-55r56,0r0,55r-56,0","w":100},"\"":{"d":"98,-141r0,-116r38,0r0,116r-38,0xm31,-141r0,-116r38,0r0,116r-38,0","w":166},"#":{"d":"32,0r10,-71r-30,0r0,-33r34,0r7,-44r-30,0r0,-33r34,0r10,-71r35,0r-10,71r35,0r9,-71r35,0r-9,71r26,0r0,33r-31,0r-6,44r26,0r0,33r-31,0r-10,71r-34,0r9,-71r-34,0r-10,71r-35,0xm122,-148r-35,0r-6,44r35,0"},"$":{"d":"89,-162r0,-59v-16,0,-32,10,-32,30v0,16,9,24,32,29xm111,-105r0,69v18,-2,38,-12,38,-35v0,-19,-10,-26,-38,-34xm89,-111v-40,-11,-83,-22,-83,-75v0,-49,40,-74,83,-77r0,-28r22,0r0,28v43,5,78,27,81,77r-52,0v0,-19,-13,-35,-29,-35r0,64v6,1,12,2,18,4v70,19,72,60,72,84v0,21,-18,70,-90,75r0,31r-22,0r0,-31v-53,-4,-84,-33,-89,-90r51,0v0,27,16,44,38,48r0,-75"},"%":{"d":"27,-186v0,-39,19,-71,61,-71v45,0,59,33,59,73v0,39,-19,67,-61,67v-44,0,-59,-29,-59,-69xm64,-185v0,15,0,41,23,41v22,0,24,-26,24,-41v0,-14,-2,-45,-23,-45v-23,0,-24,28,-24,45xm213,-66v0,-39,19,-69,61,-69v45,0,59,31,59,71v0,39,-19,69,-61,69v-44,0,-59,-31,-59,-71xm249,-66v0,15,1,44,24,44v22,0,23,-28,23,-43v0,-14,-1,-43,-22,-43v-23,0,-25,25,-25,42xm91,8r149,-268r31,0r-148,268r-32,0","w":360},"&":{"d":"111,-165v28,-8,39,-56,3,-61v-34,3,-24,47,-3,61xm140,-60r-44,-53v-18,8,-36,21,-36,42v0,42,62,42,80,11xm188,0r-21,-26v-46,53,-157,37,-155,-46v0,-36,27,-61,57,-75v-14,-17,-24,-32,-24,-54v0,-36,33,-59,67,-59v39,0,70,21,70,62v0,30,-20,50,-46,64r34,40v5,-9,8,-20,9,-30r44,0v-3,23,-11,45,-25,63r53,61r-63,0","w":246},"(":{"d":"66,-263r43,0v-53,103,-52,226,0,329r-43,0v-62,-99,-63,-230,0,-329","w":106},")":{"d":"40,66r-43,0v54,-101,53,-226,1,-329r42,0v63,98,64,231,0,329","w":106},"*":{"d":"87,-257r0,45r42,-16r10,28r-43,14r27,35r-24,18r-27,-37r-25,37r-24,-18r27,-35r-42,-14r10,-28r40,16r0,-45r29,0","w":146},"+":{"d":"127,-182r0,72r72,0r0,38r-72,0r0,72r-38,0r0,-72r-72,0r0,-38r72,0r0,-72r38,0","w":216},",":{"d":"22,0r0,-55r56,0v5,61,-4,109,-56,115r0,-26v15,-3,27,-18,26,-34r-26,0","w":100},"-":{"d":"19,-76r0,-44r108,0r0,44r-108,0","w":146},".":{"d":"22,0r0,-55r56,0r0,55r-56,0","w":100},"\/":{"d":"-4,6r100,-269r42,0r-101,269r-41,0","w":133},"0":{"d":"8,-127v0,-98,42,-130,92,-130v50,0,93,32,93,130v0,100,-43,132,-93,132v-50,0,-92,-32,-92,-132xm59,-127v0,28,0,90,41,90v42,0,41,-62,41,-90v0,-26,1,-88,-41,-88v-41,0,-41,62,-41,88"},"1":{"d":"141,-252r0,252r-51,0r0,-163r-63,0r0,-39v36,1,68,-11,73,-50r41,0"},"2":{"d":"191,-178v-1,79,-85,84,-118,134r120,0r0,44r-185,0v0,-58,35,-83,79,-113v22,-15,53,-30,53,-61v0,-24,-16,-39,-38,-39v-30,0,-40,31,-40,58r-49,0v-2,-58,32,-102,92,-102v46,0,86,30,86,79"},"3":{"d":"82,-114r0,-36v22,2,54,-2,54,-31v0,-21,-17,-34,-36,-34v-26,0,-39,19,-39,45r-48,0v2,-51,35,-87,87,-87v40,0,84,25,84,70v1,25,-14,44,-35,52v28,6,45,29,45,57v0,53,-45,83,-94,83v-57,0,-95,-34,-94,-92r49,0v1,27,14,50,44,50v23,0,41,-16,41,-40v0,-38,-33,-37,-58,-37"},"4":{"d":"112,0r0,-58r-106,0r0,-47r109,-147r46,0r0,152r33,0r0,42r-33,0r0,58r-49,0xm112,-100r-1,-88r-65,88r66,0"},"5":{"d":"180,-252r0,42r-104,0v-2,19,-9,41,-9,58v49,-47,127,-2,127,66v0,52,-43,91,-94,91v-49,0,-93,-27,-94,-80r52,0v3,22,19,38,41,38v27,0,44,-24,44,-49v0,-46,-62,-64,-83,-27r-46,0r25,-139r141,0"},"6":{"d":"58,-142v39,-54,135,-18,135,55v0,51,-36,92,-89,92v-76,0,-96,-66,-96,-130v0,-62,27,-132,99,-132v44,0,75,26,81,70r-48,0v-3,-17,-16,-32,-34,-32v-37,0,-47,49,-48,77xm103,-131v-27,0,-41,22,-41,47v0,23,15,47,41,47v24,0,38,-23,38,-46v0,-24,-12,-48,-38,-48"},"7":{"d":"186,-252r0,44v-53,46,-81,141,-82,208r-55,0v6,-75,37,-146,85,-204r-120,0r0,-48r172,0"},"8":{"d":"56,-76v0,26,21,43,45,43v24,0,43,-18,43,-43v0,-24,-19,-40,-43,-40v-25,0,-45,14,-45,40xm15,-188v0,-45,44,-69,85,-69v63,0,85,44,85,68v0,25,-13,45,-37,53v30,7,47,30,47,62v0,53,-47,79,-94,79v-49,0,-96,-25,-96,-79v0,-32,18,-55,48,-62v-24,-7,-38,-27,-38,-52xm62,-184v0,22,17,34,38,34v21,0,38,-12,38,-34v0,-13,-6,-35,-38,-35v-21,0,-38,13,-38,35"},"9":{"d":"142,-111v-41,59,-134,17,-134,-54v0,-51,35,-92,88,-92v76,0,97,66,97,130v0,62,-27,132,-99,132v-44,0,-76,-26,-82,-70r48,0v3,17,16,32,34,32v36,0,51,-51,48,-78xm97,-121v27,0,41,-22,41,-47v0,-23,-15,-47,-41,-47v-24,0,-38,23,-38,46v0,24,12,48,38,48"},":":{"d":"22,0r0,-55r56,0r0,55r-56,0xm78,-183r0,56r-56,0r0,-56r56,0","w":100},";":{"d":"22,0r0,-55r56,0v5,61,-4,109,-56,115r0,-26v15,-3,27,-18,26,-34r-26,0xm78,-183r0,56r-56,0r0,-56r56,0","w":100},"<":{"d":"199,-185r0,41r-132,53r132,52r0,42r-182,-73r0,-42","w":216},"=":{"d":"199,-149r0,39r-182,0r0,-39r182,0xm199,-72r0,39r-182,0r0,-39r182,0","w":216},">":{"d":"17,3r0,-42r132,-52r-132,-53r0,-41r182,73r0,42","w":216},"?":{"d":"75,-77v-8,-68,57,-66,57,-112v0,-22,-11,-32,-30,-32v-26,0,-38,21,-38,47r-52,0v1,-51,34,-89,87,-89v68,0,90,41,90,69v0,71,-67,52,-66,117r-48,0xm69,0r0,-55r57,0r0,55r-57,0"},"@":{"d":"149,-168v-42,-3,-65,81,-16,85v42,3,64,-81,16,-85xm224,-196r-23,93v-3,10,-6,23,3,23v21,0,43,-27,43,-66v0,-57,-43,-88,-98,-88v-62,0,-101,45,-101,106v0,97,121,136,183,76r30,0v-24,37,-64,58,-109,58v-77,0,-139,-58,-139,-135v0,-76,62,-134,137,-134v66,0,125,44,125,110v0,74,-62,104,-85,104v-16,1,-24,-10,-27,-20v-29,43,-95,9,-95,-41v0,-62,79,-130,121,-67r5,-19r30,0","w":288},"A":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0","w":246},"B":{"d":"81,-114r0,70v44,-3,102,15,103,-34v1,-49,-59,-34,-103,-36xm25,0r0,-257v83,5,205,-26,203,64v0,25,-13,42,-35,53v31,9,47,33,47,65v0,97,-121,72,-215,75xm81,-213r0,60v39,-2,93,12,92,-31v-2,-42,-54,-26,-92,-29","w":253},"C":{"d":"251,-171r-55,0v-4,-26,-28,-45,-56,-45v-51,0,-70,44,-70,89v0,43,19,86,70,86v35,0,54,-24,58,-58r55,0v-6,64,-50,105,-113,105v-80,0,-126,-59,-126,-133v0,-76,46,-136,126,-136v57,0,104,33,111,92","w":266},"D":{"d":"25,0r0,-257r111,0v67,0,116,42,116,127v0,75,-38,130,-116,130r-111,0xm81,-210r0,162v68,2,111,3,115,-77v4,-69,-40,-93,-115,-85","w":266},"E":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0","w":233},"F":{"d":"25,0r0,-257r181,0r0,47r-125,0r0,60r108,0r0,44r-108,0r0,106r-56,0","w":213,"k":{"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46}},"G":{"d":"216,0r-5,-29v-71,84,-197,5,-197,-98v0,-76,46,-136,126,-136v53,0,102,33,108,91r-54,0v-6,-28,-27,-44,-54,-44v-51,0,-70,44,-70,89v0,43,19,86,70,86v37,0,58,-20,61,-56r-57,0r0,-42r108,0r0,139r-36,0","w":273},"H":{"d":"25,0r0,-257r56,0r0,99r104,0r0,-99r57,0r0,257r-57,0r0,-111r-104,0r0,111r-56,0","w":266},"I":{"d":"25,0r0,-257r56,0r0,257r-56,0","w":106},"J":{"d":"175,-257r0,176v0,33,-8,87,-85,87v-50,0,-94,-33,-85,-102r51,0v-1,30,1,55,33,55v30,0,30,-25,30,-43r0,-173r56,0"},"K":{"d":"25,0r0,-257r56,0r0,107r101,-107r70,0r-100,101r110,156r-71,0r-77,-116r-33,33r0,83r-56,0","w":259},"L":{"d":"25,0r0,-257r56,0r0,209r126,0r0,48r-182,0","w":213,"k":{"T":40,"V":33,"W":20,"y":13,"\u00fd":13,"\u00ff":13,"Y":40,"\u00dd":40}},"M":{"d":"25,0r0,-257r79,0r61,177r57,-177r80,0r0,257r-53,0r-1,-182r-63,182r-44,0r-63,-180r0,180r-53,0","w":326},"N":{"d":"25,0r0,-257r56,0r108,172r0,-172r53,0r0,257r-57,0r-107,-172r0,172r-53,0","w":266},"O":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89","w":280},"P":{"d":"25,0r0,-257r116,0v64,0,89,40,89,82v0,42,-25,83,-89,83r-60,0r0,92r-56,0xm81,-213r0,77v44,-2,94,11,94,-39v0,-49,-50,-36,-94,-38","w":240,"k":{"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":46,".":46}},"Q":{"d":"265,-4r-26,28r-37,-33v-17,10,-38,15,-62,15v-80,0,-126,-59,-126,-133v0,-76,46,-136,126,-136v119,0,162,152,93,230xm139,-67r26,-28r29,27v30,-46,20,-148,-54,-148v-51,0,-70,44,-70,89v0,51,35,101,93,82","w":280},"R":{"d":"190,0v-13,-35,4,-100,-52,-100r-57,0r0,100r-56,0r0,-257r138,0v81,-4,104,109,35,135v49,16,28,78,48,122r-56,0xm81,-213r0,72v44,-3,101,13,101,-36v0,-48,-57,-34,-101,-36","w":259,"k":{"T":6,"V":-2,"W":-2,"Y":13,"\u00dd":13}},"S":{"d":"72,-190v0,48,153,16,153,114v0,47,-37,82,-107,82v-57,0,-110,-28,-109,-91r54,0v0,34,27,47,57,47v20,0,50,-6,50,-32v0,-28,-38,-32,-76,-42v-38,-10,-77,-25,-77,-73v0,-106,202,-106,199,5r-54,0v-2,-31,-24,-39,-51,-39v-18,0,-39,7,-39,29","w":233},"T":{"d":"82,0r0,-210r-77,0r0,-47r210,0r0,47r-77,0r0,210r-56,0","w":219,"k":{"\u00fc":33,"\u00f2":40,"\u00f6":40,"\u00e8":40,"\u00eb":40,"\u00ea":40,"\u00e3":40,"\u00e5":40,"\u00e0":40,"\u00e4":40,"\u00e2":40,"w":40,"y":33,"\u00fd":33,"\u00ff":33,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"c":40,"\u00e7":40,"e":40,"\u00e9":40,"o":40,"\u00f8":40,"\u00f3":40,"\u00f4":40,"\u00f5":40,"-":46,"a":40,"\u00e6":40,"\u00e1":40,"r":33,"s":40,"u":33,"\u00fa":33,"\u00fb":33,"\u00f9":33,":":31,";":31}},"U":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0","w":266},"V":{"d":"230,-257r-86,257r-63,0r-84,-257r58,0r58,181r58,-181r59,0","w":226,"k":{"\u00f6":20,"\u00f4":20,"\u00ee":6,"\u00e8":20,"\u00eb":20,"\u00ea":20,"\u00e3":20,"\u00e5":20,"\u00e0":20,"\u00e4":20,"\u00e2":20,"y":6,"\u00fd":6,"\u00ff":6,"A":17,"\u00c6":17,"\u00c1":17,"\u00c2":17,"\u00c4":17,"\u00c0":17,"\u00c5":17,"\u00c3":17,",":46,".":46,"e":20,"\u00e9":20,"o":20,"\u00f8":20,"\u00f3":20,"\u00f2":20,"\u00f5":20,"-":20,"a":20,"\u00e6":20,"\u00e1":20,"r":13,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,":":18,";":18,"i":6,"\u00ed":6,"\u00ef":6,"\u00ec":6}},"W":{"d":"339,-257r-69,257r-57,0r-44,-175r-43,175r-57,0r-68,-257r57,0r41,175r45,-175r53,0r44,177r42,-177r56,0","w":339,"k":{"\u00fc":6,"\u00f6":13,"\u00ea":13,"\u00e4":13,"A":6,"\u00c6":6,"\u00c1":6,"\u00c2":6,"\u00c4":6,"\u00c0":6,"\u00c5":6,"\u00c3":6,",":27,".":27,"e":13,"\u00e9":13,"\u00eb":13,"\u00e8":13,"o":13,"\u00f8":13,"\u00f3":13,"\u00f4":13,"\u00f2":13,"\u00f5":13,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"r":6,"u":6,"\u00fa":6,"\u00fb":6,"\u00f9":6,":":6,";":6}},"X":{"d":"-2,0r90,-135r-83,-122r66,0r50,82r52,-82r62,0r-82,123r89,134r-67,0r-56,-89r-57,89r-64,0","w":240},"Y":{"d":"91,0r0,-100r-94,-157r63,0r61,101r59,-101r63,0r-95,158r0,99r-57,0","w":240,"k":{"\u00fc":27,"\u00f6":33,"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":27,"\u00fa":27,"\u00fb":27,"\u00f9":27,":":29,";":24,"i":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"p":27}},"Z":{"d":"8,0r0,-45r138,-165r-127,0r0,-47r202,0r0,45r-137,164r141,0r0,48r-217,0","w":233},"[":{"d":"24,66r0,-329r96,0r0,40r-44,0r0,248r44,0r0,41r-96,0","w":119},"\\":{"d":"37,-263r101,269r-42,0r-100,-269r41,0","w":133},"]":{"d":"95,-263r0,329r-95,0r0,-41r44,0r0,-248r-44,0r0,-40r95,0","w":119},"^":{"d":"22,-113r62,-139r48,0r62,139r-42,0r-44,-99r-44,99r-42,0","w":216},"_":{"d":"0,45r0,-18r180,0r0,18r-180,0","w":180},"a":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28","w":206},"b":{"d":"19,0r0,-257r52,0r0,94v48,-55,137,-29,136,70v0,68,-40,98,-77,98v-28,1,-49,-10,-62,-29r0,24r-49,0xm156,-93v0,-31,-14,-60,-44,-60v-30,0,-43,29,-43,60v0,31,13,60,43,60v30,0,44,-29,44,-60","w":219},"c":{"d":"196,-121r-50,0v-3,-21,-17,-32,-38,-32v-33,0,-43,34,-43,61v0,27,10,59,42,59v24,0,38,-15,41,-38r49,0v-6,49,-40,76,-89,76v-56,0,-94,-39,-94,-95v0,-58,35,-101,95,-101v44,0,84,22,87,70","w":206},"d":{"d":"152,0r0,-24v-12,20,-33,29,-57,29v-56,0,-83,-49,-83,-100v0,-50,27,-96,82,-96v23,-1,42,12,56,28r0,-94r51,0r0,257r-49,0xm152,-94v0,-30,-11,-59,-44,-59v-33,0,-45,29,-45,60v0,29,13,60,45,60v34,0,44,-30,44,-61","w":219},"e":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40","w":206},"f":{"d":"31,0r0,-152r-31,0r0,-34r31,0v-7,-54,29,-78,89,-70r0,39v-24,-6,-43,1,-38,31r35,0r0,34r-35,0r0,152r-51,0","w":119,"k":{"f":6,"\u00df":6}},"g":{"d":"198,-186r0,174v0,31,-10,83,-96,83v-37,0,-79,-18,-82,-60r51,0v13,44,87,27,79,-21v-1,-7,2,-18,-1,-24v-11,19,-34,29,-56,29v-56,0,-79,-43,-79,-94v0,-48,28,-92,80,-92v25,-1,42,10,56,30r0,-25r48,0xm106,-44v29,0,44,-24,44,-51v0,-30,-11,-58,-44,-58v-29,0,-41,25,-41,53v0,27,10,56,41,56","w":219},"h":{"d":"19,0r0,-257r52,0r1,97v13,-21,35,-31,54,-31v97,-2,61,108,68,191r-51,0v-6,-52,21,-148,-33,-151v-59,-3,-34,97,-39,151r-52,0","w":213},"i":{"d":"21,0r0,-186r51,0r0,186r-51,0xm72,-257r0,42r-51,0r0,-42r51,0","w":92},"j":{"d":"-7,64r0,-42v14,2,31,3,31,-15r0,-193r51,0r0,195v5,44,-31,63,-82,55xm75,-257r0,42r-51,0r0,-42r51,0","w":100},"k":{"d":"24,0r0,-257r51,0r0,138r65,-67r60,0r-70,68r78,118r-62,0r-51,-83r-20,19r0,64r-51,0","w":206},"l":{"d":"21,0r0,-257r51,0r0,257r-51,0","w":92},"m":{"d":"21,0r0,-186r48,0v1,8,-2,19,1,25v23,-38,91,-43,111,1v26,-47,124,-44,124,35r0,125r-51,0r0,-105v0,-25,-2,-46,-31,-46v-29,0,-34,24,-34,47r0,104r-51,0r0,-104v0,-22,1,-47,-31,-47v-10,0,-35,7,-35,43r0,108r-51,0","w":326},"n":{"d":"19,0r0,-186r49,0v1,8,-2,20,1,26v13,-21,35,-31,57,-31v97,-2,61,108,68,191r-51,0v-6,-52,21,-148,-33,-151v-59,-3,-34,97,-39,151r-52,0","w":213},"o":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60","w":219},"p":{"d":"19,66r0,-252r49,0v1,7,-2,18,1,24v12,-20,32,-29,55,-29v58,0,85,47,85,100v0,50,-28,96,-82,96v-22,0,-44,-10,-56,-28r0,89r-52,0xm113,-33v58,0,64,-120,0,-120v-61,0,-60,120,0,120","w":219},"q":{"d":"201,-186r0,252r-51,0r-1,-89v-12,20,-37,28,-59,28v-34,0,-78,-25,-78,-97v0,-51,26,-99,83,-99v23,0,45,8,57,29r0,-24r49,0xm108,-153v-61,0,-62,120,-1,120v33,0,45,-28,45,-59v0,-29,-12,-61,-44,-61","w":219},"r":{"d":"19,0r0,-186r49,0v1,11,-2,25,1,34v11,-25,40,-45,70,-37r0,47v-43,-10,-68,18,-68,58r0,84r-52,0","w":140,"k":{",":33,".":33,"c":6,"\u00e7":6,"d":6,"e":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"n":-6,"\u00f1":-6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"q":6,"-":20}},"s":{"d":"132,-53v0,-36,-117,-18,-117,-78v0,-48,41,-60,81,-60v41,0,78,13,82,59r-49,0v-1,-20,-17,-25,-35,-25v-12,0,-28,2,-28,17v0,18,29,21,58,28v30,7,59,17,59,52v0,49,-43,65,-85,65v-43,0,-86,-16,-88,-65r49,0v-2,38,73,44,73,7","w":193},"t":{"d":"84,-242r0,56r38,0r0,34r-38,0r0,92v-3,24,19,24,38,20r0,40v-41,4,-89,6,-89,-42r0,-110r-31,0r0,-34r31,0r0,-56r51,0","w":126},"u":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0","w":213},"v":{"d":"185,-186r-63,186r-56,0r-64,-186r53,0r40,127r40,-127r50,0","w":187,"k":{",":20,".":20}},"w":{"d":"291,-186r-59,186r-52,0r-34,-125r-32,125r-53,0r-59,-186r54,0r35,126r31,-126r50,0r32,126r34,-126r53,0","w":293,"k":{",":20,".":20}},"x":{"d":"0,0r67,-98r-61,-88r58,0r33,48r32,-48r57,0r-61,87r68,99r-58,0r-39,-59r-39,59r-57,0","w":193},"y":{"d":"189,-186r-78,209v-12,40,-48,47,-95,41r0,-42v30,7,58,-5,47,-34r-65,-174r55,0r42,127r41,-127r53,0","w":186,"k":{",":20,".":20}},"z":{"d":"8,0r0,-39r97,-109r-90,0r0,-38r157,0r0,38r-97,109r104,0r0,39r-171,0","w":186},"{":{"d":"120,-263r0,40v-24,-3,-39,5,-39,26r0,55v0,37,-27,40,-36,44v11,1,36,9,36,39v0,38,-20,93,39,84r0,41v-49,1,-90,4,-90,-49r0,-70v0,-22,-21,-30,-33,-30r0,-31v12,0,33,-9,33,-33r0,-68v6,-53,41,-49,90,-48","w":119},"|":{"d":"21,77r0,-360r38,0r0,360r-38,0","w":80},"}":{"d":"0,66r0,-41v24,3,39,-5,39,-26r0,-58v0,-31,27,-36,36,-40v-11,-1,-36,-8,-36,-43v0,-37,18,-90,-39,-81r0,-40v49,-1,90,-5,90,48r0,68v0,24,21,33,33,33r0,31v-12,0,-33,8,-33,30r0,70v-6,53,-41,51,-90,49","w":119},"~":{"d":"69,-122v24,0,56,23,77,24v14,0,23,-13,31,-26r15,34v-11,15,-23,31,-45,31v-36,0,-90,-51,-108,1r-15,-33v8,-15,21,-31,45,-31","w":216},"\u00a1":{"d":"78,-191r0,55r-56,0r0,-55r56,0xm23,66v-3,-67,7,-123,14,-180r26,0v7,58,17,112,14,180r-54,0","w":100},"\u00a2":{"d":"94,-33r0,-119v-49,15,-47,103,0,119xm94,41r0,-36v-51,-3,-86,-44,-86,-95v0,-55,30,-96,86,-101r0,-31r21,0r0,31v40,0,79,28,80,71r-50,0v-1,-17,-14,-32,-30,-33r0,120v18,-3,31,-22,31,-40r50,0v-4,46,-37,74,-81,78r0,36r-21,0"},"\u00a3":{"d":"204,-17v-50,57,-118,-18,-172,23r-23,-33v26,-16,54,-49,34,-84r-35,0r0,-31r23,0v-36,-49,-11,-121,76,-121v54,0,87,32,87,90r-49,0v-1,-14,-2,-48,-39,-48v-42,0,-45,38,-20,79r48,0r0,31r-38,0v12,33,-10,57,-26,73v38,-27,80,24,113,-15"},"\u00a5":{"d":"129,0r-54,0r0,-50r-57,0r0,-34r57,0v1,-12,-1,-21,-6,-27r-51,0r0,-34r34,0r-55,-112r58,0r48,112r46,-112r59,0r-56,112r34,0r0,34r-51,0v-5,6,-7,15,-6,27r57,0r0,34r-57,0r0,50"},"\u00a7":{"d":"152,-81v-9,-33,-52,-37,-76,-56v-13,-10,-28,8,-28,21v0,7,4,13,12,17v26,12,45,30,75,38v9,0,17,-12,17,-20xm128,3v0,-46,-124,-51,-124,-115v0,-26,14,-44,38,-53v-40,-41,7,-98,60,-98v42,0,76,24,76,69r-45,0v5,-36,-55,-42,-58,-8v8,44,122,49,122,112v0,24,-16,45,-38,53v14,10,20,25,20,42v0,41,-41,61,-77,61v-46,0,-81,-21,-81,-70r45,0v1,21,13,31,35,31v15,0,27,-8,27,-24"},"\u00a4":{"d":"7,-54r21,-21v-23,-24,-25,-78,0,-102r-21,-21r21,-21r20,20v24,-20,79,-22,102,0r21,-21r22,22r-20,20v21,25,22,79,-1,104r20,20r-20,20r-20,-21v-24,24,-79,24,-104,1r-21,21xm101,-177v-30,0,-46,24,-46,51v0,26,15,51,45,51v59,1,59,-101,1,-102"},"'":{"d":"31,-141r0,-116r38,0r0,116r-38,0","w":100},"\u00ab":{"d":"145,-29r-57,-45r0,-48r57,-45r0,44r-33,25r33,26r0,43xm72,-29r-57,-45r0,-48r57,-45r0,44r-33,25r33,26r0,43","w":159},"\u00b7":{"d":"20,-103v0,-17,13,-31,30,-31v16,0,31,14,31,31v0,15,-14,30,-30,30v-17,0,-31,-13,-31,-30","w":100},"\u00b6":{"d":"80,60r0,-189v-50,0,-79,-25,-79,-63v-1,-87,111,-61,192,-65r0,317r-37,0r0,-288r-40,0r0,288r-36,0","w":223},"\u00bb":{"d":"88,-167r57,45r0,48r-57,45r0,-43r33,-26r-33,-25r0,-44xm15,-167r57,45r0,48r-57,45r0,-43r33,-26r-33,-25r0,-44","w":159},"\u00bf":{"d":"126,-116v8,69,-58,65,-58,112v0,22,12,32,31,32v25,0,36,-20,36,-46r53,0v-1,51,-35,89,-87,89v-68,0,-89,-42,-89,-70v0,-71,66,-53,65,-117r49,0xm131,-191r0,55r-57,0r0,-55r57,0"},"`":{"d":"38,-209r-55,-51r56,0r35,51r-36,0","w":93},"\u00b4":{"d":"111,-260r-56,51r-36,0r35,-51r57,0","w":93},"\u00af":{"d":"-21,-222r0,-27r135,0r0,27r-135,0","w":93},"\u00a8":{"d":"59,-215r0,-42r49,0r0,42r-49,0xm-15,-215r0,-42r49,0r0,42r-49,0","w":93},"\u00b8":{"d":"4,71r8,-18v11,4,45,16,45,-5v0,-23,-33,-1,-37,-18r21,-31r18,0v-3,6,-12,15,-13,20v18,-6,45,1,45,23v0,46,-59,39,-87,29","w":93},"\u00c6":{"d":"150,-210r-49,111r62,0r0,-111r-13,0xm-4,0r123,-257r218,0r0,47r-120,0r0,56r113,0r0,43r-113,0r0,63r123,0r0,48r-177,0r0,-57r-81,0r-26,57r-60,0","w":353},"\u00aa":{"d":"83,-193v-12,10,-42,3,-43,21v16,29,51,7,43,-21xm7,-218v4,-29,26,-39,56,-39v25,0,54,5,54,32v0,28,-4,68,5,87r-37,0v-1,-4,-2,-7,-2,-11v-24,23,-79,21,-79,-22v0,-26,20,-32,41,-35v22,-3,38,-2,38,-14v-1,-20,-38,-20,-39,2r-37,0","w":123},"\u00d8":{"d":"12,-4r31,-34v-63,-80,-20,-225,97,-225v33,0,60,10,81,28r29,-32r18,15r-30,34v61,82,20,224,-98,224v-33,0,-60,-10,-80,-27r-30,33xm80,-79r107,-118v-11,-11,-26,-19,-47,-19v-68,0,-83,82,-60,137xm200,-176r-106,117v11,11,26,18,46,18v69,-1,83,-80,60,-135","w":280},"\u00ba":{"d":"4,-196v0,-38,25,-61,62,-61v37,0,62,23,62,61v0,38,-25,61,-62,61v-37,0,-62,-23,-62,-61xm66,-230v-31,0,-31,67,0,68v32,-1,31,-68,0,-68","w":132},"\u00e6":{"d":"139,-91v-20,16,-73,3,-74,38v0,19,16,24,31,24v27,1,50,-23,43,-62xm316,-81r-133,0v-1,24,17,52,45,52v22,0,34,-11,37,-29r49,0v-14,68,-114,86,-155,31v-34,45,-145,50,-145,-23v0,-42,31,-52,62,-57v44,-6,63,-7,63,-26v0,-34,-70,-34,-69,5r-51,0v2,-70,110,-83,149,-38v14,-17,32,-25,62,-25v62,0,86,52,86,110xm183,-113r82,0v0,-23,-14,-44,-40,-44v-26,0,-42,21,-42,44","w":326},"\u00f8":{"d":"70,-62r70,-79v-7,-7,-17,-12,-30,-12v-46,0,-51,53,-40,91xm149,-126r-70,80v7,8,17,13,31,13v47,0,52,-56,39,-93xm16,0r21,-25v-50,-58,-14,-166,73,-166v23,0,42,6,58,17r20,-22r13,12r-20,22v52,56,19,167,-71,167v-23,0,-44,-6,-60,-18r-21,24","w":219},"\u00df":{"d":"20,0r0,-177v0,-40,13,-86,85,-86v43,0,81,21,81,69v1,23,-15,43,-33,51v31,7,47,33,47,64v0,55,-45,96,-108,82r0,-42v31,9,57,-13,57,-42v0,-30,-22,-49,-57,-43r0,-34v23,4,46,-6,46,-31v0,-30,-24,-32,-35,-32v-21,0,-32,14,-32,35r0,186r-51,0","w":219},"\u00b9":{"d":"104,-254r0,156r-37,0r0,-99r-39,0r0,-27v23,1,43,-7,46,-30r30,0","w":141},"\u00ac":{"d":"199,-146r0,110r-39,0r0,-72r-143,0r0,-38r182,0","w":216},"\u00b5":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-19,30,-50,40,-73,22r0,70r-52,0r0,-252r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0","w":213},"\u00d0":{"d":"25,0r0,-112r-24,0r0,-42r24,0r0,-103r111,0v67,0,116,42,116,127v0,75,-38,130,-116,130r-111,0xm81,-210r0,56r58,0r0,42r-58,0r0,64v68,2,111,3,115,-77v4,-69,-40,-93,-115,-85","w":266},"\u00bd":{"d":"55,8r149,-268r30,0r-148,268r-31,0xm85,-254r0,156r-37,0r0,-99r-39,0r0,-27v23,1,43,-7,46,-30r30,0xm305,-110v0,48,-55,49,-77,81r75,0r0,29r-120,0v0,-38,22,-53,50,-71v14,-9,35,-18,35,-37v0,-13,-9,-22,-22,-22v-20,0,-27,20,-26,34r-37,0v0,-37,21,-63,65,-63v30,0,57,17,57,49","w":320},"\u00b1":{"d":"127,-182r0,47r72,0r0,39r-72,0r0,47r-38,0r0,-47r-72,0r0,-39r72,0r0,-47r38,0xm17,0r0,-39r182,0r0,39r-182,0","w":216},"\u00de":{"d":"25,0r0,-257r56,0r0,35r60,0v64,0,89,40,89,82v0,42,-25,83,-89,83r-60,0r0,57r-56,0xm81,-178r0,77v44,-2,94,11,94,-39v0,-49,-50,-36,-94,-38","w":240},"\u00bc":{"d":"248,0r0,-32r-69,0r0,-34r68,-85r36,0r0,90r20,0r0,29r-20,0r0,32r-35,0xm248,-61v-1,-17,2,-37,-1,-52r-41,52r42,0xm55,8r149,-268r30,0r-148,268r-31,0xm85,-254r0,156r-37,0r0,-99r-39,0r0,-27v23,1,43,-7,46,-30r30,0","w":321},"\u00f7":{"d":"17,-72r0,-38r182,0r0,38r-182,0xm78,-166v0,-17,13,-30,30,-30v16,0,31,13,31,30v0,15,-14,31,-30,31v-17,0,-31,-14,-31,-31xm78,-16v0,-17,13,-30,30,-30v16,0,31,13,31,30v0,15,-14,30,-30,30v-17,0,-31,-13,-31,-30","w":216},"\u00a6":{"d":"21,32r0,-90r38,0r0,90r-38,0xm59,-238r0,90r-38,0r0,-90r38,0","w":80},"\u00b0":{"d":"19,-204v0,-30,23,-53,53,-53v30,0,53,23,53,53v0,30,-23,54,-53,54v-30,0,-53,-24,-53,-54xm42,-204v0,40,60,41,60,0v0,-44,-60,-37,-60,0","w":144},"\u00fe":{"d":"19,66r0,-323r52,0r0,95v12,-20,32,-29,53,-29v58,0,85,47,85,100v0,50,-28,96,-82,96v-22,0,-44,-10,-56,-28r0,89r-52,0xm113,-33v58,0,64,-120,0,-120v-61,0,-60,120,0,120","w":219},"\u00be":{"d":"255,0r0,-32r-69,0r0,-34r68,-85r36,0r0,90r20,0r0,29r-20,0r0,32r-35,0xm255,-61r0,-52r-42,52r42,0xm86,8r149,-268r31,0r-149,268r-31,0xm65,-167r0,-25v14,0,34,0,34,-17v0,-12,-10,-19,-22,-19v-15,0,-24,12,-24,26r-35,0v1,-33,23,-55,59,-55v46,0,83,58,33,75v16,6,29,17,29,35v0,35,-29,52,-62,52v-39,0,-64,-21,-63,-58r35,0v1,15,9,29,27,29v14,0,27,-10,27,-23v0,-21,-23,-20,-38,-20","w":320},"\u00b2":{"d":"131,-208v-1,49,-55,49,-76,81r75,0r0,29r-120,0v0,-38,22,-53,50,-71v14,-9,35,-18,35,-37v0,-13,-9,-22,-22,-22v-20,0,-27,20,-26,34r-37,0v0,-37,21,-63,65,-63v30,0,56,17,56,49","w":141},"\u00ae":{"d":"6,-129v0,-82,65,-134,138,-134v73,0,138,52,138,134v0,82,-65,135,-138,135v-73,0,-138,-53,-138,-135xm42,-129v0,62,45,106,102,106v56,0,102,-44,102,-106v0,-61,-46,-105,-102,-105v-57,0,-102,44,-102,105xm90,-54r0,-150v52,1,116,-9,116,44v0,28,-17,38,-39,40r40,66r-31,0r-37,-64r-19,0r0,64r-30,0xm120,-181r0,40v25,-1,57,7,56,-21v-1,-24,-32,-18,-56,-19","w":288},"\u00f0":{"d":"110,-33v62,-1,61,-115,-1,-115v-62,1,-60,115,1,115xm48,-213r38,-20v-10,-7,-20,-13,-30,-18r33,-25v13,7,25,15,36,24r44,-22r19,21r-41,20v38,37,59,80,59,135v0,59,-37,103,-96,103v-58,0,-96,-39,-96,-94v0,-44,24,-93,82,-93v14,-1,32,3,50,14v-9,-20,-25,-35,-37,-45r-40,20","w":219},"\u00d7":{"d":"50,-6r-27,-27r58,-58r-57,-58r27,-27r57,58r58,-58r27,27r-58,58r58,58r-27,27r-58,-58","w":216},"\u00b3":{"d":"59,-167r0,-25v14,0,34,0,34,-17v0,-12,-10,-19,-22,-19v-15,0,-24,12,-24,26r-35,0v1,-33,23,-55,59,-55v46,0,83,58,33,75v16,6,29,17,29,35v0,35,-29,52,-62,52v-39,0,-64,-21,-63,-58r34,0v1,15,10,29,28,29v14,0,26,-10,26,-23v0,-21,-22,-20,-37,-20","w":141},"\u00a9":{"d":"6,-129v0,-82,65,-134,138,-134v73,0,138,52,138,134v0,82,-65,135,-138,135v-73,0,-138,-53,-138,-135xm42,-129v0,61,45,106,102,106v56,0,102,-45,102,-106v0,-62,-46,-105,-102,-105v-57,0,-102,43,-102,105xm185,-106r30,0v-6,36,-34,57,-66,57v-47,0,-77,-35,-77,-80v0,-46,28,-81,76,-81v33,0,60,20,65,56r-28,0v-14,-47,-85,-28,-79,24v-8,51,70,73,79,24","w":288},"\u00c1":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm187,-331r-55,51r-36,0r35,-51r56,0","w":246},"\u00c2":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm60,-280r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":246},"\u00c4":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm136,-286r0,-42r49,0r0,42r-49,0xm62,-286r0,-42r49,0r0,42r-49,0","w":246},"\u00c0":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm115,-280r-56,-51r57,0r34,51r-35,0","w":246},"\u00c5":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm100,-307v0,14,9,25,23,25v14,0,23,-11,23,-25v0,-14,-9,-25,-23,-25v-14,0,-23,11,-23,25xm79,-307v0,-24,20,-44,44,-44v24,0,44,20,44,44v0,24,-20,44,-44,44v-24,0,-44,-20,-44,-44","w":246},"\u00c3":{"d":"-3,0r98,-257r58,0r96,257r-59,0r-19,-57r-96,0r-20,57r-58,0xm124,-194v-14,29,-22,64,-34,95r66,0xm103,-328v19,0,56,28,62,0r24,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":246},"\u00c7":{"d":"251,-171r-55,0v-4,-26,-28,-45,-56,-45v-51,0,-70,44,-70,89v0,43,19,86,70,86v35,0,54,-24,58,-58r55,0v-6,64,-49,104,-112,105r-9,13v18,-6,46,1,46,23v0,46,-59,39,-87,29r8,-18v10,4,44,16,44,-5v0,-23,-33,0,-36,-18r17,-25v-70,-7,-110,-63,-110,-132v0,-76,46,-136,126,-136v57,0,104,33,111,92","w":266},"\u00c9":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm181,-331r-56,51r-35,0r34,-51r57,0","w":233},"\u00ca":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm54,-280r40,-51r46,0r40,51r-42,0r-22,-29r-23,29r-39,0","w":233},"\u00cb":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm130,-286r0,-42r48,0r0,42r-48,0xm55,-286r0,-42r49,0r0,42r-49,0","w":233},"\u00c8":{"d":"25,0r0,-257r192,0r0,47r-136,0r0,56r125,0r0,43r-125,0r0,63r139,0r0,48r-195,0xm108,-280r-55,-51r56,0r35,51r-36,0","w":233},"\u00cd":{"d":"25,0r0,-257r56,0r0,257r-56,0xm117,-331r-55,51r-36,0r34,-51r57,0","w":106},"\u00ce":{"d":"25,0r0,-257r56,0r0,257r-56,0xm-10,-280r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":106},"\u00cf":{"d":"25,0r0,-257r56,0r0,257r-56,0xm66,-286r0,-42r48,0r0,42r-48,0xm-8,-286r0,-42r48,0r0,42r-48,0","w":106},"\u00cc":{"d":"25,0r0,-257r56,0r0,257r-56,0xm45,-280r-56,-51r57,0r34,51r-35,0","w":106},"\u00d1":{"d":"25,0r0,-257r56,0r108,172r0,-172r53,0r0,257r-57,0r-107,-172r0,172r-53,0xm113,-328v19,0,56,28,62,0r24,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":266},"\u00d3":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm204,-331r-55,51r-36,0r35,-51r56,0","w":280},"\u00d4":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm77,-280r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":280},"\u00d6":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm153,-286r0,-42r49,0r0,42r-49,0xm79,-286r0,-42r48,0r0,42r-48,0","w":280},"\u00d2":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm132,-280r-56,-51r57,0r34,51r-35,0","w":280},"\u00d5":{"d":"14,-127v0,-76,46,-136,126,-136v80,0,126,60,126,136v0,74,-46,133,-126,133v-80,0,-126,-59,-126,-133xm70,-127v0,43,19,86,70,86v51,0,70,-43,70,-86v0,-45,-19,-89,-70,-89v-51,0,-70,44,-70,89xm120,-328v16,0,31,12,46,13v11,0,15,-6,15,-13r25,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":280},"\u00da":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm197,-331r-55,51r-36,0r35,-51r56,0","w":266},"\u00db":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm70,-280r40,-51r47,0r40,51r-43,0r-22,-29r-23,29r-39,0","w":266},"\u00dc":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm146,-286r0,-42r49,0r0,42r-49,0xm72,-286r0,-42r49,0r0,42r-49,0","w":266},"\u00d9":{"d":"243,-257r0,160v0,69,-41,103,-110,103v-69,0,-109,-33,-109,-103r0,-160r56,0r0,160v0,28,7,56,53,56v40,0,53,-18,53,-56r0,-160r57,0xm125,-280r-56,-51r57,0r35,51r-36,0","w":266},"\u00dd":{"d":"91,0r0,-100r-94,-157r63,0r61,101r59,-101r63,0r-95,158r0,99r-57,0xm184,-331r-55,51r-36,0r34,-51r57,0","w":240,"k":{"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":40,".":40,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"u":27,"\u00fa":27,"\u00fb":27,"\u00fc":27,"\u00f9":27,":":29,";":24,"i":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"p":27}},"\u00e1":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm167,-260r-55,51r-36,0r35,-51r56,0","w":206},"\u00e2":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm40,-209r40,-51r47,0r40,51r-42,0r-23,-29r-23,29r-39,0","w":206},"\u00e4":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm116,-215r0,-42r49,0r0,42r-49,0xm42,-215r0,-42r49,0r0,42r-49,0","w":206},"\u00e0":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm95,-209r-55,-51r56,0r35,51r-36,0","w":206},"\u00e5":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm81,-236v0,14,8,25,22,25v14,0,23,-11,23,-25v0,-14,-9,-25,-23,-25v-14,0,-22,11,-22,25xm59,-236v0,-24,20,-44,44,-44v24,0,45,20,45,44v0,24,-21,44,-45,44v-24,0,-44,-20,-44,-44","w":206},"\u00e3":{"d":"135,-91v-19,16,-73,1,-72,38v0,19,14,24,31,24v49,0,40,-31,41,-62xm68,-129r-51,0v3,-48,46,-62,88,-62v37,0,81,8,81,53v0,45,-6,106,7,138r-52,0v-2,-6,-3,-12,-3,-18v-36,38,-127,32,-126,-33v0,-42,31,-51,63,-56v31,-4,60,-4,60,-25v0,-22,-15,-25,-33,-25v-19,0,-32,8,-34,28xm83,-257v16,0,32,12,47,13v11,0,15,-6,15,-13r25,0v-7,18,-13,41,-41,41v-25,0,-61,-29,-70,3r-22,0v5,-21,14,-44,46,-44","w":206},"\u00e7":{"d":"196,-121r-50,0v-3,-21,-17,-32,-38,-32v-33,0,-43,34,-43,61v0,27,10,59,42,59v24,0,38,-15,41,-38r49,0v-6,48,-38,75,-85,76v-2,4,-10,11,-9,14v18,-6,45,1,45,23v0,46,-59,39,-87,29r8,-18v10,4,44,16,44,-5v0,-23,-32,-1,-36,-18r18,-26v-49,-5,-81,-43,-81,-94v0,-58,35,-101,95,-101v44,0,84,22,87,70","w":206},"\u00e9":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm167,-260r-55,51r-36,0r35,-51r56,0","w":206},"\u00ea":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm40,-209r40,-51r47,0r40,51r-42,0r-23,-29r-23,29r-39,0","w":206},"\u00eb":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm116,-215r0,-42r49,0r0,42r-49,0xm42,-215r0,-42r49,0r0,42r-49,0","w":206},"\u00e8":{"d":"196,-81r-134,0v-7,56,74,60,86,23r45,0v-14,44,-46,63,-88,63v-59,0,-95,-40,-95,-98v0,-56,38,-98,95,-98v63,0,95,53,91,110xm62,-113r83,0v-5,-26,-16,-40,-41,-40v-32,0,-41,26,-42,40xm95,-209r-55,-51r56,0r35,51r-36,0","w":206},"\u00ed":{"d":"21,0r0,-186r51,0r0,186r-51,0xm111,-260r-56,51r-36,0r35,-51r57,0","w":92},"\u00ee":{"d":"21,0r0,-186r51,0r0,186r-51,0xm-17,-209r40,-51r47,0r40,51r-42,0r-23,-29r-23,29r-39,0","w":92},"\u00ef":{"d":"21,0r0,-186r51,0r0,186r-51,0xm59,-215r0,-42r49,0r0,42r-49,0xm-15,-215r0,-42r49,0r0,42r-49,0","w":92},"\u00ec":{"d":"21,0r0,-186r51,0r0,186r-51,0xm38,-209r-55,-51r56,0r35,51r-36,0","w":92},"\u00f1":{"d":"19,0r0,-186r49,0v1,8,-2,20,1,26v13,-21,35,-31,57,-31v97,-2,61,108,68,191r-51,0v-6,-52,21,-148,-33,-151v-59,-3,-34,97,-39,151r-52,0xm86,-257v16,0,32,12,47,13v11,0,15,-6,15,-13r25,0v-6,19,-13,41,-41,41v-25,0,-61,-29,-69,3r-22,0v5,-21,13,-44,45,-44","w":213},"\u00f3":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm174,-260r-56,51r-35,0r34,-51r57,0","w":219},"\u00f4":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm47,-209r40,-51r47,0r39,51r-42,0r-22,-29r-23,29r-39,0","w":219},"\u00f6":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm123,-215r0,-42r48,0r0,42r-48,0xm49,-215r0,-42r48,0r0,42r-48,0","w":219},"\u00f2":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm102,-209r-56,-51r57,0r34,51r-35,0","w":219},"\u00f5":{"d":"14,-93v0,-59,38,-98,96,-98v59,0,96,39,96,98v0,59,-37,98,-96,98v-58,0,-96,-39,-96,-98xm65,-93v0,30,10,60,45,60v35,0,45,-30,45,-60v0,-30,-10,-60,-45,-60v-35,0,-45,30,-45,60xm89,-257v16,0,32,12,47,13v11,0,15,-6,15,-13r25,0v-6,19,-12,41,-40,41v-25,0,-62,-29,-70,3r-22,0v5,-21,13,-44,45,-44","w":219},"\u00fa":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm171,-260r-56,51r-35,0r34,-51r57,0","w":213},"\u00fb":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm44,-209r40,-51r46,0r40,51r-42,0r-23,-29r-23,29r-38,0","w":213},"\u00fc":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm120,-215r0,-42r48,0r0,42r-48,0xm45,-215r0,-42r49,0r0,42r-49,0","w":213},"\u00f9":{"d":"194,-186r0,186r-49,0v-1,-8,2,-20,-1,-26v-13,21,-35,31,-57,31v-97,2,-61,-108,-68,-191r52,0r0,105v0,31,8,46,32,46v59,0,35,-96,40,-151r51,0xm98,-209r-55,-51r56,0r35,51r-36,0","w":213},"\u00fd":{"d":"189,-186r-78,209v-12,40,-48,47,-95,41r0,-42v30,7,58,-5,47,-34r-65,-174r55,0r42,127r41,-127r53,0xm157,-260r-55,51r-36,0r35,-51r56,0","w":186,"k":{",":20,".":20}},"\u00ff":{"d":"189,-186r-78,209v-12,40,-48,47,-95,41r0,-42v30,7,58,-5,47,-34r-65,-174r55,0r42,127r41,-127r53,0xm106,-215r0,-42r49,0r0,42r-49,0xm32,-215r0,-42r49,0r0,42r-49,0","w":186,"k":{",":20,".":20}},"\u20ac":{"d":"35,-164v10,-78,96,-123,172,-78r-22,45v-41,-28,-86,-22,-97,33r88,0r-11,26r-81,0r0,15r76,0r-11,26r-63,0v12,66,65,71,109,34r0,55v-75,40,-158,-10,-162,-89r-27,0r11,-26r14,0v0,-8,1,-12,1,-15r-27,0r12,-26r18,0"},"\u00a0":{"w":100},"\u00ad":{"d":"19,-76r0,-44r108,0r0,44r-108,0","w":146}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * Copyright © 1988, 1990, 1993, 2002 Adobe Systems Incorporated.  All Rights
 * Reserved. © 1981, 2002 Heidelberger Druckmaschinen AG. All rights reserved.
 * 
 * Trademark:
 * Helvetica is a trademark of Heidelberger Druckmaschinen AG, exclusively
 * licensed through Linotype Library GmbH, and may be registered in certain
 * jurisdictions.
 * 
 * Full name:
 * HelveticaNeueLTStd-Lt
 * 
 * Designer:
 * Linotype Staff
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":200,"face":{"font-family":"HelveticaNeueLT","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":"-26 -348 325 77","underline-thickness":"18","underline-position":"-18","stemh":"19","stemv":"23","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":100},"!":{"d":"37,-64r-6,-116r0,-77r25,0r0,77r-6,116r-13,0xm59,0r-31,0r0,-38r31,0r0,38","w":86},"\"":{"d":"31,-170r0,-87r23,0r0,87r-23,0xm79,-170r0,-87r23,0r0,87r-23,0","w":133},"#":{"d":"179,-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,0xm131,-153r-51,0r-8,57r51,0"},"$":{"d":"107,-117r0,103v31,0,60,-15,60,-52v0,-34,-32,-44,-60,-51xm93,-143r0,-100v-29,0,-53,15,-53,53v0,33,26,41,53,47xm10,-82r23,0v0,41,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,-22,-59,-53,-59r0,103v41,9,83,23,83,73v0,47,-41,72,-83,72r0,31r-14,0r0,-31v-56,-5,-81,-32,-83,-87"},"%":{"d":"82,-238v-30,0,-38,29,-38,52v0,23,8,52,38,52v30,0,38,-29,38,-52v0,-23,-8,-52,-38,-52xm82,-254v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm240,-131v41,0,57,29,57,68v0,39,-16,68,-57,68v-41,0,-57,-29,-57,-68v0,-39,16,-68,57,-68xm240,-114v-30,0,-38,29,-38,52v0,23,8,51,38,51v30,0,38,-28,38,-51v0,-23,-8,-52,-38,-52xm68,12r163,-273r17,0r-162,273r-18,0","w":320},"&":{"d":"153,-50r-64,-78v-24,13,-52,33,-52,64v0,30,27,50,56,50v26,0,46,-15,60,-36xm195,0r-28,-33v-37,58,-154,50,-153,-34v0,-37,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,-24,7,-43r23,0v0,14,-3,40,-15,62r43,52r-28,0xm102,-238v-19,0,-34,12,-34,33v0,18,18,38,29,52v18,-11,39,-27,39,-52v0,-21,-15,-33,-34,-33","w":219},"(":{"d":"87,69r-18,0v-68,-98,-66,-234,0,-331r18,0v-61,98,-61,234,0,331","w":86},")":{"d":"0,-262r18,0v67,97,65,234,0,331r-18,0v61,-98,61,-234,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,2,77,-32,87r0,-15v12,-4,18,-22,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,-235v-58,0,-65,66,-65,110v0,44,7,111,65,111v58,0,65,-67,65,-111v0,-44,-7,-110,-65,-110xm100,-254v73,0,88,70,88,129v0,59,-15,130,-88,130v-73,0,-88,-70,-88,-129v0,-59,15,-130,88,-130"},"1":{"d":"35,-187r0,-16v40,-1,64,-3,71,-49r18,0r0,252r-22,0r0,-187r-67,0"},"2":{"d":"178,-183v-1,86,-117,91,-139,162r140,0r0,21r-166,0v2,-75,76,-95,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-1,40,22,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-38,0,-59,27,-58,64r-22,0v0,-48,30,-83,79,-83v40,0,78,19,78,64v0,27,-15,50,-42,56v33,5,52,30,52,63v0,49,-41,76,-87,76v-52,0,-90,-31,-86,-85"},"4":{"d":"11,-63r0,-22r116,-167r21,0r0,170r38,0r0,19r-38,0r0,63r-21,0r0,-63r-116,0xm31,-82r96,0r-1,-137"},"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,84v49,-51,138,-11,138,64v0,49,-39,85,-87,85v-47,0,-82,-29,-83,-77"},"6":{"d":"104,-145v-40,0,-62,30,-62,67v0,36,19,64,63,64v36,0,60,-29,60,-64v0,-37,-22,-67,-61,-67xm182,-188r-23,0v-4,-28,-23,-47,-52,-47v-58,-1,-72,69,-69,113v12,-25,39,-42,67,-42v50,0,83,35,83,84v0,49,-35,85,-85,85v-61,0,-89,-36,-89,-134v0,-30,8,-125,90,-125v44,0,73,22,78,66"},"7":{"d":"18,-228r0,-21r162,0r0,21v-31,33,-96,111,-102,228r-24,0v6,-85,34,-148,104,-228r-140,0"},"8":{"d":"100,-14v35,0,64,-18,64,-57v0,-36,-30,-54,-64,-54v-35,0,-64,17,-64,54v0,38,29,57,64,57xm176,-191v1,28,-17,46,-41,56v32,6,52,30,52,64v0,51,-40,76,-87,76v-47,0,-87,-25,-87,-76v0,-34,22,-57,51,-65v-26,-8,-41,-27,-41,-55v1,-84,152,-85,153,0xm100,-144v28,0,54,-15,54,-47v0,-29,-24,-44,-54,-44v-28,0,-54,15,-54,44v0,34,27,47,54,47"},"9":{"d":"96,-104v40,0,62,-29,62,-66v0,-36,-19,-65,-63,-65v-36,0,-60,30,-60,65v0,37,22,66,61,66xm18,-60r23,0v4,28,24,46,53,46v58,1,71,-68,68,-112v-12,25,-39,41,-67,41v-50,0,-83,-35,-83,-84v0,-49,36,-85,86,-85v61,0,88,36,88,134v0,30,-8,125,-90,125v-44,0,-73,-21,-78,-65"},":":{"d":"65,-142r-30,0r0,-38r30,0r0,38xm65,0r-30,0r0,-38r30,0r0,38","w":100},";":{"d":"35,-38r30,0v1,41,2,77,-32,87r0,-15v12,-4,18,-22,17,-34r-15,0r0,-38xm65,-142r-30,0r0,-38r30,0r0,38","w":100},"<":{"d":"199,-17r0,20r-182,-84r0,-20r182,-84r0,20r-160,74","w":216},"=":{"d":"199,-136r0,19r-181,0r0,-19r181,0xm199,-65r0,19r-181,0r0,-19r181,0","w":216},">":{"d":"17,-17r160,-74r-160,-74r0,-20r182,84r0,20r-182,84r0,-20","w":216},"?":{"d":"87,-64v-11,-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,-78,70,-65,132r-22,0xm83,0r0,-38r30,0r0,38r-30,0","w":193},"@":{"d":"153,-184v-37,0,-61,50,-61,84v0,22,13,34,30,34v33,0,60,-52,60,-84v0,-17,-15,-34,-29,-34xm221,-196r-35,104v-5,15,-7,30,5,30v32,0,61,-50,61,-90v0,-59,-47,-94,-102,-94v-67,0,-114,53,-114,119v0,66,48,116,114,116v35,0,72,-18,93,-48r19,0v-22,40,-67,64,-112,64v-77,0,-133,-59,-133,-135v0,-75,59,-132,132,-132v69,0,122,46,122,112v0,58,-43,104,-83,104v-12,0,-24,-8,-25,-24v-26,39,-94,26,-94,-29v0,-50,35,-104,86,-104v16,0,30,9,38,31r9,-24r19,0","w":288},"A":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0","w":226},"B":{"d":"50,-123r0,102v66,-3,149,18,152,-53v2,-62,-90,-48,-152,-49xm26,0r0,-257v81,4,188,-23,191,63v0,27,-18,52,-45,58v33,4,55,30,55,63v0,24,-8,73,-92,73r-109,0xm50,-236r0,92v57,0,143,9,143,-44v0,-62,-83,-46,-143,-48","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,-64,-121,-134v0,-70,40,-133,121,-133v49,0,97,29,103,83","w":253},"D":{"d":"50,-236r0,215v97,5,158,-9,158,-108v0,-99,-61,-113,-158,-107xm26,0r0,-257r89,0v77,2,118,44,118,128v0,84,-41,129,-118,129r-89,0","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,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":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,-64,-121,-134v0,-70,40,-133,121,-133v54,0,98,29,107,85r-24,0v-3,-30,-34,-65,-83,-65v-132,1,-130,226,0,227v57,0,90,-41,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,67v38,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":{"T":33,"V":33,"W":20,"y":13,"\u00fd":13,"\u00ff":13,"Y":40,"\u00dd":40}},"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":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227","w":266},"P":{"d":"26,0r0,-257r114,0v46,0,76,27,76,73v0,46,-30,74,-76,74r-90,0r0,110r-24,0xm50,-236r0,105v63,-2,142,15,142,-53v0,-67,-79,-50,-142,-52","w":226,"k":{"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":55,".":55}},"Q":{"d":"160,-69r37,28v59,-60,42,-201,-63,-201v-132,1,-130,226,0,227v19,0,34,-5,47,-13r-34,-26xm252,1r-12,16r-40,-31v-18,12,-39,19,-66,19v-81,0,-122,-64,-122,-134v0,-70,41,-133,122,-133v125,0,155,163,82,235","w":266},"R":{"d":"202,0v-16,-45,6,-114,-59,-114r-93,0r0,114r-24,0r0,-257v85,3,195,-22,196,67v1,33,-19,58,-50,66v62,4,34,81,57,124r-27,0xm50,-236r0,101v63,-2,144,15,147,-50v3,-65,-85,-50,-147,-51","w":240,"k":{"T":-2,"V":-2,"W":-2,"y":-9,"\u00fd":-9,"\u00ff":-9,"Y":5,"\u00dd":5}},"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":{"\u00fc":33,"\u00f2":40,"\u00f6":40,"\u00e8":40,"\u00eb":40,"\u00ea":40,"\u00e3":40,"\u00e5":40,"\u00e0":40,"\u00e4":40,"\u00e2":40,"w":40,"y":40,"\u00fd":40,"\u00ff":40,"A":24,"\u00c6":24,"\u00c1":24,"\u00c2":24,"\u00c4":24,"\u00c0":24,"\u00c5":24,"\u00c3":24,",":40,".":40,"c":40,"\u00e7":40,"e":40,"\u00e9":40,"o":40,"\u00f8":40,"\u00f3":40,"\u00f4":40,"\u00f5":40,"-":46,"a":40,"\u00e6":40,"\u00e1":40,"i":-9,"\u00ed":-9,"\u00ee":-9,"\u00ef":-9,"\u00ec":-9,"r":33,"s":40,"u":33,"\u00fa":33,"\u00fb":33,"\u00f9":33,":":40,";":40}},"U":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,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":{"\u00f6":20,"\u00f4":20,"\u00e8":20,"\u00eb":20,"\u00ea":20,"\u00e3":20,"\u00e5":20,"\u00e0":20,"\u00e4":20,"\u00e2":20,"y":6,"\u00fd":6,"\u00ff":6,"A":20,"\u00c6":20,"\u00c1":20,"\u00c2":20,"\u00c4":20,"\u00c0":20,"\u00c5":20,"\u00c3":20,",":46,".":46,"e":20,"\u00e9":20,"o":20,"\u00f8":20,"\u00f3":20,"\u00f2":20,"\u00f5":20,"-":20,"a":20,"\u00e6":20,"\u00e1":20,"i":-2,"\u00ed":-2,"\u00ee":-2,"\u00ef":-2,"\u00ec":-2,"r":13,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,":":27,";":27}},"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":{"\u00fc":6,"\u00f6":6,"\u00ea":6,"\u00e4":13,"A":6,"\u00c6":6,"\u00c1":6,"\u00c2":6,"\u00c4":6,"\u00c0":6,"\u00c5":6,"\u00c3":6,",":27,".":27,"e":6,"\u00e9":6,"\u00eb":6,"\u00e8":6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f2":6,"\u00f5":6,"a":13,"\u00e6":13,"\u00e1":13,"\u00e2":13,"\u00e0":13,"\u00e5":13,"\u00e3":13,"i":-9,"\u00ed":-9,"\u00ee":-9,"\u00ef":-9,"\u00ec":-9,"r":6,"u":6,"\u00fa":6,"\u00fb":6,"\u00f9":6,":":6,";":6}},"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":{"\u00fc":27,"\u00f6":33,"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":44,".":36,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"u":27,"\u00fa":27,"\u00fb":27,"\u00f9":27,":":33,";":33,"p":27}},"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":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43","w":186},"b":{"d":"109,-14v83,-1,82,-157,0,-158v-89,1,-89,157,0,158xm22,0r0,-257r22,0r1,107v10,-27,36,-41,64,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-31,1,-55,-17,-67,-40r0,35r-20,0","w":206},"c":{"d":"175,-127r-22,0v-6,-28,-23,-45,-53,-45v-44,0,-65,39,-65,79v0,40,21,79,65,79v28,0,51,-22,54,-53r23,0v-6,45,-36,72,-77,72v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98v40,0,70,22,75,64","w":186},"d":{"d":"97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158xm185,-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,-98v28,0,55,14,65,41r0,-107r23,0","w":206},"e":{"d":"178,-87r-143,0v0,33,17,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,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66","w":186},"f":{"d":"93,-186r0,19r-36,0r0,167r-23,0r0,-167r-32,0r0,-19r32,0v-5,-48,12,-79,64,-70r0,20v-36,-9,-46,13,-41,50r36,0","w":93,"k":{"f":6,"\u00df":6}},"g":{"d":"96,-21v39,0,60,-36,60,-74v0,-36,-17,-77,-60,-77v-43,0,-61,38,-61,77v0,37,19,74,61,74xm179,-186r0,171v0,55,-22,89,-83,89v-37,0,-74,-16,-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,0"},"h":{"d":"21,0r0,-257r23,0r1,103v8,-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,0r0,-186r23,0r0,186r-23,0xm22,-221r0,-36r23,0r0,36r-23,0","w":66},"j":{"d":"22,23r0,-209r23,0r0,203v2,34,-16,59,-56,51r0,-19v21,5,33,-6,33,-26xm22,-221r0,-36r23,0r0,36r-23,0","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,-44,99,-53,114,-1v11,-24,35,-36,59,-36v87,0,55,114,61,191r-22,0r0,-125v0,-31,-12,-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,32v8,-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,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79"},"p":{"d":"109,-14v83,-1,82,-157,0,-158v-50,0,-65,37,-65,79v0,39,17,79,65,79xm22,69r0,-255r20,0v1,11,-2,27,1,36v10,-25,36,-41,66,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-29,1,-53,-15,-65,-40r0,104r-22,0","w":206},"q":{"d":"97,-172v-83,1,-82,157,0,158v89,-1,89,-157,0,-158xm185,-186r0,255r-23,0r0,-104v-10,27,-37,40,-65,40v-57,0,-83,-45,-83,-98v0,-53,26,-98,83,-98v28,-1,55,19,67,41r0,-36r21,0","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":{",":33,".":33,"c":6,"\u00e7":6,"d":6,"e":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"n":-6,"\u00f1":-6,"o":6,"\u00f8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"q":6,"-":20}},"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-43,0,-72,-20,-76,-65r23,0v2,31,25,46,55,46v21,0,50,-9,50,-35v0,-58,-121,-20,-121,-90v0,-38,36,-52,69,-52v37,0,68,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,48,-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-38,-4,-27,51,-27,87v0,40,-21,54,-25,60v5,3,25,19,25,58v0,34,-13,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,-19v39,5,27,-52,27,-88v0,-40,22,-53,26,-59v-5,-3,-26,-20,-26,-59v0,-34,13,-91,-27,-87r0,-19","w":119},"~":{"d":"70,-112v24,-1,56,23,77,23v14,0,23,-11,31,-24r13,13v-11,15,-23,31,-45,31v-37,0,-90,-50,-108,1r-13,-13v8,-15,21,-31,45,-31","w":216},"\u00a1":{"d":"50,-122r6,117r0,74r-25,0r0,-74r6,-117r13,0xm28,-186r31,0r0,38r-31,0r0,-38","w":86},"\u00a2":{"d":"97,-14r0,-157v-74,11,-73,145,0,157xm183,-127r-23,0v-6,-27,-22,-44,-49,-45r0,158v26,-1,47,-23,50,-53r23,0v-6,43,-34,71,-73,72r0,37r-14,0r0,-37v-50,-5,-78,-48,-78,-98v0,-50,28,-92,78,-97r0,-32r14,0r0,31v37,1,67,23,72,64"},"\u00a3":{"d":"195,-17v-43,53,-120,-17,-167,22r-13,-19v33,-23,54,-63,31,-105r-29,0r0,-11r22,0v-11,-18,-20,-37,-20,-58v0,-51,42,-74,83,-74v53,0,84,32,83,85r-23,0v0,-39,-20,-66,-60,-66v-31,0,-60,17,-60,56v0,24,12,36,21,57r58,0r0,11r-51,0v22,40,-5,81,-30,101v46,-31,109,31,144,-16"},"\u00a5":{"d":"40,-109r0,-17r38,0r-76,-131r26,0r72,131r72,-131r25,0r-76,131r39,0r0,17v-16,2,-39,-4,-49,3r0,26r49,0r0,17r-49,0r0,63r-23,0r0,-63r-48,0r0,-17r48,0v-1,-9,2,-23,-2,-29r-46,0"},"\u00a7":{"d":"161,-83v0,-38,-62,-57,-93,-78v-17,7,-29,19,-29,39v0,36,61,57,92,78v17,-7,30,-19,30,-39xm184,-83v0,24,-18,42,-39,50v40,32,6,91,-43,91v-40,0,-67,-23,-67,-64r23,0v-1,24,17,45,42,45v20,0,40,-9,40,-32v0,-54,-124,-57,-124,-128v0,-24,18,-43,39,-51v-40,-32,-7,-90,43,-90v40,0,67,22,67,63r-23,0v1,-24,-17,-44,-42,-44v-20,0,-40,9,-40,32v0,54,124,57,124,128"},"\u00a4":{"d":"10,-49r21,-20v-27,-29,-26,-82,0,-111r-21,-20r14,-14r20,20v29,-25,83,-27,112,0r19,-20r14,14r-19,19v27,30,26,83,0,113r19,19r-14,14r-19,-20v-29,26,-83,27,-112,0r-20,20xm34,-125v0,39,29,69,66,69v37,0,67,-30,67,-69v0,-39,-30,-68,-67,-68v-37,0,-66,29,-66,68"},"'":{"d":"39,-170r0,-87r23,0r0,87r-23,0","w":100},"\u00ab":{"d":"127,-43r-47,-45r0,-22r47,-45r0,24r-33,32r33,32r0,24xm69,-43r-47,-45r0,-22r47,-45r0,24r-33,32r33,32r0,24","w":153},"\u00b7":{"d":"50,-135v12,0,21,10,21,22v0,11,-10,20,-21,20v-12,0,-21,-9,-21,-21v0,-11,10,-21,21,-21","w":100},"\u00b6":{"d":"98,64r0,-182v-42,0,-74,-31,-74,-68v0,-45,30,-71,80,-71r83,0r0,321r-23,0r0,-302r-43,0r0,302r-23,0","w":216},"\u00bb":{"d":"84,-43r0,-24r34,-32r-34,-32r0,-24r48,45r0,22xm26,-43r0,-24r34,-32r-34,-32r0,-24r48,45r0,22","w":153},"\u00bf":{"d":"107,-124v11,64,-65,75,-65,130v0,29,24,49,52,49v39,0,59,-28,58,-65r22,0v0,51,-29,84,-81,84v-40,0,-74,-24,-74,-66v0,-61,78,-70,65,-132r23,0xm111,-186r0,38r-31,0r0,-38r31,0","w":193},"`":{"d":"36,-212r-47,-50r28,0r38,50r-19,0","w":66},"\u00b4":{"d":"78,-262r-48,50r-18,0r38,-50r28,0","w":66},"\u00af":{"d":"93,-228r-119,0r0,-16r119,0r0,16","w":66},"\u00a8":{"d":"77,-218r-24,0r0,-36r24,0r0,36xm14,-218r-25,0r0,-36r25,0r0,36","w":66},"\u00b8":{"d":"11,28v12,-9,12,-30,34,-28r-15,21v17,-3,41,0,41,22v0,35,-47,36,-73,24r5,-12v13,5,47,12,47,-10v0,-24,-33,-5,-39,-17","w":66},"\u00c6":{"d":"185,-122r0,101r133,0r0,21r-158,0r0,-81r-93,0r-42,81r-28,0r135,-257r185,0r0,21r-132,0r0,93r124,0r0,21r-124,0xm78,-102r82,0r0,-134r-14,0","w":326},"\u00aa":{"d":"82,-198v-21,12,-71,5,-67,30v6,37,69,20,67,-13r0,-17xm19,-215r-16,0v1,-28,21,-39,50,-39v23,0,46,6,46,36r0,62v0,7,8,10,14,7r0,12v-17,4,-28,-4,-28,-19v-15,33,-87,34,-87,-11v0,-33,33,-35,65,-38v12,-1,19,-3,19,-11v0,-19,-15,-24,-32,-24v-17,0,-31,8,-31,25","w":111},"\u00d8":{"d":"209,-203r-143,159v16,18,38,29,68,29v97,-1,118,-120,75,-188xm58,-54r143,-159v-15,-17,-37,-29,-67,-29v-98,0,-119,119,-76,188xm242,-259r9,8r-26,30v61,78,28,226,-91,226v-36,0,-64,-12,-84,-32r-27,31r-10,-9r29,-31v-61,-80,-28,-229,92,-226v35,0,62,12,82,31","w":266},"\u00ba":{"d":"58,-132v-37,0,-57,-27,-57,-61v0,-34,20,-61,57,-61v41,0,61,27,61,61v0,34,-20,61,-61,61xm60,-147v56,0,56,-93,0,-93v-56,0,-56,93,0,93","w":120},"\u00e6":{"d":"163,-106r117,0v0,-34,-23,-66,-59,-66v-38,0,-59,31,-58,66xm140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm303,-87r-140,0v-3,40,17,73,61,73v31,0,49,-17,55,-46r22,0v-8,74,-127,91,-149,19v-12,58,-140,68,-140,-8v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43r-23,0v2,-44,34,-62,76,-62v25,0,58,6,62,38v10,-26,38,-38,65,-38v61,0,81,50,81,104","w":313},"\u00f8":{"d":"48,-44r98,-106v-10,-13,-26,-22,-46,-22v-62,0,-80,80,-52,128xm153,-141r-99,106v10,13,26,21,46,21v62,0,80,-78,53,-127xm161,-167v9,-7,17,-28,27,-13r-20,22v43,59,15,166,-68,163v-26,0,-46,-9,-60,-24r-22,23r-8,-7r22,-24v-42,-58,-16,-164,68,-164v26,0,47,9,61,24"},"\u00df":{"d":"22,0r0,-193v0,-48,29,-69,72,-69v39,0,70,22,70,63v1,27,-17,48,-41,55v35,3,54,33,54,66v-1,59,-41,86,-98,80r0,-20v40,8,75,-9,75,-56v0,-50,-31,-58,-75,-58r0,-20v32,0,62,-9,62,-46v0,-27,-21,-45,-47,-45v-36,0,-49,18,-49,52r0,191r-23,0","w":193},"\u00b9":{"d":"13,-210r0,-14v26,-1,41,-2,46,-27r14,0r0,152r-17,0r0,-111r-43,0","w":119},"\u00ac":{"d":"180,-40r0,-77r-162,0r0,-19r181,0r0,96r-19,0","w":216},"\u00b5":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-17,38,-69,50,-106,26r0,76r-23,0r0,-255r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0","w":193},"\u00d0":{"d":"50,-236r0,95r85,0r0,16r-85,0r0,104v97,5,158,-9,158,-108v0,-99,-61,-113,-158,-107xm26,-141r0,-116r89,0v77,2,118,44,118,128v0,84,-41,129,-118,129r-89,0r0,-125r-26,0r0,-16r26,0","w":246},"\u00bd":{"d":"48,12r163,-273r17,0r-163,273r-17,0xm17,-210r0,-14v26,-1,41,-2,46,-27r15,0r0,152r-17,0r0,-111r-44,0xm173,0v0,-60,93,-56,93,-112v0,-18,-17,-29,-37,-29v-26,0,-36,20,-36,41r-17,0v-1,-33,17,-56,54,-56v30,0,53,14,53,45v0,52,-74,54,-91,97r90,0r0,14r-109,0","w":300},"\u00b1":{"d":"99,-116r0,-65r19,0r0,65r81,0r0,19r-81,0r0,65r-19,0r0,-65r-81,0r0,-19r81,0xm18,0r0,-19r181,0r0,19r-181,0","w":216},"\u00de":{"d":"26,0r0,-257r24,0r0,42r90,0v46,0,76,28,76,74v0,46,-30,73,-76,73r-90,0r0,68r-24,0xm50,-194r0,105v63,-2,142,15,142,-52v0,-67,-79,-52,-142,-53","w":226},"\u00bc":{"d":"231,0r0,-36r-75,0r0,-14r76,-102r16,0r0,102r25,0r0,14r-25,0r0,36r-17,0xm231,-128v-22,24,-39,53,-59,78r59,0r0,-78xm48,12r163,-273r17,0r-163,273r-17,0xm17,-210r0,-14v26,-1,41,-2,46,-27r15,0r0,152r-17,0r0,-111r-44,0","w":300},"\u00f7":{"d":"199,-81r-181,0r0,-19r181,0r0,19xm88,-163v0,-11,9,-20,20,-20v11,0,20,9,20,20v0,10,-10,20,-20,20v-11,0,-20,-9,-20,-20xm88,-18v0,-11,9,-20,20,-20v11,0,20,9,20,20v0,10,-10,20,-20,20v-11,0,-20,-9,-20,-20","w":216},"\u00a6":{"d":"31,32r0,-90r19,0r0,90r-19,0xm31,-148r0,-90r19,0r0,90r-19,0","w":79},"\u00b0":{"d":"20,-202v0,-29,23,-52,52,-52v29,0,52,23,52,52v0,29,-23,52,-52,52v-29,0,-52,-23,-52,-52xm34,-202v0,21,17,37,38,37v21,0,38,-16,38,-37v0,-21,-17,-38,-38,-38v-21,0,-38,17,-38,38","w":144},"\u00fe":{"d":"109,-14v83,-1,82,-157,0,-158v-89,1,-89,157,0,158xm22,69r0,-326r22,0r1,107v10,-27,36,-41,64,-41v57,0,84,45,84,98v0,53,-27,98,-84,98v-29,1,-53,-15,-65,-40r0,104r-22,0","w":206},"\u00be":{"d":"231,0r0,-36r-75,0r0,-14r76,-102r16,0r0,102r25,0r0,14r-25,0r0,36r-17,0xm231,-128v-22,24,-39,53,-59,78r59,0r0,-78xm49,-172r0,-14v23,2,46,-5,46,-27v0,-19,-17,-27,-36,-27v-23,0,-36,16,-36,37r-17,0v0,-30,20,-51,53,-51v27,0,53,12,53,40v1,18,-12,28,-28,34v21,3,34,17,34,37v0,31,-26,48,-58,48v-35,0,-60,-19,-57,-53r17,0v-1,23,14,39,39,39v21,0,42,-12,42,-33v0,-24,-24,-32,-52,-30xm62,12r163,-273r17,0r-162,273r-18,0","w":300},"\u00b2":{"d":"5,-99v0,-60,93,-56,93,-112v0,-18,-17,-29,-37,-29v-26,0,-35,20,-35,41r-17,0v-1,-33,17,-55,54,-55v30,0,52,14,52,45v-1,52,-74,53,-90,96r89,0r0,14r-109,0","w":119},"\u00ae":{"d":"144,-262v76,0,134,58,134,133v0,75,-58,134,-134,134v-76,0,-134,-59,-134,-134v0,-75,58,-133,134,-133xm144,-243v-65,0,-113,50,-113,114v0,64,48,115,113,115v65,0,113,-51,113,-115v0,-64,-48,-114,-113,-114xm114,-120r0,69r-19,0r0,-155v49,0,110,-8,110,43v0,27,-18,39,-39,43r46,69r-22,0r-43,-69r-33,0xm114,-136v32,-1,72,8,72,-27v0,-34,-40,-26,-72,-27r0,54","w":288},"\u00f0":{"d":"99,-163v-46,0,-64,34,-64,74v0,39,19,75,64,75v42,0,64,-31,64,-76v0,-36,-18,-73,-64,-73xm49,-215r36,-20v-11,-7,-22,-14,-34,-20r13,-12v13,6,26,14,38,23r41,-23r11,11r-39,22v40,33,71,79,71,141v0,54,-28,98,-88,98v-58,0,-86,-41,-86,-95v0,-69,75,-117,134,-78v-12,-22,-29,-40,-48,-56r-38,21"},"\u00d7":{"d":"94,-90r-67,-68r13,-14r68,68r68,-68r13,14r-68,68r68,68r-13,13r-68,-68r-68,68r-13,-13","w":216},"\u00b3":{"d":"49,-172r0,-14v23,2,46,-5,46,-27v0,-19,-17,-27,-36,-27v-23,0,-36,16,-36,37r-17,0v0,-30,20,-51,53,-51v27,0,53,12,53,40v1,18,-12,28,-28,34v21,3,34,17,34,37v0,31,-26,48,-58,48v-35,0,-60,-19,-57,-53r17,0v-1,23,14,39,39,39v21,0,42,-12,42,-33v0,-24,-24,-32,-52,-30","w":119},"\u00a9":{"d":"278,-129v0,75,-58,134,-134,134v-76,0,-134,-59,-134,-134v0,-75,58,-133,134,-133v76,0,134,58,134,133xm257,-129v0,-64,-48,-114,-113,-114v-65,0,-113,50,-113,114v0,64,48,115,113,115v65,0,113,-51,113,-115xm214,-157r-19,0v-18,-68,-107,-36,-107,28v0,37,21,67,60,67v26,0,43,-16,47,-38r19,0v-5,35,-33,54,-67,54v-49,0,-78,-35,-78,-83v0,-89,132,-114,145,-28","w":288},"\u00c1":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm158,-328r-47,50r-19,0r38,-50r28,0","w":226},"\u00c2":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm126,-328r41,50r-23,0r-31,-36r-32,36r-21,0r41,-50r25,0","w":226},"\u00c4":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm158,-284r-25,0r0,-36r25,0r0,36xm94,-284r-25,0r0,-36r25,0r0,36","w":226},"\u00c0":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm117,-278r-48,-50r28,0r38,50r-18,0","w":226},"\u00c5":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm75,-310v0,-21,18,-38,39,-38v21,0,38,17,38,38v0,21,-17,39,-38,39v-21,0,-39,-18,-39,-39xm89,-310v0,14,11,25,25,25v14,0,24,-11,24,-25v0,-14,-10,-24,-24,-24v-14,0,-25,10,-25,24","w":226},"\u00c3":{"d":"-3,0r104,-257r28,0r100,257r-26,0r-31,-80r-117,0r-31,80r-27,0xm114,-233r-52,132r101,0xm89,-319v25,1,58,34,67,-2r14,0v-3,17,-12,34,-31,34v-19,0,-35,-16,-49,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":226},"\u00c7":{"d":"217,-98r25,0v-7,63,-47,103,-107,103r-12,16v17,-3,42,0,42,22v0,35,-47,37,-74,24r5,-12v13,5,48,12,48,-10v0,-24,-34,-5,-40,-17r18,-23v-73,-6,-108,-67,-108,-134v0,-70,40,-133,121,-133v49,0,97,29,103,83r-24,0v-9,-40,-42,-63,-79,-63v-132,1,-130,226,0,227v48,0,77,-37,82,-83","w":253},"\u00c9":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm151,-328r-47,50r-19,0r38,-50r28,0","w":213},"\u00ca":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm119,-328r41,50r-23,0r-31,-36r-32,36r-21,0r41,-50r25,0","w":213},"\u00cb":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm151,-284r-25,0r0,-36r25,0r0,36xm87,-284r-24,0r0,-36r24,0r0,36","w":213},"\u00c8":{"d":"26,0r0,-257r177,0r0,21r-153,0r0,93r144,0r0,21r-144,0r0,101r155,0r0,21r-179,0xm110,-278r-48,-50r28,0r38,50r-18,0","w":213},"\u00cd":{"d":"28,0r0,-257r24,0r0,257r-24,0xm85,-328r-48,50r-18,0r38,-50r28,0","w":79},"\u00ce":{"d":"28,0r0,-257r24,0r0,257r-24,0xm53,-328r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":79},"\u00cf":{"d":"28,0r0,-257r24,0r0,257r-24,0xm84,-284r-24,0r0,-36r24,0r0,36xm21,-284r-25,0r0,-36r25,0r0,36","w":79},"\u00cc":{"d":"28,0r0,-257r24,0r0,257r-24,0xm43,-278r-47,-50r28,0r38,50r-19,0","w":79},"\u00d1":{"d":"26,0r0,-257r27,0r150,217r0,-217r25,0r0,257r-27,0r-151,-217r0,217r-24,0xm102,-319v25,1,58,34,68,-2r13,0v-3,17,-12,34,-31,34v-19,0,-35,-16,-49,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":253},"\u00d3":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm178,-328r-48,50r-18,0r38,-50r28,0","w":266},"\u00d4":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm146,-328r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":266},"\u00d6":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm177,-284r-24,0r0,-36r24,0r0,36xm114,-284r-25,0r0,-36r25,0r0,36","w":266},"\u00d2":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm136,-278r-47,-50r28,0r38,50r-19,0","w":266},"\u00d5":{"d":"12,-129v0,-70,41,-133,122,-133v81,0,121,63,121,133v0,70,-40,134,-121,134v-81,0,-122,-64,-122,-134xm134,-242v-132,1,-130,226,0,227v130,-1,130,-226,0,-227xm109,-319v25,1,57,34,67,-2r14,0v-3,17,-13,34,-32,34v-18,0,-34,-16,-48,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":266},"\u00da":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm168,-328r-48,50r-18,0r38,-50r28,0","w":246},"\u00db":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm136,-328r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":246},"\u00dc":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm167,-284r-24,0r0,-36r24,0r0,36xm104,-284r-25,0r0,-36r25,0r0,36","w":246},"\u00d9":{"d":"123,5v-136,0,-93,-142,-100,-262r25,0r0,159v0,60,28,83,75,83v48,0,76,-23,76,-83r0,-159r24,0v-7,120,37,262,-100,262xm126,-278r-47,-50r28,0r38,50r-19,0","w":246},"\u00dd":{"d":"98,0r0,-106r-102,-151r30,0r84,130r84,-130r30,0r-102,151r0,106r-24,0xm154,-328r-47,50r-18,0r37,-50r28,0","w":219,"k":{"v":20,"A":27,"\u00c6":27,"\u00c1":27,"\u00c2":27,"\u00c4":27,"\u00c0":27,"\u00c5":27,"\u00c3":27,",":44,".":36,"e":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"o":33,"\u00f8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"q":33,"-":40,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"i":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"u":27,"\u00fa":27,"\u00fb":27,"\u00fc":27,"\u00f9":27,":":33,";":33,"p":27}},"\u00e1":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm138,-262r-48,50r-18,0r38,-50r28,0","w":186},"\u00e2":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm106,-262r41,50r-24,0r-30,-36r-32,36r-21,0r41,-50r25,0","w":186},"\u00e4":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm138,-218r-25,0r0,-36r25,0r0,36xm74,-218r-25,0r0,-36r25,0r0,36","w":186},"\u00e0":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm96,-212r-47,-50r28,0r38,50r-19,0","w":186},"\u00e5":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm55,-244v0,-21,18,-38,39,-38v21,0,38,17,38,38v0,21,-17,39,-38,39v-21,0,-39,-18,-39,-39xm69,-244v0,14,11,25,25,25v14,0,24,-11,24,-25v0,-14,-10,-24,-24,-24v-14,0,-25,10,-25,24","w":186},"\u00e3":{"d":"140,-102v-30,22,-106,6,-106,52v0,23,21,36,42,36v46,0,71,-34,64,-88xm42,-129r-23,0v2,-44,34,-62,76,-62v33,0,68,10,68,60r0,98v-1,12,11,17,21,12r0,20v-28,6,-44,-8,-43,-31v-20,51,-130,53,-129,-17v0,-52,50,-54,99,-60v19,-2,29,-4,29,-25v0,-31,-21,-38,-48,-38v-28,0,-49,13,-50,43xm69,-253v0,0,57,33,67,-2r14,0v-3,17,-13,34,-32,34v-18,1,-34,-15,-48,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":186},"\u00e7":{"d":"154,-67r23,0v-6,44,-34,71,-75,72r-12,16v17,-3,41,0,41,22v0,35,-47,36,-73,24r5,-12v13,5,48,11,48,-10v0,-24,-34,-5,-40,-17r18,-23v-50,-5,-77,-48,-77,-98v0,-53,31,-98,88,-98v40,0,70,22,75,64r-22,0v-6,-28,-23,-45,-53,-45v-44,0,-65,39,-65,79v0,40,21,79,65,79v28,0,51,-22,54,-53","w":186},"\u00e9":{"d":"178,-87r-143,0v0,33,17,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,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm138,-262r-48,50r-18,0r38,-50r28,0","w":186},"\u00ea":{"d":"178,-87r-143,0v0,33,17,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,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm106,-262r41,50r-24,0r-30,-36r-32,36r-21,0r41,-50r25,0","w":186},"\u00eb":{"d":"178,-87r-143,0v0,33,17,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,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm138,-218r-25,0r0,-36r25,0r0,36xm74,-218r-25,0r0,-36r25,0r0,36","w":186},"\u00e8":{"d":"178,-87r-143,0v0,33,17,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,-98v60,0,84,52,82,104xm35,-106r120,0v-1,-34,-22,-66,-59,-66v-37,0,-57,32,-61,66xm96,-212r-47,-50r28,0r38,50r-19,0","w":186},"\u00ed":{"d":"45,0r-23,0r0,-186r23,0r0,186xm78,-262r-48,50r-18,0r38,-50r28,0","w":66},"\u00ee":{"d":"45,0r-23,0r0,-186r23,0r0,186xm46,-262r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0","w":66},"\u00ef":{"d":"45,0r-23,0r0,-186r23,0r0,186xm77,-218r-24,0r0,-36r24,0r0,36xm14,-218r-25,0r0,-36r25,0r0,36","w":66},"\u00ec":{"d":"45,0r-23,0r0,-186r23,0r0,186xm36,-212r-47,-50r28,0r38,50r-19,0","w":66},"\u00f1":{"d":"21,0r0,-186r23,0v1,10,-2,24,1,32v8,-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,0xm72,-253v26,0,58,33,67,-2r14,0v-3,17,-12,34,-31,34v-18,1,-34,-15,-49,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34","w":193},"\u00f3":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm145,-262r-48,50r-18,0r38,-50r28,0"},"\u00f4":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm113,-262r41,50r-24,0r-31,-36r-31,36r-21,0r41,-50r25,0"},"\u00f6":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm144,-218r-24,0r0,-36r24,0r0,36xm81,-218r-25,0r0,-36r25,0r0,36"},"\u00f2":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm103,-212r-47,-50r28,0r38,50r-19,0"},"\u00f5":{"d":"100,-191v57,0,88,45,88,98v0,53,-31,98,-88,98v-57,0,-88,-45,-88,-98v0,-53,31,-98,88,-98xm100,-172v-44,0,-65,39,-65,79v0,40,21,79,65,79v44,0,65,-39,65,-79v0,-40,-21,-79,-65,-79xm76,-253v0,0,57,33,67,-2r14,0v-3,17,-13,34,-32,34v-18,1,-34,-15,-48,-16v-11,0,-19,6,-19,18r-14,0v2,-17,13,-34,32,-34"},"\u00fa":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm141,-262r-47,50r-19,0r38,-50r28,0","w":193},"\u00fb":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm109,-262r41,50r-23,0r-31,-36r-32,36r-21,0r41,-50r25,0","w":193},"\u00fc":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm141,-218r-25,0r0,-36r25,0r0,36xm77,-218r-24,0r0,-36r24,0r0,36","w":193},"\u00f9":{"d":"172,-186r0,186r-21,0v-1,-10,2,-25,-1,-33v-24,60,-129,48,-129,-32r0,-121r23,0v8,67,-28,174,50,172v72,-3,52,-100,55,-172r23,0xm100,-212r-48,-50r28,0r38,50r-18,0","w":193},"\u00fd":{"d":"75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49xm128,-262r-48,50r-18,0r38,-50r28,0","w":166,"k":{",":33,".":33}},"\u00ff":{"d":"75,-1r-74,-185r24,0r61,159r57,-159r23,0r-81,214v-13,37,-29,45,-66,39r0,-19v37,12,47,-21,56,-49xm127,-218r-24,0r0,-36r24,0r0,36xm64,-218r-25,0r0,-36r25,0r0,36","w":166,"k":{",":33,".":33}},"\u20ac":{"d":"30,-156v8,-55,44,-101,104,-100v30,0,52,9,67,27r-10,22v-27,-36,-83,-39,-112,-5v-12,14,-21,33,-25,56r120,0r-6,16r-116,0r-1,21r110,0r-7,16r-101,0v4,49,31,88,79,88v31,-1,44,-13,63,-31r0,28v-68,56,-166,1,-166,-85r-24,0r7,-16v7,-1,19,4,16,-7r0,-14r-23,0r7,-16r18,0"},"\u00a0":{"w":100},"\u00ad":{"d":"112,-89r-90,0r0,-20r90,0r0,20","w":133}}});
// Delay Plugin for jQuery
// - http://www.evanbot.com
// - © 2008 Evan Byrne

jQuery.fn.delay = function(time,func){
	this.each(function(){
		setTimeout(func,time);
	});
	
	return this;
};/**
 * --------------------------------------------------------------------
 * jQuery-Plugin "pngFix"
 * Version: 1.2, 09.03.2009
 * by Andreas Eberhard, andreas.eberhard@gmail.com
 *                      http://jquery.andreaseberhard.de/
 *
 * Copyright (c) 2007 Andreas Eberhard
 * Licensed under GPL (http://www.opensource.org/licenses/gpl-license.php)
 *
 * Changelog:
 *    09.03.2009 Version 1.2
 *    - Update for jQuery 1.3.x, removed @ from selectors
 *    11.09.2007 Version 1.1
 *    - removed noConflict
 *    - added png-support for input type=image
 *    - 01.08.2007 CSS background-image support extension added by Scott Jehl, scott@filamentgroup.com, http://www.filamentgroup.com
 *    31.05.2007 initial Version 1.0
 * --------------------------------------------------------------------
 * @example $(function(){$(document).pngFix();});
 * @desc Fixes all PNG's in the document on document.ready
 *
 * jQuery(function(){jQuery(document).pngFix();});
 * @desc Fixes all PNG's in the document on document.ready when using noConflict
 *
 * @example $(function(){$('div.examples').pngFix();});
 * @desc Fixes all PNG's within div with class examples
 *
 * @example $(function(){$('div.examples').pngFix( { blankgif:'ext.gif' } );});
 * @desc Fixes all PNG's within div with class examples, provides blank gif for input with png
 * --------------------------------------------------------------------
 */

(function($) {

    jQuery.fn.pngFix = function(settings) {

        // Settings
        settings = jQuery.extend({
            blankgif: 'blank.gif'
        }, settings);

        var ie55 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 5.5") != -1);
        var ie6 = (navigator.appName == "Microsoft Internet Explorer" && parseInt(navigator.appVersion) == 4 && navigator.appVersion.indexOf("MSIE 6.0") != -1);

        if (jQuery.browser.msie && (ie55 || ie6)) {

            //fix images with png-source
            jQuery(this).find("img[src$=.png]:not(.noPngFix)").each(function() {

                jQuery(this).attr('width', jQuery(this).width());
                jQuery(this).attr('height', jQuery(this).height());

                var prevStyle = '';
                var strNewHTML = '';
                var imgId = (jQuery(this).attr('id')) ? 'id="' + jQuery(this).attr('id') + '" ' : '';
                var imgClass = (jQuery(this).attr('class')) ? 'class="' + jQuery(this).attr('class') + '" ' : '';
                var imgTitle = (jQuery(this).attr('title')) ? 'title="' + jQuery(this).attr('title') + '" ' : '';
                var imgAlt = (jQuery(this).attr('alt')) ? 'alt="' + jQuery(this).attr('alt') + '" ' : '';
                var imgAlign = (jQuery(this).attr('align')) ? 'float:' + jQuery(this).attr('align') + ';' : '';
                var imgHand = (jQuery(this).parent().attr('href')) ? 'cursor:hand;' : '';
                if (this.style.border) {
                    prevStyle += 'border:' + this.style.border + ';';
                    this.style.border = '';
                }
                if (this.style.padding) {
                    prevStyle += 'padding:' + this.style.padding + ';';
                    this.style.padding = '';
                }
                if (this.style.margin) {
                    prevStyle += 'margin:' + this.style.margin + ';';
                    this.style.margin = '';
                }
                var imgStyle = (this.style.cssText);

                strNewHTML += '<span ' + imgId + imgClass + imgTitle + imgAlt;
                strNewHTML += 'style="position:relative;white-space:pre-line;display:inline-block;background:transparent;' + imgAlign + imgHand;
                strNewHTML += 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;';
                strNewHTML += 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + jQuery(this).attr('src') + '\', sizingMethod=\'scale\');';
                strNewHTML += imgStyle + '"></span>';
                if (prevStyle != '') {
                    strNewHTML = '<span style="position:relative;display:inline-block;' + prevStyle + imgHand + 'width:' + jQuery(this).width() + 'px;' + 'height:' + jQuery(this).height() + 'px;' + '">' + strNewHTML + '</span>';
                }

                jQuery(this).hide();
                jQuery(this).after(strNewHTML);

            });

            // fix css background pngs
            jQuery(this).find("*:not(.noPngFix)").each(function() {
                var bgIMG = jQuery(this).css('background-image');
                if (bgIMG.indexOf(".png") != -1) {
                    var iebg = bgIMG.split('url("')[1].split('")')[0];
                    jQuery(this).css('background-image', 'none');
                    jQuery(this).get(0).runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + iebg + "',sizingMethod='scale')";
                }
            });

            //fix input with png-source
            jQuery(this).find("input[src$=.png]:not(.noPngFix)").each(function() {
                var bgIMG = jQuery(this).attr('src');
                jQuery(this).get(0).runtimeStyle.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader' + '(src=\'' + bgIMG + '\', sizingMethod=\'scale\');';
                jQuery(this).attr('src', settings.blankgif)
            });

        }

        return jQuery;

    };

})(jQuery);
/*****************************************************
******************************************************
********** DO NOT CHANGE THIS SCRIPT *****************
******************************************************
******************************************************
*
* I've changed so much in it that you'll break all the fixes if you update it.
* 
* - Jordan
*
*
******************************************** */


function jqTransformSelectOptionClicked(ev) {

    $wrapper = $(this).parents(".jqTransformSelectWrapper");
    $select = $wrapper.find("select");
    $ul = $wrapper.find("ul");

    $('a.selected', $wrapper).removeClass('selected');
    $(this).addClass('selected');

    var index = $(this).attr("index");

    $select.get(0).selectedIndex = index;
    jqTransfromSetCurrent($wrapper);

    jqTransformHideSelect($(ev.target));
    /* Fire the onchange event */
    $select.change();
    return false;
};

function jqTransfromSetCurrent($wrapper) {
    $select = $wrapper.find("select");

    var selectedIndex = 0;
    var selectedText = "";
    try {
        selectedIndex = $select.get(0).selectedIndex;
        selectedText = $select.find("option:eq(" + selectedIndex + ")").html();
    }
    catch (err) { }

    $('span:eq(0)', $wrapper).html(selectedText);
}

function jqTransformFillSelect($wrapper) {
    $select = $wrapper.find("select");
    $ul = $wrapper.find("ul");

    // first remove all the options, that's for the case when we come back
    $ul.find("li").remove();

    /* Now we add the options */
    $('option', $select).each(function(i) {
        // alert($(this).html());
        var oLi = $('<li><a href="#" index="' + i + '">' + $(this).html() + '</a></li>');
        $ul.append(oLi);
    });
    /* Hide the ul and add click handler to the a */
    $ul.hide().find('a').click(jqTransformSelectOptionClicked);

    jqTransfromSetCurrent($wrapper);
};

function jqRefreshSelect(selectElement) {
    try {
        $select = $(selectElement);
        $wrapper = $select.parents(".jqTransformSelectWrapper");

        jqTransformFillSelect($wrapper);
    }
    catch (err) {
        return false;
    }
    return true;
};

function jqTranformReorderZAxis() {
    var ulVisible = $('div.jqTransformSelectWrapper');
    var startCount = 10 + ulVisible.length;

    ulVisible.each(function(index) {
        $(this).css({zIndex: startCount-index});
    });
}

/* Hide all open selects */
var jqTransformHideSelect = function(oTarget) {
    var ulVisible = $('.jqTransformSelectWrapper ul:visible');
    ulVisible.each(function() {
        var $wrapper = $(this).parents(".jqTransformSelectWrapper:first");
        var $select = $wrapper.find("select").get(0);
        //do not hide if clicke on the label object associated to the select
        if (!(oTarget && $select.oLabel && $select.oLabel.get(0) == oTarget.get(0))) {
            $(this).hide();
        }
    });
};

function jqRandomId(length) {
    var lib = "abcdefghijklmnopqrstuvwxyzANCDEFGHIJKLMNOPQRSTUVWXYZ01234567890123456789";
    var res = "jqRandomId-";

    for (i = 0; i < length; i++) {
        var index = Math.floor(Math.random() * lib.length);
        res += lib.substring(index, index+1);
    }

    return res;    
}

(function($) {
    var defaultOptions = { preloadImg: true };
    var jqTransformImgPreloaded = false;

    var jqTransformPreloadHoverFocusImg = function(strImgUrl) {
        //guillemets to remove for ie
        strImgUrl = strImgUrl.replace(/^url\((.*)\)/, '$1').replace(/^\"(.*)\"$/, '$1');
        var imgHover = new Image();
        imgHover.src = strImgUrl.replace(/\.([a-zA-Z]*)$/, '-hover.$1');
        var imgFocus = new Image();
        imgFocus.src = strImgUrl.replace(/\.([a-zA-Z]*)$/, '-focus.$1');
    };


    /***************************
    Labels
    ***************************/
    var jqTransformGetLabel = function(objfield) {
        var selfForm = $(objfield.get(0).form);
        var inputname = objfield.attr('id');
        var oLabel = false;
        if (inputname) {
            oLabel = selfForm.find('label[for="' + inputname + '"]');
        }
        if (oLabel && oLabel.is('label')) { return oLabel.css('cursor', 'pointer'); }
        return false;
    };


    //    var jqTransformGetLabel = function(objfield) {
    //        var selfForm = $(objfield.get(0).form);
    //        var oLabel = objfield.next();
    //        if (!oLabel.is('label')) {
    //            oLabel = objfield.prev();
    //            if (oLabel.is('label')) {
    //                var inputname = objfield.attr('id');
    //                if (inputname) {
    //                    oLabel = selfForm.find('label[for="' + inputname + '"]');
    //                }
    //            }
    //        }
    //        if (oLabel.is('label')) { return oLabel.css('cursor', 'pointer'); }
    //        return false;
    //    };

    /* Check for an external click */
    var jqTransformCheckExternalClick = function(event) {
        if ($(event.target).parents('.jqTransformSelectWrapper').length === 0) { jqTransformHideSelect($(event.target)); }
    };

    /* Apply document listener */
    var jqTransformAddDocumentListener = function() {
        $(document).mousedown(jqTransformCheckExternalClick);
    };

    /* Add a new handler for the reset action */
    var jqTransformReset = function(f) {
        var sel;
        $('.jqTransformSelectWrapper select', f).each(function() { sel = (this.selectedIndex < 0) ? 0 : this.selectedIndex; $('ul', $(this).parent()).each(function() { $('a:eq(' + sel + ')', this).click(); }); });
        $('a.jqTransformCheckbox, a.jqTransformRadio', f).removeClass('jqTransformChecked');
        $('input:checkbox, input:radio', f).each(function() { if (this.checked) { $('a', $(this).parent()).addClass('jqTransformChecked'); } });
    };


    /***************************
    Buttons
    ***************************/

    $.fn.jqTransInputButton = function() {
        return this.each(function() {
            var parentTag = $(this).parent();
            if (!parentTag.hasClass("big-button") && !$(this).hasClass("link") && !$(this).hasClass("simple-button"))
                $(this).replaceWith('<button id="' + this.id + '" name="' + this.name + '" type="' + this.type + '" class="' + this.className + ' jqTransformButton"><span><span>' + $(this).attr('value') + '</span></span>');
        });
    };

    /***************************
    Text Fields 
    ***************************/
    $.fn.jqTransInputText = function() {
        return this.each(function() {
            var safari = $.browser.safari; /* We need to check for safari to fix the input:text problem */
            var $input = $(this);

            if ($input.hasClass('jqtranformdone') || !$input.is('input')) { return; }
            $input.addClass('jqtranformdone');

            var oLabel = jqTransformGetLabel($(this));
            oLabel && oLabel.bind('click', function() { $input.focus(); });

            var inputSize = $input.width();
            if ($input.attr('size')) {
                inputSize = $input.attr('size') * 10;
                $input.css('width', inputSize);
            }

            $input.addClass("jqTransformInput").wrap('<div class="jqTransformInputWrapper"><div class="jqTransformInputInner"><div></div></div></div>');
            var $wrapper = $input.parent().parent().parent();
            $wrapper.css("width", inputSize + 10);
            $input
				.focus(function() { $wrapper.addClass("jqTransformInputWrapper_focus"); })
				.blur(function() { $wrapper.removeClass("jqTransformInputWrapper_focus"); })
				.hover(function() { $wrapper.addClass("jqTransformInputWrapper_hover"); }, function() { $wrapper.removeClass("jqTransformInputWrapper_hover"); })
				.bind("inputValidationFailed", function() { $wrapper.addClass("jqTransformInputWrapper_ValidationFailed") })
			    .bind("inputValidationPassed", function() { $wrapper.removeClass("jqTransformInputWrapper_ValidationFailed") })
            ;
            /* If this is safari we need to add an extra class */
            safari && $wrapper.addClass('jqTransformSafari');
            safari && $input.css('width', $wrapper.width() + 16);
            this.wrapper = $wrapper;

        });
    };

    /***************************
    Check Boxes 
    ***************************/
    $.fn.jqTransCheckBox = function() {
        return this.each(function() {
            var $input = $(this);
            var inputSelf = this;

            if ($input.hasClass('jqTransformHidden')) { return; }

            var oLabel = jqTransformGetLabel($input);
            $input.addClass('jqTransformHidden').wrap('<span class="jqTransformCheckboxWrapper"></span>');
            var $wrapper = $input.parent();
            var aLink = $('<a href="#" class="jqTransformCheckbox"></a>');
            $wrapper.prepend(aLink);
            // Click Handler
            aLink.click(function() {
                var $a = $(this);
                if (inputSelf.checked === true) {
                    inputSelf.checked = false;
                    $a.removeClass('jqTransformChecked');
                    oLabel && oLabel.removeClass('jqCheckboxLabelChecked');
                }
                else {
                    inputSelf.checked = true;
                    $a.addClass('jqTransformChecked');
                    oLabel && oLabel.addClass('jqCheckboxLabelChecked');
                }


                $input.change();
                return false;
            });
            oLabel && oLabel.click(function() { aLink.trigger('click'); return false; });
            $input
				.bind("inputValidationFailed", function() { $wrapper.addClass("jqTransformInputWrapper_ValidationFailed") })
			    .bind("inputValidationPassed", function() { $wrapper.removeClass("jqTransformInputWrapper_ValidationFailed") });
            // set the default state
            if (this.checked) {
                aLink.addClass('jqTransformChecked');
                oLabel && oLabel.addClass('jqCheckboxLabelChecked');
            }
        });
    };
    /***************************
    Radio Buttons 
    ***************************/
    $.fn.jqTransRadio = function() {
        return this.each(function() {
            var $input = $(this);
            var inputSelf = this;

            if ($input.hasClass('jqTransformHidden')) { return; }

            oLabel = jqTransformGetLabel($input);
            $input.addClass('jqTransformHidden').wrap('<span class="jqTransformRadioWrapper"></span>');
            var $wrapper = $input.parent();
            var aLink = $('<a href="#" class="jqTransformRadio" rel="' + this.name + '"></a>');
            $wrapper.prepend(aLink);
            $input.bind("inputValidationFailed", function() {
                var name = $(this).attr("name");
                $(this).parents("form").find("input:radio[name=" + name + "]").each(
                    function() {
                        $(this).parent().addClass("jqTransformInputWrapper_ValidationFailed");
                    }
                );
            })
			    .bind("inputValidationPassed", function() {

			        var name = $(this).attr("name");
			        $(this).parents("form").find("input:radio[name=" + name + "]").each(
                        function() {
                            $(this).parent().removeClass("jqTransformInputWrapper_ValidationFailed");
                        }
                    );
			    });

            // Click Handler
            aLink
				.each(function() {
				    this.radioElem = inputSelf;
				    $(this).click(function() {
				        var $a = $(this).addClass('jqTransformChecked');
				        inputSelf.checked = true;

				        // uncheck all others of same name
				        $('a.jqTransformRadio[rel="' + $a.attr('rel') + '"]', inputSelf.form).not($a).each(function() {
				            $(this).removeClass('jqTransformChecked');
				            this.radioElem.checked = false;
				        });

				        $input.change();
				        return false;
				    });


				});
            oLabel && oLabel.click(function() { aLink.trigger('click'); });
            // set the default state
            inputSelf.checked && aLink.addClass('jqTransformChecked');
        });
    };

    /***************************
    TextArea 
    ***************************/
    $.fn.jqTransTextarea = function() {
        return this.each(function() {
            var textarea = $(this);

            if (textarea.hasClass('jqtransformdone')) { return; }
            textarea.addClass('jqtransformdone');

            oLabel = jqTransformGetLabel(textarea);
            oLabel && oLabel.click(function() { textarea.focus(); });

            var strTable = '<table cellspacing="0" cellpadding="0" border="0" class="jqTransformTextarea">';
            strTable += '<tr><td id="jqTransformTextarea-tl">&nbsp;</td><td id="jqTransformTextarea-tm">&nbsp;</td><td id="jqTransformTextarea-tr">&nbsp;</td></tr>';
            strTable += '<tr><td id="jqTransformTextarea-ml">&nbsp;</td><td id="jqTransformTextarea-mm"><div></div></td><td id="jqTransformTextarea-mr">&nbsp;</td></tr>';
            strTable += '<tr><td id="jqTransformTextarea-bl">&nbsp;</td><td id="jqTransformTextarea-bm">&nbsp;</td><td id="jqTransformTextarea-br">&nbsp;</td></tr>';
            strTable += '</table>';
            var oTable = $(strTable)
					.insertAfter(textarea)
					.hover(function() {
					    !oTable.hasClass('jqTransformTextarea-focus') && oTable.addClass('jqTransformTextarea-hover');
					}, function() {
					    oTable.removeClass('jqTransformTextarea-hover');
					})
				;

            textarea
				.focus(function() { oTable.removeClass('jqTransformTextarea-hover').addClass('jqTransformTextarea-focus'); })
				.blur(function() { oTable.removeClass('jqTransformTextarea-focus'); })
				.appendTo($('#jqTransformTextarea-mm div', oTable))
			;
            this.oTable = oTable;
            if ($.browser.safari) {
                $('#jqTransformTextarea-mm', oTable)
					.addClass('jqTransformSafariTextarea')
					.find('div')
						.css('height', textarea.height())
						.css('width', textarea.width())
				;
            }
        });
    };

    /***************************
    Select 
    ***************************/
    $.fn.jqTransSelect = function() {
        selectCnt = this.length;
        return this.each(function(index) {
            var $select = $(this);
            /*
            START HACK BY JORDAN
        
            */
            var maxWidth = $select.parent().width();
            /*
                
            END HACK
                            
            */
            if ($select.hasClass('jqTransformHidden')) { return; }

            var oLabel = jqTransformGetLabel($select);
            /* First thing we do is Wrap it */
            $select
				.addClass('jqTransformHidden')
				.wrap('<div class="jqTransformSelectWrapper"></div>')
			;
            var $wrapper = $select.parent().css({ zIndex: ((selectCnt + 10) - index) }); // WTF ???????????????????????????????????????????????

            /* Now add the html for the select */
            $wrapper.prepend('<div><span></span><a href="#" class="jqTransformSelectOpen"></a></div><ul></ul>');
            var $ul = $('ul', $wrapper).css('width', $select.width());

            // $wrapper.addClass("this-is-the-stupid-wrapper");

            jqTransformFillSelect($wrapper);

            /* Set the default */
            $('span:first', $wrapper).click(function() { $("a.jqTransformSelectOpen", $wrapper).trigger('click'); });
            oLabel && oLabel.click(function() { $("a.jqTransformSelectOpen", $wrapper).trigger('click'); });
            this.oLabel = oLabel;

            /* Apply the click handler to the Open */
            var oLinkOpen = $('a.jqTransformSelectOpen', $wrapper)
				.click(function() {
				    //Check if box is already open to still allow toggle, but close all other selects
				    if ($ul.css('display') == 'none') { jqTransformHideSelect(); }
				    $ul.slideToggle('normal', function() {
				        var offSet = ($('a.selected', $ul).offset().top - $ul.offset().top);
				        $ul.animate({ scrollTop: offSet });
				    });
				    return false;
				})
			;

            //set the new width
            var iSelectWidth = $select.width();
            var oSpan = $('span:first', $wrapper);
            var newWidth = (iSelectWidth > oSpan.innerWidth()) ? iSelectWidth + oLinkOpen.outerWidth() : $wrapper.width();

            /*
            START HACK BY JORDAN
            */
            var newWidthThatDoesntBreakEverything = Math.min(maxWidth, newWidth);

            $wrapper.css('width', newWidthThatDoesntBreakEverything);
            $ul.css('width', newWidthThatDoesntBreakEverything - 2);
            oSpan.css('width', newWidthThatDoesntBreakEverything - 30);

            /*
            END HACK
            */
        });
    };
    $.fn

    $.fn.jqTransform = function(options) {
        var self = this;
        var safari = $.browser.safari; /* We need to check for safari to fix the input:text problem */
        var opt = $.extend({}, defaultOptions, options);

        /* each form */
        return this.each(function() {
            var selfForm = $(this);
            if (selfForm.hasClass('jqtransformdone')) {
                jqTranformReorderZAxis(); 
                return;
            }
            selfForm.addClass('jqtransformdone');

            $('input:submit, input:reset, input[type="button"]', this).jqTransInputButton();
            $('input:text, input:password', this).jqTransInputText();
            $('input:checkbox', this).jqTransCheckBox();
            $('input:radio', this).jqTransRadio();
            $('textarea', this).jqTransTextarea();

            if ($('select', this).jqTransSelect().length > 0) { jqTransformAddDocumentListener(); }
            selfForm.bind('reset', function() { var action = function() { jqTransformReset(this); }; window.setTimeout(action, 10); });

            //preloading
            if (opt.preloadImg && !jqTransformImgPreloaded) {
                jqTransformImgPreloaded = true;
                var oInputText = $('input:text:first', selfForm);
                if (oInputText.length > 0) {
                    //pour ie on eleve les ""
                    var strWrapperImgUrl = oInputText.get(0).wrapper.css('background-image');
                    jqTransformPreloadHoverFocusImg(strWrapperImgUrl);
                    var strInnerImgUrl = $('div.jqTransformInputInner', $(oInputText.get(0).wrapper)).css('background-image');
                    jqTransformPreloadHoverFocusImg(strInnerImgUrl);
                }

                var oTextarea = $('textarea', selfForm);
                if (oTextarea.length > 0) {
                    var oTable = oTextarea.get(0).oTable;
                    $('td', oTable).each(function() {
                        var strImgBack = $(this).css('background-image');
                        jqTransformPreloadHoverFocusImg(strImgBack);
                    });
                }
            }

            jqTranformReorderZAxis()

        }); /* End Form each */

    }; /* End the Plugin */

})(jQuery);
				   /*
* jQuery UI 1.7.2
*
* Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT (MIT-LICENSE.txt)
* and GPL (GPL-LICENSE.txt) licenses.
*
* http://docs.jquery.com/UI
*/
jQuery.ui || (function(c) { var i = c.fn.remove, d = c.browser.mozilla && (parseFloat(c.browser.version) < 1.9); c.ui = { version: "1.7.2", plugin: { add: function(k, l, n) { var m = c.ui[k].prototype; for (var j in n) { m.plugins[j] = m.plugins[j] || []; m.plugins[j].push([l, n[j]]) } }, call: function(j, l, k) { var n = j.plugins[l]; if (!n || !j.element[0].parentNode) { return } for (var m = 0; m < n.length; m++) { if (j.options[n[m][0]]) { n[m][1].apply(j.element, k) } } } }, contains: function(k, j) { return document.compareDocumentPosition ? k.compareDocumentPosition(j) & 16 : k !== j && k.contains(j) }, hasScroll: function(m, k) { if (c(m).css("overflow") == "hidden") { return false } var j = (k && k == "left") ? "scrollLeft" : "scrollTop", l = false; if (m[j] > 0) { return true } m[j] = 1; l = (m[j] > 0); m[j] = 0; return l }, isOverAxis: function(k, j, l) { return (k > j) && (k < (j + l)) }, isOver: function(o, k, n, m, j, l) { return c.ui.isOverAxis(o, n, j) && c.ui.isOverAxis(k, m, l) }, keyCode: { BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38} }; if (d) { var f = c.attr, e = c.fn.removeAttr, h = "http://www.w3.org/2005/07/aaa", a = /^aria-/, b = /^wairole:/; c.attr = function(k, j, l) { var m = l !== undefined; return (j == "role" ? (m ? f.call(this, k, j, "wairole:" + l) : (f.apply(this, arguments) || "").replace(b, "")) : (a.test(j) ? (m ? k.setAttributeNS(h, j.replace(a, "aaa:"), l) : f.call(this, k, j.replace(a, "aaa:"))) : f.apply(this, arguments))) }; c.fn.removeAttr = function(j) { return (a.test(j) ? this.each(function() { this.removeAttributeNS(h, j.replace(a, "")) }) : e.call(this, j)) } } c.fn.extend({ remove: function() { c("*", this).add(this).each(function() { c(this).triggerHandler("remove") }); return i.apply(this, arguments) }, enableSelection: function() { return this.attr("unselectable", "off").css("MozUserSelect", "").unbind("selectstart.ui") }, disableSelection: function() { return this.attr("unselectable", "on").css("MozUserSelect", "none").bind("selectstart.ui", function() { return false }) }, scrollParent: function() { var j; if ((c.browser.msie && (/(static|relative)/).test(this.css("position"))) || (/absolute/).test(this.css("position"))) { j = this.parents().filter(function() { return (/(relative|absolute|fixed)/).test(c.curCSS(this, "position", 1)) && (/(auto|scroll)/).test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) } else { j = this.parents().filter(function() { return (/(auto|scroll)/).test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) } return (/fixed/).test(this.css("position")) || !j.length ? c(document) : j } }); c.extend(c.expr[":"], { data: function(l, k, j) { return !!c.data(l, j[3]) }, focusable: function(k) { var l = k.nodeName.toLowerCase(), j = c.attr(k, "tabindex"); return (/input|select|textarea|button|object/.test(l) ? !k.disabled : "a" == l || "area" == l ? k.href || !isNaN(j) : !isNaN(j)) && !c(k)["area" == l ? "parents" : "closest"](":hidden").length }, tabbable: function(k) { var j = c.attr(k, "tabindex"); return (isNaN(j) || j >= 0) && c(k).is(":focusable") } }); function g(m, n, o, l) { function k(q) { var p = c[m][n][q] || []; return (typeof p == "string" ? p.split(/,?\s+/) : p) } var j = k("getter"); if (l.length == 1 && typeof l[0] == "string") { j = j.concat(k("getterSetter")) } return (c.inArray(o, j) != -1) } c.widget = function(k, j) { var l = k.split(".")[0]; k = k.split(".")[1]; c.fn[k] = function(p) { var n = (typeof p == "string"), o = Array.prototype.slice.call(arguments, 1); if (n && p.substring(0, 1) == "_") { return this } if (n && g(l, k, p, o)) { var m = c.data(this[0], k); return (m ? m[p].apply(m, o) : undefined) } return this.each(function() { var q = c.data(this, k); (!q && !n && c.data(this, k, new c[l][k](this, p))._init()); (q && n && c.isFunction(q[p]) && q[p].apply(q, o)) }) }; c[l] = c[l] || {}; c[l][k] = function(o, n) { var m = this; this.namespace = l; this.widgetName = k; this.widgetEventPrefix = c[l][k].eventPrefix || k; this.widgetBaseClass = l + "-" + k; this.options = c.extend({}, c.widget.defaults, c[l][k].defaults, c.metadata && c.metadata.get(o)[k], n); this.element = c(o).bind("setData." + k, function(q, p, r) { if (q.target == o) { return m._setData(p, r) } }).bind("getData." + k, function(q, p) { if (q.target == o) { return m._getData(p) } }).bind("remove", function() { return m.destroy() }) }; c[l][k].prototype = c.extend({}, c.widget.prototype, j); c[l][k].getterSetter = "option" }; c.widget.prototype = { _init: function() { }, destroy: function() { this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass + "-disabled " + this.namespace + "-state-disabled").removeAttr("aria-disabled") }, option: function(l, m) { var k = l, j = this; if (typeof l == "string") { if (m === undefined) { return this._getData(l) } k = {}; k[l] = m } c.each(k, function(n, o) { j._setData(n, o) }) }, _getData: function(j) { return this.options[j] }, _setData: function(j, k) { this.options[j] = k; if (j == "disabled") { this.element[k ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled " + this.namespace + "-state-disabled").attr("aria-disabled", k) } }, enable: function() { this._setData("disabled", false) }, disable: function() { this._setData("disabled", true) }, _trigger: function(l, m, n) { var p = this.options[l], j = (l == this.widgetEventPrefix ? l : this.widgetEventPrefix + l); m = c.Event(m); m.type = j; if (m.originalEvent) { for (var k = c.event.props.length, o; k; ) { o = c.event.props[--k]; m[o] = m.originalEvent[o] } } this.element.trigger(m, n); return !(c.isFunction(p) && p.call(this.element[0], m, n) === false || m.isDefaultPrevented()) } }; c.widget.defaults = { disabled: false }; c.ui.mouse = { _mouseInit: function() { var j = this; this.element.bind("mousedown." + this.widgetName, function(k) { return j._mouseDown(k) }).bind("click." + this.widgetName, function(k) { if (j._preventClickEvent) { j._preventClickEvent = false; k.stopImmediatePropagation(); return false } }); if (c.browser.msie) { this._mouseUnselectable = this.element.attr("unselectable"); this.element.attr("unselectable", "on") } this.started = false }, _mouseDestroy: function() { this.element.unbind("." + this.widgetName); (c.browser.msie && this.element.attr("unselectable", this._mouseUnselectable)) }, _mouseDown: function(l) { l.originalEvent = l.originalEvent || {}; if (l.originalEvent.mouseHandled) { return } (this._mouseStarted && this._mouseUp(l)); this._mouseDownEvent = l; var k = this, m = (l.which == 1), j = (typeof this.options.cancel == "string" ? c(l.target).parents().add(l.target).filter(this.options.cancel).length : false); if (!m || j || !this._mouseCapture(l)) { return true } this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) { this._mouseDelayTimer = setTimeout(function() { k.mouseDelayMet = true }, this.options.delay) } if (this._mouseDistanceMet(l) && this._mouseDelayMet(l)) { this._mouseStarted = (this._mouseStart(l) !== false); if (!this._mouseStarted) { l.preventDefault(); return true } } this._mouseMoveDelegate = function(n) { return k._mouseMove(n) }; this._mouseUpDelegate = function(n) { return k._mouseUp(n) }; c(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); (c.browser.safari || l.preventDefault()); l.originalEvent.mouseHandled = true; return true }, _mouseMove: function(j) { if (c.browser.msie && !j.button) { return this._mouseUp(j) } if (this._mouseStarted) { this._mouseDrag(j); return j.preventDefault() } if (this._mouseDistanceMet(j) && this._mouseDelayMet(j)) { this._mouseStarted = (this._mouseStart(this._mouseDownEvent, j) !== false); (this._mouseStarted ? this._mouseDrag(j) : this._mouseUp(j)) } return !this._mouseStarted }, _mouseUp: function(j) { c(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; this._preventClickEvent = (j.target == this._mouseDownEvent.target); this._mouseStop(j) } return false }, _mouseDistanceMet: function(j) { return (Math.max(Math.abs(this._mouseDownEvent.pageX - j.pageX), Math.abs(this._mouseDownEvent.pageY - j.pageY)) >= this.options.distance) }, _mouseDelayMet: function(j) { return this.mouseDelayMet }, _mouseStart: function(j) { }, _mouseDrag: function(j) { }, _mouseStop: function(j) { }, _mouseCapture: function(j) { return true } }; c.ui.mouse.defaults = { cancel: null, distance: 1, delay: 0} })(jQuery); ; /*
 * jQuery UI Effects 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects || (function(d) { d.effects = { version: "1.7.2", save: function(g, h) { for (var f = 0; f < h.length; f++) { if (h[f] !== null) { g.data("ec.storage." + h[f], g[0].style[h[f]]) } } }, restore: function(g, h) { for (var f = 0; f < h.length; f++) { if (h[f] !== null) { g.css(h[f], g.data("ec.storage." + h[f])) } } }, setMode: function(f, g) { if (g == "toggle") { g = f.is(":hidden") ? "show" : "hide" } return g }, getBaseline: function(g, h) { var i, f; switch (g[0]) { case "top": i = 0; break; case "middle": i = 0.5; break; case "bottom": i = 1; break; default: i = g[0] / h.height } switch (g[1]) { case "left": f = 0; break; case "center": f = 0.5; break; case "right": f = 1; break; default: f = g[1] / h.width } return { x: f, y: i} }, createWrapper: function(f) { if (f.parent().is(".ui-effects-wrapper")) { return f.parent() } var g = { width: f.outerWidth(true), height: f.outerHeight(true), "float": f.css("float") }; f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>'); var j = f.parent(); if (f.css("position") == "static") { j.css({ position: "relative" }); f.css({ position: "relative" }) } else { var i = f.css("top"); if (isNaN(parseInt(i, 10))) { i = "auto" } var h = f.css("left"); if (isNaN(parseInt(h, 10))) { h = "auto" } j.css({ position: f.css("position"), top: i, left: h, zIndex: f.css("z-index") }).show(); f.css({ position: "relative", top: 0, left: 0 }) } j.css(g); return j }, removeWrapper: function(f) { if (f.parent().is(".ui-effects-wrapper")) { return f.parent().replaceWith(f) } return f }, setTransition: function(g, i, f, h) { h = h || {}; d.each(i, function(k, j) { unit = g.cssUnit(j); if (unit[0] > 0) { h[j] = unit[0] * f + unit[1] } }); return h }, animateClass: function(h, i, k, j) { var f = (typeof k == "function" ? k : (j ? j : null)); var g = (typeof k == "string" ? k : null); return this.each(function() { var q = {}; var o = d(this); var p = o.attr("style") || ""; if (typeof p == "object") { p = p.cssText } if (h.toggle) { o.hasClass(h.toggle) ? h.remove = h.toggle : h.add = h.toggle } var l = d.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle)); if (h.add) { o.addClass(h.add) } if (h.remove) { o.removeClass(h.remove) } var m = d.extend({}, (document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle)); if (h.add) { o.removeClass(h.add) } if (h.remove) { o.addClass(h.remove) } for (var r in m) { if (typeof m[r] != "function" && m[r] && r.indexOf("Moz") == -1 && r.indexOf("length") == -1 && m[r] != l[r] && (r.match(/color/i) || (!r.match(/color/i) && !isNaN(parseInt(m[r], 10)))) && (l.position != "static" || (l.position == "static" && !r.match(/left|top|bottom|right/)))) { q[r] = m[r] } } o.animate(q, i, g, function() { if (typeof d(this).attr("style") == "object") { d(this).attr("style")["cssText"] = ""; d(this).attr("style")["cssText"] = p } else { d(this).attr("style", p) } if (h.add) { d(this).addClass(h.add) } if (h.remove) { d(this).removeClass(h.remove) } if (f) { f.apply(this, arguments) } }) }) } }; function c(g, f) { var i = g[1] && g[1].constructor == Object ? g[1] : {}; if (f) { i.mode = f } var h = g[1] && g[1].constructor != Object ? g[1] : (i.duration ? i.duration : g[2]); h = d.fx.off ? 0 : typeof h === "number" ? h : d.fx.speeds[h] || d.fx.speeds._default; var j = i.callback || (d.isFunction(g[1]) && g[1]) || (d.isFunction(g[2]) && g[2]) || (d.isFunction(g[3]) && g[3]); return [g[0], i, h, j] } d.fn.extend({ _show: d.fn.show, _hide: d.fn.hide, __toggle: d.fn.toggle, _addClass: d.fn.addClass, _removeClass: d.fn.removeClass, _toggleClass: d.fn.toggleClass, effect: function(g, f, h, i) { return d.effects[g] ? d.effects[g].call(this, { method: g, options: f || {}, duration: h, callback: i }) : null }, show: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) { return this._show.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "show")) } }, hide: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0]))) { return this._hide.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "hide")) } }, toggle: function() { if (!arguments[0] || (arguments[0].constructor == Number || (/(slow|normal|fast)/).test(arguments[0])) || (d.isFunction(arguments[0]) || typeof arguments[0] == "boolean")) { return this.__toggle.apply(this, arguments) } else { return this.effect.apply(this, c(arguments, "toggle")) } }, addClass: function(g, f, i, h) { return f ? d.effects.animateClass.apply(this, [{ add: g }, f, i, h]) : this._addClass(g) }, removeClass: function(g, f, i, h) { return f ? d.effects.animateClass.apply(this, [{ remove: g }, f, i, h]) : this._removeClass(g) }, toggleClass: function(g, f, i, h) { return ((typeof f !== "boolean") && f) ? d.effects.animateClass.apply(this, [{ toggle: g }, f, i, h]) : this._toggleClass(g, f) }, morph: function(f, h, g, j, i) { return d.effects.animateClass.apply(this, [{ add: h, remove: f }, g, j, i]) }, switchClass: function() { return this.morph.apply(this, arguments) }, cssUnit: function(f) { var g = this.css(f), h = []; d.each(["em", "px", "%", "pt"], function(j, k) { if (g.indexOf(k) > 0) { h = [parseFloat(g), k] } }); return h } }); d.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(g, f) { d.fx.step[f] = function(h) { if (h.state == 0) { h.start = e(h.elem, f); h.end = b(h.end) } h.elem.style[f] = "rgb(" + [Math.max(Math.min(parseInt((h.pos * (h.end[0] - h.start[0])) + h.start[0], 10), 255), 0), Math.max(Math.min(parseInt((h.pos * (h.end[1] - h.start[1])) + h.start[1], 10), 255), 0), Math.max(Math.min(parseInt((h.pos * (h.end[2] - h.start[2])) + h.start[2], 10), 255), 0)].join(",") + ")" } }); function b(g) { var f; if (g && g.constructor == Array && g.length == 3) { return g } if (f = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)) { return [parseInt(f[1], 10), parseInt(f[2], 10), parseInt(f[3], 10)] } if (f = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)) { return [parseFloat(f[1]) * 2.55, parseFloat(f[2]) * 2.55, parseFloat(f[3]) * 2.55] } if (f = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)) { return [parseInt(f[1], 16), parseInt(f[2], 16), parseInt(f[3], 16)] } if (f = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)) { return [parseInt(f[1] + f[1], 16), parseInt(f[2] + f[2], 16), parseInt(f[3] + f[3], 16)] } if (f = /rgba\(0, 0, 0, 0\)/.exec(g)) { return a.transparent } return a[d.trim(g).toLowerCase()] } function e(h, f) { var g; do { g = d.curCSS(h, f); if (g != "" && g != "transparent" || d.nodeName(h, "body")) { break } f = "backgroundColor" } while (h = h.parentNode); return b(g) } var a = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0, 0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], transparent: [255, 255, 255] }; d.easing.jswing = d.easing.swing; d.extend(d.easing, { def: "easeOutQuad", swing: function(g, h, f, j, i) { return d.easing[d.easing.def](g, h, f, j, i) }, easeInQuad: function(g, h, f, j, i) { return j * (h /= i) * h + f }, easeOutQuad: function(g, h, f, j, i) { return -j * (h /= i) * (h - 2) + f }, easeInOutQuad: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h + f } return -j / 2 * ((--h) * (h - 2) - 1) + f }, easeInCubic: function(g, h, f, j, i) { return j * (h /= i) * h * h + f }, easeOutCubic: function(g, h, f, j, i) { return j * ((h = h / i - 1) * h * h + 1) + f }, easeInOutCubic: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h + f } return j / 2 * ((h -= 2) * h * h + 2) + f }, easeInQuart: function(g, h, f, j, i) { return j * (h /= i) * h * h * h + f }, easeOutQuart: function(g, h, f, j, i) { return -j * ((h = h / i - 1) * h * h * h - 1) + f }, easeInOutQuart: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h * h + f } return -j / 2 * ((h -= 2) * h * h * h - 2) + f }, easeInQuint: function(g, h, f, j, i) { return j * (h /= i) * h * h * h * h + f }, easeOutQuint: function(g, h, f, j, i) { return j * ((h = h / i - 1) * h * h * h * h + 1) + f }, easeInOutQuint: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return j / 2 * h * h * h * h * h + f } return j / 2 * ((h -= 2) * h * h * h * h + 2) + f }, easeInSine: function(g, h, f, j, i) { return -j * Math.cos(h / i * (Math.PI / 2)) + j + f }, easeOutSine: function(g, h, f, j, i) { return j * Math.sin(h / i * (Math.PI / 2)) + f }, easeInOutSine: function(g, h, f, j, i) { return -j / 2 * (Math.cos(Math.PI * h / i) - 1) + f }, easeInExpo: function(g, h, f, j, i) { return (h == 0) ? f : j * Math.pow(2, 10 * (h / i - 1)) + f }, easeOutExpo: function(g, h, f, j, i) { return (h == i) ? f + j : j * (-Math.pow(2, -10 * h / i) + 1) + f }, easeInOutExpo: function(g, h, f, j, i) { if (h == 0) { return f } if (h == i) { return f + j } if ((h /= i / 2) < 1) { return j / 2 * Math.pow(2, 10 * (h - 1)) + f } return j / 2 * (-Math.pow(2, -10 * --h) + 2) + f }, easeInCirc: function(g, h, f, j, i) { return -j * (Math.sqrt(1 - (h /= i) * h) - 1) + f }, easeOutCirc: function(g, h, f, j, i) { return j * Math.sqrt(1 - (h = h / i - 1) * h) + f }, easeInOutCirc: function(g, h, f, j, i) { if ((h /= i / 2) < 1) { return -j / 2 * (Math.sqrt(1 - h * h) - 1) + f } return j / 2 * (Math.sqrt(1 - (h -= 2) * h) + 1) + f }, easeInElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l) == 1) { return f + m } if (!k) { k = l * 0.3 } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } return -(h * Math.pow(2, 10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k)) + f }, easeOutElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l) == 1) { return f + m } if (!k) { k = l * 0.3 } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } return h * Math.pow(2, -10 * i) * Math.sin((i * l - j) * (2 * Math.PI) / k) + m + f }, easeInOutElastic: function(g, i, f, m, l) { var j = 1.70158; var k = 0; var h = m; if (i == 0) { return f } if ((i /= l / 2) == 2) { return f + m } if (!k) { k = l * (0.3 * 1.5) } if (h < Math.abs(m)) { h = m; var j = k / 4 } else { var j = k / (2 * Math.PI) * Math.asin(m / h) } if (i < 1) { return -0.5 * (h * Math.pow(2, 10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k)) + f } return h * Math.pow(2, -10 * (i -= 1)) * Math.sin((i * l - j) * (2 * Math.PI) / k) * 0.5 + m + f }, easeInBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } return k * (h /= j) * h * ((i + 1) * h - i) + f }, easeOutBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } return k * ((h = h / j - 1) * h * ((i + 1) * h + i) + 1) + f }, easeInOutBack: function(g, h, f, k, j, i) { if (i == undefined) { i = 1.70158 } if ((h /= j / 2) < 1) { return k / 2 * (h * h * (((i *= (1.525)) + 1) * h - i)) + f } return k / 2 * ((h -= 2) * h * (((i *= (1.525)) + 1) * h + i) + 2) + f }, easeInBounce: function(g, h, f, j, i) { return j - d.easing.easeOutBounce(g, i - h, 0, j, i) + f }, easeOutBounce: function(g, h, f, j, i) { if ((h /= i) < (1 / 2.75)) { return j * (7.5625 * h * h) + f } else { if (h < (2 / 2.75)) { return j * (7.5625 * (h -= (1.5 / 2.75)) * h + 0.75) + f } else { if (h < (2.5 / 2.75)) { return j * (7.5625 * (h -= (2.25 / 2.75)) * h + 0.9375) + f } else { return j * (7.5625 * (h -= (2.625 / 2.75)) * h + 0.984375) + f } } } }, easeInOutBounce: function(g, h, f, j, i) { if (h < i / 2) { return d.easing.easeInBounce(g, h * 2, 0, j, i) * 0.5 + f } return d.easing.easeOutBounce(g, h * 2 - i, 0, j, i) * 0.5 + j * 0.5 + f } }) })(jQuery); ; /*
 * jQuery UI Effects Explode 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Explode
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.explode = function(b) { return this.queue(function() { var k = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3; var e = b.options.pieces ? Math.round(Math.sqrt(b.options.pieces)) : 3; b.options.mode = b.options.mode == "toggle" ? (a(this).is(":visible") ? "hide" : "show") : b.options.mode; var h = a(this).show().css("visibility", "hidden"); var l = h.offset(); l.top -= parseInt(h.css("marginTop"), 10) || 0; l.left -= parseInt(h.css("marginLeft"), 10) || 0; var g = h.outerWidth(true); var c = h.outerHeight(true); for (var f = 0; f < k; f++) { for (var d = 0; d < e; d++) { h.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -d * (g / e), top: -f * (c / k) }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: g / e, height: c / k, left: l.left + d * (g / e) + (b.options.mode == "show" ? (d - Math.floor(e / 2)) * (g / e) : 0), top: l.top + f * (c / k) + (b.options.mode == "show" ? (f - Math.floor(k / 2)) * (c / k) : 0), opacity: b.options.mode == "show" ? 0 : 1 }).animate({ left: l.left + d * (g / e) + (b.options.mode == "show" ? 0 : (d - Math.floor(e / 2)) * (g / e)), top: l.top + f * (c / k) + (b.options.mode == "show" ? 0 : (f - Math.floor(k / 2)) * (c / k)), opacity: b.options.mode == "show" ? 1 : 0 }, b.duration || 500) } } setTimeout(function() { b.options.mode == "show" ? h.css({ visibility: "visible" }) : h.css({ visibility: "visible" }).hide(); if (b.callback) { b.callback.apply(h[0]) } h.dequeue(); a("div.ui-effects-explode").remove() }, b.duration || 500) }) } })(jQuery); ; /*
 * jQuery UI Effects Transfer 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Effects/Transfer
 *
 * Depends:
 *	effects.core.js
 */
(function(a) { a.effects.transfer = function(b) { return this.queue(function() { var f = a(this), h = a(b.options.to), e = h.offset(), g = { top: e.top, left: e.left, height: h.innerHeight(), width: h.innerWidth() }, d = f.offset(), c = a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({ top: d.top, left: d.left, height: f.innerHeight(), width: f.innerWidth(), position: "absolute" }).animate(g, b.duration, b.options.easing, function() { c.remove(); (b.callback && b.callback.apply(f[0], arguments)); f.dequeue() }) }) } })(jQuery); ;ï»¿/*!
* jQuery blockUI plugin
* Version 2.26 (09-SEP-2009)
* @requires jQuery v1.2.3 or later
*
* Examples at: http://malsup.com/jquery/block/
* Copyright (c) 2007-2008 M. Alsup
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Thanks to Amir-Hossein Sobhi for some excellent contributions!
*/

; (function($) {

    if (/1\.(0|1|2)\.(0|1|2)/.test($.fn.jquery) || /^1.1/.test($.fn.jquery)) {
        alert('blockUI requires jQuery v1.2.3 or later!  You are using v' + $.fn.jquery);
        return;
    }

    $.fn._fadeIn = $.fn.fadeIn;

    // this bit is to ensure we don't call setExpression when we shouldn't (with extra muscle to handle
    // retarded userAgent strings on Vista)
    var mode = document.documentMode || 0;
    var setExpr = $.browser.msie && (($.browser.version < 8 && !mode) || mode < 8);
    var ie6 = $.browser.msie && /MSIE 6.0/.test(navigator.userAgent) && !mode;

    // global $ methods for blocking/unblocking the entire page
    $.blockUI = function(opts) { install(window, opts); };
    $.unblockUI = function(opts) { remove(window, opts); };

    // convenience method for quick growl-like notifications  (http://www.google.com/search?q=growl)
    $.growlUI = function(title, message, timeout, onClose) {
        var $m = $('<div class="growlUI"></div>');
        if (title) $m.append('<h1>' + title + '</h1>');
        if (message) $m.append('<h2>' + message + '</h2>');
        if (timeout == undefined) timeout = 3000;
        $.blockUI({
            message: $m, fadeIn: 700, fadeOut: 1000, centerY: false,
            timeout: timeout, showOverlay: false,
            onUnblock: onClose,
            css: $.blockUI.defaults.growlCSS
        });
    };

    // plugin method for blocking element content
    $.fn.block = function(opts) {
        return this.unblock({ fadeOut: 0 }).each(function() {
            if ($.css(this, 'position') == 'static')
                this.style.position = 'relative';
            if ($.browser.msie)
                this.style.zoom = 1; // force 'hasLayout'
            install(this, opts);
        });
    };

    // plugin method for unblocking element content
    $.fn.unblock = function(opts) {
        return this.each(function() {
            remove(this, opts);
        });
    };

    $.blockUI.version = 2.26; // 2nd generation blocking at no extra cost!

    // override these in your code to change the default behavior and style
    $.blockUI.defaults = {
        // message displayed when blocking (use null for no message)
        message: '<h1>Please wait...</h1>',

        title: null,   // title string; only used when theme == true
        draggable: true,  // only used when theme == true (requires jquery-ui.js to be loaded)

        theme: false, // set to true to use with jQuery UI themes

        // styles for the message when blocking; if you wish to disable
        // these and use an external stylesheet then do this in your code:
        // $.blockUI.defaults.css = {};
        css: {
            padding: 0,
            margin: 0,
            width: '30%',
            top: '40%',
            left: '35%',
            textAlign: 'center',
            color: '#000',
            border: '3px solid #aaa',
            backgroundColor: '#fff',
            cursor: 'wait'
        },

        // minimal style set used when themes are used
        themedCSS: {
            width: '30%',
            top: '40%',
            left: '35%'
        },

        // styles for the overlay
        overlayCSS: {
            backgroundColor: '#fff',
            opacity: 0.85,
            cursor: 'wait'
        },

        // styles applied when using $.growlUI
        growlCSS: {
            width: '350px',
            top: '10px',
            left: '',
            right: '10px',
            border: 'none',
            padding: '5px',
            opacity: 0.6,
            cursor: 'default',
            color: '#fff',
            backgroundColor: '#000',
            '-webkit-border-radius': '10px',
            '-moz-border-radius': '10px'
        },

        // IE issues: 'about:blank' fails on HTTPS and javascript:false is s-l-o-w
        // (hat tip to Jorge H. N. de Vasconcelos)
        iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank',

        // force usage of iframe in non-IE browsers (handy for blocking applets)
        forceIframe: false,

        // z-index for the blocking overlay
        baseZ: 1000,

        // set these to true to have the message automatically centered
        centerX: true, // <-- only effects element blocking (page block controlled via css above)
        centerY: true,

        // allow body element to be stetched in ie6; this makes blocking look better
        // on "short" pages.  disable if you wish to prevent changes to the body height
        allowBodyStretch: true,

        // enable if you want key and mouse events to be disabled for content that is blocked
        bindEvents: true,

        // be default blockUI will supress tab navigation from leaving blocking content
        // (if bindEvents is true)
        constrainTabKey: true,

        // fadeIn time in millis; set to 0 to disable fadeIn on block
        fadeIn: 200,

        // fadeOut time in millis; set to 0 to disable fadeOut on unblock
        fadeOut: 400,

        // time in millis to wait before auto-unblocking; set to 0 to disable auto-unblock
        timeout: 0,

        // disable if you don't want to show the overlay
        showOverlay: true,

        // if true, focus will be placed in the first available input field when
        // page blocking
        focusInput: true,

        // suppresses the use of overlay styles on FF/Linux (due to performance issues with opacity)
        applyPlatformOpacityRules: true,

        // callback method invoked when unblocking has completed; the callback is
        // passed the element that has been unblocked (which is the window object for page
        // blocks) and the options that were passed to the unblock call:
        //	 onUnblock(element, options)
        onUnblock: null,

        // don't ask; if you really must know: http://groups.google.com/group/jquery-en/browse_thread/thread/36640a8730503595/2f6a79a77a78e493#2f6a79a77a78e493
        quirksmodeOffsetHack: 4
    };

    // private data and functions follow...

    var pageBlock = null;
    var pageBlockEls = [];

    function install(el, opts) {
        var full = (el == window);
        var msg = opts && opts.message !== undefined ? opts.message : undefined;
        opts = $.extend({}, $.blockUI.defaults, opts || {});
        opts.overlayCSS = $.extend({}, $.blockUI.defaults.overlayCSS, opts.overlayCSS || {});
        var css = $.extend({}, $.blockUI.defaults.css, opts.css || {});
        var themedCSS = $.extend({}, $.blockUI.defaults.themedCSS, opts.themedCSS || {});
        msg = msg === undefined ? opts.message : msg;

        // remove the current block (if there is one)
        if (full && pageBlock)
            remove(window, { fadeOut: 0 });

        // if an existing element is being used as the blocking content then we capture
        // its current place in the DOM (and current display style) so we can restore
        // it when we unblock
        if (msg && typeof msg != 'string' && (msg.parentNode || msg.jquery)) {
            var node = msg.jquery ? msg[0] : msg;
            var data = {};
            $(el).data('blockUI.history', data);
            data.el = node;
            data.parent = node.parentNode;
            data.display = node.style.display;
            data.position = node.style.position;
            if (data.parent)
                data.parent.removeChild(node);
        }

        var z = opts.baseZ;

        // blockUI uses 3 layers for blocking, for simplicity they are all used on every platform;
        // layer1 is the iframe layer which is used to supress bleed through of underlying content
        // layer2 is the overlay layer which has opacity and a wait cursor (by default)
        // layer3 is the message content that is displayed while blocking

        var lyr1 = ($.browser.msie || opts.forceIframe)
		? $('<iframe class="blockUI" style="z-index:' + (z++) + ';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="' + opts.iframeSrc + '"></iframe>')
		: $('<div class="blockUI" style="display:none"></div>');
        var lyr2 = $('<div class="blockUI blockOverlay" style="z-index:' + (z++) + ';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');

        var lyr3;
        if (opts.theme && full) {
            var s = '<div class="blockUI blockMsg blockPage ui-dialog ui-widget ui-corner-all" style="z-index:' + z + ';display:none;position:fixed">' +
					'<div class="ui-widget-header ui-dialog-titlebar blockTitle">' + (opts.title || '&nbsp;') + '</div>' +
					'<div class="ui-widget-content ui-dialog-content"></div>' +
				'</div>';
            lyr3 = $(s);
        }
        else {
            lyr3 = full ? $('<div class="blockUI blockMsg blockPage" style="z-index:' + z + ';display:none;position:fixed"></div>')
					: $('<div class="blockUI blockMsg blockElement" style="z-index:' + z + ';display:none;position:absolute"></div>');
        }

        // if we have a message, style it
        if (msg) {
            if (opts.theme) {
                lyr3.css(themedCSS);
                lyr3.addClass('ui-widget-content');
            }
            else
                lyr3.css(css);
        }

        // style the overlay
        if (!opts.applyPlatformOpacityRules || !($.browser.mozilla && /Linux/.test(navigator.platform)))
            lyr2.css(opts.overlayCSS);
        lyr2.css('position', full ? 'fixed' : 'absolute');

        // make iframe layer transparent in IE
        if ($.browser.msie || opts.forceIframe)
            lyr1.css('opacity', 0.0);

        $([lyr1[0], lyr2[0], lyr3[0]]).appendTo(full ? 'body' : el);

        if (opts.theme && opts.draggable && $.fn.draggable) {
            lyr3.draggable({
                handle: '.ui-dialog-titlebar',
                cancel: 'li'
            });
        }

        // ie7 must use absolute positioning in quirks mode and to account for activex issues (when scrolling)
        var expr = setExpr && (!$.boxModel || $('object,embed', full ? null : el).length > 0);
        if (ie6 || expr) {
            // give body 100% height
            if (full && opts.allowBodyStretch && $.boxModel)
                $('html,body').css('height', '100%');

            // fix ie6 issue when blocked element has a border width
            if ((ie6 || !$.boxModel) && !full) {
                var t = sz(el, 'borderTopWidth'), l = sz(el, 'borderLeftWidth');
                var fixT = t ? '(0 - ' + t + ')' : 0;
                var fixL = l ? '(0 - ' + l + ')' : 0;
            }

            // simulate fixed position
            $.each([lyr1, lyr2, lyr3], function(i, o) {
                var s = o[0].style;
                s.position = 'absolute';
                if (i < 2) {
                    full ? s.setExpression('height', 'Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.boxModel?0:' + opts.quirksmodeOffsetHack + ') + "px"')
					 : s.setExpression('height', 'this.parentNode.offsetHeight + "px"');
                    full ? s.setExpression('width', 'jQuery.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"')
					 : s.setExpression('width', 'this.parentNode.offsetWidth + "px"');
                    if (fixL) s.setExpression('left', fixL);
                    if (fixT) s.setExpression('top', fixT);
                }
                else if (opts.centerY) {
                    if (full) s.setExpression('top', '(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');
                    s.marginTop = 0;
                }
                else if (!opts.centerY && full) {
                    var top = (opts.css && opts.css.top) ? parseInt(opts.css.top) : 0;
                    var expression = '((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + ' + top + ') + "px"';
                    s.setExpression('top', expression);
                }
            });
        }

        // show the message
        if (msg) {
            if (opts.theme)
                lyr3.find('.ui-widget-content').append(msg);
            else
                lyr3.append(msg);
            if (msg.jquery || msg.nodeType)
                $(msg).show();
        }

        if (($.browser.msie || opts.forceIframe) && opts.showOverlay)
            lyr1.show(); // opacity is zero
        if (opts.fadeIn) {
            if (opts.showOverlay)
                lyr2._fadeIn(opts.fadeIn);
            if (msg)
                lyr3.fadeIn(opts.fadeIn);
        }
        else {
            if (opts.showOverlay)
                lyr2.show();
            if (msg)
                lyr3.show();
        }

        // bind key and mouse events
        bind(1, el, opts);

        if (full) {
            pageBlock = lyr3[0];
            pageBlockEls = $(':input:enabled:visible', pageBlock);
            if (opts.focusInput)
                setTimeout(focus, 20);
        }
        else
            center(lyr3[0], opts.centerX, opts.centerY);

        if (opts.timeout) {
            // auto-unblock
            var to = setTimeout(function() {
                full ? $.unblockUI(opts) : $(el).unblock(opts);
            }, opts.timeout);
            $(el).data('blockUI.timeout', to);
        }
    };

    // remove the block
    function remove(el, opts) {
        var full = (el == window);
        var $el = $(el);
        var data = $el.data('blockUI.history');
        var to = $el.data('blockUI.timeout');
        if (to) {
            clearTimeout(to);
            $el.removeData('blockUI.timeout');
        }
        opts = $.extend({}, $.blockUI.defaults, opts || {});
        bind(0, el, opts); // unbind events

        var els;
        if (full) // crazy selector to handle odd field errors in ie6/7
            els = $('body').children().filter('.blockUI').add('body > .blockUI');
        else
            els = $('.blockUI', el);

        if (full)
            pageBlock = pageBlockEls = null;

        if (opts.fadeOut) {
            els.fadeOut(opts.fadeOut);
            setTimeout(function() { reset(els, data, opts, el); }, opts.fadeOut);
        }
        else
            reset(els, data, opts, el);
    };

    // move blocking element back into the DOM where it started
    function reset(els, data, opts, el) {
        els.each(function(i, o) {
            // remove via DOM calls so we don't lose event handlers
            if (this.parentNode)
                this.parentNode.removeChild(this);
        });

        if (data && data.el) {
            data.el.style.display = data.display;
            data.el.style.position = data.position;
            if (data.parent)
                data.parent.appendChild(data.el);
            $(data.el).removeData('blockUI.history');
        }

        if (typeof opts.onUnblock == 'function')
            opts.onUnblock(el, opts);
    };

    // bind/unbind the handler
    function bind(b, el, opts) {
        var full = el == window, $el = $(el);

        // don't bother unbinding if there is nothing to unbind
        if (!b && (full && !pageBlock || !full && !$el.data('blockUI.isBlocked')))
            return;
        if (!full)
            $el.data('blockUI.isBlocked', b);

        // don't bind events when overlay is not in use or if bindEvents is false
        if (!opts.bindEvents || (b && !opts.showOverlay))
            return;

        // bind anchors and inputs for mouse and key events
        var events = 'mousedown mouseup keydown keypress';
        b ? $(document).bind(events, opts, handler) : $(document).unbind(events, handler);

        // former impl...
        //	   var $e = $('a,:input');
        //	   b ? $e.bind(events, opts, handler) : $e.unbind(events, handler);
    };

    // event handler to suppress keyboard/mouse events when blocking
    function handler(e) {
        // allow tab navigation (conditionally)
        if (e.keyCode && e.keyCode == 9) {
            if (pageBlock && e.data.constrainTabKey) {
                var els = pageBlockEls;
                var fwd = !e.shiftKey && e.target == els[els.length - 1];
                var back = e.shiftKey && e.target == els[0];
                if (fwd || back) {
                    setTimeout(function() { focus(back) }, 10);
                    return false;
                }
            }
        }
        // allow events within the message content
        if ($(e.target).parents('div.blockMsg').length > 0)
            return true;

        // allow events for content that is not being blocked
        return $(e.target).parents().children().filter('div.blockUI').length == 0;
    };

    function focus(back) {
        if (!pageBlockEls)
            return;
        var e = pageBlockEls[back === true ? pageBlockEls.length - 1 : 0];
        if (e)
            e.focus();
    };

    function center(el, x, y) {
        var p = el.parentNode, s = el.style;
        var l = ((p.offsetWidth - el.offsetWidth) / 2) - sz(p, 'borderLeftWidth');
        var t = ((p.offsetHeight - el.offsetHeight) / 2) - sz(p, 'borderTopWidth');
        if (x) s.left = l > 0 ? (l + 'px') : '0';
        if (y) s.top = t > 0 ? (t + 'px') : '0';
    };

    function sz(el, p) {
        return parseInt($.css(el, p)) || 0;
    };

})(jQuery);
/*
* jQuery Impromptu
* By: Trent Richardson [http://trentrichardson.com]
* Version 2.7
* Last Modified: 6/7/2009
* 
* Copyright 2009 Trent Richardson
* Dual licensed under the MIT and GPL licenses.
* http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
* 
*/

(function($) {
    $.prompt = function(message, options) {
        options = $.extend({}, $.prompt.defaults, options);
        $.prompt.currentPrefix = options.prefix;

        var ie6 = ($.browser.msie && $.browser.version < 7);
        var $body = $(document.body);
        var $window = $(window);

        //build the box and fade
        var msgbox = '<div class="' + options.prefix + 'box" id="' + options.prefix + 'box">';
        if (options.useiframe && (($('object, applet').length > 0) || ie6)) {
            msgbox += '<iframe src="javascript:' + "''" + '" style="display:block;position:absolute;z-index:-1;" class="' + options.prefix + 'fade" id="' + options.prefix + 'fade"></iframe>';
        } else {
            if (ie6) {
                $('select').css('visibility', 'hidden');
            }
            msgbox += '<div class="' + options.prefix + 'fade" id="' + options.prefix + 'fade"></div>';
        }
        msgbox += '<div class="' + options.prefix + '" id="' + options.prefix + '"><div class="' + options.prefix + 'container"><div class="';
        msgbox += options.prefix + 'close">X</div><div id="' + options.prefix + 'states"></div>';
        msgbox += '</div></div></div>';

        var $jqib = $(msgbox).appendTo($body);
        var $jqi = $jqib.children('#' + options.prefix);
        var $jqif = $jqib.children('#' + options.prefix + 'fade');

        //if a string was passed, convert to a single state
        if (message.constructor == String) {
            message = {
                state0: {
                    html: message,
                    buttons: options.buttons,
                    focus: options.focus,
                    submit: options.submit
                }
            };
        }

        //build the states
        var states = "";

        $.each(message, function(statename, stateobj) {
            stateobj = $.extend({}, $.prompt.defaults.state, stateobj);
            message[statename] = stateobj;

            states += '<div id="' + options.prefix + '_state_' + statename + '" class="' + options.prefix + '_state" style="display:none;"><div class="' + options.prefix + 'message">' + stateobj.html + '</div><div class="' + options.prefix + 'buttons">';
            $.each(stateobj.buttons, function(k, v) {
                var buttonText = k;
                var buttonId = k;
                var buttonValue = v;
                if (typeof (v) == "object") {
                    buttonText = v.text;
                    buttonValue = v.value;
                }
                states += '<span class="big-button"><button name="' + options.prefix + '_' + statename + '_button' + buttonId + '" id="' + options.prefix + '_' + statename + '_button' + buttonId + '" value="' + buttonValue + '">' + buttonText + '</button></span>';
            });
            states += '</div></div>';
        });

        //insert the states...
        $jqi.find('#' + options.prefix + 'states').html(states).children('.' + options.prefix + '_state:first').css('display', 'block');
        $jqi.find('.' + options.prefix + 'buttons:empty').css('display', 'none');

        //Events
        $.each(message, function(statename, stateobj) {
            var $state = $jqi.find('#' + options.prefix + '_state_' + statename);

            $state.children('.' + options.prefix + 'buttons').find('button').click(function() {
                var msg = $state.children('.' + options.prefix + 'message');
                var namePrefix = options.prefix + "_" + statename + "_button";
                var buttonName = $(this).attr("name").substr(namePrefix.length);
                var clicked = stateobj.buttons[buttonName];
                if (typeof (clicked) == "object") {
                    clicked = clicked.value;
                }

                var forminputs = {};

                //collect all form element values from all states
                $.each($jqi.find('#' + options.prefix + 'states :input').serializeArray(), function(i, obj) {
                    if (forminputs[obj.name] === undefined) {
                        forminputs[obj.name] = obj.value;
                    } else if (typeof forminputs[obj.name] == Array) {
                        forminputs[obj.name].push(obj.value);
                    } else {
                        forminputs[obj.name] = [forminputs[obj.name], obj.value];
                    }
                });

                var close = stateobj.submit(clicked, msg, forminputs);
                if (close === undefined || close) {
                    removePrompt(true, clicked, msg, forminputs);
                }
            });
            $state.find('.' + options.prefix + 'buttons button:eq(' + stateobj.focus + ')').parent().addClass(options.prefix + 'defaultbutton');
            $state.find('.' + options.prefix + 'buttons button:not(:eq(' + stateobj.focus + '))').parent().addClass(options.prefix + 'otherbutton');

        });

        var ie6scroll = function() {
            $jqib.css({ top: $window.scrollTop() });
        };

        var fadeClicked = function() {
            if (options.persistent) {
                var i = 0;
                $jqib.addClass(options.prefix + 'warning');
                var intervalid = setInterval(function() {
                    $jqib.toggleClass(options.prefix + 'warning');
                    if (i++ > 1) {
                        clearInterval(intervalid);
                        $jqib.removeClass(options.prefix + 'warning');
                    }
                }, 100);
            }
            else {
                removePrompt();
            }
        };

        var keyPressEventHandler = function(e) {
            var key = (window.event) ? event.keyCode : e.keyCode; // MSIE or Firefox?

            //escape key closes
            if (key == 27) {
                removePrompt();
            }

            //constrain tabs
            if (key == 9) {
                var $inputels = $(':input:enabled:visible', $jqib);
                var fwd = !e.shiftKey && e.target == $inputels[$inputels.length - 1];
                var back = e.shiftKey && e.target == $inputels[0];
                if (fwd || back) {
                    setTimeout(function() {
                        if (!$inputels)
                            return;
                        var el = $inputels[back === true ? $inputels.length - 1 : 0];

                        if (el)
                            el.focus();
                    }, 10);
                    return false;
                }
            }
        };

        var positionPrompt = function() {
            $jqib.css({
                position: (ie6) ? "absolute" : "fixed",
                height: $window.height(),
                width: "100%",
                top: (ie6) ? $window.scrollTop() : 0,
                left: 0,
                right: 0,
                bottom: 0
            });
            $jqif.css({
                position: "absolute",
                height: $window.height(),
                width: "100%",
                top: 0,
                left: 0,
                right: 0,
                bottom: 0
            });
            $jqi.css({
                position: "absolute",
                top: options.top,
                left: "50%",
                marginLeft: (($jqi.outerWidth() / 2) * -1)
            });
        };

        var stylePrompt = function() {
            $jqif.css({
                zIndex: options.zIndex,
                display: "none",
                opacity: options.opacity
            });
            $jqi.css({
                zIndex: options.zIndex + 1,
                display: "none"
            });
            $jqib.css({
                zIndex: options.zIndex
            });
        };

        var removePrompt = function(callCallback, clicked, msg, formvals) {
            $jqi.remove();
            //ie6, remove the scroll event
            if (ie6) {
                $body.unbind('scroll', ie6scroll);
            }
            $window.unbind('resize', positionPrompt);
            $jqif.fadeOut(options.overlayspeed, function() {
                $jqif.unbind('click', fadeClicked);
                $jqif.remove();
                if (callCallback) {
                    options.callback(clicked, msg, formvals);
                }
                $jqib.unbind('keypress', keyPressEventHandler);
                $jqib.remove();
                if (ie6 && !options.useiframe) {
                    $('select').css('visibility', 'visible');
                }
            });
        };

        positionPrompt();
        stylePrompt();

        //ie6, add a scroll event to fix position:fixed
        if (ie6) {
            $window.scroll(ie6scroll);
        }
        $jqif.click(fadeClicked);
        $window.resize(positionPrompt);
        $jqib.bind("keydown keypress", keyPressEventHandler);
        $jqi.find('.' + options.prefix + 'close').click(removePrompt);

        //Show it
        $jqif.fadeIn(options.overlayspeed);
        $jqi[options.show](options.promptspeed, options.loaded);
        $jqi.find('#' + options.prefix + 'states .' + options.prefix + '_state:first .' + options.prefix + 'defaultbutton').focus();

        if (options.timeout > 0)
            setTimeout($.prompt.close, options.timeout);

        return $jqib;
    };

    $.prompt.defaults = {
        prefix: 'jqi',
        buttons: {
            Ok: true
        },
        loaded: function() {

        },
        submit: function() {
            return true;
        },
        callback: function() {

        },
        opacity: 0.6,
        zIndex: 999,
        overlayspeed: 'slow',
        promptspeed: 'fast',
        show: 'fadeIn',
        focus: 0,
        useiframe: false,
        top: "15%",
        persistent: true,
        timeout: 0,
        state: {
            html: '',
            buttons: {
                Ok: true
            },
            focus: 0,
            submit: function() {
                return true;
            }
        }
    };

    $.prompt.currentPrefix = $.prompt.defaults.prefix;

    $.prompt.setDefaults = function(o) {
        $.prompt.defaults = $.extend({}, $.prompt.defaults, o);
    };

    $.prompt.setStateDefaults = function(o) {
        $.prompt.defaults.state = $.extend({}, $.prompt.defaults.state, o);
    };

    $.prompt.getStateContent = function(state) {
        return $('#' + $.prompt.currentPrefix + '_state_' + state);
    };

    $.prompt.getCurrentState = function() {
        return $('.' + $.prompt.currentPrefix + '_state:visible');
    };

    $.prompt.getCurrentStateName = function() {
        var stateid = $.prompt.getCurrentState().attr('id');

        return stateid.replace($.prompt.currentPrefix + '_state_', '');
    };

    $.prompt.goToState = function(state) {
        $('.' + $.prompt.currentPrefix + '_state').slideUp('slow');
        $('#' + $.prompt.currentPrefix + '_state_' + state).slideDown('slow', function() {
            $(this).find('.' + $.prompt.currentPrefix + 'defaultbutton').focus();
        });
    };

    $.prompt.nextState = function() {
        var $next = $('.' + $.prompt.currentPrefix + '_state:visible').next();

        $('.' + $.prompt.currentPrefix + '_state').slideUp('slow');

        $next.slideDown('slow', function() {
            $next.find('.' + $.prompt.currentPrefix + 'defaultbutton').focus();
        });
    };

    $.prompt.prevState = function() {
        var $next = $('.' + $.prompt.currentPrefix + '_state:visible').prev();

        $('.' + $.prompt.currentPrefix + '_state').slideUp('slow');

        $next.slideDown('slow', function() {
            $next.find('.' + $.prompt.currentPrefix + 'defaultbutton').focus();
        });
    };

    $.prompt.close = function() {
        $('#' + $.prompt.currentPrefix + 'box').fadeOut('fast', function() {
            $(this).remove();
        });
    };

})(jQuery);
/*
	VERSION: Drop Shadow jQuery Plugin 1.6  12-13-2007

	REQUIRES: jquery.js (1.2.6 or later)

	SYNTAX: $(selector).dropShadow(options);  // Creates new drop shadows
					$(selector).redrawShadow();       // Redraws shadows on elements
					$(selector).removeShadow();       // Removes shadows from elements
					$(selector).shadowId();           // Returns an existing shadow's ID

	OPTIONS:

		left    : integer (default = 4)
		top     : integer (default = 4)
		blur    : integer (default = 2)
		opacity : decimal (default = 0.5)
		color   : string (default = "black")
		swap    : boolean (default = false)

	The left and top parameters specify the distance and direction, in	pixels, to
	offset the shadow. Zero values position the shadow directly behind the element.
	Positive values shift the shadow to the right and down, while negative values 
	shift the shadow to the left and up.
	
	The blur parameter specifies the spread, or dispersion, of the shadow. Zero 
	produces a sharp shadow, one or two produces a normal shadow, and	three or four
	produces a softer shadow. Higher values increase the processing load.
	
	The opacity parameter	should be a decimal value, usually less than one. You can
	use a value	higher than one in special situations, e.g. with extreme blurring. 
	
	Color is specified in the usual manner, with a color name or hex value. The
	color parameter	does not apply with transparent images.
	
	The swap parameter reverses the stacking order of the original and the shadow.
	This can be used for special effects, like an embossed or engraved look.

	EXPLANATION:
	
	This jQuery plug-in adds soft drop shadows behind page elements. It is only
	intended for adding a few drop shadows to mostly stationary objects, like a
	page heading, a photo, or content containers.

	The shadows it creates are not bound to the original elements, so they won't
	move or change size automatically if the original elements change. A window
	resize event listener is assigned, which should re-align the shadows in many
	cases, but if the elements otherwise move or resize you will have to handle
	those events manually. Shadows can be redrawn with the redrawShadow() method
	or removed with the removeShadow() method. The redrawShadow() method uses the
	same options used to create the original shadow. If you want to change the
	options, you should remove the shadow first and then create a new shadow.
	
	The dropShadow method returns a jQuery collection of the new shadow(s). If
	further manipulation is required, you can store it in a variable like this:

		var myShadow = $("#myElement").dropShadow();

	You can also read the ID of the shadow from the original element at a later
	time. To get a shadow's ID, either read the shadowId attribute of the
	original element or call the shadowId() method. For example:

		var myShadowId = $("#myElement").attr("shadowId");  or
		var myShadowId = $("#myElement").shadowId();

	If the original element does not already have an ID assigned, a random ID will
	be generated for the shadow. However, if the original does have an ID, the 
	shadow's ID will be the original ID and "_dropShadow". For example, if the
	element's ID is "myElement", the shadow's ID would be "myElement_dropShadow".

	If you have a long piece of text and the user resizes the	window so that the
	text wraps or unwraps, the shape of the text changes and the words are no
	longer in the same positions. In that case, you can either preset the height
	and width, so that it becomes a fixed box, or you can shadow each word
	separately, like this:

		<h1><span>Your</span> <span>Page</span> <span>Title</span></h1>

		$("h1 span").dropShadow();

	The dropShadow method attempts to determine whether the selected elements have
	transparent backgrounds. If you want to shadow the content inside an element,
	like text or a transparent image, it must not have a background-color or
	background-image style. If the element has a solid background it will create a
	rectangular	shadow around the outside box.

	The shadow elements are positioned absolutely one layer below the original 
	element, which is positioned relatively (unless it's already absolute).

	*** All shadows have the "dropShadow" class, for selecting with CSS or jQuery.

	ISSUES:
	
		1)	Limited styling of shadowed elements by ID. Because IDs must be unique,
				and the shadows have their own ID, styles applied by ID won't transfer
				to the shadows. Instead, style elements by class or use inline styles.
		2)	Sometimes shadows don't align properly. Elements may need to be wrapped
				in container elements, margins or floats changed, etc. or you may just 
				have to tweak the left and top offsets to get them to align. For example,
				with draggable objects, you have to wrap them inside two divs. Make the 
				outer div draggable and set the inner div's position to relative. Then 
				you can create a shadow on the element inside the inner div.
		3)	If the user changes font sizes it will throw the shadows off. Browsers 
				do not expose an event for font size changes. The only known way to 
				detect a user font size change is to embed an invisible text element and
				then continuously poll for changes in size.
		4)	Safari support is shaky, and may require even more tweaks/wrappers, etc.
		
		The bottom line is that this is a gimick effect, not PFM, and if you push it
		too hard or expect it to work in every possible situation on every browser,
		you will be disappointed. Use it sparingly, and don't use it for anything 
		critical. Otherwise, have fun with it!
				
	AUTHOR: Larry Stevens (McLars@eyebulb.com) This work is in the public domain,
					and it is not supported in any way. Use it at your own risk.
*/


(function($){

	var dropShadowZindex = 2000;  //z-index counter

	$.fn.dropShadow = function(options)
	{
		// Default options
		var opt = $.extend({
			left: 4,
			top: 4,
			blur: 2,
			opacity: .5,
			color: "black",
			swap: false
			}, options);
		var jShadows = $([]);  //empty jQuery collection
		
		// Loop through original elements
		this.not(".dropShadow").each(function()
		{
			var jthis = $(this);
			var shadows = [];
			var blur = (opt.blur <= 0) ? 0 : opt.blur;
			var opacity = (blur == 0) ? opt.opacity : opt.opacity / (blur * 8);
			var zOriginal = (opt.swap) ? dropShadowZindex : dropShadowZindex + 1;
			var zShadow = (opt.swap) ? dropShadowZindex + 1 : dropShadowZindex;
			
			// Create ID for shadow
			var shadowId;
			if (this.id) {
				shadowId = this.id + "_dropShadow";
			}
			else {
				shadowId = "ds" + (1 + Math.floor(9999 * Math.random()));
			}

			// Modify original element
			$.data(this, "shadowId", shadowId); //store id in expando
			$.data(this, "shadowOptions", options); //store options in expando
			jthis
				.attr("shadowId", shadowId)
				.css("zIndex", zOriginal);
			if (jthis.css("position") != "absolute") {
				jthis.css({
					position: "relative",
					zoom: 1 //for IE layout
				});
			}

			// Create first shadow layer
			bgColor = jthis.css("backgroundColor");
			if (bgColor == "rgba(0, 0, 0, 0)") bgColor = "transparent";  //Safari
			if (bgColor != "transparent" || jthis.css("backgroundImage") != "none" 
					|| this.nodeName == "SELECT" 
					|| this.nodeName == "INPUT"
					|| this.nodeName == "TEXTAREA") {		
				shadows[0] = $("<div></div>")
					.css("background", opt.color);								
			}
			else {
				shadows[0] = jthis
					.clone()
					.removeAttr("id")
					.removeAttr("name")
					.removeAttr("shadowId")
					.css("color", opt.color);
			}
			shadows[0]
				.addClass("dropShadow")
				.css({
					height: jthis.outerHeight(),
					left: blur,
					opacity: opacity,
					position: "absolute",
					top: blur,
					width: jthis.outerWidth(),
					zIndex: zShadow
				});
				
			// Create other shadow layers
			var layers = (8 * blur) + 1;
			for (i = 1; i < layers; i++) {
				shadows[i] = shadows[0].clone();
			}

			// Position layers
			var i = 1;			
			var j = blur;
			while (j > 0) {
				shadows[i].css({left: j * 2, top: 0});           //top
				shadows[i + 1].css({left: j * 4, top: j * 2});   //right
				shadows[i + 2].css({left: j * 2, top: j * 4});   //bottom
				shadows[i + 3].css({left: 0, top: j * 2});       //left
				shadows[i + 4].css({left: j * 3, top: j});       //top-right
				shadows[i + 5].css({left: j * 3, top: j * 3});   //bottom-right
				shadows[i + 6].css({left: j, top: j * 3});       //bottom-left
				shadows[i + 7].css({left: j, top: j});           //top-left
				i += 8;
				j--;
			}

			// Create container
			var divShadow = $("<div></div>")
				.attr("id", shadowId) 
				.addClass("dropShadow")
				.css({
					left: jthis.position().left + opt.left - blur,
					marginTop: jthis.css("marginTop"),
					marginRight: jthis.css("marginRight"),
					marginBottom: jthis.css("marginBottom"),
					marginLeft: jthis.css("marginLeft"),
					position: "absolute",
					top: jthis.position().top + opt.top - blur,
					zIndex: zShadow
				});

			// Add layers to container	
			for (i = 0; i < layers; i++) {
				divShadow.append(shadows[i]);
			}
			
			// Add container to DOM
			jthis.after(divShadow);

			// Add shadow to return set
			jShadows = jShadows.add(divShadow);

			// Re-align shadow on window resize
			$(window).resize(function()
			{
				try {
					divShadow.css({
						left: jthis.position().left + opt.left - blur,
						top: jthis.position().top + opt.top - blur
					});
				}
				catch(e){}
			});
			
			// Increment z-index counter
			dropShadowZindex += 2;

		});  //end each
		
		return this.pushStack(jShadows);
	};


	$.fn.redrawShadow = function()
	{
		// Remove existing shadows
		this.removeShadow();
		
		// Draw new shadows
		return this.each(function()
		{
			var shadowOptions = $.data(this, "shadowOptions");
			$(this).dropShadow(shadowOptions);
		});
	};


	$.fn.removeShadow = function()
	{
		return this.each(function()
		{
			var shadowId = $(this).shadowId();
			$("div#" + shadowId).remove();
		});
	};


	$.fn.shadowId = function()
	{
		return $.data(this[0], "shadowId");
	};


	$(function()  
	{
		// Suppress printing of shadows
		var noPrint = "<style type='text/css' media='print'>";
		noPrint += ".dropShadow{visibility:hidden;}</style>";
		$("head").append(noPrint);
	});

})(jQuery);/*
 * jQuery validation plug-in 1.5.1
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-validation/
 * http://docs.jquery.com/Plugins/Validation
 *
 * Copyright (c) 2006 - 2008 JÃ¶rn Zaefferer
 *
 * $Id: jquery.validate.js 6096 2009-01-12 14:12:04Z joern.zaefferer $
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */

(function($) {

    $.extend($.fn, {
        // http://docs.jquery.com/Plugins/Validation/validate
        validate: function(options) {

            // if nothing is selected, return nothing; can't chain anyway
            if (!this.length) {
                options && options.debug && window.console && console.warn("nothing selected, can't validate, returning nothing");
                return;
            }

            // check if a validator for this form was already created
            var validator = $.data(this[0], 'validator');
            if (validator) {
                return validator;
            }

            validator = new $.validator(options, this[0]);
            $.data(this[0], 'validator', validator);

            if (validator.settings.onsubmit) {

                // allow suppresing validation by adding a cancel class to the submit button
                this.find("input, button").filter(".cancel").click(function() {
                    validator.cancelSubmit = true;
                });

                // validate the form on submit
                this.submit(function(event) {
                    if (validator.settings.debug)
                    // prevent form submit to be able to see console output
                        event.preventDefault();

                    function handle() {
                        if (validator.settings.submitHandler) {
                            validator.settings.submitHandler.call(validator, validator.currentForm);
                            return false;
                        }
                        return true;
                    }

                    // prevent submit for invalid forms or custom submit handlers
                    if (validator.cancelSubmit) {
                        validator.cancelSubmit = false;
                        return handle();
                    }
                    if (validator.form()) {
                        if (validator.pendingRequest) {
                            validator.formSubmitted = true;
                            return false;
                        }
                        return handle();
                    } else {
                        validator.focusInvalid();
                        return false;
                    }
                });
            }

            return validator;
        },
        // http://docs.jquery.com/Plugins/Validation/valid
        valid: function() {
            if ($(this[0]).is('form')) {
                return this.validate().form();
            } else {
                var valid = false;
                var validator = $(this[0].form).validate();
                this.each(function() {
                    valid |= validator.element(this);
                });
                return valid;
            }
        },
        // attributes: space seperated list of attributes to retrieve and remove
        removeAttrs: function(attributes) {
            var result = {},
			$element = this;
            $.each(attributes.split(/\s/), function(index, value) {
                result[value] = $element.attr(value);
                $element.removeAttr(value);
            });
            return result;
        },
        // http://docs.jquery.com/Plugins/Validation/rules
        rules: function(command, argument) {
            var element = this[0];

            if (command) {
                var settings = $.data(element.form, 'validator').settings;
                var staticRules = settings.rules;
                var existingRules = $.validator.staticRules(element);
                switch (command) {
                    case "add":
                        $.extend(existingRules, $.validator.normalizeRule(argument));
                        staticRules[element.name] = existingRules;
                        if (argument.messages)
                            settings.messages[element.name] = $.extend(settings.messages[element.name], argument.messages);
                        break;
                    case "remove":
                        if (!argument) {
                            delete staticRules[element.name];
                            return existingRules;
                        }
                        var filtered = {};
                        $.each(argument.split(/\s/), function(index, method) {
                            filtered[method] = existingRules[method];
                            delete existingRules[method];
                        });
                        return filtered;
                }
            }

            var data = $.validator.normalizeRules(
		$.extend(
			{},
			$.validator.metadataRules(element),
			$.validator.classRules(element),
			$.validator.attributeRules(element),
			$.validator.staticRules(element)
		), element);

            // make sure required is at front
            if (data.required) {
                var param = data.required;
                delete data.required;
                data = $.extend({ required: param }, data);
            }

            return data;
        }
    });

    // Custom selectors
    $.extend($.expr[":"], {
        // http://docs.jquery.com/Plugins/Validation/blank
        blank: function(a) { return !$.trim(a.value); },
        // http://docs.jquery.com/Plugins/Validation/filled
        filled: function(a) { return !!$.trim(a.value); },
        // http://docs.jquery.com/Plugins/Validation/unchecked
        unchecked: function(a) { return !a.checked; }
    });


    $.format = function(source, params) {
        if (arguments.length == 1)
            return function() {
                var args = $.makeArray(arguments);
                args.unshift(source);
                return $.format.apply(this, args);
            };
        if (arguments.length > 2 && params.constructor != Array) {
            params = $.makeArray(arguments).slice(1);
        }
        if (params.constructor != Array) {
            params = [params];
        }
        $.each(params, function(i, n) {
            source = source.replace(new RegExp("\\{" + i + "\\}", "g"), n);
        });
        return source;
    };

    // constructor for validator
    $.validator = function(options, form) {
        this.settings = $.extend({}, $.validator.defaults, options);
        this.currentForm = form;
        this.init();
    };

    $.extend($.validator, {

        defaults: {
            messages: {},
            groups: {},
            rules: {},
            errorClass: "error",
            errorElement: "label",
            focusInvalid: true,
            errorContainer: $([]),
            errorLabelContainer: $([]),
            onsubmit: true,
            ignore: [],
            ignoreTitle: false,
            onfocusin: function(element) {
                this.lastActive = element;

                // hide error label and remove error class on focus if enabled
                if (this.settings.focusCleanup && !this.blockFocusCleanup) {
                    this.settings.unhighlight && this.settings.unhighlight.call(this, element, this.settings.errorClass);
                    this.errorsFor(element).hide();
                }
            },
            onfocusout: function(element) {
                if (!this.checkable(element) && (element.name in this.submitted || !this.optional(element))) {
                    this.element(element);
                }
            },
            onkeyup: function(element) {
                if (element.name in this.submitted || element == this.lastElement) {
                    this.element(element);
                }
            },
            onclick: function(element) {
                if (element.name in this.submitted)
                    this.element(element);
            },
            highlight: function(element, errorClass) {
                $(element).addClass(errorClass);
            },
            unhighlight: function(element, errorClass) {
                $(element).removeClass(errorClass);
            }
        },

        // http://docs.jquery.com/Plugins/Validation/Validator/setDefaults
        setDefaults: function(settings) {
            $.extend($.validator.defaults, settings);
        },

        messages: {
            required: "This field is required.",
            remote: "Please fix this field.",
            email: "Please enter a valid email address.",
            url: "Please enter a valid URL.",
            date: "Please enter a valid date.",
            dateISO: "Please enter a valid date (ISO).",
            dateDE: "Bitte geben Sie ein gÃ¼ltiges Datum ein.",
            number: "Please enter a valid number.",
            numberDE: "Bitte geben Sie eine Nummer ein.",
            digits: "Please enter only digits",
            creditcard: "Please enter a valid credit card number.",
            equalTo: "Please enter the same value again.",
            accept: "Please enter a value with a valid extension.",
            maxlength: $.format("Please enter no more than {0} characters."),
            minlength: $.format("Please enter at least {0} characters."),
            rangelength: $.format("Please enter a value between {0} and {1} characters long."),
            range: $.format("Please enter a value between {0} and {1}."),
            max: $.format("Please enter a value less than or equal to {0}."),
            min: $.format("Please enter a value greater than or equal to {0}.")
        },

        autoCreateRanges: false,

        prototype: {

            init: function() {
                this.labelContainer = $(this.settings.errorLabelContainer);
                this.errorContext = this.labelContainer.length && this.labelContainer || $(this.currentForm);
                this.containers = $(this.settings.errorContainer).add(this.settings.errorLabelContainer);
                this.submitted = {};
                this.valueCache = {};
                this.pendingRequest = 0;
                this.pending = {};
                this.invalid = {};
                this.reset();

                var groups = (this.groups = {});
                $.each(this.settings.groups, function(key, value) {
                    $.each(value.split(/\s/), function(index, name) {
                        groups[name] = key;
                    });
                });
                var rules = this.settings.rules;
                $.each(rules, function(key, value) {
                    rules[key] = $.validator.normalizeRule(value);
                });

                function delegate(event) {
                    var validator = $.data(this[0].form, "validator");
                    validator.settings["on" + event.type] && validator.settings["on" + event.type].call(validator, this[0]);
                }
                $(this.currentForm)
				.delegate("focusin focusout keyup", ":text, :password, :file, select, textarea", delegate)
				.delegate("click", ":radio, :checkbox", delegate);

                if (this.settings.invalidHandler)
                    $(this.currentForm).bind("invalid-form.validate", this.settings.invalidHandler);
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/form
            form: function() {
                this.checkForm();
                $.extend(this.submitted, this.errorMap);
                this.invalid = $.extend({}, this.errorMap);
                if (!this.valid())
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                this.showErrors();
                return this.valid();
            },

            checkForm: function() {
                this.prepareForm();
                for (var i = 0, elements = (this.currentElements = this.elements()); elements[i]; i++) {
                    this.check(elements[i]);
                }
                return this.valid();
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/element
            element: function(element) {
                element = this.clean(element);
                this.lastElement = element;
                this.prepareElement(element);
                this.currentElements = $(element);
                var result = this.check(element);
                if (result) {
                    delete this.invalid[element.name];
                } else {
                    this.invalid[element.name] = true;
                }
                if (!this.numberOfInvalids()) {
                    // Hide error containers on last error
                    this.toHide = this.toHide.add(this.containers);
                }
                this.showErrors();
                return result;
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/showErrors
            showErrors: function(errors) {
                if (errors) {
                    // add items to error list and map
                    $.extend(this.errorMap, errors);
                    this.errorList = [];
                    for (var name in errors) {
                        this.errorList.push({
                            message: errors[name],
                            element: this.findByName(name)[0]
                        });
                    }
                    // remove items from success list
                    this.successList = $.grep(this.successList, function(element) {
                        return !(element.name in errors);
                    });
                }
                this.settings.showErrors
				? this.settings.showErrors.call(this, this.errorMap, this.errorList)
				: this.defaultShowErrors();
            },

            // http://docs.jquery.com/Plugins/Validation/Validator/resetForm
            resetForm: function() {
                if ($.fn.resetForm)
                    $(this.currentForm).resetForm();
                this.submitted = {};
                this.prepareForm();
                this.hideErrors();
                this.elements().removeClass(this.settings.errorClass);
            },

            numberOfInvalids: function() {
                return this.objectLength(this.invalid);
            },

            objectLength: function(obj) {
                var count = 0;
                for (var i in obj)
                    count++;
                return count;
            },

            hideErrors: function() {
                this.addWrapper(this.toHide).hide();
            },

            valid: function() {
                return this.size() == 0;
            },

            size: function() {
                return this.errorList.length;
            },

            focusInvalid: function() {
                if (this.settings.focusInvalid) {
                    try {
                        $(this.findLastActive() || this.errorList.length && this.errorList[0].element || []).filter(":visible").focus();
                    } catch (e) {
                        // ignore IE throwing errors when focusing hidden elements
                    }
                }
            },

            findLastActive: function() {
                var lastActive = this.lastActive;
                return lastActive && $.grep(this.errorList, function(n) {
                    return n.element.name == lastActive.name;
                }).length == 1 && lastActive;
            },

            elements: function() {
                var validator = this,
				rulesCache = {};

                // select all valid inputs inside the form (no submit or reset buttons)
                // workaround $Query([]).add until http://dev.jquery.com/ticket/2114 is solved
                return $([]).add(this.currentForm.elements)
			.filter(":input")
			.not(":submit, :reset, :image, [disabled]")
			.not(this.settings.ignore)
			.filter(function() {
			    !this.name && validator.settings.debug && window.console && console.error("%o has no name assigned", this);

			    // select only the first element for each name, and only those with rules specified
			    if (this.name in rulesCache || !validator.objectLength($(this).rules()))
			        return false;

			    rulesCache[this.name] = true;
			    return true;
			});
            },

            clean: function(selector) {
                return $(selector)[0];
            },

            errors: function() {
                return $(this.settings.errorElement + "." + this.settings.errorClass, this.errorContext);
            },

            reset: function() {
                this.successList = [];
                this.errorList = [];
                this.errorMap = {};
                this.toShow = $([]);
                this.toHide = $([]);
                this.formSubmitted = false;
                this.currentElements = $([]);
            },

            prepareForm: function() {
                this.reset();
                this.toHide = this.errors().add(this.containers);
            },

            prepareElement: function(element) {
                this.reset();
                this.toHide = this.errorsFor(element);
            },

            check: function(element) {
                element = this.clean(element);

                // if radio/checkbox, validate first element in group instead
                if (this.checkable(element)) {
                    element = this.findByName(element.name)[0];
                }

                var rules = $(element).rules();
                var dependencyMismatch = false;
                for (method in rules) {
                    var rule = { method: method, parameters: rules[method] };
                    try {
                        var result = $.validator.methods[method].call(this, element.value, element, rule.parameters);

                        // if a method indicates that the field is optional and therefore valid,
                        // don't mark it as valid when there are no other rules
                        if (result == "dependency-mismatch") {
                            dependencyMismatch = true;
                            continue;
                        }
                        dependencyMismatch = false;

                        if (result == "pending") {
                            this.toHide = this.toHide.not(this.errorsFor(element));
                            return;
                        }

                        if (!result) {
                            this.formatAndAdd(element, rule);
                            return false;
                        }
                    } catch (e) {
                        this.settings.debug && window.console && console.log("exception occured when checking element " + element.id
						 + ", check the '" + rule.method + "' method");
                        throw e;
                    }
                }
                if (dependencyMismatch)
                    return;
                if (this.objectLength(rules))
                    this.successList.push(element);
                return true;
            },

            // return the custom message for the given element and validation method
            // specified in the element's "messages" metadata
            customMetaMessage: function(element, method) {
                if (!$.metadata)
                    return;

                var meta = this.settings.meta
				? $(element).metadata()[this.settings.meta]
				: $(element).metadata();

                return meta && meta.messages && meta.messages[method];
            },

            // return the custom message for the given element name and validation method
            customMessage: function(name, method) {
                var m = this.settings.messages[name];
                return m && (m.constructor == String
				? m
				: m[method]);
            },

            // return the first defined argument, allowing empty strings
            findDefined: function() {
                for (var i = 0; i < arguments.length; i++) {
                    if (arguments[i] !== undefined)
                        return arguments[i];
                }
                return undefined;
            },

            defaultMessage: function(element, method) {
                return this.findDefined(
				this.customMessage(element.name, method),
				this.customMetaMessage(element, method),
                // title is never undefined, so handle empty string as undefined
				!this.settings.ignoreTitle && element.title || undefined,
				$.validator.messages[method],
				"<strong>Warning: No message defined for " + element.name + "</strong>"
			);
            },

            formatAndAdd: function(element, rule) {
                var message = this.defaultMessage(element, rule.method);
                if (typeof message == "function")
                    message = message.call(this, rule.parameters, element);
                this.errorList.push({
                    message: message,
                    element: element
                });
                this.errorMap[element.name] = message;
                this.submitted[element.name] = message;
            },

            addWrapper: function(toToggle) {
                if (this.settings.wrapper)
                    toToggle = toToggle.add(toToggle.parents(this.settings.wrapper));
                return toToggle;
            },

            defaultShowErrors: function() {
                for (var i = 0; this.errorList[i]; i++) {
                    var error = this.errorList[i];
                    this.settings.highlight && this.settings.highlight.call(this, error.element, this.settings.errorClass);
                    this.showLabel(error.element, error.message);
                }
                if (this.errorList.length) {
                    this.toShow = this.toShow.add(this.containers);
                }
                if (this.settings.success) {
                    for (var i = 0; this.successList[i]; i++) {
                        this.showLabel(this.successList[i]);
                    }
                }
                if (this.settings.unhighlight) {
                    for (var i = 0, elements = this.validElements(); elements[i]; i++) {
                        this.settings.unhighlight.call(this, elements[i], this.settings.errorClass);
                    }
                }
                this.toHide = this.toHide.not(this.toShow);
                this.hideErrors();
                this.addWrapper(this.toShow).show();
            },

            validElements: function() {
                return this.currentElements.not(this.invalidElements());
            },

            invalidElements: function() {
                return $(this.errorList).map(function() {
                    return this.element;
                });
            },

            showLabel: function(element, message) {
                var label = this.errorsFor(element);
                if (label.length) {
                    // refresh error/success class
                    label.removeClass().addClass(this.settings.errorClass);

                    // check if we have a generated label, replace the message then
                    label.attr("generated") && label.html(message);
                } else {
                    // create label
                    label = $("<" + this.settings.errorElement + "/>")
					.attr({ "for": this.idOrName(element), generated: true })
					.addClass(this.settings.errorClass)
					.html(message || "");
                    if (this.settings.wrapper) {
                        // make sure the element is visible, even in IE
                        // actually showing the wrapped element is handled elsewhere
                        label = label.hide().show().wrap("<" + this.settings.wrapper + "/>").parent();
                    }
                    if (!this.labelContainer.append(label).length)
                        this.settings.errorPlacement
						? this.settings.errorPlacement(label, $(element))
						: label.insertAfter(element);
                }
                if (!message && this.settings.success) {
                    label.text("");
                    typeof this.settings.success == "string"
					? label.addClass(this.settings.success)
					: this.settings.success(label);
                }
                this.toShow = this.toShow.add(label);
            },

            errorsFor: function(element) {
                return this.errors().filter("[for='" + this.idOrName(element) + "']");
            },

            idOrName: function(element) {
                return this.groups[element.name] || (this.checkable(element) ? element.name : element.id || element.name);
            },

            checkable: function(element) {
                return /radio|checkbox/i.test(element.type);
            },

            findByName: function(name) {
                // select by name and filter by form for performance over form.find("[name=...]")
                var form = this.currentForm;
                return $(document.getElementsByName(name)).map(function(index, element) {
                    return element.form == form && element.name == name && element || null;
                });
            },

            getLength: function(value, element) {
                switch (element.nodeName.toLowerCase()) {
                    case 'select':
                        return $("option:selected", element).length;
                    case 'input':
                        if (this.checkable(element))
                            return this.findByName(element.name).filter(':checked').length;
                }
                return value.length;
            },

            depend: function(param, element) {
                return this.dependTypes[typeof param]
				? this.dependTypes[typeof param](param, element)
				: true;
            },

            dependTypes: {
                "boolean": function(param, element) {
                    return param;
                },
                "string": function(param, element) {
                    return !!$(param, element.form).length;
                },
                "function": function(param, element) {
                    return param(element);
                }
            },

            optional: function(element) {
                return !$.validator.methods.required.call(this, $.trim(element.value), element) && "dependency-mismatch";
            },

            startRequest: function(element) {
                if (!this.pending[element.name]) {
                    this.pendingRequest++;
                    this.pending[element.name] = true;
                }
            },

            stopRequest: function(element, valid) {
                this.pendingRequest--;
                // sometimes synchronization fails, make sure pendingRequest is never < 0
                if (this.pendingRequest < 0)
                    this.pendingRequest = 0;
                delete this.pending[element.name];
                if (valid && this.pendingRequest == 0 && this.formSubmitted && this.form()) {
                    $(this.currentForm).submit();
                } else if (!valid && this.pendingRequest == 0 && this.formSubmitted) {
                    $(this.currentForm).triggerHandler("invalid-form", [this]);
                }
            },

            previousValue: function(element) {
                return $.data(element, "previousValue") || $.data(element, "previousValue", previous = {
                    old: null,
                    valid: true,
                    message: this.defaultMessage(element, "remote")
                });
            }

        },

        classRuleSettings: {
            required: { required: true },
            email: { email: true },
            url: { url: true },
            date: { date: true },
            dateISO: { dateISO: true },
            dateDE: { dateDE: true },
            number: { number: true },
            numberDE: { numberDE: true },
            digits: { digits: true },
            creditcard: { creditcard: true }
        },

        addClassRules: function(className, rules) {
            className.constructor == String ?
			this.classRuleSettings[className] = rules :
			$.extend(this.classRuleSettings, className);
        },

        classRules: function(element) {
            var rules = {};
            var classes = $(element).attr('class');
            classes && $.each(classes.split(' '), function() {
                if (this in $.validator.classRuleSettings) {
                    $.extend(rules, $.validator.classRuleSettings[this]);
                }
            });
            return rules;
        },

        attributeRules: function(element) {
            var rules = {};
            var $element = $(element);

            for (method in $.validator.methods) {
                var value = $element.attr(method);
                if (value) {
                    rules[method] = value;
                }
            }

            // maxlength may be returned as -1, 2147483647 (IE) and 524288 (safari) for text inputs
            if (rules.maxlength && /-1|2147483647|524288/.test(rules.maxlength)) {
                delete rules.maxlength;
            }

            return rules;
        },

        metadataRules: function(element) {
            if (!$.metadata) return {};

            var meta = $.data(element.form, 'validator').settings.meta;
            return meta ?
			$(element).metadata()[meta] :
			$(element).metadata();
        },

        staticRules: function(element) {
            var rules = {};
            var validator = $.data(element.form, 'validator');
            if (validator.settings.rules) {
                rules = $.validator.normalizeRule(validator.settings.rules[element.name]) || {};
            }
            return rules;
        },

        normalizeRules: function(rules, element) {
            // handle dependency check
            $.each(rules, function(prop, val) {
                // ignore rule when param is explicitly false, eg. required:false
                if (val === false) {
                    delete rules[prop];
                    return;
                }
                if (val.param || val.depends) {
                    var keepRule = true;
                    switch (typeof val.depends) {
                        case "string":
                            keepRule = !!$(val.depends, element.form).length;
                            break;
                        case "function":
                            keepRule = val.depends.call(element, element);
                            break;
                    }
                    if (keepRule) {
                        rules[prop] = val.param !== undefined ? val.param : true;
                    } else {
                        delete rules[prop];
                    }
                }
            });

            // evaluate parameters
            $.each(rules, function(rule, parameter) {
                rules[rule] = $.isFunction(parameter) ? parameter(element) : parameter;
            });

            // clean number parameters
            $.each(['minlength', 'maxlength', 'min', 'max'], function() {
                if (rules[this]) {
                    rules[this] = Number(rules[this]);
                }
            });
            $.each(['rangelength', 'range'], function() {
                if (rules[this]) {
                    rules[this] = [Number(rules[this][0]), Number(rules[this][1])];
                }
            });

            if ($.validator.autoCreateRanges) {
                // auto-create ranges
                if (rules.min && rules.max) {
                    rules.range = [rules.min, rules.max];
                    delete rules.min;
                    delete rules.max;
                }
                if (rules.minlength && rules.maxlength) {
                    rules.rangelength = [rules.minlength, rules.maxlength];
                    delete rules.minlength;
                    delete rules.maxlength;
                }
            }

            // To support custom messages in metadata ignore rule methods titled "messages"
            if (rules.messages) {
                delete rules.messages
            }

            return rules;
        },

        // Converts a simple string to a {string: true} rule, e.g., "required" to {required:true}
        normalizeRule: function(data) {
            if (typeof data == "string") {
                var transformed = {};
                $.each(data.split(/\s/), function() {
                    transformed[this] = true;
                });
                data = transformed;
            }
            return data;
        },

        // http://docs.jquery.com/Plugins/Validation/Validator/addMethod
        addMethod: function(name, method, message) {
            $.validator.methods[name] = method;
            $.validator.messages[name] = message;
            if (method.length < 3) {
                $.validator.addClassRules(name, $.validator.normalizeRule(name));
            }
        },

        methods: {

            // http://docs.jquery.com/Plugins/Validation/Methods/required
            required: function(value, element, param) {
                // check if dependency is met
                if (!this.depend(param, element))
                    return "dependency-mismatch";
                switch (element.nodeName.toLowerCase()) {
                    case 'select':
                        var options = $("option:selected", element);
                        return options.length > 0 && (element.type == "select-multiple" || ($.browser.msie && !(options[0].attributes['value'].specified) ? options[0].text : options[0].value).length > 0);
                    case 'input':
                        if (this.checkable(element))
                            return this.getLength(value, element) > 0;
                    default:
                        return $.trim(value).length > 0;
                }
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/remote
            remote: function(value, element, param) {
                if (this.optional(element))
                    return "dependency-mismatch";

                var previous = this.previousValue(element);

                if (!this.settings.messages[element.name])
                    this.settings.messages[element.name] = {};
                this.settings.messages[element.name].remote = typeof previous.message == "function" ? previous.message(value) : previous.message;

                param = typeof param == "string" && { url: param} || param;

                if (previous.old !== value) {
                    previous.old = value;
                    var validator = this;
                    this.startRequest(element);
                    var data = {};
                    data[element.name] = value;
                    $.ajax($.extend(true, {
                        url: param,
                        mode: "abort",
                        port: "validate" + element.name,
                        dataType: "json",
                        data: data,
                        success: function(response) {
                            if (response) {
                                var submitted = validator.formSubmitted;
                                validator.prepareElement(element);
                                validator.formSubmitted = submitted;
                                validator.successList.push(element);
                                validator.showErrors();
                            } else {
                                var errors = {};
                                errors[element.name] = response || validator.defaultMessage(element, "remote");
                                validator.showErrors(errors);
                            }
                            previous.valid = response;
                            validator.stopRequest(element, response);
                        }
                    }, param));
                    return "pending";
                } else if (this.pending[element.name]) {
                    return "pending";
                }
                return previous.valid;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/minlength
            minlength: function(value, element, param) {
                return this.optional(element) || this.getLength($.trim(value), element) >= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/maxlength
            maxlength: function(value, element, param) {
                return this.optional(element) || this.getLength($.trim(value), element) <= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/rangelength
            rangelength: function(value, element, param) {
                var length = this.getLength($.trim(value), element);
                return this.optional(element) || (length >= param[0] && length <= param[1]);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/min
            min: function(value, element, param) {
                return this.optional(element) || value >= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/max
            max: function(value, element, param) {
                return this.optional(element) || value <= param;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/range
            range: function(value, element, param) {
                return this.optional(element) || (value >= param[0] && value <= param[1]);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/email
            email: function(value, element) {
                // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
                return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/url
            url: function(value, element) {
                // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
                return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/date
            date: function(value, element) {
                return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/dateISO
            dateISO: function(value, element) {
                return this.optional(element) || /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/dateDE
            dateDE: function(value, element) {
                return this.optional(element) || /^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/number
            number: function(value, element) {
                return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/numberDE
            numberDE: function(value, element) {
                return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/digits
            digits: function(value, element) {
                return this.optional(element) || /^\d+$/.test(value);
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/creditcard
            // based on http://en.wikipedia.org/wiki/Luhn
            creditcard: function(value, element) {
                if (this.optional(element))
                    return "dependency-mismatch";
                // accept only digits and dashes
                if (/[^0-9-]+/.test(value))
                    return false;
                var nCheck = 0,
				nDigit = 0,
				bEven = false;

                value = value.replace(/\D/g, "");

                for (n = value.length - 1; n >= 0; n--) {
                    var cDigit = value.charAt(n);
                    var nDigit = parseInt(cDigit, 10);
                    if (bEven) {
                        if ((nDigit *= 2) > 9)
                            nDigit -= 9;
                    }
                    nCheck += nDigit;
                    bEven = !bEven;
                }

                return (nCheck % 10) == 0;
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/accept
            accept: function(value, element, param) {
                param = typeof param == "string" ? param : "png|jpe?g|gif";
                return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
            },

            // http://docs.jquery.com/Plugins/Validation/Methods/equalTo
            equalTo: function(value, element, param) {
                return value == $(param).val();
            }

        }

    });

})(jQuery);

// ajax mode: abort
// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]});
// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 
;(function($) {
	var ajax = $.ajax;
	var pendingRequests = {};
	$.ajax = function(settings) {
		// create settings for compatibility with ajaxSetup
		settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings));
		var port = settings.port;
		if (settings.mode == "abort") {
			if ( pendingRequests[port] ) {
				pendingRequests[port].abort();
			}
			return (pendingRequests[port] = ajax.apply(this, arguments));
		}
		return ajax.apply(this, arguments);
	};
})(jQuery);

// provides cross-browser focusin and focusout events
// IE has native support, in other browsers, use event caputuring (neither bubbles)

// provides delegate(type: String, delegate: Selector, handler: Callback) plugin for easier event delegation
// handler is only called when $(event.target).is(delegate), in the scope of the jquery-object for event.target 

// provides triggerEvent(type: String, target: Element) to trigger delegated events
;(function($) {
	$.each({
		focus: 'focusin',
		blur: 'focusout'	
	}, function( original, fix ){
		$.event.special[fix] = {
			setup:function() {
				if ( $.browser.msie ) return false;
				this.addEventListener( original, $.event.special[fix].handler, true );
			},
			teardown:function() {
				if ( $.browser.msie ) return false;
				this.removeEventListener( original,
				$.event.special[fix].handler, true );
			},
			handler: function(e) {
				arguments[0] = $.event.fix(e);
				arguments[0].type = fix;
				return $.event.handle.apply(this, arguments);
			}
		};
	});
	$.extend($.fn, {
		delegate: function(type, delegate, handler) {
			return this.bind(type, function(event) {
				var target = $(event.target);
				if (target.is(delegate)) {
					return handler.apply(target, arguments);
				}
			});
		},
		triggerEvent: function(type, target) {
			return this.triggerHandler(type, [$.event.fix({ type: type, target: target })]);
		}
	})
})(jQuery);
ï»¿// Common initialization
var xVal = xVal || {};
xVal.Plugins = xVal.Plugins || {};
xVal.Messages = xVal.Messages || {};
xVal.AttachValidator = function(elementPrefix, rulesConfig, options, pluginName) {
    if (pluginName != null)
        this.Plugins[pluginName].AttachValidator(elementPrefix, rulesConfig, options);
    else
        for (var key in this.Plugins) {
            this.Plugins[key].AttachValidator(elementPrefix, rulesConfig, options);
            return;
        }
};

// xVal.jquery.validate.js
// An xVal plugin to enable support for jQuery Validate
// http://xval.codeplex.com/
// (c) 2009 Steven Sanderson
// License: Microsoft Public License (Ms-PL) (http://www.opensource.org/licenses/ms-pl.html)

(function($) {
    xVal.Plugins["jquery.validate"] = {
        AttachValidator: function(elementPrefix, rulesConfig, options) {
            var self = this;
            self._ensureCustomFunctionsRegistered();
            $(function() {
                self._ensureValidationSummaryContainerExistsIfRequired(options);

                for (var i = 0; i < rulesConfig.Fields.length; i++) {
                    var fieldName = rulesConfig.Fields[i].FieldName;
                    var fieldRules = rulesConfig.Fields[i].FieldRules;

                    // Is there a matching DOM element?
                    var elemId = self._makeAspNetMvcHtmlHelperID((elementPrefix ? elementPrefix + "." : "") + fieldName);
                    var elem = document.getElementById(elemId);
                    if (elem) {
                        for (var j = 0; j < fieldRules.length; j++) {
                            var rule = fieldRules[j];
                            if (rule != null) {
                                var ruleName = rule.RuleName;
                                var ruleParams = rule.RuleParameters;
                                var errorText = (typeof (rule.Message) == 'undefined' ? null : rule.Message);
                                self._attachRuleToDOMElement(ruleName, ruleParams, errorText, $(elem), elementPrefix, options);
                            }
                        }
                    }
                }
            });
        },

        _makeAspNetMvcHtmlHelperID: function(fullyQualifiedModelName) {
            // If you have changed HtmlHelper.IdAttributeDotReplacement from "_" to something else, then you must also change the following line to match
            return fullyQualifiedModelName.replace(/\./g, "_");
        },

        _attachRuleToDOMElement: function(ruleName, ruleParams, errorText, element, elementPrefix, options) {
            var parentForm = element.parents("form");
            if (parentForm.length != 1)
                alert("Error: Element " + element.attr("id") + " is not in a form");
            this._ensureFormIsMarkedForValidation($(parentForm[0]), options);
            this._associateNearbyValidationMessageSpanWithElement(element);

            var options = {};

            switch (ruleName) {
                case "Required":
                    options.required = true;
                    options.messages = { required: errorText || xVal.Messages.Required };
                    break;

                case "Range":
                    if (ruleParams.Type == "string") {
                        options.xVal_stringRange = [ruleParams.Min, ruleParams.Max];
                        if (errorText != null) options.messages = { xVal_stringRange: $.format(errorText) };
                    }
                    else if (ruleParams.Type == "datetime") {
                        var minDate, maxDate;
                        if (typeof (ruleParams.MinYear) != 'undefined')
                            minDate = new Date(ruleParams.MinYear, ruleParams.MinMonth - 1, ruleParams.MinDay, ruleParams.MinHour, ruleParams.MinMinute, ruleParams.MinSecond);
                        if (typeof (ruleParams.MaxYear) != 'undefined')
                            maxDate = new Date(ruleParams.MaxYear, ruleParams.MaxMonth - 1, ruleParams.MaxDay, ruleParams.MaxHour, ruleParams.MaxMinute, ruleParams.MaxSecond);
                        options.xVal_dateRange = [minDate, maxDate];
                        if (errorText != null) options.messages = { xVal_dateRange: $.format(errorText) };
                    }
                    else if (typeof (ruleParams.Min) == 'undefined') {
                        options.max = ruleParams.Max;
                        errorText = errorText || xVal.Messages.Range_Numeric_Max;
                        if (errorText != null) options.messages = { max: $.format(errorText) };
                    }
                    else if (typeof (ruleParams.Max) == 'undefined') {
                        options.min = ruleParams.Min;
                        errorText = errorText || xVal.Messages.Range_Numeric_Min;
                        if (errorText != null) options.messages = { min: $.format(errorText) };
                    }
                    else {
                        options.range = [ruleParams.Min, ruleParams.Max];
                        errorText = errorText || xVal.Messages.Range_Numeric_MinMax;
                        if (errorText != null) options.messages = { range: $.format(errorText) };
                    }

                    break;

                case "StringLength":
                    if (typeof (ruleParams.MinLength) == 'undefined') {
                        options.maxlength = ruleParams.MaxLength;
                        errorText = errorText || xVal.Messages.StringLength_Max;
                        if (errorText != null) options.messages = { maxlength: $.format(errorText) };
                    }
                    else if (typeof (ruleParams.MaxLength) == 'undefined') {
                        options.minlength = ruleParams.MinLength;
                        errorText = errorText || xVal.Messages.StringLength_Min;
                        if (errorText != null) options.messages = { minlength: $.format(errorText) };
                    }
                    else {
                        options.rangelength = [ruleParams.MinLength, ruleParams.MaxLength];
                        errorText = errorText || xVal.Messages.StringLength_MinMax;
                        if (errorText != null) options.messages = { rangelength: $.format(errorText) };
                    }
                    break;

                case "DataType":
                    switch (ruleParams.Type) {
                        case "EmailAddress":
                            options.email = true;
                            options.messages = { email: errorText || xVal.Messages.DataType_EmailAddress };
                            break;
                        case "Integer":
                            options.xVal_regex = ["^\\-?\\d+$", ""];
                            options.messages = { xVal_regex: errorText || xVal.Messages.DataType_Integer || "Please enter a whole number." };
                            break;
                        case "Decimal":
                            options.number = true;
                            options.messages = { number: errorText || xVal.Messages.DataType_Decimal };
                            break;
                        case "Date":
                            options.date = true;
                            options.messages = { date: errorText || xVal.Messages.DataType_Date };
                            break;
                        case "DateTime":
                            options.xVal_regex = ["^\\d{1,2}/\\d{1,2}/(\\d{2}|\\d{4})\\s+\\d{1,2}\\:\\d{2}(\\:\\d{2})?$", ""];
                            options.messages = { xVal_regex: errorText || xVal.Messages.DataType_DateTime || "Please enter a valid date and time." };
                            break;
                        case "Currency":
                            options.xVal_regex = ["^\\D?\\s?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$", ""];
                            options.messages = { xVal_regex: errorText || xVal.Messages.DataType_Currency || "Please enter a currency value." };
                            break;
                        case "CreditCardLuhn":
                            options.xVal_creditCardLuhn = true;
                            if (errorText != null) options.messages = { xVal_creditCardLuhn: errorText };
                            break;
                    }
                    break;

                case "RegEx":
                    options.xVal_regex = [ruleParams.Pattern, ruleParams.Options];
                    if (errorText != null) options.messages = { xVal_regex: errorText };
                    break;

                case "Comparison":
                    var elemToCompareId = this._makeAspNetMvcHtmlHelperID((elementPrefix ? elementPrefix + "." : "") + ruleParams.PropertyToCompare);
                    var elemToCompare = document.getElementById(elemToCompareId);
                    if (elemToCompare != null) {
                        options.xVal_comparison = [ruleParams.PropertyToCompare, elemToCompare, ruleParams.ComparisonOperator];
                        if (errorText != null) options.messages = { xVal_comparison: errorText };
                    }
                    break;

                case "Remote":
                    var dataAccessor = {};
                    parentForm.find("input[name], textarea[name], select[name]").each(function() {
                        var input = this;
                        dataAccessor[input.name] = function() { return $(input).val(); };
                    });
                    options.remote = {
                        url: ruleParams.url,
                        data: dataAccessor,
                        type: 'post'
                    };
                    break;

                case "Custom":
                    var ruleFunction = this._parseAsFunctionWithWarnings(ruleParams.Function);
                    if (ruleFunction != null) {
                        var customFunctionName = this._registerCustomValidationFunction(ruleFunction);
                        var evaluatedParams = ruleParams.Parameters == "null" ? null : eval("(" + ruleParams.Parameters + ")");
                        options[customFunctionName] = evaluatedParams || true;
                        options.messages = [];
                        options.messages[customFunctionName] = errorText;
                    }
                    break;
            }

            element.rules("add", options);
        },

        _parseAsFunctionWithWarnings: function(functionString) {
            var result;
            try { result = eval("(" + functionString + ")") }
            catch (ex) {
                alert("Custom rule error: Could not find or could not parse the function '" + functionString + "'");
                return null;
            }
            if (typeof (result) != 'function') {
                alert("Custom rule error: The JavaScript object '" + functionString + "' is not a function.");
                return null;
            }
            return result;
        },

        _associateNearbyValidationMessageSpanWithElement: function(element) {
            // If there's a <span class='field-validation-error'> soon after, it's probably supposed to display the error message
            // jquery.validation goes looking for an attribute called "htmlfor" as follows
            var nearbyMessages = element.nextAll("span.field-validation-error");
            if (nearbyMessages.length > 0) {
                $(nearbyMessages[0]).attr("generated", "true")
                                    .attr("htmlfor", element.attr("id"));
            }
        },

        _ensureFormIsMarkedForValidation: function(formElement, options) {
            if (!formElement.data("isMarkedForValidation")) {
                formElement.data("isMarkedForValidation", true);
                var validationOptions = {
                    errorClass: "field-validation-error",
                    errorElement: "span",
                    highlight: function(element) {
                        $(element).addClass("input-validation-error").trigger("inputValidationFailed"); 
                    },
                    unhighlight: function(element) {
                        $(element).removeClass("input-validation-error").trigger("inputValidationPassed"); 
                    }
                };
                if (options.ValidationSummary) {
                    validationOptions.wrapper = "li";
                    validationOptions.errorLabelContainer = "#" + options.ValidationSummary.ElementID + " ul:first";
                }
                var validator = formElement.validate(validationOptions);
                if (options.ValidationSummary)
                    this._modifyJQueryValidationElementHidingBehaviourToSupportValidationSummary(validator, options);
            }
        },

        _registerCustomValidationFunction: function(evalFn) {
            jQuery.validator.xValCustomFunctionCount = (jQuery.validator.xValCustomFunctionCount || 0) + 1;
            var functionName = "xVal_customFunction_" + jQuery.validator.xValCustomFunctionCount;
            jQuery.validator.addMethod(functionName, function(value, element, params) {
                if (this.optional(element))
                    return true;
                return evalFn(value, element, params);
            });
            return functionName;
        },

        _ensureCustomFunctionsRegistered: function() {
            if (!jQuery.validator.xValFunctionsRegistered) {
                jQuery.validator.xValFunctionsRegistered = true;

                jQuery.validator.addMethod("xVal_stringRange", function(value, element, params) {
                    if (this.optional(element)) return true;
                    if (params[0] != null)
                        if (value < params[0]) return false;
                    if (params[1] != null)
                        if (value > params[1]) return false;
                    return true;
                }, function(params) {
                    if ((params[0] != null) && (params[1] != null))
                        return $.format(xVal.Messages.Range_String_MinMax || "Please enter a value alphabetically between '{0}' and '{1}'.", params[0], params[1]);
                    else if (params[0] != null)
                        return $.format(xVal.Messages.Range_String_Min || "Please enter a value not alphabetically before '{0}'.", params[0]);
                    else
                        return $.format(xVal.Messages.Range_String_Max || "Please enter a value not alphabetically after '{0}'.", params[1]);
                });

                jQuery.validator.addMethod("xVal_dateRange", function(value, element, params) {
                    if (this.optional(element)) return true;

                    var parsedValue = Date.parse(value);
                    if (isNaN(parsedValue))
                        return false;
                    else
                        parsedValue = new Date(parsedValue);
                    if (params[0] != null)
                        if (parsedValue < params[0]) return false;
                    if (params[1] != null)
                        if (parsedValue > params[1]) return false;
                    return true;
                }, function(params, elem) {
                    if (isNaN(Date.parse(elem.value)))
                        return xVal.Messages.DataType_Date || "Please enter a valid date in yyyy/mm/dd format.";
                    var formatDate = function(date) {
                        var result = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate();
                        if (date.getHours() + date.getMinutes() + date.getSeconds() != 0)
                            result += " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
                        return result.replace(/\b(\d)\b/g, '0$1');
                    };
                    if ((params[0] != null) && (params[1] != null))
                        return $.format(xVal.Messages.Range_DateTime_MinMax || "Please enter a date between {0} and {1}.", formatDate(params[0]), formatDate(params[1]));
                    else if (params[0] != null)
                        return $.format(xVal.Messages.Range_DateTime_Min || "Please enter a date no earlier than {0}.", formatDate(params[0]));
                    else
                        return $.format(xVal.Messages.Range_DateTime_Max || "Please enter a date no later than {0}.", formatDate(params[1]));
                });

                jQuery.validator.addMethod("xVal_regex", function(value, element, params) {
                    if (this.optional(element)) return true;
                    var pattern = params[0];
                    var options = params[1];
                    var regex = new RegExp(pattern, options);
                    return regex.test(value);
                }, function(params) {
                    return xVal.Messages.Regex || "This value is invalid."; // Pity we can't be more descriptive
                });

                jQuery.validator.addMethod("xVal_creditCardLuhn", function(value, element, params) {
                    if (this.optional(element)) return true;
                    value = value.replace(/\D/g, "");
                    if (value == "") return false;
                    var sum = 0;
                    for (var i = value.length - 2; i >= 0; i -= 2)
                        sum += Array(0, 2, 4, 6, 8, 1, 3, 5, 7, 9)[parseInt(value.charAt(i), 10)];
                    for (var i = value.length - 1; i >= 0; i -= 2)
                        sum += parseInt(value.charAt(i), 10);
                    return (sum % 10) == 0;
                }, function(params) {
                    return xVal.Messages.DataType_CreditCardLuhn || "Please enter a valid credit card number.";
                });

                jQuery.validator.addMethod("xVal_comparison", function(value, element, params) {
                    if (this.optional(element)) return true;
                    var elemToCompare = params[1];
                    var comparisonOperator = params[2];
                    switch (comparisonOperator) {
                        case "Equals": return value == elemToCompare.value;
                        case "DoesNotEqual": return value != elemToCompare.value;
                    }
                    return true; // Ignore unrecognized operator
                }, function(params) {
                    var propertyToCompareName = params[0];
                    var comparisonOperator = params[2];
                    switch (comparisonOperator) {
                        case "Equals": return $.format(xVal.Messages.Comparison_Equals || "This value must be the same as {0}.", propertyToCompareName);
                        case "DoesNotEqual": return $.format(xVal.Messages.Comparison_DoesNotEqual || "This value must be different from {0}.", propertyToCompareName);
                    }
                });

                $.expr[":"].displayableValidationSummaryMessage = function(object) {
                    var span = $(object).find("span:first");
                    if (span.length == 0)
                        return true;
                    return !(span.css("display") === "none") && !span.is(":empty");
                };
            }
        },

        _ensureValidationSummaryContainerExistsIfRequired: function(options) {
            // If we're using a validation summary, make sure the container contains an UL
            // (If there were no server-generated errors, there won't be until we create one)
            if (options.ValidationSummary) {
                var validationSummaryContainer = $("#" + options.ValidationSummary.ElementID);
                if (validationSummaryContainer.length == 0)
                    alert("Cannot find validation summary element \"" + options.ValidationSummary.ElementID + "\". Make sure you've put an element with this ID into your HTML document.");
                if (!validationSummaryContainer.is(":has(ul)")) {
                    validationSummaryContainer.append($("<span class='validation-summary-errors' />").text(options.ValidationSummary.HeaderMessage))
                                              .append($("<ul />"))
                                              .hide();
                }
            }
        },

        _modifyJQueryValidationElementHidingBehaviourToSupportValidationSummary: function(validator, options) {
            // Intercept the hideErrors() and showErrors() methods. Pity there isn't a proper API for this.
            var originalHideErrorsMethod = validator.hideErrors;
            var originalShowErrorsMethod = validator.showErrors;
            validator.hideErrors = function() {
                this.toHide = this.toHide.not("ul"); // Don't ever hide ULs, because these might still contain server-generated error messages
                originalHideErrorsMethod.apply(this, arguments);
                // If the summary container contains no displayable messages, hide the whole thing
                $("#" + options.ValidationSummary.ElementID + ":not(:has(li:displayableValidationSummaryMessage))").hide();
            };
            validator.showErrors = function() {
                originalShowErrorsMethod.apply(this, arguments);
                // If the summary container contains any displayable messages, show it
                $("#" + options.ValidationSummary.ElementID + ":has(li:displayableValidationSummaryMessage)").show();
            };
        }
    };
})(jQuery);(function($){$.extend($,{clearwatermarks:function(){$("[wmwrap='true']").find("input,textarea").watermark({remove:true})},addwatermarks:function(){$("[watermark]").each(function(num,el){$(el).watermark($(el).attr("watermark"))})},watermark:function(o){o.el=$(o.el);if(o.remove){if(o.el.parent().attr("wmwrap")=="true"){o.el.parent().replaceWith(o.el)}}else{if(o.el.parent().attr("wmwrap")!="true"){o.el=o.el.wrap("<span wmwrap='true' style='position:relative;'/>");var l=$("<label/>");if(o.html){l.html(o.html)}if(o.cls){l.addClass(o.cls)}if(o.css){l.css(o.css)}l.css({position:"absolute",left:"3px",top:parseInt(o.el.css("paddingTop")),display:"inline",cursor:"text"});if(o.el.is("TEXTAREA")){if($.browser.msie){l.css("width",o.el.width())}if($.browser.mozilla||$.browser.safari){l.css("top","")}}if(!o.cls&&!o.css){l.css("color","#ccc")}var focus=function(){l.hide()};var blur=function(){if(!o.el.val()){l.show()}else{l.hide()}};var click=function(){o.el.focus()};if(o.inherit){if(typeof o.inherit=="string"){l.css(o.inherit,o.el.css(o.inherit))}else{for(var x=0;x<o.inherit.length;x++){l.css(o.inherit[x],o.el.css(o.inherit[x]))}}}o.el.focus(focus).blur(blur);l.click(click);o.el.before(l);if(o.el.val()){l.hide()}}}return o.el}});$.fn.watermark=function(o){return this.each(function(){if(typeof (o)=="string"){try{o=eval("("+o+")")}catch(ex){o={html:o}}}o.el=this;return $.watermark(o)})}})(jQuery);$().ready(function(){$.addwatermarks()});
$(document).ready(function() {
	vex.init();
});

var vex = {
    _registeredModules: new Array(),
    _baseUrl: '/',
    _contentBaseUrl: '/',
    _translations: {},


    init: function() {
        $(document).pngFix();
        $("form.enhanced-form").jqTransform();
        $("body").addClass("javascript-active");
        vex._initRegisteredModules();
    },

    registerModule: function(module) {
        if (typeof (module) != "object") {
            var err = new Error();
            err.message = "in vex.registerModule: module isn't an object";
            throw err;
        }

        if (typeof (module.init) != "function") {
            var err = new Error();
            err.message = "in vex.registerModule: module doesn't have init method";
            throw err;
        }

        this._registeredModules.push(module);
    },

    _initRegisteredModules: function() {
        for (var i = 0; i < this._registeredModules.length; i++) {
            var module = this._registeredModules[i];
            module.init.call(module);
        }
    },

    encode_utf8: function(s) {
        return unescape(encodeURIComponent(s));
    },

    decode_utf8: function (s) {
        try {
            return decodeURIComponent(escape(s));
        }
        catch(e) {
            return s;
        }
    },

    getCurrentLanguage: function() {
        var bodyClasses = document.body.className.split(' ');
        var bodyClass = null;
        var currentLanguage = null;
        for (i in bodyClasses) {
            bodyClass = bodyClasses[i];
            if (bodyClass.toString().substr(0, 5) == "lang-") {
                currentLanguage = bodyClass.toString().substr(5);
            }
        }

        return currentLanguage;
    },

    contentUrl: function(contentPath) {
        var newPath = this._contentBaseUrl + contentPath.toString().replace("~", "");
        if (newPath[0] == "/" && newPath[1] == "/") {
            newPath = newPath.substr(1);
        }

        return newPath;
    },

    ajaxUrl: function(action, controller, params) {
        var result = this._baseUrl + "Ajax/" + controller + "/" + action;

        if (typeof (params) == "object") {
            var paramsStringBuilder = new Array();
            for (paramName in params) {
                paramsStringBuilder.push(paramName + "=" + params[paramName]);
            }
            if (paramsStringBuilder.length) {
                result += "?" + paramsStringBuilder.join("&");
            }
        }

        return result;

    },

    setBaseUrl: function(baseUrl) {
        var lastChar = baseUrl.toString().substr(baseUrl.length - 1, 1);
        if (lastChar != "/") {
            baseUrl += "/";
        }
        this._baseUrl = baseUrl;
    },

    setContentBaseUrl: function(contentUrl) {
        this._contentBaseUrl = contentUrl;
    },

    setTranslations: function(translationsObject) {
        if (typeof (translationsObject) != "object") {
            var err = new Error();
            err.message = "in vex.setTranslations: translationsObject isn't an object";
            throw err;
        }

        this._translations = $.extend(this._translations, translationsObject);
    },

    translate: function(translationKey) {
        return this._translations[translationKey];
    },

    debugDump: function(obj, recursionsLeft) {
        var res = "<ul>";

        if (recursionsLeft > 0) {
            for (k in obj) {
                var keyName = k;
                var keyValue = obj[k];
                var keyType = typeof (keyValue);

                res += "<li><b>" + keyName + "</b> <i>(" + keyValue + ")</i> ";
                switch (keyType) {
                    case "object":
                        res += vex.debugDump(keyValue, recursionsLeft - 1);
                        break;
                    case "string":
                    case "number":
                    case "boolean":
                        res += keyValue;
                        break;
                    case "function":
                        res += "...";
                        break;
                    default:
                        break;
                }
            }
        }
        else {
            res += "<li>Too deep...</li>";
        }
        res += "</ul>";

        return res;
    }
};ï»¿vex.ui = {
    init: function() {
        $(document).bind("ajaxError", vex.ui.onAjaxError);
        vex.ui._radioUpdate();
        $("div.radio-choice div.radio-column").find("a, input").click(vex.ui._radioUpdate);
        $("div.radio-choice").addClass("interactive").click(vex.ui._radioChoiceClicked);

        $("form").bind("inputValidationFailed", vex.ui._refreshButtonsPosition);
        $("form").bind("inputValidationPassed", vex.ui._refreshButtonsPosition);
    },

    _refreshButtonsPosition: function() {
        $(this).find(".button-box:visible").hide().show();

    },

    showInformationMessage: function(message, title) {
        $('#left-column #informationMessages').remove();
        $('#left-column #breadcrumbs').after('<div class="messagebox messagebox-type-info" id="informationMessages"><h2>' + title + '</h2><p>' + message + '</p></div>');
    },

    clearInformationMessages: function() {
        $('#left-column #informationMessages').remove();
    },

    _radioChoiceClicked: function() {
        var $radio = $(this).find("input:radio");
        var val = $radio.val();
        $radio.val(val);
        $(this).find("div.radio-column a").click();

    },

    _radioUpdate: function() {

        $("div.radio-choice").removeClass("radio-choice-active").addClass("radio-choice-inactive");
        $("div.radio-choice:has(input:radio:checked)").addClass("radio-choice-active").removeClass("radio-choice-inactive");
    },

    refreshForm: function(formElement) {
        $(formElement).find("select").each(function() {
            jqRefreshSelect(this);
            return true;
        });
        $(formElement).find("span.jqTransformCheckboxWrapper input:checkbox").each(function() {
            if (this.checked) {
                $(this).parent().find("a.jqTransformCheckbox").addClass("jqTransformChecked");
                if (this.id) {
                    $(this.form).find("label[for=" + this.id + "]").addClass("jqCheckboxLabelChecked");
                }
            }
            else {
                $(this).parent().find("a.jqTransformCheckbox").removeClass("jqTransformChecked");
                if (this.id) {
                    $(this.form).find("label[for=" + this.id + "]").removeClass("jqCheckboxLabelChecked");
                }
            }
        });
        jqTranformReorderZAxis();
    },

    onAjaxError: function(event, xhr, ajaxOptions, thrownError) {

        if (xhr.status == 0) {
            // we didn't receive an anwser from the server yet, so it's likely our request was aborted by clicking somwhere else
            // so, we don't do anything
        }
        else {
            vex.ui.dialog.alert({
                title: "Internal error",
                text: "an error occured"
            });
        }
    }
};

vex.registerModule(vex.ui);ï»¿vex.ui.dialog = {

    init: function() {
        $.prompt.setDefaults({
            opacity: 0.85,
            loaded: vex.ui.dialog._addDialogDropShadow,
            submit: vex.ui.dialog._removeDialogDropShadow,
            zIndex: 2000,
            useiframe: true
        });
    },

    alert: function(options) {
        $.prompt('<div class="modal-caption">Notification</div><div class="modal-body"><div class="modal-title">' + options.title + '</div><p>' + options.text + '</p></div>', {
            buttons: {
                continueShopping: {
                    text: 'Continue shopping',
                    value: true
                }
            }
        });
    },

    prompt: function(dialogTitle, dialogText, buttons, callback, options) {
        var currentOptions = {
            buttons: buttons,
            callback: callback
        };

        if (typeof (options) == "object") {
            currentOptions = $.extend(currentOptions, options);
        }
        $.prompt('<div class="modal-caption">Notification</div><div class="modal-body"><div class="modal-title">' + dialogTitle + '</div><p>' + dialogText + '</p></div>', currentOptions);
    },

    showCartExpirationDialog: function(dialogTitle, dialogText, buttons, callback) {
        vex.ui.dialog.prompt(dialogTitle, dialogText, buttons, callback);
    },

    showInvalidSaleForCurrentCartDialog: function(dialogTitle, dialogText, buttons, callback) {
        vex.ui.dialog.prompt(dialogTitle, dialogText, buttons, callback);
    },    

    showCancelorderDialog: function(dialogTitle, dialogText, buttons, callback) {
        vex.ui.dialog.prompt(dialogTitle, dialogText, buttons, callback);
    },

    _addDialogDropShadow: function() {
        $('div.jqi').dropShadow({
            left: 2,
            top: 2,
            blur: 5,
            opacity: 0.9
        });
    },

    _removeDialogDropShadow: function() {
        $('div.jqi').removeShadow();
    },

    test: function() {
        vex.ui.dialog.alert({ title: "Lorem ipsum dolor sit amet, consectetur adipiscing elit.", text: "Quisque dolor nibh, iaculis id posuere in, volutpat vel massa. Phasellus leo dui, elementum et venenatis id, rutrum eu nunc. Aliquam ullamcorper interdum nisi non eleifend. Integer quis nisl sed urna adipiscing hendrerit. Sed ac libero eros, quis malesuada mauris." });
    }
};

vex.registerModule(vex.ui.dialog);ï»¿(function($) {
    ///	<summary>
    ///		Creates a ajax loader in the given selector.
    ///	</summary>
    ///	<param name="setttings" type="object">
    ///		 An object containing the image to show when loading an ajaxcall.
    ///	</param>
    $.fn.ajaxFader = function(settings) {
        settings = $.extend({ imageLoader: vex.contentUrl('~/Content/images/ajax-loader.gif'), text: '' }, settings);

        // create html
        var faderHtml = '';
        faderHtml += '<div id="ajaxWrapper" class="hidden">';
        faderHtml += '   <div class="ajaxLoader">';
        faderHtml += '       <img id="imgLoader" class="ajaxLoaderImage" src="' + settings.imageLoader + '" />';
        if ('' != settings.text) {
            faderHtml += '       <span class="ajaxLoaderText">' + settings.text + '</span>';
        }
        faderHtml += '   </div>';
        faderHtml += '   <div id="ajaxMask" class="overlayfader"></div>';
        faderHtml += '</div>';

        $(this).css('position', 'relative');
        $(this).addClass("loading-ajax");
        $(this).prepend(faderHtml);

        $("#ajaxWrapper").ajaxStart(function() {
            $(this).fadeIn("normal");
        });

        $("#ajaxWrapper").ajaxStop(function() {
            $(this).fadeOut("normal", function() {
                $(this).parent().removeClass("loading-ajax");
                $(this).remove();
            });
        });
    };
})(jQuery);vex.shop = {

    init: function () {

        var lookObject = new function () {
            this.nextLook;
            this.currentLook;
            this.looks;
            this.elem;
            this.showIntervalId;
            this.isRevived;
            return this;
        };

        var looks = new Array();
        looks[0] = "FS";
        looks[1] = "RS";
        looks[2] = "BS";
        looks[3] = "LS";

        lookObject.nextLook = 0;
        lookObject.currentLook = 0;
        lookObject.looks = looks;
        lookObject.isRevived = false;
        $('#otherProducts a.next-look').live('click', function () {
            lookObject.elem = this;
            clearInterval(lookObject.showIntervalId);
            vex.shop.cycleLookPictures(lookObject);
//            if (!lookObject.isRevived) {
//                setTimeout(function () { vex.shop.resumeSlideShow(lookObject); }, 5000);
//                lookObject.isRevived = true;
//            }
        });

        $('#otherProducts a.next-look').live('mouseover', function () {
            lookObject.elem = this;
            lookObject.isRevived = false;
            vex.shop.resumeSlideShow(lookObject);
        });

        $('#otherProducts a.next-look').live('mouseout', function () {
            lookObject.elem = this;
            lookObject.isRevived = false;
            clearInterval(lookObject.showIntervalId);
        });
    },

    resumeSlideShow: function (lookObject) {
        lookObject.showIntervalId = setInterval(function () { vex.shop.cycleLookPictures(lookObject); }, 2000);
    },

    cycleLookPictures: function (lookObj) {
        lookObj.nextLook++;
        if (lookObj.nextLook > 3) {
            lookObj.nextLook = 0;
        }
        if (lookObj.currentLook > 3) {
            lookObj.currentLook = 0;
        }
        var src = $(lookObj.elem).prev().attr('src');
        var newSrc = src.replace('_' + lookObj.looks[lookObj.currentLook], '_' + lookObj.looks[lookObj.nextLook]);
        $(lookObj.elem).prev().attr('src', newSrc);
        lookObj.currentLook++;
    },

    loadRelatedProducts: function (page, langId, prodId, sale, size) {
        $('#otherProducts').ajaxFader();
        $('#otherProducts #other-products-tiles').fadeOut('slow');

        var url = vex.ajaxUrl('LoadRelatedProducts', 'Product');

        $.get(url,
                    { languageId: langId, productId: prodId, saleId: sale, pageIndex: page, pageSize: size },
                    function (data) { $("#otherProducts").html(data); });

    }
};

vex.registerModule(vex.shop);
ï»¿vex.shop.cart = {
    timeoutHandle: -1,
    expirationInMinutes: 15,
    expirationInSeconds: 0,
    cartExpirationDateTime: new Date(),
    currentDateTime: new Date(),
    saleId: 0,

    init: function() {
        vex.shop.cart._trimCartSummary();
    },

    addCartItem: function (item, cartItemDetailUrl) {
        // have a "transfer" effect started for the square moving to the right
        var $prdImage = $('#product-image').stop(true, true);
        var $transferTo = $('#cart-items .cart-item:first');
        if ($transferTo.attr("href") == "#") {
            $transferTo = $("#cart-items");
        }
        $prdImage.effect('transfer', { to: $transferTo });

        // remove any exiting models with the same id from the pane.
        var id = 'cart-item-model-' + item.ModelId;
        $('#' + id).remove();

        // generate a new cart entry on the right (might wanna change this to AJAX)
        $('cart-items .cart-item').css('height', 'auto');
        var newItem = $('#cart-items .cart-item:first')
            .stop(true, true)
            .attr('id', id)
            .clone()
            .show()
            .insertBefore('#cart-items .cart-item:first');

        // change the image in the preview (in this case taking the miniature of the current product image)
        var newSrc = $('#product-image').attr('src');
        newItem.find('.cart-item-pic-container img').attr('src', item.ProductImageUrl);
        newItem.find('.cart-item-quantity .quantity').html(item.Quantity);
        newItem.find('.cart-item-info .cart-product-name').html(item.ProductName);

        if (item.ModelName && item.ModelName != "") {
            newItem.find('.cart-item-info .product-model-name span').html(item.ModelName);
        }
        else {
            newItem.find('.cart-item-info .product-model-name span').html("-");
        }

        newItem.attr("href", cartItemDetailUrl);

        vex.shop.cart._reAlternateCartColours();
        newItem.hide().stop(true, true).fadeTo(0, 0).slideDown(500, vex.shop.cart._newCartItemSlidedDown);

        var cartItemCount = $('#cart-items .cart-item').length - 1;
        if (cartItemCount < 0) {
            cartItemCount = 0;
        }
        $('#cart-item-count').html(cartItemCount)

        $('#cart-see-all-products-link').css('display', cartItemCount > 5 ? 'inherit' : 'none');

        $("#menu #menu-right").removeClass("none-active").addClass("one-active");
        $("#menu #menu-right .option").removeClass("option-active").addClass("option-inactive");
        $("#menu #menu-right .option:has(a#menu-right-cart)").removeClass("option-inactive").addClass("option-active");


        vex.shop.cart._trimCartSummary();

        return false;
    },

    _trimCartSummary: function() {
        var maxItems = vex.shop.cart._getMaxItems();

        $("#cart-items .cart-item:lt(" + maxItems + ")").show();
        $("#cart-items .cart-item:gt(" + (maxItems - 1) + ")").hide();
        $("#cart-items .cart-item:last").hide();
    },

    updateCartSummary: function(summary) {
        if (summary.CartItem != null) {

            $('#cart-id').val(summary.CartId);

            if ($('#cart-expiration').css('display') == 'none') {
                vex.shop.cart.expirationInMinutes = summary.ExpirationInMinutes;
                vex.shop.cart.expirationInSeconds = summary.ExpirationInSeconds;
                vex.shop.cart.enterExpirationLoop();
            }
            $('#cart-expiration-cart-empty').css('display', 'none');
            $('#cart-expiration').css('display', '');
            $('#CartCheckoutForm').attr('action', summary.CheckoutActionUrl);
        }
        else {
            $('#cart-expiration-cart-empty').css('display', '');
            $('#cart-expiration').css('display', 'none');
        }
        if (summary.ReductionPercentage == null) {
            $('#cart-row-reduction').css('display', 'none');
        }
        else {
            $('#cart-row-reduction').css('display', '');
            if (summary.IsVolumeReduction) {
                $('#cart-isvolumereduction').css('display', '');
                $('#cart-isreduction').css('display', 'none');
            }
            else {
                $('#cart-isvolumereduction').css('display', 'none');
                $('#cart-isreduction').css('display', '');
            }
        }
        $('#cart-subtotal').html(summary.SubTotalAmount);
        $('#cart-reductionpercentage').html(summary.ReductionPercentage);
        $('#cart-reductionamount').html(summary.ReductionAmount);
        $('#cart-couponsamount').html(summary.CouponsAmount);
        $('#cart-shippingcostsamount').html(summary.ShippingCostsAmount);
        $('#cart-totalamount').html(summary.TotalAmount);
        $('#cart-creditamount').html(summary.CreditUsedAmount);
    },

    clearCart: function() {
        vex.shop.cart._clearTimeout();
        var templateItem = $('#cart-items .cart-item:last');
        $('#cart-items .cart-item').remove();
        templateItem.appendTo('#cart-items');
        $('#cart-item-count').html(0);
        // Hide the items on the shopping cart page
        $('.filled-cart').css('display', 'none');
    },

    _reAlternateCartColours: function() {
        $('#cart-items .cart-item').removeClass('cart-item-even cart-item-odd');
        $('#cart-items .cart-item:even').addClass('cart-item-even');
        $('#cart-items .cart-item:odd').addClass('cart-item-odd');
    },

    _newCartItemSlidedDown: function() {
        $(this).show().fadeTo('slow', 1);
    },

    _setCartExpiration: function(minutes) {
        if (minutes > 15) {
            $("#cartExpiration").html(15);
        }
        else {
            $("#cartExpiration").html(minutes);
        }
    },

    _getMaxItems: function() {

        var result = 3;
        var classNames = $("#cart-items").attr("class");
        if (classNames) {
            var classNamesArr = classNames.split(" ");
            for (ci in classNamesArr) {
                var className = classNamesArr[ci];
                var classNameSplit = className.split("-");

                if (classNameSplit[0] == "maxItems" && classNameSplit.length > 1) {
                    result = parseInt(classNameSplit[1]);
                }

            }
        }
        return result;

    },

    enterExpirationLoop: function() {
        vex.shop.cart._clearTimeout();

        if (vex.shop.cart.expirationInMinutes <= 0 && vex.shop.cart.expirationInSeconds <= 0) {
            vex.shop.cart.expirationInMinutes = 1;
            vex.shop.cart.expirationInSeconds = 0;
            vex.shop.cart._setCartExpiration(vex.shop.cart.expirationInMinutes);
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.setExpiration(60)", 0);
        }
        else {
            vex.shop.cart.expirationInMinutes++;
            vex.shop.cart._setCartExpiration(vex.shop.cart.expirationInMinutes);
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.setExpiration(60)", vex.shop.cart.expirationInSeconds * 1000);
        }
    },


    setExpiration: function(seconds) {
        vex.shop.cart._clearTimeout();
        vex.shop.cart.expirationInMinutes--;

        if (vex.shop.cart.expirationInMinutes > 0) {
            vex.shop.cart._setCartExpiration(vex.shop.cart.expirationInMinutes);
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.setExpiration(60)", 60000);
        }
        else if (vex.shop.cart.expirationInMinutes <= 0) {
            setTimeout("vex.shop.cart._beginCartExpiration(" + seconds + ")", 1000); // Give the process one second to make sure the expirationDateTime is smaller thatn the current datetime.
        }
    },

    _beginCartExpiration: function(seconds) {
        vex.shop.cart._clearTimeout();

        if (vex.shop.cart.cartExpirationDateTime <= vex.shop.cart.currentDateTime) {
            var bodyId = $("body").attr("id");
            vex.shop.cart._setCartExpiration(0);
            if (bodyId != null && !(bodyId.match("^checkout") == 'checkout')) {
                showCartExpirationDialog();
            }
            vex.shop.cart.timeoutHandle = setTimeout("vex.shop.cart.expireCart()", seconds * 1000);
        }
        else {
            vex.shop.cart.enterExpirationLoop(); // re-enter expiration loop as the timeout was cleared.
        }
    },

    showCartExpirationCallback: function(proceedWithCheckOut, shippingActionUrl) {
        vex.shop.cart._clearTimeout();
        if (proceedWithCheckOut) {
            window.location = shippingActionUrl + "/" + $('#cart-id').val();
        }
        else {
            vex.shop.cart.expireCart();
        }
    },

    expireCart: function() {
        vex.shop.cart._clearTimeout();

        if (vex.shop.cart.cartExpirationDateTime <= vex.shop.cart.currentDateTime) {

            $.prompt.close();

            var cartId = $('#cart-id').val();

            var action = vex.ajaxUrl('ExpireCart', 'Cart');
            $.ajax({ type: "POST"
                , url: action
                , data: { cartId: cartId }
                , dataType: "json"
                , success: function(data) {
                    vex.ui.showInformationMessage(cartClearedMessage, cartInformationMessagesTitle);
                    vex.shop.cart.updateCartSummary(data);
                    vex.shop.cart.clearCart();
                }
            });
        }
    },

    getCompleteCart: function() {
        try {
            var action = vex.ajaxUrl('GetCompleteCart', 'Cart');
            $.ajax({ type: "POST"
                        , url: action
                        , dataType: "html"
                        , success: function(data) {
                            vex.shop.cart._clearTimeout();
                            $('#right-column').html(data);
                            vex.shop.cart.expirationInMinutes--;
                            vex.shop.cart.enterExpirationLoop();
                        }
            });
        }
        catch (error) {
            // No errors.
        }
    },

    _clearTimeout: function() {
        clearTimeout(vex.shop.cart.timeoutHandle);
        vex.shop.cart.timeoutHandle = -1;
    },

    showInvalidSaleForCurrentCartCallback: function (backToPreviousSale, frameUrl) {
        vex.shop.cart._clearTimeout();
        if (backToPreviousSale || backToPreviousSale == undefined) {
            window.location = frameUrl;
        }
        else {
            vex.shop.cart.expireCart();
        }
    }
};

vex.registerModule(vex.shop.cart);