/*  Prototype JavaScript framework, version 1.6.0.3
 *  (c) 2005-2008 Sam Stephenson
 *
 *  Prototype is freely distributable under the terms of an MIT-style license.
 *  For details, see the Prototype web site: http://www.prototypejs.org/
 *
 *--------------------------------------------------------------------------*/

var Prototype = {
  Version: '1.6.0.3',

  Browser: {
    IE:     !!(window.attachEvent &&
      navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 &&
      navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  },

  BrowserFeatures: {
    XPath: !!document.evaluate,
    SelectorsAPI: !!document.querySelector,
    ElementExtensions: !!window.HTMLElement,
    SpecificElementExtensions:
      document.createElement('div')['__proto__'] &&
      document.createElement('div')['__proto__'] !==
        document.createElement('form')['__proto__']
  },

  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,

  emptyFunction: function() { },
  K: function(x) { return x }
};

if (Prototype.Browser.MobileSafari)
  Prototype.BrowserFeatures.SpecificElementExtensions = false;


/* Based on Alex Arnell's inheritance implementation. */
var Class = {
  create: function() {
    var parent = null, properties = $A(arguments);
    if (Object.isFunction(properties[0]))
      parent = properties.shift();

    function klass() {
      this.initialize.apply(this, arguments);
    }

    Object.extend(klass, Class.Methods);
    klass.superclass = parent;
    klass.subclasses = [];

    if (parent) {
      var subclass = function() { };
      subclass.prototype = parent.prototype;
      klass.prototype = new subclass;
      parent.subclasses.push(klass);
    }

    for (var i = 0; i < properties.length; i++)
      klass.addMethods(properties[i]);

    if (!klass.prototype.initialize)
      klass.prototype.initialize = Prototype.emptyFunction;

    klass.prototype.constructor = klass;

    return klass;
  }
};

Class.Methods = {
  addMethods: function(source) {
    var ancestor   = this.superclass && this.superclass.prototype;
    var properties = Object.keys(source);

    if (!Object.keys({ toString: true }).length)
      properties.push("toString", "valueOf");

    for (var i = 0, length = properties.length; i < length; i++) {
      var property = properties[i], value = source[property];
      if (ancestor && Object.isFunction(value) &&
          value.argumentNames().first() == "$super") {
        var method = value;
        value = (function(m) {
          return function() { return ancestor[m].apply(this, arguments) };
        })(property).wrap(method);

        value.valueOf = method.valueOf.bind(method);
        value.toString = method.toString.bind(method);
      }
      this.prototype[property] = value;
    }

    return this;
  }
};

var Abstract = { };

Object.extend = function(destination, source) {
  for (var property in source)
    destination[property] = source[property];
  return destination;
};

Object.extend(Object, {
  inspect: function(object) {
    try {
      if (Object.isUndefined(object)) return 'undefined';
      if (object === null) return 'null';
      return object.inspect ? object.inspect() : String(object);
    } catch (e) {
      if (e instanceof RangeError) return '...';
      throw e;
    }
  },

  toJSON: function(object) {
    var type = typeof object;
    switch (type) {
      case 'undefined':
      case 'function':
      case 'unknown': return;
      case 'boolean': return object.toString();
    }

    if (object === null) return 'null';
    if (object.toJSON) return object.toJSON();
    if (Object.isElement(object)) return;

    var results = [];
    for (var property in object) {
      var value = Object.toJSON(object[property]);
      if (!Object.isUndefined(value))
        results.push(property.toJSON() + ': ' + value);
    }

    return '{' + results.join(', ') + '}';
  },

  toQueryString: function(object) {
    return $H(object).toQueryString();
  },

  toHTML: function(object) {
    return object && object.toHTML ? object.toHTML() : String.interpret(object);
  },

  keys: function(object) {
    var keys = [];
    for (var property in object)
      keys.push(property);
    return keys;
  },

  values: function(object) {
    var values = [];
    for (var property in object)
      values.push(object[property]);
    return values;
  },

  clone: function(object) {
    return Object.extend({ }, object);
  },

  isElement: function(object) {
    return !!(object && object.nodeType == 1);
  },

  isArray: function(object) {
    return object != null && typeof object == "object" &&
      'splice' in object && 'join' in object;
  },

  isHash: function(object) {
    return object instanceof Hash;
  },

  isFunction: function(object) {
    return typeof object == "function";
  },

  isString: function(object) {
    return typeof object == "string";
  },

  isNumber: function(object) {
    return typeof object == "number";
  },

  isUndefined: function(object) {
    return typeof object == "undefined";
  }
});

Object.extend(Function.prototype, {
  argumentNames: function() {
    var names = this.toString().match(/^[\s\(]*function[^(]*\(([^\)]*)\)/)[1]
      .replace(/\s+/g, '').split(',');
    return names.length == 1 && !names[0] ? [] : names;
  },

  bind: function() {
    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
    var __method = this, args = $A(arguments), object = args.shift();
    return function() {
      return __method.apply(object, args.concat($A(arguments)));
    }
  },

  bindAsEventListener: function() {
    var __method = this, args = $A(arguments), object = args.shift();
    return function(event) {
      return __method.apply(object, [event || window.event].concat(args));
    }
  },

  curry: function() {
    if (!arguments.length) return this;
    var __method = this, args = $A(arguments);
    return function() {
      return __method.apply(this, args.concat($A(arguments)));
    }
  },

  delay: function() {
    var __method = this, args = $A(arguments), timeout = args.shift() * 1000;
    return window.setTimeout(function() {
      return __method.apply(__method, args);
    }, timeout);
  },

  defer: function() {
    var args = [0.01].concat($A(arguments));
    return this.delay.apply(this, args);
  },

  wrap: function(wrapper) {
    var __method = this;
    return function() {
      return wrapper.apply(this, [__method.bind(this)].concat($A(arguments)));
    }
  },

  methodize: function() {
    if (this._methodized) return this._methodized;
    var __method = this;
    return this._methodized = function() {
      return __method.apply(null, [this].concat($A(arguments)));
    };
  }
});

Date.prototype.toJSON = function() {
  return '"' + this.getUTCFullYear() + '-' +
    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
    this.getUTCDate().toPaddedString(2) + 'T' +
    this.getUTCHours().toPaddedString(2) + ':' +
    this.getUTCMinutes().toPaddedString(2) + ':' +
    this.getUTCSeconds().toPaddedString(2) + 'Z"';
};

var Try = {
  these: function() {
    var returnValue;

    for (var i = 0, length = arguments.length; i < length; i++) {
      var lambda = arguments[i];
      try {
        returnValue = lambda();
        break;
      } catch (e) { }
    }

    return returnValue;
  }
};

RegExp.prototype.match = RegExp.prototype.test;

RegExp.escape = function(str) {
  return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
};

/*--------------------------------------------------------------------------*/

var PeriodicalExecuter = Class.create({
  initialize: function(callback, frequency) {
    this.callback = callback;
    this.frequency = frequency;
    this.currentlyExecuting = false;

    this.registerCallback();
  },

  registerCallback: function() {
    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
  },

  execute: function() {
    this.callback(this);
  },

  stop: function() {
    if (!this.timer) return;
    clearInterval(this.timer);
    this.timer = null;
  },

  onTimerEvent: function() {
    if (!this.currentlyExecuting) {
      try {
        this.currentlyExecuting = true;
        this.execute();
      } finally {
        this.currentlyExecuting = false;
      }
    }
  }
});
Object.extend(String, {
  interpret: function(value) {
    return value == null ? '' : String(value);
  },
  specialChar: {
    '\b': '\\b',
    '\t': '\\t',
    '\n': '\\n',
    '\f': '\\f',
    '\r': '\\r',
    '\\': '\\\\'
  }
});

Object.extend(String.prototype, {
  gsub: function(pattern, replacement) {
    var result = '', source = this, match;
    replacement = arguments.callee.prepareReplacement(replacement);

    while (source.length > 0) {
      if (match = source.match(pattern)) {
        result += source.slice(0, match.index);
        result += String.interpret(replacement(match));
        source  = source.slice(match.index + match[0].length);
      } else {
        result += source, source = '';
      }
    }
    return result;
  },

  sub: function(pattern, replacement, count) {
    replacement = this.gsub.prepareReplacement(replacement);
    count = Object.isUndefined(count) ? 1 : count;

    return this.gsub(pattern, function(match) {
      if (--count < 0) return match[0];
      return replacement(match);
    });
  },

  scan: function(pattern, iterator) {
    this.gsub(pattern, iterator);
    return String(this);
  },

  truncate: function(length, truncation) {
    length = length || 30;
    truncation = Object.isUndefined(truncation) ? '...' : truncation;
    return this.length > length ?
      this.slice(0, length - truncation.length) + truncation : String(this);
  },

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

  stripTags: function() {
    return this.replace(/<\/?[^>]+>/gi, '');
  },

  stripScripts: function() {
    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
  },

  extractScripts: function() {
    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
    return (this.match(matchAll) || []).map(function(scriptTag) {
      return (scriptTag.match(matchOne) || ['', ''])[1];
    });
  },

  evalScripts: function() {
    return this.extractScripts().map(function(script) { return eval(script) });
  },

  escapeHTML: function() {
    var self = arguments.callee;
    self.text.data = this;
    return self.div.innerHTML;
  },

  unescapeHTML: function() {
    var div = new Element('div');
    div.innerHTML = this.stripTags();
    return div.childNodes[0] ? (div.childNodes.length > 1 ?
      $A(div.childNodes).inject('', function(memo, node) { return memo+node.nodeValue }) :
      div.childNodes[0].nodeValue) : '';
  },

  toQueryParams: function(separator) {
    var match = this.strip().match(/([^?#]*)(#.*)?$/);
    if (!match) return { };

    return match[1].split(separator || '&').inject({ }, function(hash, pair) {
      if ((pair = pair.split('='))[0]) {
        var key = decodeURIComponent(pair.shift());
        var value = pair.length > 1 ? pair.join('=') : pair[0];
        if (value != undefined) value = decodeURIComponent(value);

        if (key in hash) {
          if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
          hash[key].push(value);
        }
        else hash[key] = value;
      }
      return hash;
    });
  },

  toArray: function() {
    return this.split('');
  },

  succ: function() {
    return this.slice(0, this.length - 1) +
      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
  },

  times: function(count) {
    return count < 1 ? '' : new Array(count + 1).join(this);
  },

  camelize: function() {
    var parts = this.split('-'), len = parts.length;
    if (len == 1) return parts[0];

    var camelized = this.charAt(0) == '-'
      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
      : parts[0];

    for (var i = 1; i < len; i++)
      camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);

    return camelized;
  },

  capitalize: function() {
    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
  },

  underscore: function() {
    return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
  },

  dasherize: function() {
    return this.gsub(/_/,'-');
  },

  inspect: function(useDoubleQuotes) {
    var escapedString = this.gsub(/[\x00-\x1f\\]/, function(match) {
      var character = String.specialChar[match[0]];
      return character ? character : '\\u00' + match[0].charCodeAt().toPaddedString(2, 16);
    });
    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
  },

  toJSON: function() {
    return this.inspect(true);
  },

  unfilterJSON: function(filter) {
    return this.sub(filter || Prototype.JSONFilter, '#{1}');
  },

  isJSON: function() {
    var str = this;
    if (str.blank()) return false;
    str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
  },

  evalJSON: function(sanitize) {
    var json = this.unfilterJSON();
    try {
      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
    } catch (e) { }
    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
  },

  include: function(pattern) {
    return this.indexOf(pattern) > -1;
  },

  startsWith: function(pattern) {
    return this.indexOf(pattern) === 0;
  },

  endsWith: function(pattern) {
    var d = this.length - pattern.length;
    return d >= 0 && this.lastIndexOf(pattern) === d;
  },

  empty: function() {
    return this == '';
  },

  blank: function() {
    return /^\s*$/.test(this);
  },

  interpolate: function(object, pattern) {
    return new Template(this, pattern).evaluate(object);
  }
});

if (Prototype.Browser.WebKit || Prototype.Browser.IE) Object.extend(String.prototype, {
  escapeHTML: function() {
    return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
  },
  unescapeHTML: function() {
    return this.stripTags().replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
  }
});

String.prototype.gsub.prepareReplacement = function(replacement) {
  if (Object.isFunction(replacement)) return replacement;
  var template = new Template(replacement);
  return function(match) { return template.evaluate(match) };
};

String.prototype.parseQuery = String.prototype.toQueryParams;

Object.extend(String.prototype.escapeHTML, {
  div:  document.createElement('div'),
  text: document.createTextNode('')
});

String.prototype.escapeHTML.div.appendChild(String.prototype.escapeHTML.text);

var Template = Class.create({
  initialize: function(template, pattern) {
    this.template = template.toString();
    this.pattern = pattern || Template.Pattern;
  },

  evaluate: function(object) {
    if (Object.isFunction(object.toTemplateReplacements))
      object = object.toTemplateReplacements();

    return this.template.gsub(this.pattern, function(match) {
      if (object == null) return '';

      var before = match[1] || '';
      if (before == '\\') return match[2];

      var ctx = object, expr = match[3];
      var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
      match = pattern.exec(expr);
      if (match == null) return before;

      while (match != null) {
        var comp = match[1].startsWith('[') ? match[2].gsub('\\\\]', ']') : match[1];
        ctx = ctx[comp];
        if (null == ctx || '' == match[3]) break;
        expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
        match = pattern.exec(expr);
      }

      return before + String.interpret(ctx);
    });
  }
});
Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;

var $break = { };

var Enumerable = {
  each: function(iterator, context) {
    var index = 0;
    try {
      this._each(function(value) {
        iterator.call(context, value, index++);
      });
    } catch (e) {
      if (e != $break) throw e;
    }
    return this;
  },

  eachSlice: function(number, iterator, context) {
    var index = -number, slices = [], array = this.toArray();
    if (number < 1) return array;
    while ((index += number) < array.length)
      slices.push(array.slice(index, index+number));
    return slices.collect(iterator, context);
  },

  all: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result = true;
    this.each(function(value, index) {
      result = result && !!iterator.call(context, value, index);
      if (!result) throw $break;
    });
    return result;
  },

  any: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result = false;
    this.each(function(value, index) {
      if (result = !!iterator.call(context, value, index))
        throw $break;
    });
    return result;
  },

  collect: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var results = [];
    this.each(function(value, index) {
      results.push(iterator.call(context, value, index));
    });
    return results;
  },

  detect: function(iterator, context) {
    var result;
    this.each(function(value, index) {
      if (iterator.call(context, value, index)) {
        result = value;
        throw $break;
      }
    });
    return result;
  },

  findAll: function(iterator, context) {
    var results = [];
    this.each(function(value, index) {
      if (iterator.call(context, value, index))
        results.push(value);
    });
    return results;
  },

  grep: function(filter, iterator, context) {
    iterator = iterator || Prototype.K;
    var results = [];

    if (Object.isString(filter))
      filter = new RegExp(filter);

    this.each(function(value, index) {
      if (filter.match(value))
        results.push(iterator.call(context, value, index));
    });
    return results;
  },

  include: function(object) {
    if (Object.isFunction(this.indexOf))
      if (this.indexOf(object) != -1) return true;

    var found = false;
    this.each(function(value) {
      if (value == object) {
        found = true;
        throw $break;
      }
    });
    return found;
  },

  inGroupsOf: function(number, fillWith) {
    fillWith = Object.isUndefined(fillWith) ? null : fillWith;
    return this.eachSlice(number, function(slice) {
      while(slice.length < number) slice.push(fillWith);
      return slice;
    });
  },

  inject: function(memo, iterator, context) {
    this.each(function(value, index) {
      memo = iterator.call(context, memo, value, index);
    });
    return memo;
  },

  invoke: function(method) {
    var args = $A(arguments).slice(1);
    return this.map(function(value) {
      return value[method].apply(value, args);
    });
  },

  max: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result;
    this.each(function(value, index) {
      value = iterator.call(context, value, index);
      if (result == null || value >= result)
        result = value;
    });
    return result;
  },

  min: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var result;
    this.each(function(value, index) {
      value = iterator.call(context, value, index);
      if (result == null || value < result)
        result = value;
    });
    return result;
  },

  partition: function(iterator, context) {
    iterator = iterator || Prototype.K;
    var trues = [], falses = [];
    this.each(function(value, index) {
      (iterator.call(context, value, index) ?
        trues : falses).push(value);
    });
    return [trues, falses];
  },

  pluck: function(property) {
    var results = [];
    this.each(function(value) {
      results.push(value[property]);
    });
    return results;
  },

  reject: function(iterator, context) {
    var results = [];
    this.each(function(value, index) {
      if (!iterator.call(context, value, index))
        results.push(value);
    });
    return results;
  },

  sortBy: function(iterator, context) {
    return this.map(function(value, index) {
      return {
        value: value,
        criteria: iterator.call(context, value, index)
      };
    }).sort(function(left, right) {
      var a = left.criteria, b = right.criteria;
      return a < b ? -1 : a > b ? 1 : 0;
    }).pluck('value');
  },

  toArray: function() {
    return this.map();
  },

  zip: function() {
    var iterator = Prototype.K, args = $A(arguments);
    if (Object.isFunction(args.last()))
      iterator = args.pop();

    var collections = [this].concat(args).map($A);
    return this.map(function(value, index) {
      return iterator(collections.pluck(index));
    });
  },

  size: function() {
    return this.toArray().length;
  },

  inspect: function() {
    return '#<Enumerable:' + this.toArray().inspect() + '>';
  }
};

Object.extend(Enumerable, {
  map:     Enumerable.collect,
  find:    Enumerable.detect,
  select:  Enumerable.findAll,
  filter:  Enumerable.findAll,
  member:  Enumerable.include,
  entries: Enumerable.toArray,
  every:   Enumerable.all,
  some:    Enumerable.any
});
function $A(iterable) {
  if (!iterable) return [];
  if (iterable.toArray) return iterable.toArray();
  var length = iterable.length || 0, results = new Array(length);
  while (length--) results[length] = iterable[length];
  return results;
}

if (Prototype.Browser.WebKit) {
  $A = function(iterable) {
    if (!iterable) return [];
    // In Safari, only use the `toArray` method if it's not a NodeList.
    // A NodeList is a function, has an function `item` property, and a numeric
    // `length` property. Adapted from Google Doctype.
    if (!(typeof iterable === 'function' && typeof iterable.length ===
        'number' && typeof iterable.item === 'function') && iterable.toArray)
      return iterable.toArray();
    var length = iterable.length || 0, results = new Array(length);
    while (length--) results[length] = iterable[length];
    return results;
  };
}

Array.from = $A;

Object.extend(Array.prototype, Enumerable);

if (!Array.prototype._reverse) Array.prototype._reverse = Array.prototype.reverse;

Object.extend(Array.prototype, {
  _each: function(iterator) {
    for (var i = 0, length = this.length; i < length; i++)
      iterator(this[i]);
  },

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

  first: function() {
    return this[0];
  },

  last: function() {
    return this[this.length - 1];
  },

  compact: function() {
    return this.select(function(value) {
      return value != null;
    });
  },

  flatten: function() {
    return this.inject([], function(array, value) {
      return array.concat(Object.isArray(value) ?
        value.flatten() : [value]);
    });
  },

  without: function() {
    var values = $A(arguments);
    return this.select(function(value) {
      return !values.include(value);
    });
  },

  reverse: function(inline) {
    return (inline !== false ? this : this.toArray())._reverse();
  },

  reduce: function() {
    return this.length > 1 ? this : this[0];
  },

  uniq: function(sorted) {
    return this.inject([], function(array, value, index) {
      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
        array.push(value);
      return array;
    });
  },

  intersect: function(array) {
    return this.uniq().findAll(function(item) {
      return array.detect(function(value) { return item === value });
    });
  },

  clone: function() {
    return [].concat(this);
  },

  size: function() {
    return this.length;
  },

  inspect: function() {
    return '[' + this.map(Object.inspect).join(', ') + ']';
  },

  toJSON: function() {
    var results = [];
    this.each(function(object) {
      var value = Object.toJSON(object);
      if (!Object.isUndefined(value)) results.push(value);
    });
    return '[' + results.join(', ') + ']';
  }
});

// use native browser JS 1.6 implementation if available
if (Object.isFunction(Array.prototype.forEach))
  Array.prototype._each = Array.prototype.forEach;

if (!Array.prototype.indexOf) Array.prototype.indexOf = function(item, i) {
  i || (i = 0);
  var length = this.length;
  if (i < 0) i = length + i;
  for (; i < length; i++)
    if (this[i] === item) return i;
  return -1;
};

if (!Array.prototype.lastIndexOf) Array.prototype.lastIndexOf = function(item, i) {
  i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
  var n = this.slice(0, i).reverse().indexOf(item);
  return (n < 0) ? n : i - n - 1;
};

Array.prototype.toArray = Array.prototype.clone;

function $w(string) {
  if (!Object.isString(string)) return [];
  string = string.strip();
  return string ? string.split(/\s+/) : [];
}

if (Prototype.Browser.Opera){
  Array.prototype.concat = function() {
    var array = [];
    for (var i = 0, length = this.length; i < length; i++) array.push(this[i]);
    for (var i = 0, length = arguments.length; i < length; i++) {
      if (Object.isArray(arguments[i])) {
        for (var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
          array.push(arguments[i][j]);
      } else {
        array.push(arguments[i]);
      }
    }
    return array;
  };
}
Object.extend(Number.prototype, {
  toColorPart: function() {
    return this.toPaddedString(2, 16);
  },

  succ: function() {
    return this + 1;
  },

  times: function(iterator, context) {
    $R(0, this, true).each(iterator, context);
    return this;
  },

  toPaddedString: function(length, radix) {
    var string = this.toString(radix || 10);
    return '0'.times(length - string.length) + string;
  },

  toJSON: function() {
    return isFinite(this) ? this.toString() : 'null';
  }
});

$w('abs round ceil floor').each(function(method){
  Number.prototype[method] = Math[method].methodize();
});
function $H(object) {
  return new Hash(object);
};

var Hash = Class.create(Enumerable, (function() {

  function toQueryPair(key, value) {
    if (Object.isUndefined(value)) return key;
    return key + '=' + encodeURIComponent(String.interpret(value));
  }

  return {
    initialize: function(object) {
      this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
    },

    _each: function(iterator) {
      for (var key in this._object) {
        var value = this._object[key], pair = [key, value];
        pair.key = key;
        pair.value = value;
        iterator(pair);
      }
    },

    set: function(key, value) {
      return this._object[key] = value;
    },

    get: function(key) {
      // simulating poorly supported hasOwnProperty
      if (this._object[key] !== Object.prototype[key])
        return this._object[key];
    },

    unset: function(key) {
      var value = this._object[key];
      delete this._object[key];
      return value;
    },

    toObject: function() {
      return Object.clone(this._object);
    },

    keys: function() {
      return this.pluck('key');
    },

    values: function() {
      return this.pluck('value');
    },

    index: function(value) {
      var match = this.detect(function(pair) {
        return pair.value === value;
      });
      return match && match.key;
    },

    merge: function(object) {
      return this.clone().update(object);
    },

    update: function(object) {
      return new Hash(object).inject(this, function(result, pair) {
        result.set(pair.key, pair.value);
        return result;
      });
    },

    toQueryString: function() {
      return this.inject([], function(results, pair) {
        var key = encodeURIComponent(pair.key), values = pair.value;

        if (values && typeof values == 'object') {
          if (Object.isArray(values))
            return results.concat(values.map(toQueryPair.curry(key)));
        } else results.push(toQueryPair(key, values));
        return results;
      }).join('&');
    },

    inspect: function() {
      return '#<Hash:{' + this.map(function(pair) {
        return pair.map(Object.inspect).join(': ');
      }).join(', ') + '}>';
    },

    toJSON: function() {
      return Object.toJSON(this.toObject());
    },

    clone: function() {
      return new Hash(this);
    }
  }
})());

Hash.prototype.toTemplateReplacements = Hash.prototype.toObject;
Hash.from = $H;
var ObjectRange = Class.create(Enumerable, {
  initialize: function(start, end, exclusive) {
    this.start = start;
    this.end = end;
    this.exclusive = exclusive;
  },

  _each: function(iterator) {
    var value = this.start;
    while (this.include(value)) {
      iterator(value);
      value = value.succ();
    }
  },

  include: function(value) {
    if (value < this.start)
      return false;
    if (this.exclusive)
      return value < this.end;
    return value <= this.end;
  }
});

var $R = function(start, end, exclusive) {
  return new ObjectRange(start, end, exclusive);
};

var Ajax = {
  getTransport: function() {
    return Try.these(
      function() {return new XMLHttpRequest()},
      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
    ) || false;
  },

  activeRequestCount: 0
};

Ajax.Responders = {
  responders: [],

  _each: function(iterator) {
    this.responders._each(iterator);
  },

  register: function(responder) {
    if (!this.include(responder))
      this.responders.push(responder);
  },

  unregister: function(responder) {
    this.responders = this.responders.without(responder);
  },

  dispatch: function(callback, request, transport, json) {
    this.each(function(responder) {
      if (Object.isFunction(responder[callback])) {
        try {
          responder[callback].apply(responder, [request, transport, json]);
        } catch (e) { }
      }
    });
  }
};

Object.extend(Ajax.Responders, Enumerable);

Ajax.Responders.register({
  onCreate:   function() { Ajax.activeRequestCount++ },
  onComplete: function() { Ajax.activeRequestCount-- }
});

Ajax.Base = Class.create({
  initialize: function(options) {
    this.options = {
      method:       'post',
      asynchronous: true,
      contentType:  'application/x-www-form-urlencoded',
      encoding:     'UTF-8',
      parameters:   '',
      evalJSON:     true,
      evalJS:       true
    };
    Object.extend(this.options, options || { });

    this.options.method = this.options.method.toLowerCase();

    if (Object.isString(this.options.parameters))
      this.options.parameters = this.options.parameters.toQueryParams();
    else if (Object.isHash(this.options.parameters))
      this.options.parameters = this.options.parameters.toObject();
  }
});

Ajax.Request = Class.create(Ajax.Base, {
  _complete: false,

  initialize: function($super, url, options) {
    $super(options);
    this.transport = Ajax.getTransport();
    this.request(url);
  },

  request: function(url) {
    this.url = url;
    this.method = this.options.method;
    var params = Object.clone(this.options.parameters);

    if (!['get', 'post'].include(this.method)) {
      // simulate other verbs over post
      params['_method'] = this.method;
      this.method = 'post';
    }

    this.parameters = params;

    if (params = Object.toQueryString(params)) {
      // when GET, append parameters to URL
      if (this.method == 'get')
        this.url += (this.url.include('?') ? '&' : '?') + params;
      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
        params += '&_=';
    }

    try {
      var response = new Ajax.Response(this);
      if (this.options.onCreate) this.options.onCreate(response);
      Ajax.Responders.dispatch('onCreate', this, response);

      this.transport.open(this.method.toUpperCase(), this.url,
        this.options.asynchronous);

      if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);

      this.transport.onreadystatechange = this.onStateChange.bind(this);
      this.setRequestHeaders();

      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
      this.transport.send(this.body);

      /* Force Firefox to handle ready state 4 for synchronous requests */
      if (!this.options.asynchronous && this.transport.overrideMimeType)
        this.onStateChange();

    }
    catch (e) {
      this.dispatchException(e);
    }
  },

  onStateChange: function() {
    var readyState = this.transport.readyState;
    if (readyState > 1 && !((readyState == 4) && this._complete))
      this.respondToReadyState(this.transport.readyState);
  },

  setRequestHeaders: function() {
    var headers = {
      'X-Requested-With': 'XMLHttpRequest',
      'X-Prototype-Version': Prototype.Version,
      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
    };

    if (this.method == 'post') {
      headers['Content-type'] = this.options.contentType +
        (this.options.encoding ? '; charset=' + this.options.encoding : '');

      /* Force "Connection: close" for older Mozilla browsers to work
       * around a bug where XMLHttpRequest sends an incorrect
       * Content-length header. See Mozilla Bugzilla #246651.
       */
      if (this.transport.overrideMimeType &&
          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
            headers['Connection'] = 'close';
    }

    // user-defined headers
    if (typeof this.options.requestHeaders == 'object') {
      var extras = this.options.requestHeaders;

      if (Object.isFunction(extras.push))
        for (var i = 0, length = extras.length; i < length; i += 2)
          headers[extras[i]] = extras[i+1];
      else
        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
    }

    for (var name in headers)
      this.transport.setRequestHeader(name, headers[name]);
  },

  success: function() {
    var status = this.getStatus();
    return !status || (status >= 200 && status < 300);
  },

  getStatus: function() {
    try {
      return this.transport.status || 0;
    } catch (e) { return 0 }
  },

  respondToReadyState: function(readyState) {
    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);

    if (state == 'Complete') {
      try {
        this._complete = true;
        (this.options['on' + response.status]
         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
         || Prototype.emptyFunction)(response, response.headerJSON);
      } catch (e) {
        this.dispatchException(e);
      }

      var contentType = response.getHeader('Content-type');
      if (this.options.evalJS == 'force'
          || (this.options.evalJS && this.isSameOrigin() && contentType
          && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
        this.evalResponse();
    }

    try {
      (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
      Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
    } catch (e) {
      this.dispatchException(e);
    }

    if (state == 'Complete') {
      // avoid memory leak in MSIE: clean up
      this.transport.onreadystatechange = Prototype.emptyFunction;
    }
  },

  isSameOrigin: function() {
    var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
    return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
      protocol: location.protocol,
      domain: document.domain,
      port: location.port ? ':' + location.port : ''
    }));
  },

  getHeader: function(name) {
    try {
      return this.transport.getResponseHeader(name) || null;
    } catch (e) { return null }
  },

  evalResponse: function() {
    try {
      return eval((this.transport.responseText || '').unfilterJSON());
    } catch (e) {
      this.dispatchException(e);
    }
  },

  dispatchException: function(exception) {
    (this.options.onException || Prototype.emptyFunction)(this, exception);
    Ajax.Responders.dispatch('onException', this, exception);
  }
});

Ajax.Request.Events =
  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];

Ajax.Response = Class.create({
  initialize: function(request){
    this.request = request;
    var transport  = this.transport  = request.transport,
        readyState = this.readyState = transport.readyState;

    if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
      this.status       = this.getStatus();
      this.statusText   = this.getStatusText();
      this.responseText = String.interpret(transport.responseText);
      this.headerJSON   = this._getHeaderJSON();
    }

    if(readyState == 4) {
      var xml = transport.responseXML;
      this.responseXML  = Object.isUndefined(xml) ? null : xml;
      this.responseJSON = this._getResponseJSON();
    }
  },

  status:      0,
  statusText: '',

  getStatus: Ajax.Request.prototype.getStatus,

  getStatusText: function() {
    try {
      return this.transport.statusText || '';
    } catch (e) { return '' }
  },

  getHeader: Ajax.Request.prototype.getHeader,

  getAllHeaders: function() {
    try {
      return this.getAllResponseHeaders();
    } catch (e) { return null }
  },

  getResponseHeader: function(name) {
    return this.transport.getResponseHeader(name);
  },

  getAllResponseHeaders: function() {
    return this.transport.getAllResponseHeaders();
  },

  _getHeaderJSON: function() {
    var json = this.getHeader('X-JSON');
    if (!json) return null;
    json = decodeURIComponent(escape(json));
    try {
      return json.evalJSON(this.request.options.sanitizeJSON ||
        !this.request.isSameOrigin());
    } catch (e) {
      this.request.dispatchException(e);
    }
  },

  _getResponseJSON: function() {
    var options = this.request.options;
    if (!options.evalJSON || (options.evalJSON != 'force' &&
      !(this.getHeader('Content-type') || '').include('application/json')) ||
        this.responseText.blank())
          return null;
    try {
      return this.responseText.evalJSON(options.sanitizeJSON ||
        !this.request.isSameOrigin());
    } catch (e) {
      this.request.dispatchException(e);
    }
  }
});

Ajax.Updater = Class.create(Ajax.Request, {
  initialize: function($super, container, url, options) {
    this.container = {
      success: (container.success || container),
      failure: (container.failure || (container.success ? null : container))
    };

    options = Object.clone(options);
    var onComplete = options.onComplete;
    options.onComplete = (function(response, json) {
      this.updateContent(response.responseText);
      if (Object.isFunction(onComplete)) onComplete(response, json);
    }).bind(this);

    $super(url, options);
  },

  updateContent: function(responseText) {
    var receiver = this.container[this.success() ? 'success' : 'failure'],
        options = this.options;

    if (!options.evalScripts) responseText = responseText.stripScripts();

    if (receiver = $(receiver)) {
      if (options.insertion) {
        if (Object.isString(options.insertion)) {
          var insertion = { }; insertion[options.insertion] = responseText;
          receiver.insert(insertion);
        }
        else options.insertion(receiver, responseText);
      }
      else receiver.update(responseText);
    }
  }
});

Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
  initialize: function($super, container, url, options) {
    $super(options);
    this.onComplete = this.options.onComplete;

    this.frequency = (this.options.frequency || 2);
    this.decay = (this.options.decay || 1);

    this.updater = { };
    this.container = container;
    this.url = url;

    this.start();
  },

  start: function() {
    this.options.onComplete = this.updateComplete.bind(this);
    this.onTimerEvent();
  },

  stop: function() {
    this.updater.options.onComplete = undefined;
    clearTimeout(this.timer);
    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
  },

  updateComplete: function(response) {
    if (this.options.decay) {
      this.decay = (response.responseText == this.lastText ?
        this.decay * this.options.decay : 1);

      this.lastText = response.responseText;
    }
    this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
  },

  onTimerEvent: function() {
    this.updater = new Ajax.Updater(this.container, this.url, this.options);
  }
});
function $(element) {
  if (arguments.length > 1) {
    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
      elements.push($(arguments[i]));
    return elements;
  }
  if (Object.isString(element))
    element = document.getElementById(element);
  return Element.extend(element);
}

if (Prototype.BrowserFeatures.XPath) {
  document._getElementsByXPath = function(expression, parentElement) {
    var results = [];
    var query = document.evaluate(expression, $(parentElement) || document,
      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
    for (var i = 0, length = query.snapshotLength; i < length; i++)
      results.push(Element.extend(query.snapshotItem(i)));
    return results;
  };
}

/*--------------------------------------------------------------------------*/

if (!window.Node) var Node = { };

if (!Node.ELEMENT_NODE) {
  // DOM level 2 ECMAScript Language Binding
  Object.extend(Node, {
    ELEMENT_NODE: 1,
    ATTRIBUTE_NODE: 2,
    TEXT_NODE: 3,
    CDATA_SECTION_NODE: 4,
    ENTITY_REFERENCE_NODE: 5,
    ENTITY_NODE: 6,
    PROCESSING_INSTRUCTION_NODE: 7,
    COMMENT_NODE: 8,
    DOCUMENT_NODE: 9,
    DOCUMENT_TYPE_NODE: 10,
    DOCUMENT_FRAGMENT_NODE: 11,
    NOTATION_NODE: 12
  });
}

(function() {
  var element = this.Element;
  this.Element = function(tagName, attributes) {
    attributes = attributes || { };
    tagName = tagName.toLowerCase();
    var cache = Element.cache;
    if (Prototype.Browser.IE && attributes.name) {
      tagName = '<' + tagName + ' name="' + attributes.name + '">';
      delete attributes.name;
      return Element.writeAttribute(document.createElement(tagName), attributes);
    }
    if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
    return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
  };
  Object.extend(this.Element, element || { });
  if (element) this.Element.prototype = element.prototype;
}).call(window);

Element.cache = { };

Element.Methods = {
  visible: function(element) {
    return $(element).style.display != 'none';
  },

  toggle: function(element) {
    element = $(element);
    Element[Element.visible(element) ? 'hide' : 'show'](element);
    return element;
  },

  hide: function(element) {
    element = $(element);
    element.style.display = 'none';
    return element;
  },

  show: function(element) {
    element = $(element);
    element.style.display = '';
    return element;
  },

  remove: function(element) {
    element = $(element);
    element.parentNode.removeChild(element);
    return element;
  },

  update: function(element, content) {
    element = $(element);
    if (content && content.toElement) content = content.toElement();
    if (Object.isElement(content)) return element.update().insert(content);
    content = Object.toHTML(content);
    element.innerHTML = content.stripScripts();
    content.evalScripts.bind(content).defer();
    return element;
  },

  replace: function(element, content) {
    element = $(element);
    if (content && content.toElement) content = content.toElement();
    else if (!Object.isElement(content)) {
      content = Object.toHTML(content);
      var range = element.ownerDocument.createRange();
      range.selectNode(element);
      content.evalScripts.bind(content).defer();
      content = range.createContextualFragment(content.stripScripts());
    }
    element.parentNode.replaceChild(content, element);
    return element;
  },

  insert: function(element, insertions) {
    element = $(element);

    if (Object.isString(insertions) || Object.isNumber(insertions) ||
        Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
          insertions = {bottom:insertions};

    var content, insert, tagName, childNodes;

    for (var position in insertions) {
      content  = insertions[position];
      position = position.toLowerCase();
      insert = Element._insertionTranslations[position];

      if (content && content.toElement) content = content.toElement();
      if (Object.isElement(content)) {
        insert(element, content);
        continue;
      }

      content = Object.toHTML(content);

      tagName = ((position == 'before' || position == 'after')
        ? element.parentNode : element).tagName.toUpperCase();

      childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());

      if (position == 'top' || position == 'after') childNodes.reverse();
      childNodes.each(insert.curry(element));

      content.evalScripts.bind(content).defer();
    }

    return element;
  },

  wrap: function(element, wrapper, attributes) {
    element = $(element);
    if (Object.isElement(wrapper))
      $(wrapper).writeAttribute(attributes || { });
    else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
    else wrapper = new Element('div', wrapper);
    if (element.parentNode)
      element.parentNode.replaceChild(wrapper, element);
    wrapper.appendChild(element);
    return wrapper;
  },

  inspect: function(element) {
    element = $(element);
    var result = '<' + element.tagName.toLowerCase();
    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
      var property = pair.first(), attribute = pair.last();
      var value = (element[property] || '').toString();
      if (value) result += ' ' + attribute + '=' + value.inspect(true);
    });
    return result + '>';
  },

  recursivelyCollect: function(element, property) {
    element = $(element);
    var elements = [];
    while (element = element[property])
      if (element.nodeType == 1)
        elements.push(Element.extend(element));
    return elements;
  },

  ancestors: function(element) {
    return $(element).recursivelyCollect('parentNode');
  },

  descendants: function(element) {
    return $(element).select("*");
  },

  firstDescendant: function(element) {
    element = $(element).firstChild;
    while (element && element.nodeType != 1) element = element.nextSibling;
    return $(element);
  },

  immediateDescendants: function(element) {
    if (!(element = $(element).firstChild)) return [];
    while (element && element.nodeType != 1) element = element.nextSibling;
    if (element) return [element].concat($(element).nextSiblings());
    return [];
  },

  previousSiblings: function(element) {
    return $(element).recursivelyCollect('previousSibling');
  },

  nextSiblings: function(element) {
    return $(element).recursivelyCollect('nextSibling');
  },

  siblings: function(element) {
    element = $(element);
    return element.previousSiblings().reverse().concat(element.nextSiblings());
  },

  match: function(element, selector) {
    if (Object.isString(selector))
      selector = new Selector(selector);
    return selector.match($(element));
  },

  up: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return $(element.parentNode);
    var ancestors = element.ancestors();
    return Object.isNumber(expression) ? ancestors[expression] :
      Selector.findElement(ancestors, expression, index);
  },

  down: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return element.firstDescendant();
    return Object.isNumber(expression) ? element.descendants()[expression] :
      Element.select(element, expression)[index || 0];
  },

  previous: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
    var previousSiblings = element.previousSiblings();
    return Object.isNumber(expression) ? previousSiblings[expression] :
      Selector.findElement(previousSiblings, expression, index);
  },

  next: function(element, expression, index) {
    element = $(element);
    if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
    var nextSiblings = element.nextSiblings();
    return Object.isNumber(expression) ? nextSiblings[expression] :
      Selector.findElement(nextSiblings, expression, index);
  },

  select: function() {
    var args = $A(arguments), element = $(args.shift());
    return Selector.findChildElements(element, args);
  },

  adjacent: function() {
    var args = $A(arguments), element = $(args.shift());
    return Selector.findChildElements(element.parentNode, args).without(element);
  },

  identify: function(element) {
    element = $(element);
    var id = element.readAttribute('id'), self = arguments.callee;
    if (id) return id;
    do { id = 'anonymous_element_' + self.counter++ } while ($(id));
    element.writeAttribute('id', id);
    return id;
  },

  readAttribute: function(element, name) {
    element = $(element);
    if (Prototype.Browser.IE) {
      var t = Element._attributeTranslations.read;
      if (t.values[name]) return t.values[name](element, name);
      if (t.names[name]) name = t.names[name];
      if (name.include(':')) {
        return (!element.attributes || !element.attributes[name]) ? null :
         element.attributes[name].value;
      }
    }
    return element.getAttribute(name);
  },

  writeAttribute: function(element, name, value) {
    element = $(element);
    var attributes = { }, t = Element._attributeTranslations.write;

    if (typeof name == 'object') attributes = name;
    else attributes[name] = Object.isUndefined(value) ? true : value;

    for (var attr in attributes) {
      name = t.names[attr] || attr;
      value = attributes[attr];
      if (t.values[attr]) name = t.values[attr](element, value);
      if (value === false || value === null)
        element.removeAttribute(name);
      else if (value === true)
        element.setAttribute(name, name);
      else element.setAttribute(name, value);
    }
    return element;
  },

  getHeight: function(element) {
    return $(element).getDimensions().height;
  },

  getWidth: function(element) {
    return $(element).getDimensions().width;
  },

  classNames: function(element) {
    return new Element.ClassNames(element);
  },

  hasClassName: function(element, className) {
    if (!(element = $(element))) return;
    var elementClassName = element.className;
    return (elementClassName.length > 0 && (elementClassName == className ||
      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
  },

  addClassName: function(element, className) {
    if (!(element = $(element))) return;
    if (!element.hasClassName(className))
      element.className += (element.className ? ' ' : '') + className;
    return element;
  },

  removeClassName: function(element, className) {
    if (!(element = $(element))) return;
    element.className = element.className.replace(
      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
    return element;
  },

  toggleClassName: function(element, className) {
    if (!(element = $(element))) return;
    return element[element.hasClassName(className) ?
      'removeClassName' : 'addClassName'](className);
  },

  // removes whitespace-only text node children
  cleanWhitespace: function(element) {
    element = $(element);
    var node = element.firstChild;
    while (node) {
      var nextNode = node.nextSibling;
      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
        element.removeChild(node);
      node = nextNode;
    }
    return element;
  },

  empty: function(element) {
    return $(element).innerHTML.blank();
  },

  descendantOf: function(element, ancestor) {
    element = $(element), ancestor = $(ancestor);

    if (element.compareDocumentPosition)
      return (element.compareDocumentPosition(ancestor) & 8) === 8;

    if (ancestor.contains)
      return ancestor.contains(element) && ancestor !== element;

    while (element = element.parentNode)
      if (element == ancestor) return true;

    return false;
  },

  scrollTo: function(element) {
    element = $(element);
    var pos = element.cumulativeOffset();
    window.scrollTo(pos[0], pos[1]);
    return element;
  },

  getStyle: function(element, style) {
    element = $(element);
    style = style == 'float' ? 'cssFloat' : style.camelize();
    var value = element.style[style];
    if (!value || value == 'auto') {
      var css = document.defaultView.getComputedStyle(element, null);
      value = css ? css[style] : null;
    }
    if (style == 'opacity') return value ? parseFloat(value) : 1.0;
    return value == 'auto' ? null : value;
  },

  getOpacity: function(element) {
    return $(element).getStyle('opacity');
  },

  setStyle: function(element, styles) {
    element = $(element);
    var elementStyle = element.style, match;
    if (Object.isString(styles)) {
      element.style.cssText += ';' + styles;
      return styles.include('opacity') ?
        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
    }
    for (var property in styles)
      if (property == 'opacity') element.setOpacity(styles[property]);
      else
        elementStyle[(property == 'float' || property == 'cssFloat') ?
          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
            property] = styles[property];

    return element;
  },

  setOpacity: function(element, value) {
    element = $(element);
    element.style.opacity = (value == 1 || value === '') ? '' :
      (value < 0.00001) ? 0 : value;
    return element;
  },

  getDimensions: function(element) {
    element = $(element);
    var display = element.getStyle('display');
    if (display != 'none' && display != null) // Safari bug
      return {width: element.offsetWidth, height: element.offsetHeight};

    // All *Width and *Height properties give 0 on elements with display none,
    // so enable the element temporarily
    var els = element.style;
    var originalVisibility = els.visibility;
    var originalPosition = els.position;
    var originalDisplay = els.display;
    els.visibility = 'hidden';
    els.position = 'absolute';
    els.display = 'block';
    var originalWidth = element.clientWidth;
    var originalHeight = element.clientHeight;
    els.display = originalDisplay;
    els.position = originalPosition;
    els.visibility = originalVisibility;
    return {width: originalWidth, height: originalHeight};
  },

  makePositioned: function(element) {
    element = $(element);
    var pos = Element.getStyle(element, 'position');
    if (pos == 'static' || !pos) {
      element._madePositioned = true;
      element.style.position = 'relative';
      // Opera returns the offset relative to the positioning context, when an
      // element is position relative but top and left have not been defined
      if (Prototype.Browser.Opera) {
        element.style.top = 0;
        element.style.left = 0;
      }
    }
    return element;
  },

  undoPositioned: function(element) {
    element = $(element);
    if (element._madePositioned) {
      element._madePositioned = undefined;
      element.style.position =
        element.style.top =
        element.style.left =
        element.style.bottom =
        element.style.right = '';
    }
    return element;
  },

  makeClipping: function(element) {
    element = $(element);
    if (element._overflow) return element;
    element._overflow = Element.getStyle(element, 'overflow') || 'auto';
    if (element._overflow !== 'hidden')
      element.style.overflow = 'hidden';
    return element;
  },

  undoClipping: function(element) {
    element = $(element);
    if (!element._overflow) return element;
    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
    element._overflow = null;
    return element;
  },

  cumulativeOffset: function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  positionedOffset: function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      element = element.offsetParent;
      if (element) {
        if (element.tagName.toUpperCase() == 'BODY') break;
        var p = Element.getStyle(element, 'position');
        if (p !== 'static') break;
      }
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  absolutize: function(element) {
    element = $(element);
    if (element.getStyle('position') == 'absolute') return element;
    // Position.prepare(); // To be done manually by Scripty when it needs it.

    var offsets = element.positionedOffset();
    var top     = offsets[1];
    var left    = offsets[0];
    var width   = element.clientWidth;
    var height  = element.clientHeight;

    element._originalLeft   = left - parseFloat(element.style.left  || 0);
    element._originalTop    = top  - parseFloat(element.style.top || 0);
    element._originalWidth  = element.style.width;
    element._originalHeight = element.style.height;

    element.style.position = 'absolute';
    element.style.top    = top + 'px';
    element.style.left   = left + 'px';
    element.style.width  = width + 'px';
    element.style.height = height + 'px';
    return element;
  },

  relativize: function(element) {
    element = $(element);
    if (element.getStyle('position') == 'relative') return element;
    // Position.prepare(); // To be done manually by Scripty when it needs it.

    element.style.position = 'relative';
    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);

    element.style.top    = top + 'px';
    element.style.left   = left + 'px';
    element.style.height = element._originalHeight;
    element.style.width  = element._originalWidth;
    return element;
  },

  cumulativeScrollOffset: function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.scrollTop  || 0;
      valueL += element.scrollLeft || 0;
      element = element.parentNode;
    } while (element);
    return Element._returnOffset(valueL, valueT);
  },

  getOffsetParent: function(element) {
    if (element.offsetParent) return $(element.offsetParent);
    if (element == document.body) return $(element);
    if(element.tagName.toUpperCase()=='HTML') //for IE6,7
        return $(document.body);                //

    while ((element = element.parentNode) && element != document.body)
      if (Element.getStyle(element, 'position') != 'static')
        return $(element);

    return $(document.body);
  },

  viewportOffset: function(forElement) {
    var valueT = 0, valueL = 0;

    var element = forElement;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;

      // Safari fix
      if (element.offsetParent == document.body &&
        Element.getStyle(element, 'position') == 'absolute') break;

    } while (element = element.offsetParent);

    element = forElement;
    do {
      if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
        valueT -= element.scrollTop  || 0;
        valueL -= element.scrollLeft || 0;
      }
    } while (element = element.parentNode);

    return Element._returnOffset(valueL, valueT);
  },

  clonePosition: function(element, source) {
    var options = Object.extend({
      setLeft:    true,
      setTop:     true,
      setWidth:   true,
      setHeight:  true,
      offsetTop:  0,
      offsetLeft: 0
    }, arguments[2] || { });

    // find page position of source
    source = $(source);
    var p = source.viewportOffset();

    // find coordinate system to use
    element = $(element);
    var delta = [0, 0];
    var parent = null;
    // delta [0,0] will do fine with position: fixed elements,
    // position:absolute needs offsetParent deltas
    if (Element.getStyle(element, 'position') == 'absolute') {
      parent = element.getOffsetParent();
      delta = parent.viewportOffset();
    }

    // correct by body offsets (fixes Safari)
    if (parent == document.body) {
      delta[0] -= document.body.offsetLeft;
      delta[1] -= document.body.offsetTop;
    }

    // set position
    if (options.setLeft)   element.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
    if (options.setTop)    element.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
    if (options.setWidth)  element.style.width = source.offsetWidth + 'px';
    if (options.setHeight) element.style.height = source.offsetHeight + 'px';
    return element;
  }
};

Element.Methods.identify.counter = 1;

Object.extend(Element.Methods, {
  getElementsBySelector: Element.Methods.select,
  childElements: Element.Methods.immediateDescendants
});

Element._attributeTranslations = {
  write: {
    names: {
      className: 'class',
      htmlFor:   'for'
    },
    values: { }
  }
};

if (Prototype.Browser.Opera) {
  Element.Methods.getStyle = Element.Methods.getStyle.wrap(
    function(proceed, element, style) {
      switch (style) {
        case 'left': case 'top': case 'right': case 'bottom':
          if (proceed(element, 'position') === 'static') return null;
        case 'height': case 'width':
          // returns '0px' for hidden elements; we want it to return null
          if (!Element.visible(element)) return null;

          // returns the border-box dimensions rather than the content-box
          // dimensions, so we subtract padding and borders from the value
          var dim = parseInt(proceed(element, style), 10);

          if (dim !== element['offset' + style.capitalize()])
            return dim + 'px';

          var properties;
          if (style === 'height') {
            properties = ['border-top-width', 'padding-top',
             'padding-bottom', 'border-bottom-width'];
          }
          else {
            properties = ['border-left-width', 'padding-left',
             'padding-right', 'border-right-width'];
          }
          return properties.inject(dim, function(memo, property) {
            var val = proceed(element, property);
            return val === null ? memo : memo - parseInt(val, 10);
          }) + 'px';
        default: return proceed(element, style);
      }
    }
  );

  Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
    function(proceed, element, attribute) {
      if (attribute === 'title') return element.title;
      return proceed(element, attribute);
    }
  );
}

else if (Prototype.Browser.IE) {
  // IE doesn't report offsets correctly for static elements, so we change them
  // to "relative" to get the values, then change them back.
  Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
    function(proceed, element) {
      element = $(element);
      // IE throws an error if element is not in document
      try { element.offsetParent }
      catch(e) { return $(document.body) }
      var position = element.getStyle('position');
      if (position !== 'static') return proceed(element);
      element.setStyle({ position: 'relative' });
      var value = proceed(element);
      element.setStyle({ position: position });
      return value;
    }
  );

  $w('positionedOffset viewportOffset').each(function(method) {
    Element.Methods[method] = Element.Methods[method].wrap(
      function(proceed, element) {
        element = $(element);
        try { element.offsetParent }
        catch(e) { return Element._returnOffset(0,0) }
        var position = element.getStyle('position');
        if (position !== 'static') return proceed(element);
        // Trigger hasLayout on the offset parent so that IE6 reports
        // accurate offsetTop and offsetLeft values for position: fixed.
        var offsetParent = element.getOffsetParent();
        if (offsetParent && offsetParent.getStyle('position') === 'fixed')
          offsetParent.setStyle({ zoom: 1 });
        element.setStyle({ position: 'relative' });
        var value = proceed(element);
        element.setStyle({ position: position });
        return value;
      }
    );
  });

  Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
    function(proceed, element) {
      try { element.offsetParent }
      catch(e) { return Element._returnOffset(0,0) }
      return proceed(element);
    }
  );

  Element.Methods.getStyle = function(element, style) {
    element = $(element);
    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
    var value = element.style[style];
    if (!value && element.currentStyle) value = element.currentStyle[style];

    if (style == 'opacity') {
      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
        if (value[1]) return parseFloat(value[1]) / 100;
      return 1.0;
    }

    if (value == 'auto') {
      if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
        return element['offset' + style.capitalize()] + 'px';
      return null;
    }
    return value;
  };

  Element.Methods.setOpacity = function(element, value) {
    function stripAlpha(filter){
      return filter.replace(/alpha\([^\)]*\)/gi,'');
    }
    element = $(element);
    var currentStyle = element.currentStyle;
    if ((currentStyle && !currentStyle.hasLayout) ||
      (!currentStyle && element.style.zoom == 'normal'))
        element.style.zoom = 1;

    var filter = element.getStyle('filter'), style = element.style;
    if (value == 1 || value === '') {
      (filter = stripAlpha(filter)) ?
        style.filter = filter : style.removeAttribute('filter');
      return element;
    } else if (value < 0.00001) value = 0;
    style.filter = stripAlpha(filter) +
      'alpha(opacity=' + (value * 100) + ')';
    return element;
  };

  Element._attributeTranslations = {
    read: {
      names: {
        'class': 'className',
        'for':   'htmlFor'
      },
      values: {
        _getAttr: function(element, attribute) {
          return element.getAttribute(attribute, 2);
        },
        _getAttrNode: function(element, attribute) {
          var node = element.getAttributeNode(attribute);
          return node ? node.value : "";
        },
        _getEv: function(element, attribute) {
          attribute = element.getAttribute(attribute);
          return attribute ? attribute.toString().slice(23, -2) : null;
        },
        _flag: function(element, attribute) {
          return $(element).hasAttribute(attribute) ? attribute : null;
        },
        style: function(element) {
          return element.style.cssText.toLowerCase();
        },
        title: function(element) {
          return element.title;
        }
      }
    }
  };

  Element._attributeTranslations.write = {
    names: Object.extend({
      cellpadding: 'cellPadding',
      cellspacing: 'cellSpacing'
    }, Element._attributeTranslations.read.names),
    values: {
      checked: function(element, value) {
        element.checked = !!value;
      },

      style: function(element, value) {
        element.style.cssText = value ? value : '';
      }
    }
  };

  Element._attributeTranslations.has = {};

  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
      'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
    Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
    Element._attributeTranslations.has[attr.toLowerCase()] = attr;
  });

  (function(v) {
    Object.extend(v, {
      href:        v._getAttr,
      src:         v._getAttr,
      type:        v._getAttr,
      action:      v._getAttrNode,
      disabled:    v._flag,
      checked:     v._flag,
      readonly:    v._flag,
      multiple:    v._flag,
      onload:      v._getEv,
      onunload:    v._getEv,
      onclick:     v._getEv,
      ondblclick:  v._getEv,
      onmousedown: v._getEv,
      onmouseup:   v._getEv,
      onmouseover: v._getEv,
      onmousemove: v._getEv,
      onmouseout:  v._getEv,
      onfocus:     v._getEv,
      onblur:      v._getEv,
      onkeypress:  v._getEv,
      onkeydown:   v._getEv,
      onkeyup:     v._getEv,
      onsubmit:    v._getEv,
      onreset:     v._getEv,
      onselect:    v._getEv,
      onchange:    v._getEv
    });
  })(Element._attributeTranslations.read.values);
}

else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
  Element.Methods.setOpacity = function(element, value) {
    element = $(element);
    element.style.opacity = (value == 1) ? 0.999999 :
      (value === '') ? '' : (value < 0.00001) ? 0 : value;
    return element;
  };
}

else if (Prototype.Browser.WebKit) {
  Element.Methods.setOpacity = function(element, value) {
    element = $(element);
    element.style.opacity = (value == 1 || value === '') ? '' :
      (value < 0.00001) ? 0 : value;

    if (value == 1)
      if(element.tagName.toUpperCase() == 'IMG' && element.width) {
        element.width++; element.width--;
      } else try {
        var n = document.createTextNode(' ');
        element.appendChild(n);
        element.removeChild(n);
      } catch (e) { }

    return element;
  };

  // Safari returns margins on body which is incorrect if the child is absolutely
  // positioned.  For performance reasons, redefine Element#cumulativeOffset for
  // KHTML/WebKit only.
  Element.Methods.cumulativeOffset = function(element) {
    var valueT = 0, valueL = 0;
    do {
      valueT += element.offsetTop  || 0;
      valueL += element.offsetLeft || 0;
      if (element.offsetParent == document.body)
        if (Element.getStyle(element, 'position') == 'absolute') break;

      element = element.offsetParent;
    } while (element);

    return Element._returnOffset(valueL, valueT);
  };
}

if (Prototype.Browser.IE || Prototype.Browser.Opera) {
  // IE and Opera are missing .innerHTML support for TABLE-related and SELECT elements
  Element.Methods.update = function(element, content) {
    element = $(element);

    if (content && content.toElement) content = content.toElement();
    if (Object.isElement(content)) return element.update().insert(content);

    content = Object.toHTML(content);
    var tagName = element.tagName.toUpperCase();

    if (tagName in Element._insertionTranslations.tags) {
      $A(element.childNodes).each(function(node) { element.removeChild(node) });
      Element._getContentFromAnonymousElement(tagName, content.stripScripts())
        .each(function(node) { element.appendChild(node) });
    }
    else element.innerHTML = content.stripScripts();

    content.evalScripts.bind(content).defer();
    return element;
  };
}

if ('outerHTML' in document.createElement('div')) {
  Element.Methods.replace = function(element, content) {
    element = $(element);

    if (content && content.toElement) content = content.toElement();
    if (Object.isElement(content)) {
      element.parentNode.replaceChild(content, element);
      return element;
    }

    content = Object.toHTML(content);
    var parent = element.parentNode, tagName = parent.tagName.toUpperCase();

    if (Element._insertionTranslations.tags[tagName]) {
      var nextSibling = element.next();
      var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
      parent.removeChild(element);
      if (nextSibling)
        fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
      else
        fragments.each(function(node) { parent.appendChild(node) });
    }
    else element.outerHTML = content.stripScripts();

    content.evalScripts.bind(content).defer();
    return element;
  };
}

Element._returnOffset = function(l, t) {
  var result = [l, t];
  result.left = l;
  result.top = t;
  return result;
};

Element._getContentFromAnonymousElement = function(tagName, html) {
  var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
  if (t) {
    div.innerHTML = t[0] + html + t[1];
    t[2].times(function() { div = div.firstChild });
  } else div.innerHTML = html;
  return $A(div.childNodes);
};

Element._insertionTranslations = {
  before: function(element, node) {
    element.parentNode.insertBefore(node, element);
  },
  top: function(element, node) {
    element.insertBefore(node, element.firstChild);
  },
  bottom: function(element, node) {
    element.appendChild(node);
  },
  after: function(element, node) {
    element.parentNode.insertBefore(node, element.nextSibling);
  },
  tags: {
    TABLE:  ['<table>',                '</table>',                   1],
    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
    SELECT: ['<select>',               '</select>',                  1]
  }
};

(function() {
  Object.extend(this.tags, {
    THEAD: this.tags.TBODY,
    TFOOT: this.tags.TBODY,
    TH:    this.tags.TD
  });
}).call(Element._insertionTranslations);

Element.Methods.Simulated = {
  hasAttribute: function(element, attribute) {
    attribute = Element._attributeTranslations.has[attribute] || attribute;
    var node = $(element).getAttributeNode(attribute);
    return !!(node && node.specified);
  }
};

Element.Methods.ByTag = { };

Object.extend(Element, Element.Methods);

if (!Prototype.BrowserFeatures.ElementExtensions &&
    document.createElement('div')['__proto__']) {
  window.HTMLElement = { };
  window.HTMLElement.prototype = document.createElement('div')['__proto__'];
  Prototype.BrowserFeatures.ElementExtensions = true;
}

Element.extend = (function() {
  if (Prototype.BrowserFeatures.SpecificElementExtensions)
    return Prototype.K;

  var Methods = { }, ByTag = Element.Methods.ByTag;

  var extend = Object.extend(function(element) {
    if (!element || element._extendedByPrototype ||
        element.nodeType != 1 || element == window) return element;

    var methods = Object.clone(Methods),
      tagName = element.tagName.toUpperCase(), property, value;

    // extend methods for specific tags
    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);

    for (property in methods) {
      value = methods[property];
      if (Object.isFunction(value) && !(property in element))
        element[property] = value.methodize();
    }

    element._extendedByPrototype = Prototype.emptyFunction;
    return element;

  }, {
    refresh: function() {
      // extend methods for all tags (Safari doesn't need this)
      if (!Prototype.BrowserFeatures.ElementExtensions) {
        Object.extend(Methods, Element.Methods);
        Object.extend(Methods, Element.Methods.Simulated);
      }
    }
  });

  extend.refresh();
  return extend;
})();

Element.hasAttribute = function(element, attribute) {
  if (element.hasAttribute) return element.hasAttribute(attribute);
  return Element.Methods.Simulated.hasAttribute(element, attribute);
};

Element.addMethods = function(methods) {
  var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;

  if (!methods) {
    Object.extend(Form, Form.Methods);
    Object.extend(Form.Element, Form.Element.Methods);
    Object.extend(Element.Methods.ByTag, {
      "FORM":     Object.clone(Form.Methods),
      "INPUT":    Object.clone(Form.Element.Methods),
      "SELECT":   Object.clone(Form.Element.Methods),
      "TEXTAREA": Object.clone(Form.Element.Methods)
    });
  }

  if (arguments.length == 2) {
    var tagName = methods;
    methods = arguments[1];
  }

  if (!tagName) Object.extend(Element.Methods, methods || { });
  else {
    if (Object.isArray(tagName)) tagName.each(extend);
    else extend(tagName);
  }

  function extend(tagName) {
    tagName = tagName.toUpperCase();
    if (!Element.Methods.ByTag[tagName])
      Element.Methods.ByTag[tagName] = { };
    Object.extend(Element.Methods.ByTag[tagName], methods);
  }

  function copy(methods, destination, onlyIfAbsent) {
    onlyIfAbsent = onlyIfAbsent || false;
    for (var property in methods) {
      var value = methods[property];
      if (!Object.isFunction(value)) continue;
      if (!onlyIfAbsent || !(property in destination))
        destination[property] = value.methodize();
    }
  }

  function findDOMClass(tagName) {
    var klass;
    var trans = {
      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
      "FrameSet", "IFRAME": "IFrame"
    };
    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
    if (window[klass]) return window[klass];
    klass = 'HTML' + tagName + 'Element';
    if (window[klass]) return window[klass];
    klass = 'HTML' + tagName.capitalize() + 'Element';
    if (window[klass]) return window[klass];

    window[klass] = { };
    window[klass].prototype = document.createElement(tagName)['__proto__'];
    return window[klass];
  }

  if (F.ElementExtensions) {
    copy(Element.Methods, HTMLElement.prototype);
    copy(Element.Methods.Simulated, HTMLElement.prototype, true);
  }

  if (F.SpecificElementExtensions) {
    for (var tag in Element.Methods.ByTag) {
      var klass = findDOMClass(tag);
      if (Object.isUndefined(klass)) continue;
      copy(T[tag], klass.prototype);
    }
  }

  Object.extend(Element, Element.Methods);
  delete Element.ByTag;

  if (Element.extend.refresh) Element.extend.refresh();
  Element.cache = { };
};

document.viewport = {
  getDimensions: function() {
    var dimensions = { }, B = Prototype.Browser;
    $w('width height').each(function(d) {
      var D = d.capitalize();
      if (B.WebKit && !document.evaluate) {
        // Safari <3.0 needs self.innerWidth/Height
        dimensions[d] = self['inner' + D];
      } else if (B.Opera && parseFloat(window.opera.version()) < 9.5) {
        // Opera <9.5 needs document.body.clientWidth/Height
        dimensions[d] = document.body['client' + D]
      } else {
        dimensions[d] = document.documentElement['client' + D];
      }
    });
    return dimensions;
  },

  getWidth: function() {
    return this.getDimensions().width;
  },

  getHeight: function() {
    return this.getDimensions().height;
  },

  getScrollOffsets: function() {
    return Element._returnOffset(
      window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
      window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop);
  }
};
/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
 * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
 * license.  Please see http://www.yui-ext.com/ for more information. */

var Selector = Class.create({
  initialize: function(expression) {
    this.expression = expression.strip();

    if (this.shouldUseSelectorsAPI()) {
      this.mode = 'selectorsAPI';
    } else if (this.shouldUseXPath()) {
      this.mode = 'xpath';
      this.compileXPathMatcher();
    } else {
      this.mode = "normal";
      this.compileMatcher();
    }

  },

  shouldUseXPath: function() {
    if (!Prototype.BrowserFeatures.XPath) return false;

    var e = this.expression;

    // Safari 3 chokes on :*-of-type and :empty
    if (Prototype.Browser.WebKit &&
     (e.include("-of-type") || e.include(":empty")))
      return false;

    // XPath can't do namespaced attributes, nor can it read
    // the "checked" property from DOM nodes
    if ((/(\[[\w-]*?:|:checked)/).test(e))
      return false;

    return true;
  },

  shouldUseSelectorsAPI: function() {
    if (!Prototype.BrowserFeatures.SelectorsAPI) return false;

    if (!Selector._div) Selector._div = new Element('div');

    // Make sure the browser treats the selector as valid. Test on an
    // isolated element to minimize cost of this check.
    try {
      Selector._div.querySelector(this.expression);
    } catch(e) {
      return false;
    }

    return true;
  },

  compileMatcher: function() {
    var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
        c = Selector.criteria, le, p, m;

    if (Selector._cache[e]) {
      this.matcher = Selector._cache[e];
      return;
    }

    this.matcher = ["this.matcher = function(root) {",
                    "var r = root, h = Selector.handlers, c = false, n;"];

    while (e && le != e && (/\S/).test(e)) {
      le = e;
      for (var i in ps) {
        p = ps[i];
        if (m = e.match(p)) {
          this.matcher.push(Object.isFunction(c[i]) ? c[i](m) :
            new Template(c[i]).evaluate(m));
          e = e.replace(m[0], '');
          break;
        }
      }
    }

    this.matcher.push("return h.unique(n);\n}");
    eval(this.matcher.join('\n'));
    Selector._cache[this.expression] = this.matcher;
  },

  compileXPathMatcher: function() {
    var e = this.expression, ps = Selector.patterns,
        x = Selector.xpath, le, m;

    if (Selector._cache[e]) {
      this.xpath = Selector._cache[e]; return;
    }

    this.matcher = ['.//*'];
    while (e && le != e && (/\S/).test(e)) {
      le = e;
      for (var i in ps) {
        if (m = e.match(ps[i])) {
          this.matcher.push(Object.isFunction(x[i]) ? x[i](m) :
            new Template(x[i]).evaluate(m));
          e = e.replace(m[0], '');
          break;
        }
      }
    }

    this.xpath = this.matcher.join('');
    Selector._cache[this.expression] = this.xpath;
  },

  findElements: function(root) {
    root = root || document;
    var e = this.expression, results;

    switch (this.mode) {
      case 'selectorsAPI':
        // querySelectorAll queries document-wide, then filters to descendants
        // of the context element. That's not what we want.
        // Add an explicit context to the selector if necessary.
        if (root !== document) {
          var oldId = root.id, id = $(root).identify();
          e = "#" + id + " " + e;
        }

        results = $A(root.querySelectorAll(e)).map(Element.extend);
        root.id = oldId;

        return results;
      case 'xpath':
        return document._getElementsByXPath(this.xpath, root);
      default:
       return this.matcher(root);
    }
  },

  match: function(element) {
    this.tokens = [];

    var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
    var le, p, m;

    while (e && le !== e && (/\S/).test(e)) {
      le = e;
      for (var i in ps) {
        p = ps[i];
        if (m = e.match(p)) {
          // use the Selector.assertions methods unless the selector
          // is too complex.
          if (as[i]) {
            this.tokens.push([i, Object.clone(m)]);
            e = e.replace(m[0], '');
          } else {
            // reluctantly do a document-wide search
            // and look for a match in the array
            return this.findElements(document).include(element);
          }
        }
      }
    }

    var match = true, name, matches;
    for (var i = 0, token; token = this.tokens[i]; i++) {
      name = token[0], matches = token[1];
      if (!Selector.assertions[name](element, matches)) {
        match = false; break;
      }
    }

    return match;
  },

  toString: function() {
    return this.expression;
  },

  inspect: function() {
    return "#<Selector:" + this.expression.inspect() + ">";
  }
});

Object.extend(Selector, {
  _cache: { },

  xpath: {
    descendant:   "//*",
    child:        "/*",
    adjacent:     "/following-sibling::*[1]",
    laterSibling: '/following-sibling::*',
    tagName:      function(m) {
      if (m[1] == '*') return '';
      return "[local-name()='" + m[1].toLowerCase() +
             "' or local-name()='" + m[1].toUpperCase() + "']";
    },
    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",
    id:           "[@id='#{1}']",
    attrPresence: function(m) {
      m[1] = m[1].toLowerCase();
      return new Template("[@#{1}]").evaluate(m);
    },
    attr: function(m) {
      m[1] = m[1].toLowerCase();
      m[3] = m[5] || m[6];
      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
    },
    pseudo: function(m) {
      var h = Selector.xpath.pseudos[m[1]];
      if (!h) return '';
      if (Object.isFunction(h)) return h(m);
      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
    },
    operators: {
      '=':  "[@#{1}='#{3}']",
      '!=': "[@#{1}!='#{3}']",
      '^=': "[starts-with(@#{1}, '#{3}')]",
      '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
      '*=': "[contains(@#{1}, '#{3}')]",
      '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
      '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
    },
    pseudos: {
      'first-child': '[not(preceding-sibling::*)]',
      'last-child':  '[not(following-sibling::*)]',
      'only-child':  '[not(preceding-sibling::* or following-sibling::*)]',
      'empty':       "[count(*) = 0 and (count(text()) = 0)]",
      'checked':     "[@checked]",
      'disabled':    "[(@disabled) and (@type!='hidden')]",
      'enabled':     "[not(@disabled) and (@type!='hidden')]",
      'not': function(m) {
        var e = m[6], p = Selector.patterns,
            x = Selector.xpath, le, v;

        var exclusion = [];
        while (e && le != e && (/\S/).test(e)) {
          le = e;
          for (var i in p) {
            if (m = e.match(p[i])) {
              v = Object.isFunction(x[i]) ? x[i](m) : new Template(x[i]).evaluate(m);
              exclusion.push("(" + v.substring(1, v.length - 1) + ")");
              e = e.replace(m[0], '');
              break;
            }
          }
        }
        return "[not(" + exclusion.join(" and ") + ")]";
      },
      'nth-child':      function(m) {
        return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
      },
      'nth-last-child': function(m) {
        return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
      },
      'nth-of-type':    function(m) {
        return Selector.xpath.pseudos.nth("position() ", m);
      },
      'nth-last-of-type': function(m) {
        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
      },
      'first-of-type':  function(m) {
        m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
      },
      'last-of-type':   function(m) {
        m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
      },
      'only-of-type':   function(m) {
        var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
      },
      nth: function(fragment, m) {
        var mm, formula = m[6], predicate;
        if (formula == 'even') formula = '2n+0';
        if (formula == 'odd')  formula = '2n+1';
        if (mm = formula.match(/^(\d+)$/)) // digit only
          return '[' + fragment + "= " + mm[1] + ']';
        if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
          if (mm[1] == "-") mm[1] = -1;
          var a = mm[1] ? Number(mm[1]) : 1;
          var b = mm[2] ? Number(mm[2]) : 0;
          predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
          "((#{fragment} - #{b}) div #{a} >= 0)]";
          return new Template(predicate).evaluate({
            fragment: fragment, a: a, b: b });
        }
      }
    }
  },

  criteria: {
    tagName:      'n = h.tagName(n, r, "#{1}", c);      c = false;',
    className:    'n = h.className(n, r, "#{1}", c);    c = false;',
    id:           'n = h.id(n, r, "#{1}", c);           c = false;',
    attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
    attr: function(m) {
      m[3] = (m[5] || m[6]);
      return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
    },
    pseudo: function(m) {
      if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
      return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
    },
    descendant:   'c = "descendant";',
    child:        'c = "child";',
    adjacent:     'c = "adjacent";',
    laterSibling: 'c = "laterSibling";'
  },

  patterns: {
    // combinators must be listed first
    // (and descendant needs to be last combinator)
    laterSibling: /^\s*~\s*/,
    child:        /^\s*>\s*/,
    adjacent:     /^\s*\+\s*/,
    descendant:   /^\s/,

    // selectors follow
    tagName:      /^\s*(\*|[\w\-]+)(\b|$)?/,
    id:           /^#([\w\-\*]+)(\b|$)/,
    className:    /^\.([\w\-\*]+)(\b|$)/,
    pseudo:
/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,
    attrPresence: /^\[((?:[\w]+:)?[\w]+)\]/,
    attr:         /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/
  },

  // for Selector.match and Element#match
  assertions: {
    tagName: function(element, matches) {
      return matches[1].toUpperCase() == element.tagName.toUpperCase();
    },

    className: function(element, matches) {
      return Element.hasClassName(element, matches[1]);
    },

    id: function(element, matches) {
      return element.id === matches[1];
    },

    attrPresence: function(element, matches) {
      return Element.hasAttribute(element, matches[1]);
    },

    attr: function(element, matches) {
      var nodeValue = Element.readAttribute(element, matches[1]);
      return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
    }
  },

  handlers: {
    // UTILITY FUNCTIONS
    // joins two collections
    concat: function(a, b) {
      for (var i = 0, node; node = b[i]; i++)
        a.push(node);
      return a;
    },

    // marks an array of nodes for counting
    mark: function(nodes) {
      var _true = Prototype.emptyFunction;
      for (var i = 0, node; node = nodes[i]; i++)
        node._countedByPrototype = _true;
      return nodes;
    },

    unmark: function(nodes) {
      for (var i = 0, node; node = nodes[i]; i++)
        node._countedByPrototype = undefined;
      return nodes;
    },

    // mark each child node with its position (for nth calls)
    // "ofType" flag indicates whether we're indexing for nth-of-type
    // rather than nth-child
    index: function(parentNode, reverse, ofType) {
      parentNode._countedByPrototype = Prototype.emptyFunction;
      if (reverse) {
        for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
          var node = nodes[i];
          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
        }
      } else {
        for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
      }
    },

    // filters out duplicates and extends all nodes
    unique: function(nodes) {
      if (nodes.length == 0) return nodes;
      var results = [], n;
      for (var i = 0, l = nodes.length; i < l; i++)
        if (!(n = nodes[i])._countedByPrototype) {
          n._countedByPrototype = Prototype.emptyFunction;
          results.push(Element.extend(n));
        }
      return Selector.handlers.unmark(results);
    },

    // COMBINATOR FUNCTIONS
    descendant: function(nodes) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        h.concat(results, node.getElementsByTagName('*'));
      return results;
    },

    child: function(nodes) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        for (var j = 0, child; child = node.childNodes[j]; j++)
          if (child.nodeType == 1 && child.tagName != '!') results.push(child);
      }
      return results;
    },

    adjacent: function(nodes) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        var next = this.nextElementSibling(node);
        if (next) results.push(next);
      }
      return results;
    },

    laterSibling: function(nodes) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        h.concat(results, Element.nextSiblings(node));
      return results;
    },

    nextElementSibling: function(node) {
      while (node = node.nextSibling)
        if (node.nodeType == 1) return node;
      return null;
    },

    previousElementSibling: function(node) {
      while (node = node.previousSibling)
        if (node.nodeType == 1) return node;
      return null;
    },

    // TOKEN FUNCTIONS
    tagName: function(nodes, root, tagName, combinator) {
      var uTagName = tagName.toUpperCase();
      var results = [], h = Selector.handlers;
      if (nodes) {
        if (combinator) {
          // fastlane for ordinary descendant combinators
          if (combinator == "descendant") {
            for (var i = 0, node; node = nodes[i]; i++)
              h.concat(results, node.getElementsByTagName(tagName));
            return results;
          } else nodes = this[combinator](nodes);
          if (tagName == "*") return nodes;
        }
        for (var i = 0, node; node = nodes[i]; i++)
          if (node.tagName.toUpperCase() === uTagName) results.push(node);
        return results;
      } else return root.getElementsByTagName(tagName);
    },

    id: function(nodes, root, id, combinator) {
      var targetNode = $(id), h = Selector.handlers;
      if (!targetNode) return [];
      if (!nodes && root == document) return [targetNode];
      if (nodes) {
        if (combinator) {
          if (combinator == 'child') {
            for (var i = 0, node; node = nodes[i]; i++)
              if (targetNode.parentNode == node) return [targetNode];
          } else if (combinator == 'descendant') {
            for (var i = 0, node; node = nodes[i]; i++)
              if (Element.descendantOf(targetNode, node)) return [targetNode];
          } else if (combinator == 'adjacent') {
            for (var i = 0, node; node = nodes[i]; i++)
              if (Selector.handlers.previousElementSibling(targetNode) == node)
                return [targetNode];
          } else nodes = h[combinator](nodes);
        }
        for (var i = 0, node; node = nodes[i]; i++)
          if (node == targetNode) return [targetNode];
        return [];
      }
      return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
    },

    className: function(nodes, root, className, combinator) {
      if (nodes && combinator) nodes = this[combinator](nodes);
      return Selector.handlers.byClassName(nodes, root, className);
    },

    byClassName: function(nodes, root, className) {
      if (!nodes) nodes = Selector.handlers.descendant([root]);
      var needle = ' ' + className + ' ';
      for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
        nodeClassName = node.className;
        if (nodeClassName.length == 0) continue;
        if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
          results.push(node);
      }
      return results;
    },

    attrPresence: function(nodes, root, attr, combinator) {
      if (!nodes) nodes = root.getElementsByTagName("*");
      if (nodes && combinator) nodes = this[combinator](nodes);
      var results = [];
      for (var i = 0, node; node = nodes[i]; i++)
        if (Element.hasAttribute(node, attr)) results.push(node);
      return results;
    },

    attr: function(nodes, root, attr, value, operator, combinator) {
      if (!nodes) nodes = root.getElementsByTagName("*");
      if (nodes && combinator) nodes = this[combinator](nodes);
      var handler = Selector.operators[operator], results = [];
      for (var i = 0, node; node = nodes[i]; i++) {
        var nodeValue = Element.readAttribute(node, attr);
        if (nodeValue === null) continue;
        if (handler(nodeValue, value)) results.push(node);
      }
      return results;
    },

    pseudo: function(nodes, name, value, root, combinator) {
      if (nodes && combinator) nodes = this[combinator](nodes);
      if (!nodes) nodes = root.getElementsByTagName("*");
      return Selector.pseudos[name](nodes, value, root);
    }
  },

  pseudos: {
    'first-child': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        if (Selector.handlers.previousElementSibling(node)) continue;
          results.push(node);
      }
      return results;
    },
    'last-child': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        if (Selector.handlers.nextElementSibling(node)) continue;
          results.push(node);
      }
      return results;
    },
    'only-child': function(nodes, value, root) {
      var h = Selector.handlers;
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
          results.push(node);
      return results;
    },
    'nth-child':        function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root);
    },
    'nth-last-child':   function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, true);
    },
    'nth-of-type':      function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, false, true);
    },
    'nth-last-of-type': function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, formula, root, true, true);
    },
    'first-of-type':    function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, "1", root, false, true);
    },
    'last-of-type':     function(nodes, formula, root) {
      return Selector.pseudos.nth(nodes, "1", root, true, true);
    },
    'only-of-type':     function(nodes, formula, root) {
      var p = Selector.pseudos;
      return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
    },

    // handles the an+b logic
    getIndices: function(a, b, total) {
      if (a == 0) return b > 0 ? [b] : [];
      return $R(1, total).inject([], function(memo, i) {
        if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
        return memo;
      });
    },

    // handles nth(-last)-child, nth(-last)-of-type, and (first|last)-of-type
    nth: function(nodes, formula, root, reverse, ofType) {
      if (nodes.length == 0) return [];
      if (formula == 'even') formula = '2n+0';
      if (formula == 'odd')  formula = '2n+1';
      var h = Selector.handlers, results = [], indexed = [], m;
      h.mark(nodes);
      for (var i = 0, node; node = nodes[i]; i++) {
        if (!node.parentNode._countedByPrototype) {
          h.index(node.parentNode, reverse, ofType);
          indexed.push(node.parentNode);
        }
      }
      if (formula.match(/^\d+$/)) { // just a number
        formula = Number(formula);
        for (var i = 0, node; node = nodes[i]; i++)
          if (node.nodeIndex == formula) results.push(node);
      } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
        if (m[1] == "-") m[1] = -1;
        var a = m[1] ? Number(m[1]) : 1;
        var b = m[2] ? Number(m[2]) : 0;
        var indices = Selector.pseudos.getIndices(a, b, nodes.length);
        for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
          for (var j = 0; j < l; j++)
            if (node.nodeIndex == indices[j]) results.push(node);
        }
      }
      h.unmark(nodes);
      h.unmark(indexed);
      return results;
    },

    'empty': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++) {
        // IE treats comments as element nodes
        if (node.tagName == '!' || node.firstChild) continue;
        results.push(node);
      }
      return results;
    },

    'not': function(nodes, selector, root) {
      var h = Selector.handlers, selectorType, m;
      var exclusions = new Selector(selector).findElements(root);
      h.mark(exclusions);
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (!node._countedByPrototype) results.push(node);
      h.unmark(exclusions);
      return results;
    },

    'enabled': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (!node.disabled && (!node.type || node.type !== 'hidden'))
          results.push(node);
      return results;
    },

    'disabled': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (node.disabled) results.push(node);
      return results;
    },

    'checked': function(nodes, value, root) {
      for (var i = 0, results = [], node; node = nodes[i]; i++)
        if (node.checked) results.push(node);
      return results;
    }
  },

  operators: {
    '=':  function(nv, v) { return nv == v; },
    '!=': function(nv, v) { return nv != v; },
    '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
    '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
    '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
    '$=': function(nv, v) { return nv.endsWith(v); },
    '*=': function(nv, v) { return nv.include(v); },
    '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
    '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
     '-').include('-' + (v || "").toUpperCase() + '-'); }
  },

  split: function(expression) {
    var expressions = [];
    expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
      expressions.push(m[1].strip());
    });
    return expressions;
  },

  matchElements: function(elements, expression) {
    var matches = $$(expression), h = Selector.handlers;
    h.mark(matches);
    for (var i = 0, results = [], element; element = elements[i]; i++)
      if (element._countedByPrototype) results.push(element);
    h.unmark(matches);
    return results;
  },

  findElement: function(elements, expression, index) {
    if (Object.isNumber(expression)) {
      index = expression; expression = false;
    }
    return Selector.matchElements(elements, expression || '*')[index || 0];
  },

  findChildElements: function(element, expressions) {
    expressions = Selector.split(expressions.join(','));
    var results = [], h = Selector.handlers;
    for (var i = 0, l = expressions.length, selector; i < l; i++) {
      selector = new Selector(expressions[i].strip());
      h.concat(results, selector.findElements(element));
    }
    return (l > 1) ? h.unique(results) : results;
  }
});

if (Prototype.Browser.IE) {
  Object.extend(Selector.handlers, {
    // IE returns comment nodes on getElementsByTagName("*").
    // Filter them out.
    concat: function(a, b) {
      for (var i = 0, node; node = b[i]; i++)
        if (node.tagName !== "!") a.push(node);
      return a;
    },

    // IE improperly serializes _countedByPrototype in (inner|outer)HTML.
    unmark: function(nodes) {
      for (var i = 0, node; node = nodes[i]; i++)
        node.removeAttribute('_countedByPrototype');
      return nodes;
    }
  });
}

function $$() {
  return Selector.findChildElements(document, $A(arguments));
}
var Form = {
  reset: function(form) {
    $(form).reset();
    return form;
  },

  serializeElements: function(elements, options) {
    if (typeof options != 'object') options = { hash: !!options };
    else if (Object.isUndefined(options.hash)) options.hash = true;
    var key, value, submitted = false, submit = options.submit;

    var data = elements.inject({ }, function(result, element) {
      if (!element.disabled && element.name) {
        key = element.name; value = $(element).getValue();
        if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
            submit !== false && (!submit || key == submit) && (submitted = true)))) {
          if (key in result) {
            // a key is already present; construct an array of values
            if (!Object.isArray(result[key])) result[key] = [result[key]];
            result[key].push(value);
          }
          else result[key] = value;
        }
      }
      return result;
    });

    return options.hash ? data : Object.toQueryString(data);
  }
};

Form.Methods = {
  serialize: function(form, options) {
    return Form.serializeElements(Form.getElements(form), options);
  },

  getElements: function(form) {
    return $A($(form).getElementsByTagName('*')).inject([],
      function(elements, child) {
        if (Form.Element.Serializers[child.tagName.toLowerCase()])
          elements.push(Element.extend(child));
        return elements;
      }
    );
  },

  getInputs: function(form, typeName, name) {
    form = $(form);
    var inputs = form.getElementsByTagName('input');

    if (!typeName && !name) return $A(inputs).map(Element.extend);

    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
      var input = inputs[i];
      if ((typeName && input.type != typeName) || (name && input.name != name))
        continue;
      matchingInputs.push(Element.extend(input));
    }

    return matchingInputs;
  },

  disable: function(form) {
    form = $(form);
    Form.getElements(form).invoke('disable');
    return form;
  },

  enable: function(form) {
    form = $(form);
    Form.getElements(form).invoke('enable');
    return form;
  },

  findFirstElement: function(form) {
    var elements = $(form).getElements().findAll(function(element) {
      return 'hidden' != element.type && !element.disabled;
    });
    var firstByIndex = elements.findAll(function(element) {
      return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
    }).sortBy(function(element) { return element.tabIndex }).first();

    return firstByIndex ? firstByIndex : elements.find(function(element) {
      return ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
    });
  },

  focusFirstElement: function(form) {
    form = $(form);
    form.findFirstElement().activate();
    return form;
  },

  request: function(form, options) {
    form = $(form), options = Object.clone(options || { });

    var params = options.parameters, action = form.readAttribute('action') || '';
    if (action.blank()) action = window.location.href;
    options.parameters = form.serialize(true);

    if (params) {
      if (Object.isString(params)) params = params.toQueryParams();
      Object.extend(options.parameters, params);
    }

    if (form.hasAttribute('method') && !options.method)
      options.method = form.method;

    return new Ajax.Request(action, options);
  }
};

/*--------------------------------------------------------------------------*/

Form.Element = {
  focus: function(element) {
    $(element).focus();
    return element;
  },

  select: function(element) {
    $(element).select();
    return element;
  }
};

Form.Element.Methods = {
  serialize: function(element) {
    element = $(element);
    if (!element.disabled && element.name) {
      var value = element.getValue();
      if (value != undefined) {
        var pair = { };
        pair[element.name] = value;
        return Object.toQueryString(pair);
      }
    }
    return '';
  },

  getValue: function(element) {
    element = $(element);
    var method = element.tagName.toLowerCase();
    return Form.Element.Serializers[method](element);
  },

  setValue: function(element, value) {
    element = $(element);
    var method = element.tagName.toLowerCase();
    Form.Element.Serializers[method](element, value);
    return element;
  },

  clear: function(element) {
    $(element).value = '';
    return element;
  },

  present: function(element) {
    return $(element).value != '';
  },

  activate: function(element) {
    element = $(element);
    try {
      element.focus();
      if (element.select && (element.tagName.toLowerCase() != 'input' ||
          !['button', 'reset', 'submit'].include(element.type)))
        element.select();
    } catch (e) { }
    return element;
  },

  disable: function(element) {
    element = $(element);
    element.disabled = true;
    return element;
  },

  enable: function(element) {
    element = $(element);
    element.disabled = false;
    return element;
  }
};

/*--------------------------------------------------------------------------*/

var Field = Form.Element;
var $F = Form.Element.Methods.getValue;

/*--------------------------------------------------------------------------*/

Form.Element.Serializers = {
  input: function(element, value) {
    switch (element.type.toLowerCase()) {
      case 'checkbox':
      case 'radio':
        return Form.Element.Serializers.inputSelector(element, value);
      default:
        return Form.Element.Serializers.textarea(element, value);
    }
  },

  inputSelector: function(element, value) {
    if (Object.isUndefined(value)) return element.checked ? element.value : null;
    else element.checked = !!value;
  },

  textarea: function(element, value) {
    if (Object.isUndefined(value)) return element.value;
    else element.value = value;
  },

  select: function(element, value) {
    if (Object.isUndefined(value))
      return this[element.type == 'select-one' ?
        'selectOne' : 'selectMany'](element);
    else {
      var opt, currentValue, single = !Object.isArray(value);
      for (var i = 0, length = element.length; i < length; i++) {
        opt = element.options[i];
        currentValue = this.optionValue(opt);
        if (single) {
          if (currentValue == value) {
            opt.selected = true;
            return;
          }
        }
        else opt.selected = value.include(currentValue);
      }
    }
  },

  selectOne: function(element) {
    var index = element.selectedIndex;
    return index >= 0 ? this.optionValue(element.options[index]) : null;
  },

  selectMany: function(element) {
    var values, length = element.length;
    if (!length) return null;

    for (var i = 0, values = []; i < length; i++) {
      var opt = element.options[i];
      if (opt.selected) values.push(this.optionValue(opt));
    }
    return values;
  },

  optionValue: function(opt) {
    // extend element because hasAttribute may not be native
    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
  }
};

/*--------------------------------------------------------------------------*/

Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
  initialize: function($super, element, frequency, callback) {
    $super(callback, frequency);
    this.element   = $(element);
    this.lastValue = this.getValue();
  },

  execute: function() {
    var value = this.getValue();
    if (Object.isString(this.lastValue) && Object.isString(value) ?
        this.lastValue != value : String(this.lastValue) != String(value)) {
      this.callback(this.element, value);
      this.lastValue = value;
    }
  }
});

Form.Element.Observer = Class.create(Abstract.TimedObserver, {
  getValue: function() {
    return Form.Element.getValue(this.element);
  }
});

Form.Observer = Class.create(Abstract.TimedObserver, {
  getValue: function() {
    return Form.serialize(this.element);
  }
});

/*--------------------------------------------------------------------------*/

Abstract.EventObserver = Class.create({
  initialize: function(element, callback) {
    this.element  = $(element);
    this.callback = callback;

    this.lastValue = this.getValue();
    if (this.element.tagName.toLowerCase() == 'form')
      this.registerFormCallbacks();
    else
      this.registerCallback(this.element);
  },

  onElementEvent: function() {
    var value = this.getValue();
    if (this.lastValue != value) {
      this.callback(this.element, value);
      this.lastValue = value;
    }
  },

  registerFormCallbacks: function() {
    Form.getElements(this.element).each(this.registerCallback, this);
  },

  registerCallback: function(element) {
    if (element.type) {
      switch (element.type.toLowerCase()) {
        case 'checkbox':
        case 'radio':
          Event.observe(element, 'click', this.onElementEvent.bind(this));
          break;
        default:
          Event.observe(element, 'change', this.onElementEvent.bind(this));
          break;
      }
    }
  }
});

Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
  getValue: function() {
    return Form.Element.getValue(this.element);
  }
});

Form.EventObserver = Class.create(Abstract.EventObserver, {
  getValue: function() {
    return Form.serialize(this.element);
  }
});
if (!window.Event) var Event = { };

Object.extend(Event, {
  KEY_BACKSPACE: 8,
  KEY_TAB:       9,
  KEY_RETURN:   13,
  KEY_ESC:      27,
  KEY_LEFT:     37,
  KEY_UP:       38,
  KEY_RIGHT:    39,
  KEY_DOWN:     40,
  KEY_DELETE:   46,
  KEY_HOME:     36,
  KEY_END:      35,
  KEY_PAGEUP:   33,
  KEY_PAGEDOWN: 34,
  KEY_INSERT:   45,

  cache: { },

  relatedTarget: function(event) {
    var element;
    switch(event.type) {
      case 'mouseover': element = event.fromElement; break;
      case 'mouseout':  element = event.toElement;   break;
      default: return null;
    }
    return Element.extend(element);
  }
});

Event.Methods = (function() {
  var isButton;

  if (Prototype.Browser.IE) {
    var buttonMap = { 0: 1, 1: 4, 2: 2 };
    isButton = function(event, code) {
      return event.button == buttonMap[code];
    };

  } else if (Prototype.Browser.WebKit) {
    isButton = function(event, code) {
      switch (code) {
        case 0: return event.which == 1 && !event.metaKey;
        case 1: return event.which == 1 && event.metaKey;
        default: return false;
      }
    };

  } else {
    isButton = function(event, code) {
      return event.which ? (event.which === code + 1) : (event.button === code);
    };
  }

  return {
    isLeftClick:   function(event) { return isButton(event, 0) },
    isMiddleClick: function(event) { return isButton(event, 1) },
    isRightClick:  function(event) { return isButton(event, 2) },

    element: function(event) {
      event = Event.extend(event);

      var node          = event.target,
          type          = event.type,
          currentTarget = event.currentTarget;

      if (currentTarget && currentTarget.tagName) {
        // Firefox screws up the "click" event when moving between radio buttons
        // via arrow keys. It also screws up the "load" and "error" events on images,
        // reporting the document as the target instead of the original image.
        if (type === 'load' || type === 'error' ||
          (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
            && currentTarget.type === 'radio'))
              node = currentTarget;
      }
      if (node) {
        if (node.nodeType == Node.TEXT_NODE) node = node.parentNode;
        return Element.extend(node);
      } else return false;
    },

    findElement: function(event, expression) {
      var element = Event.element(event);
      if (!expression) return element;
      var elements = [element].concat(element.ancestors());
      return Selector.findElement(elements, expression, 0);
    },

    pointer: function(event) {
      var docElement = document.documentElement,
      body = document.body || { scrollLeft: 0, scrollTop: 0 };
      return {
        x: event.pageX || (event.clientX +
          (docElement.scrollLeft || body.scrollLeft) -
          (docElement.clientLeft || 0)),
        y: event.pageY || (event.clientY +
          (docElement.scrollTop || body.scrollTop) -
          (docElement.clientTop || 0))
      };
    },

    pointerX: function(event) { return Event.pointer(event).x },
    pointerY: function(event) { return Event.pointer(event).y },

    stop: function(event) {
      Event.extend(event);
      event.preventDefault();
      event.stopPropagation();
      event.stopped = true;
    }
  };
})();

Event.extend = (function() {
  var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
    m[name] = Event.Methods[name].methodize();
    return m;
  });

  if (Prototype.Browser.IE) {
    Object.extend(methods, {
      stopPropagation: function() { this.cancelBubble = true },
      preventDefault:  function() { this.returnValue = false },
      inspect: function() { return "[object Event]" }
    });

    return function(event) {
      if (!event) return false;
      if (event._extendedByPrototype) return event;

      event._extendedByPrototype = Prototype.emptyFunction;
      var pointer = Event.pointer(event);
      Object.extend(event, {
        target: event.srcElement,
        relatedTarget: Event.relatedTarget(event),
        pageX:  pointer.x,
        pageY:  pointer.y
      });
      return Object.extend(event, methods);
    };

  } else {
    Event.prototype = Event.prototype || document.createEvent("HTMLEvents")['__proto__'];
    Object.extend(Event.prototype, methods);
    return Prototype.K;
  }
})();

Object.extend(Event, (function() {
  var cache = Event.cache;

  function getEventID(element) {
    try {
      if (element._prototypeEventID) return element._prototypeEventID[0];
      arguments.callee.id = arguments.callee.id || 1;
      return element._prototypeEventID = [++arguments.callee.id];
    } catch (error) {
      return false;
    }
  }

  function getDOMEventName(eventName) {
    if (eventName && eventName.include(':')) return "dataavailable";
    return eventName;
  }

  function getCacheForID(id) {
    return cache[id] = cache[id] || { };
  }

  function getWrappersForEventName(id, eventName) {
    var c = getCacheForID(id);
    return c[eventName] = c[eventName] || [];
  }

  function createWrapper(element, eventName, handler) {
    var id = getEventID(element);
    var c = getWrappersForEventName(id, eventName);
    if (c.pluck("handler").include(handler)) return false;

    var wrapper = function(event) {
      if (!Event || !Event.extend ||
        (event.eventName && event.eventName != eventName))
          return false;

      Event.extend(event);
      handler.call(element, event);
    };

    wrapper.handler = handler;
    c.push(wrapper);
    return wrapper;
  }

  function findWrapper(id, eventName, handler) {
    var c = getWrappersForEventName(id, eventName);
    return c.find(function(wrapper) { return wrapper.handler == handler });
  }

  function destroyWrapper(id, eventName, handler) {
    var c = getCacheForID(id);
    if (!c[eventName]) return false;
    c[eventName] = c[eventName].without(findWrapper(id, eventName, handler));
  }

  function destroyCache() {
    for (var id in cache)
      for (var eventName in cache[id])
        cache[id][eventName] = null;
  }


  // Internet Explorer needs to remove event handlers on page unload
  // in order to avoid memory leaks.
  if (window.attachEvent) {
    window.attachEvent("onunload", destroyCache);
  }

  // Safari has a dummy event handler on page unload so that it won't
  // use its bfcache. Safari <= 3.1 has an issue with restoring the "document"
  // object when page is returned to via the back button using its bfcache.
  if (Prototype.Browser.WebKit) {
    window.addEventListener('unload', Prototype.emptyFunction, false);
  }

  return {
    observe: function(element, eventName, handler) {
      element = $(element);
      var name = getDOMEventName(eventName);

      var wrapper = createWrapper(element, eventName, handler);
      if (!wrapper) return element;

      if (element.addEventListener) {
        element.addEventListener(name, wrapper, false);
      } else {
        element.attachEvent("on" + name, wrapper);
      }

      return element;
    },

    stopObserving: function(element, eventName, handler) {
      element = $(element);
      var id = getEventID(element), name = getDOMEventName(eventName);

      if (!handler && eventName) {
        getWrappersForEventName(id, eventName).each(function(wrapper) {
          element.stopObserving(eventName, wrapper.handler);
        });
        return element;

      } else if (!eventName) {
        Object.keys(getCacheForID(id)).each(function(eventName) {
          element.stopObserving(eventName);
        });
        return element;
      }

      var wrapper = findWrapper(id, eventName, handler);
      if (!wrapper) return element;

      if (element.removeEventListener) {
        element.removeEventListener(name, wrapper, false);
      } else {
        element.detachEvent("on" + name, wrapper);
      }

      destroyWrapper(id, eventName, handler);

      return element;
    },

    fire: function(element, eventName, memo) {
      element = $(element);
      if (element == document && document.createEvent && !element.dispatchEvent)
        element = document.documentElement;

      var event;
      if (document.createEvent) {
        event = document.createEvent("HTMLEvents");
        event.initEvent("dataavailable", true, true);
      } else {
        event = document.createEventObject();
        event.eventType = "ondataavailable";
      }

      event.eventName = eventName;
      event.memo = memo || { };

      if (document.createEvent) {
        element.dispatchEvent(event);
      } else {
        element.fireEvent(event.eventType, event);
      }

      return Event.extend(event);
    }
  };
})());

Object.extend(Event, Event.Methods);

Element.addMethods({
  fire:          Event.fire,
  observe:       Event.observe,
  stopObserving: Event.stopObserving
});

Object.extend(document, {
  fire:          Element.Methods.fire.methodize(),
  observe:       Element.Methods.observe.methodize(),
  stopObserving: Element.Methods.stopObserving.methodize(),
  loaded:        false
});

(function() {
  /* Support for the DOMContentLoaded event is based on work by Dan Webb,
     Matthias Miller, Dean Edwards and John Resig. */

  var timer;

  function fireContentLoadedEvent() {
    if (document.loaded) return;
    if (timer) window.clearInterval(timer);
    document.fire("dom:loaded");
    document.loaded = true;
  }

  if (document.addEventListener) {
    if (Prototype.Browser.WebKit) {
      timer = window.setInterval(function() {
        if (/loaded|complete/.test(document.readyState))
          fireContentLoadedEvent();
      }, 0);

      Event.observe(window, "load", fireContentLoadedEvent);

    } else {
      document.addEventListener("DOMContentLoaded",
        fireContentLoadedEvent, false);
    }

  } else {
    document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");
    $("__onDOMContentLoaded").onreadystatechange = function() {
      if (this.readyState == "complete") {
        this.onreadystatechange = null;
        fireContentLoadedEvent();
      }
    };
  }
})();
/*------------------------------- DEPRECATED -------------------------------*/

Hash.toQueryString = Object.toQueryString;

var Toggle = { display: Element.toggle };

Element.Methods.childOf = Element.Methods.descendantOf;

var Insertion = {
  Before: function(element, content) {
    return Element.insert(element, {before:content});
  },

  Top: function(element, content) {
    return Element.insert(element, {top:content});
  },

  Bottom: function(element, content) {
    return Element.insert(element, {bottom:content});
  },

  After: function(element, content) {
    return Element.insert(element, {after:content});
  }
};

var $continue = new Error('"throw $continue" is deprecated, use "return" instead');

// This should be moved to script.aculo.us; notice the deprecated methods
// further below, that map to the newer Element methods.
var Position = {
  // set to true if needed, warning: firefox performance problems
  // NOT neeeded for page scrolling, only if draggable contained in
  // scrollable elements
  includeScrollOffsets: false,

  // must be called before calling withinIncludingScrolloffset, every time the
  // page is scrolled
  prepare: function() {
    this.deltaX =  window.pageXOffset
                || document.documentElement.scrollLeft
                || document.body.scrollLeft
                || 0;
    this.deltaY =  window.pageYOffset
                || document.documentElement.scrollTop
                || document.body.scrollTop
                || 0;
  },

  // caches x/y coordinate pair to use with overlap
  within: function(element, x, y) {
    if (this.includeScrollOffsets)
      return this.withinIncludingScrolloffsets(element, x, y);
    this.xcomp = x;
    this.ycomp = y;
    this.offset = Element.cumulativeOffset(element);

    return (y >= this.offset[1] &&
            y <  this.offset[1] + element.offsetHeight &&
            x >= this.offset[0] &&
            x <  this.offset[0] + element.offsetWidth);
  },

  withinIncludingScrolloffsets: function(element, x, y) {
    var offsetcache = Element.cumulativeScrollOffset(element);

    this.xcomp = x + offsetcache[0] - this.deltaX;
    this.ycomp = y + offsetcache[1] - this.deltaY;
    this.offset = Element.cumulativeOffset(element);

    return (this.ycomp >= this.offset[1] &&
            this.ycomp <  this.offset[1] + element.offsetHeight &&
            this.xcomp >= this.offset[0] &&
            this.xcomp <  this.offset[0] + element.offsetWidth);
  },

  // within must be called directly before
  overlap: function(mode, element) {
    if (!mode) return 0;
    if (mode == 'vertical')
      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
        element.offsetHeight;
    if (mode == 'horizontal')
      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
        element.offsetWidth;
  },

  // Deprecation layer -- use newer Element methods now (1.5.2).

  cumulativeOffset: Element.Methods.cumulativeOffset,

  positionedOffset: Element.Methods.positionedOffset,

  absolutize: function(element) {
    Position.prepare();
    return Element.absolutize(element);
  },

  relativize: function(element) {
    Position.prepare();
    return Element.relativize(element);
  },

  realOffset: Element.Methods.cumulativeScrollOffset,

  offsetParent: Element.Methods.getOffsetParent,

  page: Element.Methods.viewportOffset,

  clone: function(source, target, options) {
    options = options || { };
    return Element.clonePosition(target, source, options);
  }
};

/*--------------------------------------------------------------------------*/

if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
  function iter(name) {
    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
  }

  instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
  function(element, className) {
    className = className.toString().strip();
    var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
    return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
  } : function(element, className) {
    className = className.toString().strip();
    var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
    if (!classNames && !className) return elements;

    var nodes = $(element).getElementsByTagName('*');
    className = ' ' + className + ' ';

    for (var i = 0, child, cn; child = nodes[i]; i++) {
      if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
          (classNames && classNames.all(function(name) {
            return !name.toString().blank() && cn.include(' ' + name + ' ');
          }))))
        elements.push(Element.extend(child));
    }
    return elements;
  };

  return function(className, parentElement) {
    return $(parentElement || document.body).getElementsByClassName(className);
  };
}(Element.Methods);

/*--------------------------------------------------------------------------*/

Element.ClassNames = Class.create();
Element.ClassNames.prototype = {
  initialize: function(element) {
    this.element = $(element);
  },

  _each: function(iterator) {
    this.element.className.split(/\s+/).select(function(name) {
      return name.length > 0;
    })._each(iterator);
  },

  set: function(className) {
    this.element.className = className;
  },

  add: function(classNameToAdd) {
    if (this.include(classNameToAdd)) return;
    this.set($A(this).concat(classNameToAdd).join(' '));
  },

  remove: function(classNameToRemove) {
    if (!this.include(classNameToRemove)) return;
    this.set($A(this).without(classNameToRemove).join(' '));
  },

  toString: function() {
    return $A(this).join(' ');
  }
};

Object.extend(Element.ClassNames.prototype, Enumerable);

/*--------------------------------------------------------------------------*/

Element.addMethods();
// Credit Card Validation Javascript
// copyright 12th May 2003, by Stephen Chapman, Felgall Pty Ltd

// You have permission to copy and use this javascript provided that
// the content of the script is not changed in any way.

function validateCreditCard(s) {
    // remove non-numerics
    var v = "0123456789";
    var w = "";
    for (i=0; i < s.length; i++) {
        x = s.charAt(i);
        if (v.indexOf(x,0) != -1)
        w += x;
    }
    // validate number
    j = w.length / 2;
    k = Math.floor(j);
    m = Math.ceil(j) - k;
    c = 0;
    for (i=0; i<k; i++) {
        a = w.charAt(i*2+m) * 2;
        c += a > 9 ? Math.floor(a/10 + a%10) : a;
    }
    for (i=0; i<k+m; i++) c += w.charAt(i*2+1-m) * 1;
    return (c%10 == 0);
}


/*
* Really easy field validation with Prototype
* http://tetlaw.id.au/view/javascript/really-easy-field-validation
* Andrew Tetlaw
* Version 1.5.4.1 (2007-01-05)
*
* Copyright (c) 2007 Andrew Tetlaw
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*
*/
var Validator = Class.create();

Validator.prototype = {
    initialize : function(className, error, test, options) {
        if(typeof test == 'function'){
            this.options = $H(options);
            this._test = test;
        } else {
            this.options = $H(test);
            this._test = function(){return true};
        }
        this.error = error || 'Validation failed.';
        this.className = className;
    },
    test : function(v, elm) {
        return (this._test(v,elm) && this.options.all(function(p){
            return Validator.methods[p.key] ? Validator.methods[p.key](v,elm,p.value) : true;
        }));
    }
}
Validator.methods = {
    pattern : function(v,elm,opt) {return Validation.get('IsEmpty').test(v) || opt.test(v)},
    minLength : function(v,elm,opt) {return v.length >= opt},
    maxLength : function(v,elm,opt) {return v.length <= opt},
    min : function(v,elm,opt) {return v >= parseFloat(opt)},
    max : function(v,elm,opt) {return v <= parseFloat(opt)},
    notOneOf : function(v,elm,opt) {return $A(opt).all(function(value) {
        return v != value;
    })},
    oneOf : function(v,elm,opt) {return $A(opt).any(function(value) {
        return v == value;
    })},
    is : function(v,elm,opt) {return v == opt},
    isNot : function(v,elm,opt) {return v != opt},
    equalToField : function(v,elm,opt) {return v == $F(opt)},
    notEqualToField : function(v,elm,opt) {return v != $F(opt)},
    include : function(v,elm,opt) {return $A(opt).all(function(value) {
        return Validation.get(value).test(v,elm);
    })}
}

var Validation = Class.create();
Validation.defaultOptions = {
    onSubmit : true,
    stopOnFirst : false,
    immediate : false,
    focusOnError : true,
    useTitles : false,
    addClassNameToContainer: false,
    containerClassName: '.input-box',
    onFormValidate : function(result, form) {},
    onElementValidate : function(result, elm) {}
};

Validation.prototype = {
    initialize : function(form, options){
        this.form = $(form);
        if (!this.form) {
            return;
        }
        this.options = Object.extend({
            onSubmit : Validation.defaultOptions.onSubmit,
            stopOnFirst : Validation.defaultOptions.stopOnFirst,
            immediate : Validation.defaultOptions.immediate,
            focusOnError : Validation.defaultOptions.focusOnError,
            useTitles : Validation.defaultOptions.useTitles,
            onFormValidate : Validation.defaultOptions.onFormValidate,
            onElementValidate : Validation.defaultOptions.onElementValidate
        }, options || {});
        if(this.options.onSubmit) Event.observe(this.form,'submit',this.onSubmit.bind(this),false);
        if(this.options.immediate) {
            Form.getElements(this.form).each(function(input) { // Thanks Mike!
                if (input.tagName.toLowerCase() == 'select') {
                    Event.observe(input, 'blur', this.onChange.bindAsEventListener(this));
                }
                if (input.type.toLowerCase() == 'radio' || input.type.toLowerCase() == 'checkbox') {
                    Event.observe(input, 'click', this.onChange.bindAsEventListener(this));
                } else {
                    Event.observe(input, 'change', this.onChange.bindAsEventListener(this));
                }
            }, this);
        }
    },
    onChange : function (ev) {
        Validation.isOnChange = true;
        Validation.validate(Event.element(ev),{
                useTitle : this.options.useTitles,
                onElementValidate : this.options.onElementValidate
        });
        Validation.isOnChange = false;
    },
    onSubmit :  function(ev){
        if(!this.validate()) Event.stop(ev);
    },
    validate : function() {
        var result = false;
        var useTitles = this.options.useTitles;
        var callback = this.options.onElementValidate;
        try {
            if(this.options.stopOnFirst) {
                result = Form.getElements(this.form).all(function(elm) {
                    if (elm.hasClassName('local-validation') && !this.isElementInForm(elm, this.form)) {
                        return true;
                    }
                    return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback});
                }, this);
            } else {
                result = Form.getElements(this.form).collect(function(elm) {
                    if (elm.hasClassName('local-validation') && !this.isElementInForm(elm, this.form)) {
                        return true;
                    }
                    return Validation.validate(elm,{useTitle : useTitles, onElementValidate : callback});
                }, this).all();
            }
        } catch (e) {
        }
        if(!result && this.options.focusOnError) {
            try{
                Form.getElements(this.form).findAll(function(elm){return $(elm).hasClassName('validation-failed')}).first().focus()
            }
            catch(e){
            }
        }
        this.options.onFormValidate(result, this.form);
        return result;
    },
    reset : function() {
        Form.getElements(this.form).each(Validation.reset);
    },
    isElementInForm : function(elm, form) {
        var domForm = elm.up('form');
        if (domForm == form) {
            return true;
        }
        return false;
    }
}

Object.extend(Validation, {
    validate : function(elm, options){
        options = Object.extend({
            useTitle : false,
            onElementValidate : function(result, elm) {}
        }, options || {});
        elm = $(elm);

        var cn = $w(elm.className);
        return result = cn.all(function(value) {
            var test = Validation.test(value,elm,options.useTitle);
            options.onElementValidate(test, elm);
            return test;
        });
    },
    insertAdvice : function(elm, advice){
        var container = $(elm).up('.field-row');
        if(container){
            Element.insert(container, {after: advice});
        } else if (elm.up('td.value')) {
            elm.up('td.value').insert({bottom: advice});
        } else if (elm.advaiceContainer && $(elm.advaiceContainer)) {
            $(elm.advaiceContainer).update(advice);
        }
        else {
            switch (elm.type.toLowerCase()) {
                case 'checkbox':
                case 'radio':
                    var p = elm.parentNode;
                    if(p) {
                        Element.insert(p, {'bottom': advice});
                    } else {
                        Element.insert(elm, {'after': advice});
                    }
                    break;
                default:
                    Element.insert(elm, {'after': advice});
            }
        }
    },
    showAdvice : function(elm, advice, adviceName){
        if(!elm.advices){
            elm.advices = new Hash();
        }
        else{
            elm.advices.each(function(pair){
                if (!advice || pair.value.id != advice.id) {
                    // hide non-current advice after delay
                    this.hideAdvice(elm, pair.value);
                }
            }.bind(this));
        }
        elm.advices.set(adviceName, advice);
        if(typeof Effect == 'undefined') {
            advice.style.display = 'block';
        } else {
            if(!advice._adviceAbsolutize) {
                new Effect.Appear(advice, {duration : 1 });
            } else {
                Position.absolutize(advice);
                advice.show();
                advice.setStyle({
                    'top':advice._adviceTop,
                    'left': advice._adviceLeft,
                    'width': advice._adviceWidth,
                    'z-index': 1000
                });
                advice.addClassName('advice-absolute');
            }
        }
    },
    hideAdvice : function(elm, advice){
        if (advice != null) {
            new Effect.Fade(advice, {duration : 1, afterFinishInternal : function() {advice.hide();}});
        }
    },
    updateCallback : function(elm, status) {
        if (typeof elm.callbackFunction != 'undefined') {
            eval(elm.callbackFunction+'(\''+elm.id+'\',\''+status+'\')');
        }
    },
    ajaxError : function(elm, errorMsg) {
        var name = 'validate-ajax';
        var advice = Validation.getAdvice(name, elm);
        if (advice == null) {
            advice = this.createAdvice(name, elm, false, errorMsg);
        }
        this.showAdvice(elm, advice, 'validate-ajax');
        this.updateCallback(elm, 'failed');

        elm.addClassName('validation-failed');
        elm.addClassName('validate-ajax');
        if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
            var container = elm.up(Validation.defaultOptions.containerClassName);
            if (container && this.allowContainerClassName(elm)) {
                container.removeClassName('validation-passed');
                container.addClassName('validation-error');
            }
        }
    },
    allowContainerClassName: function (elm) {
        if (elm.type == 'radio' || elm.type == 'checkbox') {
            return elm.hasClassName('change-container-classname');
        }

        return true;
    },
    test : function(name, elm, useTitle) {
        var v = Validation.get(name);
        var prop = '__advice'+name.camelize();
        try {
        if(Validation.isVisible(elm) && !v.test($F(elm), elm)) {
            //if(!elm[prop]) {
                var advice = Validation.getAdvice(name, elm);
                if (advice == null) {
                    advice = this.createAdvice(name, elm, useTitle);
                }
                this.showAdvice(elm, advice, name);
                this.updateCallback(elm, 'failed');
            //}
            elm[prop] = 1;
            if (!elm.advaiceContainer) {
                elm.removeClassName('validation-passed');
                elm.addClassName('validation-failed');
            }

           if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
                var container = elm.up(Validation.defaultOptions.containerClassName);
                if (container && this.allowContainerClassName(elm)) {
                    container.removeClassName('validation-passed');
                    container.addClassName('validation-error');
                }
            }
            return false;
        } else {
            var advice = Validation.getAdvice(name, elm);
            this.hideAdvice(elm, advice);
            this.updateCallback(elm, 'passed');
            elm[prop] = '';
            elm.removeClassName('validation-failed');
            elm.addClassName('validation-passed');
            if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
                var container = elm.up(Validation.defaultOptions.containerClassName);
                if (container && !container.down('.validation-failed') && this.allowContainerClassName(elm)) {
                    if (!Validation.get('IsEmpty').test(elm.value) || !this.isVisible(elm)) {
                        container.addClassName('validation-passed');
                    } else {
                        container.removeClassName('validation-passed');
                    }
                    container.removeClassName('validation-error');
                }
            }
            return true;
        }
        } catch(e) {
            throw(e)
        }
    },
    isVisible : function(elm) {
        while(elm.tagName != 'BODY') {
            if(!$(elm).visible()) return false;
            elm = elm.parentNode;
        }
        return true;
    },
    getAdvice : function(name, elm) {
        return $('advice-' + name + '-' + Validation.getElmID(elm)) || $('advice-' + Validation.getElmID(elm));
    },
    createAdvice : function(name, elm, useTitle, customError) {
        var v = Validation.get(name);
        var errorMsg = useTitle ? ((elm && elm.title) ? elm.title : v.error) : v.error;
        if (customError) {
            errorMsg = customError;
        }
        try {
            if (Translator){
                errorMsg = Translator.translate(errorMsg);
            }
        }
        catch(e){}

        advice = '<div class="validation-advice" id="advice-' + name + '-' + Validation.getElmID(elm) +'" style="display:none">' + errorMsg + '</div>'


        Validation.insertAdvice(elm, advice);
        advice = Validation.getAdvice(name, elm);
        if($(elm).hasClassName('absolute-advice')) {
            var dimensions = $(elm).getDimensions();
            var originalPosition = Position.cumulativeOffset(elm);

            advice._adviceTop = (originalPosition[1] + dimensions.height) + 'px';
            advice._adviceLeft = (originalPosition[0])  + 'px';
            advice._adviceWidth = (dimensions.width)  + 'px';
            advice._adviceAbsolutize = true;
        }
        return advice;
    },
    getElmID : function(elm) {
        return elm.id ? elm.id : elm.name;
    },
    reset : function(elm) {
        elm = $(elm);
        var cn = $w(elm.className);
        cn.each(function(value) {
            var prop = '__advice'+value.camelize();
            if(elm[prop]) {
                var advice = Validation.getAdvice(value, elm);
                if (advice) {
                    advice.hide();
                }
                elm[prop] = '';
            }
            elm.removeClassName('validation-failed');
            elm.removeClassName('validation-passed');
            if (Validation.defaultOptions.addClassNameToContainer && Validation.defaultOptions.containerClassName != '') {
                var container = elm.up(Validation.defaultOptions.containerClassName);
                if (container) {
                    container.removeClassName('validation-passed');
                    container.removeClassName('validation-error');
                }
            }
        });
    },
    add : function(className, error, test, options) {
        var nv = {};
        nv[className] = new Validator(className, error, test, options);
        Object.extend(Validation.methods, nv);
    },
    addAllThese : function(validators) {
        var nv = {};
        $A(validators).each(function(value) {
                nv[value[0]] = new Validator(value[0], value[1], value[2], (value.length > 3 ? value[3] : {}));
            });
        Object.extend(Validation.methods, nv);
    },
    get : function(name) {
        return  Validation.methods[name] ? Validation.methods[name] : Validation.methods['_LikeNoIDIEverSaw_'];
    },
    methods : {
        '_LikeNoIDIEverSaw_' : new Validator('_LikeNoIDIEverSaw_','',{})
    }
});

Validation.add('IsEmpty', '', function(v) {
    return  (v == '' || (v == null) || (v.length == 0) || /^\s+$/.test(v)); // || /^\s+$/.test(v));
});

Validation.addAllThese([
    ['validate-select', 'Please select an option.', function(v) {
                return ((v != "none") && (v != null) && (v.length != 0));
            }],
    ['required-entry', 'This is a required field.', function(v) {
                return !Validation.get('IsEmpty').test(v);
            }],
    ['validate-number', 'Please enter a valid number in this field.', function(v) {
                return Validation.get('IsEmpty').test(v) || (!isNaN(parseNumber(v)) && !/^\s+$/.test(parseNumber(v)));
            }],
    ['validate-digits', 'Please use numbers only in this field. Please avoid spaces or other characters such as dots or commas.', function(v) {
                return Validation.get('IsEmpty').test(v) ||  !/[^\d]/.test(v);
            }],
    ['validate-digits-range', 'The value is not within the specified range.', function(v, elm) {
                var result = Validation.get('IsEmpty').test(v) ||  !/[^\d]/.test(v);
                var reRange = new RegExp(/^digits-range-[0-9]+-[0-9]+$/);
                $w(elm.className).each(function(name, index) {
                    if (name.match(reRange) && result) {
                        var min = parseInt(name.split('-')[2], 10);
                        var max = parseInt(name.split('-')[3], 10);
                        var val = parseInt(v, 10);
                        result = (v >= min) && (v <= max);
                    }
                });
                return result;
            }],
    ['validate-alpha', 'Please use letters only (a-z or A-Z) in this field.', function (v) {
                return Validation.get('IsEmpty').test(v) ||  /^[a-zA-Z]+$/.test(v)
            }],
    ['validate-code', 'Please use only letters (a-z), numbers (0-9) or underscore(_) in this field, first character should be a letter.', function (v) {
                return Validation.get('IsEmpty').test(v) ||  /^[a-z]+[a-z0-9_]+$/.test(v)
            }],
    ['validate-alphanum', 'Please use only letters (a-z or A-Z) or numbers (0-9) only in this field. No spaces or other characters are allowed.', function(v) {
                return Validation.get('IsEmpty').test(v) ||  /^[a-zA-Z0-9]+$/.test(v) /*!/\W/.test(v)*/
            }],
    ['validate-street', 'Please use only letters (a-z or A-Z) or numbers (0-9) or spaces and # only in this field.', function(v) {
                return Validation.get('IsEmpty').test(v) ||  /^[ \w]{3,}([A-Za-z]\.)?([ \w]*\#\d+)?(\r\n| )[ \w]{3,}/.test(v)
            }],
    ['validate-phoneStrict', 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(v);
            }],
    ['validate-phoneLax', 'Please enter a valid phone number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^((\d[-. ]?)?((\(\d{3}\))|\d{3}))?[-. ]?\d{3}[-. ]?\d{4}$/.test(v);
            }],
    ['validate-fax', 'Please enter a valid fax number. For example (123) 456-7890 or 123-456-7890.', function(v) {
                return Validation.get('IsEmpty').test(v) || /^(\()?\d{3}(\))?(-|\s)?\d{3}(-|\s)\d{4}$/.test(v);
            }],
    ['validate-date', 'Please enter a valid date.', function(v) {
                var test = new Date(v);
                return Validation.get('IsEmpty').test(v) || !isNaN(test);
            }],
    ['validate-email', 'Please enter a valid email address. For example johndoe@domain.com.', function (v) {
                //return Validation.get('IsEmpty').test(v) || /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)
                //return Validation.get('IsEmpty').test(v) || /^[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9][\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9\.]{1,30}[\!\#$%\*/?|\^\{\}`~&\'\+\-=_a-z0-9]@([a-z0-9_-]{1,30}\.){1,5}[a-z]{2,4}$/i.test(v)
                return Validation.get('IsEmpty').test(v) || /^([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9,!\#\$%&'\*\+\/=\?\^_`\{\|\}~-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*@([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z0-9-]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*\.(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]){2,})$/i.test(v)
            }],
    ['validate-emailSender', 'Please use only visible characters and spaces.', function (v) {
                return Validation.get('IsEmpty').test(v) ||  /^[\S ]+$/.test(v)
                    }],
    ['validate-password', 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.', function(v) {
                var pass=v.strip(); /*strip leading and trailing spaces*/
                return !(pass.length>0 && pass.length < 6);
            }],
    ['validate-admin-password', 'Please enter 7 or more characters. Password should contain both numeric and alphabetic characters.', function(v) {
                var pass=v.strip();
                if (0 == pass.length) {
                    return true;
                }
                if (!(/[a-z]/i.test(v)) || !(/[0-9]/.test(v))) {
                    return false;
                }
                return !(pass.length < 7);
            }],
    ['validate-cpassword', 'Please make sure your passwords match.', function(v) {
                var conf = $('confirmation') ? $('confirmation') : $$('.validate-cpassword')[0];
                var pass = false;
                if ($('password')) {
                    pass = $('password');
                }
                var passwordElements = $$('.validate-password');
                for (var i = 0; i < passwordElements.size(); i++) {
                    var passwordElement = passwordElements[i];
                    if (passwordElement.up('form').id == conf.up('form').id) {
                        pass = passwordElement;
                    }
                }
                if ($$('.validate-admin-password').size()) {
                    pass = $$('.validate-admin-password')[0];
                }
                return (pass.value == conf.value);
            }],
    ['validate-url', 'Please enter a valid URL. Protocol is required (http://, https:// or ftp://)', function (v) {
                return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i.test(v)
            }],
    ['validate-clean-url', 'Please enter a valid URL. For example http://www.example.com or www.example.com', function (v) {
                return Validation.get('IsEmpty').test(v) || /^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+.(com|org|net|dk|at|us|tv|info|uk|co.uk|biz|se)$)(:(\d+))?\/?/i.test(v) || /^(www)((\.[A-Z0-9][A-Z0-9_-]*)+.(com|org|net|dk|at|us|tv|info|uk|co.uk|biz|se)$)(:(\d+))?\/?/i.test(v)
            }],
    ['validate-identifier', 'Please enter a valid URL Key. For example "example-page", "example-page.html" or "anotherlevel/example-page".', function (v) {
                return Validation.get('IsEmpty').test(v) || /^[a-z0-9][a-z0-9_\/-]+(\.[a-z0-9_-]+)?$/.test(v)
            }],
    ['validate-xml-identifier', 'Please enter a valid XML-identifier. For example something_1, block5, id-4.', function (v) {
                return Validation.get('IsEmpty').test(v) || /^[A-Z][A-Z0-9_\/-]*$/i.test(v)
            }],
    ['validate-ssn', 'Please enter a valid social security number. For example 123-45-6789.', function(v) {
            return Validation.get('IsEmpty').test(v) || /^\d{3}-?\d{2}-?\d{4}$/.test(v);
            }],
    ['validate-zip', 'Please enter a valid zip code. For example 90602 or 90602-1234.', function(v) {
            return Validation.get('IsEmpty').test(v) || /(^\d{5}$)|(^\d{5}-\d{4}$)/.test(v);
            }],
    ['validate-zip-international', 'Please enter a valid zip code.', function(v) {
            //return Validation.get('IsEmpty').test(v) || /(^[A-z0-9]{2,10}([\s]{0,1}|[\-]{0,1})[A-z0-9]{2,10}$)/.test(v);
            return true;
            }],
    ['validate-date-au', 'Please use this date format: dd/mm/yyyy. For example 17/03/2006 for the 17th of March, 2006.', function(v) {
                if(Validation.get('IsEmpty').test(v)) return true;
                var regex = /^(\d{2})\/(\d{2})\/(\d{4})$/;
                if(!regex.test(v)) return false;
                var d = new Date(v.replace(regex, '$2/$1/$3'));
                return ( parseInt(RegExp.$2, 10) == (1+d.getMonth()) ) &&
                            (parseInt(RegExp.$1, 10) == d.getDate()) &&
                            (parseInt(RegExp.$3, 10) == d.getFullYear() );
            }],
    ['validate-currency-dollar', 'Please enter a valid $ amount. For example $100.00.', function(v) {
                // [$]1[##][,###]+[.##]
                // [$]1###+[.##]
                // [$]0.##
                // [$].##
                return Validation.get('IsEmpty').test(v) ||  /^\$?\-?([1-9]{1}[0-9]{0,2}(\,[0-9]{3})*(\.[0-9]{0,2})?|[1-9]{1}\d*(\.[0-9]{0,2})?|0(\.[0-9]{0,2})?|(\.[0-9]{1,2})?)$/.test(v)
            }],
    ['validate-one-required', 'Please select one of the above options.', function (v,elm) {
                var p = elm.parentNode;
                var options = p.getElementsByTagName('INPUT');
                return $A(options).any(function(elm) {
                    return $F(elm);
                });
            }],
    ['validate-one-required-by-name', 'Please select one of the options.', function (v,elm) {
                var inputs = $$('input[name="' + elm.name.replace(/([\\"])/g, '\\$1') + '"]');

                var error = 1;
                for(var i=0;i<inputs.length;i++) {
                    if((inputs[i].type == 'checkbox' || inputs[i].type == 'radio') && inputs[i].checked == true) {
                        error = 0;
                    }

                    if(Validation.isOnChange && (inputs[i].type == 'checkbox' || inputs[i].type == 'radio')) {
                        Validation.reset(inputs[i]);
                    }
                }

                if( error == 0 ) {
                    return true;
                } else {
                    return false;
                }
            }],
    ['validate-not-negative-number', 'Please enter a valid number in this field.', function(v) {
                v = parseNumber(v);
                return (!isNaN(v) && v>=0);
            }],
    ['validate-state', 'Please select State/Province.', function(v) {
                return (v!=0 || v == '');
            }],

    ['validate-new-password', 'Please enter 6 or more characters. Leading or trailing spaces will be ignored.', function(v) {
                if (!Validation.get('validate-password').test(v)) return false;
                if (Validation.get('IsEmpty').test(v) && v != '') return false;
                return true;
            }],
    ['validate-greater-than-zero', 'Please enter a number greater than 0 in this field.', function(v) {
                if(v.length)
                    return parseFloat(v) > 0;
                else
                    return true;
            }],
    ['validate-zero-or-greater', 'Please enter a number 0 or greater in this field.', function(v) {
                if(v.length)
                    return parseFloat(v) >= 0;
                else
                    return true;
            }],
    ['validate-cc-number', 'Please enter a valid credit card number.', function(v, elm) {
                // remove non-numerics
                var ccTypeContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_number')) + '_cc_type');
                if (ccTypeContainer && typeof Validation.creditCartTypes.get(ccTypeContainer.value) != 'undefined'
                        && Validation.creditCartTypes.get(ccTypeContainer.value)[2] == false) {
                    if (!Validation.get('IsEmpty').test(v) && Validation.get('validate-digits').test(v)) {
                        return true;
                    } else {
                        return false;
                    }
                }
                return validateCreditCard(v);
            }],
    ['validate-cc-type', 'Credit card number does not match credit card type.', function(v, elm) {
                // remove credit card number delimiters such as "-" and space
                elm.value = removeDelimiters(elm.value);
                v         = removeDelimiters(v);

                var ccTypeContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_number')) + '_cc_type');
                if (!ccTypeContainer) {
                    return true;
                }
                var ccType = ccTypeContainer.value;

                if (typeof Validation.creditCartTypes.get(ccType) == 'undefined') {
                    return false;
                }

                // Other card type or switch or solo card
                if (Validation.creditCartTypes.get(ccType)[0]==false) {
                    return true;
                }

                // Matched credit card type
                var ccMatchedType = '';

                Validation.creditCartTypes.each(function (pair) {
                    if (pair.value[0] && v.match(pair.value[0])) {
                        ccMatchedType = pair.key;
                        throw $break;
                    }
                });

                if(ccMatchedType != ccType) {
                    return false;
                }

                if (ccTypeContainer.hasClassName('validation-failed') && Validation.isOnChange) {
                    Validation.validate(ccTypeContainer);
                }

                return true;
            }],
     ['validate-cc-type-select', 'Card type does not match credit card number.', function(v, elm) {
                var ccNumberContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_type')) + '_cc_number');
                if (Validation.isOnChange && Validation.get('IsEmpty').test(ccNumberContainer.value)) {
                    return true;
                }
                if (Validation.get('validate-cc-type').test(ccNumberContainer.value, ccNumberContainer)) {
                    Validation.validate(ccNumberContainer);
                }
                return Validation.get('validate-cc-type').test(ccNumberContainer.value, ccNumberContainer);
            }],
     ['validate-cc-exp', 'Incorrect credit card expiration date.', function(v, elm) {
                var ccExpMonth   = v;
                var ccExpYear    = $(elm.id.substr(0,elm.id.indexOf('_expiration')) + '_expiration_yr').value;
                var currentTime  = new Date();
                var currentMonth = currentTime.getMonth() + 1;
                var currentYear  = currentTime.getFullYear();
                if (ccExpMonth < currentMonth && ccExpYear == currentYear) {
                    return false;
                }
                return true;
            }],
     ['validate-cc-cvn', 'Please enter a valid credit card verification number.', function(v, elm) {
                var ccTypeContainer = $(elm.id.substr(0,elm.id.indexOf('_cc_cid')) + '_cc_type');
                if (!ccTypeContainer) {
                    return true;
                }
                var ccType = ccTypeContainer.value;

                if (typeof Validation.creditCartTypes.get(ccType) == 'undefined') {
                    return false;
                }

                var re = Validation.creditCartTypes.get(ccType)[1];

                if (v.match(re)) {
                    return true;
                }

                return false;
            }],
     ['validate-ajax', '', function(v, elm) { return true; }],
     ['validate-data', 'Please use only letters (a-z or A-Z), numbers (0-9) or underscore(_) in this field, first character should be a letter.', function (v) {
                if(v != '' && v) {
                    return /^[A-Za-z]+[A-Za-z0-9_]+$/.test(v);
                }
                return true;
            }],
     ['validate-css-length', 'Please input a valid CSS-length. For example 100px or 77pt or 20em or .5ex or 50%.', function (v) {
                if (v != '' && v) {
                    return /^[0-9\.]+(px|pt|em|ex|%)?$/.test(v) && (!(/\..*\./.test(v))) && !(/\.$/.test(v));
                }
                return true;
            }],
     ['validate-length', 'Text length does not satisfy specified text range.', function (v, elm) {
                var reMax = new RegExp(/^maximum-length-[0-9]+$/);
                var reMin = new RegExp(/^minimum-length-[0-9]+$/);
                var result = true;
                $w(elm.className).each(function(name, index) {
                    if (name.match(reMax) && result) {
                       var length = name.split('-')[2];
                       result = (v.length <= length);
                    }
                    if (name.match(reMin) && result && !Validation.get('IsEmpty').test(v)) {
                        var length = name.split('-')[2];
                        result = (v.length >= length);
                    }
                });
                return result;
            }],
     ['validate-percents', 'Please enter a number lower than 100.', {max:100}],
     ['required-file', 'Please select a file', function(v, elm) {
         var result = !Validation.get('IsEmpty').test(v);
         if (result === false) {
             ovId = elm.id + '_value';
             if ($(ovId)) {
                 result = !Validation.get('IsEmpty').test($(ovId).value);
             }
         }
         return result;
     }],
     ['validate-cc-ukss', 'Please enter issue number or start date for switch/solo card type.', function(v,elm) {
         var endposition;

         if (elm.id.match(/(.)+_cc_issue$/)) {
             endposition = elm.id.indexOf('_cc_issue');
         } else if (elm.id.match(/(.)+_start_month$/)) {
             endposition = elm.id.indexOf('_start_month');
         } else {
             endposition = elm.id.indexOf('_start_year');
         }

         var prefix = elm.id.substr(0,endposition);

         var ccTypeContainer = $(prefix + '_cc_type');

         if (!ccTypeContainer) {
               return true;
         }
         var ccType = ccTypeContainer.value;

         if(['SS','SM','SO'].indexOf(ccType) == -1){
             return true;
         }

         $(prefix + '_cc_issue').advaiceContainer
           = $(prefix + '_start_month').advaiceContainer
           = $(prefix + '_start_year').advaiceContainer
           = $(prefix + '_cc_type_ss_div').down('ul li.adv-container');

         var ccIssue   =  $(prefix + '_cc_issue').value;
         var ccSMonth  =  $(prefix + '_start_month').value;
         var ccSYear   =  $(prefix + '_start_year').value;

         var ccStartDatePresent = (ccSMonth && ccSYear) ? true : false;

         if (!ccStartDatePresent && !ccIssue){
             return false;
         }
         return true;
     }]
]);

function removeDelimiters (v) {
    v = v.replace(/\s/g, '');
    v = v.replace(/\-/g, '');
    return v;
}

function parseNumber(v)
{
    if (typeof v != 'string') {
        return parseFloat(v);
    }

    var isDot  = v.indexOf('.');
    var isComa = v.indexOf(',');

    if (isDot != -1 && isComa != -1) {
        if (isComa > isDot) {
            v = v.replace('.', '').replace(',', '.');
        }
        else {
            v = v.replace(',', '');
        }
    }
    else if (isComa != -1) {
        v = v.replace(',', '.');
    }

    return parseFloat(v);
}

/**
 * Hash with credit card types wich can be simply extended in payment modules
 * 0 - regexp for card number
 * 1 - regexp for cvn
 * 2 - check or not credit card number trough Luhn algorithm by
 *     function validateCreditCard wich you can find above in this file
 */
Validation.creditCartTypes = $H({
//    'SS': [new RegExp('^((6759[0-9]{12})|(5018|5020|5038|6304|6759|6761|6763[0-9]{12,19})|(49[013][1356][0-9]{12})|(6333[0-9]{12})|(6334[0-4]\d{11})|(633110[0-9]{10})|(564182[0-9]{10}))([0-9]{2,3})?$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
    'SO': [new RegExp('^(6334[5-9]([0-9]{11}|[0-9]{13,14}))|(6767([0-9]{12}|[0-9]{14,15}))$'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
    'SM': [new RegExp('(^(5[0678])[0-9]{11,18}$)|(^(6[^05])[0-9]{11,18}$)|(^(601)[^1][0-9]{9,16}$)|(^(6011)[0-9]{9,11}$)|(^(6011)[0-9]{13,16}$)|(^(65)[0-9]{11,13}$)|(^(65)[0-9]{15,18}$)|(^(49030)[2-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49033)[5-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49110)[1-2]([0-9]{10}$|[0-9]{12,13}$))|(^(49117)[4-9]([0-9]{10}$|[0-9]{12,13}$))|(^(49118)[0-2]([0-9]{10}$|[0-9]{12,13}$))|(^(4936)([0-9]{12}$|[0-9]{14,15}$))'), new RegExp('^([0-9]{3}|[0-9]{4})?$'), true],
    'VI': [new RegExp('^4[0-9]{12}([0-9]{3})?$'), new RegExp('^[0-9]{3}$'), true],
    'MC': [new RegExp('^5[1-5][0-9]{14}$'), new RegExp('^[0-9]{3}$'), true],
    'AE': [new RegExp('^3[47][0-9]{13}$'), new RegExp('^[0-9]{4}$'), true],
    'DI': [new RegExp('^6011[0-9]{12}$'), new RegExp('^[0-9]{3}$'), true],
    'JCB': [new RegExp('^(3[0-9]{15}|(2131|1800)[0-9]{11})$'), new RegExp('^[0-9]{4}$'), true],
    'OT': [false, new RegExp('^([0-9]{3}|[0-9]{4})?$'), false]
});

// script.aculo.us builder.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

var Builder = {
  NODEMAP: {
    AREA: 'map',
    CAPTION: 'table',
    COL: 'table',
    COLGROUP: 'table',
    LEGEND: 'fieldset',
    OPTGROUP: 'select',
    OPTION: 'select',
    PARAM: 'object',
    TBODY: 'table',
    TD: 'table',
    TFOOT: 'table',
    TH: 'table',
    THEAD: 'table',
    TR: 'table'
  },
  // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,
  //       due to a Firefox bug
  node: function(elementName) {
    elementName = elementName.toUpperCase();

    // try innerHTML approach
    var parentTag = this.NODEMAP[elementName] || 'div';
    var parentElement = document.createElement(parentTag);
    try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
      parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";
    } catch(e) {}
    var element = parentElement.firstChild || null;

    // see if browser added wrapping tags
    if(element && (element.tagName.toUpperCase() != elementName))
      element = element.getElementsByTagName(elementName)[0];

    // fallback to createElement approach
    if(!element) element = document.createElement(elementName);

    // abort if nothing could be created
    if(!element) return;

    // attributes (or text)
    if(arguments[1])
      if(this._isStringOrNumber(arguments[1]) ||
        (arguments[1] instanceof Array) ||
        arguments[1].tagName) {
          this._children(element, arguments[1]);
        } else {
          var attrs = this._attributes(arguments[1]);
          if(attrs.length) {
            try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
              parentElement.innerHTML = "<" +elementName + " " +
                attrs + "></" + elementName + ">";
            } catch(e) {}
            element = parentElement.firstChild || null;
            // workaround firefox 1.0.X bug
            if(!element) {
              element = document.createElement(elementName);
              for(attr in arguments[1])
                element[attr == 'class' ? 'className' : attr] = arguments[1][attr];
            }
            if(element.tagName.toUpperCase() != elementName)
              element = parentElement.getElementsByTagName(elementName)[0];
          }
        }

    // text, or array of children
    if(arguments[2])
      this._children(element, arguments[2]);

     return $(element);
  },
  _text: function(text) {
     return document.createTextNode(text);
  },

  ATTR_MAP: {
    'className': 'class',
    'htmlFor': 'for'
  },

  _attributes: function(attributes) {
    var attrs = [];
    for(attribute in attributes)
      attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +
          '="' + attributes[attribute].toString().escapeHTML().gsub(/"/,'&quot;') + '"');
    return attrs.join(" ");
  },
  _children: function(element, children) {
    if(children.tagName) {
      element.appendChild(children);
      return;
    }
    if(typeof children=='object') { // array can hold nodes and text
      children.flatten().each( function(e) {
        if(typeof e=='object')
          element.appendChild(e);
        else
          if(Builder._isStringOrNumber(e))
            element.appendChild(Builder._text(e));
      });
    } else
      if(Builder._isStringOrNumber(children))
        element.appendChild(Builder._text(children));
  },
  _isStringOrNumber: function(param) {
    return(typeof param=='string' || typeof param=='number');
  },
  build: function(html) {
    var element = this.node('div');
    $(element).update(html.strip());
    return element.down();
  },
  dump: function(scope) {
    if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope

    var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " +
      "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " +
      "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+
      "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+
      "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+
      "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);

    tags.each( function(tag){
      scope[tag] = function() {
        return Builder.node.apply(Builder, [tag].concat($A(arguments)));
      };
    });
  }
};
// script.aculo.us effects.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
// Contributors:
//  Justin Palmer (http://encytemedia.com/)
//  Mark Pilgrim (http://diveintomark.org/)
//  Martin Bialasinki
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

// converts rgb() and #xxx to #xxxxxx format,
// returns self (or first argument) if not convertable
String.prototype.parseColor = function() {
  var color = '#';
  if (this.slice(0,4) == 'rgb(') {
    var cols = this.slice(4,this.length-1).split(',');
    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
  } else {
    if (this.slice(0,1) == '#') {
      if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
      if (this.length==7) color = this.toLowerCase();
    }
  }
  return (color.length==7 ? color : (arguments[0] || this));
};

/*--------------------------------------------------------------------------*/

Element.collectTextNodes = function(element) {
  return $A($(element).childNodes).collect( function(node) {
    return (node.nodeType==3 ? node.nodeValue :
      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
  }).flatten().join('');
};

Element.collectTextNodesIgnoreClass = function(element, className) {
  return $A($(element).childNodes).collect( function(node) {
    return (node.nodeType==3 ? node.nodeValue :
      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
        Element.collectTextNodesIgnoreClass(node, className) : ''));
  }).flatten().join('');
};

Element.setContentZoom = function(element, percent) {
  element = $(element);
  element.setStyle({fontSize: (percent/100) + 'em'});
  if (Prototype.Browser.WebKit) window.scrollBy(0,0);
  return element;
};

Element.getInlineOpacity = function(element){
  return $(element).style.opacity || '';
};

Element.forceRerendering = function(element) {
  try {
    element = $(element);
    var n = document.createTextNode(' ');
    element.appendChild(n);
    element.removeChild(n);
  } catch(e) { }
};

/*--------------------------------------------------------------------------*/

var Effect = {
  _elementDoesNotExistError: {
    name: 'ElementDoesNotExistError',
    message: 'The specified DOM element does not exist, but is required for this effect to operate'
  },
  Transitions: {
    linear: Prototype.K,
    sinoidal: function(pos) {
      return (-Math.cos(pos*Math.PI)/2) + .5;
    },
    reverse: function(pos) {
      return 1-pos;
    },
    flicker: function(pos) {
      var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4;
      return pos > 1 ? 1 : pos;
    },
    wobble: function(pos) {
      return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5;
    },
    pulse: function(pos, pulses) {
      return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
    },
    spring: function(pos) {
      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
    },
    none: function(pos) {
      return 0;
    },
    full: function(pos) {
      return 1;
    }
  },
  DefaultOptions: {
    duration:   1.0,   // seconds
    fps:        100,   // 100= assume 66fps max.
    sync:       false, // true for combining
    from:       0.0,
    to:         1.0,
    delay:      0.0,
    queue:      'parallel'
  },
  tagifyText: function(element) {
    var tagifyStyle = 'position:relative';
    if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';

    element = $(element);
    $A(element.childNodes).each( function(child) {
      if (child.nodeType==3) {
        child.nodeValue.toArray().each( function(character) {
          element.insertBefore(
            new Element('span', {style: tagifyStyle}).update(
              character == ' ' ? String.fromCharCode(160) : character),
              child);
        });
        Element.remove(child);
      }
    });
  },
  multiple: function(element, effect) {
    var elements;
    if (((typeof element == 'object') ||
        Object.isFunction(element)) &&
       (element.length))
      elements = element;
    else
      elements = $(element).childNodes;

    var options = Object.extend({
      speed: 0.1,
      delay: 0.0
    }, arguments[2] || { });
    var masterDelay = options.delay;

    $A(elements).each( function(element, index) {
      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));
    });
  },
  PAIRS: {
    'slide':  ['SlideDown','SlideUp'],
    'blind':  ['BlindDown','BlindUp'],
    'appear': ['Appear','Fade']
  },
  toggle: function(element, effect) {
    element = $(element);
    effect = (effect || 'appear').toLowerCase();
    var options = Object.extend({
      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
    }, arguments[2] || { });
    Effect[element.visible() ?
      Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options);
  }
};

Effect.DefaultOptions.transition = Effect.Transitions.sinoidal;

/* ------------- core effects ------------- */

Effect.ScopedQueue = Class.create(Enumerable, {
  initialize: function() {
    this.effects  = [];
    this.interval = null;
  },
  _each: function(iterator) {
    this.effects._each(iterator);
  },
  add: function(effect) {
    var timestamp = new Date().getTime();

    var position = Object.isString(effect.options.queue) ?
      effect.options.queue : effect.options.queue.position;

    switch(position) {
      case 'front':
        // move unstarted effects after this effect
        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
            e.startOn  += effect.finishOn;
            e.finishOn += effect.finishOn;
          });
        break;
      case 'with-last':
        timestamp = this.effects.pluck('startOn').max() || timestamp;
        break;
      case 'end':
        // start effect after last queued effect has finished
        timestamp = this.effects.pluck('finishOn').max() || timestamp;
        break;
    }

    effect.startOn  += timestamp;
    effect.finishOn += timestamp;

    if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
      this.effects.push(effect);

    if (!this.interval)
      this.interval = setInterval(this.loop.bind(this), 15);
  },
  remove: function(effect) {
    this.effects = this.effects.reject(function(e) { return e==effect });
    if (this.effects.length == 0) {
      clearInterval(this.interval);
      this.interval = null;
    }
  },
  loop: function() {
    var timePos = new Date().getTime();
    for(var i=0, len=this.effects.length;i<len;i++)
      this.effects[i] && this.effects[i].loop(timePos);
  }
});

Effect.Queues = {
  instances: $H(),
  get: function(queueName) {
    if (!Object.isString(queueName)) return queueName;

    return this.instances.get(queueName) ||
      this.instances.set(queueName, new Effect.ScopedQueue());
  }
};
Effect.Queue = Effect.Queues.get('global');

Effect.Base = Class.create({
  position: null,
  start: function(options) {
    function codeForEvent(options,eventName){
      return (
        (options[eventName+'Internal'] ? 'this.options.'+eventName+'Internal(this);' : '') +
        (options[eventName] ? 'this.options.'+eventName+'(this);' : '')
      );
    }
    if (options && options.transition === false) options.transition = Effect.Transitions.linear;
    this.options      = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { });
    this.currentFrame = 0;
    this.state        = 'idle';
    this.startOn      = this.options.delay*1000;
    this.finishOn     = this.startOn+(this.options.duration*1000);
    this.fromToDelta  = this.options.to-this.options.from;
    this.totalTime    = this.finishOn-this.startOn;
    this.totalFrames  = this.options.fps*this.options.duration;

    this.render = (function() {
      function dispatch(effect, eventName) {
        if (effect.options[eventName + 'Internal'])
          effect.options[eventName + 'Internal'](effect);
        if (effect.options[eventName])
          effect.options[eventName](effect);
      }

      return function(pos) {
        if (this.state === "idle") {
          this.state = "running";
          dispatch(this, 'beforeSetup');
          if (this.setup) this.setup();
          dispatch(this, 'afterSetup');
        }
        if (this.state === "running") {
          pos = (this.options.transition(pos) * this.fromToDelta) + this.options.from;
          this.position = pos;
          dispatch(this, 'beforeUpdate');
          if (this.update) this.update(pos);
          dispatch(this, 'afterUpdate');
        }
      };
    })();

    this.event('beforeStart');
    if (!this.options.sync)
      Effect.Queues.get(Object.isString(this.options.queue) ?
        'global' : this.options.queue.scope).add(this);
  },
  loop: function(timePos) {
    if (timePos >= this.startOn) {
      if (timePos >= this.finishOn) {
        this.render(1.0);
        this.cancel();
        this.event('beforeFinish');
        if (this.finish) this.finish();
        this.event('afterFinish');
        return;
      }
      var pos   = (timePos - this.startOn) / this.totalTime,
          frame = (pos * this.totalFrames).round();
      if (frame > this.currentFrame) {
        this.render(pos);
        this.currentFrame = frame;
      }
    }
  },
  cancel: function() {
    if (!this.options.sync)
      Effect.Queues.get(Object.isString(this.options.queue) ?
        'global' : this.options.queue.scope).remove(this);
    this.state = 'finished';
  },
  event: function(eventName) {
    if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);
    if (this.options[eventName]) this.options[eventName](this);
  },
  inspect: function() {
    var data = $H();
    for(property in this)
      if (!Object.isFunction(this[property])) data.set(property, this[property]);
    return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>';
  }
});

Effect.Parallel = Class.create(Effect.Base, {
  initialize: function(effects) {
    this.effects = effects || [];
    this.start(arguments[1]);
  },
  update: function(position) {
    this.effects.invoke('render', position);
  },
  finish: function(position) {
    this.effects.each( function(effect) {
      effect.render(1.0);
      effect.cancel();
      effect.event('beforeFinish');
      if (effect.finish) effect.finish(position);
      effect.event('afterFinish');
    });
  }
});

Effect.Tween = Class.create(Effect.Base, {
  initialize: function(object, from, to) {
    object = Object.isString(object) ? $(object) : object;
    var args = $A(arguments), method = args.last(),
      options = args.length == 5 ? args[3] : null;
    this.method = Object.isFunction(method) ? method.bind(object) :
      Object.isFunction(object[method]) ? object[method].bind(object) :
      function(value) { object[method] = value };
    this.start(Object.extend({ from: from, to: to }, options || { }));
  },
  update: function(position) {
    this.method(position);
  }
});

Effect.Event = Class.create(Effect.Base, {
  initialize: function() {
    this.start(Object.extend({ duration: 0 }, arguments[0] || { }));
  },
  update: Prototype.emptyFunction
});

Effect.Opacity = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    // make this work on IE on elements without 'layout'
    if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
      this.element.setStyle({zoom: 1});
    var options = Object.extend({
      from: this.element.getOpacity() || 0.0,
      to:   1.0
    }, arguments[1] || { });
    this.start(options);
  },
  update: function(position) {
    this.element.setOpacity(position);
  }
});

Effect.Move = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      x:    0,
      y:    0,
      mode: 'relative'
    }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    this.element.makePositioned();
    this.originalLeft = parseFloat(this.element.getStyle('left') || '0');
    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');
    if (this.options.mode == 'absolute') {
      this.options.x = this.options.x - this.originalLeft;
      this.options.y = this.options.y - this.originalTop;
    }
  },
  update: function(position) {
    this.element.setStyle({
      left: (this.options.x  * position + this.originalLeft).round() + 'px',
      top:  (this.options.y  * position + this.originalTop).round()  + 'px'
    });
  }
});

// for backwards compatibility
Effect.MoveBy = function(element, toTop, toLeft) {
  return new Effect.Move(element,
    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
};

Effect.Scale = Class.create(Effect.Base, {
  initialize: function(element, percent) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      scaleX: true,
      scaleY: true,
      scaleContent: true,
      scaleFromCenter: false,
      scaleMode: 'box',        // 'box' or 'contents' or { } with provided values
      scaleFrom: 100.0,
      scaleTo:   percent
    }, arguments[2] || { });
    this.start(options);
  },
  setup: function() {
    this.restoreAfterFinish = this.options.restoreAfterFinish || false;
    this.elementPositioning = this.element.getStyle('position');

    this.originalStyle = { };
    ['top','left','width','height','fontSize'].each( function(k) {
      this.originalStyle[k] = this.element.style[k];
    }.bind(this));

    this.originalTop  = this.element.offsetTop;
    this.originalLeft = this.element.offsetLeft;

    var fontSize = this.element.getStyle('font-size') || '100%';
    ['em','px','%','pt'].each( function(fontSizeType) {
      if (fontSize.indexOf(fontSizeType)>0) {
        this.fontSize     = parseFloat(fontSize);
        this.fontSizeType = fontSizeType;
      }
    }.bind(this));

    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;

    this.dims = null;
    if (this.options.scaleMode=='box')
      this.dims = [this.element.offsetHeight, this.element.offsetWidth];
    if (/^content/.test(this.options.scaleMode))
      this.dims = [this.element.scrollHeight, this.element.scrollWidth];
    if (!this.dims)
      this.dims = [this.options.scaleMode.originalHeight,
                   this.options.scaleMode.originalWidth];
  },
  update: function(position) {
    var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
    if (this.options.scaleContent && this.fontSize)
      this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });
    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);
  },
  finish: function(position) {
    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
  },
  setDimensions: function(height, width) {
    var d = { };
    if (this.options.scaleX) d.width = width.round() + 'px';
    if (this.options.scaleY) d.height = height.round() + 'px';
    if (this.options.scaleFromCenter) {
      var topd  = (height - this.dims[0])/2;
      var leftd = (width  - this.dims[1])/2;
      if (this.elementPositioning == 'absolute') {
        if (this.options.scaleY) d.top = this.originalTop-topd + 'px';
        if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px';
      } else {
        if (this.options.scaleY) d.top = -topd + 'px';
        if (this.options.scaleX) d.left = -leftd + 'px';
      }
    }
    this.element.setStyle(d);
  }
});

Effect.Highlight = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
    this.start(options);
  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
    // Disable background image during the effect
    this.oldStyle = { };
    if (!this.options.keepBackgroundImage) {
      this.oldStyle.backgroundImage = this.element.getStyle('background-image');
      this.element.setStyle({backgroundImage: 'none'});
    }
    if (!this.options.endcolor)
      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
    if (!this.options.restorecolor)
      this.options.restorecolor = this.element.getStyle('background-color');
    // init color calculations
    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
  },
  update: function(position) {
    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
  },
  finish: function() {
    this.element.setStyle(Object.extend(this.oldStyle, {
      backgroundColor: this.options.restorecolor
    }));
  }
});

Effect.ScrollTo = function(element) {
  var options = arguments[1] || { },
  scrollOffsets = document.viewport.getScrollOffsets(),
  elementOffsets = $(element).cumulativeOffset();

  if (options.offset) elementOffsets[1] += options.offset;

  return new Effect.Tween(null,
    scrollOffsets.top,
    elementOffsets[1],
    options,
    function(p){ scrollTo(scrollOffsets.left, p.round()); }
  );
};

/* ------------- combination effects ------------- */

Effect.Fade = function(element) {
  element = $(element);
  var oldOpacity = element.getInlineOpacity();
  var options = Object.extend({
    from: element.getOpacity() || 1.0,
    to:   0.0,
    afterFinishInternal: function(effect) {
      if (effect.options.to!=0) return;
      effect.element.hide().setStyle({opacity: oldOpacity});
    }
  }, arguments[1] || { });
  return new Effect.Opacity(element,options);
};

Effect.Appear = function(element) {
  element = $(element);
  var options = Object.extend({
  from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),
  to:   1.0,
  // force Safari to render floated elements properly
  afterFinishInternal: function(effect) {
    effect.element.forceRerendering();
  },
  beforeSetup: function(effect) {
    effect.element.setOpacity(effect.options.from).show();
  }}, arguments[1] || { });
  return new Effect.Opacity(element,options);
};

Effect.Puff = function(element) {
  element = $(element);
  var oldStyle = {
    opacity: element.getInlineOpacity(),
    position: element.getStyle('position'),
    top:  element.style.top,
    left: element.style.left,
    width: element.style.width,
    height: element.style.height
  };
  return new Effect.Parallel(
   [ new Effect.Scale(element, 200,
      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
     Object.extend({ duration: 1.0,
      beforeSetupInternal: function(effect) {
        Position.absolutize(effect.effects[0].element);
      },
      afterFinishInternal: function(effect) {
         effect.effects[0].element.hide().setStyle(oldStyle); }
     }, arguments[1] || { })
   );
};

Effect.BlindUp = function(element) {
  element = $(element);
  element.makeClipping();
  return new Effect.Scale(element, 0,
    Object.extend({ scaleContent: false,
      scaleX: false,
      restoreAfterFinish: true,
      afterFinishInternal: function(effect) {
        effect.element.hide().undoClipping();
      }
    }, arguments[1] || { })
  );
};

Effect.BlindDown = function(element) {
  element = $(element);
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({
    scaleContent: false,
    scaleX: false,
    scaleFrom: 0,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makeClipping().setStyle({height: '0px'}).show();
    },
    afterFinishInternal: function(effect) {
      effect.element.undoClipping();
    }
  }, arguments[1] || { }));
};

Effect.SwitchOff = function(element) {
  element = $(element);
  var oldOpacity = element.getInlineOpacity();
  return new Effect.Appear(element, Object.extend({
    duration: 0.4,
    from: 0,
    transition: Effect.Transitions.flicker,
    afterFinishInternal: function(effect) {
      new Effect.Scale(effect.element, 1, {
        duration: 0.3, scaleFromCenter: true,
        scaleX: false, scaleContent: false, restoreAfterFinish: true,
        beforeSetup: function(effect) {
          effect.element.makePositioned().makeClipping();
        },
        afterFinishInternal: function(effect) {
          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
        }
      });
    }
  }, arguments[1] || { }));
};

Effect.DropOut = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left'),
    opacity: element.getInlineOpacity() };
  return new Effect.Parallel(
    [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
    Object.extend(
      { duration: 0.5,
        beforeSetup: function(effect) {
          effect.effects[0].element.makePositioned();
        },
        afterFinishInternal: function(effect) {
          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
        }
      }, arguments[1] || { }));
};

Effect.Shake = function(element) {
  element = $(element);
  var options = Object.extend({
    distance: 20,
    duration: 0.5
  }, arguments[1] || {});
  var distance = parseFloat(options.distance);
  var split = parseFloat(options.duration) / 10.0;
  var oldStyle = {
    top: element.getStyle('top'),
    left: element.getStyle('left') };
    return new Effect.Move(element,
      { x:  distance, y: 0, duration: split, afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
    new Effect.Move(effect.element,
      { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
        effect.element.undoPositioned().setStyle(oldStyle);
  }}); }}); }}); }}); }}); }});
};

Effect.SlideDown = function(element) {
  element = $(element).cleanWhitespace();
  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
  var oldInnerBottom = element.down().getStyle('bottom');
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({
    scaleContent: false,
    scaleX: false,
    scaleFrom: window.opera ? 0 : 1,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makePositioned();
      effect.element.down().makePositioned();
      if (window.opera) effect.element.setStyle({top: ''});
      effect.element.makeClipping().setStyle({height: '0px'}).show();
    },
    afterUpdateInternal: function(effect) {
      effect.element.down().setStyle({bottom:
        (effect.dims[0] - effect.element.clientHeight) + 'px' });
    },
    afterFinishInternal: function(effect) {
      effect.element.undoClipping().undoPositioned();
      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }
    }, arguments[1] || { })
  );
};

Effect.SlideUp = function(element) {
  element = $(element).cleanWhitespace();
  var oldInnerBottom = element.down().getStyle('bottom');
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, window.opera ? 0 : 1,
   Object.extend({ scaleContent: false,
    scaleX: false,
    scaleMode: 'box',
    scaleFrom: 100,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makePositioned();
      effect.element.down().makePositioned();
      if (window.opera) effect.element.setStyle({top: ''});
      effect.element.makeClipping().show();
    },
    afterUpdateInternal: function(effect) {
      effect.element.down().setStyle({bottom:
        (effect.dims[0] - effect.element.clientHeight) + 'px' });
    },
    afterFinishInternal: function(effect) {
      effect.element.hide().undoClipping().undoPositioned();
      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
    }
   }, arguments[1] || { })
  );
};

// Bug in opera makes the TD containing this element expand for a instance after finish
Effect.Squish = function(element) {
  return new Effect.Scale(element, window.opera ? 1 : 0, {
    restoreAfterFinish: true,
    beforeSetup: function(effect) {
      effect.element.makeClipping();
    },
    afterFinishInternal: function(effect) {
      effect.element.hide().undoClipping();
    }
  });
};

Effect.Grow = function(element) {
  element = $(element);
  var options = Object.extend({
    direction: 'center',
    moveTransition: Effect.Transitions.sinoidal,
    scaleTransition: Effect.Transitions.sinoidal,
    opacityTransition: Effect.Transitions.full
  }, arguments[1] || { });
  var oldStyle = {
    top: element.style.top,
    left: element.style.left,
    height: element.style.height,
    width: element.style.width,
    opacity: element.getInlineOpacity() };

  var dims = element.getDimensions();
  var initialMoveX, initialMoveY;
  var moveX, moveY;

  switch (options.direction) {
    case 'top-left':
      initialMoveX = initialMoveY = moveX = moveY = 0;
      break;
    case 'top-right':
      initialMoveX = dims.width;
      initialMoveY = moveY = 0;
      moveX = -dims.width;
      break;
    case 'bottom-left':
      initialMoveX = moveX = 0;
      initialMoveY = dims.height;
      moveY = -dims.height;
      break;
    case 'bottom-right':
      initialMoveX = dims.width;
      initialMoveY = dims.height;
      moveX = -dims.width;
      moveY = -dims.height;
      break;
    case 'center':
      initialMoveX = dims.width / 2;
      initialMoveY = dims.height / 2;
      moveX = -dims.width / 2;
      moveY = -dims.height / 2;
      break;
  }

  return new Effect.Move(element, {
    x: initialMoveX,
    y: initialMoveY,
    duration: 0.01,
    beforeSetup: function(effect) {
      effect.element.hide().makeClipping().makePositioned();
    },
    afterFinishInternal: function(effect) {
      new Effect.Parallel(
        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
          new Effect.Scale(effect.element, 100, {
            scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
        ], Object.extend({
             beforeSetup: function(effect) {
               effect.effects[0].element.setStyle({height: '0px'}).show();
             },
             afterFinishInternal: function(effect) {
               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
             }
           }, options)
      );
    }
  });
};

Effect.Shrink = function(element) {
  element = $(element);
  var options = Object.extend({
    direction: 'center',
    moveTransition: Effect.Transitions.sinoidal,
    scaleTransition: Effect.Transitions.sinoidal,
    opacityTransition: Effect.Transitions.none
  }, arguments[1] || { });
  var oldStyle = {
    top: element.style.top,
    left: element.style.left,
    height: element.style.height,
    width: element.style.width,
    opacity: element.getInlineOpacity() };

  var dims = element.getDimensions();
  var moveX, moveY;

  switch (options.direction) {
    case 'top-left':
      moveX = moveY = 0;
      break;
    case 'top-right':
      moveX = dims.width;
      moveY = 0;
      break;
    case 'bottom-left':
      moveX = 0;
      moveY = dims.height;
      break;
    case 'bottom-right':
      moveX = dims.width;
      moveY = dims.height;
      break;
    case 'center':
      moveX = dims.width / 2;
      moveY = dims.height / 2;
      break;
  }

  return new Effect.Parallel(
    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
    ], Object.extend({
         beforeStartInternal: function(effect) {
           effect.effects[0].element.makePositioned().makeClipping();
         },
         afterFinishInternal: function(effect) {
           effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
       }, options)
  );
};

Effect.Pulsate = function(element) {
  element = $(element);
  var options    = arguments[1] || { },
    oldOpacity = element.getInlineOpacity(),
    transition = options.transition || Effect.Transitions.linear,
    reverser   = function(pos){
      return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5);
    };

  return new Effect.Opacity(element,
    Object.extend(Object.extend({  duration: 2.0, from: 0,
      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
    }, options), {transition: reverser}));
};

Effect.Fold = function(element) {
  element = $(element);
  var oldStyle = {
    top: element.style.top,
    left: element.style.left,
    width: element.style.width,
    height: element.style.height };
  element.makeClipping();
  return new Effect.Scale(element, 5, Object.extend({
    scaleContent: false,
    scaleX: false,
    afterFinishInternal: function(effect) {
    new Effect.Scale(element, 1, {
      scaleContent: false,
      scaleY: false,
      afterFinishInternal: function(effect) {
        effect.element.hide().undoClipping().setStyle(oldStyle);
      } });
  }}, arguments[1] || { }));
};

Effect.Morph = Class.create(Effect.Base, {
  initialize: function(element) {
    this.element = $(element);
    if (!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({
      style: { }
    }, arguments[1] || { });

    if (!Object.isString(options.style)) this.style = $H(options.style);
    else {
      if (options.style.include(':'))
        this.style = options.style.parseStyle();
      else {
        this.element.addClassName(options.style);
        this.style = $H(this.element.getStyles());
        this.element.removeClassName(options.style);
        var css = this.element.getStyles();
        this.style = this.style.reject(function(style) {
          return style.value == css[style.key];
        });
        options.afterFinishInternal = function(effect) {
          effect.element.addClassName(effect.options.style);
          effect.transforms.each(function(transform) {
            effect.element.style[transform.style] = '';
          });
        };
      }
    }
    this.start(options);
  },

  setup: function(){
    function parseColor(color){
      if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
      color = color.parseColor();
      return $R(0,2).map(function(i){
        return parseInt( color.slice(i*2+1,i*2+3), 16 );
      });
    }
    this.transforms = this.style.map(function(pair){
      var property = pair[0], value = pair[1], unit = null;

      if (value.parseColor('#zzzzzz') != '#zzzzzz') {
        value = value.parseColor();
        unit  = 'color';
      } else if (property == 'opacity') {
        value = parseFloat(value);
        if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
          this.element.setStyle({zoom: 1});
      } else if (Element.CSS_LENGTH.test(value)) {
          var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/);
          value = parseFloat(components[1]);
          unit = (components.length == 3) ? components[2] : null;
      }

      var originalValue = this.element.getStyle(property);
      return {
        style: property.camelize(),
        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
        targetValue: unit=='color' ? parseColor(value) : value,
        unit: unit
      };
    }.bind(this)).reject(function(transform){
      return (
        (transform.originalValue == transform.targetValue) ||
        (
          transform.unit != 'color' &&
          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
        )
      );
    });
  },
  update: function(position) {
    var style = { }, transform, i = this.transforms.length;
    while(i--)
      style[(transform = this.transforms[i]).style] =
        transform.unit=='color' ? '#'+
          (Math.round(transform.originalValue[0]+
            (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +
          (Math.round(transform.originalValue[1]+
            (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() +
          (Math.round(transform.originalValue[2]+
            (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
        (transform.originalValue +
          (transform.targetValue - transform.originalValue) * position).toFixed(3) +
            (transform.unit === null ? '' : transform.unit);
    this.element.setStyle(style, true);
  }
});

Effect.Transform = Class.create({
  initialize: function(tracks){
    this.tracks  = [];
    this.options = arguments[1] || { };
    this.addTracks(tracks);
  },
  addTracks: function(tracks){
    tracks.each(function(track){
      track = $H(track);
      var data = track.values().first();
      this.tracks.push($H({
        ids:     track.keys().first(),
        effect:  Effect.Morph,
        options: { style: data }
      }));
    }.bind(this));
    return this;
  },
  play: function(){
    return new Effect.Parallel(
      this.tracks.map(function(track){
        var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options');
        var elements = [$(ids) || $$(ids)].flatten();
        return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) });
      }).flatten(),
      this.options
    );
  }
});

Element.CSS_PROPERTIES = $w(
  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
  'fontSize fontWeight height left letterSpacing lineHeight ' +
  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
  'right textIndent top width wordSpacing zIndex');

Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;

String.__parseStyleElement = document.createElement('div');
String.prototype.parseStyle = function(){
  var style, styleRules = $H();
  if (Prototype.Browser.WebKit)
    style = new Element('div',{style:this}).style;
  else {
    String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>';
    style = String.__parseStyleElement.childNodes[0].style;
  }

  Element.CSS_PROPERTIES.each(function(property){
    if (style[property]) styleRules.set(property, style[property]);
  });

  if (Prototype.Browser.IE && this.include('opacity'))
    styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);

  return styleRules;
};

if (document.defaultView && document.defaultView.getComputedStyle) {
  Element.getStyles = function(element) {
    var css = document.defaultView.getComputedStyle($(element), null);
    return Element.CSS_PROPERTIES.inject({ }, function(styles, property) {
      styles[property] = css[property];
      return styles;
    });
  };
} else {
  Element.getStyles = function(element) {
    element = $(element);
    var css = element.currentStyle, styles;
    styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {
      results[property] = css[property];
      return results;
    });
    if (!styles.opacity) styles.opacity = element.getOpacity();
    return styles;
  };
}

Effect.Methods = {
  morph: function(element, style) {
    element = $(element);
    new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { }));
    return element;
  },
  visualEffect: function(element, effect, options) {
    element = $(element);
    var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
    new Effect[klass](element, options);
    return element;
  },
  highlight: function(element, options) {
    element = $(element);
    new Effect.Highlight(element, options);
    return element;
  }
};

$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
  'pulsate shake puff squish switchOff dropOut').each(
  function(effect) {
    Effect.Methods[effect] = function(element, options){
      element = $(element);
      Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
      return element;
    };
  }
);

$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
  function(f) { Effect.Methods[f] = Element[f]; }
);

Element.addMethods(Effect.Methods);
// script.aculo.us dragdrop.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//           (c) 2005-2008 Sammi Williams (http://www.oriontransfer.co.nz, sammi@oriontransfer.co.nz)
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

if(Object.isUndefined(Effect))
  throw("dragdrop.js requires including script.aculo.us' effects.js library");

var Droppables = {
  drops: [],

  remove: function(element) {
    this.drops = this.drops.reject(function(d) { return d.element==$(element) });
  },

  add: function(element) {
    element = $(element);
    var options = Object.extend({
      greedy:     true,
      hoverclass: null,
      tree:       false
    }, arguments[1] || { });

    // cache containers
    if(options.containment) {
      options._containers = [];
      var containment = options.containment;
      if(Object.isArray(containment)) {
        containment.each( function(c) { options._containers.push($(c)) });
      } else {
        options._containers.push($(containment));
      }
    }

    if(options.accept) options.accept = [options.accept].flatten();

    Element.makePositioned(element); // fix IE
    options.element = element;

    this.drops.push(options);
  },

  findDeepestChild: function(drops) {
    deepest = drops[0];

    for (i = 1; i < drops.length; ++i)
      if (Element.isParent(drops[i].element, deepest.element))
        deepest = drops[i];

    return deepest;
  },

  isContained: function(element, drop) {
    var containmentNode;
    if(drop.tree) {
      containmentNode = element.treeNode;
    } else {
      containmentNode = element.parentNode;
    }
    return drop._containers.detect(function(c) { return containmentNode == c });
  },

  isAffected: function(point, element, drop) {
    return (
      (drop.element!=element) &&
      ((!drop._containers) ||
        this.isContained(element, drop)) &&
      ((!drop.accept) ||
        (Element.classNames(element).detect(
          function(v) { return drop.accept.include(v) } ) )) &&
      Position.within(drop.element, point[0], point[1]) );
  },

  deactivate: function(drop) {
    if(drop.hoverclass)
      Element.removeClassName(drop.element, drop.hoverclass);
    this.last_active = null;
  },

  activate: function(drop) {
    if(drop.hoverclass)
      Element.addClassName(drop.element, drop.hoverclass);
    this.last_active = drop;
  },

  show: function(point, element) {
    if(!this.drops.length) return;
    var drop, affected = [];

    this.drops.each( function(drop) {
      if(Droppables.isAffected(point, element, drop))
        affected.push(drop);
    });

    if(affected.length>0)
      drop = Droppables.findDeepestChild(affected);

    if(this.last_active && this.last_active != drop) this.deactivate(this.last_active);
    if (drop) {
      Position.within(drop.element, point[0], point[1]);
      if(drop.onHover)
        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));

      if (drop != this.last_active) Droppables.activate(drop);
    }
  },

  fire: function(event, element) {
    if(!this.last_active) return;
    Position.prepare();

    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))
      if (this.last_active.onDrop) {
        this.last_active.onDrop(element, this.last_active.element, event);
        return true;
      }
  },

  reset: function() {
    if(this.last_active)
      this.deactivate(this.last_active);
  }
};

var Draggables = {
  drags: [],
  observers: [],

  register: function(draggable) {
    if(this.drags.length == 0) {
      this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
      this.eventMouseMove = this.updateDrag.bindAsEventListener(this);
      this.eventKeypress  = this.keyPress.bindAsEventListener(this);

      Event.observe(document, "mouseup", this.eventMouseUp);
      Event.observe(draggable.element, "mousemove", this.eventMouseMove);
      Event.observe(document, "keypress", this.eventKeypress);
    }
    this.drags.push(draggable);
  },

  unregister: function(draggable) {
    this.drags = this.drags.reject(function(d) { return d==draggable });
    if(this.drags.length == 0) {
      Event.stopObserving(document, "mouseup", this.eventMouseUp);
      Event.stopObserving(draggable.element, "mousemove", this.eventMouseMove);
      Event.stopObserving(document, "keypress", this.eventKeypress);
    }
  },

  activate: function(draggable) {
    if(draggable.options.delay) {
      this._timeout = setTimeout(function() {
        Draggables._timeout = null;
        window.focus();
        Draggables.activeDraggable = draggable;
      }.bind(this), draggable.options.delay);
    } else {
      window.focus(); // allows keypress events if window isn't currently focused, fails for Safari
      this.activeDraggable = draggable;
    }
  },

  deactivate: function() {
    this.activeDraggable = null;
  },

  updateDrag: function(event) {
    if(!this.activeDraggable) return;
    var pointer = [Event.pointerX(event), Event.pointerY(event)];
    // Mozilla-based browsers fire successive mousemove events with
    // the same coordinates, prevent needless redrawing (moz bug?)
    if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
    this._lastPointer = pointer;

    this.activeDraggable.updateDrag(event, pointer);
  },

  endDrag: function(event) {
    if(this._timeout) {
      clearTimeout(this._timeout);
      this._timeout = null;
    }
    if(!this.activeDraggable) return;
    this._lastPointer = null;
    this.activeDraggable.endDrag(event);
    this.activeDraggable = null;
  },

  keyPress: function(event) {
    if(this.activeDraggable)
      this.activeDraggable.keyPress(event);
  },

  addObserver: function(observer) {
    this.observers.push(observer);
    this._cacheObserverCallbacks();
  },

  removeObserver: function(element) {  // element instead of observer fixes mem leaks
    this.observers = this.observers.reject( function(o) { return o.element==element });
    this._cacheObserverCallbacks();
  },

  notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'
    if(this[eventName+'Count'] > 0)
      this.observers.each( function(o) {
        if(o[eventName]) o[eventName](eventName, draggable, event);
      });
    if(draggable.options[eventName]) draggable.options[eventName](draggable, event);
  },

  _cacheObserverCallbacks: function() {
    ['onStart','onEnd','onDrag'].each( function(eventName) {
      Draggables[eventName+'Count'] = Draggables.observers.select(
        function(o) { return o[eventName]; }
      ).length;
    });
  }
};

/*--------------------------------------------------------------------------*/

var Draggable = Class.create({
  initialize: function(element) {
    var defaults = {
      handle: false,
      reverteffect: function(element, top_offset, left_offset) {
        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;
        new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur,
          queue: {scope:'_draggable', position:'end'}
        });
      },
      endeffect: function(element) {
        var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;
        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
          queue: {scope:'_draggable', position:'end'},
          afterFinish: function(){
            Draggable._dragging[element] = false
          }
        });
      },
      zindex: 1000,
      revert: false,
      quiet: false,
      scroll: false,
      scrollSensitivity: 20,
      scrollSpeed: 15,
      snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }
      delay: 0
    };

    if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))
      Object.extend(defaults, {
        starteffect: function(element) {
          element._opacity = Element.getOpacity(element);
          Draggable._dragging[element] = true;
          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});
        }
      });

    var options = Object.extend(defaults, arguments[1] || { });

    this.element = $(element);

    if(options.handle && Object.isString(options.handle))
      this.handle = this.element.down('.'+options.handle, 0);

    if(!this.handle) this.handle = $(options.handle);
    if(!this.handle) this.handle = this.element;

    if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {
      options.scroll = $(options.scroll);
      this._isScrollChild = Element.childOf(this.element, options.scroll);
    }

    Element.makePositioned(this.element); // fix IE

    this.options  = options;
    this.dragging = false;

    this.eventMouseDown = this.initDrag.bindAsEventListener(this);
    Event.observe(this.handle, "mousedown", this.eventMouseDown);

    Draggables.register(this);
  },

  destroy: function() {
    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
    Draggables.unregister(this);
  },

  currentDelta: function() {
    return([
      parseInt(Element.getStyle(this.element,'left') || '0'),
      parseInt(Element.getStyle(this.element,'top') || '0')]);
  },

  initDrag: function(event) {
    if(!Object.isUndefined(Draggable._dragging[this.element]) &&
      Draggable._dragging[this.element]) return;
    if(Event.isLeftClick(event)) {
      // abort on form elements, fixes a Firefox issue
      var src = Event.element(event);
      if((tag_name = src.tagName.toUpperCase()) && (
        tag_name=='INPUT' ||
        tag_name=='SELECT' ||
        tag_name=='OPTION' ||
        tag_name=='BUTTON' ||
        tag_name=='TEXTAREA')) return;

      var pointer = [Event.pointerX(event), Event.pointerY(event)];
      var pos     = Position.cumulativeOffset(this.element);
      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });

      Draggables.activate(this);
      Event.stop(event);
    }
  },

  startDrag: function(event) {
    this.dragging = true;
    if(!this.delta)
      this.delta = this.currentDelta();

    if(this.options.zindex) {
      this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
      this.element.style.zIndex = this.options.zindex;
    }

    if(this.options.ghosting) {
      this._clone = this.element.cloneNode(true);
      this._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
      if (!this._originallyAbsolute)
        Position.absolutize(this.element);
      this.element.parentNode.insertBefore(this._clone, this.element);
    }

    if(this.options.scroll) {
      if (this.options.scroll == window) {
        var where = this._getWindowScroll(this.options.scroll);
        this.originalScrollLeft = where.left;
        this.originalScrollTop = where.top;
      } else {
        this.originalScrollLeft = this.options.scroll.scrollLeft;
        this.originalScrollTop = this.options.scroll.scrollTop;
      }
    }

    Draggables.notify('onStart', this, event);

    if(this.options.starteffect) this.options.starteffect(this.element);
  },

  updateDrag: function(event, pointer) {
    if(!this.dragging) this.startDrag(event);

    if(!this.options.quiet){
      Position.prepare();
      Droppables.show(pointer, this.element);
    }

    Draggables.notify('onDrag', this, event);

    this.draw(pointer);
    if(this.options.change) this.options.change(this);

    if(this.options.scroll) {
      this.stopScrolling();

      var p;
      if (this.options.scroll == window) {
        with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }
      } else {
        p = Position.page(this.options.scroll);
        p[0] += this.options.scroll.scrollLeft + Position.deltaX;
        p[1] += this.options.scroll.scrollTop + Position.deltaY;
        p.push(p[0]+this.options.scroll.offsetWidth);
        p.push(p[1]+this.options.scroll.offsetHeight);
      }
      var speed = [0,0];
      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);
      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);
      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);
      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);
      this.startScrolling(speed);
    }

    // fix AppleWebKit rendering
    if(Prototype.Browser.WebKit) window.scrollBy(0,0);

    Event.stop(event);
  },

  finishDrag: function(event, success) {
    this.dragging = false;

    if(this.options.quiet){
      Position.prepare();
      var pointer = [Event.pointerX(event), Event.pointerY(event)];
      Droppables.show(pointer, this.element);
    }

    if(this.options.ghosting) {
      if (!this._originallyAbsolute)
        Position.relativize(this.element);
      delete this._originallyAbsolute;
      Element.remove(this._clone);
      this._clone = null;
    }

    var dropped = false;
    if(success) {
      dropped = Droppables.fire(event, this.element);
      if (!dropped) dropped = false;
    }
    if(dropped && this.options.onDropped) this.options.onDropped(this.element);
    Draggables.notify('onEnd', this, event);

    var revert = this.options.revert;
    if(revert && Object.isFunction(revert)) revert = revert(this.element);

    var d = this.currentDelta();
    if(revert && this.options.reverteffect) {
      if (dropped == 0 || revert != 'failure')
        this.options.reverteffect(this.element,
          d[1]-this.delta[1], d[0]-this.delta[0]);
    } else {
      this.delta = d;
    }

    if(this.options.zindex)
      this.element.style.zIndex = this.originalZ;

    if(this.options.endeffect)
      this.options.endeffect(this.element);

    Draggables.deactivate(this);
    Droppables.reset();
  },

  keyPress: function(event) {
    if(event.keyCode!=Event.KEY_ESC) return;
    this.finishDrag(event, false);
    Event.stop(event);
  },

  endDrag: function(event) {
    if(!this.dragging) return;
    this.stopScrolling();
    this.finishDrag(event, true);
    Event.stop(event);
  },

  draw: function(point) {
    var pos = Position.cumulativeOffset(this.element);
    if(this.options.ghosting) {
      var r   = Position.realOffset(this.element);
      pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;
    }

    var d = this.currentDelta();
    pos[0] -= d[0]; pos[1] -= d[1];

    if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {
      pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;
      pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;
    }

    var p = [0,1].map(function(i){
      return (point[i]-pos[i]-this.offset[i])
    }.bind(this));

    if(this.options.snap) {
      if(Object.isFunction(this.options.snap)) {
        p = this.options.snap(p[0],p[1],this);
      } else {
      if(Object.isArray(this.options.snap)) {
        p = p.map( function(v, i) {
          return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this));
      } else {
        p = p.map( function(v) {
          return (v/this.options.snap).round()*this.options.snap }.bind(this));
      }
    }}

    var style = this.element.style;
    if((!this.options.constraint) || (this.options.constraint=='horizontal'))
      style.left = p[0] + "px";
    if((!this.options.constraint) || (this.options.constraint=='vertical'))
      style.top  = p[1] + "px";

    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
  },

  stopScrolling: function() {
    if(this.scrollInterval) {
      clearInterval(this.scrollInterval);
      this.scrollInterval = null;
      Draggables._lastScrollPointer = null;
    }
  },

  startScrolling: function(speed) {
    if(!(speed[0] || speed[1])) return;
    this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];
    this.lastScrolled = new Date();
    this.scrollInterval = setInterval(this.scroll.bind(this), 10);
  },

  scroll: function() {
    var current = new Date();
    var delta = current - this.lastScrolled;
    this.lastScrolled = current;
    if(this.options.scroll == window) {
      with (this._getWindowScroll(this.options.scroll)) {
        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {
          var d = delta / 1000;
          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );
        }
      }
    } else {
      this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;
      this.options.scroll.scrollTop  += this.scrollSpeed[1] * delta / 1000;
    }

    Position.prepare();
    Droppables.show(Draggables._lastPointer, this.element);
    Draggables.notify('onDrag', this);
    if (this._isScrollChild) {
      Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer);
      Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000;
      Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000;
      if (Draggables._lastScrollPointer[0] < 0)
        Draggables._lastScrollPointer[0] = 0;
      if (Draggables._lastScrollPointer[1] < 0)
        Draggables._lastScrollPointer[1] = 0;
      this.draw(Draggables._lastScrollPointer);
    }

    if(this.options.change) this.options.change(this);
  },

  _getWindowScroll: function(w) {
    var T, L, W, H;
    with (w.document) {
      if (w.document.documentElement && documentElement.scrollTop) {
        T = documentElement.scrollTop;
        L = documentElement.scrollLeft;
      } else if (w.document.body) {
        T = body.scrollTop;
        L = body.scrollLeft;
      }
      if (w.innerWidth) {
        W = w.innerWidth;
        H = w.innerHeight;
      } else if (w.document.documentElement && documentElement.clientWidth) {
        W = documentElement.clientWidth;
        H = documentElement.clientHeight;
      } else {
        W = body.offsetWidth;
        H = body.offsetHeight;
      }
    }
    return { top: T, left: L, width: W, height: H };
  }
});

Draggable._dragging = { };

/*--------------------------------------------------------------------------*/

var SortableObserver = Class.create({
  initialize: function(element, observer) {
    this.element   = $(element);
    this.observer  = observer;
    this.lastValue = Sortable.serialize(this.element);
  },

  onStart: function() {
    this.lastValue = Sortable.serialize(this.element);
  },

  onEnd: function() {
    Sortable.unmark();
    if(this.lastValue != Sortable.serialize(this.element))
      this.observer(this.element)
  }
});

var Sortable = {
  SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,

  sortables: { },

  _findRootElement: function(element) {
    while (element.tagName.toUpperCase() != "BODY") {
      if(element.id && Sortable.sortables[element.id]) return element;
      element = element.parentNode;
    }
  },

  options: function(element) {
    element = Sortable._findRootElement($(element));
    if(!element) return;
    return Sortable.sortables[element.id];
  },

  destroy: function(element){
    element = $(element);
    var s = Sortable.sortables[element.id];

    if(s) {
      Draggables.removeObserver(s.element);
      s.droppables.each(function(d){ Droppables.remove(d) });
      s.draggables.invoke('destroy');

      delete Sortable.sortables[s.element.id];
    }
  },

  create: function(element) {
    element = $(element);
    var options = Object.extend({
      element:     element,
      tag:         'li',       // assumes li children, override with tag: 'tagname'
      dropOnEmpty: false,
      tree:        false,
      treeTag:     'ul',
      overlap:     'vertical', // one of 'vertical', 'horizontal'
      constraint:  'vertical', // one of 'vertical', 'horizontal', false
      containment: element,    // also takes array of elements (or id's); or false
      handle:      false,      // or a CSS class
      only:        false,
      delay:       0,
      hoverclass:  null,
      ghosting:    false,
      quiet:       false,
      scroll:      false,
      scrollSensitivity: 20,
      scrollSpeed: 15,
      format:      this.SERIALIZE_RULE,

      // these take arrays of elements or ids and can be
      // used for better initialization performance
      elements:    false,
      handles:     false,

      onChange:    Prototype.emptyFunction,
      onUpdate:    Prototype.emptyFunction
    }, arguments[1] || { });

    // clear any old sortable with same element
    this.destroy(element);

    // build options for the draggables
    var options_for_draggable = {
      revert:      true,
      quiet:       options.quiet,
      scroll:      options.scroll,
      scrollSpeed: options.scrollSpeed,
      scrollSensitivity: options.scrollSensitivity,
      delay:       options.delay,
      ghosting:    options.ghosting,
      constraint:  options.constraint,
      handle:      options.handle };

    if(options.starteffect)
      options_for_draggable.starteffect = options.starteffect;

    if(options.reverteffect)
      options_for_draggable.reverteffect = options.reverteffect;
    else
      if(options.ghosting) options_for_draggable.reverteffect = function(element) {
        element.style.top  = 0;
        element.style.left = 0;
      };

    if(options.endeffect)
      options_for_draggable.endeffect = options.endeffect;

    if(options.zindex)
      options_for_draggable.zindex = options.zindex;

    // build options for the droppables
    var options_for_droppable = {
      overlap:     options.overlap,
      containment: options.containment,
      tree:        options.tree,
      hoverclass:  options.hoverclass,
      onHover:     Sortable.onHover
    };

    var options_for_tree = {
      onHover:      Sortable.onEmptyHover,
      overlap:      options.overlap,
      containment:  options.containment,
      hoverclass:   options.hoverclass
    };

    // fix for gecko engine
    Element.cleanWhitespace(element);

    options.draggables = [];
    options.droppables = [];

    // drop on empty handling
    if(options.dropOnEmpty || options.tree) {
      Droppables.add(element, options_for_tree);
      options.droppables.push(element);
    }

    (options.elements || this.findElements(element, options) || []).each( function(e,i) {
      var handle = options.handles ? $(options.handles[i]) :
        (options.handle ? $(e).select('.' + options.handle)[0] : e);
      options.draggables.push(
        new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));
      Droppables.add(e, options_for_droppable);
      if(options.tree) e.treeNode = element;
      options.droppables.push(e);
    });

    if(options.tree) {
      (Sortable.findTreeElements(element, options) || []).each( function(e) {
        Droppables.add(e, options_for_tree);
        e.treeNode = element;
        options.droppables.push(e);
      });
    }

    // keep reference
    this.sortables[element.id] = options;

    // for onupdate
    Draggables.addObserver(new SortableObserver(element, options.onUpdate));

  },

  // return all suitable-for-sortable elements in a guaranteed order
  findElements: function(element, options) {
    return Element.findChildren(
      element, options.only, options.tree ? true : false, options.tag);
  },

  findTreeElements: function(element, options) {
    return Element.findChildren(
      element, options.only, options.tree ? true : false, options.treeTag);
  },

  onHover: function(element, dropon, overlap) {
    if(Element.isParent(dropon, element)) return;

    if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {
      return;
    } else if(overlap>0.5) {
      Sortable.mark(dropon, 'before');
      if(dropon.previousSibling != element) {
        var oldParentNode = element.parentNode;
        element.style.visibility = "hidden"; // fix gecko rendering
        dropon.parentNode.insertBefore(element, dropon);
        if(dropon.parentNode!=oldParentNode)
          Sortable.options(oldParentNode).onChange(element);
        Sortable.options(dropon.parentNode).onChange(element);
      }
    } else {
      Sortable.mark(dropon, 'after');
      var nextElement = dropon.nextSibling || null;
      if(nextElement != element) {
        var oldParentNode = element.parentNode;
        element.style.visibility = "hidden"; // fix gecko rendering
        dropon.parentNode.insertBefore(element, nextElement);
        if(dropon.parentNode!=oldParentNode)
          Sortable.options(oldParentNode).onChange(element);
        Sortable.options(dropon.parentNode).onChange(element);
      }
    }
  },

  onEmptyHover: function(element, dropon, overlap) {
    var oldParentNode = element.parentNode;
    var droponOptions = Sortable.options(dropon);

    if(!Element.isParent(dropon, element)) {
      var index;

      var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});
      var child = null;

      if(children) {
        var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);

        for (index = 0; index < children.length; index += 1) {
          if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {
            offset -= Element.offsetSize (children[index], droponOptions.overlap);
          } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) {
            child = index + 1 < children.length ? children[index + 1] : null;
            break;
          } else {
            child = children[index];
            break;
          }
        }
      }

      dropon.insertBefore(element, child);

      Sortable.options(oldParentNode).onChange(element);
      droponOptions.onChange(element);
    }
  },

  unmark: function() {
    if(Sortable._marker) Sortable._marker.hide();
  },

  mark: function(dropon, position) {
    // mark on ghosting only
    var sortable = Sortable.options(dropon.parentNode);
    if(sortable && !sortable.ghosting) return;

    if(!Sortable._marker) {
      Sortable._marker =
        ($('dropmarker') || Element.extend(document.createElement('DIV'))).
          hide().addClassName('dropmarker').setStyle({position:'absolute'});
      document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);
    }
    var offsets = Position.cumulativeOffset(dropon);
    Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'});

    if(position=='after')
      if(sortable.overlap == 'horizontal')
        Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'});
      else
        Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'});

    Sortable._marker.show();
  },

  _tree: function(element, options, parent) {
    var children = Sortable.findElements(element, options) || [];

    for (var i = 0; i < children.length; ++i) {
      var match = children[i].id.match(options.format);

      if (!match) continue;

      var child = {
        id: encodeURIComponent(match ? match[1] : null),
        element: element,
        parent: parent,
        children: [],
        position: parent.children.length,
        container: $(children[i]).down(options.treeTag)
      };

      /* Get the element containing the children and recurse over it */
      if (child.container)
        this._tree(child.container, options, child);

      parent.children.push (child);
    }

    return parent;
  },

  tree: function(element) {
    element = $(element);
    var sortableOptions = this.options(element);
    var options = Object.extend({
      tag: sortableOptions.tag,
      treeTag: sortableOptions.treeTag,
      only: sortableOptions.only,
      name: element.id,
      format: sortableOptions.format
    }, arguments[1] || { });

    var root = {
      id: null,
      parent: null,
      children: [],
      container: element,
      position: 0
    };

    return Sortable._tree(element, options, root);
  },

  /* Construct a [i] index for a particular node */
  _constructIndex: function(node) {
    var index = '';
    do {
      if (node.id) index = '[' + node.position + ']' + index;
    } while ((node = node.parent) != null);
    return index;
  },

  sequence: function(element) {
    element = $(element);
    var options = Object.extend(this.options(element), arguments[1] || { });

    return $(this.findElements(element, options) || []).map( function(item) {
      return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
    });
  },

  setSequence: function(element, new_sequence) {
    element = $(element);
    var options = Object.extend(this.options(element), arguments[2] || { });

    var nodeMap = { };
    this.findElements(element, options).each( function(n) {
        if (n.id.match(options.format))
            nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
        n.parentNode.removeChild(n);
    });

    new_sequence.each(function(ident) {
      var n = nodeMap[ident];
      if (n) {
        n[1].appendChild(n[0]);
        delete nodeMap[ident];
      }
    });
  },

  serialize: function(element) {
    element = $(element);
    var options = Object.extend(Sortable.options(element), arguments[1] || { });
    var name = encodeURIComponent(
      (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);

    if (options.tree) {
      return Sortable.tree(element, arguments[1]).children.map( function (item) {
        return [name + Sortable._constructIndex(item) + "[id]=" +
                encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));
      }).flatten().join('&');
    } else {
      return Sortable.sequence(element, arguments[1]).map( function(item) {
        return name + "[]=" + encodeURIComponent(item);
      }).join('&');
    }
  }
};

// Returns true if child is contained within element
Element.isParent = function(child, element) {
  if (!child.parentNode || child == element) return false;
  if (child.parentNode == element) return true;
  return Element.isParent(child.parentNode, element);
};

Element.findChildren = function(element, only, recursive, tagName) {
  if(!element.hasChildNodes()) return null;
  tagName = tagName.toUpperCase();
  if(only) only = [only].flatten();
  var elements = [];
  $A(element.childNodes).each( function(e) {
    if(e.tagName && e.tagName.toUpperCase()==tagName &&
      (!only || (Element.classNames(e).detect(function(v) { return only.include(v) }))))
        elements.push(e);
    if(recursive) {
      var grandchildren = Element.findChildren(e, only, recursive, tagName);
      if(grandchildren) elements.push(grandchildren);
    }
  });

  return (elements.length>0 ? elements.flatten() : []);
};

Element.offsetSize = function (element, type) {
  return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')];
};
// script.aculo.us controls.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
//           (c) 2005-2008 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
//           (c) 2005-2008 Jon Tirsen (http://www.tirsen.com)
// Contributors:
//  Richard Livsey
//  Rahul Bhargava
//  Rob Wills
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

// Autocompleter.Base handles all the autocompletion functionality
// that's independent of the data source for autocompletion. This
// includes drawing the autocompletion menu, observing keyboard
// and mouse events, and similar.
//
// Specific autocompleters need to provide, at the very least,
// a getUpdatedChoices function that will be invoked every time
// the text inside the monitored textbox changes. This method
// should get the text for which to provide autocompletion by
// invoking this.getToken(), NOT by directly accessing
// this.element.value. This is to allow incremental tokenized
// autocompletion. Specific auto-completion logic (AJAX, etc)
// belongs in getUpdatedChoices.
//
// Tokenized incremental autocompletion is enabled automatically
// when an autocompleter is instantiated with the 'tokens' option
// in the options parameter, e.g.:
// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
// will incrementally autocomplete with a comma as the token.
// Additionally, ',' in the above example can be replaced with
// a token array, e.g. { tokens: [',', '\n'] } which
// enables autocompletion on multiple tokens. This is most
// useful when one of the tokens is \n (a newline), as it
// allows smart autocompletion after linebreaks.

if(typeof Effect == 'undefined')
  throw("controls.js requires including script.aculo.us' effects.js library");

var Autocompleter = { };
Autocompleter.Base = Class.create({
  baseInitialize: function(element, update, options) {
    element          = $(element);
    this.element     = element;
    this.update      = $(update);
    this.hasFocus    = false;
    this.changed     = false;
    this.active      = false;
    this.index       = 0;
    this.entryCount  = 0;
    this.oldElementValue = this.element.value;

    if(this.setOptions)
      this.setOptions(options);
    else
      this.options = options || { };

    this.options.paramName    = this.options.paramName || this.element.name;
    this.options.tokens       = this.options.tokens || [];
    this.options.frequency    = this.options.frequency || 0.4;
    this.options.minChars     = this.options.minChars || 1;
    this.options.onShow       = this.options.onShow ||
      function(element, update){
        if(!update.style.position || update.style.position=='absolute') {
          update.style.position = 'absolute';
          Position.clone(element, update, {
            setHeight: false,
            offsetTop: element.offsetHeight
          });
        }
        Effect.Appear(update,{duration:0.15});
      };
    this.options.onHide = this.options.onHide ||
      function(element, update){ new Effect.Fade(update,{duration:0.15}) };

    if(typeof(this.options.tokens) == 'string')
      this.options.tokens = new Array(this.options.tokens);
    // Force carriage returns as token delimiters anyway
    if (!this.options.tokens.include('\n'))
      this.options.tokens.push('\n');

    this.observer = null;

    this.element.setAttribute('autocomplete','off');

    Element.hide(this.update);

    Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
    Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this));
  },

  show: function() {
    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
    if(!this.iefix &&
      (Prototype.Browser.IE) &&
      (Element.getStyle(this.update, 'position')=='absolute')) {
      new Insertion.After(this.update,
       '<iframe id="' + this.update.id + '_iefix" '+
       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
      this.iefix = $(this.update.id+'_iefix');
    }
    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
  },

  fixIEOverlapping: function() {
    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
    this.iefix.style.zIndex = 1;
    this.update.style.zIndex = 2;
    Element.show(this.iefix);
  },

  hide: function() {
    this.stopIndicator();
    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
    if(this.iefix) Element.hide(this.iefix);
  },

  startIndicator: function() {
    if(this.options.indicator) Element.show(this.options.indicator);
  },

  stopIndicator: function() {
    if(this.options.indicator) Element.hide(this.options.indicator);
  },

  onKeyPress: function(event) {
    if(this.active)
      switch(event.keyCode) {
       case Event.KEY_TAB:
       case Event.KEY_RETURN:
         this.selectEntry();
         Event.stop(event);
       case Event.KEY_ESC:
         this.hide();
         this.active = false;
         Event.stop(event);
         return;
       case Event.KEY_LEFT:
       case Event.KEY_RIGHT:
         return;
       case Event.KEY_UP:
         this.markPrevious();
         this.render();
         Event.stop(event);
         return;
       case Event.KEY_DOWN:
         this.markNext();
         this.render();
         Event.stop(event);
         return;
      }
     else
       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
         (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;

    this.changed = true;
    this.hasFocus = true;

    if(this.observer) clearTimeout(this.observer);
      this.observer =
        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
  },

  activate: function() {
    this.changed = false;
    this.hasFocus = true;
    this.getUpdatedChoices();
  },

  onHover: function(event) {
    var element = Event.findElement(event, 'LI');
    if(this.index != element.autocompleteIndex)
    {
        this.index = element.autocompleteIndex;
        this.render();
    }
    Event.stop(event);
  },

  onClick: function(event) {
    var element = Event.findElement(event, 'LI');
    this.index = element.autocompleteIndex;
    this.selectEntry();
    this.hide();
  },

  onBlur: function(event) {
    // needed to make click events working
    setTimeout(this.hide.bind(this), 250);
    this.hasFocus = false;
    this.active = false;
  },

  render: function() {
    if(this.entryCount > 0) {
      for (var i = 0; i < this.entryCount; i++)
        this.index==i ?
          Element.addClassName(this.getEntry(i),"selected") :
          Element.removeClassName(this.getEntry(i),"selected");
      if(this.hasFocus) {
        this.show();
        this.active = true;
      }
    } else {
      this.active = false;
      this.hide();
    }
  },

  markPrevious: function() {
    if(this.index > 0) this.index--;
      else this.index = this.entryCount-1;
    //this.getEntry(this.index).scrollIntoView(true); useless
  },

  markNext: function() {
    if(this.index < this.entryCount-1) this.index++;
      else this.index = 0;
    this.getEntry(this.index).scrollIntoView(false);
  },

  getEntry: function(index) {
    return this.update.firstChild.childNodes[index];
  },

  getCurrentEntry: function() {
    return this.getEntry(this.index);
  },

  selectEntry: function() {
    this.active = false;
    this.updateElement(this.getCurrentEntry());
  },

  updateElement: function(selectedElement) {
    if (this.options.updateElement) {
      this.options.updateElement(selectedElement);
      return;
    }
    var value = '';
    if (this.options.select) {
      var nodes = $(selectedElement).select('.' + this.options.select) || [];
      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
    } else
      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');

    var bounds = this.getTokenBounds();
    if (bounds[0] != -1) {
      var newValue = this.element.value.substr(0, bounds[0]);
      var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
      if (whitespace)
        newValue += whitespace[0];
      this.element.value = newValue + value + this.element.value.substr(bounds[1]);
    } else {
      this.element.value = value;
    }
    this.oldElementValue = this.element.value;
    this.element.focus();

    if (this.options.afterUpdateElement)
      this.options.afterUpdateElement(this.element, selectedElement);
  },

  updateChoices: function(choices) {
    if(!this.changed && this.hasFocus) {
      this.update.innerHTML = choices;
      Element.cleanWhitespace(this.update);
      Element.cleanWhitespace(this.update.down());

      if(this.update.firstChild && this.update.down().childNodes) {
        this.entryCount =
          this.update.down().childNodes.length;
        for (var i = 0; i < this.entryCount; i++) {
          var entry = this.getEntry(i);
          entry.autocompleteIndex = i;
          this.addObservers(entry);
        }
      } else {
        this.entryCount = 0;
      }

      this.stopIndicator();
      this.index = 0;

      if(this.entryCount==1 && this.options.autoSelect) {
        this.selectEntry();
        this.hide();
      } else {
        this.render();
      }
    }
  },

  addObservers: function(element) {
    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
    Event.observe(element, "click", this.onClick.bindAsEventListener(this));
  },

  onObserverEvent: function() {
    this.changed = false;
    this.tokenBounds = null;
    if(this.getToken().length>=this.options.minChars) {
      this.getUpdatedChoices();
    } else {
      this.active = false;
      this.hide();
    }
    this.oldElementValue = this.element.value;
  },

  getToken: function() {
    var bounds = this.getTokenBounds();
    return this.element.value.substring(bounds[0], bounds[1]).strip();
  },

  getTokenBounds: function() {
    if (null != this.tokenBounds) return this.tokenBounds;
    var value = this.element.value;
    if (value.strip().empty()) return [-1, 0];
    var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
    var offset = (diff == this.oldElementValue.length ? 1 : 0);
    var prevTokenPos = -1, nextTokenPos = value.length;
    var tp;
    for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
      tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
      if (tp > prevTokenPos) prevTokenPos = tp;
      tp = value.indexOf(this.options.tokens[index], diff + offset);
      if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
    }
    return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
  }
});

Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
  var boundary = Math.min(newS.length, oldS.length);
  for (var index = 0; index < boundary; ++index)
    if (newS[index] != oldS[index])
      return index;
  return boundary;
};

Ajax.Autocompleter = Class.create(Autocompleter.Base, {
  initialize: function(element, update, url, options) {
    this.baseInitialize(element, update, options);
    this.options.asynchronous  = true;
    this.options.onComplete    = this.onComplete.bind(this);
    this.options.defaultParams = this.options.parameters || null;
    this.url                   = url;
  },

  getUpdatedChoices: function() {
    this.startIndicator();

    var entry = encodeURIComponent(this.options.paramName) + '=' +
      encodeURIComponent(this.getToken());

    this.options.parameters = this.options.callback ?
      this.options.callback(this.element, entry) : entry;

    if(this.options.defaultParams)
      this.options.parameters += '&' + this.options.defaultParams;

    new Ajax.Request(this.url, this.options);
  },

  onComplete: function(request) {
    this.updateChoices(request.responseText);
  }
});

// The local array autocompleter. Used when you'd prefer to
// inject an array of autocompletion options into the page, rather
// than sending out Ajax queries, which can be quite slow sometimes.
//
// The constructor takes four parameters. The first two are, as usual,
// the id of the monitored textbox, and id of the autocompletion menu.
// The third is the array you want to autocomplete from, and the fourth
// is the options block.
//
// Extra local autocompletion options:
// - choices - How many autocompletion choices to offer
//
// - partialSearch - If false, the autocompleter will match entered
//                    text only at the beginning of strings in the
//                    autocomplete array. Defaults to true, which will
//                    match text at the beginning of any *word* in the
//                    strings in the autocomplete array. If you want to
//                    search anywhere in the string, additionally set
//                    the option fullSearch to true (default: off).
//
// - fullSsearch - Search anywhere in autocomplete array strings.
//
// - partialChars - How many characters to enter before triggering
//                   a partial match (unlike minChars, which defines
//                   how many characters are required to do any match
//                   at all). Defaults to 2.
//
// - ignoreCase - Whether to ignore case when autocompleting.
//                 Defaults to true.
//
// It's possible to pass in a custom function as the 'selector'
// option, if you prefer to write your own autocompletion logic.
// In that case, the other options above will not apply unless
// you support them.

Autocompleter.Local = Class.create(Autocompleter.Base, {
  initialize: function(element, update, array, options) {
    this.baseInitialize(element, update, options);
    this.options.array = array;
  },

  getUpdatedChoices: function() {
    this.updateChoices(this.options.selector(this));
  },

  setOptions: function(options) {
    this.options = Object.extend({
      choices: 10,
      partialSearch: true,
      partialChars: 2,
      ignoreCase: true,
      fullSearch: false,
      selector: function(instance) {
        var ret       = []; // Beginning matches
        var partial   = []; // Inside matches
        var entry     = instance.getToken();
        var count     = 0;

        for (var i = 0; i < instance.options.array.length &&
          ret.length < instance.options.choices ; i++) {

          var elem = instance.options.array[i];
          var foundPos = instance.options.ignoreCase ?
            elem.toLowerCase().indexOf(entry.toLowerCase()) :
            elem.indexOf(entry);

          while (foundPos != -1) {
            if (foundPos == 0 && elem.length != entry.length) {
              ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
                elem.substr(entry.length) + "</li>");
              break;
            } else if (entry.length >= instance.options.partialChars &&
              instance.options.partialSearch && foundPos != -1) {
              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
                partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
                  elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
                  foundPos + entry.length) + "</li>");
                break;
              }
            }

            foundPos = instance.options.ignoreCase ?
              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
              elem.indexOf(entry, foundPos + 1);

          }
        }
        if (partial.length)
          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length));
        return "<ul>" + ret.join('') + "</ul>";
      }
    }, options || { });
  }
});

// AJAX in-place editor and collection editor
// Full rewrite by Christophe Porteneuve <tdd@tddsworld.com> (April 2007).

// Use this if you notice weird scrolling problems on some browsers,
// the DOM might be a bit confused when this gets called so do this
// waits 1 ms (with setTimeout) until it does the activation
Field.scrollFreeActivate = function(field) {
  setTimeout(function() {
    Field.activate(field);
  }, 1);
};

Ajax.InPlaceEditor = Class.create({
  initialize: function(element, url, options) {
    this.url = url;
    this.element = element = $(element);
    this.prepareOptions();
    this._controls = { };
    arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!!
    Object.extend(this.options, options || { });
    if (!this.options.formId && this.element.id) {
      this.options.formId = this.element.id + '-inplaceeditor';
      if ($(this.options.formId))
        this.options.formId = '';
    }
    if (this.options.externalControl)
      this.options.externalControl = $(this.options.externalControl);
    if (!this.options.externalControl)
      this.options.externalControlOnly = false;
    this._originalBackground = this.element.getStyle('background-color') || 'transparent';
    this.element.title = this.options.clickToEditText;
    this._boundCancelHandler = this.handleFormCancellation.bind(this);
    this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this);
    this._boundFailureHandler = this.handleAJAXFailure.bind(this);
    this._boundSubmitHandler = this.handleFormSubmission.bind(this);
    this._boundWrapperHandler = this.wrapUp.bind(this);
    this.registerListeners();
  },
  checkForEscapeOrReturn: function(e) {
    if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;
    if (Event.KEY_ESC == e.keyCode)
      this.handleFormCancellation(e);
    else if (Event.KEY_RETURN == e.keyCode)
      this.handleFormSubmission(e);
  },
  createControl: function(mode, handler, extraClasses) {
    var control = this.options[mode + 'Control'];
    var text = this.options[mode + 'Text'];
    if ('button' == control) {
      var btn = document.createElement('input');
      btn.type = 'submit';
      btn.value = text;
      btn.className = 'editor_' + mode + '_button';
      if ('cancel' == mode)
        btn.onclick = this._boundCancelHandler;
      this._form.appendChild(btn);
      this._controls[mode] = btn;
    } else if ('link' == control) {
      var link = document.createElement('a');
      link.href = '#';
      link.appendChild(document.createTextNode(text));
      link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler;
      link.className = 'editor_' + mode + '_link';
      if (extraClasses)
        link.className += ' ' + extraClasses;
      this._form.appendChild(link);
      this._controls[mode] = link;
    }
  },
  createEditField: function() {
    var text = (this.options.loadTextURL ? this.options.loadingText : this.getText());
    var fld;
    if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) {
      fld = document.createElement('input');
      fld.type = 'text';
      var size = this.options.size || this.options.cols || 0;
      if (0 < size) fld.size = size;
    } else {
      fld = document.createElement('textarea');
      fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows);
      fld.cols = this.options.cols || 40;
    }
    fld.name = this.options.paramName;
    fld.value = text; // No HTML breaks conversion anymore
    fld.className = 'editor_field';
    if (this.options.submitOnBlur)
      fld.onblur = this._boundSubmitHandler;
    this._controls.editor = fld;
    if (this.options.loadTextURL)
      this.loadExternalText();
    this._form.appendChild(this._controls.editor);
  },
  createForm: function() {
    var ipe = this;
    function addText(mode, condition) {
      var text = ipe.options['text' + mode + 'Controls'];
      if (!text || condition === false) return;
      ipe._form.appendChild(document.createTextNode(text));
    };
    this._form = $(document.createElement('form'));
    this._form.id = this.options.formId;
    this._form.addClassName(this.options.formClassName);
    this._form.onsubmit = this._boundSubmitHandler;
    this.createEditField();
    if ('textarea' == this._controls.editor.tagName.toLowerCase())
      this._form.appendChild(document.createElement('br'));
    if (this.options.onFormCustomization)
      this.options.onFormCustomization(this, this._form);
    addText('Before', this.options.okControl || this.options.cancelControl);
    this.createControl('ok', this._boundSubmitHandler);
    addText('Between', this.options.okControl && this.options.cancelControl);
    this.createControl('cancel', this._boundCancelHandler, 'editor_cancel');
    addText('After', this.options.okControl || this.options.cancelControl);
  },
  destroy: function() {
    if (this._oldInnerHTML)
      this.element.innerHTML = this._oldInnerHTML;
    this.leaveEditMode();
    this.unregisterListeners();
  },
  enterEditMode: function(e) {
    if (this._saving || this._editing) return;
    this._editing = true;
    this.triggerCallback('onEnterEditMode');
    if (this.options.externalControl)
      this.options.externalControl.hide();
    this.element.hide();
    this.createForm();
    this.element.parentNode.insertBefore(this._form, this.element);
    if (!this.options.loadTextURL)
      this.postProcessEditField();
    if (e) Event.stop(e);
  },
  enterHover: function(e) {
    if (this.options.hoverClassName)
      this.element.addClassName(this.options.hoverClassName);
    if (this._saving) return;
    this.triggerCallback('onEnterHover');
  },
  getText: function() {
    return this.element.innerHTML.unescapeHTML();
  },
  handleAJAXFailure: function(transport) {
    this.triggerCallback('onFailure', transport);
    if (this._oldInnerHTML) {
      this.element.innerHTML = this._oldInnerHTML;
      this._oldInnerHTML = null;
    }
  },
  handleFormCancellation: function(e) {
    this.wrapUp();
    if (e) Event.stop(e);
  },
  handleFormSubmission: function(e) {
    var form = this._form;
    var value = $F(this._controls.editor);
    this.prepareSubmission();
    var params = this.options.callback(form, value) || '';
    if (Object.isString(params))
      params = params.toQueryParams();
    params.editorId = this.element.id;
    if (this.options.htmlResponse) {
      var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions);
      Object.extend(options, {
        parameters: params,
        onComplete: this._boundWrapperHandler,
        onFailure: this._boundFailureHandler
      });
      new Ajax.Updater({ success: this.element }, this.url, options);
    } else {
      var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
      Object.extend(options, {
        parameters: params,
        onComplete: this._boundWrapperHandler,
        onFailure: this._boundFailureHandler
      });
      new Ajax.Request(this.url, options);
    }
    if (e) Event.stop(e);
  },
  leaveEditMode: function() {
    this.element.removeClassName(this.options.savingClassName);
    this.removeForm();
    this.leaveHover();
    this.element.style.backgroundColor = this._originalBackground;
    this.element.show();
    if (this.options.externalControl)
      this.options.externalControl.show();
    this._saving = false;
    this._editing = false;
    this._oldInnerHTML = null;
    this.triggerCallback('onLeaveEditMode');
  },
  leaveHover: function(e) {
    if (this.options.hoverClassName)
      this.element.removeClassName(this.options.hoverClassName);
    if (this._saving) return;
    this.triggerCallback('onLeaveHover');
  },
  loadExternalText: function() {
    this._form.addClassName(this.options.loadingClassName);
    this._controls.editor.disabled = true;
    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
    Object.extend(options, {
      parameters: 'editorId=' + encodeURIComponent(this.element.id),
      onComplete: Prototype.emptyFunction,
      onSuccess: function(transport) {
        this._form.removeClassName(this.options.loadingClassName);
        var text = transport.responseText;
        if (this.options.stripLoadedTextTags)
          text = text.stripTags();
        this._controls.editor.value = text;
        this._controls.editor.disabled = false;
        this.postProcessEditField();
      }.bind(this),
      onFailure: this._boundFailureHandler
    });
    new Ajax.Request(this.options.loadTextURL, options);
  },
  postProcessEditField: function() {
    var fpc = this.options.fieldPostCreation;
    if (fpc)
      $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate']();
  },
  prepareOptions: function() {
    this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions);
    Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);
    [this._extraDefaultOptions].flatten().compact().each(function(defs) {
      Object.extend(this.options, defs);
    }.bind(this));
  },
  prepareSubmission: function() {
    this._saving = true;
    this.removeForm();
    this.leaveHover();
    this.showSaving();
  },
  registerListeners: function() {
    this._listeners = { };
    var listener;
    $H(Ajax.InPlaceEditor.Listeners).each(function(pair) {
      listener = this[pair.value].bind(this);
      this._listeners[pair.key] = listener;
      if (!this.options.externalControlOnly)
        this.element.observe(pair.key, listener);
      if (this.options.externalControl)
        this.options.externalControl.observe(pair.key, listener);
    }.bind(this));
  },
  removeForm: function() {
    if (!this._form) return;
    this._form.remove();
    this._form = null;
    this._controls = { };
  },
  showSaving: function() {
    this._oldInnerHTML = this.element.innerHTML;
    this.element.innerHTML = this.options.savingText;
    this.element.addClassName(this.options.savingClassName);
    this.element.style.backgroundColor = this._originalBackground;
    this.element.show();
  },
  triggerCallback: function(cbName, arg) {
    if ('function' == typeof this.options[cbName]) {
      this.options[cbName](this, arg);
    }
  },
  unregisterListeners: function() {
    $H(this._listeners).each(function(pair) {
      if (!this.options.externalControlOnly)
        this.element.stopObserving(pair.key, pair.value);
      if (this.options.externalControl)
        this.options.externalControl.stopObserving(pair.key, pair.value);
    }.bind(this));
  },
  wrapUp: function(transport) {
    this.leaveEditMode();
    // Can't use triggerCallback due to backward compatibility: requires
    // binding + direct element
    this._boundComplete(transport, this.element);
  }
});

Object.extend(Ajax.InPlaceEditor.prototype, {
  dispose: Ajax.InPlaceEditor.prototype.destroy
});

Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, {
  initialize: function($super, element, url, options) {
    this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions;
    $super(element, url, options);
  },

  createEditField: function() {
    var list = document.createElement('select');
    list.name = this.options.paramName;
    list.size = 1;
    this._controls.editor = list;
    this._collection = this.options.collection || [];
    if (this.options.loadCollectionURL)
      this.loadCollection();
    else
      this.checkForExternalText();
    this._form.appendChild(this._controls.editor);
  },

  loadCollection: function() {
    this._form.addClassName(this.options.loadingClassName);
    this.showLoadingText(this.options.loadingCollectionText);
    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
    Object.extend(options, {
      parameters: 'editorId=' + encodeURIComponent(this.element.id),
      onComplete: Prototype.emptyFunction,
      onSuccess: function(transport) {
        var js = transport.responseText.strip();
        if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
          throw('Server returned an invalid collection representation.');
        this._collection = eval(js);
        this.checkForExternalText();
      }.bind(this),
      onFailure: this.onFailure
    });
    new Ajax.Request(this.options.loadCollectionURL, options);
  },

  showLoadingText: function(text) {
    this._controls.editor.disabled = true;
    var tempOption = this._controls.editor.firstChild;
    if (!tempOption) {
      tempOption = document.createElement('option');
      tempOption.value = '';
      this._controls.editor.appendChild(tempOption);
      tempOption.selected = true;
    }
    tempOption.update((text || '').stripScripts().stripTags());
  },

  checkForExternalText: function() {
    this._text = this.getText();
    if (this.options.loadTextURL)
      this.loadExternalText();
    else
      this.buildOptionList();
  },

  loadExternalText: function() {
    this.showLoadingText(this.options.loadingText);
    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
    Object.extend(options, {
      parameters: 'editorId=' + encodeURIComponent(this.element.id),
      onComplete: Prototype.emptyFunction,
      onSuccess: function(transport) {
        this._text = transport.responseText.strip();
        this.buildOptionList();
      }.bind(this),
      onFailure: this.onFailure
    });
    new Ajax.Request(this.options.loadTextURL, options);
  },

  buildOptionList: function() {
    this._form.removeClassName(this.options.loadingClassName);
    this._collection = this._collection.map(function(entry) {
      return 2 === entry.length ? entry : [entry, entry].flatten();
    });
    var marker = ('value' in this.options) ? this.options.value : this._text;
    var textFound = this._collection.any(function(entry) {
      return entry[0] == marker;
    }.bind(this));
    this._controls.editor.update('');
    var option;
    this._collection.each(function(entry, index) {
      option = document.createElement('option');
      option.value = entry[0];
      option.selected = textFound ? entry[0] == marker : 0 == index;
      option.appendChild(document.createTextNode(entry[1]));
      this._controls.editor.appendChild(option);
    }.bind(this));
    this._controls.editor.disabled = false;
    Field.scrollFreeActivate(this._controls.editor);
  }
});

//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****
//**** This only  exists for a while,  in order to  let ****
//**** users adapt to  the new API.  Read up on the new ****
//**** API and convert your code to it ASAP!            ****

Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) {
  if (!options) return;
  function fallback(name, expr) {
    if (name in options || expr === undefined) return;
    options[name] = expr;
  };
  fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' :
    options.cancelLink == options.cancelButton == false ? false : undefined)));
  fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' :
    options.okLink == options.okButton == false ? false : undefined)));
  fallback('highlightColor', options.highlightcolor);
  fallback('highlightEndColor', options.highlightendcolor);
};

Object.extend(Ajax.InPlaceEditor, {
  DefaultOptions: {
    ajaxOptions: { },
    autoRows: 3,                                // Use when multi-line w/ rows == 1
    cancelControl: 'link',                      // 'link'|'button'|false
    cancelText: 'cancel',
    clickToEditText: 'Click to edit',
    externalControl: null,                      // id|elt
    externalControlOnly: false,
    fieldPostCreation: 'activate',              // 'activate'|'focus'|false
    formClassName: 'inplaceeditor-form',
    formId: null,                               // id|elt
    highlightColor: '#ffff99',
    highlightEndColor: '#ffffff',
    hoverClassName: '',
    htmlResponse: true,
    loadingClassName: 'inplaceeditor-loading',
    loadingText: 'Loading...',
    okControl: 'button',                        // 'link'|'button'|false
    okText: 'ok',
    paramName: 'value',
    rows: 1,                                    // If 1 and multi-line, uses autoRows
    savingClassName: 'inplaceeditor-saving',
    savingText: 'Saving...',
    size: 0,
    stripLoadedTextTags: false,
    submitOnBlur: false,
    textAfterControls: '',
    textBeforeControls: '',
    textBetweenControls: ''
  },
  DefaultCallbacks: {
    callback: function(form) {
      return Form.serialize(form);
    },
    onComplete: function(transport, element) {
      // For backward compatibility, this one is bound to the IPE, and passes
      // the element directly.  It was too often customized, so we don't break it.
      new Effect.Highlight(element, {
        startcolor: this.options.highlightColor, keepBackgroundImage: true });
    },
    onEnterEditMode: null,
    onEnterHover: function(ipe) {
      ipe.element.style.backgroundColor = ipe.options.highlightColor;
      if (ipe._effect)
        ipe._effect.cancel();
    },
    onFailure: function(transport, ipe) {
      alert('Error communication with the server: ' + transport.responseText.stripTags());
    },
    onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls.
    onLeaveEditMode: null,
    onLeaveHover: function(ipe) {
      ipe._effect = new Effect.Highlight(ipe.element, {
        startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor,
        restorecolor: ipe._originalBackground, keepBackgroundImage: true
      });
    }
  },
  Listeners: {
    click: 'enterEditMode',
    keydown: 'checkForEscapeOrReturn',
    mouseover: 'enterHover',
    mouseout: 'leaveHover'
  }
});

Ajax.InPlaceCollectionEditor.DefaultOptions = {
  loadingCollectionText: 'Loading options...'
};

// Delayed observer, like Form.Element.Observer,
// but waits for delay after last key input
// Ideal for live-search fields

Form.Element.DelayedObserver = Class.create({
  initialize: function(element, delay, callback) {
    this.delay     = delay || 0.5;
    this.element   = $(element);
    this.callback  = callback;
    this.timer     = null;
    this.lastValue = $F(this.element);
    Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
  },
  delayedListener: function(event) {
    if(this.lastValue == $F(this.element)) return;
    if(this.timer) clearTimeout(this.timer);
    this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
    this.lastValue = $F(this.element);
  },
  onTimerEvent: function() {
    this.timer = null;
    this.callback(this.element, $F(this.element));
  }
});
// script.aculo.us slider.js v1.8.2, Tue Nov 18 18:30:58 +0100 2008

// Copyright (c) 2005-2008 Marty Haught, Thomas Fuchs
//
// script.aculo.us is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

if (!Control) var Control = { };

// options:
//  axis: 'vertical', or 'horizontal' (default)
//
// callbacks:
//  onChange(value)
//  onSlide(value)
Control.Slider = Class.create({
  initialize: function(handle, track, options) {
    var slider = this;

    if (Object.isArray(handle)) {
      this.handles = handle.collect( function(e) { return $(e) });
    } else {
      this.handles = [$(handle)];
    }

    this.track   = $(track);
    this.options = options || { };

    this.axis      = this.options.axis || 'horizontal';
    this.increment = this.options.increment || 1;
    this.step      = parseInt(this.options.step || '1');
    this.range     = this.options.range || $R(0,1);

    this.value     = 0; // assure backwards compat
    this.values    = this.handles.map( function() { return 0 });
    this.spans     = this.options.spans ? this.options.spans.map(function(s){ return $(s) }) : false;
    this.options.startSpan = $(this.options.startSpan || null);
    this.options.endSpan   = $(this.options.endSpan || null);

    this.restricted = this.options.restricted || false;

    this.maximum   = this.options.maximum || this.range.end;
    this.minimum   = this.options.minimum || this.range.start;

    // Will be used to align the handle onto the track, if necessary
    this.alignX = parseInt(this.options.alignX || '0');
    this.alignY = parseInt(this.options.alignY || '0');

    this.trackLength = this.maximumOffset() - this.minimumOffset();

    this.handleLength = this.isVertical() ?
      (this.handles[0].offsetHeight != 0 ?
        this.handles[0].offsetHeight : this.handles[0].style.height.replace(/px$/,"")) :
      (this.handles[0].offsetWidth != 0 ? this.handles[0].offsetWidth :
        this.handles[0].style.width.replace(/px$/,""));

    this.active   = false;
    this.dragging = false;
    this.disabled = false;

    if (this.options.disabled) this.setDisabled();

    // Allowed values array
    this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false;
    if (this.allowedValues) {
      this.minimum = this.allowedValues.min();
      this.maximum = this.allowedValues.max();
    }

    this.eventMouseDown = this.startDrag.bindAsEventListener(this);
    this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
    this.eventMouseMove = this.update.bindAsEventListener(this);

    // Initialize handles in reverse (make sure first handle is active)
    this.handles.each( function(h,i) {
      i = slider.handles.length-1-i;
      slider.setValue(parseFloat(
        (Object.isArray(slider.options.sliderValue) ?
          slider.options.sliderValue[i] : slider.options.sliderValue) ||
         slider.range.start), i);
      h.makePositioned().observe("mousedown", slider.eventMouseDown);
    });

    this.track.observe("mousedown", this.eventMouseDown);
    document.observe("mouseup", this.eventMouseUp);
    $(this.track.parentNode.parentNode).observe("mousemove", this.eventMouseMove);


    this.initialized = true;
  },
  dispose: function() {
    var slider = this;
    Event.stopObserving(this.track, "mousedown", this.eventMouseDown);
    Event.stopObserving(document, "mouseup", this.eventMouseUp);
    Event.stopObserving(this.track.parentNode.parentNode, "mousemove", this.eventMouseMove);
    this.handles.each( function(h) {
      Event.stopObserving(h, "mousedown", slider.eventMouseDown);
    });
  },
  setDisabled: function(){
    this.disabled = true;
    this.track.parentNode.className = this.track.parentNode.className + ' disabled';
  },
  setEnabled: function(){
    this.disabled = false;
  },
  getNearestValue: function(value){
    if (this.allowedValues){
      if (value >= this.allowedValues.max()) return(this.allowedValues.max());
      if (value <= this.allowedValues.min()) return(this.allowedValues.min());

      var offset = Math.abs(this.allowedValues[0] - value);
      var newValue = this.allowedValues[0];
      this.allowedValues.each( function(v) {
        var currentOffset = Math.abs(v - value);
        if (currentOffset <= offset){
          newValue = v;
          offset = currentOffset;
        }
      });
      return newValue;
    }
    if (value > this.range.end) return this.range.end;
    if (value < this.range.start) return this.range.start;
    return value;
  },
  setValue: function(sliderValue, handleIdx){
    if (!this.active) {
      this.activeHandleIdx = handleIdx || 0;
      this.activeHandle    = this.handles[this.activeHandleIdx];
      this.updateStyles();
    }
    handleIdx = handleIdx || this.activeHandleIdx || 0;
    if (this.initialized && this.restricted) {
      if ((handleIdx>0) && (sliderValue<this.values[handleIdx-1]))
        sliderValue = this.values[handleIdx-1];
      if ((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1]))
        sliderValue = this.values[handleIdx+1];
    }
    sliderValue = this.getNearestValue(sliderValue);
    this.values[handleIdx] = sliderValue;
    this.value = this.values[0]; // assure backwards compat

    this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] =
      this.translateToPx(sliderValue);

    this.drawSpans();
    if (!this.dragging || !this.event) this.updateFinished();
  },
  setValueBy: function(delta, handleIdx) {
    this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta,
      handleIdx || this.activeHandleIdx || 0);
  },
  translateToPx: function(value) {
    return Math.round(
      ((this.trackLength-this.handleLength)/(this.range.end-this.range.start)) *
      (value - this.range.start)) + "px";
  },
  translateToValue: function(offset) {
    return ((offset/(this.trackLength-this.handleLength) *
      (this.range.end-this.range.start)) + this.range.start);
  },
  getRange: function(range) {
    var v = this.values.sortBy(Prototype.K);
    range = range || 0;
    return $R(v[range],v[range+1]);
  },
  minimumOffset: function(){
    return(this.isVertical() ? this.alignY : this.alignX);
  },
  maximumOffset: function(){
    return(this.isVertical() ?
      (this.track.offsetHeight != 0 ? this.track.offsetHeight :
        this.track.style.height.replace(/px$/,"")) - this.alignY :
      (this.track.offsetWidth != 0 ? this.track.offsetWidth :
        this.track.style.width.replace(/px$/,"")) - this.alignX);
  },
  isVertical:  function(){
    return (this.axis == 'vertical');
  },
  drawSpans: function() {
    var slider = this;
    if (this.spans)
      $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) });
    if (this.options.startSpan)
      this.setSpan(this.options.startSpan,
        $R(0, this.values.length>1 ? this.getRange(0).min() : this.value ));
    if (this.options.endSpan)
      this.setSpan(this.options.endSpan,
        $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum));
  },
  setSpan: function(span, range) {
    if (this.isVertical()) {
      span.style.top = this.translateToPx(range.start);
      span.style.height = this.translateToPx(range.end - range.start + this.range.start);
    } else {
      span.style.left = this.translateToPx(range.start);
      span.style.width = this.translateToPx(range.end - range.start + this.range.start);
    }
  },
  updateStyles: function() {
    this.handles.each( function(h){ Element.removeClassName(h, 'selected') });
    Element.addClassName(this.activeHandle, 'selected');
  },
  startDrag: function(event) {
    if (Event.isLeftClick(event)) {
      if (!this.disabled){
        this.active = true;

        var handle = Event.element(event);
        var pointer  = [Event.pointerX(event), Event.pointerY(event)];
        var track = handle;
        if (track==this.track) {
          var offsets  = Position.cumulativeOffset(this.track);
          this.event = event;
          this.setValue(this.translateToValue(
           (this.isVertical() ? pointer[1]-offsets[1] : pointer[0]-offsets[0])-(this.handleLength/2)
          ));
          var offsets  = Position.cumulativeOffset(this.activeHandle);
          this.offsetX = (pointer[0] - offsets[0]);
          this.offsetY = (pointer[1] - offsets[1]);
        } else {
          // find the handle (prevents issues with Safari)
          while((this.handles.indexOf(handle) == -1) && handle.parentNode)
            handle = handle.parentNode;

          if (this.handles.indexOf(handle)!=-1) {
            this.activeHandle    = handle;
            this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
            this.updateStyles();

            var offsets  = Position.cumulativeOffset(this.activeHandle);
            this.offsetX = (pointer[0] - offsets[0]);
            this.offsetY = (pointer[1] - offsets[1]);
          }
        }
      }
      Event.stop(event);
    }
  },
  update: function(event) {
   if (this.active) {
      if (!this.dragging) this.dragging = true;
      this.draw(event);
      if (Prototype.Browser.WebKit) window.scrollBy(0,0);
      Event.stop(event);
   }
  },
  draw: function(event) {
    var pointer = [Event.pointerX(event), Event.pointerY(event)];
    var offsets = Position.cumulativeOffset(this.track);
    pointer[0] -= this.offsetX + offsets[0];
    pointer[1] -= this.offsetY + offsets[1];
    this.event = event;
    this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] ));
    if (this.initialized && this.options.onSlide)
      this.options.onSlide(this.values.length>1 ? this.values : this.value, this);
  },
  endDrag: function(event) {
    if (this.active && this.dragging) {
      this.finishDrag(event, true);
      Event.stop(event);
    }
    this.active = false;
    this.dragging = false;
  },
  finishDrag: function(event, success) {
    this.active = false;
    this.dragging = false;
    this.updateFinished();
  },
  updateFinished: function() {
    if (this.initialized && this.options.onChange)
      this.options.onChange(this.values.length>1 ? this.values : this.value, this);
    this.event = null;
  }
});
/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Varien
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
function popWin(url,win,para) {
    var win = window.open(url,win,para);
    win.focus();
}

function setLocation(url){
    window.location.href = url;
}

function setPLocation(url, setFocus){
    if( setFocus ) {
        window.opener.focus();
    }
    window.opener.location.href = url;
}

function setLanguageCode(code, fromCode){
    //TODO: javascript cookies have different domain and path than php cookies
    var href = window.location.href;
    var after = '', dash;
    if (dash = href.match(/\#(.*)$/)) {
        href = href.replace(/\#(.*)$/, '');
        after = dash[0];
    }

    if (href.match(/[?]/)) {
        var re = /([?&]store=)[a-z0-9_]*/;
        if (href.match(re)) {
            href = href.replace(re, '$1'+code);
        } else {
            href += '&store='+code;
        }

        var re = /([?&]from_store=)[a-z0-9_]*/;
        if (href.match(re)) {
            href = href.replace(re, '');
        }
    } else {
        href += '?store='+code;
    }
    if (typeof(fromCode) != 'undefined') {
        href += '&from_store='+fromCode;
    }
    href += after;

    setLocation(href);
}

/**
 * Add classes to specified elements.
 * Supported classes are: 'odd', 'even', 'first', 'last'
 *
 * @param elements - array of elements to be decorated
 * [@param decorateParams] - array of classes to be set. If omitted, all available will be used
 */
function decorateGeneric(elements, decorateParams)
{
    var allSupportedParams = ['odd', 'even', 'first', 'last'];
    var _decorateParams = {};
    var total = elements.length;

    if (total) {
        // determine params called
        if (typeof(decorateParams) == 'undefined') {
            decorateParams = allSupportedParams;
        }
        if (!decorateParams.length) {
            return;
        }
        for (var k in allSupportedParams) {
            _decorateParams[allSupportedParams[k]] = false;
        }
        for (var k in decorateParams) {
            _decorateParams[decorateParams[k]] = true;
        }

        // decorate elements
        // elements[0].addClassName('first'); // will cause bug in IE (#5587)
        if (_decorateParams.first) {
            Element.addClassName(elements[0], 'first');
        }
        if (_decorateParams.last) {
            Element.addClassName(elements[total-1], 'last');
        }
        for (var i = 0; i < total; i++) {
            if ((i + 1) % 2 == 0) {
                if (_decorateParams.even) {
                    Element.addClassName(elements[i], 'even');
                }
            }
            else {
                if (_decorateParams.odd) {
                    Element.addClassName(elements[i], 'odd');
                }
            }
        }
    }
}

/**
 * Decorate table rows and cells, tbody etc
 * @see decorateGeneric()
 */
function decorateTable(table, options) {
    var table = $(table);
    if (table) {
        // set default options
        var _options = {
            'tbody'    : false,
            'tbody tr' : ['odd', 'even', 'first', 'last'],
            'thead tr' : ['first', 'last'],
            'tfoot tr' : ['first', 'last'],
            'tr td'    : ['last']
        };
        // overload options
        if (typeof(options) != 'undefined') {
            for (var k in options) {
                _options[k] = options[k];
            }
        }
        // decorate
        if (_options['tbody']) {
            decorateGeneric(table.select('tbody'), _options['tbody']);
        }
        if (_options['tbody tr']) {
            decorateGeneric(table.select('tbody tr'), _options['tbody tr']);
        }
        if (_options['thead tr']) {
            decorateGeneric(table.select('thead tr'), _options['thead tr']);
        }
        if (_options['tfoot tr']) {
            decorateGeneric(table.select('tfoot tr'), _options['tfoot tr']);
        }
        if (_options['tr td']) {
            var allRows = table.select('tr');
            if (allRows.length) {
                for (var i = 0; i < allRows.length; i++) {
                    decorateGeneric(allRows[i].getElementsByTagName('TD'), _options['tr td']);
                }
            }
        }
    }
}

/**
 * Set "odd", "even" and "last" CSS classes for list items
 * @see decorateGeneric()
 */
function decorateList(list, nonRecursive) {
    if ($(list)) {
        if (typeof(nonRecursive) == 'undefined') {
            var items = $(list).select('li')
        }
        else {
            var items = $(list).childElements();
        }
        decorateGeneric(items, ['odd', 'even', 'last']);
    }
}

/**
 * Set "odd", "even" and "last" CSS classes for list items
 * @see decorateGeneric()
 */
function decorateDataList(list) {
    list = $(list);
    if (list) {
        decorateGeneric(list.select('dt'), ['odd', 'even', 'last']);
        decorateGeneric(list.select('dd'), ['odd', 'even', 'last']);
    }
}

/**
 * Parse SID and produces the correct URL
 */
function parseSidUrl(baseUrl, urlExt) {
    sidPos = baseUrl.indexOf('/?SID=');
    sid = '';
    urlExt = (urlExt != undefined) ? urlExt : '';

    if(sidPos > -1) {
        sid = '?' + baseUrl.substring(sidPos + 2);
        baseUrl = baseUrl.substring(0, sidPos + 1);
    }

    return baseUrl+urlExt+sid;
}

/**
 * Formats currency using patern
 * format - JSON (pattern, decimal, decimalsDelimeter, groupsDelimeter)
 * showPlus - true (always show '+'or '-'),
 *      false (never show '-' even if number is negative)
 *      null (show '-' if number is negative)
 */

function formatCurrency(price, format, showPlus){
    precision = isNaN(format.precision = Math.abs(format.precision)) ? 2 : format.precision;
    requiredPrecision = isNaN(format.requiredPrecision = Math.abs(format.requiredPrecision)) ? 2 : format.requiredPrecision;

    //precision = (precision > requiredPrecision) ? precision : requiredPrecision;
    //for now we don't need this difference so precision is requiredPrecision
    precision = requiredPrecision;

    integerRequired = isNaN(format.integerRequired = Math.abs(format.integerRequired)) ? 1 : format.integerRequired;

    decimalSymbol = format.decimalSymbol == undefined ? "," : format.decimalSymbol;
    groupSymbol = format.groupSymbol == undefined ? "." : format.groupSymbol;
    groupLength = format.groupLength == undefined ? 3 : format.groupLength;

    if (showPlus == undefined || showPlus == true) {
        s = price < 0 ? "-" : ( showPlus ? "+" : "");
    } else if (showPlus == false) {
        s = '';
    }

    i = parseInt(price = Math.abs(+price || 0).toFixed(precision)) + "";
    pad = (i.length < integerRequired) ? (integerRequired - i.length) : 0;
    while (pad) { i = '0' + i; pad--; }

    j = (j = i.length) > groupLength ? j % groupLength : 0;
    re = new RegExp("(\\d{" + groupLength + "})(?=\\d)", "g");

    /**
     * replace(/-/, 0) is only for fixing Safari bug which appears
     * when Math.abs(0).toFixed() executed on "0" number.
     * Result is "0.-0" :(
     */
    r = (j ? i.substr(0, j) + groupSymbol : "") + i.substr(j).replace(re, "$1" + groupSymbol) + (precision ? decimalSymbol + Math.abs(price - i).toFixed(precision).replace(/-/, 0).slice(2) : "")

    if (format.pattern.indexOf('{sign}') == -1) {
        pattern = s + format.pattern;
    } else {
        pattern = format.pattern.replace('{sign}', s);
    }

    return pattern.replace('%s', r).replace(/^\s\s*/, '').replace(/\s\s*$/, '');
};

function expandDetails(el, childClass) {
    if (Element.hasClassName(el,'show-details')) {
        $$(childClass).each(function(item){item.hide()});
        Element.removeClassName(el,'show-details');
    }
    else {
        $$(childClass).each(function(item){item.show()});
        Element.addClassName(el,'show-details');
    }
}

// Version 1.0
var isIE = navigator.appVersion.match(/MSIE/) == "MSIE";

if (!window.Varien)
    var Varien = new Object();

Varien.showLoading = function(){
    Element.show('loading-process');
}
Varien.hideLoading = function(){
    Element.hide('loading-process');
}
Varien.GlobalHandlers = {
    onCreate: function() {
        Varien.showLoading();
    },

    onComplete: function() {
        if(Ajax.activeRequestCount == 0) {
            Varien.hideLoading();
        }
    }
};

Ajax.Responders.register(Varien.GlobalHandlers);

/**
 * Quick Search form client model
 */
Varien.searchForm = Class.create();
Varien.searchForm.prototype = {
    initialize : function(form, field, emptyText){
        this.form   = $(form);
        this.field  = $(field);
        this.emptyText = emptyText;

        Event.observe(this.form,  'submit', this.submit.bind(this));
        Event.observe(this.field, 'focus', this.focus.bind(this));
        Event.observe(this.field, 'blur', this.blur.bind(this));
        this.blur();
    },

    submit : function(event){
        if (this.field.value == this.emptyText || this.field.value == ''){
            Event.stop(event);
            return false;
        }
        return true;
    },

    focus : function(event){
        if(this.field.value==this.emptyText){
            this.field.value='';
        }

    },

    blur : function(event){
        if(this.field.value==''){
            this.field.value=this.emptyText;
        }
    },

    initAutocomplete : function(url, destinationElement){
        new Ajax.Autocompleter(
            this.field,
            destinationElement,
            url,
            {
                paramName: this.field.name,
                method: 'get',
                minChars: 2,
                updateElement: this._selectAutocompleteItem.bind(this),
                onShow : function(element, update) {
                    if(!update.style.position || update.style.position=='absolute') {
                        update.style.position = 'absolute';
                        Position.clone(element, update, {
                            setHeight: false,
                            offsetTop: element.offsetHeight
                        });
                    }
                    Effect.Appear(update,{duration:0});
                }

            }
        );
    },

    _selectAutocompleteItem : function(element){
        if(element.title){
            this.field.value = element.title;
        }
        this.form.submit();
    }
}

Varien.Tabs = Class.create();
Varien.Tabs.prototype = {
  initialize: function(selector) {
    var self=this;
    $$(selector+' a').each(this.initTab.bind(this));
  },

  initTab: function(el) {
      el.href = 'javascript:void(0)';
      if ($(el.parentNode).hasClassName('active')) {
        this.showContent(el);
      }
      el.observe('click', this.showContent.bind(this, el));
  },

  showContent: function(a) {
    var li = $(a.parentNode), ul = $(li.parentNode);
    ul.getElementsBySelector('li', 'ol').each(function(el){
      var contents = $(el.id+'_contents');
      if (el==li) {
        el.addClassName('active');
        contents.show();
      } else {
        el.removeClassName('active');
        contents.hide();
      }
    });
  }
}

Varien.DateElement = Class.create();
Varien.DateElement.prototype = {
    initialize: function(type, content, required, format) {
        if (type == 'id') {
            // id prefix
            this.day    = $(content + 'day');
            this.month  = $(content + 'month');
            this.year   = $(content + 'year');
            this.full   = $(content + 'full');
            this.advice = $(content + 'date-advice');
        } else if (type == 'container') {
            // content must be container with data
            this.day    = content.day;
            this.month  = content.month;
            this.year   = content.year;
            this.full   = content.full;
            this.advice = content.advice;
        } else {
            return;
        }

        this.required = required;
        this.format   = format;

        this.day.addClassName('validate-custom');
        this.day.validate = this.validate.bind(this);
        this.month.addClassName('validate-custom');
        this.month.validate = this.validate.bind(this);
        this.year.addClassName('validate-custom');
        this.year.validate = this.validate.bind(this);

        this.setDateRange(false, false);
        this.year.setAttribute('autocomplete','off');

        this.advice.hide();
    },
    validate: function() {
        var error = false, day = parseInt(this.day.value) || 0, month = parseInt(this.month.value) || 0, year = parseInt(this.year.value) || 0;
        if (!day && !month && !year) {
            if (this.required) {
                error = 'This date is a required value.';
            } else {
                this.full.value = '';
            }
        } else if (!day || !month || !year) {
            error = 'Please enter a valid full date.';
        } else {
            var date = new Date, countDaysInMonth = 0, errorType = null;
            date.setYear(year);date.setMonth(month-1);date.setDate(32);
            countDaysInMonth = 32 - date.getDate();
            if(!countDaysInMonth || countDaysInMonth>31) countDaysInMonth = 31;

            if (day<1 || day>countDaysInMonth) {
                errorType = 'day';
                error = 'Please enter a valid day (1-%d).';
            } else if (month<1 || month>12) {
                errorType = 'month';
                error = 'Please enter a valid month (1-12).';
            } else {
                if(day % 10 == day) this.day.value = '0'+day;
                if(month % 10 == month) this.month.value = '0'+month;
                this.full.value = this.format.replace(/%[mb]/i, this.month.value).replace(/%[de]/i, this.day.value).replace(/%y/i, this.year.value);
                var testFull = this.month.value + '/' + this.day.value + '/'+ this.year.value;
                var test = new Date(testFull);
                if (isNaN(test)) {
                    error = 'Please enter a valid date.';
                } else {
                    this.setFullDate(test);
                }
            }
            var valueError = false;
            if (!error && !this.validateData()){//(year<1900 || year>curyear) {
                errorType = this.validateDataErrorType;//'year';
                valueError = this.validateDataErrorText;//'Please enter a valid year (1900-%d).';
                error = valueError;
            }
        }

        if (error !== false) {
            try {
                error = Translator.translate(error);
            }
            catch (e) {}
            if (!valueError) {
                this.advice.innerHTML = error.replace('%d', countDaysInMonth);
            } else {
                this.advice.innerHTML = this.errorTextModifier(error);
            }
            this.advice.show();
            return false;
        }

        // fixing elements class
        this.day.removeClassName('validation-failed');
        this.month.removeClassName('validation-failed');
        this.year.removeClassName('validation-failed');

        this.advice.hide();
        return true;
    },
    validateData: function() {
        var year = this.fullDate.getFullYear();
        var date = new Date;
        this.curyear = date.getFullYear();
        return (year>=1900 && year<=this.curyear);
    },
    validateDataErrorType: 'year',
    validateDataErrorText: 'Please enter a valid year (1900-%d).',
    errorTextModifier: function(text) {
        return text.replace('%d', this.curyear);
    },
    setDateRange: function(minDate, maxDate) {
        this.minDate = minDate;
        this.maxDate = maxDate;
    },
    setFullDate: function(date) {
        this.fullDate = date;
    }
};

Varien.DOB = Class.create();
Varien.DOB.prototype = {
    initialize: function(selector, required, format) {
        var el = $$(selector)[0];
        var container       = {};
        container.day       = Element.select(el, '.dob-day input')[0];
        container.month     = Element.select(el, '.dob-month input')[0];
        container.year      = Element.select(el, '.dob-year input')[0];
        container.full      = Element.select(el, '.dob-full input')[0];
        container.advice    = Element.select(el, '.validation-advice')[0];

        new Varien.DateElement('container', container, required, format);
    }
};

Varien.dateRangeDate = Class.create();
Varien.dateRangeDate.prototype = Object.extend(new Varien.DateElement(), {
    validateData: function() {
        var validate = true;
        if (this.minDate || this.maxValue) {
            if (this.minDate) {
                this.minDate = new Date(this.minDate);
                this.minDate.setHours(0);
                if (isNaN(this.minDate)) {
                    this.minDate = new Date('1/1/1900');
                }
                validate = validate && (this.fullDate >= this.minDate)
            }
            if (this.maxDate) {
                this.maxDate = new Date(this.maxDate)
                this.minDate.setHours(0);
                if (isNaN(this.maxDate)) {
                    this.maxDate = new Date();
                }
                validate = validate && (this.fullDate <= this.maxDate)
            }
            if (this.maxDate && this.minDate) {
                this.validateDataErrorText = 'Please enter a valid date between %s and %s';
            } else if (this.maxDate) {
                this.validateDataErrorText = 'Please enter a valid date less than or equal to %s';
            } else if (this.minDate) {
                this.validateDataErrorText = 'Please enter a valid date equal to or greater than %s';
            } else {
                this.validateDataErrorText = '';
            }
        }
        return validate;
    },
    validateDataErrorText: 'Date should be between %s and %s',
    errorTextModifier: function(text) {
        if (this.minDate) {
            text = text.sub('%s', this.dateFormat(this.minDate));
        }
        if (this.maxDate) {
            text = text.sub('%s', this.dateFormat(this.maxDate));
        }
        return text;
    },
    dateFormat: function(date) {
        return (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();
    }
});

Varien.FileElement = Class.create();
Varien.FileElement.prototype = {
    initialize: function (id) {
        this.fileElement = $(id);
        this.hiddenElement = $(id + '_value');

        this.fileElement.observe('change', this.selectFile.bind(this));
    },
    selectFile: function(event) {
        this.hiddenElement.value = this.fileElement.getValue();
    }
};

Validation.addAllThese([
    ['validate-custom', ' ', function(v,elm) {
        return elm.validate();
    }]
]);

function truncateOptions() {
    $$('.truncated').each(function(element){
        Event.observe(element, 'mouseover', function(){
            if (element.down('div.truncated_full_value')) {
                element.down('div.truncated_full_value').addClassName('show')
            }
        });
        Event.observe(element, 'mouseout', function(){
            if (element.down('div.truncated_full_value')) {
                element.down('div.truncated_full_value').removeClassName('show')
            }
        });

    });
}
Event.observe(window, 'load', function(){
   truncateOptions();
});

Element.addMethods({
    getInnerText: function(element)
    {
        element = $(element);
        if(element.innerText && !Prototype.Browser.Opera) {
            return element.innerText
        }
        return element.innerHTML.stripScripts().unescapeHTML().replace(/[\n\r\s]+/g, ' ').strip();
    }
});

if (!("console" in window) || !("firebug" in console))
{
    var names = ["log", "debug", "info", "warn", "error", "assert", "dir", "dirxml",
    "group", "groupEnd", "time", "timeEnd", "count", "trace", "profile", "profileEnd"];

    window.console = {};
    for (var i = 0; i < names.length; ++i)
        window.console[names[i]] = function() {}
}

/**
 * Executes event handler on the element. Works with event handlers attached by Prototype,
 * in a browser-agnostic fashion.
 * @param element The element object
 * @param event Event name, like 'change'
 *
 * @example fireEvent($('my-input', 'click'));
 */
function fireEvent(element, event){
    if (document.createEventObject){
        // dispatch for IE
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        // dispatch for firefox + others
        var evt = document.createEvent("HTMLEvents");
        evt.initEvent(event, true, true ); // event type,bubbling,cancelable
        return !element.dispatchEvent(evt);
    }
}

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Varien
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
VarienForm = Class.create();
VarienForm.prototype = {
    initialize: function(formId, firstFieldFocus){
        this.form       = $(formId);
        if (!this.form) {
            return;
        }
        this.cache      = $A();
        this.currLoader = false;
        this.currDataIndex = false;
        this.validator  = new Validation(this.form);
        this.elementFocus   = this.elementOnFocus.bindAsEventListener(this);
        this.elementBlur    = this.elementOnBlur.bindAsEventListener(this);
        this.childLoader    = this.onChangeChildLoad.bindAsEventListener(this);
        this.highlightClass = 'highlight';
        this.extraChildParams = '';
        this.firstFieldFocus= firstFieldFocus || false;
        this.bindElements();
        if(this.firstFieldFocus){
            try{
                Form.Element.focus(Form.findFirstElement(this.form))
            }
            catch(e){}
        }
    },

    submit : function(url){
        if(this.validator && this.validator.validate()){
             this.form.submit();
        }
        return false;
    },

    bindElements:function (){
        var elements = Form.getElements(this.form);
        for (var row in elements) {
            if (elements[row].id) {
                Event.observe(elements[row],'focus',this.elementFocus);
                Event.observe(elements[row],'blur',this.elementBlur);
            }
        }
    },

    elementOnFocus: function(event){
        var element = Event.findElement(event, 'fieldset');
        if(element){
            Element.addClassName(element, this.highlightClass);
        }
    },

    elementOnBlur: function(event){
        var element = Event.findElement(event, 'fieldset');
        if(element){
            Element.removeClassName(element, this.highlightClass);
        }
    },

    setElementsRelation: function(parent, child, dataUrl, first){
        if (parent=$(parent)) {
            // TODO: array of relation and caching
            if (!this.cache[parent.id]){
                this.cache[parent.id] = $A();
                this.cache[parent.id]['child']     = child;
                this.cache[parent.id]['dataUrl']   = dataUrl;
                this.cache[parent.id]['data']      = $A();
                this.cache[parent.id]['first']      = first || false;
            }
            Event.observe(parent,'change',this.childLoader);
        }
    },

    onChangeChildLoad: function(event){
        element = Event.element(event);
        this.elementChildLoad(element);
    },

    elementChildLoad: function(element, callback){
        this.callback = callback || false;
        if (element.value) {
            this.currLoader = element.id;
            this.currDataIndex = element.value;
            if (this.cache[element.id]['data'][element.value]) {
                this.setDataToChild(this.cache[element.id]['data'][element.value]);
            }
            else{
                new Ajax.Request(this.cache[this.currLoader]['dataUrl'],{
                        method: 'post',
                        parameters: {"parent":element.value},
                        onComplete: this.reloadChildren.bind(this)
                });
            }
        }
    },

    reloadChildren: function(transport){
        var data = eval('(' + transport.responseText + ')');
        this.cache[this.currLoader]['data'][this.currDataIndex] = data;
        this.setDataToChild(data);
    },

    setDataToChild: function(data){
        if (data.length) {
            var child = $(this.cache[this.currLoader]['child']);
            if (child){
                var html = '<select name="'+child.name+'" id="'+child.id+'" class="'+child.className+'" title="'+child.title+'" '+this.extraChildParams+'>';
                if(this.cache[this.currLoader]['first']){
                    html+= '<option value="">'+this.cache[this.currLoader]['first']+'</option>';
                }
                for (var i in data){
                    if(data[i].value) {
                        html+= '<option value="'+data[i].value+'"';
                        if(child.value && (child.value == data[i].value || child.value == data[i].label)){
                            html+= ' selected';
                        }
                        html+='>'+data[i].label+'</option>';
                    }
                }
                html+= '</select>';
                Element.insert(child, {before: html});
                Element.remove(child);
            }
        }
        else{
            var child = $(this.cache[this.currLoader]['child']);
            if (child){
                var html = '<input type="text" name="'+child.name+'" id="'+child.id+'" class="'+child.className+'" title="'+child.title+'" '+this.extraChildParams+'>';
                Element.insert(child, {before: html});
                Element.remove(child);
            }
        }

        this.bindElements();
        if (this.callback) {
            this.callback();
        }
    }
}

RegionUpdater = Class.create();
RegionUpdater.prototype = {
    initialize: function (countryEl, regionTextEl, regionSelectEl, regions, disableAction, zipEl)
    {
        this.countryEl = $(countryEl);
        this.regionTextEl = $(regionTextEl);
        this.regionSelectEl = $(regionSelectEl);
        this.zipEl = $(zipEl);
        this.regions = regions;

        this.disableAction = (typeof disableAction=='undefined') ? 'hide' : disableAction;
        this.zipOptions = (typeof zipOptions=='undefined') ? false : zipOptions;

        if (this.regionSelectEl.options.length<=1) {
            this.update();
        }

        Event.observe(this.countryEl, 'change', this.update.bind(this));
    },

    update: function()
    {
        if (this.regions[this.countryEl.value]) {
            var i, option, region, def;

            if (this.regionTextEl) {
                def = this.regionTextEl.value.toLowerCase();
                this.regionTextEl.value = '';
            }
            if (!def) {
                def = this.regionSelectEl.getAttribute('defaultValue');
            }

            this.regionSelectEl.options.length = 1;
            for (regionId in this.regions[this.countryEl.value]) {
                region = this.regions[this.countryEl.value][regionId];

                option = document.createElement('OPTION');
                option.value = regionId;
                option.text = region.name;

                if (this.regionSelectEl.options.add) {
                    this.regionSelectEl.options.add(option);
                } else {
                    this.regionSelectEl.appendChild(option);
                }

                if (regionId==def || region.name.toLowerCase()==def || region.code.toLowerCase()==def) {
                    this.regionSelectEl.value = regionId;
                }
            }

            if (this.disableAction=='hide') {
                if (this.regionTextEl) {
                    this.regionTextEl.style.display = 'none';
                }

                this.regionSelectEl.style.display = '';
            } else if (this.disableAction=='disable') {
                if (this.regionTextEl) {
                    this.regionTextEl.disabled = true;
                }
                this.regionSelectEl.disabled = false;
            }
            this.setMarkDisplay(this.regionSelectEl, true);
        } else {
            if (this.disableAction=='hide') {
                if (this.regionTextEl) {
                    this.regionTextEl.style.display = '';
                }
                this.regionSelectEl.style.display = 'none';
                Validation.reset(this.regionSelectEl);
            } else if (this.disableAction=='disable') {
                if (this.regionTextEl) {
                    this.regionTextEl.disabled = false;
                }
                this.regionSelectEl.disabled = true;
            } else if (this.disableAction=='nullify') {
                this.regionSelectEl.options.length = 1;
                this.regionSelectEl.value = '';
                this.regionSelectEl.selectedIndex = 0;
                this.lastCountryId = '';
            }
            this.setMarkDisplay(this.regionSelectEl, false);
        }

        // Make Zip and its label required/optional
        var zipUpdater = new ZipUpdater(this.countryEl.value, this.zipEl);
        zipUpdater.update();
    },

    setMarkDisplay: function(elem, display){
        elem = $(elem);
        var labelElement = elem.up(0).down('label > span.required') ||
                           elem.up(1).down('label > span.required') ||
                           elem.up(0).down('label.required > em') ||
                           elem.up(1).down('label.required > em');
        if(labelElement) {
            inputElement = labelElement.up().next('input');
            if (display) {
                labelElement.show();
                if (inputElement) {
                    inputElement.addClassName('required-entry');
                }
            } else {
                labelElement.hide();
                if (inputElement) {
                    inputElement.removeClassName('required-entry');
                }
            }
        }
    }
}

ZipUpdater = Class.create();
ZipUpdater.prototype = {
    initialize: function(country, zipElement)
    {
        this.country = country;
        this.zipElement = $(zipElement);
    },

    update: function()
    {
        // Country ISO 2-letter codes must be pre-defined
        if (typeof optionalZipCountries == 'undefined') {
            return false;
        }

        // Ajax-request and normal content load compatibility
        if (this.zipElement != undefined) {
            this._setPostcodeOptional();
        } else {
            Event.observe(window, "load", this._setPostcodeOptional.bind(this));
        }
    },

    _setPostcodeOptional: function()
    {
        this.zipElement = $(this.zipElement);
        if (this.zipElement == undefined) {
            return false;
        }

        // find label
        var label = $$('label[for="' + this.zipElement.id + '"]')[0];
        if (label != undefined) {
            var wildCard = label.down('em') || label.down('span.required');
        }

        // Make Zip and its label required/optional
        if (optionalZipCountries.indexOf(this.country) != -1) {
            while (this.zipElement.hasClassName('required-entry')) {
                this.zipElement.removeClassName('required-entry');
            }
            if (wildCard != undefined) {
                wildCard.hide();
            }
        } else {
            this.zipElement.addClassName('required-entry');
            if (wildCard != undefined) {
                wildCard.show();
            }
        }
    }
}

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Varien
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */

/**
 * @classDescription simple Navigation with replacing old handlers
 * @param {String} id id of ul element with navigation lists
 * @param {Object} settings object with settings
 */
var mainNav = function() {

    var main = {
        obj_nav :   $(arguments[0]) || $("nav"),

        settings :  {
            show_delay      :   0,
            hide_delay      :   0,
            _ie6            :   /MSIE 6.+Win/.test(navigator.userAgent),
            _ie7            :   /MSIE 7.+Win/.test(navigator.userAgent)
        },

        init :  function(obj, level) {
            obj.lists = obj.childElements();
            obj.lists.each(function(el,ind){
                main.handlNavElement(el);
                if((main.settings._ie6 || main.settings._ie7) && level){
                    main.ieFixZIndex(el, ind, obj.lists.size());
                }
            });
            if(main.settings._ie6 && !level){
                document.execCommand("BackgroundImageCache", false, true);
            }
        },

        handlNavElement :   function(list) {
            if(list !== undefined){
                list.onmouseover = function(){
                    main.fireNavEvent(this,true);
                };
                list.onmouseout = function(){
                    main.fireNavEvent(this,false);
                };
                if(list.down("ul")){
                    main.init(list.down("ul"), true);
                }
            }
        },

        ieFixZIndex : function(el, i, l) {
            if(el.tagName.toString().toLowerCase().indexOf("iframe") == -1){
                el.style.zIndex = l - i;
            } else {
                el.onmouseover = "null";
                el.onmouseout = "null";
            }
        },

        fireNavEvent :  function(elm,ev) {
            if(ev){
                elm.addClassName("over");
                elm.down("a").addClassName("over");
                if (elm.childElements()[1]) {
                    main.show(elm.childElements()[1]);
                }
            } else {
                elm.removeClassName("over");
                elm.down("a").removeClassName("over");
                if (elm.childElements()[1]) {
                    main.hide(elm.childElements()[1]);
                }
            }
        },

        show : function (sub_elm) {
            if (sub_elm.hide_time_id) {
                clearTimeout(sub_elm.hide_time_id);
            }
            sub_elm.show_time_id = setTimeout(function() {
                if (!sub_elm.hasClassName("shown-sub")) {
                    sub_elm.addClassName("shown-sub");
                }
            }, main.settings.show_delay);
        },

        hide : function (sub_elm) {
            if (sub_elm.show_time_id) {
                clearTimeout(sub_elm.show_time_id);
            }
            sub_elm.hide_time_id = setTimeout(function(){
                if (sub_elm.hasClassName("shown-sub")) {
                    sub_elm.removeClassName("shown-sub");
                }
            }, main.settings.hide_delay);
        }

    };
    if (arguments[1]) {
        main.settings = Object.extend(main.settings, arguments[1]);
    }
    if (main.obj_nav) {
        main.init(main.obj_nav, false);
    }
};

document.observe("dom:loaded", function() {
    //run navigation without delays and with default id="#nav"
    //mainNav();

    //run navigation with delays
    mainNav("nav", {"show_delay":"100","hide_delay":"100"});
});

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Mage
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */

var Translate = Class.create();
Translate.prototype = {
    initialize: function(data){
        this.data = $H(data);
    },

    translate : function(){
        var args = arguments;
        var text = arguments[0];

        if(this.data.get(text)){
            return this.data.get(text);
        }
        return text;
    },
    add : function() {
        if (arguments.length > 1) {
            this.data.set(arguments[0], arguments[1]);
        } else if (typeof arguments[0] =='object') {
            $H(arguments[0]).each(function (pair){
                this.data.set(pair.key, pair.value);
            }.bind(this));
        }
    }
}

/**
 * Magento
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License (AFL 3.0)
 * that is bundled with this package in the file LICENSE_AFL.txt.
 * It is also available through the world-wide-web at this URL:
 * http://opensource.org/licenses/afl-3.0.php
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@magentocommerce.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade Magento to newer
 * versions in the future. If you wish to customize Magento for your
 * needs please refer to http://www.magentocommerce.com for more information.
 *
 * @category    Mage
 * @package     js
 * @copyright   Copyright (c) 2010 Magento Inc. (http://www.magentocommerce.com)
 * @license     http://opensource.org/licenses/afl-3.0.php  Academic Free License (AFL 3.0)
 */
// old school cookie functions grabbed off the web

if (!window.Mage) var Mage = {};

Mage.Cookies = {};
Mage.Cookies.expires  = null;
Mage.Cookies.path     = '/';
Mage.Cookies.domain   = null;
Mage.Cookies.secure   = false;
Mage.Cookies.set = function(name, value){
     var argv = arguments;
     var argc = arguments.length;
     var expires = (argc > 2) ? argv[2] : Mage.Cookies.expires;
     var path = (argc > 3) ? argv[3] : Mage.Cookies.path;
     var domain = (argc > 4) ? argv[4] : Mage.Cookies.domain;
     var secure = (argc > 5) ? argv[5] : Mage.Cookies.secure;
     document.cookie = name + "=" + escape (value) +
       ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
       ((path == null) ? "" : ("; path=" + path)) +
       ((domain == null) ? "" : ("; domain=" + domain)) +
       ((secure == true) ? "; secure" : "");
};

Mage.Cookies.get = function(name){
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    var j = 0;
    while(i < clen){
        j = i + alen;
        if (document.cookie.substring(i, j) == arg)
            return Mage.Cookies.getCookieVal(j);
        i = document.cookie.indexOf(" ", i) + 1;
        if(i == 0)
            break;
    }
    return null;
};

Mage.Cookies.clear = function(name) {
  if(Mage.Cookies.get(name)){
    document.cookie = name + "=" +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
};

Mage.Cookies.getCookieVal = function(offset){
   var endstr = document.cookie.indexOf(";", offset);
   if(endstr == -1){
       endstr = document.cookie.length;
   }
   return unescape(document.cookie.substring(offset, endstr));
};

/*!
 * jQuery JavaScript Library v1.6.1
 * http://jquery.com/
 *
 * Copyright 2011, John Resig
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 * Copyright 2011, The Dojo Foundation
 * Released under the MIT, BSD, and GPL Licenses.
 *
 * Date: Thu May 12 15:04:36 2011 -0400
 */
(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cv(a){if(!cj[a]){var b=f("<"+a+">").appendTo("body"),d=b.css("display");b.remove();if(d==="none"||d===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),c.body.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write("<!doctype><html><body></body></html>");b=cl.createElement(a),cl.body.appendChild(b),d=f.css(b,"display"),c.body.removeChild(ck)}cj[a]=d}return cj[a]}function cu(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function ct(){cq=b}function cs(){setTimeout(ct,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bF.test(a)?d(a,e):b_(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bU,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=b$(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=b$(a,c,d,e,"*",g));return l}function bZ(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bQ),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bD(a,b,c){var d=b==="width"?bx:by,e=b==="width"?a.offsetWidth:a.offsetHeight;if(c==="border")return e;f.each(d,function(){c||(e-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?e+=parseFloat(f.css(a,"margin"+this))||0:e-=parseFloat(f.css(a,"border"+this+"Width"))||0});return e}function bn(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bm(a){f.nodeName(a,"input")?bl(a):a.getElementsByTagName&&f.grep(a.getElementsByTagName("input"),bl)}function bl(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bk(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bj(a,b){var c;if(b.nodeType===1){b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase();if(c==="object")b.outerHTML=a.outerHTML;else if(c!=="input"||a.type!=="checkbox"&&a.type!=="radio"){if(c==="option")b.selected=a.defaultSelected;else if(c==="input"||c==="textarea")b.defaultValue=a.defaultValue}else a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value);b.removeAttribute(f.expando)}}function bi(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c=f.expando,d=f.data(a),e=f.data(b,d);if(d=d[c]){var g=d.events;e=e[c]=f.extend({},d);if(g){delete e.handle,e.events={};for(var h in g)for(var i=0,j=g[h].length;i<j;i++)f.event.add(b,h+(g[h][i].namespace?".":"")+g[h][i].namespace,g[h][i],g[h][i].data)}}}}function bh(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function X(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(S.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function W(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function O(a,b){return(a&&a!=="*"?a+".":"")+b.replace(A,"`").replace(B,"&")}function N(a){var b,c,d,e,g,h,i,j,k,l,m,n,o,p=[],q=[],r=f._data(this,"events");if(!(a.liveFired===this||!r||!r.live||a.target.disabled||a.button&&a.type==="click")){a.namespace&&(n=new RegExp("(^|\\.)"+a.namespace.split(".").join("\\.(?:.*\\.)?")+"(\\.|$)")),a.liveFired=this;var s=r.live.slice(0);for(i=0;i<s.length;i++)g=s[i],g.origType.replace(y,"")===a.type?q.push(g.selector):s.splice(i--,1);e=f(a.target).closest(q,a.currentTarget);for(j=0,k=e.length;j<k;j++){m=e[j];for(i=0;i<s.length;i++){g=s[i];if(m.selector===g.selector&&(!n||n.test(g.namespace))&&!m.elem.disabled){h=m.elem,d=null;if(g.preType==="mouseenter"||g.preType==="mouseleave")a.type=g.preType,d=f(a.relatedTarget).closest(g.selector)[0],d&&f.contains(h,d)&&(d=h);(!d||d!==h)&&p.push({elem:h,handleObj:g,level:m.level})}}}for(j=0,k=p.length;j<k;j++){e=p[j];if(c&&e.level>c)break;a.currentTarget=e.elem,a.data=e.handleObj.data,a.handleObj=e.handleObj,o=e.handleObj.origHandler.apply(e.elem,arguments);if(o===!1||a.isPropagationStopped()){c=e.level,o===!1&&(b=!1);if(a.isImmediatePropagationStopped())break}}return b}}function L(a,c,d){var e=f.extend({},d[0]);e.type=a,e.originalEvent={},e.liveFired=b,f.event.handle.call(c,e),e.isDefaultPrevented()&&d[0].preventDefault()}function F(){return!0}function E(){return!1}function m(a,c,d){var e=c+"defer",g=c+"queue",h=c+"mark",i=f.data(a,e,b,!0);i&&(d==="queue"||!f.data(a,g,b,!0))&&(d==="mark"||!f.data(a,h,b,!0))&&setTimeout(function(){!f.data(a,g,b,!0)&&!f.data(a,h,b,!0)&&(f.removeData(a,e,!0),i.resolve())},0)}function l(a){for(var b in a)if(b!=="toJSON")return!1;return!0}function k(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(j,"$1-$2").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNaN(d)?i.test(d)?f.parseJSON(d):d:parseFloat(d)}catch(g){}f.data(a,c,d)}else d=b}return d}var c=a.document,d=a.navigator,e=a.location,f=function(){function H(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(H,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/\d/,n=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,o=/^[\],:{}\s]*$/,p=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,q=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,r=/(?:^|:|,)(?:\s*\[)+/g,s=/(webkit)[ \/]([\w.]+)/,t=/(opera)(?:.*version)?[ \/]([\w.]+)/,u=/(msie) ([\w.]+)/,v=/(mozilla)(?:.*? rv:([\w.]+))?/,w=d.userAgent,x,y,z,A=Object.prototype.toString,B=Object.prototype.hasOwnProperty,C=Array.prototype.push,D=Array.prototype.slice,E=String.prototype.trim,F=Array.prototype.indexOf,G={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=n.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.6.1",length:0,size:function(){return this.length},toArray:function(){return D.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?C.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),y.done(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(D.apply(this,arguments),"slice",D.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:C,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;y.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!y){y=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",z,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",z),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&H()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a&&typeof a=="object"&&"setInterval"in a},isNaN:function(a){return a==null||!m.test(a)||isNaN(a)},type:function(a){return a==null?String(a):G[A.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;if(a.constructor&&!B.call(a,"constructor")&&!B.call(a.constructor.prototype,"isPrototypeOf"))return!1;var c;for(c in a);return c===b||B.call(a,c)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw a},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(o.test(b.replace(p,"@").replace(q,"]").replace(r,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(b,c,d){a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b)),d=c.documentElement,(!d||!d.nodeName||d.nodeName==="parsererror")&&e.error("Invalid XML: "+b);return c},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:E?function(a){return a==null?"":E.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?C.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(F)return F.call(b,a);for(var c=0,d=b.length;c<d;c++)if(b[c]===a)return c;return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=D.call(arguments,2),g=function(){return a.apply(c,f.concat(D.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h){var i=a.length;if(typeof c=="object"){for(var j in c)e.access(a,j,c[j],f,g,d);return a}if(d!==b){f=!h&&f&&e.isFunction(d);for(var k=0;k<i;k++)g(a[k],c,f?d.call(a[k],k,g(a[k],c)):d,h);return a}return i?g(a[0],c):b},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=s.exec(a)||t.exec(a)||u.exec(a)||a.indexOf("compatible")<0&&v.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){G["[object "+b+"]"]=b.toLowerCase()}),x=e.uaMatch(w),x.browser&&(e.browser[x.browser]=!0,e.browser.version=x.version),e.browser.webkit&&(e.browser.safari=!0),j.test("Â ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?z=function(){c.removeEventListener("DOMContentLoaded",z,!1),e.ready()}:c.attachEvent&&(z=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",z),e.ready())});return e}(),g="done fail isResolved isRejected promise then always pipe".split(" "),h=[].slice;f.extend({_Deferred:function(){var a=[],b,c,d,e={done:function(){if(!d){var c=arguments,g,h,i,j,k;b&&(k=b,b=0);for(g=0,h=c.length;g<h;g++)i=c[g],j=f.type(i),j==="array"?e.done.apply(e,i):j==="function"&&a.push(i);k&&e.resolveWith(k[0],k[1])}return this},resolveWith:function(e,f){if(!d&&!b&&!c){f=f||[],c=1;try{while(a[0])a.shift().apply(e,f)}finally{b=[e,f],c=0}}return this},resolve:function(){e.resolveWith(this,arguments);return this},isResolved:function(){return!!c||!!b},cancel:function(){d=1,a=[];return this}};return e},Deferred:function(a){var b=f._Deferred(),c=f._Deferred(),d;f.extend(b,{then:function(a,c){b.done(a).fail(c);return this},always:function(){return b.done.apply(b,arguments).fail.apply(this,arguments)},fail:c.done,rejectWith:c.resolveWith,reject:c.resolve,isRejected:c.isResolved,pipe:function(a,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[c,"reject"]},function(a,c){var e=c[0],g=c[1],h;f.isFunction(e)?b[a](function(){h=e.apply(this,arguments),h&&f.isFunction(h.promise)?h.promise().then(d.resolve,d.reject):d[g](h)}):b[a](d[g])})}).promise()},promise:function(a){if(a==null){if(d)return d;d=a={}}var c=g.length;while(c--)a[g[c]]=b[g[c]];return a}}),b.done(c.cancel).fail(b.cancel),delete b.cancel,a&&a.call(b,b);return b},when:function(a){function i(a){return function(c){b[a]=arguments.length>1?h.call(arguments,0):c,--e||g.resolveWith(g,h.call(b,0))}}var b=arguments,c=0,d=b.length,e=d,g=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred();if(d>1){for(;c<d;c++)b[c]&&f.isFunction(b[c].promise)?b[c].promise().then(i(c),g.reject):--e;e||g.resolveWith(g,b)}else g!==a&&g.resolveWith(g,d?[a]:[]);return g.promise()}}),f.support=function(){var a=c.createElement("div"),b=c.documentElement,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r;a.setAttribute("className","t"),a.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=a.getElementsByTagName("*"),e=a.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};f=c.createElement("select"),g=f.appendChild(c.createElement("option")),h=a.getElementsByTagName("input")[0],j={leadingWhitespace:a.firstChild.nodeType===3,tbody:!a.getElementsByTagName("tbody").length,htmlSerialize:!!a.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55$/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},h.checked=!0,j.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,j.optDisabled=!g.disabled;try{delete a.test}catch(s){j.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function b(){j.noCloneEvent=!1,a.detachEvent("onclick",b)}),a.cloneNode(!0).fireEvent("onclick")),h=c.createElement("input"),h.value="t",h.setAttribute("type","radio"),j.radioValue=h.value==="t",h.setAttribute("checked","checked"),a.appendChild(h),k=c.createDocumentFragment(),k.appendChild(a.firstChild),j.checkClone=k.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",l=c.createElement("body"),m={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};for(q in m)l.style[q]=m[q];l.appendChild(a),b.insertBefore(l,b.firstChild),j.appendChecked=h.checked,j.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,j.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",j.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",n=a.getElementsByTagName("td"),r=n[0].offsetHeight===0,n[0].style.display="",n[1].style.display="none",j.reliableHiddenOffsets=r&&n[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(i=c.createElement("div"),i.style.width="0",i.style.marginRight="0",a.appendChild(i),j.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(i,null)||{marginRight:0}).marginRight,10)||0)===0),l.innerHTML="",b.removeChild(l);if(a.attachEvent)for(q in{submit:1,change:1,focusin:1})p="on"+q,r=p in a,r||(a.setAttribute(p,"return;"),r=typeof a[p]=="function"),j[q+"Bubbles"]=r;return j}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([a-z])([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!l(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g=f.expando,h=typeof c=="string",i,j=a.nodeType,k=j?f.cache:a,l=j?a[f.expando]:a[f.expando]&&f.expando;if((!l||e&&l&&!k[l][g])&&h&&d===b)return;l||(j?a[f.expando]=l=++f.uuid:l=f.expando),k[l]||(k[l]={},j||(k[l].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?k[l][g]=f.extend(k[l][g],c):k[l]=f.extend(k[l],c);i=k[l],e&&(i[g]||(i[g]={}),i=i[g]),d!==b&&(i[f.camelCase(c)]=d);if(c==="events"&&!i[c])return i[g]&&i[g].events;return h?i[f.camelCase(c)]:i}},removeData:function(b,c,d){if(!!f.acceptData(b)){var e=f.expando,g=b.nodeType,h=g?f.cache:b,i=g?b[f.expando]:f.expando;if(!h[i])return;if(c){var j=d?h[i][e]:h[i];if(j){delete j[c];if(!l(j))return}}if(d){delete h[i][e];if(!l(h[i]))return}var k=h[i][e];f.support.deleteExpando||h!=a?delete h[i]:h[i]=null,k?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=k):g&&(f.support.deleteExpando?delete b[f.expando]:b.removeAttribute?b.removeAttribute(f.expando):b[f.expando]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d=null;if(typeof a=="undefined"){if(this.length){d=f.data(this[0]);if(this[0].nodeType===1){var e=this[0].attributes,g;for(var h=0,i=e.length;h<i;h++)g=e[h].name,g.indexOf("data-")===0&&(g=f.camelCase(g.substring(5)),k(this[0],g,d[g]))}}return d}if(typeof a=="object")return this.each(function(){f.data(this,a)});var j=a.split(".");j[1]=j[1]?"."+j[1]:"";if(c===b){d=this.triggerHandler("getData"+j[1]+"!",[j[0]]),d===b&&this.length&&(d=f.data(this[0],a),d=k(this[0],a,d));return d===b&&j[1]?this.data(j[0]):d}return this.each(function(){var b=f(this),d=[j[0],c];b.triggerHandler("setData"+j[1]+"!",d),f.data(this,a,c),b.triggerHandler("changeData"+j[1]+"!",d)})},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,c){a&&(c=(c||"fx")+"mark",f.data(a,c,(f.data(a,c,b,!0)||0)+1,!0))},_unmark:function(a,c,d){a!==!0&&(d=c,c=a,a=!1);if(c){d=d||"fx";var e=d+"mark",g=a?0:(f.data(c,e,b,!0)||1)-1;g?f.data(c,e,g,!0):(f.removeData(c,e,!0),m(c,d,"mark"))}},queue:function(a,c,d){if(a){c=(c||"fx")+"queue";var e=f.data(a,c,b,!0);d&&(!e||f.isArray(d)?e=f.data(a,c,f.makeArray(d),!0):e.push(d));return e||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e;d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),d.call(a,function(){f.dequeue(a,b)})),c.length||(f.removeData(a,b+"queue",!0),m(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){typeof a!="string"&&(c=a,a="fx");if(c===b)return f.queue(this[0],a);return this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(){var c=this;setTimeout(function(){f.dequeue(c,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f._Deferred(),!0))h++,l.done(m);m();return d.promise()}});var n=/[\n\t\r]/g,o=/\s+/,p=/\r/g,q=/^(?:button|input)$/i,r=/^(?:button|input|object|select|textarea)$/i,s=/^a(?:rea)?$/i,t=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,u=/\:/,v,w;f.fn.extend({attr:function(a,b){return f.access(this,a,b,!0,f.attr)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,a,b,!0,f.prop)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.addClass(a.call(this,b,c.attr("class")||""))});if(a&&typeof a=="string"){var b=(a||"").split(o);for(var c=0,d=this.length;c<d;c++){var e=this[c];if(e.nodeType===1)if(!e.className)e.className=a;else{var g=" "+e.className+" ",h=e.className;for(var i=0,j=b.length;i<j;i++)g.indexOf(" "+b[i]+" ")<0&&(h+=" "+b[i]);e.className=f.trim(h)}}}return this},removeClass:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.removeClass(a.call(this,b,c.attr("class")))});if(a&&typeof a=="string"||a===b){var c=(a||"").split(o);for(var d=0,e=this.length;d<e;d++){var g=this[d];if(g.nodeType===1&&g.className)if(a){var h=(" "+g.className+" ").replace(n," ");for(var i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){var d=f(this);d.toggleClass(a.call(this,c,d.attr("class"),b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(o);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ";for(var c=0,d=this.length;c<d;c++)if((" "+this[c].className+" ").replace(n," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e=this[0];if(!arguments.length){if(e){c=f.valHooks[e.nodeName.toLowerCase()]||f.valHooks[e.type];if(c&&"get"in c&&(d=c.get(e,"value"))!==b)return d;return(e.value||"").replace(p,"")}return b}var g=f.isFunction(a);return this.each(function(d){var e=f(this),h;if(this.nodeType===1){g?h=a.call(this,d,e.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.nodeName.toLowerCase()]||f.valHooks[this.type];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c=a.selectedIndex,d=[],e=a.options,g=a.type==="select-one";if(c<0)return null;for(var h=g?c:0,i=g?c+1:e.length;h<i;h++){var j=e[h];if(j.selected&&(f.support.optDisabled?!j.disabled:j.getAttribute("disabled")===null)&&(!j.parentNode.disabled||!f.nodeName(j.parentNode,"optgroup"))){b=f(j).val();if(g)return b;d.push(b)}}if(g&&!d.length&&e.length)return f(e[c]).val();return d},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attrFix:{tabindex:"tabIndex"},attr:function(a,c,d,e){var g=a.nodeType;if(!a||g===3||g===8||g===2)return b;if(e&&c in f.attrFn)return f(a)[c](d);if(!("getAttribute"in a))return f.prop(a,c,d);var h,i,j=g!==1||!f.isXMLDoc(a);c=j&&f.attrFix[c]||c,i=f.attrHooks[c],i||(!t.test(c)||typeof d!="boolean"&&d!==b&&d.toLowerCase()!==c.toLowerCase()?v&&(f.nodeName(a,"form")||u.test(c))&&(i=v):i=w);if(d!==b){if(d===null){f.removeAttr(a,c);return b}if(i&&"set"in i&&j&&(h=i.set(a,d,c))!==b)return h;a.setAttribute(c,""+d);return d}if(i&&"get"in i&&j)return i.get(a,c);h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.support.getSetAttribute?a.removeAttribute(b):(f.attr(a,b,""),a.removeAttributeNode(a.getAttributeNode(b))),t.test(b)&&(c=f.propFix[b]||b)in a&&(a[c]=!1))},attrHooks:{type:{set:function(a,b){if(q.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},tabIndex:{get:function(a){var c=a.getAttributeNode("tabIndex");return c&&c.specified?parseInt(c.value,10):r.test(a.nodeName)||s.test(a.nodeName)&&a.href?0:b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e=a.nodeType;if(!a||e===3||e===8||e===2)return b;var g,h,i=e!==1||!f.isXMLDoc(a);c=i&&f.propFix[c]||c,h=f.propHooks[c];return d!==b?h&&"set"in h&&(g=h.set(a,d,c))!==b?g:a[c]=d:h&&"get"in h&&(g=h.get(a,c))!==b?g:a[c]},propHooks:{}}),w={get:function(a,c){return a[f.propFix[c]||c]?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=b),a.setAttribute(c,c.toLowerCase()));return c}},f.attrHooks.value={get:function(a,b){if(v&&f.nodeName(a,"button"))return v.get(a,b);return a.value},set:function(a,b,c){if(v&&f.nodeName(a,"button"))return v.set(a,b,c);a.value=b}},f.support.getSetAttribute||(f.attrFix=f.propFix,v=f.attrHooks.name=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,c){var d=a.getAttributeNode(c);if(d){d.nodeValue=b;return b}}},f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})})),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}})),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var x=Object.prototype.hasOwnProperty,y=/\.(.*)$/,z=/^(?:textarea|input|select)$/i,A=/\./g,B=/ /g,C=/[^\w\s.|`]/g,D=function(a){return a.replace(C,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=E;else if(!d)return;var g,h;d.handler&&(g=d,d=g.handler),d.guid||(d.guid=f.guid++);var i=f._data(a);if(!i)return;var j=i.events,k=i.handle;j||(i.events=j={}),k||(i.handle=k=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.handle.apply(k.elem,arguments):b}),k.elem=a,c=c.split(" ");var l,m=0,n;while(l=c[m++]){h=g?f.extend({},g):{handler:d,data:e},l.indexOf(".")>-1?(n=l.split("."),l=n.shift(),h.namespace=n.slice(0).sort().join(".")):(n=[],h.namespace=""),h.type=l,h.guid||(h.guid=d.guid);var o=j[l],p=f.event.special[l]||{};if(!o){o=j[l]=[];if(!p.setup||p.setup.call(a,e,n,k)===!1)a.addEventListener?a.addEventListener(l,k,!1):a.attachEvent&&a.attachEvent("on"+l,k)}p.add&&(p.add.call(a,h),h.handler.guid||(h.handler.guid=d.guid)),o.push(h),f.event.global[l]=!0}a=null}},global:{},remove:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){d===!1&&(d=E);var g,h,i,j,k=0,l,m,n,o,p,q,r,s=f.hasData(a)&&f._data(a),t=s&&s.events;if(!s||!t)return;c&&c.type&&(d=c.handler,c=c.type);if(!c||typeof c=="string"&&c.charAt(0)==="."){c=c||"";for(h in t)f.event.remove(a,h+c);return}c=c.split(" ");while(h=c[k++]){r=h,q=null,l=h.indexOf(".")<0,m=[],l||(m=h.split("."),h=m.shift(),n=new RegExp("(^|\\.)"+f.map(m.slice(0).sort(),D).join("\\.(?:.*\\.)?")+"(\\.|$)")),p=t[h];if(!p)continue;if(!d){for(j=0;j<p.length;j++){q=p[j];if(l||n.test(q.namespace))f.event.remove(a,r,q.handler,j),p.splice(j--,1)}continue}o=f.event.special[h]||{};for(j=e||0;j<p.length;j++){q=p[j];if(d.guid===q.guid){if(l||n.test(q.namespace))e==null&&p.splice(j--,1),o.remove&&o.remove.call(a,q);if(e!=null)break}}if(p.length===0||e!=null&&p.length===1)(!o.teardown||o.teardown.call(a,m)===!1)&&f.removeEvent(a,h,s.handle),g=null,delete t[h]}if(f.isEmptyObject(t)){var u=s.handle;u&&(u.elem=null),delete s.events,delete s.handle,f.isEmptyObject(s)&&f.removeData(a,b,!0)}}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){var h=c.type||c,i=[],j;h.indexOf("!")>=0&&(h=h.slice(0,-1),j=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if(!!e&&!f.event.customEvent[h]||!!f.event.global[h]){c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.exclusive=j,c.namespace=i.join("."),c.namespace_re=new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)");if(g||!e)c.preventDefault(),c.stopPropagation();if(!e){f.each(f.cache,function(){var a=f.expando,b=this[a];b&&b.events&&b.events[h]&&f.event.trigger(c,d,b.handle.elem
)});return}if(e.nodeType===3||e.nodeType===8)return;c.result=b,c.target=e,d=d?f.makeArray(d):[],d.unshift(c);var k=e,l=h.indexOf(":")<0?"on"+h:"";do{var m=f._data(k,"handle");c.currentTarget=k,m&&m.apply(k,d),l&&f.acceptData(k)&&k[l]&&k[l].apply(k,d)===!1&&(c.result=!1,c.preventDefault()),k=k.parentNode||k.ownerDocument||k===c.target.ownerDocument&&a}while(k&&!c.isPropagationStopped());if(!c.isDefaultPrevented()){var n,o=f.event.special[h]||{};if((!o._default||o._default.call(e.ownerDocument,c)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)){try{l&&e[h]&&(n=e[l],n&&(e[l]=null),f.event.triggered=h,e[h]())}catch(p){}n&&(e[l]=n),f.event.triggered=b}}return c.result}},handle:function(c){c=f.event.fix(c||a.event);var d=((f._data(this,"events")||{})[c.type]||[]).slice(0),e=!c.exclusive&&!c.namespace,g=Array.prototype.slice.call(arguments,0);g[0]=c,c.currentTarget=this;for(var h=0,i=d.length;h<i;h++){var j=d[h];if(e||c.namespace_re.test(j.namespace)){c.handler=j.handler,c.data=j.data,c.handleObj=j;var k=j.handler.apply(this,g);k!==b&&(c.result=k,k===!1&&(c.preventDefault(),c.stopPropagation()));if(c.isImmediatePropagationStopped())break}}return c.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(a){if(a[f.expando])return a;var d=a;a=f.Event(d);for(var e=this.props.length,g;e;)g=this.props[--e],a[g]=d[g];a.target||(a.target=a.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),!a.relatedTarget&&a.fromElement&&(a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement);if(a.pageX==null&&a.clientX!=null){var h=a.target.ownerDocument||c,i=h.documentElement,j=h.body;a.pageX=a.clientX+(i&&i.scrollLeft||j&&j.scrollLeft||0)-(i&&i.clientLeft||j&&j.clientLeft||0),a.pageY=a.clientY+(i&&i.scrollTop||j&&j.scrollTop||0)-(i&&i.clientTop||j&&j.clientTop||0)}a.which==null&&(a.charCode!=null||a.keyCode!=null)&&(a.which=a.charCode!=null?a.charCode:a.keyCode),!a.metaKey&&a.ctrlKey&&(a.metaKey=a.ctrlKey),!a.which&&a.button!==b&&(a.which=a.button&1?1:a.button&2?3:a.button&4?2:0);return a},guid:1e8,proxy:f.proxy,special:{ready:{setup:f.bindReady,teardown:f.noop},live:{add:function(a){f.event.add(this,O(a.origType,a.selector),f.extend({},a,{handler:N,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,O(a.origType,a.selector),a)}},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}}},f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!this.preventDefault)return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?F:E):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=F;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=F;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=F,this.stopPropagation()},isDefaultPrevented:E,isPropagationStopped:E,isImmediatePropagationStopped:E};var G=function(a){var b=a.relatedTarget;a.type=a.data;try{if(b&&b!==c&&!b.parentNode)return;while(b&&b!==this)b=b.parentNode;b!==this&&f.event.handle.apply(this,arguments)}catch(d){}},H=function(a){a.type=a.data,f.event.handle.apply(this,arguments)};f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={setup:function(c){f.event.add(this,b,c&&c.selector?H:G,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?H:G)}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(a,b){if(!f.nodeName(this,"form"))f.event.add(this,"click.specialSubmit",function(a){var b=a.target,c=b.type;(c==="submit"||c==="image")&&f(b).closest("form").length&&L("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=b.type;(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&L("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var I,J=function(a){var b=a.type,c=a.value;b==="radio"||b==="checkbox"?c=a.checked:b==="select-multiple"?c=a.selectedIndex>-1?f.map(a.options,function(a){return a.selected}).join("-"):"":f.nodeName(a,"select")&&(c=a.selectedIndex);return c},K=function(c){var d=c.target,e,g;if(!!z.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=J(d),(c.type!=="focusout"||d.type!=="radio")&&f._data(d,"_change_data",g);if(e===b||g===e)return;if(e!=null||g)c.type="change",c.liveFired=b,f.event.trigger(c,arguments[1],d)}};f.event.special.change={filters:{focusout:K,beforedeactivate:K,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&K.call(this,a)},keydown:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(a.keyCode===13&&!f.nodeName(b,"textarea")||a.keyCode===32&&(c==="checkbox"||c==="radio")||c==="select-multiple")&&K.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",J(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in I)f.event.add(this,c+".specialChange",I[c]);return z.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return z.test(this.nodeName)}},I=f.event.special.change.filters,I.focus=I.beforeactivate}f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){function e(a){var c=f.event.fix(a);c.type=b,c.originalEvent={},f.event.trigger(c,null,c.target),c.isDefaultPrevented()&&a.preventDefault()}var d=0;f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.each(["bind","one"],function(a,c){f.fn[c]=function(a,d,e){var g;if(typeof a=="object"){for(var h in a)this[c](h,d,a[h],e);return this}if(arguments.length===2||d===!1)e=d,d=b;c==="one"?(g=function(a){f(this).unbind(a,g);return e.apply(this,arguments)},g.guid=e.guid||f.guid++):g=e;if(a==="unload"&&c!=="one")this.one(a,d,e);else for(var i=0,j=this.length;i<j;i++)f.event.add(this[i],a,g,d);return this}}),f.fn.extend({unbind:function(a,b){if(typeof a=="object"&&!a.preventDefault)for(var c in a)this.unbind(c,a[c]);else for(var d=0,e=this.length;d<e;d++)f.event.remove(this[d],a,b);return this},delegate:function(a,b,c,d){return this.live(b,c,d,a)},undelegate:function(a,b,c){return arguments.length===0?this.unbind("live"):this.die(b,null,c,a)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f.data(this,"lastToggle"+a.guid)||0)%d;f.data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var M={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};f.each(["live","die"],function(a,c){f.fn[c]=function(a,d,e,g){var h,i=0,j,k,l,m=g||this.selector,n=g?this:f(this.context);if(typeof a=="object"&&!a.preventDefault){for(var o in a)n[c](o,d,a[o],m);return this}if(c==="die"&&!a&&g&&g.charAt(0)==="."){n.unbind(g);return this}if(d===!1||f.isFunction(d))e=d||E,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=y.exec(h),k="",j&&(k=j[0],h=h.replace(y,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,M[h]?(a.push(M[h]+k),h=h+k):h=(M[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+O(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+O(h,m),e)}return this}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.bind(b,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0)}),function(){function u(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}if(i.nodeType===1){f||(i.sizcache=c,i.sizset=g);if(typeof b!="string"){if(i===b){j=!0;break}}else if(k.filter(b,[i]).length>0){j=i;break}}i=i[a]}d[g]=j}}}function t(a,b,c,d,e,f){for(var g=0,h=d.length;g<h;g++){var i=d[g];if(i){var j=!1;i=i[a];while(i){if(i.sizcache===c){j=d[i.sizset];break}i.nodeType===1&&!f&&(i.sizcache=c,i.sizset=g);if(i.nodeName.toLowerCase()===b){j=i;break}i=i[a]}d[g]=j}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d=0,e=Object.prototype.toString,g=!1,h=!0,i=/\\/g,j=/\W/;[0,0].sort(function(){h=!1;return 0});var k=function(b,d,f,g){f=f||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return f;var i,j,n,o,q,r,s,t,u=!0,w=k.isXML(d),x=[],y=b;do{a.exec(""),i=a.exec(y);if(i){y=i[3],x.push(i[1]);if(i[2]){o=i[3];break}}}while(i);if(x.length>1&&m.exec(b))if(x.length===2&&l.relative[x[0]])j=v(x[0]+x[1],d);else{j=l.relative[x[0]]?[d]:k(x.shift(),d);while(x.length)b=x.shift(),l.relative[b]&&(b+=x.shift()),j=v(b,j)}else{!g&&x.length>1&&d.nodeType===9&&!w&&l.match.ID.test(x[0])&&!l.match.ID.test(x[x.length-1])&&(q=k.find(x.shift(),d,w),d=q.expr?k.filter(q.expr,q.set)[0]:q.set[0]);if(d){q=g?{expr:x.pop(),set:p(g)}:k.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&d.parentNode?d.parentNode:d,w),j=q.expr?k.filter(q.expr,q.set):q.set,x.length>0?n=p(j):u=!1;while(x.length)r=x.pop(),s=r,l.relative[r]?s=x.pop():r="",s==null&&(s=d),l.relative[r](n,s,w)}else n=x=[]}n||(n=j),n||k.error(r||b);if(e.call(n)==="[object Array]")if(!u)f.push.apply(f,n);else if(d&&d.nodeType===1)for(t=0;n[t]!=null;t++)n[t]&&(n[t]===!0||n[t].nodeType===1&&k.contains(d,n[t]))&&f.push(j[t]);else for(t=0;n[t]!=null;t++)n[t]&&n[t].nodeType===1&&f.push(j[t]);else p(n,f);o&&(k(o,h,f,g),k.uniqueSort(f));return f};k.uniqueSort=function(a){if(r){g=h,a.sort(r);if(g)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},k.matches=function(a,b){return k(a,null,null,b)},k.matchesSelector=function(a,b){return k(b,null,null,[a]).length>0},k.find=function(a,b,c){var d;if(!a)return[];for(var e=0,f=l.order.length;e<f;e++){var g,h=l.order[e];if(g=l.leftMatch[h].exec(a)){var j=g[1];g.splice(1,1);if(j.substr(j.length-1)!=="\\"){g[1]=(g[1]||"").replace(i,""),d=l.find[h](g,b,c);if(d!=null){a=a.replace(l.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},k.filter=function(a,c,d,e){var f,g,h=a,i=[],j=c,m=c&&c[0]&&k.isXML(c[0]);while(a&&c.length){for(var n in l.filter)if((f=l.leftMatch[n].exec(a))!=null&&f[2]){var o,p,q=l.filter[n],r=f[1];g=!1,f.splice(1,1);if(r.substr(r.length-1)==="\\")continue;j===i&&(i=[]);if(l.preFilter[n]){f=l.preFilter[n](f,j,d,i,e,m);if(!f)g=o=!0;else if(f===!0)continue}if(f)for(var s=0;(p=j[s])!=null;s++)if(p){o=q(p,f,s,j);var t=e^!!o;d&&o!=null?t?g=!0:j[s]=!1:t&&(i.push(p),g=!0)}if(o!==b){d||(j=i),a=a.replace(l.match[n],"");if(!g)return[];break}}if(a===h)if(g==null)k.error(a);else break;h=a}return j},k.error=function(a){throw"Syntax error, unrecognized expression: "+a};var l=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!j.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&k.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!j.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&k.filter(b,a,!0)}},"":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("parentNode",b,f,a,e,c)},"~":function(a,b,c){var e,f=d++,g=u;typeof b=="string"&&!j.test(b)&&(b=b.toLowerCase(),e=b,g=t),g("previousSibling",b,f,a,e,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(i,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(i,"")},TAG:function(a,b){return a[1].replace(i,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||k.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&k.error(a[0]);a[0]=d++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(i,"");!f&&l.attrMap[g]&&(a[1]=l.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(i,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=k(b[3],null,null,c);else{var g=k.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(l.match.POS.test(b[0])||l.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!k(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=l.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||k.getText([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}k.error(e)},CHILD:function(a,b){var c=b[1],d=a;switch(c){case"only":case"first":while(d=d.previousSibling)if(d.nodeType===1)return!1;if(c==="first")return!0;d=a;case"last":while(d=d.nextSibling)if(d.nodeType===1)return!1;return!0;case"nth":var e=b[2],f=b[3];if(e===1&&f===0)return!0;var g=b[0],h=a.parentNode;if(h&&(h.sizcache!==g||!a.nodeIndex)){var i=0;for(d=h.firstChild;d;d=d.nextSibling)d.nodeType===1&&(d.nodeIndex=++i);h.sizcache=g}var j=a.nodeIndex-f;return e===0?j===0:j%e===0&&j/e>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=l.attrHandle[c]?l.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=l.setFilters[e];if(f)return f(a,c,b,d)}}},m=l.match.POS,n=function(a,b){return"\\"+(b-0+1)};for(var o in l.match)l.match[o]=new RegExp(l.match[o].source+/(?![^\[]*\])(?![^\(]*\))/.source),l.leftMatch[o]=new RegExp(/(^(?:.|\r|\n)*?)/.source+l.match[o].source.replace(/\\(\d+)/g,n));var p=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(q){p=function(a,b){var c=0,d=b||[];if(e.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var f=a.length;c<f;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var r,s;c.documentElement.compareDocumentPosition?r=function(a,b){if(a===b){g=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(r=function(a,b){if(a===b){g=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return s(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return s(e[k],f[k]);return k===c?s(a,f[k],-1):s(e[k],b,1)},s=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),k.getText=function(a){var b="",c;for(var d=0;a[d];d++)c=a[d],c.nodeType===3||c.nodeType===4?b+=c.nodeValue:c.nodeType!==8&&(b+=k.getText(c.childNodes));return b},function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(l.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},l.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(l.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(l.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=k,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){k=function(b,e,f,g){e=e||c;if(!g&&!k.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return p(e.getElementsByTagName(b),f);if(h[2]&&l.find.CLASS&&e.getElementsByClassName)return p(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return p([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return p([],f);if(i.id===h[3])return p([i],f)}try{return p(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var m=e,n=e.getAttribute("id"),o=n||d,q=e.parentNode,r=/^\s*[+~]/.test(b);n?o=o.replace(/'/g,"\\$&"):e.setAttribute("id",o),r&&q&&(e=e.parentNode);try{if(!r||q)return p(e.querySelectorAll("[id='"+o+"'] "+b),f)}catch(s){}finally{n||m.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)k[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}k.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!k.isXML(a))try{if(e||!l.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return k(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;l.order.splice(1,0,"CLASS"),l.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?k.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?k.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:k.contains=function(){return!1},k.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var v=function(a,b){var c,d=[],e="",f=b.nodeType?[b]:b;while(c=l.match.PSEUDO.exec(a))e+=c[0],a=a.replace(l.match.PSEUDO,"");a=l.relative[a]?a+"*":a;for(var g=0,h=f.length;g<h;g++)k(a,f[g],d);return k.filter(e,d)};f.find=k,f.expr=k.selectors,f.expr[":"]=f.expr.filters,f.unique=k.uniqueSort,f.text=k.getText,f.isXMLDoc=k.isXML,f.contains=k.contains}();var P=/Until$/,Q=/^(?:parents|prevUntil|prevAll)/,R=/,/,S=/^.[^:#\[\.,]*$/,T=Array.prototype.slice,U=f.expr.match.POS,V={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(X(this,a,!1),"not",a)},filter:function(a){return this.pushStack(X(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h,i,j={},k=1;if(g&&a.length){for(d=0,e=a.length;d<e;d++)i=a[d],j[i]||(j[i]=U.test(i)?f(i,b||this.context):i);while(g&&g.ownerDocument&&g!==b){for(i in j)h=j[i],(h.jquery?h.index(g)>-1:f(g).is(h))&&c.push({selector:i,elem:g,level:k});g=g.parentNode,k++}}return c}var l=U.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(l?l.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a||typeof a=="string")return f.inArray(this[0],a?f(a):this.parent().children());return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(W(c[0])||W(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling(a.parentNode.firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c),g=T.call(arguments);P.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!V[a]?f.unique(e):e,(this.length>1||R.test(d))&&Q.test(a)&&(e=e.reverse());return this.pushStack(e,a,g.join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var Y=/ jQuery\d+="(?:\d+|null)"/g,Z=/^\s+/,$=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,_=/<([\w:]+)/,ba=/<tbody/i,bb=/<|&#?\w+;/,bc=/<(?:script|object|embed|option|style)/i,bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){if(f.isFunction(a))return this.each(function(b){var c=f(this);c.text(a.call(this,b,c.text()))});if(typeof a!="object"&&a!==b)return this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a));return f.text(this)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){f(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f(arguments[0]).toArray());return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){if(a===b)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Y,""):null;if(typeof a=="string"&&!bc.test(a)&&(f.support.leadingWhitespace||!Z.test(a))&&!bg[(_.exec(a)||["",""])[1].toLowerCase()]){a=a.replace($,"<$1></$2>");try{for(var c=0,d=this.length;c<d;c++)this[c].nodeType===1&&(f.cleanData(this[c].getElementsByTagName("*")),this[c].innerHTML=a)}catch(e){this.empty().append(a)}}else f.isFunction(a)?this.each(function(b){var c=f(this);c.html(a.call(this,b,c.html()))}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bh(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bn)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i=b&&b[0]?b[0].ownerDocument||b[0]:c;a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!bc.test(a[0])&&(f.support.checkClone||!bd.test(a[0]))&&(g=!0,h=f.fragments[a[0]],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[a[0]]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d=a.cloneNode(!0),e,g,h;if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bj(a,d),e=bk(a),g=bk(d);for(h=0;e[h];++h)bj(e[h],g[h])}if(b){bi(a,d);if(c){e=bk(a),g=bk(d);for(h=0;e[h];++h)bi(e[h],g[h])}}return d},clean:function(a,b,d,e){var g;b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||
b[0]&&b[0].ownerDocument||c);var h=[],i;for(var j=0,k;(k=a[j])!=null;j++){typeof k=="number"&&(k+="");if(!k)continue;if(typeof k=="string")if(!bb.test(k))k=b.createTextNode(k);else{k=k.replace($,"<$1></$2>");var l=(_.exec(k)||["",""])[1].toLowerCase(),m=bg[l]||bg._default,n=m[0],o=b.createElement("div");o.innerHTML=m[1]+k+m[2];while(n--)o=o.lastChild;if(!f.support.tbody){var p=ba.test(k),q=l==="table"&&!p?o.firstChild&&o.firstChild.childNodes:m[1]==="<table>"&&!p?o.childNodes:[];for(i=q.length-1;i>=0;--i)f.nodeName(q[i],"tbody")&&!q[i].childNodes.length&&q[i].parentNode.removeChild(q[i])}!f.support.leadingWhitespace&&Z.test(k)&&o.insertBefore(b.createTextNode(Z.exec(k)[0]),o.firstChild),k=o.childNodes}var r;if(!f.support.appendChecked)if(k[0]&&typeof (r=k.length)=="number")for(i=0;i<r;i++)bm(k[i]);else bm(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||be.test(a.type)};for(j=0;h[j];j++)if(e&&f.nodeName(h[j],"script")&&(!h[j].type||h[j].type.toLowerCase()==="text/javascript"))e.push(h[j].parentNode?h[j].parentNode.removeChild(h[j]):h[j]);else{if(h[j].nodeType===1){var s=f.grep(h[j].getElementsByTagName("script"),g);h.splice.apply(h,[j+1,0].concat(s))}d.appendChild(h[j])}}return h},cleanData:function(a){var b,c,d=f.cache,e=f.expando,g=f.event.special,h=f.support.deleteExpando;for(var i=0,j;(j=a[i])!=null;i++){if(j.nodeName&&f.noData[j.nodeName.toLowerCase()])continue;c=j[f.expando];if(c){b=d[c]&&d[c][e];if(b&&b.events){for(var k in b.events)g[k]?f.event.remove(j,k):f.removeEvent(j,k,b.handle);b.handle&&(b.handle.elem=null)}h?delete j[f.expando]:j.removeAttribute&&j.removeAttribute(f.expando),delete d[c]}}}});var bo=/alpha\([^)]*\)/i,bp=/opacity=([^)]*)/,bq=/-([a-z])/ig,br=/([A-Z]|^ms)/g,bs=/^-?\d+(?:px)?$/i,bt=/^-?\d/,bu=/^[+\-]=/,bv=/[^+\-\.\de]+/g,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Left","Right"],by=["Top","Bottom"],bz,bA,bB,bC=function(a,b){return b.toUpperCase()};f.fn.css=function(a,c){if(arguments.length===2&&c===b)return this;return f.access(this,a,c,!0,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)})},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bz(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{zIndex:!0,fontWeight:!0,opacity:!0,zoom:!0,lineHeight:!0,widows:!0,orphans:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d;if(h==="number"&&isNaN(d)||d==null)return;h==="string"&&bu.test(d)&&(d=+d.replace(bv,"")+parseFloat(f.css(a,c))),h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(bz)return bz(a,c)},swap:function(a,b,c){var d={};for(var e in b)d[e]=a.style[e],a.style[e]=b[e];c.call(a);for(e in b)a.style[e]=d[e]},camelCase:function(a){return a.replace(bq,bC)}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){a.offsetWidth!==0?e=bD(a,b,d):f.swap(a,bw,function(){e=bD(a,b,d)});if(e<=0){e=bz(a,b,b),e==="0px"&&bB&&(e=bB(a,b,b));if(e!=null)return e===""||e==="auto"?"0px":e}if(e<0||e==null){e=a.style[b];return e===""||e==="auto"?"0px":e}return typeof e=="string"?e:e+"px"}},set:function(a,b){if(!bs.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bp.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle;c.zoom=1;var e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.filter=bo.test(g)?g.replace(bo,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){var c;f.swap(a,{display:"inline-block"},function(){b?c=bz(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bA=function(a,c){var d,e,g;c=c.replace(br,"-$1").toLowerCase();if(!(e=a.ownerDocument.defaultView))return b;if(g=e.getComputedStyle(a,null))d=g.getPropertyValue(c),d===""&&!f.contains(a.ownerDocument.documentElement,a)&&(d=f.style(a,c));return d}),c.documentElement.currentStyle&&(bB=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bs.test(d)&&bt.test(d)&&(c=f.left,e&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":d||0,d=f.pixelLeft+"px",f.left=c,e&&(a.runtimeStyle.left=e));return d===""?"auto":d}),bz=bA||bB,f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)});var bE=/%20/g,bF=/\[\]$/,bG=/\r?\n/g,bH=/#.*$/,bI=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bJ=/^(?:color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bK=/^(?:about|app|app\-storage|.+\-extension|file|widget):$/,bL=/^(?:GET|HEAD)$/,bM=/^\/\//,bN=/\?/,bO=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bP=/^(?:select|textarea)/i,bQ=/\s+/,bR=/([?&])_=[^&]*/,bS=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bT=f.fn.load,bU={},bV={},bW,bX;try{bW=e.href}catch(bY){bW=c.createElement("a"),bW.href="",bW=bW.href}bX=bS.exec(bW.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bT)return bT.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bO,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bP.test(this.nodeName)||bJ.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bG,"\r\n")}}):{name:b.name,value:c.replace(bG,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.bind(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?f.extend(!0,a,f.ajaxSettings,b):(b=a,a=f.extend(!0,f.ajaxSettings,b));for(var c in{context:1,url:1})c in b?a[c]=b[c]:c in f.ajaxSettings&&(a[c]=f.ajaxSettings[c]);return a},ajaxSettings:{url:bW,isLocal:bK.test(bX[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":"*/*"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML}},ajaxPrefilter:bZ(bU),ajaxTransport:bZ(bV),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a?4:0;var o,r,u,w=l?ca(d,v,l):b,x,y;if(a>=200&&a<300||a===304){if(d.ifModified){if(x=v.getResponseHeader("Last-Modified"))f.lastModified[k]=x;if(y=v.getResponseHeader("Etag"))f.etag[k]=y}if(a===304)c="notmodified",o=!0;else try{r=cb(d,w),c="success",o=!0}catch(z){c="parsererror",u=z}}else{u=c;if(!c||a)c="error",a<0&&(a=0)}v.status=a,v.statusText=c,o?h.resolveWith(e,[r,c,v]):h.rejectWith(e,[v,c,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,c]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f._Deferred(),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bI.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.done,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bH,"").replace(bM,bX[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bQ),d.crossDomain==null&&(r=bS.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bX[1]&&r[2]==bX[2]&&(r[3]||(r[1]==="http:"?80:443))==(bX[3]||(bX[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),b$(bU,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bL.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bN.test(d.url)?"&":"?")+d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bR,"$1_="+x);d.url=y+(y===d.url?(bN.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", */*; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=b$(bV,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){status<2?w(-1,z):f.error(z)}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bE,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=b.contentType==="application/x-www-form-urlencoded"&&typeof b.data=="string";if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n),m.text=h.responseText;try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq,cr=a.webkitRequestAnimationFrame||a.mozRequestAnimationFrame||a.oRequestAnimationFrame;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cu("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),e===""&&f.css(d,"display")==="none"&&f._data(d,"olddisplay",cv(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(cu("hide",3),a,b,c);for(var d=0,e=this.length;d<e;d++)if(this[d].style){var g=f.css(this[d],"display");g!=="none"&&!f._data(this[d],"olddisplay")&&f._data(this[d],"olddisplay",g)}for(d=0;d<e;d++)this[d].style&&(this[d].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(cu("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return this[e.queue===!1?"each":"queue"](function(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]),h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(f.support.inlineBlockNeedsLayout?(j=cv(this.nodeName),j==="inline"?this.style.display="inline-block":(this.style.display="inline",this.style.zoom=1)):this.style.display="inline-block"))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)k=new f.fx(this,b,i),h=a[i],cm.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=cn.exec(h),m=k.cur(),l?(n=parseFloat(l[2]),o=l[3]||(f.cssNumber[i]?"":"px"),o!=="px"&&(f.style(this,i,(n||1)+o),m=(n||1)/k.cur()*m,f.style(this,i,m+o)),l[1]&&(n=(l[1]==="-="?-1:1)*n+m),k.custom(m,n,o)):k.custom(m,h,""));return!0})},stop:function(a,b){a&&this.queue([]),this.each(function(){var a=f.timers,c=a.length;b||f._unmark(!0,this);while(c--)a[c].elem===this&&(b&&a[c](!0),a.splice(c,1))}),b||this.dequeue();return this}}),f.each({slideDown:cu("show",1),slideUp:cu("hide",1),slideToggle:cu("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default,d.old=d.complete,d.complete=function(a){d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(this),f.isFunction(d.old)&&d.old.call(this)};return d},easing:{linear:function(a,b,c,d){return c+d*a},swing:function(a,b,c,d){return(-Math.cos(a*Math.PI)/2+.5)*d+c}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,b,c){function h(a){return d.step(a)}var d=this,e=f.fx,g;this.startTime=cq||cs(),this.start=a,this.end=b,this.unit=c||this.unit||(f.cssNumber[this.prop]?"":"px"),this.now=this.start,this.pos=this.state=0,h.elem=this.elem,h()&&f.timers.push(h)&&!co&&(cr?(co=1,g=function(){co&&(cr(g),e.tick())},cr(g)):co=setInterval(e.tick,e.interval))},show:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.show=!0,this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b=cq||cs(),c=!0,d=this.elem,e=this.options,g,h;if(a||b>=e.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),e.animatedProperties[this.prop]=!0;for(g in e.animatedProperties)e.animatedProperties[g]!==!0&&(c=!1);if(c){e.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){d.style["overflow"+b]=e.overflow[a]}),e.hide&&f(d).hide();if(e.hide||e.show)for(var i in e.animatedProperties)f.style(d,i,e.orig[i]);e.complete.call(d)}return!1}e.duration==Infinity?this.now=b:(h=b-this.startTime,this.state=h/e.duration,this.pos=f.easing[e.animatedProperties[this.prop]](this.state,h,0,1,e.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){for(var a=f.timers,b=0;b<a.length;++b)a[b]()||a.splice(b--,1);a.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit:a.elem[a.prop]=a.now}}}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?f.fn.offset=function(a){var b=this[0],c;if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);try{c=b.getBoundingClientRect()}catch(d){}var e=b.ownerDocument,g=e.documentElement;if(!c||!f.contains(g,b))return c?{top:c.top,left:c.left}:{top:0,left:0};var h=e.body,i=cy(e),j=g.clientTop||h.clientTop||0,k=g.clientLeft||h.clientLeft||0,l=i.pageYOffset||f.support.boxModel&&g.scrollTop||h.scrollTop,m=i.pageXOffset||f.support.boxModel&&g.scrollLeft||h.scrollLeft,n=c.top+l-j,o=c.left+m-k;return{top:n,left:o}}:f.fn.offset=function(a){var b=this[0];if(a)return this.each(function(b){f.offset.setOffset(this,a,b)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return f.offset.bodyOffset(b);f.offset.initialize();var c,d=b.offsetParent,e=b,g=b.ownerDocument,h=g.documentElement,i=g.body,j=g.defaultView,k=j?j.getComputedStyle(b,null):b.currentStyle,l=b.offsetTop,m=b.offsetLeft;while((b=b.parentNode)&&b!==i&&b!==h){if(f.offset.supportsFixedPosition&&k.position==="fixed")break;c=j?j.getComputedStyle(b,null):b.currentStyle,l-=b.scrollTop,m-=b.scrollLeft,b===d&&(l+=b.offsetTop,m+=b.offsetLeft,f.offset.doesNotAddBorder&&(!f.offset.doesAddBorderForTableAndCells||!cw.test(b.nodeName))&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),e=d,d=b.offsetParent),f.offset.subtractsBorderForOverflowNotVisible&&c.overflow!=="visible"&&(l+=parseFloat(c.borderTopWidth)||0,m+=parseFloat(c.borderLeftWidth)||0),k=c}if(k.position==="relative"||k.position==="static")l+=i.offsetTop,m+=i.offsetLeft;f.offset.supportsFixedPosition&&k.position==="fixed"&&(l+=Math.max(h.scrollTop,i.scrollTop),m+=Math.max(h.scrollLeft,i.scrollLeft));return{top:l,left:m}},f.offset={initialize:function(){var a=c.body,b=c.createElement("div"),d,e,g,h,i=parseFloat(f.css(a,"marginTop"))||0,j="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";f.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"}),b.innerHTML=j,a.insertBefore(b,a.firstChild),d=b.firstChild,e=d.firstChild,h=d.nextSibling.firstChild.firstChild,this.doesNotAddBorder=e.offsetTop!==5,this.doesAddBorderForTableAndCells=h.offsetTop===5,e.style.position="fixed",e.style.top="20px",this.supportsFixedPosition=e.offsetTop===20||e.offsetTop===15,e.style.position=e.style.top="",d.style.overflow="hidden",d.style.position="relative",this.subtractsBorderForOverflowNotVisible=e.offsetTop===-5,this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==i,a.removeChild(b),f.offset.initialize=f.noop},bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.offset.initialize(),f.offset.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each(["Left","Top"],function(a,c){var d="scroll"+c;f.fn[d]=function(c){var e,g;if(c===b){e=this[0];if(!e)return null;g=cy(e);return g?"pageXOffset"in g?g[a?"pageYOffset":"pageXOffset"]:f.support.boxModel&&g.document.documentElement[d]||g.document.body[d]:e[d]}return this.each(function(){g=cy(this),g?g.scrollTo(a?f(g).scrollLeft():c,a?c:f(g).scrollTop()):this[d]=c})}}),f.each(["Height","Width"],function(a,c){var d=c.toLowerCase();f.fn["inner"+c]=function(){return this[0]?parseFloat(f.css(this[0],d,"padding")):null},f.fn["outer"+c]=function(a){return this[0]?parseFloat(f.css(this[0],d,a?"margin":"border")):null},f.fn[d]=function(a){var e=this[0];if(!e)return a==null?null:this;if(f.isFunction(a))return this.each(function(b){var c=f(this);c[d](a.call(this,b,c[d]()))});if(f.isWindow(e)){var g=e.document.documentElement["client"+c];return e.document.compatMode==="CSS1Compat"&&g||e.document.body["client"+c]||g}if(e.nodeType===9)return Math.max(e.documentElement["client"+c],e.body["scroll"+c],e.documentElement["scroll"+c],e.body["offset"+c],e.documentElement["offset"+c]);if(a===b){var h=f.css(e,d),i=parseFloat(h);return f.isNaN(i)?h:i}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
/* =========================================================

// jquery.innerfade.js

// Datum: 2008-02-14
// Firma: Medienfreunde Hofmann & Baldes GbR
// Author: Torsten Baldes
// Mail: t.baldes@medienfreunde.com
// Web: http://medienfreunde.com

// based on the work of Matt Oakes http://portfolio.gizone.co.uk/applications/slideshow/
// and Ralf S. Engelschall http://trainofthoughts.org/

 *
 *  <ul id="news"> 
 *      <li>content 1</li>
 *      <li>content 2</li>
 *      <li>content 3</li>
 *  </ul>
 *  
 *  $('#news').innerfade({ 
 *	  animationtype: Type of animation 'fade' or 'slide' (Default: 'fade'), 
 *	  speed: Fading-/Sliding-Speed in milliseconds or keywords (slow, normal or fast) (Default: 'normal'), 
 *	  timeout: Time between the fades in milliseconds (Default: '2000'), 
 *	  type: Type of slideshow: 'sequence', 'random' or 'random_start' (Default: 'sequence'), 
 * 		containerheight: Height of the containing element in any css-height-value (Default: 'auto'),
 *	  runningclass: CSS-Class which the container getâ€™s applied (Default: 'innerfade'),
 *	  children: optional children selector (Default: null)
 *  }); 
 *

// ========================================================= */


(function($) {

    $.fn.innerfade = function(options) {
        return this.each(function() {   
            $.innerfade(this, options);
        });
    };

    $.innerfade = function(container, options) {
        var settings = {
        		'animationtype':    'fade',
            'speed':            'normal',
            'type':             'sequence',
            'timeout':          2000,
            'containerheight':  'auto',
            'runningclass':     'innerfade',
            'children':         null
        };
        if (options)
            $.extend(settings, options);
        if (settings.children === null)
            var elements = $(container).children();
        else
            var elements = $(container).children(settings.children);
        if (elements.length > 1) {
            $(container).css('position', 'relative').css('height', settings.containerheight).addClass(settings.runningclass);
            for (var i = 0; i < elements.length; i++) {
                $(elements[i]).css('z-index', String(elements.length-i)).css('position', 'absolute').hide();
            };
            if (settings.type == "sequence") {
                setTimeout(function() {
                    $.innerfade.next(elements, settings, 1, 0);
                }, settings.timeout);
                $(elements[0]).show();
            } else if (settings.type == "random") {
            		var last = Math.floor ( Math.random () * ( elements.length ) );
                setTimeout(function() {
                    do { 
												current = Math.floor ( Math.random ( ) * ( elements.length ) );
										} while (last == current );             
										$.innerfade.next(elements, settings, current, last);
                }, settings.timeout);
                $(elements[last]).show();
						} else if ( settings.type == 'random_start' ) {
								settings.type = 'sequence';
								var current = Math.floor ( Math.random () * ( elements.length ) );
								setTimeout(function(){
									$.innerfade.next(elements, settings, (current + 1) %  elements.length, current);
								}, settings.timeout);
								$(elements[current]).show();
						}	else {
							alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
						}
				}
    };

    $.innerfade.next = function(elements, settings, current, last) {
        if (settings.animationtype == 'slide') {
            $(elements[last]).slideUp(settings.speed);
            $(elements[current]).slideDown(settings.speed);
        } else if (settings.animationtype == 'fade') {
            $(elements[last]).fadeOut(settings.speed);
            $(elements[current]).fadeIn(settings.speed, function() {
							removeFilter($(this)[0]);
						});
        } else
            alert('Innerfade-animationtype must either be \'slide\' or \'fade\'');
        if (settings.type == "sequence") {
            if ((current + 1) < elements.length) {
                current = current + 1;
                last = current - 1;
            } else {
                current = 0;
                last = elements.length - 1;
            }
        } else if (settings.type == "random") {
            last = current;
            while (current == last)
                current = Math.floor(Math.random() * elements.length);
        } else
            alert('Innerfade-Type must either be \'sequence\', \'random\' or \'random_start\'');
        setTimeout((function() {
            $.innerfade.next(elements, settings, current, last);
        }), settings.timeout);
    };

})(jQuery);

// **** remove Opacity-Filter in ie ****
function removeFilter(element) {
	if(element.style.removeAttribute){
		element.style.removeAttribute('filter');
	}
}

jQuery.noConflict();
/*
 * Copyright (c) 2009 Simo Kinnunen.
 * Licensed under the MIT license.
 *
 * @version 1.09i
 */
var Cufon=(function(){var m=function(){return m.replace.apply(null,arguments)};var x=m.DOM={ready:(function(){var C=false,E={loaded:1,complete:1};var B=[],D=function(){if(C){return}C=true;for(var F;F=B.shift();F()){}};if(document.addEventListener){document.addEventListener("DOMContentLoaded",D,false);window.addEventListener("pageshow",D,false)}if(!window.opera&&document.readyState){(function(){E[document.readyState]?D():setTimeout(arguments.callee,10)})()}if(document.readyState&&document.createStyleSheet){(function(){try{document.body.doScroll("left");D()}catch(F){setTimeout(arguments.callee,1)}})()}q(window,"load",D);return function(F){if(!arguments.length){D()}else{C?F():B.push(F)}}})(),root:function(){return document.documentElement||document.body}};var n=m.CSS={Size:function(C,B){this.value=parseFloat(C);this.unit=String(C).match(/[a-z%]*$/)[0]||"px";this.convert=function(D){return D/B*this.value};this.convertFrom=function(D){return D/this.value*B};this.toString=function(){return this.value+this.unit}},addClass:function(C,B){var D=C.className;C.className=D+(D&&" ")+B;return C},color:j(function(C){var B={};B.color=C.replace(/^rgba\((.*?),\s*([\d.]+)\)/,function(E,D,F){B.opacity=parseFloat(F);return"rgb("+D+")"});return B}),fontStretch:j(function(B){if(typeof B=="number"){return B}if(/%$/.test(B)){return parseFloat(B)/100}return{"ultra-condensed":0.5,"extra-condensed":0.625,condensed:0.75,"semi-condensed":0.875,"semi-expanded":1.125,expanded:1.25,"extra-expanded":1.5,"ultra-expanded":2}[B]||1}),getStyle:function(C){var B=document.defaultView;if(B&&B.getComputedStyle){return new a(B.getComputedStyle(C,null))}if(C.currentStyle){return new a(C.currentStyle)}return new a(C.style)},gradient:j(function(F){var G={id:F,type:F.match(/^-([a-z]+)-gradient\(/)[1],stops:[]},C=F.substr(F.indexOf("(")).match(/([\d.]+=)?(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)/ig);for(var E=0,B=C.length,D;E<B;++E){D=C[E].split("=",2).reverse();G.stops.push([D[1]||E/(B-1),D[0]])}return G}),quotedList:j(function(E){var D=[],C=/\s*((["'])([\s\S]*?[^\\])\2|[^,]+)\s*/g,B;while(B=C.exec(E)){D.push(B[3]||B[1])}return D}),recognizesMedia:j(function(G){var E=document.createElement("style"),D,C,B;E.type="text/css";E.media=G;try{E.appendChild(document.createTextNode("/**/"))}catch(F){}C=g("head")[0];C.insertBefore(E,C.firstChild);D=(E.sheet||E.styleSheet);B=D&&!D.disabled;C.removeChild(E);return B}),removeClass:function(D,C){var B=RegExp("(?:^|\\s+)"+C+"(?=\\s|$)","g");D.className=D.className.replace(B,"");return D},supports:function(D,C){var B=document.createElement("span").style;if(B[D]===undefined){return false}B[D]=C;return B[D]===C},textAlign:function(E,D,B,C){if(D.get("textAlign")=="right"){if(B>0){E=" "+E}}else{if(B<C-1){E+=" "}}return E},textShadow:j(function(F){if(F=="none"){return null}var E=[],G={},B,C=0;var D=/(#[a-f0-9]+|[a-z]+\(.*?\)|[a-z]+)|(-?[\d.]+[a-z%]*)|,/ig;while(B=D.exec(F)){if(B[0]==","){E.push(G);G={};C=0}else{if(B[1]){G.color=B[1]}else{G[["offX","offY","blur"][C++]]=B[2]}}}E.push(G);return E}),textTransform:(function(){var B={uppercase:function(C){return C.toUpperCase()},lowercase:function(C){return C.toLowerCase()},capitalize:function(C){return C.replace(/\b./g,function(D){return D.toUpperCase()})}};return function(E,D){var C=B[D.get("textTransform")];return C?C(E):E}})(),whiteSpace:(function(){var D={inline:1,"inline-block":1,"run-in":1};var C=/^\s+/,B=/\s+$/;return function(H,F,G,E){if(E){if(E.nodeName.toLowerCase()=="br"){H=H.replace(C,"")}}if(D[F.get("display")]){return H}if(!G.previousSibling){H=H.replace(C,"")}if(!G.nextSibling){H=H.replace(B,"")}return H}})()};n.ready=(function(){var B=!n.recognizesMedia("all"),E=false;var D=[],H=function(){B=true;for(var K;K=D.shift();K()){}};var I=g("link"),J=g("style");function C(K){return K.disabled||G(K.sheet,K.media||"screen")}function G(M,P){if(!n.recognizesMedia(P||"all")){return true}if(!M||M.disabled){return false}try{var Q=M.cssRules,O;if(Q){search:for(var L=0,K=Q.length;O=Q[L],L<K;++L){switch(O.type){case 2:break;case 3:if(!G(O.styleSheet,O.media.mediaText)){return false}break;default:break search}}}}catch(N){}return true}function F(){if(document.createStyleSheet){return true}var L,K;for(K=0;L=I[K];++K){if(L.rel.toLowerCase()=="stylesheet"&&!C(L)){return false}}for(K=0;L=J[K];++K){if(!C(L)){return false}}return true}x.ready(function(){if(!E){E=n.getStyle(document.body).isUsable()}if(B||(E&&F())){H()}else{setTimeout(arguments.callee,10)}});return function(K){if(B){K()}else{D.push(K)}}})();function s(D){var C=this.face=D.face,B={"\u0020":1,"\u00a0":1,"\u3000":1};this.glyphs=D.glyphs;this.w=D.w;this.baseSize=parseInt(C["units-per-em"],10);this.family=C["font-family"].toLowerCase();this.weight=C["font-weight"];this.style=C["font-style"]||"normal";this.viewBox=(function(){var F=C.bbox.split(/\s+/);var E={minX:parseInt(F[0],10),minY:parseInt(F[1],10),maxX:parseInt(F[2],10),maxY:parseInt(F[3],10)};E.width=E.maxX-E.minX;E.height=E.maxY-E.minY;E.toString=function(){return[this.minX,this.minY,this.width,this.height].join(" ")};return E})();this.ascent=-parseInt(C.ascent,10);this.descent=-parseInt(C.descent,10);this.height=-this.ascent+this.descent;this.spacing=function(L,N,E){var O=this.glyphs,M,K,G,P=[],F=0,J=-1,I=-1,H;while(H=L[++J]){M=O[H]||this.missingGlyph;if(!M){continue}if(K){F-=G=K[H]||0;P[I]-=G}F+=P[++I]=~~(M.w||this.w)+N+(B[H]?E:0);K=M.k}P.total=F;return P}}function f(){var C={},B={oblique:"italic",italic:"oblique"};this.add=function(D){(C[D.style]||(C[D.style]={}))[D.weight]=D};this.get=function(H,I){var G=C[H]||C[B[H]]||C.normal||C.italic||C.oblique;if(!G){return null}I={normal:400,bold:700}[I]||parseInt(I,10);if(G[I]){return G[I]}var E={1:1,99:0}[I%100],K=[],F,D;if(E===undefined){E=I>400}if(I==500){I=400}for(var J in G){if(!k(G,J)){continue}J=parseInt(J,10);if(!F||J<F){F=J}if(!D||J>D){D=J}K.push(J)}if(I<F){I=F}if(I>D){I=D}K.sort(function(M,L){return(E?(M>=I&&L>=I)?M<L:M>L:(M<=I&&L<=I)?M>L:M<L)?-1:1});return G[K[0]]}}function r(){function D(F,G){if(F.contains){return F.contains(G)}return F.compareDocumentPosition(G)&16}function B(G){var F=G.relatedTarget;if(!F||D(this,F)){return}C(this,G.type=="mouseover")}function E(F){C(this,F.type=="mouseenter")}function C(F,G){setTimeout(function(){var H=d.get(F).options;m.replace(F,G?h(H,H.hover):H,true)},10)}this.attach=function(F){if(F.onmouseenter===undefined){q(F,"mouseover",B);q(F,"mouseout",B)}else{q(F,"mouseenter",E);q(F,"mouseleave",E)}}}function u(){var C=[],D={};function B(H){var E=[],G;for(var F=0;G=H[F];++F){E[F]=C[D[G]]}return E}this.add=function(F,E){D[F]=C.push(E)-1};this.repeat=function(){var E=arguments.length?B(arguments):C,F;for(var G=0;F=E[G++];){m.replace(F[0],F[1],true)}}}function A(){var D={},B=0;function C(E){return E.cufid||(E.cufid=++B)}this.get=function(E){var F=C(E);return D[F]||(D[F]={})}}function a(B){var D={},C={};this.extend=function(E){for(var F in E){if(k(E,F)){D[F]=E[F]}}return this};this.get=function(E){return D[E]!=undefined?D[E]:B[E]};this.getSize=function(F,E){return C[F]||(C[F]=new n.Size(this.get(F),E))};this.isUsable=function(){return !!B}}function q(C,B,D){if(C.addEventListener){C.addEventListener(B,D,false)}else{if(C.attachEvent){C.attachEvent("on"+B,function(){return D.call(C,window.event)})}}}function v(C,B){var D=d.get(C);if(D.options){return C}if(B.hover&&B.hoverables[C.nodeName.toLowerCase()]){b.attach(C)}D.options=B;return C}function j(B){var C={};return function(D){if(!k(C,D)){C[D]=B.apply(null,arguments)}return C[D]}}function c(F,E){var B=n.quotedList(E.get("fontFamily").toLowerCase()),D;for(var C=0;D=B[C];++C){if(i[D]){return i[D].get(E.get("fontStyle"),E.get("fontWeight"))}}return null}function g(B){return document.getElementsByTagName(B)}function k(C,B){return C.hasOwnProperty(B)}function h(){var C={},B,F;for(var E=0,D=arguments.length;B=arguments[E],E<D;++E){for(F in B){if(k(B,F)){C[F]=B[F]}}}return C}function o(E,M,C,N,F,D){var K=document.createDocumentFragment(),H;if(M===""){return K}var L=N.separate;var I=M.split(p[L]),B=(L=="words");if(B&&t){if(/^\s/.test(M)){I.unshift("")}if(/\s$/.test(M)){I.push("")}}for(var J=0,G=I.length;J<G;++J){H=z[N.engine](E,B?n.textAlign(I[J],C,J,G):I[J],C,N,F,D,J<G-1);if(H){K.appendChild(H)}}return K}function l(D,M){var C=D.nodeName.toLowerCase();if(M.ignore[C]){return}var E=!M.textless[C];var B=n.getStyle(v(D,M)).extend(M);var F=c(D,B),G,K,I,H,L,J;if(!F){return}for(G=D.firstChild;G;G=I){K=G.nodeType;I=G.nextSibling;if(E&&K==3){if(H){H.appendData(G.data);D.removeChild(G)}else{H=G}if(I){continue}}if(H){D.replaceChild(o(F,n.whiteSpace(H.data,B,H,J),B,M,G,D),H);H=null}if(K==1){if(G.firstChild){if(G.nodeName.toLowerCase()=="cufon"){z[M.engine](F,null,B,M,G,D)}else{arguments.callee(G,M)}}J=G}}}var t=" ".split(/\s+/).length==0;var d=new A();var b=new r();var y=new u();var e=false;var z={},i={},w={autoDetect:false,engine:null,forceHitArea:false,hover:false,hoverables:{a:true},ignore:{applet:1,canvas:1,col:1,colgroup:1,head:1,iframe:1,map:1,optgroup:1,option:1,script:1,select:1,style:1,textarea:1,title:1,pre:1},printable:true,selector:(window.Sizzle||(window.jQuery&&function(B){return jQuery(B)})||(window.dojo&&dojo.query)||(window.Ext&&Ext.query)||(window.YAHOO&&YAHOO.util&&YAHOO.util.Selector&&YAHOO.util.Selector.query)||(window.$$&&function(B){return $$(B)})||(window.$&&function(B){return $(B)})||(document.querySelectorAll&&function(B){return document.querySelectorAll(B)})||g),separate:"words",textless:{dl:1,html:1,ol:1,table:1,tbody:1,thead:1,tfoot:1,tr:1,ul:1},textShadow:"none"};var p={words:/\s/.test("\u00a0")?/[^\S\u00a0]+/:/\s+/,characters:"",none:/^/};m.now=function(){x.ready();return m};m.refresh=function(){y.repeat.apply(y,arguments);return m};m.registerEngine=function(C,B){if(!B){return m}z[C]=B;return m.set("engine",C)};m.registerFont=function(D){if(!D){return m}var B=new s(D),C=B.family;if(!i[C]){i[C]=new f()}i[C].add(B);return m.set("fontFamily",'"'+C+'"')};m.replace=function(D,C,B){C=h(w,C);if(!C.engine){return m}if(!e){n.addClass(x.root(),"cufon-active cufon-loading");n.ready(function(){n.addClass(n.removeClass(x.root(),"cufon-loading"),"cufon-ready")});e=true}if(C.hover){C.forceHitArea=true}if(C.autoDetect){delete C.fontFamily}if(typeof C.textShadow=="string"){C.textShadow=n.textShadow(C.textShadow)}if(typeof C.color=="string"&&/^-/.test(C.color)){C.textGradient=n.gradient(C.color)}else{delete C.textGradient}if(!B){y.add(D,arguments)}if(D.nodeType||typeof D=="string"){D=[D]}n.ready(function(){for(var F=0,E=D.length;F<E;++F){var G=D[F];if(typeof G=="string"){m.replace(C.selector(G),C,true)}else{l(G,C)}}});return m};m.set=function(B,C){w[B]=C;return m};return m})();Cufon.registerEngine("vml",(function(){var e=document.namespaces;if(!e){return}e.add("cvml","urn:schemas-microsoft-com:vml");e=null;var b=document.createElement("cvml:shape");b.style.behavior="url(#default#VML)";if(!b.coordsize){return}b=null;var h=(document.documentMode||0)<8;document.write(('<style type="text/css">cufoncanvas{text-indent:0;}@media screen{cvml\\:shape,cvml\\:rect,cvml\\:fill,cvml\\:shadow{behavior:url(#default#VML);display:block;antialias:true;position:absolute;}cufoncanvas{position:absolute;text-align:left;}cufon{display:inline-block;position:relative;vertical-align:'+(h?"middle":"text-bottom")+";}cufon cufontext{position:absolute;left:-10000in;font-size:1px;}a cufon{cursor:pointer}}@media print{cufon cufoncanvas{display:none;}}</style>").replace(/;/g,"!important;"));function c(i,j){return a(i,/(?:em|ex|%)$|^[a-z-]+$/i.test(j)?"1em":j)}function a(l,m){if(m==="0"){return 0}if(/px$/i.test(m)){return parseFloat(m)}var k=l.style.left,j=l.runtimeStyle.left;l.runtimeStyle.left=l.currentStyle.left;l.style.left=m.replace("%","em");var i=l.style.pixelLeft;l.style.left=k;l.runtimeStyle.left=j;return i}function f(l,k,j,n){var i="computed"+n,m=k[i];if(isNaN(m)){m=k.get(n);k[i]=m=(m=="normal")?0:~~j.convertFrom(a(l,m))}return m}var g={};function d(p){var q=p.id;if(!g[q]){var n=p.stops,o=document.createElement("cvml:fill"),i=[];o.type="gradient";o.angle=180;o.focus="0";o.method="sigma";o.color=n[0][1];for(var m=1,l=n.length-1;m<l;++m){i.push(n[m][0]*100+"% "+n[m][1])}o.colors=i.join(",");o.color2=n[l][1];g[q]=o}return g[q]}return function(ac,G,Y,C,K,ad,W){var n=(G===null);if(n){G=K.alt}var I=ac.viewBox;var p=Y.computedFontSize||(Y.computedFontSize=new Cufon.CSS.Size(c(ad,Y.get("fontSize"))+"px",ac.baseSize));var y,q;if(n){y=K;q=K.firstChild}else{y=document.createElement("cufon");y.className="cufon cufon-vml";y.alt=G;q=document.createElement("cufoncanvas");y.appendChild(q);if(C.printable){var Z=document.createElement("cufontext");Z.appendChild(document.createTextNode(G));y.appendChild(Z)}if(!W){y.appendChild(document.createElement("cvml:shape"))}}var ai=y.style;var R=q.style;var l=p.convert(I.height),af=Math.ceil(l);var V=af/l;var P=V*Cufon.CSS.fontStretch(Y.get("fontStretch"));var U=I.minX,T=I.minY;R.height=af;R.top=Math.round(p.convert(T-ac.ascent));R.left=Math.round(p.convert(U));ai.height=p.convert(ac.height)+"px";var F=Y.get("color");var ag=Cufon.CSS.textTransform(G,Y).split("");var L=ac.spacing(ag,f(ad,Y,p,"letterSpacing"),f(ad,Y,p,"wordSpacing"));if(!L.length){return null}var k=L.total;var x=-U+k+(I.width-L[L.length-1]);var ah=p.convert(x*P),X=Math.round(ah);var O=x+","+I.height,m;var J="r"+O+"ns";var u=C.textGradient&&d(C.textGradient);var o=ac.glyphs,S=0;var H=C.textShadow;var ab=-1,aa=0,w;while(w=ag[++ab]){var D=o[ag[ab]]||ac.missingGlyph,v;if(!D){continue}if(n){v=q.childNodes[aa];while(v.firstChild){v.removeChild(v.firstChild)}}else{v=document.createElement("cvml:shape");q.appendChild(v)}v.stroked="f";v.coordsize=O;v.coordorigin=m=(U-S)+","+T;v.path=(D.d?"m"+D.d+"xe":"")+"m"+m+J;v.fillcolor=F;if(u){v.appendChild(u.cloneNode(false))}var ae=v.style;ae.width=X;ae.height=af;if(H){var s=H[0],r=H[1];var B=Cufon.CSS.color(s.color),z;var N=document.createElement("cvml:shadow");N.on="t";N.color=B.color;N.offset=s.offX+","+s.offY;if(r){z=Cufon.CSS.color(r.color);N.type="double";N.color2=z.color;N.offset2=r.offX+","+r.offY}N.opacity=B.opacity||(z&&z.opacity)||1;v.appendChild(N)}S+=L[aa++]}var M=v.nextSibling,t,A;if(C.forceHitArea){if(!M){M=document.createElement("cvml:rect");M.stroked="f";M.className="cufon-vml-cover";t=document.createElement("cvml:fill");t.opacity=0;M.appendChild(t);q.appendChild(M)}A=M.style;A.width=X;A.height=af}else{if(M){q.removeChild(M)}}ai.width=Math.max(Math.ceil(p.convert(k*P)),0);if(h){var Q=Y.computedYAdjust;if(Q===undefined){var E=Y.get("lineHeight");if(E=="normal"){E="1em"}else{if(!isNaN(E)){E+="em"}}Y.computedYAdjust=Q=0.5*(a(ad,E)-parseFloat(ai.height))}if(Q){ai.marginTop=Math.ceil(Q)+"px";ai.marginBottom=Q+"px"}}return y}})());Cufon.registerEngine("canvas",(function(){var b=document.createElement("canvas");if(!b||!b.getContext||!b.getContext.apply){return}b=null;var a=Cufon.CSS.supports("display","inline-block");var e=!a&&(document.compatMode=="BackCompat"||/frameset|transitional/i.test(document.doctype.publicId));var f=document.createElement("style");f.type="text/css";f.appendChild(document.createTextNode(("cufon{text-indent:0;}@media screen,projection{cufon{display:inline;display:inline-block;position:relative;vertical-align:middle;"+(e?"":"font-size:1px;line-height:1px;")+"}cufon cufontext{display:-moz-inline-box;display:inline-block;width:0;height:0;overflow:hidden;text-indent:-10000in;}"+(a?"cufon canvas{position:relative;}":"cufon canvas{position:absolute;}")+"}@media print{cufon{padding:0;}cufon canvas{display:none;}}").replace(/;/g,"!important;")));document.getElementsByTagName("head")[0].appendChild(f);function d(p,h){var n=0,m=0;var g=[],o=/([mrvxe])([^a-z]*)/g,k;generate:for(var j=0;k=o.exec(p);++j){var l=k[2].split(",");switch(k[1]){case"v":g[j]={m:"bezierCurveTo",a:[n+~~l[0],m+~~l[1],n+~~l[2],m+~~l[3],n+=~~l[4],m+=~~l[5]]};break;case"r":g[j]={m:"lineTo",a:[n+=~~l[0],m+=~~l[1]]};break;case"m":g[j]={m:"moveTo",a:[n=~~l[0],m=~~l[1]]};break;case"x":g[j]={m:"closePath"};break;case"e":break generate}h[g[j].m].apply(h,g[j].a)}return g}function c(m,k){for(var j=0,h=m.length;j<h;++j){var g=m[j];k[g.m].apply(k,g.a)}}return function(V,w,P,t,C,W){var k=(w===null);if(k){w=C.getAttribute("alt")}var A=V.viewBox;var m=P.getSize("fontSize",V.baseSize);var B=0,O=0,N=0,u=0;var z=t.textShadow,L=[];if(z){for(var U=z.length;U--;){var F=z[U];var K=m.convertFrom(parseFloat(F.offX));var I=m.convertFrom(parseFloat(F.offY));L[U]=[K,I];if(I<B){B=I}if(K>O){O=K}if(I>N){N=I}if(K<u){u=K}}}var Z=Cufon.CSS.textTransform(w,P).split("");var E=V.spacing(Z,~~m.convertFrom(parseFloat(P.get("letterSpacing"))||0),~~m.convertFrom(parseFloat(P.get("wordSpacing"))||0));if(!E.length){return null}var h=E.total;O+=A.width-E[E.length-1];u+=A.minX;var s,n;if(k){s=C;n=C.firstChild}else{s=document.createElement("cufon");s.className="cufon cufon-canvas";s.setAttribute("alt",w);n=document.createElement("canvas");s.appendChild(n);if(t.printable){var S=document.createElement("cufontext");S.appendChild(document.createTextNode(w));s.appendChild(S)}}var aa=s.style;var H=n.style;var j=m.convert(A.height);var Y=Math.ceil(j);var M=Y/j;var G=M*Cufon.CSS.fontStretch(P.get("fontStretch"));var J=h*G;var Q=Math.ceil(m.convert(J+O-u));var o=Math.ceil(m.convert(A.height-B+N));n.width=Q;n.height=o;H.width=Q+"px";H.height=o+"px";B+=A.minY;H.top=Math.round(m.convert(B-V.ascent))+"px";H.left=Math.round(m.convert(u))+"px";var r=Math.max(Math.ceil(m.convert(J)),0)+"px";if(a){aa.width=r;aa.height=m.convert(V.height)+"px"}else{aa.paddingLeft=r;aa.paddingBottom=(m.convert(V.height)-1)+"px"}var X=n.getContext("2d"),D=j/A.height;X.scale(D,D*M);X.translate(-u,-B);X.save();function T(){var x=V.glyphs,ab,l=-1,g=-1,y;X.scale(G,1);while(y=Z[++l]){var ab=x[Z[l]]||V.missingGlyph;if(!ab){continue}if(ab.d){X.beginPath();if(ab.code){c(ab.code,X)}else{ab.code=d("m"+ab.d,X)}X.fill()}X.translate(E[++g],0)}X.restore()}if(z){for(var U=z.length;U--;){var F=z[U];X.save();X.fillStyle=F.color;X.translate.apply(X,L[U]);T()}}var q=t.textGradient;if(q){var v=q.stops,p=X.createLinearGradient(0,A.minY,0,A.maxY);for(var U=0,R=v.length;U<R;++U){p.addColorStop.apply(p,v[U])}X.fillStyle=p}else{X.fillStyle=P.get("color")}T();return s}})());
// #### Generated By: http://www.cufonfonts.com ####
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 1992, 1994, 1997, 2000, 2004 Adobe Systems Incorporated. All rights reserved.
 * 
 * Trademark:
 * Myriad is either a registered trademark or a trademark of Adobe Systems
 * Incorporated in the United States and/or other countries.
 * 
 * Full name:
 * MyriadPro-Bold
 * 
 * Manufacturer:
 * Adobe Systems Incorporated
 * 
 * Designer:
 * Robert Slimbach and Carol Twombly
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":555,"face":{"font-family":"Myriad Pro Bold","font-weight":700,"font-stretch":"normal","units-per-em":"1000","panose-1":"2 11 7 3 3 4 3 2 2 4","ascent":"750","descent":"-250","x-height":"11","bbox":"-39 -898 875 250","underline-thickness":"50","underline-position":"-50","stemh":"112","stemv":"152","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":202,"k":{"T":39,"V":37,"W":37,"Y":40,"\u00dd":40}},"!":{"d":"191,-221r-114,0r-22,-453r158,0xm223,-80v0,53,-35,92,-91,91v-52,0,-88,-39,-88,-91v0,-54,37,-91,90,-91v53,0,89,37,89,91","w":268},"\"":{"d":"35,-692r135,0r-23,271r-89,0xm227,-692r135,0r-23,271r-89,0","w":397,"k":{"T":-9,"J":58,"C":9,"G":9,"O":9,"Q":9,"\u00d8":9,"\u00c7":9,"\u00d3":9,"\u00d4":9,"\u00d6":9,"\u00d2":9,"\u00d5":9,"\u011e":9,"V":-9,"W":-9,"X":-4,"Y":-8,"\u00dd":-8,"A":46,"\u00c6":46,"\u00c1":46,"\u00c2":46,"\u00c4":46,"\u00c0":46,"\u00c5":46,"\u00c3":46,"f":-25,"\u00df":-25,"g":19,"\u011f":19,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"t":-22,"v":-6,"w":-6,"y":-6,"\u00fd":-6,"\u00ff":-6,",":125,".":125}},"#":{"d":"223,-271r92,0r15,-113r-91,0xm183,0r-90,0r26,-179r-82,0r0,-92r97,0r16,-113r-84,0r0,-92r98,0r26,-174r88,0r-25,174r92,0r25,-174r89,0r-25,174r80,0r0,92r-95,0r-15,113r82,0r0,92r-98,0r-25,179r-90,0r26,-179r-91,0","w":550},"$":{"d":"324,87r-99,0r0,-95v-67,-3,-132,-22,-170,-43r30,-117v42,23,101,44,166,44v58,0,97,-23,97,-62v0,-38,-32,-62,-107,-87v-107,-36,-180,-86,-180,-183v0,-89,62,-158,169,-178r0,-95r98,0r0,88v66,2,111,17,146,33r-30,113v-25,-12,-72,-35,-144,-35v-65,0,-86,29,-86,57v0,32,35,54,121,85v119,42,166,97,166,188v0,89,-62,165,-177,184r0,103"},"%":{"d":"210,-661v111,0,174,82,174,193v0,136,-86,208,-180,208v-99,0,-177,-74,-177,-197v0,-116,71,-204,183,-204xm205,-578v-45,0,-65,52,-65,118v-1,68,23,117,67,117v43,0,64,-44,64,-118v0,-66,-18,-117,-66,-117xm293,11r-82,0r374,-671r81,0xm678,-391v111,0,174,82,174,193v0,135,-86,207,-180,207v-98,0,-176,-74,-176,-196v0,-116,71,-204,182,-204xm674,-308v-45,0,-65,52,-65,117v-1,68,23,117,66,117v43,0,64,-44,64,-117v0,-66,-18,-117,-65,-117","w":880},"&":{"d":"672,0r-177,0r-44,-48v-44,34,-105,59,-185,59v-287,3,-295,-298,-107,-385v-25,-38,-52,-82,-52,-134v0,-85,68,-178,204,-178v104,0,182,61,182,158v0,68,-40,127,-133,173r-1,4v39,44,80,93,113,127v27,-43,48,-105,57,-165r136,0v-18,103,-52,190,-112,256xm289,-99v38,0,71,-15,91,-34v-41,-41,-96,-104,-152,-166v-28,21,-53,50,-53,94v0,58,43,106,114,106xm364,-524v0,-33,-19,-67,-60,-67v-39,0,-60,34,-60,69v0,34,15,64,47,97v49,-33,73,-60,73,-99","w":678},"(":{"d":"174,-691r106,0v-56,92,-101,226,-101,405v0,176,45,309,101,403r-106,0v-53,-78,-114,-211,-114,-403v1,-195,61,-327,114,-405","w":314,"k":{"T":-22,"J":-10,"C":23,"G":23,"O":23,"Q":23,"\u00d8":23,"\u00c7":23,"\u00d3":23,"\u00d4":23,"\u00d6":23,"\u00d2":23,"\u00d5":23,"\u011e":23,"V":-27,"W":-27,"X":-5,"Y":-30,"\u00dd":-30,"A":19,"\u00c6":19,"\u00c1":19,"\u00c2":19,"\u00c4":19,"\u00c0":19,"\u00c5":19,"\u00c3":19,"j":-50}},")":{"d":"141,117r-106,0v56,-93,101,-228,101,-405v0,-177,-45,-310,-101,-403r106,0v53,77,114,208,114,404v0,194,-61,325,-114,404","w":314},"*":{"d":"285,-686r87,51r-107,130r160,-32r0,101r-161,-27v33,45,73,83,108,126r-88,51r-58,-154r-2,0r-57,154r-86,-51r107,-125r-1,-2r-157,28r0,-101r156,32v-32,-46,-71,-85,-105,-129r89,-52r55,155r2,0","w":454},"+":{"d":"249,-532r98,0r0,218r209,0r0,93r-209,0r0,221r-98,0r0,-221r-209,0r0,-93r209,0r0,-218","w":596},",":{"d":"103,110r-102,9v32,-89,59,-193,73,-284r155,-10v-33,102,-78,207,-126,285","w":260,"k":{"\"":122,"'":122}},"-":{"d":"30,-313r262,0r0,101r-262,0r0,-101","w":322,"k":{"T":55,"J":6,"C":-12,"G":-12,"O":-12,"Q":-12,"\u00d8":-12,"\u00c7":-12,"\u00d3":-12,"\u00d4":-12,"\u00d6":-12,"\u00d2":-12,"\u00d5":-12,"\u011e":-12,"V":24,"W":24,"X":17,"Y":60,"\u00dd":60,"A":5,"\u00c6":5,"\u00c1":5,"\u00c2":5,"\u00c4":5,"\u00c0":5,"\u00c5":5,"\u00c3":5,"g":-4,"\u011f":-4,"c":-16,"d":-16,"e":-16,"o":-16,"q":-16,"\u00f8":-16,"\u00e7":-16,"\u00e9":-16,"\u00ea":-16,"\u00eb":-16,"\u00e8":-16,"\u00f3":-16,"\u00f4":-16,"\u00f6":-16,"\u00f2":-16,"\u00f5":-16}},".":{"d":"138,11v-51,0,-88,-39,-88,-92v0,-55,37,-93,90,-93v52,0,88,37,89,93v0,53,-36,92,-91,92","w":260,"k":{"\"":122,"'":122}},"\/":{"d":"117,39r-101,0r214,-725r101,0","w":331},"0":{"d":"280,-661v173,0,242,155,242,333v0,200,-81,339,-246,339v-168,0,-243,-151,-243,-335v0,-189,79,-337,247,-337xm278,-546v-55,0,-93,70,-93,222v0,149,36,220,94,220v59,0,91,-74,91,-222v0,-144,-31,-220,-92,-220"},"1":{"d":"236,0r0,-515v-44,18,-83,40,-126,59r-25,-114r173,-80r125,0r0,650r-147,0"},"2":{"d":"504,0r-461,0r0,-92r83,-75v143,-128,212,-201,213,-277v0,-53,-31,-95,-106,-95v-56,0,-105,28,-139,53r-43,-108v48,-37,125,-67,212,-67v148,0,228,86,228,203v0,135,-135,247,-233,333r246,0r0,125"},"3":{"d":"38,-34r31,-115v27,15,89,40,151,40v79,0,119,-38,119,-86v0,-86,-98,-100,-193,-94r0,-109v81,3,175,0,175,-75v0,-39,-31,-68,-96,-68v-53,0,-109,23,-135,39r-31,-110v39,-25,116,-49,201,-49v239,0,290,248,96,313r0,2v78,14,141,73,141,159v0,114,-101,198,-266,198v-84,0,-155,-22,-193,-45"},"4":{"d":"455,0r-144,0r0,-155r-288,0r0,-99r245,-396r187,0r0,381r77,0r0,114r-77,0r0,155xm164,-269r147,0r0,-144v0,-39,2,-79,4,-121r-3,0v-44,95,-96,179,-148,265"},"5":{"d":"210,-425v159,-14,292,51,292,208v0,121,-104,228,-279,228v-79,0,-145,-18,-181,-37r28,-114v71,39,278,62,276,-67v0,-67,-53,-108,-183,-108v-36,0,-61,2,-87,6r42,-341r358,0r0,125r-252,0"},"6":{"d":"457,-659r0,117v-17,-1,-35,0,-59,2v-135,11,-195,80,-212,155r3,0v32,-32,78,-51,138,-51v109,0,201,77,201,212v0,129,-99,235,-239,235v-174,0,-259,-129,-259,-284v0,-248,167,-399,427,-386xm277,-328v-54,0,-96,34,-96,96v0,69,36,131,106,131v53,0,87,-49,87,-115v0,-60,-32,-112,-97,-112"},"7":{"d":"49,-650r459,0r0,96r-268,554r-161,0r268,-525r-298,0r0,-125"},"8":{"d":"32,-170v0,-80,49,-130,116,-165v-63,-33,-94,-86,-94,-143v0,-110,99,-183,229,-183v152,0,215,88,215,167v0,56,-30,111,-95,143r0,3v64,24,120,78,120,161v0,118,-99,198,-250,198v-165,0,-241,-93,-241,-181xm279,-94v53,0,89,-35,89,-81v0,-57,-43,-91,-102,-107v-106,20,-106,186,13,188xm276,-558v-52,0,-78,35,-78,75v0,44,39,72,91,88v81,-15,97,-162,-13,-163"},"9":{"d":"89,9r0,-118v140,14,255,-50,276,-161r-2,-1v-29,30,-72,47,-131,47v-110,0,-202,-76,-202,-203v0,-127,102,-234,245,-234v167,0,246,128,246,280v0,267,-158,403,-432,390xm273,-332v57,0,92,-22,92,-81v0,-69,-25,-137,-96,-137v-51,0,-88,46,-88,114v0,56,31,104,92,104"},":":{"d":"139,-312v-52,0,-88,-39,-88,-91v0,-54,37,-92,89,-92v53,0,88,37,89,92v0,52,-35,91,-90,91xm139,11v-52,0,-88,-39,-88,-91v0,-54,37,-92,89,-92v53,0,88,37,89,92v0,52,-35,91,-90,91","w":260},";":{"d":"103,110r-101,9v32,-89,59,-193,73,-284r153,-10v-32,102,-78,207,-125,285xm144,-312v-52,0,-88,-39,-88,-91v0,-54,37,-92,89,-92v53,0,88,37,89,92v0,52,-35,91,-90,91","w":260},"<":{"d":"58,-223r0,-86r481,-223r0,106r-364,159r0,2r364,159r0,106","w":596},"=":{"d":"556,-325r-516,0r0,-93r516,0r0,93xm556,-118r-516,0r0,-93r516,0r0,93","w":596},">":{"d":"538,-312r0,92r-481,220r0,-106r372,-159r0,-2r-372,-159r0,-106","w":596},"?":{"d":"408,-530v0,136,-152,172,-136,311r-134,0v-6,-74,7,-118,58,-182v32,-39,58,-72,58,-105v0,-76,-126,-69,-172,-30r-34,-109v37,-21,96,-41,167,-41v132,0,193,73,193,156xm201,11v-53,0,-89,-39,-89,-91v0,-54,37,-91,89,-91v54,0,89,37,90,91v0,52,-35,91,-90,91","w":445},"@":{"d":"443,-250r14,-95v-86,-22,-147,51,-149,138v0,38,17,62,50,62v37,0,76,-47,85,-105xm528,11r18,57v-228,101,-496,-11,-496,-279v0,-204,149,-381,374,-381v177,0,303,121,303,289v0,147,-82,239,-190,239v-50,0,-78,-30,-88,-77v-59,112,-242,106,-242,-54v0,-123,91,-233,235,-233v44,0,94,11,119,24r-30,186v-10,59,-3,86,25,87v43,2,97,-53,97,-169v0,-131,-84,-231,-239,-231v-154,0,-287,119,-287,311v0,227,214,314,401,231","w":770},"A":{"d":"416,-173r-193,0r-48,173r-157,0r205,-674r200,0r210,674r-165,0xm245,-287r149,0r-42,-143v-14,-39,-21,-94,-36,-130v-10,40,-20,91,-31,130","w":656,"k":{"T":83,"J":-15,"C":25,"G":25,"O":25,"Q":25,"\u00d8":25,"\u00c7":25,"\u00d3":25,"\u00d4":25,"\u00d6":25,"\u00d2":25,"\u00d5":25,"\u011e":25,"U":35,"\u00da":35,"\u00db":35,"\u00dc":35,"\u00d9":35,"V":59,"W":59,"X":24,"Y":95,"\u00dd":95,"Z":-6,"f":13,"\u00df":13,"g":14,"\u011f":14,"b":6,"h":6,"k":6,"l":6,"j":6,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"s":3,"\u015f":3,"t":20,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":31,"w":31,"y":31,"\u00fd":31,"\u00ff":31,"x":3,"-":8,"\u00ad":8,")":18,"]":18,"}":18,"\"":46,"'":46}},"B":{"d":"66,-3r0,-662v96,-15,325,-26,397,24v44,30,80,71,80,133v0,61,-40,112,-111,145v77,20,134,79,134,165v0,62,-28,110,-70,144v-49,39,-131,61,-265,61v-75,0,-131,-5,-165,-10xm217,-564r0,157v90,7,173,-17,173,-83v0,-51,-39,-78,-108,-78v-34,0,-53,2,-65,4xm217,-298r0,190v88,9,189,-4,189,-96v0,-84,-93,-99,-189,-94","w":604,"k":{"T":18,"V":11,"W":11,"Y":34,"\u00dd":34,"A":4,"\u00c6":4,"\u00c1":4,"\u00c2":4,"\u00c4":4,"\u00c0":4,"\u00c5":4,"\u00c3":4,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"v":6,"w":6,"y":6,"\u00fd":6,"\u00ff":6,"a":-3,"\u00e6":-3,"\u00e1":-3,"\u00e2":-3,"\u00e4":-3,"\u00e0":-3,"\u00e5":-3,"\u00e3":-3,"-":-12,"\u00ad":-12,",":15,".":15}},"C":{"d":"538,-138r22,120v-27,13,-91,29,-172,29v-233,0,-353,-146,-353,-338v0,-230,164,-357,368,-357v79,0,139,15,166,30r-32,120v-30,-13,-73,-25,-128,-25v-120,0,-214,73,-214,223v0,135,80,220,215,220v47,0,97,-9,128,-22","w":595,"k":{"T":-14,"J":-10,"C":30,"G":30,"O":30,"Q":30,"\u00d8":30,"\u00c7":30,"\u00d3":30,"\u00d4":30,"\u00d6":30,"\u00d2":30,"\u00d5":30,"\u011e":30,"V":-9,"W":-9,"X":-3,"Y":-7,"\u00dd":-7,"A":-10,"\u00c6":-10,"\u00c1":-10,"\u00c2":-10,"\u00c4":-10,"\u00c0":-10,"\u00c5":-10,"\u00c3":-10,"b":3,"h":3,"k":3,"l":3,"i":4,"m":4,"n":4,"p":4,"r":4,"\u0131":4,"\u00ed":4,"\u00ee":4,"\u00ef":4,"\u00ec":4,"\u00f1":4,"c":19,"d":19,"e":19,"o":19,"q":19,"\u00f8":19,"\u00e7":19,"\u00e9":19,"\u00ea":19,"\u00eb":19,"\u00e8":19,"\u00f3":19,"\u00f4":19,"\u00f6":19,"\u00f2":19,"\u00f5":19,"u":20,"\u00fa":20,"\u00fb":20,"\u00fc":20,"\u00f9":20,"v":33,"w":33,"y":33,"\u00fd":33,"\u00ff":33,"a":10,"\u00e6":10,"\u00e1":10,"\u00e2":10,"\u00e4":10,"\u00e0":10,"\u00e5":10,"\u00e3":10,"z":-7,"\u00ab":4,")":-9,"]":-9,"}":-9,"\"":-6,"'":-6}},"D":{"d":"662,-353v0,263,-161,360,-423,360v-79,0,-136,-5,-173,-10r0,-661v56,-9,129,-15,205,-15v129,0,213,24,277,72v70,52,114,135,114,254xm218,-556r0,441v169,20,283,-52,283,-233v0,-165,-123,-237,-283,-208","w":696,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"E":{"d":"467,-409r0,124r-248,0r0,160r277,0r0,125r-429,0r0,-674r415,0r0,125r-263,0r0,140r248,0","w":534,"k":{"T":-5,"J":-22,"V":-7,"W":-7,"f":5,"\u00df":5,"g":7,"\u011f":7,"b":-4,"h":-4,"k":-4,"l":-4,"j":5,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-4,"\u015f":-4,"t":6,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"z":-6,",":8,".":8}},"F":{"d":"67,0r0,-674r411,0r0,125r-259,0r0,154r242,0r0,124r-242,0r0,271r-152,0","w":527,"k":{"\u00ef":20,"J":69,"A":67,"\u00c6":67,"\u00c1":67,"\u00c2":67,"\u00c4":67,"\u00c0":67,"\u00c5":67,"\u00c3":67,"M":14,"g":9,"\u011f":9,"b":15,"h":15,"k":15,"l":15,"i":20,"m":20,"n":20,"p":20,"r":20,"\u0131":20,"\u00ed":20,"\u00ee":20,"\u00ec":20,"\u00f1":20,"c":26,"d":26,"e":26,"o":26,"q":26,"\u00f8":26,"\u00e7":26,"\u00e9":26,"\u00ea":26,"\u00eb":26,"\u00e8":26,"\u00f3":26,"\u00f4":26,"\u00f6":26,"\u00f2":26,"\u00f5":26,"u":28,"\u00fa":28,"\u00fb":28,"\u00fc":28,"\u00f9":28,"v":20,"w":20,"y":20,"\u00fd":20,"\u00ff":20,"a":39,"\u00e6":39,"\u00e1":39,"\u00e2":39,"\u00e4":39,"\u00e0":39,"\u00e5":39,"\u00e3":39,":":18,";":18,"\u00bb":5,"\u00ab":4,",":90,".":90}},"G":{"d":"404,7v-233,0,-369,-123,-369,-336v0,-224,164,-352,385,-352v87,0,154,17,187,32r-32,123v-37,-17,-82,-29,-156,-29v-127,0,-224,71,-224,218v0,167,131,250,287,212r0,-142r-104,0r0,-119r251,0r0,355v-47,16,-136,38,-225,38","w":682,"k":{"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"a":-8,"\u00e6":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8}},"H":{"d":"67,-674r152,0r0,259r251,0r0,-259r152,0r0,674r-152,0r0,-282r-251,0r0,282r-152,0r0,-674","w":689,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"I":{"d":"67,-674r152,0r0,674r-152,0r0,-674","w":285,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"J":{"d":"198,-249r0,-425r152,0r0,426v6,240,-160,289,-351,243r17,-123v93,25,182,22,182,-121","w":411,"k":{"v":-3,"w":-3,"y":-3,"\u00fd":-3,"\u00ff":-3,"a":5,"\u00e6":5,"\u00e1":5,"\u00e2":5,"\u00e4":5,"\u00e0":5,"\u00e5":5,"\u00e3":5,")":-13,"]":-13,"}":-13,",":7,".":7}},"K":{"d":"66,0r0,-674r151,0r0,298r2,0v15,-26,31,-50,47,-74r152,-224r188,0r-223,287r234,387r-177,0r-166,-291r-57,71r0,220r-151,0","w":614,"k":{"T":-6,"J":-29,"C":33,"G":33,"O":33,"Q":33,"\u00d8":33,"\u00c7":33,"\u00d3":33,"\u00d4":33,"\u00d6":33,"\u00d2":33,"\u00d5":33,"\u011e":33,"Y":15,"\u00dd":15,"Z":-17,"A":-13,"\u00c6":-13,"\u00c1":-13,"\u00c2":-13,"\u00c4":-13,"\u00c0":-13,"\u00c5":-13,"\u00c3":-13,"g":13,"\u011f":13,"c":17,"d":17,"e":17,"o":17,"q":17,"\u00f8":17,"\u00e7":17,"\u00e9":17,"\u00ea":17,"\u00eb":17,"\u00e8":17,"\u00f3":17,"\u00f4":17,"\u00f6":17,"\u00f2":17,"\u00f5":17,"u":19,"\u00fa":19,"\u00fb":19,"\u00fc":19,"\u00f9":19,"v":41,"w":41,"y":41,"\u00fd":41,"\u00ff":41,":":-7,";":-7,"\u00ab":7,"-":23,"\u00ad":23,")":-7,"]":-7,"}":-7,"\"":-4,"'":-4,",":-9,".":-9}},"L":{"d":"67,0r0,-674r152,0r0,546r268,0r0,128r-420,0","w":511,"k":{"\u00d8":38,"T":104,"J":-28,"C":38,"G":38,"O":38,"Q":38,"\u00c7":38,"\u00d3":38,"\u00d4":38,"\u00d6":38,"\u00d2":38,"\u00d5":38,"\u011e":38,"U":31,"\u00da":31,"\u00db":31,"\u00dc":31,"\u00d9":31,"V":65,"W":65,"Y":90,"\u00dd":90,"A":-6,"\u00c6":-6,"\u00c1":-6,"\u00c2":-6,"\u00c4":-6,"\u00c0":-6,"\u00c5":-6,"\u00c3":-6,"f":3,"\u00df":3,"j":4,"c":9,"d":9,"e":9,"o":9,"q":9,"\u00f8":9,"\u00e7":9,"\u00e9":9,"\u00ea":9,"\u00eb":9,"\u00e8":9,"\u00f3":9,"\u00f4":9,"\u00f6":9,"\u00f2":9,"\u00f5":9,"t":5,"u":11,"\u00fa":11,"\u00fb":11,"\u00fc":11,"\u00f9":11,"v":36,"w":36,"y":36,"\u00fd":36,"\u00ff":36,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"\u00bb":-3,"\u00ab":17,"-":18,"\u00ad":18,"\"":101,"'":101}},"M":{"d":"647,0r-11,-258v-3,-81,-6,-179,-6,-277r-2,0v-22,86,-51,182,-76,261r-82,263r-119,0r-72,-260v-24,-79,-40,-181,-63,-264r-24,535r-141,0r43,-674r203,0r66,225v22,78,42,162,57,241r4,0v36,-161,87,-316,135,-466r200,0r36,674r-148,0","w":846,"k":{"T":13,"A":3,"\u00c6":3,"\u00c1":3,"\u00c2":3,"\u00c4":3,"\u00c0":3,"\u00c5":3,"\u00c3":3,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"a":-3,"\u00e6":-3,"\u00e1":-3,"\u00e2":-3,"\u00e4":-3,"\u00e0":-3,"\u00e5":-3,"\u00e3":-3,"-":-3,"\u00ad":-3,"\u00b5":-5}},"N":{"d":"206,0r-140,0r0,-674r178,0v86,155,182,307,250,478r2,0v-16,-145,-11,-316,-12,-478r140,0r0,674r-160,0r-144,-260v-40,-72,-85,-159,-117,-238r-4,0v5,90,7,185,7,295r0,203","w":690,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"O":{"d":"363,-686v207,0,320,155,320,342v0,222,-133,355,-331,355v-199,0,-317,-151,-317,-344v0,-202,130,-353,328,-353xm360,-565v-104,0,-164,98,-164,229v0,133,62,226,164,226v103,0,162,-98,162,-229v0,-122,-57,-226,-162,-226","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"P":{"d":"550,-469v6,175,-153,249,-333,227r0,242r-151,0r0,-665v47,-8,113,-14,206,-14v171,-1,273,61,278,210xm217,-558r0,199v90,18,182,-20,182,-105v0,-62,-43,-99,-120,-99v-30,0,-51,2,-62,5","w":581,"k":{"J":76,"V":7,"W":7,"X":28,"Y":20,"\u00dd":20,"Z":9,"A":60,"\u00c6":60,"\u00c1":60,"\u00c2":60,"\u00c4":60,"\u00c0":60,"\u00c5":60,"\u00c3":60,"M":14,"g":25,"\u011f":25,"i":9,"m":9,"n":9,"p":9,"r":9,"\u0131":9,"\u00ed":9,"\u00ee":9,"\u00ef":9,"\u00ec":9,"\u00f1":9,"c":24,"d":24,"e":24,"o":24,"q":24,"\u00f8":24,"\u00e7":24,"\u00e9":24,"\u00ea":24,"\u00eb":24,"\u00e8":24,"\u00f3":24,"\u00f4":24,"\u00f6":24,"\u00f2":24,"\u00f5":24,"s":21,"\u015f":21,"t":-12,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":-8,"w":-8,"y":-8,"\u00fd":-8,"\u00ff":-8,"a":18,"\u00e6":18,"\u00e1":18,"\u00e2":18,"\u00e4":18,"\u00e0":18,"\u00e5":18,"\u00e3":18,":":10,";":10,"\u00ab":17,"-":13,"\u00ad":13,")":4,"]":4,"}":4,",":144,".":144,"\u00b5":3}},"Q":{"d":"686,-2r-43,118v-96,-28,-176,-58,-267,-95v-15,-6,-31,-9,-46,-10v-153,-10,-295,-122,-295,-343v0,-203,128,-354,330,-354v205,0,318,156,318,341v0,153,-71,261,-159,301r0,4v51,15,109,28,162,38xm360,-110v103,0,162,-97,162,-229v0,-124,-58,-226,-162,-226v-104,0,-164,102,-164,229v0,128,61,226,164,226","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"R":{"d":"269,-679v169,-1,281,45,281,195v0,85,-61,144,-119,165r0,3v47,19,73,63,90,125v21,77,41,165,54,191r-156,0v-10,-20,-27,-74,-46,-157v-23,-103,-59,-111,-156,-108r0,265r-151,0r0,-665v49,-8,121,-14,203,-14xm217,-560r0,185v97,8,181,-17,181,-97v0,-61,-42,-93,-112,-93v-37,0,-58,2,-69,5","w":593,"k":{"J":-6,"C":4,"G":4,"O":4,"Q":4,"\u00d8":4,"\u00c7":4,"\u00d3":4,"\u00d4":4,"\u00d6":4,"\u00d2":4,"\u00d5":4,"\u011e":4,"U":5,"\u00da":5,"\u00db":5,"\u00dc":5,"\u00d9":5,"V":6,"W":6,"X":-8,"Y":19,"\u00dd":19,"A":-9,"\u00c6":-9,"\u00c1":-9,"\u00c2":-9,"\u00c4":-9,"\u00c0":-9,"\u00c5":-9,"\u00c3":-9,"b":-8,"h":-8,"k":-8,"l":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-10,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"a":-9,"\u00e6":-9,"\u00e1":-9,"\u00e2":-9,"\u00e4":-9,"\u00e0":-9,"\u00e5":-9,"\u00e3":-9}},"S":{"d":"40,-32r31,-125v59,41,276,77,276,-31v0,-42,-32,-66,-113,-94v-112,-40,-186,-102,-186,-200v0,-115,97,-202,255,-202v77,0,132,15,172,34r-34,122v-26,-13,-75,-32,-140,-32v-66,0,-98,31,-98,65v0,43,37,62,125,95v119,44,174,106,174,201v0,113,-86,209,-271,209v-77,0,-153,-21,-191,-42","w":540,"k":{"\u00e6":-8,"b":4,"h":4,"k":4,"l":4,"j":9,"c":-7,"d":-7,"e":-7,"o":-7,"q":-7,"\u00f8":-7,"\u00e7":-7,"\u00e9":-7,"\u00ea":-7,"\u00eb":-7,"\u00e8":-7,"\u00f3":-7,"\u00f4":-7,"\u00f6":-7,"\u00f2":-7,"\u00f5":-7,"t":5,"v":15,"w":15,"y":15,"\u00fd":15,"\u00ff":15,"a":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8,"-":-12,"\u00ad":-12}},"T":{"d":"197,0r0,-546r-182,0r0,-128r518,0r0,128r-184,0r0,546r-152,0","w":548,"k":{"\u00ec":54,"\u00ef":54,"\u00ee":54,"\u00ed":54,"\u00e8":81,"\u00e0":66,"\u0131":54,"i":54,"T":-22,"J":53,"C":29,"G":29,"O":29,"Q":29,"\u00d8":29,"\u00c7":29,"\u00d3":29,"\u00d4":29,"\u00d6":29,"\u00d2":29,"\u00d5":29,"\u011e":29,"V":-28,"W":-28,"X":-18,"Y":-7,"\u00dd":-7,"A":72,"\u00c6":72,"\u00c1":72,"\u00c2":72,"\u00c4":72,"\u00c0":72,"\u00c5":72,"\u00c3":72,"M":4,"S":9,"\u015e":9,"g":61,"\u011f":61,"b":12,"h":12,"k":12,"l":12,"m":54,"n":54,"p":54,"r":54,"\u00f1":54,"c":81,"d":81,"e":81,"o":81,"q":81,"\u00f8":81,"\u00e7":81,"\u00e9":81,"\u00ea":81,"\u00eb":81,"\u00f3":81,"\u00f4":81,"\u00f6":81,"\u00f2":81,"\u00f5":81,"s":72,"\u015f":72,"u":54,"\u00fa":54,"\u00fb":54,"\u00fc":54,"\u00f9":54,"v":52,"w":52,"y":52,"\u00fd":52,"\u00ff":52,"x":14,"a":66,"\u00e6":66,"\u00e1":66,"\u00e2":66,"\u00e4":66,"\u00e5":66,"\u00e3":66,"z":57,":":36,";":36,"\u00bb":42,"\u00ab":54,"-":60,"\u00ad":60,")":-31,"]":-31,"}":-31,"\"":-9,"'":-9,",":83,".":83,"\u00b5":39}},"U":{"d":"66,-674r152,0r0,387v0,117,45,176,122,176v80,0,124,-56,124,-176r0,-387r152,0r0,378v0,208,-105,307,-281,307v-170,0,-269,-95,-269,-309r0,-376","w":682,"k":{"A":30,"\u00c6":30,"\u00c1":30,"\u00c2":30,"\u00c4":30,"\u00c0":30,"\u00c5":30,"\u00c3":30,"f":-5,"\u00df":-5,"s":13,"\u015f":13,"v":5,"w":5,"y":5,"\u00fd":5,"\u00ff":5,"x":12,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,"z":9,",":23,".":23}},"V":{"d":"403,0r-178,0r-216,-674r167,0r82,285v23,81,44,157,60,241r3,0v39,-184,97,-353,147,-526r162,0","w":636,"k":{"\u00ef":27,"\u00c6":54,"T":-21,"J":39,"C":8,"G":8,"O":8,"Q":8,"\u00d8":8,"\u00c7":8,"\u00d3":8,"\u00d4":8,"\u00d6":8,"\u00d2":8,"\u00d5":8,"\u011e":8,"V":-5,"W":-5,"A":54,"\u00c1":54,"\u00c2":54,"\u00c4":54,"\u00c0":54,"\u00c5":54,"\u00c3":54,"S":8,"\u015e":8,"g":8,"\u011f":8,"b":8,"h":8,"k":8,"l":8,"i":27,"m":27,"n":27,"p":27,"r":27,"\u0131":27,"\u00ed":27,"\u00ee":27,"\u00ec":27,"\u00f1":27,"c":42,"d":42,"e":42,"o":42,"q":42,"\u00f8":42,"\u00e7":42,"\u00e9":42,"\u00ea":42,"\u00eb":42,"\u00e8":42,"\u00f3":42,"\u00f4":42,"\u00f6":42,"\u00f2":42,"\u00f5":42,"s":40,"\u015f":40,"t":8,"u":30,"\u00fa":30,"\u00fb":30,"\u00fc":30,"\u00f9":30,"v":15,"w":15,"y":15,"\u00fd":15,"\u00ff":15,"a":42,"\u00e6":42,"\u00e1":42,"\u00e2":42,"\u00e4":42,"\u00e0":42,"\u00e5":42,"\u00e3":42,":":22,";":22,"\u00bb":23,"\u00ab":32,"-":25,"\u00ad":25,")":-29,"]":-29,"}":-29,"\"":-13,"'":-13,",":69,".":69}},"W":{"d":"342,0r-167,0r-160,-674r163,0r51,277v15,81,29,168,40,236r2,0v11,-73,27,-154,44,-238r57,-275r162,0r54,284v17,78,22,156,38,226v10,-75,23,-154,39,-235r55,-275r155,0r-174,674r-165,0r-57,-290v-15,-66,-20,-136,-34,-208v-27,177,-68,331,-103,498","w":888,"k":{"\u00ef":27,"\u00c6":54,"T":-21,"J":39,"C":8,"G":8,"O":8,"Q":8,"\u00d8":8,"\u00c7":8,"\u00d3":8,"\u00d4":8,"\u00d6":8,"\u00d2":8,"\u00d5":8,"\u011e":8,"V":-5,"W":-5,"A":54,"\u00c1":54,"\u00c2":54,"\u00c4":54,"\u00c0":54,"\u00c5":54,"\u00c3":54,"S":8,"\u015e":8,"g":8,"\u011f":8,"b":8,"h":8,"k":8,"l":8,"i":27,"m":27,"n":27,"p":27,"r":27,"\u0131":27,"\u00ed":27,"\u00ee":27,"\u00ec":27,"\u00f1":27,"c":42,"d":42,"e":42,"o":42,"q":42,"\u00f8":42,"\u00e7":42,"\u00e9":42,"\u00ea":42,"\u00eb":42,"\u00e8":42,"\u00f3":42,"\u00f4":42,"\u00f6":42,"\u00f2":42,"\u00f5":42,"s":40,"\u015f":40,"t":8,"u":30,"\u00fa":30,"\u00fb":30,"\u00fc":30,"\u00f9":30,"v":15,"w":15,"y":15,"\u00fd":15,"\u00ff":15,"a":42,"\u00e6":42,"\u00e1":42,"\u00e2":42,"\u00e4":42,"\u00e0":42,"\u00e5":42,"\u00e3":42,":":22,";":22,"\u00bb":23,"\u00ab":32,"-":25,"\u00ad":25,")":-29,"]":-29,"}":-29,"\"":-13,"'":-13,",":69,".":69}},"X":{"d":"597,0r-176,0r-121,-243r-2,0v-28,75,-75,165,-108,243r-174,0r195,-341r-188,-333r175,0r110,235r2,0v31,-85,67,-156,103,-235r174,0r-190,329","w":613,"k":{"T":-6,"J":-10,"C":38,"G":38,"O":38,"Q":38,"\u00d8":38,"\u00c7":38,"\u00d3":38,"\u00d4":38,"\u00d6":38,"\u00d2":38,"\u00d5":38,"\u011e":38,"V":-9,"W":-9,"X":11,"Y":-12,"\u00dd":-12,"A":13,"\u00c6":13,"\u00c1":13,"\u00c2":13,"\u00c4":13,"\u00c0":13,"\u00c5":13,"\u00c3":13,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":19,"d":19,"e":19,"o":19,"q":19,"\u00f8":19,"\u00e7":19,"\u00e9":19,"\u00ea":19,"\u00eb":19,"\u00e8":19,"\u00f3":19,"\u00f4":19,"\u00f6":19,"\u00f2":19,"\u00f5":19,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":37,"w":37,"y":37,"\u00fd":37,"\u00ff":37,"a":9,"\u00e6":9,"\u00e1":9,"\u00e2":9,"\u00e4":9,"\u00e0":9,"\u00e5":9,"\u00e3":9,"\u00ab":16,"-":18,"\u00ad":18,"\"":-4,"'":-4}},"Y":{"d":"374,0r-152,0r0,-276r-213,-398r175,0r120,291r2,0r119,-291r171,0r-222,393r0,281","w":603,"k":{"\u00f6":109,"\u00ef":21,"\u00eb":109,"\u00e4":93,"J":69,"C":47,"G":47,"O":47,"Q":47,"\u00d8":47,"\u00c7":47,"\u00d3":47,"\u00d4":47,"\u00d6":47,"\u00d2":47,"\u00d5":47,"\u011e":47,"V":-19,"W":-19,"X":22,"Y":26,"\u00dd":26,"A":92,"\u00c6":92,"\u00c1":92,"\u00c2":92,"\u00c4":92,"\u00c0":92,"\u00c5":92,"\u00c3":92,"M":21,"S":29,"\u015e":29,"B":18,"D":18,"E":18,"F":18,"H":18,"I":18,"K":18,"L":18,"N":18,"P":18,"R":18,"\u00d0":18,"\u00c9":18,"\u00ca":18,"\u00cb":18,"\u00c8":18,"\u00cd":18,"\u00ce":18,"\u00cf":18,"\u00cc":18,"\u00d1":18,"\u0130":18,"g":81,"\u011f":81,"b":15,"h":15,"k":15,"l":15,"i":21,"m":21,"n":21,"p":21,"r":21,"\u0131":21,"\u00ed":21,"\u00ee":21,"\u00ec":21,"\u00f1":21,"c":109,"d":109,"e":109,"o":109,"q":109,"\u00f8":109,"\u00e7":109,"\u00e9":109,"\u00ea":109,"\u00e8":109,"\u00f3":109,"\u00f4":109,"\u00f2":109,"\u00f5":109,"s":64,"\u015f":64,"t":45,"u":72,"\u00fa":72,"\u00fb":72,"\u00fc":72,"\u00f9":72,"v":53,"w":53,"y":53,"\u00fd":53,"\u00ff":53,"x":56,"a":93,"\u00e6":93,"\u00e1":93,"\u00e2":93,"\u00e0":93,"\u00e5":93,"\u00e3":93,"z":49,":":50,";":50,"\u00bb":44,"\u00ab":71,"-":62,"\u00ad":62,")":-33,"]":-33,"}":-33,"\"":-9,"'":-9,",":118,".":118}},"Z":{"d":"24,0r0,-82r321,-462r0,-4r-292,0r0,-126r489,0r0,88r-314,456r0,4r319,0r0,126r-523,0","w":577,"k":{"J":-22,"C":22,"G":22,"O":22,"Q":22,"\u00d8":22,"\u00c7":22,"\u00d3":22,"\u00d4":22,"\u00d6":22,"\u00d2":22,"\u00d5":22,"\u011e":22,"X":5,"Y":-6,"\u00dd":-6,"A":-8,"\u00c6":-8,"\u00c1":-8,"\u00c2":-8,"\u00c4":-8,"\u00c0":-8,"\u00c5":-8,"\u00c3":-8,"c":9,"d":9,"e":9,"o":9,"q":9,"\u00f8":9,"\u00e7":9,"\u00e9":9,"\u00ea":9,"\u00eb":9,"\u00e8":9,"\u00f3":9,"\u00f4":9,"\u00f6":9,"\u00f2":9,"\u00f5":9,"u":11,"\u00fa":11,"\u00fb":11,"\u00fc":11,"\u00f9":11,"v":16,"w":16,"y":16,"\u00fd":16,"\u00ff":16,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"-":8,"\u00ad":8}},"[":{"d":"272,112r-204,0r0,-798r204,0r0,84r-95,0r0,630r95,0r0,84","w":314,"k":{"T":-22,"J":-10,"C":23,"G":23,"O":23,"Q":23,"\u00d8":23,"\u00c7":23,"\u00d3":23,"\u00d4":23,"\u00d6":23,"\u00d2":23,"\u00d5":23,"\u011e":23,"V":-27,"W":-27,"X":-5,"Y":-30,"\u00dd":-30,"A":19,"\u00c6":19,"\u00c1":19,"\u00c2":19,"\u00c4":19,"\u00c0":19,"\u00c5":19,"\u00c3":19,"j":-50}},"\\":{"d":"314,39r-101,0r-201,-725r101,0","w":330},"]":{"d":"42,-686r204,0r0,798r-204,0r0,-84r95,0r0,-630r-95,0r0,-84","w":314},"^":{"d":"554,-177r-109,0r-146,-356r-3,0r-146,356r-107,0r209,-473r93,0","w":596},"_":{"d":"0,75r500,0r0,50r-500,0r0,-50","w":500},"a":{"d":"468,-289v0,92,-5,213,8,289r-137,0r-9,-49r-3,0v-32,39,-82,60,-140,60v-99,0,-158,-72,-158,-150v0,-127,114,-187,287,-187v11,-98,-172,-73,-224,-33r-28,-98v34,-19,101,-44,190,-44v163,0,214,96,214,212xm239,-96v45,0,83,-31,82,-82r0,-53v-80,0,-142,19,-142,77v0,39,26,58,60,58","w":528},"b":{"d":"61,-146r0,-564r152,0r0,279r2,0v29,-42,80,-69,148,-69v117,0,201,97,201,247v0,176,-111,264,-223,264v-59,0,-112,-25,-149,-79r-6,68r-129,0v2,-32,4,-91,4,-146xm305,-383v-49,1,-93,42,-92,103r0,72v0,59,40,99,92,99v65,0,105,-50,105,-138v0,-76,-34,-136,-105,-136","w":598,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"c":{"d":"410,-125r18,112v-27,13,-78,23,-136,23v-158,0,-259,-97,-259,-250v0,-143,98,-260,280,-260v40,0,84,7,116,19r-24,113v-18,-8,-45,-15,-85,-15v-80,0,-131,57,-131,137v0,125,123,162,221,121","w":451,"k":{"T":14,"f":-7,"\u00df":-7,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"t":-16,"v":-15,"w":-15,"y":-15,"\u00fd":-15,"\u00ff":-15,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"\u00bb":-11,"-":-12,"\u00ad":-12,"\"":-6,"'":-6,",":7,".":7}},"d":{"d":"383,-710r152,0r0,564v0,55,2,113,4,146r-135,0r-6,-71r-3,0v-30,54,-90,82,-153,82v-116,0,-209,-99,-209,-251v-1,-165,102,-261,219,-261v63,0,105,25,131,55r0,-264xm291,-110v55,0,95,-43,92,-108r0,-64v1,-60,-36,-102,-91,-102v-70,0,-105,62,-105,139v0,83,41,135,104,135","w":596,"k":{",":9,".":9}},"e":{"d":"493,-196r-315,0v6,109,182,106,273,72r20,103v-50,21,-111,31,-177,31v-166,0,-261,-96,-261,-249v0,-124,77,-261,247,-261v180,0,235,149,213,304xm177,-300r180,0v0,-37,-16,-99,-86,-99v-64,0,-90,59,-94,99","w":528,"k":{"T":41,"v":6,"w":6,"y":6,"\u00fd":6,"\u00ff":6,"x":12,"-":-30,"\u00ad":-30,"\"":3,"'":3,",":16,".":16}},"f":{"d":"231,0r-152,0r0,-377r-65,0r0,-112r65,0v-2,-74,13,-137,61,-183v56,-54,140,-57,216,-39r-6,117v-13,-4,-29,-7,-49,-7v-59,1,-75,50,-71,112r98,0r0,112r-97,0r0,377","w":341,"k":{"g":8,"\u011f":8,"c":10,"d":10,"e":10,"o":10,"q":10,"\u00f8":10,"\u00e7":10,"\u00e9":10,"\u00ea":10,"\u00eb":10,"\u00e8":10,"\u00f3":10,"\u00f4":10,"\u00f6":10,"\u00f2":10,"\u00f5":10,"s":6,"\u015f":6,"t":-15,":":-28,";":-28,"\u00bb":-8,"-":3,"\u00ad":3,")":-72,"]":-72,"}":-72,"\"":-42,"'":-42,",":39,".":39}},"g":{"d":"528,-489v-7,105,-3,294,-4,418v0,94,-19,171,-75,220v-92,80,-267,74,-374,23r30,-116v31,18,84,37,142,37v81,0,142,-59,125,-160v-29,40,-76,63,-132,63v-121,0,-207,-98,-207,-238v0,-158,101,-258,222,-258v69,0,107,32,136,70r5,-59r132,0xm286,-116v54,0,86,-42,86,-102r0,-72v-1,-57,-35,-95,-85,-95v-56,0,-100,50,-100,139v0,73,36,130,99,130","w":585,"k":{"T":34,",":17,".":17}},"h":{"d":"294,-377v-51,0,-80,35,-81,87r0,290r-152,0r0,-710r152,0r0,280r2,0v29,-40,76,-70,139,-70v97,0,171,67,171,215r0,285r-152,0r0,-269v0,-64,-22,-108,-79,-108","w":586,"k":{"T":57,"t":6,"v":19,"w":19,"y":19,"\u00fd":19,"\u00ff":19,"\"":14,"'":14}},"i":{"d":"213,0r-152,0r0,-489r152,0r0,489xm138,-701v49,0,79,33,80,76v0,42,-31,76,-82,76v-48,0,-79,-34,-79,-76v0,-43,32,-76,81,-76","w":274},"j":{"d":"-39,96v108,-16,119,-38,120,-191r0,-394r152,0r0,431v5,193,-89,269,-257,273xm157,-701v49,0,79,33,80,76v0,42,-31,76,-82,76v-48,0,-79,-34,-79,-76v0,-43,32,-76,81,-76","w":291,"k":{",":10,".":10}},"k":{"d":"213,-710r0,427r2,0v40,-74,89,-137,134,-206r183,0r-175,198r200,291r-187,0r-119,-201r-38,48r0,153r-152,0r0,-710r152,0","w":542,"k":{"T":28,"g":14,"\u011f":14,"b":-11,"h":-11,"k":-11,"l":-11,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"v":-3,"w":-3,"y":-3,"\u00fd":-3,"\u00ff":-3,"a":-5,"\u00e6":-5,"\u00e1":-5,"\u00e2":-5,"\u00e4":-5,"\u00e0":-5,"\u00e5":-5,"\u00e3":-5,":":-3,";":-3,"-":5,"\u00ad":5,",":-4,".":-4}},"l":{"d":"61,0r0,-710r152,0r0,710r-152,0","w":275,"k":{",":9,".":9}},"m":{"d":"286,-378v-53,0,-76,42,-77,93r0,285r-148,0r0,-333v0,-61,-2,-112,-4,-156r129,0r6,66r3,0v21,-32,65,-78,148,-78v66,0,111,37,136,84v36,-49,81,-84,157,-84v94,0,165,66,165,213r0,288r-148,0r0,-266v0,-71,-23,-112,-72,-112v-49,0,-77,38,-76,92r0,286r-148,0r0,-275v0,-61,-22,-103,-71,-103","w":860,"k":{"T":57,"t":6,"v":19,"w":19,"y":19,"\u00fd":19,"\u00ff":19,"\"":14,"'":14}},"n":{"d":"296,-377v-55,0,-83,38,-83,95r0,282r-152,0r0,-333v0,-61,-2,-112,-4,-156r132,0r7,68r3,0v20,-32,69,-79,151,-79v100,0,175,67,175,211r0,289r-152,0r0,-271v0,-63,-22,-106,-77,-106","w":586,"k":{"T":57,"t":6,"v":19,"w":19,"y":19,"\u00fd":19,"\u00ff":19,"\"":14,"'":14}},"o":{"d":"295,-501v149,0,249,103,249,251v0,179,-127,261,-258,261v-143,0,-253,-94,-253,-252v0,-159,104,-260,262,-260xm290,-392v-72,0,-100,75,-100,147v0,84,35,147,100,147v60,0,97,-59,97,-148v0,-72,-28,-146,-97,-146","w":577,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"p":{"d":"61,198r0,-523v0,-64,-2,-118,-4,-164r132,0v4,21,1,50,9,68v36,-51,92,-79,163,-79v107,0,203,93,203,249v0,178,-113,262,-222,262v-61,0,-103,-27,-129,-56r0,243r-152,0xm307,-381v-51,1,-94,42,-94,104r0,67v-1,63,38,104,92,104v66,0,105,-55,105,-138v0,-78,-35,-137,-103,-137","w":598,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"q":{"d":"249,-501v65,0,109,26,139,70r4,-58r146,0v-1,48,-3,96,-3,147r0,540r-152,0r0,-260r-2,0v-31,47,-80,73,-146,73v-106,0,-202,-94,-202,-249v0,-176,111,-263,216,-263xm291,-109v54,0,93,-41,92,-102r0,-73v-1,-57,-35,-98,-91,-98v-69,0,-105,59,-105,138v0,81,40,135,104,135","w":595,"k":{"T":37,",":7,".":7}},"r":{"d":"361,-355v-83,-17,-148,21,-148,107r0,248r-152,0r0,-328v0,-72,-1,-119,-4,-161r130,0r6,90r4,0v35,-82,88,-111,164,-99r0,143","w":380,"k":{"T":20,"f":-27,"\u00df":-27,"g":8,"\u011f":8,"b":3,"h":3,"k":3,"l":3,"c":8,"d":8,"e":8,"o":8,"q":8,"\u00f8":8,"\u00e7":8,"\u00e9":8,"\u00ea":8,"\u00eb":8,"\u00e8":8,"\u00f3":8,"\u00f4":8,"\u00f6":8,"\u00f2":8,"\u00f5":8,"t":-21,"u":3,"\u00fa":3,"\u00fb":3,"\u00fc":3,"\u00f9":3,"v":-18,"w":-18,"y":-18,"\u00fd":-18,"\u00ff":-18,"x":-13,"a":11,"\u00e6":11,"\u00e1":11,"\u00e2":11,"\u00e4":11,"\u00e0":11,"\u00e5":11,"\u00e3":11,"z":-7,":":4,";":4,"\u00bb":-7,",":65,".":65}},"s":{"d":"33,-24r27,-108v28,17,86,36,131,36v46,0,65,-15,65,-40v0,-26,-15,-38,-71,-57v-102,-34,-140,-89,-140,-147v0,-92,78,-161,199,-161v57,0,107,14,137,29r-26,105v-30,-21,-164,-54,-164,11v0,24,19,36,79,57v93,32,132,80,132,151v0,92,-71,159,-211,159v-64,0,-121,-15,-158,-35","w":434,"k":{"T":35,",":10,".":10}},"t":{"d":"239,10v-112,0,-158,-62,-157,-187r0,-200r-65,0r0,-112r65,0r0,-91r149,-41r0,132r109,0r0,112r-109,0r0,177v-7,81,42,95,105,82r1,115v-19,7,-56,13,-98,13","w":367,"k":{"g":5,"\u011f":5,"c":5,"d":5,"e":5,"o":5,"q":5,"\u00f8":5,"\u00e7":5,"\u00e9":5,"\u00ea":5,"\u00eb":5,"\u00e8":5,"\u00f3":5,"\u00f4":5,"\u00f6":5,"\u00f2":5,"\u00f5":5,"v":-5,"w":-5,"y":-5,"\u00fd":-5,"\u00ff":-5,",":8,".":8}},"u":{"d":"288,-112v55,0,82,-35,82,-86r0,-291r152,0r0,332v0,64,2,116,4,157r-132,0r-7,-69r-3,0v-19,30,-65,80,-153,80v-100,0,-172,-62,-172,-213r0,-287r152,0r0,263v0,71,23,114,77,114","w":583,"k":{"T":37,",":7,".":7}},"v":{"d":"9,-489r165,0r66,227v12,42,20,80,28,119r3,0v23,-119,60,-233,90,-346r160,0r-182,489r-152,0","w":530,"k":{"T":37,"g":14,"\u011f":14,"c":15,"d":15,"e":15,"o":15,"q":15,"\u00f8":15,"\u00e7":15,"\u00e9":15,"\u00ea":15,"\u00eb":15,"\u00e8":15,"\u00f3":15,"\u00f4":15,"\u00f6":15,"\u00f2":15,"\u00f5":15,"s":16,"\u015f":16,"v":-19,"w":-19,"y":-19,"\u00fd":-19,"\u00ff":-19,"a":7,"\u00e6":7,"\u00e1":7,"\u00e2":7,"\u00e4":7,"\u00e0":7,"\u00e5":7,"\u00e3":7,":":-5,";":-5,"-":7,"\u00ad":7,",":48,".":48}},"w":{"d":"11,-489r155,0r40,201v9,50,19,104,27,160r3,0v24,-130,57,-240,87,-361r120,0r49,195v16,55,23,115,38,166v16,-123,46,-244,70,-361r149,0r-150,489r-142,0r-46,-171v-13,-48,-22,-92,-32,-153r-2,0v-18,128,-50,213,-80,324r-143,0","w":759,"k":{"T":37,"g":14,"\u011f":14,"c":15,"d":15,"e":15,"o":15,"q":15,"\u00f8":15,"\u00e7":15,"\u00e9":15,"\u00ea":15,"\u00eb":15,"\u00e8":15,"\u00f3":15,"\u00f4":15,"\u00f6":15,"\u00f2":15,"\u00f5":15,"s":16,"\u015f":16,"v":-19,"w":-19,"y":-19,"\u00fd":-19,"\u00ff":-19,"a":7,"\u00e6":7,"\u00e1":7,"\u00e2":7,"\u00e4":7,"\u00e0":7,"\u00e5":7,"\u00e3":7,":":-5,";":-5,"-":7,"\u00ad":7,",":48,".":48}},"x":{"d":"7,-489r170,0r88,155r2,0r81,-155r165,0r-161,233r163,256r-172,0r-49,-88v-14,-24,-26,-49,-38,-74r-3,0r-83,162r-167,0r166,-249","w":519,"k":{"T":29,"c":22,"d":22,"e":22,"o":22,"q":22,"\u00f8":22,"\u00e7":22,"\u00e9":22,"\u00ea":22,"\u00eb":22,"\u00e8":22,"\u00f3":22,"\u00f4":22,"\u00f6":22,"\u00f2":22,"\u00f5":22,"s":8,"\u015f":8,"t":-13,"v":-19,"w":-19,"y":-19,"\u00fd":-19,"\u00ff":-19,"-":4,"\u00ad":4}},"y":{"d":"55,93v56,-14,121,-49,137,-109v0,-6,-1,-13,-6,-25r-180,-448r169,0r73,241v8,28,18,65,24,91r4,0r82,-332r162,0v-69,187,-188,570,-286,643v-55,42,-108,63,-146,67","w":523,"k":{"T":37,"g":14,"\u011f":14,"c":15,"d":15,"e":15,"o":15,"q":15,"\u00f8":15,"\u00e7":15,"\u00e9":15,"\u00ea":15,"\u00eb":15,"\u00e8":15,"\u00f3":15,"\u00f4":15,"\u00f6":15,"\u00f2":15,"\u00f5":15,"s":16,"\u015f":16,"v":-19,"w":-19,"y":-19,"\u00fd":-19,"\u00ff":-19,"a":7,"\u00e6":7,"\u00e1":7,"\u00e2":7,"\u00e4":7,"\u00e0":7,"\u00e5":7,"\u00e3":7,":":-5,";":-5,"-":7,"\u00ad":7,",":48,".":48}},"z":{"d":"22,0r0,-87r154,-193r77,-88r-214,0r0,-121r400,0r0,92r-147,185r-80,91r235,0r0,121r-425,0","w":469,"k":{"T":29,"c":7,"d":7,"e":7,"o":7,"q":7,"\u00f8":7,"\u00e7":7,"\u00e9":7,"\u00ea":7,"\u00eb":7,"\u00e8":7,"\u00f3":7,"\u00f4":7,"\u00f6":7,"\u00f2":7,"\u00f5":7,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"\u00bb":-5}},"{":{"d":"95,-24v0,-49,11,-107,11,-157v0,-28,-7,-65,-76,-68r0,-76v68,-3,76,-39,76,-69v0,-49,-11,-108,-11,-157v0,-106,75,-142,187,-135r0,85v-112,-12,-72,109,-69,197v3,78,-34,101,-86,118v56,11,86,40,86,116v0,85,-49,207,69,198r0,84v-110,5,-186,-22,-187,-136","w":314,"k":{"T":-22,"J":-10,"C":23,"G":23,"O":23,"Q":23,"\u00d8":23,"\u00c7":23,"\u00d3":23,"\u00d4":23,"\u00d6":23,"\u00d2":23,"\u00d5":23,"\u011e":23,"V":-27,"W":-27,"X":-5,"Y":-30,"\u00dd":-30,"A":19,"\u00c6":19,"\u00c1":19,"\u00c2":19,"\u00c4":19,"\u00c0":19,"\u00c5":19,"\u00c3":19,"j":-50}},"|":{"d":"88,-750r106,0r0,1000r-106,0r0,-1000","w":283},"}":{"d":"219,-551v0,50,-10,109,-11,157v0,30,7,66,76,69r0,76v-68,3,-76,40,-76,68v0,49,11,107,11,157v-1,113,-77,142,-187,136r0,-84v113,12,71,-110,69,-198v-3,-79,34,-102,86,-118v-56,-12,-86,-41,-86,-116v0,-85,48,-206,-69,-197r0,-85v112,-6,187,28,187,135","w":314},"~":{"d":"420,-185v-71,0,-178,-89,-235,-89v-25,0,-43,17,-47,82r-95,0v-1,-134,58,-187,139,-187v70,0,177,87,236,87v23,0,38,-21,40,-81r95,0v6,142,-57,188,-133,188","w":596},"\u00a1":{"d":"213,191r-158,0r22,-452r114,0xm45,-403v0,-54,37,-92,91,-91v52,0,88,38,88,91v-1,53,-35,91,-89,91v-54,0,-90,-38,-90,-91","w":268},"\u00a2":{"d":"279,-87v-124,-17,-203,-104,-204,-241v0,-120,72,-224,204,-249r0,-96r98,0r0,91v32,1,68,9,95,20r-24,112v-21,-11,-50,-18,-89,-18v-79,0,-129,54,-129,135v0,132,132,156,229,116r18,110v-24,11,-60,20,-100,23r0,96r-98,0r0,-99"},"\u00a3":{"d":"298,-268v3,67,-22,106,-58,144r267,0r0,124r-456,0r0,-81v63,-28,126,-91,109,-187r-98,0r0,-104r80,0v-38,-165,53,-291,218,-289v54,0,95,12,117,24r-24,115v-20,-11,-48,-18,-85,-18v-103,1,-102,89,-83,168r137,0r0,104r-124,0"},"\u00a5":{"d":"344,0r-143,0r0,-160r-156,0r0,-71r156,0r0,-64r-156,0r0,-71r120,0r-163,-284r163,0r70,160v20,39,26,78,44,109v31,-88,76,-184,114,-269r160,0r-171,284r119,0r0,71r-157,0r0,64r157,0r0,71r-157,0r0,160"},"\u00a7":{"d":"199,-395v-64,42,-38,103,51,130v47,14,95,31,117,43v51,-41,36,-98,-39,-124v-42,-15,-99,-35,-129,-49xm464,-654r-24,92v-36,-27,-222,-51,-221,20v0,30,35,48,107,70v108,32,190,72,190,175v0,53,-30,94,-72,121v19,15,44,48,44,93v0,122,-129,160,-222,160v-60,0,-133,-10,-187,-44r29,-92v30,17,91,41,152,41v53,0,90,-17,90,-51v0,-33,-30,-52,-106,-75v-106,-33,-199,-73,-199,-172v0,-44,27,-95,83,-122v-21,-17,-40,-54,-40,-91v0,-155,242,-188,376,-125","w":561},"\u00a4":{"d":"162,-513v56,-49,175,-49,232,-1r76,-84r67,68r-87,78v15,26,32,62,32,116v0,56,-17,95,-35,120r85,81r-66,67r-73,-88v-63,52,-170,53,-233,2r-72,86r-65,-67r83,-79v-18,-25,-36,-64,-36,-119v0,-56,18,-93,35,-119r-87,-77r67,-69xm275,-448v-51,0,-91,45,-91,114v0,155,182,157,184,-1v0,-65,-38,-113,-93,-113"},"'":{"d":"35,-692r135,0r-23,271r-89,0","w":205,"k":{"T":-9,"J":58,"C":9,"G":9,"O":9,"Q":9,"\u00d8":9,"\u00c7":9,"\u00d3":9,"\u00d4":9,"\u00d6":9,"\u00d2":9,"\u00d5":9,"\u011e":9,"V":-9,"W":-9,"X":-4,"Y":-8,"\u00dd":-8,"A":46,"\u00c6":46,"\u00c1":46,"\u00c2":46,"\u00c4":46,"\u00c0":46,"\u00c5":46,"\u00c3":46,"f":-25,"\u00df":-25,"g":19,"\u011f":19,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"t":-22,"v":-6,"w":-6,"y":-6,"\u00fd":-6,"\u00ff":-6,",":125,".":125}},"\u00ab":{"d":"248,-443r-119,191r119,190r-105,0r-116,-190r115,-191r106,0xm442,-443r-119,191r119,190r-106,0r-115,-190r115,-191r106,0","w":465,"k":{"T":41,"J":-4,"V":23,"W":23,"Y":53,"\u00dd":53,"f":-6,"\u00df":-6}},"\u00b7":{"d":"129,-167v-51,0,-88,-39,-88,-92v0,-55,37,-93,90,-93v52,0,88,38,89,93v0,53,-36,92,-91,92","w":260},"\u00b6":{"d":"302,47r-96,0r0,-311v-68,2,-170,-57,-174,-187v-4,-106,54,-227,295,-227v60,0,112,4,143,11r0,714r-96,0r0,-631r-72,0r0,631","w":542},"\u00bb":{"d":"142,-252r-119,-191r104,0r117,191r-116,190r-105,0xm334,-252r-120,-191r105,0r117,191r-117,190r-104,0","w":465,"k":{"T":67,"J":9,"C":-5,"G":-5,"O":-5,"Q":-5,"\u00d8":-5,"\u00c7":-5,"\u00d3":-5,"\u00d4":-5,"\u00d6":-5,"\u00d2":-5,"\u00d5":-5,"\u011e":-5,"V":33,"W":33,"X":15,"Y":68,"\u00dd":68,"g":-4,"\u011f":-4}},"\u00bf":{"d":"249,-494v52,0,88,38,88,91v0,53,-35,91,-89,91v-54,0,-89,-38,-90,-91v0,-53,37,-91,91,-91xm42,47v0,-137,152,-172,136,-312r134,0v6,74,-6,118,-58,183v-31,39,-58,71,-58,105v0,75,127,69,172,29r33,109v-36,21,-95,41,-167,41v-131,0,-192,-73,-192,-155","w":445},"`":{"d":"4,-702r140,0r86,152r-104,0","w":300},"\u00b4":{"d":"162,-702r140,0r-122,152r-104,0","w":300},"\u00af":{"d":"26,-666r250,0r0,84r-250,0r0,-84","w":300},"\u00a8":{"d":"45,-556v-40,0,-71,-32,-71,-71v0,-40,32,-70,72,-70v38,0,68,30,68,70v0,39,-29,71,-69,71xm325,-627v0,40,-29,72,-71,71v-39,0,-69,-32,-69,-71v0,-40,30,-70,71,-70v39,0,69,30,69,70","w":300},"\u00b8":{"d":"121,-4r82,0r-27,48v37,5,72,32,72,73v0,94,-137,104,-202,67r20,-56v17,10,39,16,55,16v17,0,35,-7,35,-26v0,-19,-23,-32,-78,-36","w":300},"\u00c6":{"d":"159,0r-156,0r287,-674r513,0r0,125r-277,0r18,143r255,0r0,124r-236,0r21,157r256,0r-1,125r-386,0r-24,-184r-196,0xm278,-306r134,0r-32,-261r-3,0v-29,91,-65,175,-99,261","w":868,"k":{"T":-5,"J":-22,"V":-7,"W":-7,"f":5,"\u00df":5,"g":7,"\u011f":7,"b":-4,"h":-4,"k":-4,"l":-4,"j":5,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-4,"\u015f":-4,"t":6,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"z":-6,",":8,".":8}},"\u00aa":{"d":"341,-266r-93,0v-4,-10,-2,-26,-9,-33v-24,23,-57,38,-100,38v-66,0,-107,-43,-107,-98v0,-77,78,-116,199,-116v7,-61,-122,-48,-155,-20r-20,-64v26,-15,73,-32,133,-32v190,-1,136,170,152,325xm179,-329v42,-1,62,-36,55,-87v-54,-1,-99,13,-99,48v0,23,19,39,44,39","w":378},"\u00d8":{"d":"154,66r-82,-64r56,-86v-60,-62,-93,-153,-93,-253v0,-197,130,-349,325,-349v55,0,106,12,149,36r55,-81r87,58r-56,84v58,63,88,153,88,247v0,277,-235,423,-468,319xm214,-214r225,-328v-130,-78,-251,38,-251,204v0,46,8,84,26,124xm506,-454r-220,322v19,16,44,24,73,24v143,0,209,-200,149,-346r-2,0","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"\u00ba":{"d":"195,-591v102,0,167,69,167,162v0,113,-83,168,-171,168v-93,0,-167,-63,-167,-162v0,-101,70,-168,171,-168xm191,-517v-85,0,-77,182,2,182v39,0,61,-38,61,-92v0,-42,-21,-90,-63,-90","w":386},"\u00e6":{"d":"769,-203r-309,0v2,62,55,101,132,101v61,0,99,-10,137,-26r21,102v-120,59,-306,53,-367,-50r-3,0v-38,52,-97,87,-182,87v-107,0,-169,-70,-169,-153v0,-120,116,-181,289,-181v2,-36,-9,-72,-94,-72v-50,0,-100,19,-130,37r-30,-96v36,-20,100,-46,173,-46v79,0,132,29,161,79r3,0v38,-50,95,-79,167,-79v164,0,221,148,201,297xm240,-96v68,-2,90,-55,82,-133v-82,-1,-144,20,-144,76v0,38,28,57,62,57xm459,-306r174,0v1,-31,-13,-95,-83,-95v-64,0,-90,60,-91,95","w":803,"k":{"T":41,"v":6,"w":6,"y":6,"\u00fd":6,"\u00ff":6,"x":12,"-":-30,"\u00ad":-30,"\"":3,"'":3,",":16,".":16}},"\u0131":{"d":"213,0r-152,0r0,-489r152,0r0,489","w":274},"\u00f8":{"d":"33,-244v0,-197,193,-311,374,-231r47,-68r53,37r-46,67v52,44,82,111,82,192v0,220,-198,305,-370,232r-49,71r-50,-40r44,-65v-53,-44,-85,-109,-85,-195xm199,-166r143,-208v-15,-12,-33,-18,-55,-18v-106,3,-129,140,-91,225xm379,-319r-142,203v80,53,166,-19,160,-127v-1,-22,-2,-56,-18,-76","w":577,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"\u00df":{"d":"412,-154v-9,-79,-113,-112,-113,-211v0,-50,28,-96,81,-124v22,-55,-10,-116,-71,-116v-56,0,-96,40,-96,161r0,444r-152,0r0,-431v0,-114,28,-182,77,-227v43,-41,103,-63,180,-63v152,0,265,134,192,267v-70,35,-75,84,-24,136v34,36,79,81,79,157v0,102,-73,172,-201,172v-37,0,-80,-5,-108,-16r19,-112v41,24,144,18,137,-37","w":600,"k":{"T":35,",":10,".":10}},"\u00b9":{"d":"235,-443r-117,0r-1,-294r-80,35r-15,-82r111,-49r102,0r0,390","w":300},"\u00ac":{"d":"40,-422r516,0r0,316r-97,0r0,-223r-419,0r0,-93","w":596},"\u00b5":{"d":"287,-111v50,0,84,-34,84,-86r0,-292r152,0r0,330v0,42,13,55,41,56r-8,105v-67,24,-153,0,-165,-69r-3,0v-15,55,-136,108,-190,45v-1,69,1,167,11,220r-134,0v-10,-24,-14,-105,-14,-177r0,-510r152,0r0,273v0,66,24,105,74,105","w":585,"k":{"\u00b5":-4,":":-7,";":-7,"\u00bb":-4,"-":-12,"\u00ad":-12,",":-7,".":-7}},"\u00d0":{"d":"669,-354v0,264,-161,363,-422,363v-79,0,-136,-5,-173,-9r0,-284r-71,0r0,-119r71,0r0,-264v56,-9,129,-15,205,-15v128,0,211,22,276,71v69,53,114,138,114,257xm360,-403r0,119r-134,0r0,171v170,19,282,-51,282,-236v0,-173,-122,-237,-282,-210r0,156r134,0","w":704,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"\u00bd":{"d":"237,-266r-117,0r-1,-295r-80,35r-15,-82r111,-48r102,0r0,390xm233,11r-83,0r368,-672r83,0xm485,0r0,-56v54,-54,188,-150,178,-200v1,-66,-112,-52,-145,-20r-30,-76v33,-24,85,-43,146,-43v99,0,152,53,152,121v0,82,-81,134,-139,187r146,0r0,87r-308,0","w":831},"\u00b1":{"d":"249,-579r98,0r0,173r209,0r0,93r-209,0r0,176r-98,0r0,-176r-209,0r0,-93r209,0r0,-173xm40,-93r516,0r0,93r-516,0r0,-93","w":596},"\u00de":{"d":"299,-557v146,0,248,68,250,200v2,189,-158,247,-333,224r0,133r-150,0r0,-674r150,0r0,121v19,-2,41,-4,83,-4xm216,-436r0,184v15,4,38,6,63,6v82,0,120,-41,120,-99v0,-62,-43,-96,-117,-96v-32,0,-54,2,-66,5","w":580},"\u00bc":{"d":"249,-266r-117,0r-1,-295r-80,35r-15,-82r111,-48r102,0r0,390xm256,11r-83,0r369,-672r83,0xm743,0r-108,0r0,-90r-196,0r0,-63r171,-241r133,0r0,230r53,0r0,74r-53,0r0,90xm635,-164r0,-74v-2,-25,7,-55,2,-74v-28,57,-59,98,-92,147v27,3,61,0,90,1","w":831},"\u00f7":{"d":"297,-368v-43,0,-72,-30,-72,-74v0,-45,30,-74,73,-74v44,0,72,29,73,74v0,44,-29,74,-74,74xm556,-220r-516,0r0,-93r516,0r0,93xm297,-17v-43,0,-72,-30,-72,-74v0,-45,30,-74,73,-74v44,0,72,29,73,74v0,44,-29,74,-74,74","w":596},"\u00a6":{"d":"88,-174r106,0r0,350r-106,0r0,-350xm88,-674r106,0r0,350r-106,0r0,-350","w":283},"\u00b0":{"d":"180,-686v90,0,151,67,151,146v0,87,-71,149,-153,149v-88,0,-151,-65,-151,-146v-1,-83,67,-149,153,-149xm178,-616v-43,0,-71,37,-71,79v0,43,31,76,72,76v42,0,72,-33,72,-77v0,-40,-25,-78,-73,-78","w":356},"\u00fe":{"d":"61,-676r152,0r0,247r2,0v29,-43,78,-71,146,-71v104,0,203,89,203,251v0,181,-119,260,-220,260v-62,0,-102,-27,-131,-57r0,244r-152,0r0,-874xm310,-381v-52,-1,-97,40,-97,97r0,84v3,52,43,95,93,94v63,0,104,-54,104,-141v0,-75,-37,-134,-100,-134","w":598},"\u00be":{"d":"65,-556r-22,-73v29,-17,82,-32,140,-32v164,0,190,153,62,187r0,2v55,6,97,41,97,92v0,70,-70,119,-180,119v-54,0,-106,-12,-135,-28r23,-78v35,27,168,45,169,-20v0,-42,-62,-52,-117,-49r0,-68v46,2,104,-1,106,-41v3,-56,-119,-33,-143,-11xm288,11r-82,0r367,-672r83,0xm752,0r-108,0r0,-90r-195,0r0,-63r170,-241r133,0r0,230r53,0r0,74r-53,0r0,90xm644,-164r0,-74v-2,-25,7,-55,2,-74v-28,57,-59,98,-92,147v27,3,61,0,90,1","w":831},"\u00b2":{"d":"15,-442r0,-57v55,-54,189,-149,178,-200v1,-66,-112,-52,-145,-20r-30,-76v33,-24,85,-43,146,-43v99,0,152,53,152,121v0,83,-83,133,-139,188r146,0r0,87r-308,0","w":352},"\u00ae":{"d":"263,-432v-13,-18,-8,-70,-55,-57r0,57r-49,0r0,-157v11,-2,38,-6,70,-6v57,0,74,5,81,47v3,18,-19,28,-36,38v29,0,35,63,43,78r-54,0xm210,-560r0,38v22,2,44,-3,44,-19v0,-18,-25,-22,-44,-19xm231,-686v99,0,176,78,176,173v0,96,-77,173,-177,173v-98,0,-178,-77,-178,-173v0,-95,80,-173,179,-173xm229,-643v-71,0,-124,59,-124,131v0,71,53,129,125,129v72,1,125,-58,125,-130v0,-71,-53,-130,-126,-130","w":459},"\u00f0":{"d":"384,-242v0,-90,-21,-138,-95,-138v-141,0,-127,284,-1,282v63,0,96,-59,96,-144xm378,-594v91,75,163,180,163,337v0,185,-126,268,-255,268v-143,0,-253,-96,-253,-248v0,-143,106,-233,232,-236v25,-1,47,3,71,20r2,-3v-24,-32,-53,-61,-87,-84r-144,62r-27,-60r105,-47v-29,-19,-61,-34,-93,-48r65,-85v53,19,109,47,158,79r138,-59r30,58","w":574},"\u00d7":{"d":"40,-460r65,-66r193,197r193,-197r65,66r-192,197r192,196r-66,67r-192,-196r-192,196r-66,-67r192,-196","w":596},"\u00b3":{"d":"47,-733r-22,-73v29,-17,82,-32,140,-32v165,0,189,153,62,188r0,2v55,6,97,41,97,92v0,70,-70,119,-180,119v-54,0,-106,-12,-135,-28r23,-78v35,27,169,45,169,-20v0,-41,-62,-53,-117,-50r0,-68v46,2,104,-1,106,-41v3,-56,-119,-33,-143,-11","w":347},"\u00a9":{"d":"341,-648v169,0,304,138,304,308v0,172,-135,310,-305,310v-171,0,-308,-138,-308,-310v0,-170,137,-308,309,-308xm338,-591v-133,0,-240,112,-240,252v0,141,107,252,241,252v133,0,240,-111,240,-252v0,-140,-107,-252,-241,-252xm474,-492r-15,53v-12,-7,-51,-22,-95,-22v-77,0,-124,46,-124,124v0,73,49,125,123,125v41,0,78,-10,100,-24r15,51v-35,23,-80,32,-124,32v-117,0,-184,-79,-184,-181v0,-115,92,-186,194,-186v48,0,97,14,110,28","w":677},"\u00c1":{"d":"416,-173r-193,0r-48,173r-157,0r205,-674r200,0r210,674r-165,0xm245,-287r149,0r-42,-143v-14,-39,-21,-94,-36,-130v-10,40,-20,91,-31,130xm337,-833r160,0r-122,123r-122,0","w":656,"k":{"T":83,"J":-15,"C":25,"G":25,"O":25,"Q":25,"\u00d8":25,"\u00c7":25,"\u00d3":25,"\u00d4":25,"\u00d6":25,"\u00d2":25,"\u00d5":25,"\u011e":25,"U":35,"\u00da":35,"\u00db":35,"\u00dc":35,"\u00d9":35,"V":59,"W":59,"X":24,"Y":95,"\u00dd":95,"Z":-6,"f":13,"\u00df":13,"g":14,"\u011f":14,"b":6,"h":6,"k":6,"l":6,"j":6,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"s":3,"\u015f":3,"t":20,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":31,"w":31,"y":31,"\u00fd":31,"\u00ff":31,"x":3,"-":8,"\u00ad":8,")":18,"]":18,"}":18,"\"":46,"'":46}},"\u00c2":{"d":"416,-173r-193,0r-48,173r-157,0r205,-674r200,0r210,674r-165,0xm245,-287r149,0r-42,-143v-14,-39,-21,-94,-36,-130v-10,40,-20,91,-31,130xm271,-833r114,0r101,123r-107,0v-18,-20,-32,-44,-52,-62r-50,62r-106,0","w":656,"k":{"T":83,"J":-15,"C":25,"G":25,"O":25,"Q":25,"\u00d8":25,"\u00c7":25,"\u00d3":25,"\u00d4":25,"\u00d6":25,"\u00d2":25,"\u00d5":25,"\u011e":25,"U":35,"\u00da":35,"\u00db":35,"\u00dc":35,"\u00d9":35,"V":59,"W":59,"X":24,"Y":95,"\u00dd":95,"Z":-6,"f":13,"\u00df":13,"g":14,"\u011f":14,"b":6,"h":6,"k":6,"l":6,"j":6,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"s":3,"\u015f":3,"t":20,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":31,"w":31,"y":31,"\u00fd":31,"\u00ff":31,"x":3,"-":8,"\u00ad":8,")":18,"]":18,"}":18,"\"":46,"'":46}},"\u00c4":{"d":"416,-173r-193,0r-48,173r-157,0r205,-674r200,0r210,674r-165,0xm245,-287r149,0r-42,-143v-14,-39,-21,-94,-36,-130v-10,40,-20,91,-31,130xm227,-712v-38,0,-68,-31,-68,-68v0,-39,30,-69,69,-69v37,0,66,29,66,69v0,37,-28,68,-67,68xm434,-712v-39,0,-67,-31,-67,-68v0,-39,29,-69,68,-69v38,0,67,29,67,69v0,37,-28,68,-68,68","w":656,"k":{"T":83,"J":-15,"C":25,"G":25,"O":25,"Q":25,"\u00d8":25,"\u00c7":25,"\u00d3":25,"\u00d4":25,"\u00d6":25,"\u00d2":25,"\u00d5":25,"\u011e":25,"U":35,"\u00da":35,"\u00db":35,"\u00dc":35,"\u00d9":35,"V":59,"W":59,"X":24,"Y":95,"\u00dd":95,"Z":-6,"f":13,"\u00df":13,"g":14,"\u011f":14,"b":6,"h":6,"k":6,"l":6,"j":6,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"s":3,"\u015f":3,"t":20,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":31,"w":31,"y":31,"\u00fd":31,"\u00ff":31,"x":3,"-":8,"\u00ad":8,")":18,"]":18,"}":18,"\"":46,"'":46}},"\u00c0":{"d":"416,-173r-193,0r-48,173r-157,0r205,-674r200,0r210,674r-165,0xm245,-287r149,0r-42,-143v-14,-39,-21,-94,-36,-130v-10,40,-20,91,-31,130xm153,-834r160,0r84,122r-122,0","w":656,"k":{"T":83,"J":-15,"C":25,"G":25,"O":25,"Q":25,"\u00d8":25,"\u00c7":25,"\u00d3":25,"\u00d4":25,"\u00d6":25,"\u00d2":25,"\u00d5":25,"\u011e":25,"U":35,"\u00da":35,"\u00db":35,"\u00dc":35,"\u00d9":35,"V":59,"W":59,"X":24,"Y":95,"\u00dd":95,"Z":-6,"f":13,"\u00df":13,"g":14,"\u011f":14,"b":6,"h":6,"k":6,"l":6,"j":6,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"s":3,"\u015f":3,"t":20,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":31,"w":31,"y":31,"\u00fd":31,"\u00ff":31,"x":3,"-":8,"\u00ad":8,")":18,"]":18,"}":18,"\"":46,"'":46}},"\u00c5":{"d":"416,-173r-193,0r-48,173r-157,0r205,-674r200,0r210,674r-165,0xm245,-287r149,0r-42,-143v-14,-39,-21,-94,-36,-130v-10,40,-20,91,-31,130xm326,-898v75,0,113,44,113,99v0,54,-43,97,-114,97v-72,0,-115,-43,-115,-96v0,-55,41,-100,116,-100xm323,-847v-58,1,-56,95,1,94v28,0,44,-20,44,-46v0,-25,-16,-48,-45,-48","w":656,"k":{"T":83,"J":-15,"C":25,"G":25,"O":25,"Q":25,"\u00d8":25,"\u00c7":25,"\u00d3":25,"\u00d4":25,"\u00d6":25,"\u00d2":25,"\u00d5":25,"\u011e":25,"U":35,"\u00da":35,"\u00db":35,"\u00dc":35,"\u00d9":35,"V":59,"W":59,"X":24,"Y":95,"\u00dd":95,"Z":-6,"f":13,"\u00df":13,"g":14,"\u011f":14,"b":6,"h":6,"k":6,"l":6,"j":6,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"s":3,"\u015f":3,"t":20,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":31,"w":31,"y":31,"\u00fd":31,"\u00ff":31,"x":3,"-":8,"\u00ad":8,")":18,"]":18,"}":18,"\"":46,"'":46}},"\u00c3":{"d":"416,-173r-193,0r-48,173r-157,0r205,-674r200,0r209,674r-164,0xm245,-287r149,0r-42,-143v-14,-39,-21,-94,-36,-130v-10,40,-20,91,-31,130xm393,-721v-45,0,-75,-37,-108,-37v-13,0,-22,14,-24,43r-70,0v-2,-84,29,-127,77,-127v45,0,74,39,108,39v17,0,23,-9,27,-43r68,0v2,90,-26,125,-78,125","w":656,"k":{"T":83,"J":-15,"C":25,"G":25,"O":25,"Q":25,"\u00d8":25,"\u00c7":25,"\u00d3":25,"\u00d4":25,"\u00d6":25,"\u00d2":25,"\u00d5":25,"\u011e":25,"U":35,"\u00da":35,"\u00db":35,"\u00dc":35,"\u00d9":35,"V":59,"W":59,"X":24,"Y":95,"\u00dd":95,"Z":-6,"f":13,"\u00df":13,"g":14,"\u011f":14,"b":6,"h":6,"k":6,"l":6,"j":6,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"s":3,"\u015f":3,"t":20,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":31,"w":31,"y":31,"\u00fd":31,"\u00ff":31,"x":3,"-":8,"\u00ad":8,")":18,"]":18,"}":18,"\"":46,"'":46}},"\u00c7":{"d":"538,-138r22,120v-26,12,-83,27,-158,28r-19,34v38,9,73,35,73,82v-2,101,-132,108,-205,73r20,-62v25,14,92,28,92,-11v0,-20,-23,-31,-79,-37r39,-83v-190,-25,-288,-158,-288,-333v0,-230,164,-357,368,-357v79,0,139,15,165,30r-31,120v-30,-13,-73,-25,-127,-25v-121,0,-215,73,-215,223v0,135,80,220,215,220v47,0,97,-9,128,-22","w":597,"k":{"T":-14,"J":-10,"C":30,"G":30,"O":30,"Q":30,"\u00d8":30,"\u00c7":30,"\u00d3":30,"\u00d4":30,"\u00d6":30,"\u00d2":30,"\u00d5":30,"\u011e":30,"V":-9,"W":-9,"X":-3,"Y":-7,"\u00dd":-7,"A":-10,"\u00c6":-10,"\u00c1":-10,"\u00c2":-10,"\u00c4":-10,"\u00c0":-10,"\u00c5":-10,"\u00c3":-10,"b":3,"h":3,"k":3,"l":3,"i":4,"m":4,"n":4,"p":4,"r":4,"\u0131":4,"\u00ed":4,"\u00ee":4,"\u00ef":4,"\u00ec":4,"\u00f1":4,"c":19,"d":19,"e":19,"o":19,"q":19,"\u00f8":19,"\u00e7":19,"\u00e9":19,"\u00ea":19,"\u00eb":19,"\u00e8":19,"\u00f3":19,"\u00f4":19,"\u00f6":19,"\u00f2":19,"\u00f5":19,"u":20,"\u00fa":20,"\u00fb":20,"\u00fc":20,"\u00f9":20,"v":33,"w":33,"y":33,"\u00fd":33,"\u00ff":33,"a":10,"\u00e6":10,"\u00e1":10,"\u00e2":10,"\u00e4":10,"\u00e0":10,"\u00e5":10,"\u00e3":10,"z":-7,"\u00ab":4,")":-9,"]":-9,"}":-9,"\"":-6,"'":-6}},"\u00c9":{"d":"467,-409r0,124r-248,0r0,160r277,0r0,125r-429,0r0,-674r415,0r0,125r-263,0r0,140r248,0xm289,-833r160,0r-122,123r-122,0","w":534,"k":{"T":-5,"J":-22,"V":-7,"W":-7,"f":5,"\u00df":5,"g":7,"\u011f":7,"b":-4,"h":-4,"k":-4,"l":-4,"j":5,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-4,"\u015f":-4,"t":6,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"z":-6,",":8,".":8}},"\u00ca":{"d":"467,-409r0,124r-248,0r0,160r277,0r0,125r-429,0r0,-674r415,0r0,125r-263,0r0,140r248,0xm221,-833r114,0r101,123r-107,0v-18,-20,-32,-44,-52,-62r-50,62r-106,0","w":534,"k":{"T":-5,"J":-22,"V":-7,"W":-7,"f":5,"\u00df":5,"g":7,"\u011f":7,"b":-4,"h":-4,"k":-4,"l":-4,"j":5,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-4,"\u015f":-4,"t":6,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"z":-6,",":8,".":8}},"\u00cb":{"d":"466,-409r0,124r-247,0r0,160r276,0r0,125r-428,0r0,-674r414,0r0,125r-262,0r0,140r247,0xm234,-781v0,38,-28,69,-67,68v-38,0,-68,-31,-68,-68v0,-39,30,-69,69,-69v37,0,66,29,66,69xm374,-713v-38,0,-67,-31,-67,-68v0,-39,29,-69,69,-69v38,0,66,29,66,69v0,37,-28,68,-68,68","w":534,"k":{"T":-5,"J":-22,"V":-7,"W":-7,"f":5,"\u00df":5,"g":7,"\u011f":7,"b":-4,"h":-4,"k":-4,"l":-4,"j":5,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-4,"\u015f":-4,"t":6,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"z":-6,",":8,".":8}},"\u00c8":{"d":"467,-409r0,124r-248,0r0,160r277,0r0,125r-429,0r0,-674r415,0r0,125r-263,0r0,140r248,0xm111,-834r160,0r84,122r-122,0","w":534,"k":{"T":-5,"J":-22,"V":-7,"W":-7,"f":5,"\u00df":5,"g":7,"\u011f":7,"b":-4,"h":-4,"k":-4,"l":-4,"j":5,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-4,"\u015f":-4,"t":6,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"z":-6,",":8,".":8}},"\u00cd":{"d":"67,-674r152,0r0,674r-152,0r0,-674xm153,-833r160,0r-122,123r-122,0","w":285,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"\u00ce":{"d":"67,-674r152,0r0,674r-152,0r0,-674xm85,-833r114,0r101,123r-107,0v-18,-20,-32,-44,-52,-62r-50,62r-106,0","w":285,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"\u00cf":{"d":"67,-674r152,0r0,674r-152,0r0,-674xm39,-713v-38,0,-68,-31,-68,-68v0,-39,30,-69,69,-69v37,0,66,29,66,69v0,37,-28,68,-67,68xm246,-713v-39,0,-67,-31,-67,-68v0,-39,29,-69,68,-69v38,0,67,29,67,69v0,37,-28,68,-68,68","w":285,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"\u00cc":{"d":"67,-674r152,0r0,674r-152,0r0,-674xm-27,-834r160,0r84,122r-122,0","w":285,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"\u00d1":{"d":"206,0r-140,0r0,-674r178,0v86,155,182,307,250,478r2,0v-16,-145,-11,-316,-12,-478r140,0r0,674r-160,0r-144,-260v-40,-72,-85,-159,-117,-238r-4,0v5,90,7,185,7,295r0,203xm409,-721v-44,0,-75,-37,-108,-37v-13,0,-22,14,-24,43r-70,0v-2,-84,29,-127,77,-127v45,0,75,39,109,39v17,0,23,-9,27,-43r68,0v2,90,-26,125,-79,125","w":690,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"\u00d3":{"d":"363,-686v207,0,320,155,320,342v0,222,-133,355,-331,355v-199,0,-317,-151,-317,-344v0,-202,130,-353,328,-353xm360,-565v-104,0,-164,98,-164,229v0,133,62,226,164,226v103,0,162,-98,162,-229v0,-122,-57,-226,-162,-226xm373,-834r160,0r-122,123r-122,0","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"\u00d4":{"d":"363,-686v207,0,320,155,320,342v0,222,-133,355,-331,355v-199,0,-317,-151,-317,-344v0,-202,130,-353,328,-353xm360,-565v-104,0,-164,98,-164,229v0,133,62,226,164,226v103,0,162,-98,162,-229v0,-122,-57,-226,-162,-226xm302,-834r114,0r101,123r-107,0v-18,-20,-32,-44,-52,-62r-50,62r-106,0","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"\u00d6":{"d":"363,-686v207,0,320,155,320,342v0,222,-133,355,-331,355v-199,0,-317,-151,-317,-344v0,-202,130,-353,328,-353xm360,-565v-104,0,-164,98,-164,229v0,133,62,226,164,226v103,0,162,-98,162,-229v0,-122,-57,-226,-162,-226xm255,-713v-38,0,-68,-31,-68,-68v0,-39,30,-69,69,-69v37,0,66,29,66,69v0,37,-28,68,-67,68xm462,-713v-39,0,-67,-31,-67,-68v0,-39,29,-69,68,-69v38,0,67,29,67,69v0,37,-28,68,-68,68","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"\u00d2":{"d":"363,-686v207,0,320,155,320,342v0,222,-133,355,-331,355v-199,0,-317,-151,-317,-344v0,-202,130,-353,328,-353xm360,-565v-104,0,-164,98,-164,229v0,133,62,226,164,226v103,0,162,-98,162,-229v0,-122,-57,-226,-162,-226xm188,-834r160,0r84,122r-122,0","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"\u00d5":{"d":"363,-686v207,0,320,155,320,342v0,222,-133,355,-331,355v-199,0,-317,-151,-317,-344v0,-202,130,-353,328,-353xm360,-565v-104,0,-164,98,-164,229v0,133,62,226,164,226v103,0,162,-98,162,-229v0,-122,-57,-226,-162,-226xm421,-721v-45,0,-75,-36,-108,-36v-13,0,-22,14,-24,42r-70,0v-2,-83,29,-126,77,-126v45,0,75,38,108,38v17,0,23,-9,27,-43r68,0v2,90,-26,125,-78,125","w":717,"k":{"T":28,"V":7,"W":7,"X":33,"Y":37,"\u00dd":37,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"f":-10,"\u00df":-10,"g":-4,"\u011f":-4,"b":-3,"h":-3,"k":-3,"l":-3,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"t":-13,"u":-5,"\u00fa":-5,"\u00fb":-5,"\u00fc":-5,"\u00f9":-5,"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,"x":12,"z":3,"\u00ab":-4,"-":-12,"\u00ad":-12,")":19,"]":19,"}":19,",":40,".":40}},"\u00da":{"d":"66,-674r152,0r0,387v0,117,45,176,122,176v80,0,124,-56,124,-176r0,-387r152,0r0,378v0,208,-105,307,-281,307v-170,0,-269,-95,-269,-309r0,-376xm348,-833r160,0r-122,123r-122,0","w":682,"k":{"A":30,"\u00c6":30,"\u00c1":30,"\u00c2":30,"\u00c4":30,"\u00c0":30,"\u00c5":30,"\u00c3":30,"f":-5,"\u00df":-5,"s":13,"\u015f":13,"v":5,"w":5,"y":5,"\u00fd":5,"\u00ff":5,"x":12,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,"z":9,",":23,".":23}},"\u00db":{"d":"66,-674r152,0r0,387v0,117,45,176,122,176v80,0,124,-56,124,-176r0,-387r152,0r0,378v0,208,-105,307,-281,307v-170,0,-269,-95,-269,-309r0,-376xm294,-833r114,0r101,123r-107,0v-18,-20,-32,-44,-52,-62r-50,62r-106,0","w":682,"k":{"A":30,"\u00c6":30,"\u00c1":30,"\u00c2":30,"\u00c4":30,"\u00c0":30,"\u00c5":30,"\u00c3":30,"f":-5,"\u00df":-5,"s":13,"\u015f":13,"v":5,"w":5,"y":5,"\u00fd":5,"\u00ff":5,"x":12,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,"z":9,",":23,".":23}},"\u00dc":{"d":"66,-674r152,0r0,387v0,117,45,176,122,176v80,0,124,-56,124,-176r0,-387r152,0r0,378v0,208,-105,307,-281,307v-170,0,-269,-95,-269,-309r0,-376xm243,-713v-38,0,-68,-31,-68,-68v0,-39,30,-69,69,-69v37,0,66,29,66,69v0,37,-28,68,-67,68xm450,-713v-39,0,-67,-31,-67,-68v0,-39,29,-69,68,-69v38,0,67,29,67,69v0,37,-28,68,-68,68","w":682,"k":{"A":30,"\u00c6":30,"\u00c1":30,"\u00c2":30,"\u00c4":30,"\u00c0":30,"\u00c5":30,"\u00c3":30,"f":-5,"\u00df":-5,"s":13,"\u015f":13,"v":5,"w":5,"y":5,"\u00fd":5,"\u00ff":5,"x":12,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,"z":9,",":23,".":23}},"\u00d9":{"d":"66,-674r152,0r0,387v0,117,45,176,122,176v80,0,124,-56,124,-176r0,-387r152,0r0,378v0,208,-105,307,-281,307v-170,0,-269,-95,-269,-309r0,-376xm174,-834r160,0r84,122r-122,0","w":682,"k":{"A":30,"\u00c6":30,"\u00c1":30,"\u00c2":30,"\u00c4":30,"\u00c0":30,"\u00c5":30,"\u00c3":30,"f":-5,"\u00df":-5,"s":13,"\u015f":13,"v":5,"w":5,"y":5,"\u00fd":5,"\u00ff":5,"x":12,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,"z":9,",":23,".":23}},"\u00dd":{"d":"374,0r-152,0r0,-276r-213,-398r175,0r120,291r2,0r119,-291r171,0r-222,393r0,281xm319,-832r160,0r-122,123r-122,0","w":603,"k":{"\u00f6":109,"\u00ef":21,"\u00eb":109,"\u00e4":93,"J":69,"C":47,"G":47,"O":47,"Q":47,"\u00d8":47,"\u00c7":47,"\u00d3":47,"\u00d4":47,"\u00d6":47,"\u00d2":47,"\u00d5":47,"\u011e":47,"V":-19,"W":-19,"X":22,"Y":26,"\u00dd":26,"A":92,"\u00c6":92,"\u00c1":92,"\u00c2":92,"\u00c4":92,"\u00c0":92,"\u00c5":92,"\u00c3":92,"M":21,"S":29,"\u015e":29,"B":18,"D":18,"E":18,"F":18,"H":18,"I":18,"K":18,"L":18,"N":18,"P":18,"R":18,"\u00d0":18,"\u00c9":18,"\u00ca":18,"\u00cb":18,"\u00c8":18,"\u00cd":18,"\u00ce":18,"\u00cf":18,"\u00cc":18,"\u00d1":18,"\u0130":18,"g":81,"\u011f":81,"b":15,"h":15,"k":15,"l":15,"i":21,"m":21,"n":21,"p":21,"r":21,"\u0131":21,"\u00ed":21,"\u00ee":21,"\u00ec":21,"\u00f1":21,"c":109,"d":109,"e":109,"o":109,"q":109,"\u00f8":109,"\u00e7":109,"\u00e9":109,"\u00ea":109,"\u00e8":109,"\u00f3":109,"\u00f4":109,"\u00f2":109,"\u00f5":109,"s":64,"\u015f":64,"t":45,"u":72,"\u00fa":72,"\u00fb":72,"\u00fc":72,"\u00f9":72,"v":53,"w":53,"y":53,"\u00fd":53,"\u00ff":53,"x":56,"a":93,"\u00e6":93,"\u00e1":93,"\u00e2":93,"\u00e0":93,"\u00e5":93,"\u00e3":93,"z":49,":":50,";":50,"\u00bb":44,"\u00ab":71,"-":62,"\u00ad":62,")":-33,"]":-33,"}":-33,"\"":-9,"'":-9,",":118,".":118}},"\u00e1":{"d":"468,-289v0,92,-5,213,8,289r-137,0r-9,-49r-3,0v-32,39,-82,60,-140,60v-99,0,-158,-72,-158,-150v0,-127,114,-187,287,-187v11,-98,-172,-73,-224,-33r-28,-98v34,-19,101,-44,190,-44v163,0,214,96,214,212xm239,-96v45,0,83,-31,82,-82r0,-53v-80,0,-142,19,-142,77v0,39,26,58,60,58xm281,-702r140,0r-122,152r-104,0","w":528},"\u00e2":{"d":"468,-289v0,92,-5,213,8,289r-137,0r-9,-49r-3,0v-32,39,-82,60,-140,60v-99,0,-158,-72,-158,-150v0,-127,114,-187,287,-187v11,-98,-172,-73,-224,-33r-28,-98v34,-19,101,-44,190,-44v163,0,214,96,214,212xm239,-96v45,0,83,-31,82,-82r0,-53v-80,0,-142,19,-142,77v0,39,26,58,60,58xm209,-702r103,0r99,152r-99,0v-19,-28,-32,-62,-53,-87r-50,87r-99,0","w":528},"\u00e4":{"d":"468,-289v0,92,-5,213,8,289r-137,0r-9,-49r-3,0v-32,39,-82,60,-140,60v-99,0,-158,-72,-158,-150v0,-127,114,-187,287,-187v11,-98,-172,-73,-224,-33r-28,-98v34,-19,101,-44,190,-44v163,0,214,96,214,212xm239,-96v45,0,83,-31,82,-82r0,-53v-80,0,-142,19,-142,77v0,39,26,58,60,58xm159,-556v-40,0,-71,-32,-71,-71v0,-40,32,-70,72,-70v38,0,68,30,68,70v0,39,-29,71,-69,71xm439,-627v0,40,-29,72,-71,71v-39,0,-69,-32,-69,-71v0,-40,30,-70,71,-70v39,0,69,30,69,70","w":528},"\u00e0":{"d":"468,-289v0,92,-5,213,8,289r-137,0r-9,-49r-3,0v-32,39,-82,60,-140,60v-99,0,-158,-72,-158,-150v0,-127,114,-187,287,-187v11,-98,-172,-73,-224,-33r-28,-98v34,-19,101,-44,190,-44v163,0,214,96,214,212xm239,-96v45,0,83,-31,82,-82r0,-53v-80,0,-142,19,-142,77v0,39,26,58,60,58xm101,-702r140,0r86,152r-104,0","w":528},"\u00e5":{"d":"468,-289v0,92,-5,213,8,289r-137,0r-9,-49r-3,0v-32,39,-82,60,-140,60v-99,0,-158,-72,-158,-150v0,-127,114,-187,287,-187v11,-98,-172,-73,-224,-33r-28,-98v34,-19,101,-44,190,-44v163,0,214,96,214,212xm239,-96v46,0,82,-31,82,-82r0,-53v-80,0,-142,19,-142,77v0,39,26,58,60,58xm266,-539v-72,0,-116,-42,-116,-97v0,-56,41,-100,117,-100v72,0,112,43,112,99v0,56,-44,98,-113,98xm265,-589v29,0,46,-22,46,-48v0,-25,-16,-49,-47,-49v-29,0,-44,24,-44,50v0,23,17,47,45,47","w":528},"\u00e3":{"d":"468,-289v0,92,-5,213,8,289r-137,0r-9,-49r-3,0v-32,39,-82,60,-140,60v-99,0,-158,-72,-158,-150v0,-127,114,-187,287,-187v11,-98,-172,-73,-224,-33r-28,-98v34,-19,101,-44,190,-44v163,0,214,96,214,212xm239,-96v45,0,83,-31,82,-82r0,-53v-80,0,-142,19,-142,77v0,39,26,58,60,58xm316,-566v-42,0,-75,-37,-107,-37v-14,0,-22,15,-24,45r-72,0v-3,-84,31,-131,82,-131v41,0,75,39,107,39v16,0,23,-9,26,-44r70,0v3,91,-29,128,-82,128","w":528},"\u00e7":{"d":"410,-124r18,112v-22,11,-63,20,-112,22r-19,35v38,9,73,34,73,80v-2,102,-130,110,-204,74r19,-62v25,13,92,29,92,-11v0,-20,-23,-31,-79,-37r40,-84v-127,-19,-205,-110,-205,-245v0,-143,98,-260,280,-260v40,0,84,7,116,19r-24,113v-18,-8,-45,-15,-85,-15v-80,0,-131,57,-131,137v0,127,123,163,221,122","w":451,"k":{"T":14,"f":-7,"\u00df":-7,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"t":-16,"v":-15,"w":-15,"y":-15,"\u00fd":-15,"\u00ff":-15,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"\u00bb":-11,"-":-12,"\u00ad":-12,"\"":-6,"'":-6,",":7,".":7}},"\u00e9":{"d":"493,-196r-315,0v6,109,182,106,273,72r20,103v-50,21,-111,31,-177,31v-166,0,-261,-96,-261,-249v0,-124,77,-261,247,-261v180,0,235,149,213,304xm177,-300r180,0v0,-37,-16,-99,-86,-99v-64,0,-90,59,-94,99xm300,-702r140,0r-122,152r-104,0","w":528,"k":{"T":41,"v":6,"w":6,"y":6,"\u00fd":6,"\u00ff":6,"x":12,"-":-30,"\u00ad":-30,"\"":3,"'":3,",":16,".":16}},"\u00ea":{"d":"493,-196r-315,0v6,109,182,106,273,72r20,103v-50,21,-111,31,-177,31v-166,0,-261,-96,-261,-249v0,-124,77,-261,247,-261v180,0,235,149,213,304xm177,-300r180,0v0,-37,-16,-99,-86,-99v-64,0,-90,59,-94,99xm224,-702r102,0r99,152r-99,0v-18,-28,-31,-62,-52,-87r-51,87r-99,0","w":528,"k":{"T":41,"v":6,"w":6,"y":6,"\u00fd":6,"\u00ff":6,"x":12,"-":-30,"\u00ad":-30,"\"":3,"'":3,",":16,".":16}},"\u00eb":{"d":"493,-196r-315,0v6,109,182,106,273,72r20,103v-50,21,-111,31,-177,31v-166,0,-261,-96,-261,-249v0,-124,77,-261,247,-261v180,0,235,149,213,304xm177,-300r180,0v0,-37,-16,-99,-86,-99v-64,0,-90,59,-94,99xm175,-556v-40,0,-71,-32,-71,-71v0,-40,32,-70,72,-70v38,0,68,30,68,70v0,39,-29,71,-69,71xm455,-627v0,40,-29,72,-71,71v-39,0,-69,-32,-69,-71v0,-40,30,-70,71,-70v39,0,69,30,69,70","w":528,"k":{"T":41,"v":6,"w":6,"y":6,"\u00fd":6,"\u00ff":6,"x":12,"-":-30,"\u00ad":-30,"\"":3,"'":3,",":16,".":16}},"\u00e8":{"d":"493,-196r-315,0v6,109,182,106,273,72r20,103v-50,21,-111,31,-177,31v-166,0,-261,-96,-261,-249v0,-124,77,-261,247,-261v180,0,235,149,213,304xm177,-300r180,0v0,-37,-16,-99,-86,-99v-64,0,-90,59,-94,99xm120,-702r140,0r86,152r-104,0","w":528,"k":{"T":41,"v":6,"w":6,"y":6,"\u00fd":6,"\u00ff":6,"x":12,"-":-30,"\u00ad":-30,"\"":3,"'":3,",":16,".":16}},"\u00ed":{"d":"213,0r-152,0r0,-489r152,0r0,489xm159,-702r140,0r-122,152r-104,0","w":274},"\u00ee":{"d":"213,0r-152,0r0,-489r152,0r0,489xm86,-702r103,0r99,152r-99,0v-19,-28,-32,-62,-53,-87r-50,87r-99,0","w":274},"\u00ef":{"d":"213,0r-152,0r0,-489r152,0r0,489xm32,-556v-40,0,-71,-32,-71,-71v0,-40,32,-70,72,-70v38,0,68,30,68,70v0,39,-29,71,-69,71xm312,-627v0,40,-29,72,-71,71v-39,0,-69,-32,-69,-71v0,-40,30,-70,71,-70v39,0,69,30,69,70","w":274},"\u00ec":{"d":"213,0r-152,0r0,-489r152,0r0,489xm-30,-702r140,0r86,152r-104,0","w":274},"\u00f1":{"d":"296,-377v-55,0,-83,38,-83,95r0,282r-152,0r0,-333v0,-61,-2,-112,-4,-156r132,0r7,68r3,0v20,-32,69,-79,151,-79v100,0,175,67,175,211r0,289r-152,0r0,-271v0,-63,-22,-106,-77,-106xm355,-566v-42,0,-76,-37,-108,-37v-14,0,-22,15,-24,46r-72,0v-3,-85,31,-132,82,-132v42,0,77,39,108,39v16,0,23,-9,26,-44r70,0v3,91,-29,128,-82,128","w":586,"k":{"T":57,"t":6,"v":19,"w":19,"y":19,"\u00fd":19,"\u00ff":19,"\"":14,"'":14}},"\u00f3":{"d":"295,-501v149,0,249,103,249,251v0,179,-127,261,-258,261v-143,0,-253,-94,-253,-252v0,-159,104,-260,262,-260xm290,-392v-72,0,-100,75,-100,147v0,84,35,147,100,147v60,0,97,-59,97,-148v0,-72,-28,-146,-97,-146xm307,-702r140,0r-122,152r-104,0","w":577,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"\u00f4":{"d":"295,-501v149,0,249,103,249,251v0,179,-127,261,-258,261v-143,0,-253,-94,-253,-252v0,-159,104,-260,262,-260xm290,-392v-72,0,-100,75,-100,147v0,84,35,147,100,147v60,0,97,-59,97,-148v0,-72,-28,-146,-97,-146xm238,-702r102,0r99,152r-99,0v-18,-28,-31,-62,-52,-87r-51,87r-99,0","w":577,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"\u00f6":{"d":"295,-501v149,0,249,103,249,251v0,179,-127,261,-258,261v-143,0,-253,-94,-253,-252v0,-159,104,-260,262,-260xm290,-392v-72,0,-100,75,-100,147v0,84,35,147,100,147v60,0,97,-59,97,-148v0,-72,-28,-146,-97,-146xm183,-556v-40,0,-71,-32,-71,-71v0,-40,32,-70,72,-70v38,0,68,30,68,70v0,39,-29,71,-69,71xm463,-627v0,40,-29,72,-71,71v-39,0,-69,-32,-69,-71v0,-40,30,-70,71,-70v39,0,69,30,69,70","w":577,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"\u00f2":{"d":"295,-501v149,0,249,103,249,251v0,179,-127,261,-258,261v-143,0,-253,-94,-253,-252v0,-159,104,-260,262,-260xm290,-392v-72,0,-100,75,-100,147v0,84,35,147,100,147v60,0,97,-59,97,-148v0,-72,-28,-146,-97,-146xm133,-702r140,0r86,152r-104,0","w":577,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"\u00f5":{"d":"295,-501v149,0,249,103,249,251v0,179,-127,261,-258,261v-143,0,-253,-94,-253,-252v0,-159,104,-260,262,-260xm290,-392v-72,0,-100,75,-100,147v0,84,35,147,100,147v60,0,97,-59,97,-148v0,-72,-28,-146,-97,-146xm349,-566v-43,0,-75,-37,-107,-37v-14,0,-22,15,-24,45r-72,0v-3,-84,31,-131,82,-131v42,0,75,39,107,39v16,0,23,-9,26,-44r70,0v3,91,-29,128,-82,128","w":577,"k":{"T":49,"g":-3,"\u011f":-3,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"x":24,"z":9,"-":-16,"\u00ad":-16,")":8,"]":8,"}":8,"\"":20,"'":20,",":34,".":34}},"\u00fa":{"d":"288,-112v55,0,82,-35,82,-86r0,-291r152,0r0,332v0,64,2,116,4,157r-132,0r-7,-69r-3,0v-19,30,-65,80,-153,80v-100,0,-172,-62,-172,-213r0,-287r152,0r0,263v0,71,23,114,77,114xm316,-702r140,0r-122,152r-104,0","w":583,"k":{"T":37,",":7,".":7}},"\u00fb":{"d":"288,-112v55,0,82,-35,82,-86r0,-291r152,0r0,332v0,64,2,116,4,157r-132,0r-7,-69r-3,0v-19,30,-65,80,-153,80v-100,0,-172,-62,-172,-213r0,-287r152,0r0,263v0,71,23,114,77,114xm241,-702r103,0r99,152r-99,0v-19,-28,-32,-62,-53,-87r-50,87r-99,0","w":583,"k":{"T":37,",":7,".":7}},"\u00fc":{"d":"288,-112v55,0,82,-35,82,-86r0,-291r152,0r0,332v0,64,2,116,4,157r-132,0r-7,-69r-3,0v-19,30,-65,80,-153,80v-100,0,-172,-62,-172,-213r0,-287r152,0r0,263v0,71,23,114,77,114xm190,-556v-40,0,-71,-32,-71,-71v0,-40,32,-70,72,-70v38,0,68,30,68,70v0,39,-29,71,-69,71xm470,-627v0,40,-29,72,-71,71v-39,0,-69,-32,-69,-71v0,-40,30,-70,71,-70v39,0,69,30,69,70","w":583,"k":{"T":37,",":7,".":7}},"\u00f9":{"d":"288,-112v55,0,82,-35,82,-86r0,-291r152,0r0,332v0,64,2,116,4,157r-132,0r-7,-69r-3,0v-19,30,-65,80,-153,80v-100,0,-172,-62,-172,-213r0,-287r152,0r0,263v0,71,23,114,77,114xm132,-702r140,0r86,152r-104,0","w":583,"k":{"T":37,",":7,".":7}},"\u00fd":{"d":"55,93v56,-14,121,-49,137,-109v0,-6,-1,-13,-6,-25r-180,-448r169,0r73,241v8,28,18,65,24,91r4,0r82,-332r162,0v-69,187,-188,570,-286,643v-55,42,-108,63,-146,67xm297,-702r140,0r-122,152r-104,0","w":523,"k":{"T":37,"g":14,"\u011f":14,"c":15,"d":15,"e":15,"o":15,"q":15,"\u00f8":15,"\u00e7":15,"\u00e9":15,"\u00ea":15,"\u00eb":15,"\u00e8":15,"\u00f3":15,"\u00f4":15,"\u00f6":15,"\u00f2":15,"\u00f5":15,"s":16,"\u015f":16,"v":-19,"w":-19,"y":-19,"\u00fd":-19,"\u00ff":-19,"a":7,"\u00e6":7,"\u00e1":7,"\u00e2":7,"\u00e4":7,"\u00e0":7,"\u00e5":7,"\u00e3":7,":":-5,";":-5,"-":7,"\u00ad":7,",":48,".":48}},"\u00ff":{"d":"55,93v56,-14,121,-49,137,-109v0,-6,-1,-13,-6,-25r-180,-448r169,0r73,241v8,28,18,65,24,91r4,0r82,-332r162,0v-69,187,-188,570,-286,643v-55,42,-108,63,-146,67xm168,-556v-40,0,-71,-32,-71,-71v0,-40,32,-70,72,-70v38,0,68,30,68,70v0,39,-29,71,-69,71xm448,-627v0,40,-29,72,-71,71v-39,0,-69,-32,-69,-71v0,-40,30,-70,71,-70v39,0,69,30,69,70","w":523,"k":{"T":37,"g":14,"\u011f":14,"c":15,"d":15,"e":15,"o":15,"q":15,"\u00f8":15,"\u00e7":15,"\u00e9":15,"\u00ea":15,"\u00eb":15,"\u00e8":15,"\u00f3":15,"\u00f4":15,"\u00f6":15,"\u00f2":15,"\u00f5":15,"s":16,"\u015f":16,"v":-19,"w":-19,"y":-19,"\u00fd":-19,"\u00ff":-19,"a":7,"\u00e6":7,"\u00e1":7,"\u00e2":7,"\u00e4":7,"\u00e0":7,"\u00e5":7,"\u00e3":7,":":-5,";":-5,"-":7,"\u00ad":7,",":48,".":48}},"\u20ac":{"d":"226,-233v14,79,82,122,162,121v46,0,93,-15,114,-26r24,111v-34,19,-92,38,-156,38v-151,0,-276,-96,-300,-244r-65,0r0,-71r55,0r1,-47r-56,0r0,-71r67,0v32,-138,146,-238,300,-239v60,0,114,14,150,30r-28,114v-68,-31,-185,-37,-234,30v-13,18,-25,39,-32,65r249,0r0,71r-264,0r-1,47r265,0r0,71r-251,0"},"\u011e":{"d":"404,7v-233,0,-369,-123,-369,-336v0,-224,164,-352,385,-352v87,0,154,17,187,32r-32,123v-37,-17,-82,-29,-156,-29v-127,0,-224,71,-224,218v0,167,131,250,287,212r0,-142r-104,0r0,-119r251,0r0,355v-47,16,-136,38,-225,38xm237,-841r81,0v3,22,17,46,59,46v42,0,58,-22,63,-46r78,0v-2,73,-45,126,-141,126v-98,0,-138,-53,-140,-126","w":682,"k":{"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"a":-8,"\u00e6":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8}},"\u0130":{"d":"67,-674r152,0r0,674r-152,0r0,-674xm143,-713v-39,0,-69,-32,-69,-68v0,-39,31,-69,70,-69v38,0,67,30,67,69v0,36,-29,68,-68,68","w":285,"k":{"Y":18,"\u00dd":18,"f":-5,"\u00df":-5,"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":3,"d":3,"e":3,"o":3,"q":3,"\u00f8":3,"\u00e7":3,"\u00e9":3,"\u00ea":3,"\u00eb":3,"\u00e8":3,"\u00f3":3,"\u00f4":3,"\u00f6":3,"\u00f2":3,"\u00f5":3,"s":3,"\u015f":3,"t":-7,"x":3,"z":-3}},"\u015e":{"d":"40,-32r31,-125v59,41,276,77,276,-31v0,-42,-32,-66,-113,-94v-112,-40,-186,-102,-186,-200v0,-115,97,-202,255,-202v77,0,132,15,172,34r-34,122v-26,-13,-75,-32,-140,-32v-66,0,-98,31,-98,65v0,43,37,62,125,95v119,44,174,106,174,201v0,95,-61,178,-192,202r-22,40v38,5,72,33,72,72v0,95,-137,107,-202,69r20,-56v17,10,38,16,55,16v18,0,35,-7,35,-26v0,-19,-23,-32,-78,-36r36,-72v-61,0,-140,-18,-186,-42","w":540,"k":{"\u00e6":-8,"b":4,"h":4,"k":4,"l":4,"j":9,"c":-7,"d":-7,"e":-7,"o":-7,"q":-7,"\u00f8":-7,"\u00e7":-7,"\u00e9":-7,"\u00ea":-7,"\u00eb":-7,"\u00e8":-7,"\u00f3":-7,"\u00f4":-7,"\u00f6":-7,"\u00f2":-7,"\u00f5":-7,"t":5,"v":15,"w":15,"y":15,"\u00fd":15,"\u00ff":15,"a":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8,"-":-12,"\u00ad":-12}},"\u011f":{"d":"528,-489v-7,105,-3,294,-4,418v0,94,-19,171,-75,220v-92,80,-267,74,-374,23r30,-116v31,18,84,37,142,37v81,0,142,-59,125,-160v-29,40,-76,63,-132,63v-121,0,-207,-98,-207,-238v0,-158,101,-258,222,-258v69,0,107,32,136,70r5,-59r132,0xm286,-116v54,0,86,-42,86,-102r0,-72v-1,-57,-35,-95,-85,-95v-56,0,-100,50,-100,139v0,73,36,130,99,130xm153,-692r79,0v5,36,23,61,59,61v41,0,59,-29,61,-61r79,0v-1,84,-49,142,-140,142v-93,0,-137,-62,-138,-142","w":585,"k":{"T":34,",":17,".":17}},"\u015f":{"d":"32,-24r28,-108v28,17,86,36,131,36v46,0,65,-15,65,-40v0,-26,-15,-38,-71,-57v-102,-34,-140,-89,-140,-147v1,-92,78,-161,199,-161v57,0,107,14,137,29r-26,105v-30,-21,-164,-54,-164,11v0,24,19,36,79,57v93,32,132,79,132,151v0,76,-49,135,-147,153r-22,39v37,5,72,32,72,73v0,94,-137,104,-202,67r20,-56v17,10,39,16,55,16v17,0,35,-7,35,-26v0,-19,-23,-32,-78,-36r37,-72v-31,0,-88,-8,-140,-34","w":434,"k":{"T":35,",":10,".":10}},"\u20ab":{"d":"87,-104r384,0r0,89r-384,0r0,-89xm340,-675r127,0r0,57r64,0r0,72r-64,0r0,285v0,41,1,84,3,107r-113,0v-3,-17,-2,-37,-7,-52v-25,40,-71,60,-122,60v-92,0,-165,-72,-165,-183v0,-121,80,-191,174,-191v48,0,81,18,103,40r0,-66r-119,0r0,-72r119,0r0,-57xm268,-241v56,0,72,-48,72,-116v0,-43,-29,-71,-70,-71v-52,0,-78,41,-78,95v0,56,31,92,76,92"},"\u00ad":{"d":"30,-313r262,0r0,101r-262,0r0,-101","w":291,"k":{"T":55,"J":6,"C":-12,"G":-12,"O":-12,"Q":-12,"\u00d8":-12,"\u00c7":-12,"\u00d3":-12,"\u00d4":-12,"\u00d6":-12,"\u00d2":-12,"\u00d5":-12,"\u011e":-12,"V":24,"W":24,"X":17,"Y":60,"\u00dd":60,"A":5,"\u00c6":5,"\u00c1":5,"\u00c2":5,"\u00c4":5,"\u00c0":5,"\u00c5":5,"\u00c3":5,"g":-4,"\u011f":-4,"c":-16,"d":-16,"e":-16,"o":-16,"q":-16,"\u00f8":-16,"\u00e7":-16,"\u00e9":-16,"\u00ea":-16,"\u00eb":-16,"\u00e8":-16,"\u00f3":-16,"\u00f4":-16,"\u00f6":-16,"\u00f2":-16,"\u00f5":-16}},"\u00a0":{"w":202,"k":{"T":39,"V":37,"W":37,"Y":40,"\u00dd":40}}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 1992, 1994, 1997, 2000, 2004 Adobe Systems Incorporated. All rights reserved.
 * 
 * Trademark:
 * Myriad is either a registered trademark or a trademark of Adobe Systems
 * Incorporated in the United States and/or other countries.
 * 
 * Full name:
 * MyriadPro-Regular
 * 
 * Manufacturer:
 * Adobe Systems Incorporated
 * 
 * Designer:
 * Robert Slimbach and Carol Twombly
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":513,"face":{"font-family":"Myriad Pro Regular","font-weight":400,"font-stretch":"normal","units-per-em":"1000","panose-1":"2 11 5 3 3 4 3 2 2 4","ascent":"750","descent":"-250","x-height":"11","bbox":"-46 -878 838 250","underline-thickness":"50","underline-position":"-50","stemh":"67","stemv":"88","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":212,"k":{"T":41,"V":36,"W":36,"Y":46,"\u00dd":46}},"!":{"d":"149,-193r-68,0r-14,-481r96,0xm114,11v-34,0,-58,-27,-58,-62v0,-36,25,-62,60,-62v35,0,58,26,58,62v0,35,-23,62,-60,62","w":230},"\"":{"d":"51,-692r87,0r-17,240r-54,0xm200,-692r87,0r-17,240r-53,0","w":337,"k":{"T":-17,"J":59,"M":5,"C":3,"G":3,"O":3,"Q":3,"\u00d8":3,"\u00c7":3,"\u00d3":3,"\u00d4":3,"\u00d6":3,"\u00d2":3,"\u00d5":3,"\u011e":3,"V":-17,"W":-17,"Y":-3,"\u00dd":-3,"A":61,"\u00c6":61,"\u00c1":61,"\u00c2":61,"\u00c4":61,"\u00c0":61,"\u00c5":61,"\u00c3":61,"f":-25,"\u00df":-25,"g":10,"\u011f":10,"c":8,"d":8,"e":8,"o":8,"q":8,"\u00f8":8,"\u00e7":8,"\u00e9":8,"\u00ea":8,"\u00eb":8,"\u00e8":8,"\u00f3":8,"\u00f4":8,"\u00f6":8,"\u00f2":8,"\u00f5":8,"t":-24,"v":-21,"w":-21,"y":-21,"\u00fd":-21,"\u00ff":-21,",":113,".":113}},"#":{"d":"188,-255r104,0r19,-145r-104,0xm154,0r-60,0r26,-196r-83,0r0,-59r92,0r19,-145r-87,0r0,-59r95,0r26,-191r59,0r-26,191r105,0r25,-191r59,0r-25,191r82,0r0,59r-91,0r-18,145r86,0r0,59r-95,0r-26,196r-60,0r26,-196r-104,0","w":497},"$":{"d":"281,85r-63,0r0,-100v-58,-1,-117,-19,-152,-44r24,-67v35,23,87,43,143,43v71,0,119,-41,119,-98v0,-55,-39,-89,-113,-119v-102,-40,-165,-87,-165,-174v0,-83,59,-146,150,-161r0,-100r63,0r0,97v59,2,100,18,130,35r-25,66v-21,-12,-62,-35,-126,-35v-77,0,-106,46,-106,87v0,51,37,78,124,114v103,43,155,93,155,182v0,80,-55,154,-158,170r0,104"},"%":{"d":"188,-661v90,0,149,70,149,193v0,137,-71,205,-155,205v-82,0,-151,-65,-152,-195v0,-130,70,-203,158,-203xm183,-608v-54,0,-84,65,-84,146v0,83,30,146,85,146v58,0,84,-62,84,-147v0,-80,-23,-145,-85,-145xm231,12r-56,0r383,-674r56,0xm612,-392v90,0,149,70,149,194v0,137,-71,205,-155,205v-82,0,-151,-65,-152,-196v0,-130,70,-203,158,-203xm607,-339v-54,0,-84,65,-84,147v0,83,30,146,85,146v58,0,84,-62,84,-148v0,-79,-23,-145,-85,-145","w":792},"&":{"d":"602,0r-104,0r-63,-65v-58,53,-122,76,-197,76v-131,0,-207,-88,-207,-189v0,-92,55,-155,132,-197v-30,-48,-56,-95,-56,-144v0,-83,59,-167,171,-167v84,0,149,55,149,143v0,71,-41,127,-148,180r0,4r164,187v31,-47,52,-112,65,-197r80,0v-18,106,-47,190,-97,249xm254,-55v57,0,106,-26,138,-61r-190,-213v-37,24,-87,66,-87,138v0,77,57,136,139,136xm271,-626v-55,0,-84,46,-84,98v0,49,23,86,51,122v68,-39,112,-75,112,-133v0,-41,-23,-87,-79,-87","w":605},"(":{"d":"195,-694r68,0v-73,99,-125,228,-125,410v0,178,55,305,125,405r-68,0v-63,-83,-131,-211,-131,-406v1,-196,68,-325,131,-409","w":284,"k":{"T":-48,"J":-17,"C":12,"G":12,"O":12,"Q":12,"\u00d8":12,"\u00c7":12,"\u00d3":12,"\u00d4":12,"\u00d6":12,"\u00d2":12,"\u00d5":12,"\u011e":12,"V":-50,"W":-50,"X":-11,"Y":-41,"\u00dd":-41,"A":11,"\u00c6":11,"\u00c1":11,"\u00c2":11,"\u00c4":11,"\u00c0":11,"\u00c5":11,"\u00c3":11,"j":-56}},")":{"d":"88,121r-68,0v70,-99,125,-228,125,-408v0,-180,-54,-307,-125,-407r68,0v63,82,131,211,131,407v-1,196,-68,324,-131,408","w":284},"*":{"d":"269,-686r60,35r-95,127r151,-20r0,68r-151,-19v28,45,65,81,96,123r-63,36v-22,-46,-38,-97,-63,-140r-64,141r-57,-36r95,-122r0,-3r-148,20r0,-68v48,4,103,18,147,17r-94,-123r61,-35v22,46,39,97,64,140","w":415},"+":{"d":"266,-532r64,0r0,235r226,0r0,60r-226,0r0,237r-64,0r0,-237r-226,0r0,-60r226,0r0,-235","w":596},",":{"d":"78,117r-62,7v22,-60,49,-167,60,-240r98,-10v-24,85,-68,196,-96,243","w":207,"k":{"\"":102,"'":102}},"-":{"d":"30,-302r247,0r0,64r-247,0r0,-64","w":307,"k":{"T":50,"J":20,"C":-14,"G":-14,"O":-14,"Q":-14,"\u00d8":-14,"\u00c7":-14,"\u00d3":-14,"\u00d4":-14,"\u00d6":-14,"\u00d2":-14,"\u00d5":-14,"\u011e":-14,"V":11,"W":11,"X":22,"Y":50,"\u00dd":50,"A":4,"\u00c6":4,"\u00c1":4,"\u00c2":4,"\u00c4":4,"\u00c0":4,"\u00c5":4,"\u00c3":4,"g":-14,"\u011f":-14,"c":-18,"d":-18,"e":-18,"o":-18,"q":-18,"\u00f8":-18,"\u00e7":-18,"\u00e9":-18,"\u00ea":-18,"\u00eb":-18,"\u00e8":-18,"\u00f3":-18,"\u00f4":-18,"\u00f6":-18,"\u00f2":-18,"\u00f5":-18,"v":5,"w":5,"y":5,"\u00fd":5,"\u00ff":5}},".":{"d":"110,11v-34,0,-58,-27,-58,-63v0,-36,25,-63,60,-63v35,0,59,26,59,63v0,36,-24,63,-61,63","w":207,"k":{"\"":102,"'":102}},"\/":{"d":"66,39r-67,0r278,-725r69,0","w":343},"0":{"d":"263,-661v136,0,215,122,215,329v0,221,-83,343,-226,343v-127,0,-216,-119,-216,-334v0,-219,95,-338,227,-338xm257,-593v-76,0,-132,94,-132,271v0,169,52,265,132,265v89,0,132,-105,132,-271v0,-160,-40,-265,-132,-265"},"1":{"d":"236,0r0,-568v-41,18,-76,41,-115,61r-17,-67r142,-76r75,0r0,650r-85,0"},"2":{"d":"460,0r-415,0r0,-54r69,-67v166,-158,242,-242,242,-340v0,-66,-31,-127,-128,-127v-59,0,-108,30,-138,55r-28,-62v44,-37,109,-66,183,-66v140,0,199,96,199,189v0,131,-152,277,-275,399r291,0r0,73"},"3":{"d":"42,-33r24,-67v25,15,82,40,144,40v112,0,149,-71,147,-126v-4,-108,-103,-137,-217,-130r0,-66v96,6,194,-16,194,-110v0,-52,-33,-98,-114,-98v-52,0,-102,23,-130,43r-24,-64v35,-25,101,-50,171,-50v228,-1,243,251,66,309r0,2v80,15,145,75,145,166v0,104,-82,195,-237,195v-73,0,-137,-23,-169,-44"},"4":{"d":"400,0r-83,0r0,-178r-302,0r0,-57r290,-415r95,0r0,404r91,0r0,68r-91,0r0,178xm104,-246r213,0r0,-217v0,-34,1,-68,3,-102r-3,0v-61,124,-142,208,-213,319"},"5":{"d":"160,-409v155,-17,286,45,286,198v0,127,-101,222,-242,222v-71,0,-130,-20,-162,-40r22,-67v27,16,80,36,140,36v82,0,154,-54,153,-141v0,-84,-57,-143,-186,-143v-38,0,-67,3,-91,6r42,-312r311,0r0,74r-248,0"},"6":{"d":"416,-660r0,72v-171,-4,-280,110,-292,235r2,0v31,-42,86,-76,158,-76v115,0,196,84,196,210v0,120,-81,230,-217,230v-138,0,-229,-108,-229,-277v0,-246,141,-388,382,-394xm257,-362v-63,0,-136,43,-136,118v0,107,51,187,144,187v75,0,126,-63,126,-156v0,-93,-53,-149,-134,-149"},"7":{"d":"57,-650r410,0r0,58r-283,592r-91,0r282,-577r-318,0r0,-73"},"8":{"d":"166,-339r-1,-3v-73,-34,-104,-90,-104,-146v0,-103,87,-173,202,-173v216,0,258,231,82,312r0,3v81,32,131,90,131,168v0,114,-97,189,-221,189v-136,0,-218,-80,-218,-175v0,-82,49,-141,129,-175xm257,-53v79,0,130,-49,130,-116v0,-78,-55,-117,-143,-142v-76,22,-117,73,-117,135v0,65,47,123,130,123xm258,-598v-73,0,-113,48,-113,104v-1,65,49,100,124,120v56,-19,99,-59,99,-118v0,-52,-31,-106,-110,-106"},"9":{"d":"96,10r0,-72v168,7,269,-86,293,-238r-3,0v-36,44,-88,69,-154,69v-116,0,-191,-88,-191,-199v0,-123,89,-231,222,-231v133,0,215,107,215,275v0,261,-134,394,-382,396xm253,-297v70,0,136,-33,136,-101v0,-111,-41,-196,-134,-196v-74,0,-127,66,-127,159v0,81,49,138,125,138"},":":{"d":"111,-342v-34,0,-58,-27,-58,-62v0,-37,25,-63,59,-63v36,0,59,26,59,63v0,35,-23,62,-60,62xm111,11v-34,0,-58,-27,-58,-62v0,-37,25,-63,59,-63v36,0,59,26,59,63v0,35,-23,62,-60,62","w":207},";":{"d":"78,116r-61,7v22,-60,49,-166,60,-240r97,-10v-24,86,-68,196,-96,243xm118,-342v-34,0,-58,-27,-58,-62v0,-37,25,-63,59,-63v36,0,59,26,59,63v0,35,-23,62,-60,62","w":207},"<":{"d":"66,-239r0,-54r464,-239r0,69r-391,196r0,2r391,196r0,69","w":596},"=":{"d":"556,-337r-516,0r0,-60r516,0r0,60xm556,-141r-516,0r0,-60r516,0r0,60","w":596},">":{"d":"530,-295r0,57r-464,238r0,-69r394,-196r0,-2r-394,-196r0,-69","w":596},"?":{"d":"220,-192r-79,0v-10,-76,2,-128,60,-199v44,-54,70,-92,70,-137v0,-51,-32,-85,-95,-86v-36,0,-76,12,-101,31r-24,-63v34,-24,90,-40,143,-40v115,0,167,71,167,147v0,68,-39,117,-86,174v-50,61,-64,102,-55,173xm178,11v-34,0,-58,-27,-58,-62v0,-37,25,-63,59,-63v36,0,59,26,59,63v0,35,-23,62,-60,62","w":406},"@":{"d":"448,-255r21,-112v-111,-36,-210,58,-209,172v0,44,22,76,66,76v58,0,111,-74,122,-136xm508,22r16,43v-218,109,-481,-9,-481,-273v0,-206,143,-385,365,-385v174,0,290,123,290,290v0,150,-84,238,-177,238v-40,0,-77,-26,-75,-88r-3,0v-35,59,-81,88,-141,88v-58,0,-108,-47,-108,-126v0,-124,98,-237,237,-237v42,0,81,9,107,21r-34,181v-15,76,-3,111,30,112v51,2,108,-67,108,-182v0,-146,-87,-251,-242,-251v-163,0,-300,130,-300,333v0,167,109,271,257,271v57,0,110,-12,151,-35","w":737},"A":{"d":"424,-212r-239,0r-70,212r-90,0r230,-674r104,0r230,674r-93,0xm203,-280r204,0r-67,-194v-17,-43,-22,-88,-37,-123v-25,109,-66,214,-100,317","w":612,"k":{"T":77,"J":-19,"M":4,"C":15,"G":15,"O":15,"Q":15,"\u00d8":15,"\u00c7":15,"\u00d3":15,"\u00d4":15,"\u00d6":15,"\u00d2":15,"\u00d5":15,"\u011e":15,"U":28,"\u00da":28,"\u00db":28,"\u00dc":28,"\u00d9":28,"V":53,"W":53,"X":14,"Y":79,"\u00dd":79,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"f":7,"\u00df":7,"g":12,"\u011f":12,"b":3,"h":3,"k":3,"l":3,"j":4,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"s":6,"\u015f":6,"t":10,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"z":-14,"-":3,"\u00ad":3,")":9,"]":9,"}":9,"\"":59,"'":59}},"B":{"d":"501,-192v0,151,-113,197,-290,198v-60,0,-106,-4,-135,-8r0,-662v96,-21,289,-27,343,34v35,26,57,66,57,119v0,66,-44,123,-114,148r0,3v64,15,139,68,139,168xm163,-606r0,218r79,0v91,0,145,-49,145,-114v0,-78,-59,-110,-147,-110v-40,0,-63,3,-77,6xm163,-323r0,257v114,14,248,-3,246,-127v-1,-116,-119,-138,-246,-130","w":542,"k":{"T":9,"V":-4,"W":-4,"Y":15,"\u00dd":15,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"-":-5,"\u00ad":-5,",":13,".":13}},"C":{"d":"529,-91r17,70v-31,16,-96,32,-178,32v-190,0,-332,-120,-332,-342v0,-212,143,-354,352,-354v83,0,137,18,160,30r-22,71v-32,-16,-79,-28,-135,-28v-158,0,-263,101,-263,278v0,166,95,271,258,271v54,0,108,-11,143,-28","w":580,"k":{"T":-28,"J":-4,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"V":-12,"W":-12,"Y":-3,"\u00dd":-3,"A":-4,"\u00c6":-4,"\u00c1":-4,"\u00c2":-4,"\u00c4":-4,"\u00c0":-4,"\u00c5":-4,"\u00c3":-4,"a":7,"\u00e6":7,"\u00e1":7,"\u00e2":7,"\u00e4":7,"\u00e0":7,"\u00e5":7,"\u00e3":7,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":20,"w":20,"y":20,"\u00fd":20,"\u00ff":20,"z":-4,"\u00ab":12,")":-17,"]":-17,"}":-17}},"D":{"d":"630,-353v0,236,-146,361,-396,359v-63,0,-114,-3,-158,-8r0,-662v53,-9,116,-15,185,-15v238,2,369,103,369,326xm163,-601r0,533v22,3,54,4,88,4v187,0,287,-104,287,-286v0,-159,-89,-260,-273,-260v-45,0,-79,4,-102,9","w":666,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"E":{"d":"424,-388r0,72r-261,0r0,243r292,0r0,73r-380,0r0,-674r365,0r0,73r-277,0r0,213r261,0","w":492,"k":{"T":-16,"J":-18,"V":-9,"W":-9,"Y":-3,"\u00dd":-3,"g":6,"\u011f":6,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"t":3,"u":7,"\u00fa":7,"\u00fb":7,"\u00fc":7,"\u00f9":7,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":-3,",":4,".":4}},"F":{"d":"75,0r0,-674r363,0r0,73r-275,0r0,224r254,0r0,72r-254,0r0,305r-88,0","w":487,"k":{"\u00ef":26,"J":85,"M":18,"A":78,"\u00c6":78,"\u00c1":78,"\u00c2":78,"\u00c4":78,"\u00c0":78,"\u00c5":78,"\u00c3":78,"a":45,"\u00e6":45,"\u00e1":45,"\u00e2":45,"\u00e4":45,"\u00e0":45,"\u00e5":45,"\u00e3":45,"g":16,"\u011f":16,"b":17,"h":17,"k":17,"l":17,"i":26,"m":26,"n":26,"p":26,"r":26,"\u0131":26,"\u00ed":26,"\u00ee":26,"\u00ec":26,"\u00f1":26,"c":31,"d":31,"e":31,"o":31,"q":31,"\u00f8":31,"\u00e7":31,"\u00e9":31,"\u00ea":31,"\u00eb":31,"\u00e8":31,"\u00f3":31,"\u00f4":31,"\u00f6":31,"\u00f2":31,"\u00f5":31,"u":35,"\u00fa":35,"\u00fb":35,"\u00fc":35,"\u00f9":35,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,":":13,";":13,"\u00bb":15,"\u00ab":15,",":97,".":97}},"G":{"d":"382,7v-205,0,-346,-128,-346,-340v0,-201,139,-348,365,-348v78,0,140,17,169,31r-22,71v-36,-17,-81,-29,-149,-29v-164,0,-271,102,-271,271v0,171,102,272,260,272v57,0,96,-8,116,-18r0,-201r-136,0r0,-70r222,0r0,324v-39,15,-117,37,-208,37","w":646,"k":{"a":-8,"\u00e6":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8,"c":-5,"d":-5,"e":-5,"o":-5,"q":-5,"\u00f8":-5,"\u00e7":-5,"\u00e9":-5,"\u00ea":-5,"\u00eb":-5,"\u00e8":-5,"\u00f3":-5,"\u00f4":-5,"\u00f6":-5,"\u00f2":-5,"\u00f5":-5}},"H":{"d":"75,-674r88,0r0,282r326,0r0,-282r88,0r0,674r-88,0r0,-316r-326,0r0,316r-88,0r0,-674","w":652,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"I":{"d":"75,-674r88,0r0,674r-88,0r0,-674","w":239,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"J":{"d":"213,-230r0,-444r88,0r0,451v2,220,-140,261,-297,218r12,-71v107,31,197,15,197,-154","w":370,"k":{"v":-10,"w":-10,"y":-10,"\u00fd":-10,"\u00ff":-10,")":-42,"]":-42,"}":-42,",":12,".":12}},"K":{"d":"76,0r0,-674r87,0r0,325r3,0v82,-115,172,-215,259,-325r108,0r-244,286r263,388r-103,0r-221,-331r-65,74r0,257r-87,0","w":542,"k":{"T":-21,"J":-38,"C":17,"G":17,"O":17,"Q":17,"\u00d8":17,"\u00c7":17,"\u00d3":17,"\u00d4":17,"\u00d6":17,"\u00d2":17,"\u00d5":17,"\u011e":17,"V":-15,"W":-15,"Y":7,"\u00dd":7,"A":-10,"\u00c6":-10,"\u00c1":-10,"\u00c2":-10,"\u00c4":-10,"\u00c0":-10,"\u00c5":-10,"\u00c3":-10,"Z":-20,"a":-16,"\u00e6":-16,"\u00e1":-16,"\u00e2":-16,"\u00e4":-16,"\u00e0":-16,"\u00e5":-16,"\u00e3":-16,"g":5,"\u011f":5,"b":-10,"h":-10,"k":-10,"l":-10,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"u":6,"\u00fa":6,"\u00fb":6,"\u00fc":6,"\u00f9":6,"v":16,"w":16,"y":16,"\u00fd":16,"\u00ff":16,":":-22,";":-22,"\u00ab":5,"-":18,"\u00ad":18,")":-23,"]":-23,"}":-23,",":-17,".":-17,"\u00b5":-5}},"L":{"d":"75,0r0,-674r88,0r0,601r288,0r0,73r-376,0","w":472,"k":{"\u00d8":39,"T":88,"J":-11,"C":39,"G":39,"O":39,"Q":39,"\u00c7":39,"\u00d3":39,"\u00d4":39,"\u00d6":39,"\u00d2":39,"\u00d5":39,"\u011e":39,"U":36,"\u00da":36,"\u00db":36,"\u00dc":36,"\u00d9":36,"V":59,"W":59,"Y":84,"\u00dd":84,"c":14,"d":14,"e":14,"o":14,"q":14,"\u00f8":14,"\u00e7":14,"\u00e9":14,"\u00ea":14,"\u00eb":14,"\u00e8":14,"\u00f3":14,"\u00f4":14,"\u00f6":14,"\u00f2":14,"\u00f5":14,"t":4,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"\u00ab":38,"-":42,"\u00ad":42,"\"":98,"'":98}},"M":{"d":"660,0r-16,-296v-5,-94,-11,-208,-11,-291r-2,0v-24,78,-51,163,-85,256r-119,327r-66,0r-110,-321v-34,-95,-55,-186,-79,-262v-2,84,-7,196,-13,298r-18,289r-83,0r47,-674r111,0r115,326v30,82,47,161,70,227v48,-177,130,-379,192,-553r111,0r42,674r-86,0","w":804,"k":{"T":10,"A":10,"\u00c6":10,"\u00c1":10,"\u00c2":10,"\u00c4":10,"\u00c0":10,"\u00c5":10,"\u00c3":10,"a":-6,"\u00e6":-6,"\u00e1":-6,"\u00e2":-6,"\u00e4":-6,"\u00e0":-6,"\u00e5":-6,"\u00e3":-6,"j":-10,"i":-12,"m":-12,"n":-12,"p":-12,"r":-12,"\u0131":-12,"\u00ed":-12,"\u00ee":-12,"\u00ef":-12,"\u00ec":-12,"\u00f1":-12,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-7,"w":-7,"y":-7,"\u00fd":-7,"\u00ff":-7,"-":-6,"\u00ad":-6,"\u00b5":-4}},"N":{"d":"158,0r-82,0r0,-674r96,0r215,341v49,79,89,150,120,219r3,-1v-15,-169,-8,-372,-10,-559r82,0r0,674r-88,0r-214,-342v-47,-75,-92,-152,-125,-225r-3,1v5,85,6,166,6,278r0,288","w":658,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"O":{"d":"348,-686v185,0,304,141,304,342v0,231,-141,355,-313,355v-179,0,-303,-139,-303,-343v0,-214,132,-354,312,-354xm345,-615v-145,0,-217,134,-217,281v0,145,78,274,216,274v138,0,216,-127,216,-280v0,-135,-70,-275,-215,-275","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"P":{"d":"491,-482v5,172,-156,239,-328,212r0,270r-87,0r0,-666v42,-7,97,-13,167,-13v153,1,244,59,248,197xm163,-603r0,262v19,5,43,7,72,7v105,0,169,-52,169,-143v0,-90,-64,-133,-159,-133v-38,0,-67,3,-82,7","w":532,"k":{"J":74,"M":12,"X":13,"Y":9,"\u00dd":9,"A":84,"\u00c6":84,"\u00c1":84,"\u00c2":84,"\u00c4":84,"\u00c0":84,"\u00c5":84,"\u00c3":84,"Z":30,"a":26,"\u00e6":26,"\u00e1":26,"\u00e2":26,"\u00e4":26,"\u00e0":26,"\u00e5":26,"\u00e3":26,"g":24,"\u011f":24,"b":5,"h":5,"k":5,"l":5,"i":16,"m":16,"n":16,"p":16,"r":16,"\u0131":16,"\u00ed":16,"\u00ee":16,"\u00ef":16,"\u00ec":16,"\u00f1":16,"c":25,"d":25,"e":25,"o":25,"q":25,"\u00f8":25,"\u00e7":25,"\u00e9":25,"\u00ea":25,"\u00eb":25,"\u00e8":25,"\u00f3":25,"\u00f4":25,"\u00f6":25,"\u00f2":25,"\u00f5":25,"s":22,"\u015f":22,"t":-6,"u":15,"\u00fa":15,"\u00fb":15,"\u00fc":15,"\u00f9":15,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,":":11,";":11,"\u00ab":23,"-":17,"\u00ad":17,",":140,".":140,"\u00b5":10}},"Q":{"d":"632,99v-108,-26,-199,-63,-299,-88v-161,-6,-297,-124,-297,-342v0,-216,131,-355,313,-355v184,0,303,142,303,341v0,174,-80,284,-192,324r0,4v67,17,140,33,197,43xm344,-60v138,0,216,-127,216,-280v0,-136,-70,-275,-213,-275v-147,0,-219,136,-219,282v0,144,78,273,216,273","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"R":{"d":"243,-679v155,-1,248,50,248,184v0,88,-56,147,-126,171r0,3v51,18,82,66,98,136v22,94,38,159,52,185r-90,0v-11,-20,-27,-77,-44,-161v-24,-124,-88,-137,-218,-131r0,292r-87,0r0,-665v44,-8,108,-14,167,-14xm163,-604r0,246r89,0v93,0,152,-51,152,-128v0,-87,-63,-125,-155,-125v-42,0,-71,3,-86,7","w":538,"k":{"T":-9,"C":-3,"G":-3,"O":-3,"Q":-3,"\u00d8":-3,"\u00c7":-3,"\u00d3":-3,"\u00d4":-3,"\u00d6":-3,"\u00d2":-3,"\u00d5":-3,"\u011e":-3,"V":-16,"W":-16,"X":-5,"Y":11,"\u00dd":11,"A":-5,"\u00c6":-5,"\u00c1":-5,"\u00c2":-5,"\u00c4":-5,"\u00c0":-5,"\u00c5":-5,"\u00c3":-5,"a":-12,"\u00e6":-12,"\u00e1":-12,"\u00e2":-12,"\u00e4":-12,"\u00e0":-12,"\u00e5":-12,"\u00e3":-12,"b":-9,"h":-9,"k":-9,"l":-9,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-19,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14}},"S":{"d":"42,-33r23,-73v39,25,95,44,155,44v89,0,141,-47,141,-115v0,-62,-36,-99,-127,-133v-110,-40,-178,-98,-178,-192v0,-105,87,-183,218,-183v68,0,119,16,148,33r-24,71v-21,-13,-66,-32,-127,-32v-92,0,-127,55,-127,101v0,63,41,94,134,130v114,44,171,99,171,198v0,104,-76,195,-235,195v-65,0,-136,-20,-172,-44","w":493,"k":{"\u00e6":-3,"a":-3,"\u00e1":-3,"\u00e2":-3,"\u00e4":-3,"\u00e0":-3,"\u00e5":-3,"\u00e3":-3,"j":4,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"t":3,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"-":-5,"\u00ad":-5}},"T":{"d":"204,0r0,-600r-205,0r0,-74r499,0r0,74r-206,0r0,600r-88,0","w":497,"k":{"\u00ec":45,"\u00ef":45,"\u00ee":45,"\u00ed":45,"\u00e8":71,"\u00e0":64,"\u0131":45,"i":45,"T":-38,"J":43,"C":27,"G":27,"O":27,"Q":27,"\u00d8":27,"\u00c7":27,"\u00d3":27,"\u00d4":27,"\u00d6":27,"\u00d2":27,"\u00d5":27,"\u011e":27,"V":-40,"W":-40,"X":-22,"Y":-28,"\u00dd":-28,"A":75,"\u00c6":75,"\u00c1":75,"\u00c2":75,"\u00c4":75,"\u00c0":75,"\u00c5":75,"\u00c3":75,"S":6,"\u015e":6,"a":64,"\u00e6":64,"\u00e1":64,"\u00e2":64,"\u00e4":64,"\u00e5":64,"\u00e3":64,"g":64,"\u011f":64,"b":7,"h":7,"k":7,"l":7,"m":45,"n":45,"p":45,"r":45,"\u00f1":45,"c":71,"d":71,"e":71,"o":71,"q":71,"\u00f8":71,"\u00e7":71,"\u00e9":71,"\u00ea":71,"\u00eb":71,"\u00f3":71,"\u00f4":71,"\u00f6":71,"\u00f2":71,"\u00f5":71,"s":53,"\u015f":53,"u":45,"\u00fa":45,"\u00fb":45,"\u00fc":45,"\u00f9":45,"v":40,"w":40,"y":40,"\u00fd":40,"\u00ff":40,"z":51,"x":34,":":26,";":26,"\u00bb":36,"\u00ab":51,"-":51,"\u00ad":51,")":-60,"]":-60,"}":-60,"\"":-17,"'":-17,",":60,".":60,"\u00b5":33}},"U":{"d":"75,-674r88,0r0,400v0,150,67,214,157,214v99,0,164,-66,164,-214r0,-400r88,0r0,394v0,207,-109,291,-255,291v-138,0,-242,-78,-242,-288r0,-397","w":647,"k":{"A":34,"\u00c6":34,"\u00c1":34,"\u00c2":34,"\u00c4":34,"\u00c0":34,"\u00c5":34,"\u00c3":34,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"f":-7,"\u00df":-7,"s":6,"\u015f":6,"t":-4,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"z":5,"x":7,",":27,".":27}},"V":{"d":"320,0r-96,0r-221,-674r95,0r105,332v28,91,53,173,72,252r2,0v49,-191,130,-396,191,-584r93,0","w":558,"k":{"\u00ef":16,"\u00c6":57,"T":-33,"J":23,"V":-16,"W":-16,"A":57,"\u00c1":57,"\u00c2":57,"\u00c4":57,"\u00c0":57,"\u00c5":57,"\u00c3":57,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"g":9,"\u011f":9,"b":5,"h":5,"k":5,"l":5,"i":16,"m":16,"n":16,"p":16,"r":16,"\u0131":16,"\u00ed":16,"\u00ee":16,"\u00ec":16,"\u00f1":16,"c":33,"d":33,"e":33,"o":33,"q":33,"\u00f8":33,"\u00e7":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"s":25,"\u015f":25,"t":-9,"u":18,"\u00fa":18,"\u00fb":18,"\u00fc":18,"\u00f9":18,"v":4,"w":4,"y":4,"\u00fd":4,"\u00ff":4,"z":3,":":16,";":16,"\u00bb":11,"\u00ab":25,"-":14,"\u00ad":14,")":-55,"]":-55,"}":-55,"\"":-19,"'":-19,",":55,".":55}},"W":{"d":"277,0r-91,0r-171,-674r92,0r80,341v20,84,38,168,50,233r2,0v34,-179,100,-394,145,-574r91,0r82,342v21,79,33,165,49,231v14,-74,33,-149,54,-233r89,-340r89,0r-191,674r-91,0r-85,-351v-23,-85,-31,-156,-46,-220v-33,180,-102,391,-148,571","w":846,"k":{"\u00ef":16,"\u00c6":57,"T":-33,"J":23,"V":-16,"W":-16,"A":57,"\u00c1":57,"\u00c2":57,"\u00c4":57,"\u00c0":57,"\u00c5":57,"\u00c3":57,"a":33,"\u00e6":33,"\u00e1":33,"\u00e2":33,"\u00e4":33,"\u00e0":33,"\u00e5":33,"\u00e3":33,"g":9,"\u011f":9,"b":5,"h":5,"k":5,"l":5,"i":16,"m":16,"n":16,"p":16,"r":16,"\u0131":16,"\u00ed":16,"\u00ee":16,"\u00ec":16,"\u00f1":16,"c":33,"d":33,"e":33,"o":33,"q":33,"\u00f8":33,"\u00e7":33,"\u00e9":33,"\u00ea":33,"\u00eb":33,"\u00e8":33,"\u00f3":33,"\u00f4":33,"\u00f6":33,"\u00f2":33,"\u00f5":33,"s":25,"\u015f":25,"t":-9,"u":18,"\u00fa":18,"\u00fb":18,"\u00fc":18,"\u00f9":18,"v":4,"w":4,"y":4,"\u00fd":4,"\u00ff":4,"z":3,":":16,";":16,"\u00bb":11,"\u00ab":25,"-":14,"\u00ad":14,")":-55,"]":-55,"}":-55,"\"":-19,"'":-19,",":55,".":55}},"X":{"d":"546,0r-101,0r-164,-282r-2,0r-154,282r-100,0r206,-341r-198,-333r101,0r151,272r3,0v44,-91,102,-183,152,-272r101,0r-205,328","w":571,"k":{"T":-8,"J":-4,"C":29,"G":29,"O":29,"Q":29,"\u00d8":29,"\u00c7":29,"\u00d3":29,"\u00d4":29,"\u00d6":29,"\u00d2":29,"\u00d5":29,"\u011e":29,"V":-9,"W":-9,"X":15,"Y":-5,"\u00dd":-5,"A":9,"\u00c6":9,"\u00c1":9,"\u00c2":9,"\u00c4":9,"\u00c0":9,"\u00c5":9,"\u00c3":9,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"u":8,"\u00fa":8,"\u00fb":8,"\u00fc":8,"\u00f9":8,"v":19,"w":19,"y":19,"\u00fd":19,"\u00ff":19,"\u00ab":18,"-":21,"\u00ad":21}},"Y":{"d":"314,0r-88,0r0,-286r-214,-388r100,0r95,186v25,51,46,92,67,139r2,0v46,-105,112,-221,165,-325r98,0r-225,387r0,287","w":541,"k":{"\u00f6":76,"\u00ef":13,"\u00eb":76,"\u00e4":70,"T":-34,"J":54,"M":10,"C":36,"G":36,"O":36,"Q":36,"\u00d8":36,"\u00c7":36,"\u00d3":36,"\u00d4":36,"\u00d6":36,"\u00d2":36,"\u00d5":36,"\u011e":36,"V":-29,"W":-29,"X":3,"Y":-3,"\u00dd":-3,"A":81,"\u00c6":81,"\u00c1":81,"\u00c2":81,"\u00c4":81,"\u00c0":81,"\u00c5":81,"\u00c3":81,"S":13,"\u015e":13,"B":7,"D":7,"E":7,"F":7,"H":7,"I":7,"K":7,"L":7,"N":7,"P":7,"R":7,"\u00d0":7,"\u00c9":7,"\u00ca":7,"\u00cb":7,"\u00c8":7,"\u00cd":7,"\u00ce":7,"\u00cf":7,"\u00cc":7,"\u00d1":7,"\u0130":7,"a":70,"\u00e6":70,"\u00e1":70,"\u00e2":70,"\u00e0":70,"\u00e5":70,"\u00e3":70,"g":40,"\u011f":40,"b":9,"h":9,"k":9,"l":9,"i":13,"m":13,"n":13,"p":13,"r":13,"\u0131":13,"\u00ed":13,"\u00ee":13,"\u00ec":13,"\u00f1":13,"c":76,"d":76,"e":76,"o":76,"q":76,"\u00f8":76,"\u00e7":76,"\u00e9":76,"\u00ea":76,"\u00e8":76,"\u00f3":76,"\u00f4":76,"\u00f2":76,"\u00f5":76,"s":52,"\u015f":52,"t":19,"u":53,"\u00fa":53,"\u00fb":53,"\u00fc":53,"\u00f9":53,"v":29,"w":29,"y":29,"\u00fd":29,"\u00ff":29,"z":25,"x":26,":":33,";":33,"\u00bb":20,"\u00ab":49,"-":51,"\u00ad":51,")":-56,"]":-56,"}":-56,"\"":-8,"'":-8,",":95,".":95}},"Z":{"d":"30,0r0,-51r373,-547r0,-3r-341,0r0,-73r455,0r0,53r-372,545r0,3r377,0r0,73r-492,0","w":553,"k":{"J":-8,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"X":6,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"u":7,"\u00fa":7,"\u00fb":7,"\u00fc":7,"\u00f9":7,"v":9,"w":9,"y":9,"\u00fd":9,"\u00ff":9,"-":27,"\u00ad":27}},"[":{"d":"264,112r-183,0r0,-798r183,0r0,55r-114,0r0,688r114,0r0,55","w":284,"k":{"T":-48,"J":-17,"C":12,"G":12,"O":12,"Q":12,"\u00d8":12,"\u00c7":12,"\u00d3":12,"\u00d4":12,"\u00d6":12,"\u00d2":12,"\u00d5":12,"\u011e":12,"V":-50,"W":-50,"X":-11,"Y":-41,"\u00dd":-41,"A":11,"\u00c6":11,"\u00c1":11,"\u00c2":11,"\u00c4":11,"\u00c0":11,"\u00c5":11,"\u00c3":11,"j":-56}},"\\":{"d":"342,39r-68,0r-272,-725r68,0","w":341},"]":{"d":"20,-686r183,0r0,798r-183,0r0,-55r114,0r0,-688r-114,0r0,-55","w":284},"^":{"d":"536,-189r-70,0r-167,-388r-2,0r-167,388r-69,0r206,-461r63,0","w":596},"_":{"d":"0,75r500,0r0,50r-500,0r0,-50","w":500},"a":{"d":"229,-494v266,0,156,268,191,494r-79,0r-7,-61r-3,0v-27,38,-79,72,-148,72v-98,0,-148,-69,-148,-139v0,-117,104,-181,291,-180v1,-52,-6,-121,-110,-121v-46,0,-93,13,-127,36r-20,-59v40,-25,99,-42,160,-42xm205,-54v74,0,123,-44,123,-109r0,-84v-96,-2,-205,15,-205,109v0,58,38,84,82,84","w":482},"b":{"d":"73,-125r0,-585r87,0r0,304r2,0v31,-54,87,-88,165,-88v121,0,205,100,205,246v0,173,-110,259,-218,259v-72,0,-124,-31,-165,-90r-5,79r-75,0v2,-33,4,-82,4,-125xm298,-425v-69,0,-135,57,-138,145r0,86v3,83,63,135,136,135v93,0,147,-75,147,-186v0,-97,-50,-180,-145,-180","w":569,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"c":{"d":"403,-83r15,66v-23,11,-74,28,-139,28v-146,0,-241,-99,-241,-247v0,-149,102,-258,260,-258v52,0,98,13,122,26r-20,67v-21,-11,-54,-23,-102,-23v-111,0,-171,83,-171,183v0,112,72,181,168,181v50,0,83,-12,108,-23","w":448,"k":{"T":12,"f":-3,"\u00df":-3,"c":6,"d":6,"e":6,"o":6,"q":6,"\u00f8":6,"\u00e7":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"t":-13,"v":-18,"w":-18,"y":-18,"\u00fd":-18,"\u00ff":-18,"\u00bb":-14,"-":-5,"\u00ad":-5,",":10,".":10}},"d":{"d":"403,-710r87,0r0,585v0,43,2,92,4,125r-78,0r-4,-84r-3,0v-26,54,-84,95,-163,95v-117,0,-208,-99,-208,-246v-1,-161,100,-259,217,-259v77,0,122,38,148,73r0,-289xm270,-60v69,0,133,-55,133,-143r0,-84v-1,-82,-53,-138,-131,-138v-91,0,-145,80,-145,186v0,98,49,179,143,179","w":564,"k":{",":10,".":10}},"e":{"d":"462,-226r-340,0v2,119,77,168,166,168v63,0,102,-11,134,-25r16,63v-31,14,-85,31,-162,31v-149,0,-238,-99,-238,-245v0,-146,86,-260,227,-260v175,0,210,147,197,268xm123,-289r257,0v1,-55,-23,-142,-122,-142v-90,0,-128,81,-135,142","w":501,"k":{"T":33,"x":3,"-":-28,"\u00ad":-28,",":12,".":12}},"f":{"d":"169,0r-87,0r0,-417r-67,0r0,-67r67,0v-2,-81,12,-147,56,-192v48,-49,132,-55,193,-31r-12,68v-13,-6,-30,-11,-56,-11v-84,0,-97,79,-94,166r117,0r0,67r-117,0r0,417","w":292,"k":{"g":12,"\u011f":12,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":9,"\u015f":9,"t":-11,":":-32,";":-32,"\u00bb":-13,")":-103,"]":-103,"}":-103,"\"":-56,"'":-56,",":33,".":33}},"g":{"d":"491,-484v-8,116,-4,284,-4,413v0,112,-22,180,-69,222v-87,78,-242,73,-338,18r22,-68v32,21,82,39,142,39v90,0,156,-47,156,-170v0,-17,4,-40,-2,-53v-26,45,-79,81,-154,81v-120,0,-206,-102,-206,-236v0,-164,107,-256,219,-256v86,0,127,46,153,83r3,-73r78,0xm270,-69v69,0,129,-54,129,-137r0,-87v-3,-81,-51,-133,-128,-133v-84,0,-144,71,-144,183v0,95,49,174,143,174","w":559,"k":{"T":32,"f":-4,"\u00df":-4,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,",":15,".":15}},"h":{"d":"285,-421v-70,0,-124,52,-124,129r0,292r-88,0r0,-710r88,0r0,303r2,0v26,-48,82,-86,153,-87v65,0,169,40,169,206r0,288r-88,0r0,-278v0,-78,-29,-143,-112,-143","w":555,"k":{"T":50,"t":4,"v":13,"w":13,"y":13,"\u00fd":13,"\u00ff":13,"\"":7,"'":7}},"i":{"d":"161,0r-88,0r0,-484r88,0r0,484xm117,-675v32,0,54,24,54,55v0,30,-21,54,-56,54v-32,0,-53,-24,-53,-54v0,-30,22,-55,55,-55","w":234},"j":{"d":"-36,211r-10,-69v41,-3,75,-14,96,-38v24,-27,34,-65,34,-181r0,-407r88,0r0,441v0,94,-15,155,-58,199v-39,39,-103,55,-150,55xm128,-675v33,0,54,25,54,55v0,29,-20,54,-56,54v-32,0,-53,-25,-53,-54v0,-30,22,-55,55,-55","w":243,"k":{",":11,".":11}},"k":{"d":"160,-710r0,448v16,-14,29,-38,44,-55r143,-167r105,0r-186,199r213,285r-108,0r-166,-232r-45,50r0,182r-87,0r0,-710r87,0","w":469,"k":{"T":19,"a":-18,"\u00e6":-18,"\u00e1":-18,"\u00e2":-18,"\u00e4":-18,"\u00e0":-18,"\u00e5":-18,"\u00e3":-18,"b":-17,"h":-17,"k":-17,"l":-17,"i":-17,"m":-17,"n":-17,"p":-17,"r":-17,"\u0131":-17,"\u00ed":-17,"\u00ee":-17,"\u00ef":-17,"\u00ec":-17,"\u00f1":-17,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-13,"w":-13,"y":-13,"\u00fd":-13,"\u00ff":-13,":":-10,";":-10,"-":10,"\u00ad":10,",":-14,".":-14}},"l":{"d":"73,0r0,-710r88,0r0,710r-88,0","w":236,"k":{",":10,".":10}},"m":{"d":"275,-422v-68,0,-116,58,-116,131r0,291r-86,0r0,-353v0,-51,-2,-91,-4,-131r77,0r4,79r3,0v27,-46,72,-89,153,-89v67,0,113,44,138,97v34,-57,78,-97,161,-97v65,0,160,42,160,210r0,284r-86,0r0,-273v0,-94,-35,-149,-105,-149v-65,0,-112,52,-112,123r0,299r-86,0r0,-290v0,-77,-34,-132,-101,-132","w":834,"k":{"T":50,"t":4,"v":13,"w":13,"y":13,"\u00fd":13,"\u00ff":13,"\"":7,"'":7}},"n":{"d":"285,-422v-70,0,-124,53,-124,131r0,291r-88,0r0,-353v0,-51,-1,-91,-4,-131r78,0v4,25,0,58,7,80v24,-45,80,-90,160,-90v67,0,171,40,171,206r0,288r-88,0r0,-279v0,-78,-29,-143,-112,-143","w":555,"k":{"T":50,"t":4,"v":13,"w":13,"y":13,"\u00fd":13,"\u00ff":13,"\"":7,"'":7}},"o":{"d":"278,-494v139,0,233,101,233,248v0,179,-125,257,-241,257v-130,0,-232,-96,-232,-249v0,-161,107,-256,240,-256xm276,-428v-103,0,-148,96,-148,187v0,106,60,186,146,186v84,0,147,-79,147,-188v0,-82,-41,-185,-145,-185","w":549,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"p":{"d":"73,198r0,-524v0,-62,-2,-112,-4,-158r78,0v4,26,0,60,7,83v35,-59,93,-93,172,-93v118,0,206,99,206,245v0,174,-107,260,-221,260v-66,0,-118,-31,-151,-76r0,263r-87,0xm299,-424v-71,0,-134,58,-139,143r0,84v1,86,63,139,136,139v93,0,147,-76,147,-187v0,-96,-51,-179,-144,-179","w":569,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"q":{"d":"403,198r0,-272r-2,0v-27,47,-80,85,-158,85v-113,0,-205,-97,-205,-244v0,-182,117,-261,219,-261v77,0,123,40,151,83r3,-73r83,0v-2,40,-4,83,-4,133r0,549r-87,0xm270,-59v69,1,133,-55,133,-138r0,-91v-2,-81,-53,-136,-130,-136v-91,0,-146,77,-146,185v0,97,46,180,143,180","w":563,"k":{"T":31,",":8,".":8}},"r":{"d":"312,-409v-96,-15,-151,51,-151,151r0,258r-88,0r0,-333v0,-57,-1,-106,-4,-151r77,0r4,96r3,0v27,-72,82,-115,159,-104r0,83","w":327,"k":{"T":14,"a":5,"\u00e6":5,"\u00e1":5,"\u00e2":5,"\u00e4":5,"\u00e0":5,"\u00e5":5,"\u00e3":5,"f":-30,"\u00df":-30,"g":8,"\u011f":8,"b":-4,"h":-4,"k":-4,"l":-4,"i":-4,"m":-4,"n":-4,"p":-4,"r":-4,"\u0131":-4,"\u00ed":-4,"\u00ee":-4,"\u00ef":-4,"\u00ec":-4,"\u00f1":-4,"c":10,"d":10,"e":10,"o":10,"q":10,"\u00f8":10,"\u00e7":10,"\u00e9":10,"\u00ea":10,"\u00eb":10,"\u00e8":10,"\u00f3":10,"\u00f4":10,"\u00f6":10,"\u00f2":10,"\u00f5":10,"t":-24,"v":-25,"w":-25,"y":-25,"\u00fd":-25,"\u00ff":-25,"z":-9,"x":-18,":":-9,";":-9,"\u00bb":-12,"\u00ab":6,"-":5,"\u00ad":5,",":53,".":53}},"s":{"d":"40,-23r21,-66v27,16,73,34,117,34v63,0,93,-31,93,-72v0,-42,-25,-64,-89,-88v-88,-32,-129,-79,-129,-137v0,-78,64,-142,167,-142v49,0,92,13,118,30r-21,64v-19,-12,-54,-29,-99,-29v-52,0,-80,30,-80,66v0,40,28,59,91,83v83,32,127,73,127,145v0,86,-67,146,-180,146v-53,0,-102,-14,-136,-34","w":396,"k":{"T":24,",":11,".":11}},"t":{"d":"222,11v-95,-2,-129,-61,-129,-164r0,-264r-75,0r0,-67r75,0r0,-90r86,-26r0,116r126,0r0,67r-126,0r0,261v0,60,17,94,66,94v24,0,38,-2,51,-6r4,67v-17,6,-44,12,-78,12","w":331,"k":{"g":6,"\u011f":6,"c":6,"d":6,"e":6,"o":6,"q":6,"\u00f8":6,"\u00e7":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"-":5,"\u00ad":5,",":3,".":3}},"u":{"d":"266,-62v75,0,124,-51,124,-126r0,-296r88,0r0,351v0,51,1,95,4,133r-78,0v-4,-25,0,-58,-7,-79v-22,39,-74,90,-160,90v-76,0,-167,-43,-167,-212r0,-283r88,0r0,267v0,92,29,155,108,155","w":551,"k":{"T":31,",":8,".":8}},"v":{"d":"13,-484r94,0r95,271v16,45,29,85,39,125r3,0v11,-40,25,-80,41,-125r94,-271r92,0r-190,484r-84,0","w":481,"k":{"T":30,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"g":10,"\u011f":10,"c":10,"d":10,"e":10,"o":10,"q":10,"\u00f8":10,"\u00e7":10,"\u00e9":10,"\u00ea":10,"\u00eb":10,"\u00e8":10,"\u00f3":10,"\u00f4":10,"\u00f6":10,"\u00f2":10,"\u00f5":10,"s":6,"\u015f":6,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,":":-24,";":-24,"-":4,"\u00ad":4,",":39,".":39}},"w":{"d":"18,-484r90,0r65,246v13,54,26,104,35,154r3,0v33,-135,82,-270,122,-400r74,0r75,242v18,58,32,109,43,158r3,0v24,-132,72,-272,106,-400r87,0r-156,484r-80,0r-74,-231v-19,-53,-28,-107,-45,-159v-30,141,-80,260,-122,390r-80,0","w":736,"k":{"T":30,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"g":10,"\u011f":10,"c":10,"d":10,"e":10,"o":10,"q":10,"\u00f8":10,"\u00e7":10,"\u00e9":10,"\u00ea":10,"\u00eb":10,"\u00e8":10,"\u00f3":10,"\u00f4":10,"\u00f6":10,"\u00f2":10,"\u00f5":10,"s":6,"\u015f":6,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,":":-24,";":-24,"-":4,"\u00ad":4,",":39,".":39}},"x":{"d":"16,-484r98,0r119,182r2,0r116,-182r96,0r-165,234r169,250r-99,0r-72,-109v-21,-27,-33,-59,-54,-84v-37,66,-81,129,-121,193r-97,0r172,-247","w":463,"k":{"T":22,"c":15,"d":15,"e":15,"o":15,"q":15,"\u00f8":15,"\u00e7":15,"\u00e9":15,"\u00ea":15,"\u00eb":15,"\u00e8":15,"\u00f3":15,"\u00f4":15,"\u00f6":15,"\u00f2":15,"\u00f5":15,"s":6,"\u015f":6,"t":-13,"v":-15,"w":-15,"y":-15,"\u00fd":-15,"\u00ff":-15,"-":6,"\u00ad":6}},"y":{"d":"36,147v69,-24,130,-77,158,-162v0,-5,-2,-12,-7,-23r-178,-446r96,0r105,286v14,31,21,74,34,99v9,-29,19,-66,31,-101r96,-284r93,0v-81,193,-181,547,-298,648v-44,37,-86,52,-108,56","w":471,"k":{"T":30,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"g":10,"\u011f":10,"c":10,"d":10,"e":10,"o":10,"q":10,"\u00f8":10,"\u00e7":10,"\u00e9":10,"\u00ea":10,"\u00eb":10,"\u00e8":10,"\u00f3":10,"\u00f4":10,"\u00f6":10,"\u00f2":10,"\u00f5":10,"s":6,"\u015f":6,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,":":-24,";":-24,"-":4,"\u00ad":4,",":39,".":39}},"z":{"d":"18,0r0,-51r218,-285v21,-27,45,-49,64,-78r-262,0r0,-70r368,0r0,55r-216,281v-20,28,-43,51,-62,78r282,0r0,70r-392,0","w":428,"k":{"T":20,"c":7,"d":7,"e":7,"o":7,"q":7,"\u00f8":7,"\u00e7":7,"\u00e9":7,"\u00ea":7,"\u00eb":7,"\u00e8":7,"\u00f3":7,"\u00f4":7,"\u00f6":7,"\u00f2":7,"\u00f5":7,"v":-24,"w":-24,"y":-24,"\u00fd":-24,"\u00ff":-24,"\u00bb":-18}},"{":{"d":"93,-25v0,-53,16,-110,16,-163v0,-32,-10,-75,-81,-75r0,-51v142,-7,60,-146,65,-241v5,-99,68,-135,166,-131r0,55v-68,-4,-98,26,-97,86v1,49,14,97,15,147v2,67,-32,93,-73,110v45,12,73,45,73,109v0,97,-57,249,82,236r0,55v-97,4,-166,-28,-166,-137","w":284,"k":{"T":-48,"J":-17,"C":12,"G":12,"O":12,"Q":12,"\u00d8":12,"\u00c7":12,"\u00d3":12,"\u00d4":12,"\u00d6":12,"\u00d2":12,"\u00d5":12,"\u011e":12,"V":-50,"W":-50,"X":-11,"Y":-41,"\u00dd":-41,"A":11,"\u00c6":11,"\u00c1":11,"\u00c2":11,"\u00c4":11,"\u00c0":11,"\u00c5":11,"\u00c3":11,"j":-56}},"|":{"d":"86,-750r67,0r0,1000r-67,0r0,-1000","w":239},"}":{"d":"191,-555v0,54,-16,111,-16,167v0,35,10,74,81,74r0,51v-141,10,-61,141,-65,238v-5,109,-69,141,-166,137r0,-55v66,4,98,-25,97,-87v0,-51,-14,-98,-15,-149v-2,-67,32,-94,73,-111v-45,-12,-73,-44,-73,-108v0,-96,59,-245,-82,-233r0,-55v98,-4,165,32,166,131","w":284},"~":{"d":"433,-207v-63,0,-199,-86,-265,-88v-36,0,-58,25,-59,85r-60,0v-3,-100,50,-151,119,-151v64,0,197,87,266,87v36,0,53,-29,54,-84r59,0v5,111,-52,151,-114,151","w":596},"\u00a1":{"d":"163,195r-96,0r14,-477r68,0xm116,-488v35,0,58,26,58,63v0,34,-23,61,-59,61v-35,0,-59,-27,-59,-61v0,-37,25,-63,60,-63","w":230},"\u00a2":{"d":"268,-87v-127,-16,-201,-97,-201,-239v0,-129,79,-227,201,-247r0,-100r63,0r0,98v45,1,85,13,109,25r-20,67v-21,-12,-55,-25,-105,-25v-98,0,-160,80,-160,179v0,110,69,175,157,175v54,0,90,-13,114,-25r15,64v-19,11,-61,26,-110,29r0,100r-63,0r0,-101"},"\u00a3":{"d":"246,-295v13,102,-18,173,-73,222r298,0r0,73r-415,0r0,-50v87,-46,131,-127,109,-245r-103,0r0,-63r93,0v-5,-30,-11,-69,-11,-108v0,-118,81,-195,192,-195v52,0,88,12,109,25r-19,66v-18,-10,-48,-20,-90,-20v-121,0,-119,136,-98,232r144,0r0,63r-136,0"},"\u00a5":{"d":"292,0r-83,0r0,-176r-155,0r0,-49r155,0r0,-73r-155,0r0,-49r131,0r-169,-303r94,0r104,206v16,34,28,61,40,91r3,0v37,-102,100,-202,148,-297r92,0r-179,303r130,0r0,49r-156,0r0,73r156,0r0,49r-156,0r0,176"},"\u00a7":{"d":"131,-350v0,35,26,65,105,94v51,18,91,33,114,48v62,-57,51,-138,-51,-170v-40,-13,-90,-31,-123,-51v-32,23,-45,48,-45,79xm418,-650r-22,57v-25,-16,-65,-32,-119,-32v-59,0,-104,29,-104,74v0,52,50,71,125,96v92,30,162,67,162,157v0,53,-25,91,-64,121v16,15,38,48,38,89v0,165,-238,182,-347,108r24,-57v24,17,73,40,133,40v63,0,111,-29,111,-81v0,-47,-29,-73,-122,-105v-102,-36,-174,-72,-174,-157v0,-38,21,-83,74,-118v-21,-15,-37,-49,-37,-83v0,-88,81,-142,184,-142v56,0,104,14,138,33","w":519},"\u00a4":{"d":"141,-493v55,-53,177,-53,231,-1r71,-75r45,46r-79,71v46,49,44,194,0,240r75,74r-44,44r-69,-76v-61,56,-171,55,-231,2r-67,74r-43,-44r72,-70v-47,-52,-48,-194,2,-244r-76,-71r45,-46xm254,-471v-73,0,-118,63,-118,141v0,97,66,139,118,139v56,0,119,-39,119,-142v0,-70,-41,-138,-119,-138"},"'":{"d":"51,-692r87,0r-17,240r-54,0","w":188,"k":{"T":-17,"J":59,"M":5,"C":3,"G":3,"O":3,"Q":3,"\u00d8":3,"\u00c7":3,"\u00d3":3,"\u00d4":3,"\u00d6":3,"\u00d2":3,"\u00d5":3,"\u011e":3,"V":-17,"W":-17,"Y":-3,"\u00dd":-3,"A":61,"\u00c6":61,"\u00c1":61,"\u00c2":61,"\u00c4":61,"\u00c0":61,"\u00c5":61,"\u00c3":61,"f":-25,"\u00df":-25,"g":10,"\u011f":10,"c":8,"d":8,"e":8,"o":8,"q":8,"\u00f8":8,"\u00e7":8,"\u00e9":8,"\u00ea":8,"\u00eb":8,"\u00e8":8,"\u00f3":8,"\u00f4":8,"\u00f6":8,"\u00f2":8,"\u00f5":8,"t":-24,"v":-21,"w":-21,"y":-21,"\u00fd":-21,"\u00ff":-21,",":113,".":113}},"\u00ab":{"d":"232,-436r-133,184r134,184r-72,0r-132,-184r132,-184r71,0xm396,-436r-133,184r133,184r-71,0r-132,-184r132,-184r71,0","w":419,"k":{"T":34,"J":3,"V":12,"W":12,"Y":35,"\u00dd":35}},"\u00b7":{"d":"102,-200v-34,0,-58,-27,-58,-62v0,-37,25,-63,60,-63v35,0,59,26,59,63v0,35,-24,62,-61,62","w":207},"\u00b6":{"d":"293,49r-62,0r0,-314v-88,2,-193,-58,-197,-190v-3,-104,56,-221,275,-221v53,0,92,3,117,8r0,717r-62,0r0,-665r-71,0r0,665","w":512},"\u00bb":{"d":"157,-252r-133,-184r70,0r133,184r-133,184r-70,0xm320,-252r-134,-184r71,0r133,184r-133,184r-70,0","w":419,"k":{"T":55,"J":17,"C":-11,"G":-11,"O":-11,"Q":-11,"\u00d8":-11,"\u00c7":-11,"\u00d3":-11,"\u00d4":-11,"\u00d6":-11,"\u00d2":-11,"\u00d5":-11,"\u011e":-11,"V":27,"W":27,"X":14,"Y":50,"\u00dd":50,"S":3,"\u015e":3,"g":-12,"\u011f":-12}},"\u00bf":{"d":"238,-488v35,0,58,26,58,63v0,35,-23,62,-59,62v-35,0,-59,-27,-59,-62v0,-37,24,-63,60,-63xm197,-286r77,0v13,75,-2,129,-59,200v-44,54,-70,92,-70,137v0,51,32,86,95,86v36,0,75,-12,102,-31r23,63v-34,23,-90,40,-143,40v-115,0,-167,-71,-167,-147v0,-68,39,-116,87,-174v52,-62,62,-101,55,-174","w":406},"`":{"d":"22,-693r96,0r88,143r-62,0","w":300},"\u00b4":{"d":"189,-693r96,0r-122,143r-62,0","w":300},"\u00af":{"d":"38,-643r225,0r0,57r-225,0r0,-57","w":300},"\u00a8":{"d":"56,-570v-28,0,-49,-24,-49,-51v0,-28,22,-51,51,-51v27,0,48,22,48,51v0,27,-20,51,-50,51xm242,-570v-29,0,-49,-24,-49,-51v0,-28,22,-51,50,-51v28,0,49,22,49,51v0,27,-20,51,-50,51","w":300},"\u00b8":{"d":"135,-3r55,0r-33,53v36,4,70,30,70,69v0,85,-112,97,-173,64r15,-43v32,17,97,26,97,-17v0,-26,-31,-38,-78,-42","w":300},"\u00c6":{"d":"89,0r-90,0r308,-674r422,0r-1,73r-286,0r26,215r251,0r0,72r-240,0r30,241r247,0r-1,73r-321,0r-30,-237r-207,0xm226,-308r168,0r-34,-303r-4,0v-12,32,-28,70,-43,106","w":788,"k":{"T":-16,"J":-18,"V":-9,"W":-9,"Y":-3,"\u00dd":-3,"g":6,"\u011f":6,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"t":3,"u":7,"\u00fa":7,"\u00fb":7,"\u00fc":7,"\u00f9":7,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":-3,",":4,".":4}},"\u00aa":{"d":"304,-266r-59,0v-3,-13,0,-32,-7,-42v-20,24,-55,47,-102,47v-66,0,-103,-43,-103,-96v0,-71,72,-116,201,-113v1,-31,-4,-72,-75,-72v-32,0,-62,9,-85,26r-16,-42v29,-21,71,-33,114,-33v175,2,112,179,132,325xm99,-361v0,87,132,52,136,-11r0,-55v-63,-2,-136,10,-136,66","w":346},"\u00d8":{"d":"112,43r-49,-40r62,-87v-56,-61,-89,-149,-89,-250v0,-283,264,-442,479,-298r59,-81r53,36r-62,86v56,61,87,149,87,248v0,235,-145,354,-307,354v-63,0,-122,-19,-170,-54xm174,-157r298,-412v-34,-29,-76,-47,-127,-47v-214,0,-273,302,-171,459xm513,-516r-295,409v33,31,71,48,126,48v202,3,278,-286,172,-457r-3,0","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"\u00ba":{"d":"180,-591v96,0,157,69,157,163v-1,115,-83,167,-160,167v-89,0,-159,-64,-159,-162v0,-104,75,-168,162,-168xm176,-541v-63,0,-91,63,-91,117v0,65,43,113,93,113v53,0,92,-46,92,-115v0,-50,-27,-115,-94,-115","w":355},"\u00e6":{"d":"734,-233r-325,0v-3,115,64,176,155,176v67,0,106,-15,132,-27r16,62v-38,20,-95,33,-159,33v-83,0,-156,-38,-184,-107r-3,0v-30,67,-96,107,-179,107v-101,0,-151,-68,-151,-138v0,-112,104,-178,291,-175r0,-20v0,-24,-14,-107,-112,-107v-46,0,-95,16,-124,36r-21,-57v43,-28,103,-44,151,-44v89,-2,133,44,158,102v32,-63,92,-102,169,-102v148,0,189,142,189,222v0,15,-1,30,-3,39xm207,-54v102,-2,132,-78,122,-189v-93,-2,-206,14,-206,109v0,51,38,80,84,80xm409,-296r244,0v2,-49,-25,-136,-114,-136v-88,0,-127,81,-130,136","w":773,"k":{"T":33,"x":3,"-":-28,"\u00ad":-28,",":12,".":12}},"\u0131":{"d":"161,0r-88,0r0,-484r88,0r0,484","w":234},"\u00f8":{"d":"38,-239v0,-209,196,-314,361,-221r42,-60r39,27r-43,63v47,45,74,109,74,185v0,177,-123,256,-236,256v-45,0,-88,-11,-123,-34r-44,61r-37,-30r42,-60v-46,-44,-75,-107,-75,-187xm161,-119r198,-280v-22,-19,-50,-29,-85,-29v-153,4,-188,204,-113,309xm389,-361r-198,278v109,78,242,-18,234,-159v-1,-33,-6,-84,-36,-119","w":549,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"\u00df":{"d":"419,-141v0,-96,-132,-139,-132,-236v0,-51,31,-95,90,-123v27,-76,-19,-152,-96,-152v-77,0,-120,54,-120,196r0,456r-88,0r0,-452v0,-114,28,-177,72,-218v103,-95,324,-57,324,118v0,34,-12,65,-24,82v-45,19,-71,47,-71,81v0,34,20,55,51,87v40,40,81,82,81,154v0,94,-68,159,-179,159v-37,0,-77,-6,-106,-21r16,-67v26,13,54,20,84,20v64,0,98,-38,98,-84","w":548,"k":{"T":24,",":11,".":11}},"\u00b9":{"d":"177,-443r-70,0r0,-328v-27,10,-49,24,-74,35r-11,-52r94,-45r61,0r0,390","w":244},"\u00ac":{"d":"40,-399r516,0r0,278r-64,0r0,-218r-452,0r0,-60","w":596},"\u00b5":{"d":"270,-61v74,0,123,-52,123,-127r0,-296r88,0r0,351v0,53,10,74,46,76r-7,64v-61,14,-107,-8,-117,-82r-3,0v-20,38,-67,84,-139,84v-44,0,-85,-16,-106,-53v0,77,-1,181,11,242r-79,0v-10,-30,-14,-101,-14,-179r0,-503r88,0r0,286v0,75,31,137,109,137","w":553,"k":{"-":-5,"\u00ad":-5}},"\u00d0":{"d":"634,-353v0,236,-145,362,-395,360v-63,0,-114,-3,-158,-7r0,-307r-82,0r0,-70r82,0r0,-290v53,-9,116,-15,185,-15v124,0,213,30,272,84v60,55,96,134,96,245xm348,-377r0,70r-180,0r0,240v22,3,54,4,87,4v187,0,287,-103,287,-289v0,-162,-89,-261,-272,-261v-45,0,-79,4,-102,9r0,227r180,0","w":671,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"\u00bd":{"d":"184,-266r-70,0r0,-329v-27,10,-49,24,-74,35r-11,-52r94,-44r61,0r0,390xm175,11r-56,0r379,-672r56,0xm440,0r0,-37v64,-61,202,-173,189,-232v0,-39,-24,-70,-76,-70v-35,0,-65,17,-84,31r-21,-46v27,-22,72,-41,123,-41v94,0,132,59,132,112v0,87,-96,158,-163,228r170,0r0,55r-270,0","w":759},"\u00b1":{"d":"266,-571r64,0r0,194r226,0r0,60r-226,0r0,200r-64,0r0,-200r-226,0r0,-60r226,0r0,-194xm40,-60r516,0r0,60r-516,0r0,-60","w":596},"\u00de":{"d":"258,-550v137,-3,230,62,233,185v4,169,-153,235,-329,209r0,156r-86,0r0,-674r86,0r0,131v27,-5,60,-7,96,-7xm162,-473r0,246v23,5,49,6,75,6v108,0,167,-52,167,-134v0,-87,-63,-126,-154,-126v-40,0,-72,4,-88,8","w":531},"\u00bc":{"d":"198,-266r-70,0r0,-329v-27,10,-49,24,-74,35r-11,-52r94,-44r61,0r0,390xm195,11r-57,0r380,-672r56,0xm663,0r-66,0r0,-103r-200,0r0,-39r193,-253r73,0r0,243r60,0r0,49r-60,0r0,103xm597,-152r0,-118v-2,-23,6,-49,1,-63v-36,69,-89,120,-128,181r127,0","w":759},"\u00f7":{"d":"297,-387v-31,0,-52,-24,-52,-55v0,-33,22,-56,53,-56v32,0,53,23,53,56v0,31,-21,55,-54,55xm556,-237r-516,0r0,-60r516,0r0,60xm297,-36v-31,0,-52,-24,-52,-55v0,-33,22,-56,53,-56v32,0,53,23,53,56v0,31,-21,55,-54,55","w":596},"\u00a6":{"d":"86,-174r67,0r0,350r-67,0r0,-350xm86,-674r67,0r0,350r-67,0r0,-350","w":239},"\u00b0":{"d":"163,-686v82,0,131,62,131,130v0,81,-65,134,-134,134v-78,0,-131,-59,-131,-129v0,-77,59,-135,134,-135xm160,-639v-51,0,-77,45,-77,88v0,46,33,82,78,82v46,0,79,-37,79,-86v0,-37,-22,-84,-80,-84","w":318},"\u00fe":{"d":"73,-669r87,0r0,262r2,0v32,-52,86,-87,165,-87v114,-1,205,96,205,246v0,177,-111,259,-221,259v-66,0,-116,-31,-151,-76r0,263r-87,0r0,-867xm300,-424v-71,-1,-140,59,-140,144r0,89v4,81,66,133,138,133v87,0,145,-73,145,-188v0,-96,-52,-178,-143,-178","w":569},"\u00be":{"d":"66,-582r-17,-47v23,-16,65,-32,114,-32v151,-2,158,150,47,184r0,2v54,8,93,46,93,97v0,62,-56,117,-158,117v-48,0,-92,-13,-115,-28r18,-50v16,11,56,26,93,26v62,0,89,-36,88,-67v-2,-60,-67,-74,-133,-70r0,-46v55,3,118,-8,118,-63v0,-25,-18,-50,-64,-50v-36,0,-68,16,-84,27xm232,11r-57,0r380,-672r56,0xm674,0r-66,0r0,-103r-200,0r0,-39r193,-253r73,0r0,243r60,0r0,49r-60,0r0,103xm608,-152r0,-118v-2,-23,6,-49,1,-63v-36,71,-90,120,-129,181r128,0","w":759},"\u00b2":{"d":"12,-443r0,-37v64,-61,202,-172,189,-232v0,-38,-24,-69,-76,-69v-35,0,-65,17,-84,31r-21,-46v27,-22,72,-41,123,-41v94,0,132,59,132,112v0,86,-96,157,-163,227r170,0r0,55r-270,0","w":311},"\u00ae":{"d":"249,-434v-12,-13,-7,-73,-47,-65r-18,0r0,65r-38,0r0,-164v15,-2,36,-5,63,-5v50,1,68,9,73,48v3,22,-19,31,-34,41v27,0,32,67,41,80r-40,0xm185,-573r0,47v27,1,56,-1,56,-24v5,-22,-35,-29,-56,-23xm211,-683v93,0,167,72,167,164v0,92,-74,165,-168,165v-94,0,-169,-73,-169,-165v0,-92,75,-164,170,-164xm209,-650v-71,0,-126,59,-126,131v0,73,55,131,128,131v71,0,125,-58,125,-130v0,-73,-54,-132,-127,-132","w":419},"\u00f0":{"d":"411,-243v0,-115,-34,-181,-140,-181v-104,0,-143,107,-143,187v0,102,59,182,140,182v87,0,143,-78,143,-188xm331,-606v98,83,170,185,170,354v0,185,-119,263,-234,263v-131,0,-229,-96,-229,-247v0,-156,109,-247,223,-248v38,0,74,7,113,43r2,-3v-29,-47,-67,-90,-118,-129r-142,66r-19,-43r116,-55v-29,-22,-67,-43,-104,-60r39,-55v47,21,97,50,140,81r127,-61r22,44","w":541},"\u00d7":{"d":"40,-482r44,-44r214,219r214,-219r44,44r-215,219r215,219r-44,44r-214,-219r-214,219r-44,-44r214,-219","w":596},"\u00b3":{"d":"45,-759r-17,-48v23,-15,66,-31,115,-31v151,-2,157,150,45,185r0,2v54,8,93,46,93,97v0,61,-56,117,-158,117v-48,0,-92,-13,-115,-28r18,-50v16,10,56,26,93,26v62,0,89,-36,88,-67v-2,-60,-67,-74,-133,-71r0,-46v56,3,119,-7,119,-63v0,-25,-18,-50,-63,-50v-36,0,-69,16,-85,27","w":305},"\u00a9":{"d":"341,-648v168,0,300,138,300,308v0,172,-132,310,-301,310v-170,0,-304,-138,-304,-310v0,-170,134,-308,305,-308xm339,-607v-143,0,-253,118,-253,270v0,149,110,266,254,266v141,0,251,-117,251,-269v0,-149,-110,-267,-252,-267xm474,-493r-12,39v-13,-7,-50,-23,-97,-23v-94,0,-140,60,-140,140v0,78,49,141,141,141v40,0,78,-11,101,-26r12,38v-35,23,-81,31,-123,31v-116,0,-183,-80,-183,-181v0,-114,90,-186,191,-186v52,0,96,15,110,27","w":677},"\u00c1":{"d":"424,-212r-239,0r-70,212r-90,0r230,-674r104,0r230,674r-93,0xm203,-280r204,0r-67,-194v-17,-43,-22,-88,-37,-123v-25,109,-66,214,-100,317xm348,-827r106,0r-128,117r-71,0","w":612,"k":{"T":77,"J":-19,"M":4,"C":15,"G":15,"O":15,"Q":15,"\u00d8":15,"\u00c7":15,"\u00d3":15,"\u00d4":15,"\u00d6":15,"\u00d2":15,"\u00d5":15,"\u011e":15,"U":28,"\u00da":28,"\u00db":28,"\u00dc":28,"\u00d9":28,"V":53,"W":53,"X":14,"Y":79,"\u00dd":79,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"f":7,"\u00df":7,"g":12,"\u011f":12,"b":3,"h":3,"k":3,"l":3,"j":4,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"s":6,"\u015f":6,"t":10,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"z":-14,"-":3,"\u00ad":3,")":9,"]":9,"}":9,"\"":59,"'":59}},"\u00c2":{"d":"424,-212r-239,0r-70,212r-90,0r230,-674r104,0r230,674r-93,0xm203,-280r204,0r-67,-194v-17,-43,-22,-88,-37,-123v-25,109,-66,214,-100,317xm276,-824r67,0r105,114r-74,0v-22,-22,-40,-49,-65,-69r-64,69r-71,0","w":612,"k":{"T":77,"J":-19,"M":4,"C":15,"G":15,"O":15,"Q":15,"\u00d8":15,"\u00c7":15,"\u00d3":15,"\u00d4":15,"\u00d6":15,"\u00d2":15,"\u00d5":15,"\u011e":15,"U":28,"\u00da":28,"\u00db":28,"\u00dc":28,"\u00d9":28,"V":53,"W":53,"X":14,"Y":79,"\u00dd":79,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"f":7,"\u00df":7,"g":12,"\u011f":12,"b":3,"h":3,"k":3,"l":3,"j":4,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"s":6,"\u015f":6,"t":10,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"z":-14,"-":3,"\u00ad":3,")":9,"]":9,"}":9,"\"":59,"'":59}},"\u00c4":{"d":"424,-212r-239,0r-70,212r-90,0r230,-674r104,0r230,674r-93,0xm203,-280r204,0r-67,-194v-17,-43,-22,-88,-37,-123v-25,109,-66,214,-100,317xm216,-719v-28,0,-48,-23,-48,-51v0,-27,21,-50,49,-50v28,0,48,22,48,50v0,28,-19,51,-49,51xm402,-719v-28,0,-48,-23,-48,-51v0,-27,21,-50,50,-50v28,0,48,22,48,50v0,28,-19,51,-50,51","w":612,"k":{"T":77,"J":-19,"M":4,"C":15,"G":15,"O":15,"Q":15,"\u00d8":15,"\u00c7":15,"\u00d3":15,"\u00d4":15,"\u00d6":15,"\u00d2":15,"\u00d5":15,"\u011e":15,"U":28,"\u00da":28,"\u00db":28,"\u00dc":28,"\u00d9":28,"V":53,"W":53,"X":14,"Y":79,"\u00dd":79,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"f":7,"\u00df":7,"g":12,"\u011f":12,"b":3,"h":3,"k":3,"l":3,"j":4,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"s":6,"\u015f":6,"t":10,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"z":-14,"-":3,"\u00ad":3,")":9,"]":9,"}":9,"\"":59,"'":59}},"\u00c0":{"d":"424,-212r-239,0r-70,212r-90,0r230,-674r104,0r230,674r-93,0xm203,-280r204,0r-67,-194v-17,-43,-22,-88,-37,-123v-25,109,-66,214,-100,317xm161,-827r106,0r93,116r-71,0","w":612,"k":{"T":77,"J":-19,"M":4,"C":15,"G":15,"O":15,"Q":15,"\u00d8":15,"\u00c7":15,"\u00d3":15,"\u00d4":15,"\u00d6":15,"\u00d2":15,"\u00d5":15,"\u011e":15,"U":28,"\u00da":28,"\u00db":28,"\u00dc":28,"\u00d9":28,"V":53,"W":53,"X":14,"Y":79,"\u00dd":79,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"f":7,"\u00df":7,"g":12,"\u011f":12,"b":3,"h":3,"k":3,"l":3,"j":4,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"s":6,"\u015f":6,"t":10,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"z":-14,"-":3,"\u00ad":3,")":9,"]":9,"}":9,"\"":59,"'":59}},"\u00c5":{"d":"424,-212r-239,0r-70,212r-90,0r230,-674r104,0r230,674r-93,0xm203,-280r204,0r-67,-194v-17,-43,-22,-88,-37,-123v-25,109,-66,214,-100,317xm309,-878v60,0,98,40,98,91v0,50,-41,88,-99,88v-60,0,-100,-39,-100,-88v0,-50,38,-91,101,-91xm306,-842v-30,0,-47,26,-47,55v0,26,19,51,48,51v29,0,48,-23,48,-53v0,-29,-19,-53,-49,-53","w":612,"k":{"T":77,"J":-19,"M":4,"C":15,"G":15,"O":15,"Q":15,"\u00d8":15,"\u00c7":15,"\u00d3":15,"\u00d4":15,"\u00d6":15,"\u00d2":15,"\u00d5":15,"\u011e":15,"U":28,"\u00da":28,"\u00db":28,"\u00dc":28,"\u00d9":28,"V":53,"W":53,"X":14,"Y":79,"\u00dd":79,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"f":7,"\u00df":7,"g":12,"\u011f":12,"b":3,"h":3,"k":3,"l":3,"j":4,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"s":6,"\u015f":6,"t":10,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"z":-14,"-":3,"\u00ad":3,")":9,"]":9,"}":9,"\"":59,"'":59}},"\u00c3":{"d":"424,-212r-239,0r-70,212r-90,0r230,-674r104,0r230,674r-93,0xm203,-280r204,0r-67,-194v-17,-43,-22,-88,-37,-123v-25,109,-66,214,-100,317xm367,-721v-51,0,-126,-90,-135,6r-47,0v-1,-61,25,-102,68,-102v38,0,72,36,108,38v15,0,24,-7,27,-39r46,0v1,63,-21,97,-67,97","w":612,"k":{"T":77,"J":-19,"M":4,"C":15,"G":15,"O":15,"Q":15,"\u00d8":15,"\u00c7":15,"\u00d3":15,"\u00d4":15,"\u00d6":15,"\u00d2":15,"\u00d5":15,"\u011e":15,"U":28,"\u00da":28,"\u00db":28,"\u00dc":28,"\u00d9":28,"V":53,"W":53,"X":14,"Y":79,"\u00dd":79,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"f":7,"\u00df":7,"g":12,"\u011f":12,"b":3,"h":3,"k":3,"l":3,"j":4,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":12,"d":12,"e":12,"o":12,"q":12,"\u00f8":12,"\u00e7":12,"\u00e9":12,"\u00ea":12,"\u00eb":12,"\u00e8":12,"\u00f3":12,"\u00f4":12,"\u00f6":12,"\u00f2":12,"\u00f5":12,"s":6,"\u015f":6,"t":10,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"z":-14,"-":3,"\u00ad":3,")":9,"]":9,"}":9,"\"":59,"'":59}},"\u00c7":{"d":"530,-91r17,69v-30,16,-92,31,-175,32r-25,40v38,7,70,34,70,74v1,86,-113,96,-174,64r14,-45v27,17,98,26,98,-17v0,-26,-31,-37,-78,-43r42,-76v-165,-19,-283,-135,-283,-338v0,-212,143,-354,353,-354v83,0,137,18,159,30r-21,71v-33,-16,-80,-28,-136,-28v-158,0,-263,101,-263,278v0,166,95,271,259,271v53,0,107,-11,143,-28","w":585,"k":{"T":-28,"J":-4,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"V":-12,"W":-12,"Y":-3,"\u00dd":-3,"A":-4,"\u00c6":-4,"\u00c1":-4,"\u00c2":-4,"\u00c4":-4,"\u00c0":-4,"\u00c5":-4,"\u00c3":-4,"a":7,"\u00e6":7,"\u00e1":7,"\u00e2":7,"\u00e4":7,"\u00e0":7,"\u00e5":7,"\u00e3":7,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":20,"w":20,"y":20,"\u00fd":20,"\u00ff":20,"z":-4,"\u00ab":12,")":-17,"]":-17,"}":-17}},"\u00c9":{"d":"424,-388r0,72r-261,0r0,243r292,0r0,73r-380,0r0,-674r365,0r0,73r-277,0r0,213r261,0xm302,-827r106,0r-128,117r-71,0","w":492,"k":{"T":-16,"J":-18,"V":-9,"W":-9,"Y":-3,"\u00dd":-3,"g":6,"\u011f":6,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"t":3,"u":7,"\u00fa":7,"\u00fb":7,"\u00fc":7,"\u00f9":7,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":-3,",":4,".":4}},"\u00ca":{"d":"424,-388r0,72r-261,0r0,243r292,0r0,73r-380,0r0,-674r365,0r0,73r-277,0r0,213r261,0xm223,-824r67,0r105,114r-74,0v-22,-22,-40,-49,-65,-69r-64,69r-71,0","w":492,"k":{"T":-16,"J":-18,"V":-9,"W":-9,"Y":-3,"\u00dd":-3,"g":6,"\u011f":6,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"t":3,"u":7,"\u00fa":7,"\u00fb":7,"\u00fc":7,"\u00f9":7,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":-3,",":4,".":4}},"\u00cb":{"d":"425,-388r0,72r-262,0r0,243r293,0r0,73r-381,0r0,-674r365,0r0,73r-277,0r0,213r262,0xm162,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,49,-50v28,0,48,22,48,50v0,28,-19,51,-49,51xm347,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,50,-50v28,0,48,22,48,50v0,28,-19,51,-50,51","w":492,"k":{"T":-16,"J":-18,"V":-9,"W":-9,"Y":-3,"\u00dd":-3,"g":6,"\u011f":6,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"t":3,"u":7,"\u00fa":7,"\u00fb":7,"\u00fc":7,"\u00f9":7,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":-3,",":4,".":4}},"\u00c8":{"d":"424,-388r0,72r-261,0r0,243r292,0r0,73r-380,0r0,-674r365,0r0,73r-277,0r0,213r261,0xm119,-827r106,0r93,116r-71,0","w":492,"k":{"T":-16,"J":-18,"V":-9,"W":-9,"Y":-3,"\u00dd":-3,"g":6,"\u011f":6,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"t":3,"u":7,"\u00fa":7,"\u00fb":7,"\u00fc":7,"\u00f9":7,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":-3,",":4,".":4}},"\u00cd":{"d":"75,-674r88,0r0,674r-88,0r0,-674xm160,-827r106,0r-128,117r-71,0","w":239,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"\u00ce":{"d":"75,-674r88,0r0,674r-88,0r0,-674xm85,-824r67,0r105,114r-74,0v-22,-22,-40,-49,-65,-69r-64,69r-71,0","w":239,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"\u00cf":{"d":"75,-674r88,0r0,674r-88,0r0,-674xm27,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,49,-50v28,0,48,22,48,50v0,28,-19,51,-49,51xm212,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,50,-50v28,0,48,22,48,50v0,28,-19,51,-50,51","w":239,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"\u00cc":{"d":"75,-674r88,0r0,674r-88,0r0,-674xm-25,-827r106,0r93,116r-71,0","w":239,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"\u00d1":{"d":"158,0r-82,0r0,-674r96,0r215,341v49,79,89,150,120,219r3,-1v-15,-169,-8,-372,-10,-559r82,0r0,674r-88,0r-214,-342v-47,-75,-92,-152,-125,-225r-3,1v5,85,6,166,6,278r0,288xm391,-721v-50,0,-126,-90,-134,6r-47,0v-1,-61,25,-102,68,-102v38,0,71,37,107,38v15,0,24,-7,27,-39r46,0v1,63,-21,97,-67,97","w":658,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"\u00d3":{"d":"348,-686v185,0,304,141,304,342v0,231,-141,355,-313,355v-179,0,-303,-139,-303,-343v0,-214,132,-354,312,-354xm345,-615v-145,0,-217,134,-217,281v0,145,78,274,216,274v138,0,216,-127,216,-280v0,-135,-70,-275,-215,-275xm384,-829r106,0r-128,117r-71,0","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"\u00d4":{"d":"348,-686v185,0,304,141,304,342v0,231,-141,355,-313,355v-179,0,-303,-139,-303,-343v0,-214,132,-354,312,-354xm345,-615v-145,0,-217,134,-217,281v0,145,78,274,216,274v138,0,216,-127,216,-280v0,-135,-70,-275,-215,-275xm309,-827r67,0r105,114r-74,0v-22,-22,-40,-49,-65,-69r-64,69r-71,0","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"\u00d6":{"d":"348,-686v185,0,304,141,304,342v0,231,-141,355,-313,355v-179,0,-303,-139,-303,-343v0,-214,132,-354,312,-354xm345,-615v-145,0,-217,134,-217,281v0,145,78,274,216,274v138,0,216,-127,216,-280v0,-135,-70,-275,-215,-275xm251,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,49,-50v28,0,48,22,48,50v0,28,-19,51,-49,51xm436,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,50,-50v28,0,48,22,48,50v0,28,-19,51,-50,51","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"\u00d2":{"d":"348,-686v185,0,304,141,304,342v0,231,-141,355,-313,355v-179,0,-303,-139,-303,-343v0,-214,132,-354,312,-354xm345,-615v-145,0,-217,134,-217,281v0,145,78,274,216,274v138,0,216,-127,216,-280v0,-135,-70,-275,-215,-275xm199,-829r106,0r93,116r-71,0","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"\u00d5":{"d":"348,-686v185,0,304,141,304,342v0,231,-141,355,-313,355v-179,0,-303,-139,-303,-343v0,-214,132,-354,312,-354xm345,-615v-145,0,-217,134,-217,281v0,145,78,274,216,274v138,0,216,-127,216,-280v0,-135,-70,-275,-215,-275xm401,-723v-50,0,-125,-89,-134,5r-47,0v-1,-60,25,-101,68,-101v38,0,71,37,107,38v15,0,24,-7,27,-39r46,0v1,63,-21,97,-67,97","w":689,"k":{"T":25,"X":27,"Y":28,"\u00dd":28,"A":14,"\u00c6":14,"\u00c1":14,"\u00c2":14,"\u00c4":14,"\u00c0":14,"\u00c5":14,"\u00c3":14,"f":-16,"\u00df":-16,"g":-6,"\u011f":-6,"j":-5,"c":-4,"d":-4,"e":-4,"o":-4,"q":-4,"\u00f8":-4,"\u00e7":-4,"\u00e9":-4,"\u00ea":-4,"\u00eb":-4,"\u00e8":-4,"\u00f3":-4,"\u00f4":-4,"\u00f6":-4,"\u00f2":-4,"\u00f5":-4,"t":-17,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":-14,"w":-14,"y":-14,"\u00fd":-14,"\u00ff":-14,"z":3,"x":5,"\u00ab":-13,"-":-14,"\u00ad":-14,")":7,"]":7,"}":7,",":34,".":34}},"\u00da":{"d":"75,-674r88,0r0,400v0,150,67,214,157,214v99,0,164,-66,164,-214r0,-400r88,0r0,394v0,207,-109,291,-255,291v-138,0,-242,-78,-242,-288r0,-397xm367,-827r106,0r-128,117r-71,0","w":647,"k":{"A":34,"\u00c6":34,"\u00c1":34,"\u00c2":34,"\u00c4":34,"\u00c0":34,"\u00c5":34,"\u00c3":34,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"f":-7,"\u00df":-7,"s":6,"\u015f":6,"t":-4,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"z":5,"x":7,",":27,".":27}},"\u00db":{"d":"75,-674r88,0r0,400v0,150,67,214,157,214v99,0,164,-66,164,-214r0,-400r88,0r0,394v0,207,-109,291,-255,291v-138,0,-242,-78,-242,-288r0,-397xm295,-824r67,0r105,114r-74,0v-22,-22,-40,-49,-65,-69r-64,69r-71,0","w":647,"k":{"A":34,"\u00c6":34,"\u00c1":34,"\u00c2":34,"\u00c4":34,"\u00c0":34,"\u00c5":34,"\u00c3":34,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"f":-7,"\u00df":-7,"s":6,"\u015f":6,"t":-4,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"z":5,"x":7,",":27,".":27}},"\u00dc":{"d":"75,-674r88,0r0,400v0,150,67,214,157,214v99,0,164,-66,164,-214r0,-400r88,0r0,394v0,207,-109,291,-255,291v-138,0,-242,-78,-242,-288r0,-397xm232,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,49,-50v28,0,48,22,48,50v0,28,-19,51,-49,51xm418,-721v-28,0,-48,-23,-48,-51v0,-27,21,-50,50,-50v28,0,48,22,48,50v0,28,-19,51,-50,51","w":647,"k":{"A":34,"\u00c6":34,"\u00c1":34,"\u00c2":34,"\u00c4":34,"\u00c0":34,"\u00c5":34,"\u00c3":34,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"f":-7,"\u00df":-7,"s":6,"\u015f":6,"t":-4,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"z":5,"x":7,",":27,".":27}},"\u00d9":{"d":"75,-674r88,0r0,400v0,150,67,214,157,214v99,0,164,-66,164,-214r0,-400r88,0r0,394v0,207,-109,291,-255,291v-138,0,-242,-78,-242,-288r0,-397xm183,-827r106,0r93,116r-71,0","w":647,"k":{"A":34,"\u00c6":34,"\u00c1":34,"\u00c2":34,"\u00c4":34,"\u00c0":34,"\u00c5":34,"\u00c3":34,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"f":-7,"\u00df":-7,"s":6,"\u015f":6,"t":-4,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"z":5,"x":7,",":27,".":27}},"\u00dd":{"d":"314,0r-88,0r0,-286r-214,-388r100,0r95,186v25,51,46,92,67,139r2,0v46,-105,112,-221,165,-325r98,0r-225,387r0,287xm320,-822r106,0r-128,117r-71,0","w":541,"k":{"\u00f6":76,"\u00ef":13,"\u00eb":76,"\u00e4":70,"T":-34,"J":54,"M":10,"C":36,"G":36,"O":36,"Q":36,"\u00d8":36,"\u00c7":36,"\u00d3":36,"\u00d4":36,"\u00d6":36,"\u00d2":36,"\u00d5":36,"\u011e":36,"V":-29,"W":-29,"X":3,"Y":-3,"\u00dd":-3,"A":81,"\u00c6":81,"\u00c1":81,"\u00c2":81,"\u00c4":81,"\u00c0":81,"\u00c5":81,"\u00c3":81,"S":13,"\u015e":13,"B":7,"D":7,"E":7,"F":7,"H":7,"I":7,"K":7,"L":7,"N":7,"P":7,"R":7,"\u00d0":7,"\u00c9":7,"\u00ca":7,"\u00cb":7,"\u00c8":7,"\u00cd":7,"\u00ce":7,"\u00cf":7,"\u00cc":7,"\u00d1":7,"\u0130":7,"a":70,"\u00e6":70,"\u00e1":70,"\u00e2":70,"\u00e0":70,"\u00e5":70,"\u00e3":70,"g":40,"\u011f":40,"b":9,"h":9,"k":9,"l":9,"i":13,"m":13,"n":13,"p":13,"r":13,"\u0131":13,"\u00ed":13,"\u00ee":13,"\u00ec":13,"\u00f1":13,"c":76,"d":76,"e":76,"o":76,"q":76,"\u00f8":76,"\u00e7":76,"\u00e9":76,"\u00ea":76,"\u00e8":76,"\u00f3":76,"\u00f4":76,"\u00f2":76,"\u00f5":76,"s":52,"\u015f":52,"t":19,"u":53,"\u00fa":53,"\u00fb":53,"\u00fc":53,"\u00f9":53,"v":29,"w":29,"y":29,"\u00fd":29,"\u00ff":29,"z":25,"x":26,":":33,";":33,"\u00bb":20,"\u00ab":49,"-":51,"\u00ad":51,")":-56,"]":-56,"}":-56,"\"":-8,"'":-8,",":95,".":95}},"\u00e1":{"d":"229,-494v266,0,156,268,191,494r-79,0r-7,-61r-3,0v-27,38,-79,72,-148,72v-98,0,-148,-69,-148,-139v0,-117,104,-181,291,-180v1,-52,-6,-121,-110,-121v-46,0,-93,13,-127,36r-20,-59v40,-25,99,-42,160,-42xm205,-54v74,0,123,-44,123,-109r0,-84v-96,-2,-205,15,-205,109v0,58,38,84,82,84xm275,-693r97,0r-122,143r-62,0","w":482},"\u00e2":{"d":"229,-494v266,0,156,268,191,494r-79,0r-7,-61r-3,0v-27,38,-79,72,-148,72v-98,0,-148,-69,-148,-139v0,-117,104,-181,291,-180v1,-52,-6,-121,-110,-121v-46,0,-93,13,-127,36r-20,-59v40,-25,99,-42,160,-42xm205,-54v74,0,123,-44,123,-109r0,-84v-96,-2,-205,15,-205,109v0,58,38,84,82,84xm205,-693r61,0r96,143r-67,0v-21,-30,-37,-66,-60,-94r-58,94r-66,0","w":482},"\u00e4":{"d":"229,-494v266,0,156,268,191,494r-79,0r-7,-61r-3,0v-27,38,-79,72,-148,72v-98,0,-148,-69,-148,-139v0,-117,104,-181,291,-180v1,-52,-6,-121,-110,-121v-46,0,-93,13,-127,36r-20,-59v40,-25,99,-42,160,-42xm205,-54v74,0,123,-44,123,-109r0,-84v-96,-2,-205,15,-205,109v0,58,38,84,82,84xm148,-570v-28,0,-49,-24,-49,-51v0,-28,22,-51,51,-51v27,0,48,22,48,51v0,27,-20,51,-50,51xm333,-570v-29,0,-49,-24,-49,-51v0,-28,22,-51,50,-51v28,0,49,22,49,51v0,27,-20,51,-50,51","w":482},"\u00e0":{"d":"229,-494v266,0,156,268,191,494r-79,0r-7,-61r-3,0v-27,38,-79,72,-148,72v-98,0,-148,-69,-148,-139v0,-117,104,-181,291,-180v1,-52,-6,-121,-110,-121v-46,0,-93,13,-127,36r-20,-59v40,-25,99,-42,160,-42xm205,-54v74,0,123,-44,123,-109r0,-84v-96,-2,-205,15,-205,109v0,58,38,84,82,84xm95,-693r96,0r88,143r-62,0","w":482},"\u00e5":{"d":"229,-494v266,0,156,268,191,494r-79,0r-7,-61r-3,0v-27,38,-79,72,-148,72v-98,0,-148,-69,-148,-139v0,-117,104,-181,291,-180v1,-52,-6,-121,-110,-121v-46,0,-93,13,-127,36r-20,-59v40,-25,99,-42,160,-42xm205,-54v73,0,123,-44,123,-109r0,-84v-96,-2,-205,15,-205,109v0,58,38,84,82,84xm240,-537v-59,0,-101,-40,-101,-91v0,-53,40,-94,102,-94v60,0,99,40,99,94v0,52,-43,91,-100,91xm240,-574v31,0,51,-25,51,-55v0,-31,-20,-56,-52,-56v-31,0,-49,26,-49,57v0,27,20,54,50,54","w":482},"\u00e3":{"d":"229,-494v266,0,156,268,191,494r-79,0r-7,-61r-3,0v-27,38,-79,72,-148,72v-98,0,-148,-69,-148,-139v0,-117,104,-181,291,-180v1,-52,-6,-121,-110,-121v-46,0,-93,13,-127,36r-20,-59v40,-25,99,-42,160,-42xm205,-54v74,0,123,-44,123,-109r0,-84v-96,-2,-205,15,-205,109v0,58,38,84,82,84xm294,-573v-50,0,-124,-92,-131,6r-48,0v-2,-65,25,-104,68,-104v34,0,73,39,104,39v16,0,26,-9,28,-42r47,0v1,66,-21,101,-68,101","w":482},"\u00e7":{"d":"403,-84r15,66v-20,10,-66,27,-126,28r-25,40v37,7,70,32,70,73v1,87,-109,99,-174,66r15,-45v28,17,98,27,98,-18v0,-26,-31,-37,-78,-42r42,-77v-123,-15,-202,-110,-202,-244v0,-148,102,-257,260,-257v52,0,98,13,122,26r-20,67v-21,-11,-54,-23,-102,-23v-111,0,-171,82,-171,183v0,111,72,180,168,180v50,0,84,-12,108,-23","w":447,"k":{"T":12,"f":-3,"\u00df":-3,"c":6,"d":6,"e":6,"o":6,"q":6,"\u00f8":6,"\u00e7":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"t":-13,"v":-18,"w":-18,"y":-18,"\u00fd":-18,"\u00ff":-18,"\u00bb":-14,"-":-5,"\u00ad":-5,",":10,".":10}},"\u00e9":{"d":"462,-226r-340,0v2,119,77,168,166,168v63,0,102,-11,134,-25r16,63v-31,14,-85,31,-162,31v-149,0,-238,-99,-238,-245v0,-146,86,-260,227,-260v175,0,210,147,197,268xm123,-289r257,0v1,-55,-23,-142,-122,-142v-90,0,-128,81,-135,142xm304,-693r96,0r-122,143r-62,0","w":501,"k":{"T":33,"x":3,"-":-28,"\u00ad":-28,",":12,".":12}},"\u00ea":{"d":"462,-226r-340,0v2,119,77,168,166,168v63,0,102,-11,134,-25r16,63v-31,14,-85,31,-162,31v-149,0,-238,-99,-238,-245v0,-146,86,-260,227,-260v175,0,210,147,197,268xm123,-289r257,0v1,-55,-23,-142,-122,-142v-90,0,-128,81,-135,142xm231,-693r61,0r96,143r-67,0v-21,-30,-37,-66,-60,-94r-58,94r-66,0","w":501,"k":{"T":33,"x":3,"-":-28,"\u00ad":-28,",":12,".":12}},"\u00eb":{"d":"462,-226r-340,0v2,119,77,168,166,168v63,0,102,-11,134,-25r16,63v-31,14,-85,31,-162,31v-149,0,-238,-99,-238,-245v0,-146,86,-260,227,-260v175,0,210,147,197,268xm123,-289r257,0v1,-55,-23,-142,-122,-142v-90,0,-128,81,-135,142xm175,-570v-28,0,-49,-24,-49,-51v0,-28,22,-51,51,-51v27,0,48,22,48,51v0,27,-20,51,-50,51xm360,-570v-29,0,-49,-24,-49,-51v0,-28,22,-51,50,-51v28,0,49,22,49,51v0,27,-20,51,-50,51","w":501,"k":{"T":33,"x":3,"-":-28,"\u00ad":-28,",":12,".":12}},"\u00e8":{"d":"462,-226r-340,0v2,119,77,168,166,168v63,0,102,-11,134,-25r16,63v-31,14,-85,31,-162,31v-149,0,-238,-99,-238,-245v0,-146,86,-260,227,-260v175,0,210,147,197,268xm123,-289r257,0v1,-55,-23,-142,-122,-142v-90,0,-128,81,-135,142xm135,-693r96,0r88,143r-62,0","w":501,"k":{"T":33,"x":3,"-":-28,"\u00ad":-28,",":12,".":12}},"\u00ed":{"d":"161,0r-88,0r0,-484r88,0r0,484xm156,-693r96,0r-122,143r-62,0","w":234},"\u00ee":{"d":"161,0r-88,0r0,-484r88,0r0,484xm86,-693r61,0r96,143r-67,0v-21,-30,-37,-66,-60,-94r-58,94r-66,0","w":234},"\u00ef":{"d":"161,0r-88,0r0,-484r88,0r0,484xm24,-570v-28,0,-49,-24,-49,-51v0,-28,22,-51,51,-51v27,0,48,22,48,51v0,27,-20,51,-50,51xm209,-570v-29,0,-49,-24,-49,-51v0,-28,22,-51,50,-51v28,0,49,22,49,51v0,27,-20,51,-50,51","w":234},"\u00ec":{"d":"161,0r-88,0r0,-484r88,0r0,484xm-27,-693r96,0r88,143r-62,0","w":234},"\u00f1":{"d":"285,-422v-70,0,-124,53,-124,131r0,291r-88,0r0,-353v0,-51,-1,-91,-4,-131r78,0v4,25,0,58,7,80v24,-45,80,-90,160,-90v67,0,171,40,171,206r0,288r-88,0r0,-279v0,-78,-29,-143,-112,-143xm333,-573v-50,0,-123,-91,-130,6r-48,0v-2,-65,25,-104,68,-104v34,0,72,39,104,39v15,0,25,-9,27,-42r47,0v1,66,-21,101,-68,101","w":555,"k":{"T":50,"t":4,"v":13,"w":13,"y":13,"\u00fd":13,"\u00ff":13,"\"":7,"'":7}},"\u00f3":{"d":"278,-494v139,0,233,101,233,248v0,179,-125,257,-241,257v-130,0,-232,-96,-232,-249v0,-161,107,-256,240,-256xm276,-428v-103,0,-148,96,-148,187v0,106,60,186,146,186v84,0,147,-79,147,-188v0,-82,-41,-185,-145,-185xm309,-693r97,0r-122,143r-62,0","w":549,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"\u00f4":{"d":"278,-494v139,0,233,101,233,248v0,179,-125,257,-241,257v-130,0,-232,-96,-232,-249v0,-161,107,-256,240,-256xm276,-428v-103,0,-148,96,-148,187v0,106,60,186,146,186v84,0,147,-79,147,-188v0,-82,-41,-185,-145,-185xm243,-693r61,0r96,143r-67,0v-21,-30,-37,-66,-61,-94r-57,94r-66,0","w":549,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"\u00f6":{"d":"278,-494v139,0,233,101,233,248v0,179,-125,257,-241,257v-130,0,-232,-96,-232,-249v0,-161,107,-256,240,-256xm276,-428v-103,0,-148,96,-148,187v0,106,60,186,146,186v84,0,147,-79,147,-188v0,-82,-41,-185,-145,-185xm181,-570v-28,0,-49,-24,-49,-51v0,-28,22,-51,51,-51v27,0,48,22,48,51v0,27,-20,51,-50,51xm366,-570v-29,0,-49,-24,-49,-51v0,-28,22,-51,50,-51v28,0,49,22,49,51v0,27,-20,51,-50,51","w":549,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"\u00f2":{"d":"278,-494v139,0,233,101,233,248v0,179,-125,257,-241,257v-130,0,-232,-96,-232,-249v0,-161,107,-256,240,-256xm276,-428v-103,0,-148,96,-148,187v0,106,60,186,146,186v84,0,147,-79,147,-188v0,-82,-41,-185,-145,-185xm145,-693r96,0r88,143r-62,0","w":549,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"\u00f5":{"d":"278,-494v139,0,233,101,233,248v0,179,-125,257,-241,257v-130,0,-232,-96,-232,-249v0,-161,107,-256,240,-256xm276,-428v-103,0,-148,96,-148,187v0,106,60,186,146,186v84,0,147,-79,147,-188v0,-82,-41,-185,-145,-185xm330,-573v-50,0,-124,-92,-131,6r-48,0v-2,-65,25,-104,68,-104v34,0,73,39,105,39v15,0,25,-9,27,-42r47,0v1,66,-21,101,-68,101","w":549,"k":{"T":40,"v":7,"w":7,"y":7,"\u00fd":7,"\u00ff":7,"z":7,"x":14,"-":-15,"\u00ad":-15,")":3,"]":3,"}":3,"\"":11,"'":11,",":24,".":24}},"\u00fa":{"d":"266,-62v75,0,124,-51,124,-126r0,-296r88,0r0,351v0,51,1,95,4,133r-78,0v-4,-25,0,-58,-7,-79v-22,39,-74,90,-160,90v-76,0,-167,-43,-167,-212r0,-283r88,0r0,267v0,92,29,155,108,155xm321,-693r96,0r-122,143r-62,0","w":551,"k":{"T":31,",":8,".":8}},"\u00fb":{"d":"266,-62v75,0,124,-51,124,-126r0,-296r88,0r0,351v0,51,1,95,4,133r-78,0v-4,-25,0,-58,-7,-79v-22,39,-74,90,-160,90v-76,0,-167,-43,-167,-212r0,-283r88,0r0,267v0,92,29,155,108,155xm244,-693r61,0r96,143r-67,0v-21,-30,-37,-66,-60,-94r-58,94r-66,0","w":551,"k":{"T":31,",":8,".":8}},"\u00fc":{"d":"266,-62v75,0,124,-51,124,-126r0,-296r88,0r0,351v0,51,1,95,4,133r-78,0v-4,-25,0,-58,-7,-79v-22,39,-74,90,-160,90v-76,0,-167,-43,-167,-212r0,-283r88,0r0,267v0,92,29,155,108,155xm185,-570v-28,0,-49,-24,-49,-51v0,-28,22,-51,51,-51v27,0,48,22,48,51v0,27,-20,51,-50,51xm370,-570v-29,0,-49,-24,-49,-51v0,-28,22,-51,50,-51v28,0,49,22,49,51v0,27,-20,51,-50,51","w":551,"k":{"T":31,",":8,".":8}},"\u00f9":{"d":"266,-62v75,0,124,-51,124,-126r0,-296r88,0r0,351v0,51,1,95,4,133r-78,0v-4,-25,0,-58,-7,-79v-22,39,-74,90,-160,90v-76,0,-167,-43,-167,-212r0,-283r88,0r0,267v0,92,29,155,108,155xm140,-693r96,0r88,143r-62,0","w":551,"k":{"T":31,",":8,".":8}},"\u00fd":{"d":"36,147v69,-24,130,-77,158,-162v0,-5,-2,-12,-7,-23r-178,-446r96,0r105,286v14,31,21,74,34,99v9,-29,19,-66,31,-101r96,-284r93,0v-81,193,-181,547,-298,648v-44,37,-86,52,-108,56xm285,-693r97,0r-122,143r-62,0","w":471,"k":{"T":30,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"g":10,"\u011f":10,"c":10,"d":10,"e":10,"o":10,"q":10,"\u00f8":10,"\u00e7":10,"\u00e9":10,"\u00ea":10,"\u00eb":10,"\u00e8":10,"\u00f3":10,"\u00f4":10,"\u00f6":10,"\u00f2":10,"\u00f5":10,"s":6,"\u015f":6,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,":":-24,";":-24,"-":4,"\u00ad":4,",":39,".":39}},"\u00ff":{"d":"36,147v69,-24,130,-77,158,-162v0,-5,-2,-12,-7,-23r-178,-446r96,0r105,286v14,31,21,74,34,99v9,-29,19,-66,31,-101r96,-284r93,0v-81,193,-181,547,-298,648v-44,37,-86,52,-108,56xm154,-570v-28,0,-49,-24,-49,-51v0,-28,22,-51,51,-51v27,0,48,22,48,51v0,27,-20,51,-50,51xm339,-570v-29,0,-49,-24,-49,-51v0,-28,22,-51,50,-51v28,0,49,22,49,51v0,27,-20,51,-50,51","w":471,"k":{"T":30,"a":4,"\u00e6":4,"\u00e1":4,"\u00e2":4,"\u00e4":4,"\u00e0":4,"\u00e5":4,"\u00e3":4,"g":10,"\u011f":10,"c":10,"d":10,"e":10,"o":10,"q":10,"\u00f8":10,"\u00e7":10,"\u00e9":10,"\u00ea":10,"\u00eb":10,"\u00e8":10,"\u00f3":10,"\u00f4":10,"\u00f6":10,"\u00f2":10,"\u00f5":10,"s":6,"\u015f":6,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,":":-24,";":-24,"-":4,"\u00ad":4,",":39,".":39}},"\u20ac":{"d":"161,-250v12,115,86,188,196,189v53,0,99,-19,122,-33r17,64v-31,21,-84,41,-149,41v-153,-1,-259,-108,-275,-261r-62,0r0,-50r57,0r2,-59r-59,0r0,-50r66,0v25,-144,125,-250,279,-252v60,0,106,17,134,32r-20,66v-26,-15,-67,-28,-112,-28v-111,1,-174,78,-192,182r279,0r0,50r-288,0v-3,18,-2,39,-2,59r290,0r0,50r-283,0"},"\u011e":{"d":"382,7v-205,0,-346,-128,-346,-340v0,-201,139,-348,365,-348v78,0,140,17,169,31r-22,71v-36,-17,-81,-29,-149,-29v-164,0,-271,102,-271,271v0,171,102,272,260,272v57,0,96,-8,116,-18r0,-201r-136,0r0,-70r222,0r0,324v-39,15,-117,37,-208,37xm231,-827r52,0v5,23,23,49,72,49v48,0,67,-23,72,-49r51,0v-2,59,-39,106,-125,106v-84,0,-120,-46,-122,-106","w":646,"k":{"a":-8,"\u00e6":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8,"c":-5,"d":-5,"e":-5,"o":-5,"q":-5,"\u00f8":-5,"\u00e7":-5,"\u00e9":-5,"\u00ea":-5,"\u00eb":-5,"\u00e8":-5,"\u00f3":-5,"\u00f4":-5,"\u00f6":-5,"\u00f2":-5,"\u00f5":-5}},"\u0130":{"d":"75,-674r88,0r0,674r-88,0r0,-674xm120,-721v-28,0,-49,-24,-49,-51v0,-26,22,-50,50,-50v27,0,48,24,48,50v0,27,-21,51,-49,51","w":239,"k":{"Y":7,"\u00dd":7,"f":-10,"\u00df":-10,"b":-10,"h":-10,"k":-10,"l":-10,"j":-8,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"t":-16,"v":-9,"w":-9,"y":-9,"\u00fd":-9,"\u00ff":-9,"z":-11,"x":-5}},"\u015e":{"d":"42,-33r23,-73v39,25,95,44,155,44v89,0,141,-47,141,-115v0,-62,-36,-99,-127,-133v-110,-40,-178,-98,-178,-192v0,-105,87,-183,218,-183v68,0,119,16,148,33r-24,71v-21,-13,-66,-32,-127,-32v-92,0,-127,55,-127,101v0,63,41,94,134,130v114,44,171,99,171,198v0,89,-56,169,-174,190r-28,44v38,6,70,33,70,70v0,83,-114,96,-172,63r14,-43v27,16,96,27,96,-17v0,-25,-30,-37,-77,-42r40,-70v-63,1,-135,-18,-176,-44","w":493,"k":{"\u00e6":-3,"a":-3,"\u00e1":-3,"\u00e2":-3,"\u00e4":-3,"\u00e0":-3,"\u00e5":-3,"\u00e3":-3,"j":4,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"t":3,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"-":-5,"\u00ad":-5}},"\u011f":{"d":"491,-484v-8,116,-4,284,-4,413v0,112,-22,180,-69,222v-87,78,-242,73,-338,18r22,-68v32,21,82,39,142,39v90,0,156,-47,156,-170v0,-17,4,-40,-2,-53v-26,45,-79,81,-154,81v-120,0,-206,-102,-206,-236v0,-164,107,-256,219,-256v86,0,127,46,153,83r3,-73r78,0xm270,-69v69,0,129,-54,129,-137r0,-87v-3,-81,-51,-133,-128,-133v-84,0,-144,71,-144,183v0,95,49,174,143,174xm148,-682r52,0v6,39,31,69,71,69v48,0,70,-35,73,-69r52,0v0,75,-49,125,-124,125v-88,0,-124,-62,-124,-125","w":559,"k":{"T":32,"f":-4,"\u00df":-4,"i":6,"m":6,"n":6,"p":6,"r":6,"\u0131":6,"\u00ed":6,"\u00ee":6,"\u00ef":6,"\u00ec":6,"\u00f1":6,",":15,".":15}},"\u015f":{"d":"40,-23r21,-66v27,16,73,34,117,34v63,0,93,-31,93,-72v0,-42,-25,-64,-89,-88v-88,-32,-129,-80,-129,-137v0,-78,64,-142,167,-142v49,0,92,13,118,30r-21,63v-19,-11,-54,-28,-99,-28v-52,0,-80,30,-80,66v0,40,28,59,91,83v83,32,127,73,127,145v0,71,-47,125,-129,140r-27,45v36,5,70,30,70,69v0,85,-112,97,-173,64r15,-43v32,17,97,26,97,-17v0,-26,-31,-38,-78,-42r40,-71v-43,0,-90,-11,-131,-33","w":396,"k":{"T":24,",":11,".":11}},"\u20ab":{"d":"89,-98r337,0r0,59r-337,0r0,-59xm346,-664r76,0r0,67r62,0r0,49r-62,0r0,299v0,30,1,65,3,88r-69,0v-3,-18,2,-43,-5,-57v-21,38,-65,65,-125,65v-90,0,-159,-70,-159,-174v0,-115,76,-185,169,-185v55,0,88,25,110,52r0,-88r-126,0r0,-49r126,0r0,-67xm247,-212v68,0,99,-58,99,-145v0,-59,-40,-96,-96,-96v-65,0,-103,52,-103,123v0,65,35,118,100,118"},"\u00ad":{"d":"30,-302r247,0r0,64r-247,0r0,-64","w":291,"k":{"T":50,"J":20,"C":-14,"G":-14,"O":-14,"Q":-14,"\u00d8":-14,"\u00c7":-14,"\u00d3":-14,"\u00d4":-14,"\u00d6":-14,"\u00d2":-14,"\u00d5":-14,"\u011e":-14,"V":11,"W":11,"X":22,"Y":50,"\u00dd":50,"A":4,"\u00c6":4,"\u00c1":4,"\u00c2":4,"\u00c4":4,"\u00c0":4,"\u00c5":4,"\u00c3":4,"g":-14,"\u011f":-14,"c":-18,"d":-18,"e":-18,"o":-18,"q":-18,"\u00f8":-18,"\u00e7":-18,"\u00e9":-18,"\u00ea":-18,"\u00eb":-18,"\u00e8":-18,"\u00f3":-18,"\u00f4":-18,"\u00f6":-18,"\u00f2":-18,"\u00f5":-18,"v":5,"w":5,"y":5,"\u00fd":5,"\u00ff":5}},"\u00a0":{"w":212,"k":{"T":41,"V":36,"W":36,"Y":46,"\u00dd":46}}}});
/*!
 * The following copyright notice may not be removed under any circumstances.
 * 
 * Copyright:
 * © 1992, 1994, 1997, 2000, 2004 Adobe Systems Incorporated. All rights reserved.
 * 
 * Trademark:
 * Myriad is either a registered trademark or a trademark of Adobe Systems
 * Incorporated in the United States and/or other countries.
 * 
 * Full name:
 * MyriadPro-Semibold
 * 
 * Manufacturer:
 * Adobe Systems Incorporated
 * 
 * Designer:
 * Robert Slimbach and Carol Twombly
 * 
 * Vendor URL:
 * http://www.adobe.com/type
 * 
 * License information:
 * http://www.adobe.com/type/legal.html
 */
Cufon.registerFont({"w":536,"face":{"font-family":"Myriad Pro Semibold","font-weight":600,"font-stretch":"normal","units-per-em":"1000","panose-1":"2 11 6 3 3 4 3 2 2 4","ascent":"750","descent":"-250","x-height":"11","bbox":"-42 -889 858 250","underline-thickness":"50","underline-position":"-50","stemh":"92","stemv":"123","unicode-range":"U+0020-U+20AC"},"glyphs":{" ":{"w":207,"k":{"T":40,"V":36,"W":36,"Y":43,"\u00dd":43}},"!":{"d":"172,-208r-93,0r-19,-466r130,0xm124,11v-44,0,-75,-34,-75,-78v0,-46,31,-78,76,-78v46,0,75,32,76,78v0,44,-30,78,-77,78","w":251},"\"":{"d":"42,-692r113,0r-20,257r-73,0xm215,-692r113,0r-20,257r-73,0","w":370,"k":{"T":-13,"J":58,"M":3,"C":7,"G":7,"O":7,"Q":7,"\u00d8":7,"\u00c7":7,"\u00d3":7,"\u00d4":7,"\u00d6":7,"\u00d2":7,"\u00d5":7,"\u011e":7,"V":-13,"W":-13,"X":-3,"Y":-6,"\u00dd":-6,"A":53,"\u00c6":53,"\u00c1":53,"\u00c2":53,"\u00c4":53,"\u00c0":53,"\u00c5":53,"\u00c3":53,"f":-25,"\u00df":-25,"g":15,"\u011f":15,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"t":-23,"v":-13,"w":-13,"y":-13,"\u00fd":-13,"\u00ff":-13,",":119,".":119}},"#":{"d":"208,-264r96,0r17,-127r-96,0xm170,0r-77,0r26,-187r-82,0r0,-77r95,0r17,-127r-85,0r0,-77r97,0r25,-182r75,0r-25,182r97,0r26,-182r75,0r-25,182r81,0r0,77r-93,0r-17,127r84,0r0,77r-96,0r-26,187r-76,0r26,-187r-97,0","w":526},"$":{"d":"305,86r-83,0r0,-97v-63,-2,-126,-20,-162,-43r27,-95v61,49,263,76,263,-34v0,-46,-35,-74,-110,-101v-104,-38,-173,-87,-173,-179v0,-86,60,-153,161,-171r0,-97r82,0r0,92v63,2,106,18,138,34r-27,92v-24,-12,-68,-35,-136,-35v-70,0,-95,36,-95,70v0,41,36,65,122,98v112,42,161,96,161,186v0,85,-59,159,-168,177r0,103"},"%":{"d":"200,-661v101,0,163,76,163,193v0,137,-80,207,-169,207v-91,0,-165,-70,-166,-196v0,-123,71,-204,172,-204xm195,-592v-49,0,-73,58,-73,131v-1,75,26,131,74,131v50,0,73,-53,73,-132v0,-72,-20,-130,-74,-130xm265,11r-70,0r377,-672r71,0xm648,-391v102,0,164,76,164,193v0,136,-80,206,-170,206v-91,0,-165,-70,-166,-196v0,-122,71,-203,172,-203xm644,-322v-49,0,-74,58,-74,131v-1,74,26,130,75,130v50,0,73,-52,73,-131v0,-72,-20,-130,-74,-130","w":840},"&":{"d":"640,0r-144,0v-17,-17,-32,-34,-53,-56v-50,43,-113,67,-190,67v-148,0,-222,-93,-222,-191v0,-90,53,-154,130,-195v-28,-42,-54,-88,-54,-138v0,-84,64,-173,188,-173v95,0,168,59,168,151v0,70,-41,127,-139,177r-1,3r136,154v29,-44,50,-108,61,-179r110,0v-18,104,-49,190,-105,253xm272,-80v48,0,87,-20,113,-46v-41,-42,-105,-114,-169,-187v-31,22,-68,57,-68,114v0,66,49,119,124,119xm289,-607v-46,0,-71,39,-71,82v0,41,19,74,49,108v57,-36,90,-67,90,-114v0,-36,-21,-76,-68,-76","w":645},"(":{"d":"184,-693r89,0v-64,95,-112,227,-112,407v0,177,49,308,112,404r-89,0v-58,-80,-122,-211,-122,-404v1,-196,64,-326,122,-407","w":301,"k":{"T":-34,"J":-13,"C":18,"G":18,"O":18,"Q":18,"\u00d8":18,"\u00c7":18,"\u00d3":18,"\u00d4":18,"\u00d6":18,"\u00d2":18,"\u00d5":18,"\u011e":18,"V":-37,"W":-37,"X":-8,"Y":-35,"\u00dd":-35,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"j":-52}},")":{"d":"117,118r-89,0v63,-95,112,-228,112,-406v0,-178,-49,-309,-112,-405r89,0v58,79,122,209,122,405v0,195,-64,325,-122,406","w":301},"*":{"d":"278,-686r75,44r-102,128r156,-26r0,86r-157,-24v30,46,70,82,103,125r-77,44r-59,-148v-24,46,-40,100,-62,149r-73,-45r101,-123r0,-3r-153,25r0,-86r152,26v-30,-45,-68,-84,-100,-127r76,-44r59,147r2,0","w":437},"+":{"d":"257,-532r83,0r0,226r217,0r0,78r-217,0r0,228r-83,0r0,-228r-217,0r0,-78r217,0r0,-226","w":596},",":{"d":"92,113r-84,8v27,-76,54,-181,67,-264r129,-10v-29,94,-73,202,-112,266","w":236,"k":{"\"":113,"'":113}},"-":{"d":"30,-309r255,0r0,85r-255,0r0,-85","w":315,"k":{"T":53,"J":12,"C":-13,"G":-13,"O":-13,"Q":-13,"\u00d8":-13,"\u00c7":-13,"\u00d3":-13,"\u00d4":-13,"\u00d6":-13,"\u00d2":-13,"\u00d5":-13,"\u011e":-13,"V":19,"W":19,"X":19,"Y":56,"\u00dd":56,"A":5,"\u00c6":5,"\u00c1":5,"\u00c2":5,"\u00c4":5,"\u00c0":5,"\u00c5":5,"\u00c3":5,"g":-9,"\u011f":-9,"c":-17,"d":-17,"e":-17,"o":-17,"q":-17,"\u00f8":-17,"\u00e7":-17,"\u00e9":-17,"\u00ea":-17,"\u00eb":-17,"\u00e8":-17,"\u00f3":-17,"\u00f4":-17,"\u00f6":-17,"\u00f2":-17,"\u00f5":-17,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3}},".":{"d":"126,11v-44,0,-75,-34,-75,-79v0,-46,32,-79,76,-79v45,0,76,32,76,79v0,45,-30,79,-77,79","w":236,"k":{"\"":113,"'":113}},"\/":{"d":"94,39r-85,0r243,-725r86,0","w":337},"0":{"d":"272,-661v157,0,230,140,230,331v0,210,-82,341,-238,341v-149,0,-230,-136,-230,-334v0,-203,86,-338,238,-338xm269,-567v-65,0,-111,81,-111,243v0,159,43,241,110,241v73,0,110,-88,110,-244v0,-151,-35,-240,-109,-240"},"1":{"d":"236,0r0,-539v-42,18,-80,41,-121,60r-21,-93r159,-78r102,0r0,650r-119,0"},"2":{"d":"483,0r-440,0r0,-75r77,-71v153,-142,225,-220,226,-306v0,-58,-31,-109,-116,-109v-58,0,-106,29,-139,54r-36,-87v47,-38,118,-67,200,-67v144,0,214,91,214,197v0,132,-143,261,-252,362r266,0r0,102"},"3":{"d":"40,-34r28,-93v25,15,86,40,148,40v94,0,131,-53,131,-104v0,-96,-100,-116,-204,-110r0,-90v88,5,184,-7,184,-90v0,-45,-32,-82,-104,-82v-53,0,-106,23,-133,41r-28,-89v37,-25,110,-50,187,-50v236,0,270,249,83,311r0,2v79,15,143,74,143,162v0,110,-92,197,-253,197v-79,0,-147,-22,-182,-45"},"4":{"d":"430,0r-116,0r0,-165r-295,0r0,-80r266,-405r145,0r0,392r84,0r0,93r-84,0r0,165xm137,-258r177,0r0,-177v0,-37,2,-74,4,-113r-4,0v-49,111,-117,192,-177,290"},"5":{"d":"188,-418v156,-16,288,48,289,204v0,124,-103,225,-262,225v-76,0,-139,-19,-173,-38r25,-93v28,15,84,34,143,34v72,0,141,-41,141,-118v0,-75,-55,-124,-184,-124v-37,0,-64,3,-89,6r42,-328r337,0r0,102r-250,0"},"6":{"d":"438,-659r0,97v-160,-7,-270,87,-280,192r3,0v32,-37,81,-63,146,-63v112,0,199,80,199,212v0,124,-91,232,-229,232v-158,0,-245,-120,-245,-281v0,-248,155,-392,406,-389xm268,-343v-58,0,-114,39,-114,106v0,86,42,156,123,156v63,0,104,-55,104,-133v0,-76,-41,-129,-113,-129"},"7":{"d":"53,-650r437,0r0,79r-275,571r-129,0r274,-548r-307,0r0,-102"},"8":{"d":"156,-336r0,-3v-68,-33,-99,-87,-99,-144v0,-106,94,-178,217,-178v229,0,271,224,104,311r0,3v71,27,124,83,124,164v0,116,-98,194,-237,194v-262,0,-302,-272,-109,-347xm269,-76v65,0,108,-41,108,-97v0,-66,-48,-102,-121,-122v-128,24,-130,219,13,219xm268,-576v-62,0,-94,41,-94,88v0,53,44,85,106,102v45,-13,81,-49,81,-98v0,-45,-27,-92,-93,-92"},"9":{"d":"92,10r0,-98v153,10,262,-66,284,-197v-37,33,-80,57,-144,57v-113,0,-197,-81,-197,-201v0,-125,96,-232,234,-232v152,0,232,118,232,277v0,264,-145,400,-409,394xm263,-570v-62,0,-106,55,-106,134v0,67,39,119,107,119v50,0,86,-24,105,-54v23,-88,-17,-199,-106,-199"},":":{"d":"125,-326v-43,0,-74,-34,-74,-78v0,-46,31,-79,76,-79v45,0,75,32,75,79v0,44,-30,78,-77,78xm125,11v-43,0,-74,-34,-74,-78v0,-46,31,-79,76,-79v45,0,75,32,75,79v0,44,-30,78,-77,78","w":236},";":{"d":"92,113r-83,8v27,-76,54,-181,67,-264r128,-10v-29,94,-73,202,-112,266xm132,-326v-43,0,-74,-34,-74,-78v0,-46,31,-79,76,-79v45,0,75,32,75,79v0,44,-30,78,-77,78","w":236},"<":{"d":"61,-230r0,-72r473,-230r0,90r-376,175r0,2r376,175r0,90","w":596},"=":{"d":"556,-330r-516,0r0,-78r516,0r0,78xm556,-128r-516,0r0,-78r516,0r0,78","w":596},">":{"d":"535,-304r0,76r-474,228r0,-89r382,-176r0,-2r-382,-176r0,-89","w":596},"?":{"d":"387,-534v0,123,-151,186,-139,306r0,22r-109,0v-7,-77,5,-123,59,-190v38,-46,64,-81,64,-120v0,-84,-133,-86,-183,-41r-30,-88v36,-23,93,-41,157,-41v124,0,181,72,181,152xm190,11v-44,0,-75,-34,-75,-78v0,-46,32,-78,76,-78v45,0,75,32,76,78v0,44,-30,78,-77,78","w":428},"@":{"d":"445,-252r17,-103v-97,-29,-176,54,-176,153v0,41,19,68,58,68v46,0,91,-59,101,-118xm519,16r17,51v-224,105,-489,-10,-489,-277v0,-205,146,-383,370,-383v175,0,297,122,297,290v0,147,-83,238,-184,238v-44,0,-79,-26,-81,-82r-3,0v-57,114,-246,116,-245,-47v0,-123,94,-234,235,-234v44,0,89,10,114,23r-31,183v-12,66,-3,97,27,98v47,2,102,-59,102,-175v0,-137,-85,-239,-241,-239v-158,0,-292,124,-292,320v0,229,217,323,404,234","w":755},"A":{"d":"419,-191r-213,0r-58,191r-127,0r216,-674r157,0r219,674r-133,0xm226,-284r173,0r-53,-166v-15,-40,-21,-91,-36,-126v-23,100,-54,198,-84,292","w":636,"k":{"T":81,"J":-17,"M":3,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"U":32,"\u00da":32,"\u00db":32,"\u00dc":32,"\u00d9":32,"V":57,"W":57,"X":20,"Y":88,"\u00dd":88,"Z":-4,"f":10,"\u00df":10,"g":13,"\u011f":13,"b":5,"h":5,"k":5,"l":5,"j":5,"i":5,"m":5,"n":5,"p":5,"r":5,"\u0131":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"\u00f1":5,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":4,"\u015f":4,"t":15,"u":14,"\u00fa":14,"\u00fb":14,"\u00fc":14,"\u00f9":14,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-7,"-":6,"\u00ad":6,")":14,"]":14,"}":14,"\"":52,"'":52}},"B":{"d":"71,-2r0,-662v94,-18,311,-30,372,28v42,25,70,69,70,127v0,62,-39,118,-112,145r0,3v71,18,136,74,136,166v0,60,-26,107,-64,140v-48,41,-127,62,-251,62v-68,0,-119,-5,-151,-9xm193,-583r0,185r63,0v86,0,133,-40,133,-97v0,-64,-48,-93,-126,-93v-36,0,-57,2,-70,5xm193,-309r0,220v99,12,215,-3,215,-109v0,-100,-104,-117,-215,-111","w":576,"k":{"T":14,"V":5,"W":5,"Y":25,"\u00dd":25,"A":3,"\u00c6":3,"\u00c1":3,"\u00c2":3,"\u00c4":3,"\u00c0":3,"\u00c5":3,"\u00c3":3,"c":-5,"d":-5,"e":-5,"o":-5,"q":-5,"\u00f8":-5,"\u00e7":-5,"\u00e9":-5,"\u00ea":-5,"\u00eb":-5,"\u00e8":-5,"\u00f3":-5,"\u00f4":-5,"\u00f6":-5,"\u00f2":-5,"\u00f5":-5,"a":-3,"\u00e6":-3,"\u00e1":-3,"\u00e2":-3,"\u00e4":-3,"\u00e0":-3,"\u00e5":-3,"\u00e3":-3,"-":-9,"\u00ad":-9,",":14,".":14}},"C":{"d":"534,-116r20,97v-29,14,-93,30,-175,30v-214,0,-344,-134,-344,-340v0,-222,155,-356,361,-356v81,0,138,17,163,30r-26,98v-32,-14,-77,-26,-132,-26v-137,0,-236,86,-236,248v0,149,86,243,235,243v49,0,101,-10,134,-24","w":588,"k":{"T":-20,"J":-7,"C":26,"G":26,"O":26,"Q":26,"\u00d8":26,"\u00c7":26,"\u00d3":26,"\u00d4":26,"\u00d6":26,"\u00d2":26,"\u00d5":26,"\u011e":26,"V":-10,"W":-10,"Y":-5,"\u00dd":-5,"A":-7,"\u00c6":-7,"\u00c1":-7,"\u00c2":-7,"\u00c4":-7,"\u00c0":-7,"\u00c5":-7,"\u00c3":-7,"b":3,"h":3,"k":3,"l":3,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":16,"d":16,"e":16,"o":16,"q":16,"\u00f8":16,"\u00e7":16,"\u00e9":16,"\u00ea":16,"\u00eb":16,"\u00e8":16,"\u00f3":16,"\u00f4":16,"\u00f6":16,"\u00f2":16,"\u00f5":16,"u":16,"\u00fa":16,"\u00fb":16,"\u00fc":16,"\u00f9":16,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-6,"a":9,"\u00e6":9,"\u00e1":9,"\u00e2":9,"\u00e4":9,"\u00e0":9,"\u00e5":9,"\u00e3":9,"\u00ab":8,")":-13,"]":-13,"}":-13,"\"":-4,"'":-4}},"D":{"d":"647,-353v0,251,-154,358,-410,360v-71,0,-125,-4,-166,-9r0,-663v55,-8,123,-14,196,-14v126,0,211,27,274,78v65,54,106,134,106,248xm194,-576r0,483v195,23,323,-60,323,-256v0,-178,-139,-261,-323,-227","w":683,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"E":{"d":"448,-399r0,100r-254,0r0,198r284,0r0,101r-407,0r0,-674r392,0r0,101r-269,0r0,174r254,0","w":515,"k":{"T":-10,"J":-20,"V":-8,"W":-8,"f":3,"\u00df":3,"g":7,"\u011f":7,"j":3,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-3,"\u015f":-3,"t":5,"u":9,"\u00fa":9,"\u00fb":9,"\u00fc":9,"\u00f9":9,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"z":-5,",":6,".":6}},"F":{"d":"71,0r0,-674r390,0r0,101r-267,0r0,186r248,0r0,100r-248,0r0,287r-123,0","w":509,"k":{"\u00ef":22,"J":77,"M":16,"A":72,"\u00c6":72,"\u00c1":72,"\u00c2":72,"\u00c4":72,"\u00c0":72,"\u00c5":72,"\u00c3":72,"g":12,"\u011f":12,"b":16,"h":16,"k":16,"l":16,"i":22,"m":22,"n":22,"p":22,"r":22,"\u0131":22,"\u00ed":22,"\u00ee":22,"\u00ec":22,"\u00f1":22,"c":28,"d":28,"e":28,"o":28,"q":28,"\u00f8":28,"\u00e7":28,"\u00e9":28,"\u00ea":28,"\u00eb":28,"\u00e8":28,"\u00f3":28,"\u00f4":28,"\u00f6":28,"\u00f2":28,"\u00f5":28,"u":31,"\u00fa":31,"\u00fb":31,"\u00fc":31,"\u00f9":31,"v":21,"w":21,"y":21,"\u00fd":21,"\u00ff":21,"a":42,"\u00e6":42,"\u00e1":42,"\u00e2":42,"\u00e4":42,"\u00e0":42,"\u00e5":42,"\u00e3":42,":":16,";":16,"\u00bb":9,"\u00ab":9,",":93,".":93}},"G":{"d":"395,7v-220,0,-359,-124,-359,-338v0,-214,152,-350,375,-350v83,0,148,17,179,32r-27,99v-37,-17,-82,-29,-153,-29v-144,0,-245,85,-245,242v0,153,94,244,234,244v45,0,77,-6,93,-13r0,-169r-119,0r0,-97r238,0r0,341v-43,16,-127,38,-216,38","w":666,"k":{"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"a":-8,"\u00e6":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8}},"H":{"d":"71,-674r123,0r0,270r285,0r0,-270r123,0r0,674r-123,0r0,-297r-285,0r0,297r-123,0r0,-674","w":672,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"I":{"d":"71,-674r123,0r0,674r-123,0r0,-674","w":264,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"J":{"d":"205,-241r0,-433r123,0r0,437v4,231,-151,277,-327,232r15,-99v101,27,189,18,189,-137","w":392,"k":{"v":-6,"w":-6,"y":-6,"\u00fd":-6,"\u00ff":-6,"a":3,"\u00e6":3,"\u00e1":3,"\u00e2":3,"\u00e4":3,"\u00e0":3,"\u00e5":3,"\u00e3":3,")":-26,"]":-26,"}":-26,",":9,".":9}},"K":{"d":"71,0r0,-674r122,0r0,310r3,0v71,-110,151,-206,226,-310r151,0r-232,287r247,387r-144,0r-190,-309r-61,72r0,237r-122,0","w":582,"k":{"T":-13,"J":-33,"C":26,"G":26,"O":26,"Q":26,"\u00d8":26,"\u00c7":26,"\u00d3":26,"\u00d4":26,"\u00d6":26,"\u00d2":26,"\u00d5":26,"\u011e":26,"V":-8,"W":-8,"Y":11,"\u00dd":11,"Z":-18,"A":-12,"\u00c6":-12,"\u00c1":-12,"\u00c2":-12,"\u00c4":-12,"\u00c0":-12,"\u00c5":-12,"\u00c3":-12,"g":9,"\u011f":9,"b":-4,"h":-4,"k":-4,"l":-4,"i":-5,"m":-5,"n":-5,"p":-5,"r":-5,"\u0131":-5,"\u00ed":-5,"\u00ee":-5,"\u00ef":-5,"\u00ec":-5,"\u00f1":-5,"c":9,"d":9,"e":9,"o":9,"q":9,"\u00f8":9,"\u00e7":9,"\u00e9":9,"\u00ea":9,"\u00eb":9,"\u00e8":9,"\u00f3":9,"\u00f4":9,"\u00f6":9,"\u00f2":9,"\u00f5":9,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,"v":29,"w":29,"y":29,"\u00fd":29,"\u00ff":29,"a":-7,"\u00e6":-7,"\u00e1":-7,"\u00e2":-7,"\u00e4":-7,"\u00e0":-7,"\u00e5":-7,"\u00e3":-7,":":-13,";":-13,"\u00ab":6,"-":21,"\u00ad":21,")":-14,"]":-14,"}":-14,"\"":-3,"'":-3,",":-13,".":-13,"\u00b5":-3}},"L":{"d":"71,0r0,-674r123,0r0,571r277,0r0,103r-400,0","w":493,"k":{"\u00d8":39,"T":97,"J":-20,"C":39,"G":39,"O":39,"Q":39,"\u00c7":39,"\u00d3":39,"\u00d4":39,"\u00d6":39,"\u00d2":39,"\u00d5":39,"\u011e":39,"U":33,"\u00da":33,"\u00db":33,"\u00dc":33,"\u00d9":33,"V":62,"W":62,"Y":87,"\u00dd":87,"A":-4,"\u00c6":-4,"\u00c1":-4,"\u00c2":-4,"\u00c4":-4,"\u00c0":-4,"\u00c5":-4,"\u00c3":-4,"j":3,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"t":5,"u":13,"\u00fa":13,"\u00fb":13,"\u00fc":13,"\u00f9":13,"v":32,"w":32,"y":32,"\u00fd":32,"\u00ff":32,"\u00ab":26,"-":29,"\u00ad":29,"\"":99,"'":99}},"M":{"d":"653,0r-13,-275v-4,-87,-9,-192,-8,-283r-3,0v-49,184,-120,371,-179,550r-94,0r-90,-288v-28,-85,-47,-183,-70,-262v-3,88,-7,195,-12,287r-15,271r-115,0r45,-674r162,0r88,271v24,79,45,159,62,234r3,0v40,-169,105,-345,160,-505r160,0r39,674r-120,0","w":827,"k":{"T":12,"A":6,"\u00c6":6,"\u00c1":6,"\u00c2":6,"\u00c4":6,"\u00c0":6,"\u00c5":6,"\u00c3":6,"j":-6,"i":-9,"m":-9,"n":-9,"p":-9,"r":-9,"\u0131":-9,"\u00ed":-9,"\u00ee":-9,"\u00ef":-9,"\u00ec":-9,"\u00f1":-9,"c":-5,"d":-5,"e":-5,"o":-5,"q":-5,"\u00f8":-5,"\u00e7":-5,"\u00e9":-5,"\u00ea":-5,"\u00eb":-5,"\u00e8":-5,"\u00f3":-5,"\u00f4":-5,"\u00f6":-5,"\u00f2":-5,"\u00f5":-5,"v":-3,"w":-3,"y":-3,"\u00fd":-3,"\u00ff":-3,"a":-4,"\u00e6":-4,"\u00e1":-4,"\u00e2":-4,"\u00e4":-4,"\u00e0":-4,"\u00e5":-4,"\u00e3":-4,"-":-4,"\u00ad":-4,"\u00b5":-4}},"N":{"d":"184,0r-114,0r0,-674r141,0v97,165,213,335,289,515r2,0v-16,-157,-10,-341,-11,-515r114,0r0,674r-128,0r-176,-297v-43,-74,-87,-156,-120,-232r-4,1v5,87,7,176,7,287r0,241","w":676,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"O":{"d":"357,-686v196,0,312,149,312,342v0,226,-137,355,-322,355v-191,0,-311,-146,-311,-343v0,-208,131,-354,321,-354xm353,-587v-122,0,-187,113,-187,252v0,138,69,247,187,247v119,0,186,-111,186,-252v0,-127,-63,-247,-186,-247","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"P":{"d":"523,-475v5,173,-154,244,-330,220r0,255r-122,0r0,-665v45,-8,106,-14,188,-14v162,0,260,60,264,204xm193,-578r0,226v102,24,208,-20,208,-118v0,-75,-52,-114,-137,-114v-34,0,-58,3,-71,6","w":559,"k":{"J":75,"M":13,"V":3,"W":3,"X":21,"Y":15,"\u00dd":15,"Z":19,"A":71,"\u00c6":71,"\u00c1":71,"\u00c2":71,"\u00c4":71,"\u00c0":71,"\u00c5":71,"\u00c3":71,"g":25,"\u011f":25,"b":3,"h":3,"k":3,"l":3,"i":12,"m":12,"n":12,"p":12,"r":12,"\u0131":12,"\u00ed":12,"\u00ee":12,"\u00ef":12,"\u00ec":12,"\u00f1":12,"c":25,"d":25,"e":25,"o":25,"q":25,"\u00f8":25,"\u00e7":25,"\u00e9":25,"\u00ea":25,"\u00eb":25,"\u00e8":25,"\u00f3":25,"\u00f4":25,"\u00f6":25,"\u00f2":25,"\u00f5":25,"s":21,"\u015f":21,"t":-9,"u":12,"\u00fa":12,"\u00fb":12,"\u00fc":12,"\u00f9":12,"v":-6,"w":-6,"y":-6,"\u00fd":-6,"\u00ff":-6,"a":21,"\u00e6":21,"\u00e1":21,"\u00e2":21,"\u00e4":21,"\u00e0":21,"\u00e5":21,"\u00e3":21,":":11,";":11,"\u00ab":20,"-":15,"\u00ad":15,")":3,"]":3,"}":3,",":142,".":142,"\u00b5":6}},"Q":{"d":"673,10r-35,98v-94,-26,-178,-54,-263,-87v-14,-6,-29,-9,-44,-10v-156,-8,-295,-123,-295,-342v0,-209,129,-355,322,-355v195,0,311,150,311,341v0,162,-75,271,-174,311r0,4v58,16,123,30,178,40xm353,-88v118,0,186,-110,186,-252v0,-128,-63,-247,-185,-247v-123,0,-188,117,-188,252v0,135,69,247,187,247","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"R":{"d":"257,-679v162,-1,266,47,266,190v0,87,-59,146,-123,168r0,3v49,18,78,65,94,130v22,84,40,162,53,188r-126,0v-10,-20,-27,-75,-45,-159v-24,-112,-71,-123,-183,-118r0,277r-122,0r0,-664v47,-9,115,-15,186,-15xm193,-580r0,213r73,0v83,0,134,-44,134,-111v0,-73,-51,-108,-131,-108v-39,0,-64,3,-76,6","w":569,"k":{"T":-5,"J":-4,"U":4,"\u00da":4,"\u00db":4,"\u00dc":4,"\u00d9":4,"V":-4,"W":-4,"X":-7,"Y":15,"\u00dd":15,"A":-7,"\u00c6":-7,"\u00c1":-7,"\u00c2":-7,"\u00c4":-7,"\u00c0":-7,"\u00c5":-7,"\u00c3":-7,"b":-9,"h":-9,"k":-9,"l":-9,"i":-10,"m":-10,"n":-10,"p":-10,"r":-10,"\u0131":-10,"\u00ed":-10,"\u00ee":-10,"\u00ef":-10,"\u00ec":-10,"\u00f1":-10,"c":-3,"d":-3,"e":-3,"o":-3,"q":-3,"\u00f8":-3,"\u00e7":-3,"\u00e9":-3,"\u00ea":-3,"\u00eb":-3,"\u00e8":-3,"\u00f3":-3,"\u00f4":-3,"\u00f6":-3,"\u00f2":-3,"\u00f5":-3,"t":-14,"v":-8,"w":-8,"y":-8,"\u00fd":-8,"\u00ff":-8,"a":-10,"\u00e6":-10,"\u00e1":-10,"\u00e2":-10,"\u00e4":-10,"\u00e0":-10,"\u00e5":-10,"\u00e3":-10}},"S":{"d":"41,-32r28,-102v39,23,100,43,163,43v78,0,122,-37,122,-92v0,-51,-34,-81,-119,-112v-112,-40,-183,-99,-183,-196v0,-111,92,-194,239,-194v73,0,126,16,161,34r-29,99v-25,-13,-72,-32,-135,-32v-78,0,-111,41,-111,81v0,52,39,77,129,111v117,45,173,103,173,200v0,109,-82,203,-255,203v-72,0,-146,-20,-183,-43","w":519,"k":{"\u00e6":-6,"b":3,"h":3,"k":3,"l":3,"j":7,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"t":4,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"a":-6,"\u00e1":-6,"\u00e2":-6,"\u00e4":-6,"\u00e0":-6,"\u00e5":-6,"\u00e3":-6,"-":-9,"\u00ad":-9}},"T":{"d":"200,0r0,-571r-192,0r0,-103r509,0r0,103r-194,0r0,571r-123,0","w":525,"k":{"\u00ec":50,"\u00ef":50,"\u00ee":50,"\u00ed":50,"\u00e8":77,"\u00e0":65,"\u0131":50,"i":50,"T":-29,"J":49,"M":3,"C":28,"G":28,"O":28,"Q":28,"\u00d8":28,"\u00c7":28,"\u00d3":28,"\u00d4":28,"\u00d6":28,"\u00d2":28,"\u00d5":28,"\u011e":28,"V":-34,"W":-34,"X":-20,"Y":-16,"\u00dd":-16,"A":73,"\u00c6":73,"\u00c1":73,"\u00c2":73,"\u00c4":73,"\u00c0":73,"\u00c5":73,"\u00c3":73,"S":8,"\u015e":8,"g":62,"\u011f":62,"b":10,"h":10,"k":10,"l":10,"m":50,"n":50,"p":50,"r":50,"\u00f1":50,"c":77,"d":77,"e":77,"o":77,"q":77,"\u00f8":77,"\u00e7":77,"\u00e9":77,"\u00ea":77,"\u00eb":77,"\u00f3":77,"\u00f4":77,"\u00f6":77,"\u00f2":77,"\u00f5":77,"s":63,"\u015f":63,"u":50,"\u00fa":50,"\u00fb":50,"\u00fc":50,"\u00f9":50,"v":46,"w":46,"y":46,"\u00fd":46,"\u00ff":46,"z":54,"a":65,"\u00e6":65,"\u00e1":65,"\u00e2":65,"\u00e4":65,"\u00e5":65,"\u00e3":65,"x":23,":":31,";":31,"\u00bb":39,"\u00ab":53,"-":56,"\u00ad":56,")":-44,"]":-44,"}":-44,"\"":-13,"'":-13,",":73,".":73,"\u00b5":36}},"U":{"d":"70,-674r123,0r0,393v0,132,55,193,138,193v89,0,142,-61,142,-193r0,-393r123,0r0,385v0,208,-107,300,-269,300v-156,0,-257,-87,-257,-299r0,-386","w":666,"k":{"A":32,"\u00c6":32,"\u00c1":32,"\u00c2":32,"\u00c4":32,"\u00c0":32,"\u00c5":32,"\u00c3":32,"f":-6,"\u00df":-6,"s":10,"\u015f":10,"v":4,"w":4,"y":4,"\u00fd":4,"\u00ff":4,"z":7,"a":5,"\u00e6":5,"\u00e1":5,"\u00e2":5,"\u00e4":5,"\u00e0":5,"\u00e5":5,"\u00e3":5,"x":10,",":25,".":25}},"V":{"d":"366,0r-141,0r-218,-674r134,0r92,307v28,84,46,168,68,245v44,-187,112,-372,167,-552r131,0","w":601,"k":{"\u00ef":22,"\u00c6":55,"T":-27,"J":32,"C":5,"G":5,"O":5,"Q":5,"\u00d8":5,"\u00c7":5,"\u00d3":5,"\u00d4":5,"\u00d6":5,"\u00d2":5,"\u00d5":5,"\u011e":5,"V":-10,"W":-10,"A":55,"\u00c1":55,"\u00c2":55,"\u00c4":55,"\u00c0":55,"\u00c5":55,"\u00c3":55,"S":4,"\u015e":4,"g":9,"\u011f":9,"b":7,"h":7,"k":7,"l":7,"i":22,"m":22,"n":22,"p":22,"r":22,"\u0131":22,"\u00ed":22,"\u00ee":22,"\u00ec":22,"\u00f1":22,"c":38,"d":38,"e":38,"o":38,"q":38,"\u00f8":38,"\u00e7":38,"\u00e9":38,"\u00ea":38,"\u00eb":38,"\u00e8":38,"\u00f3":38,"\u00f4":38,"\u00f6":38,"\u00f2":38,"\u00f5":38,"s":33,"\u015f":33,"u":25,"\u00fa":25,"\u00fb":25,"\u00fc":25,"\u00f9":25,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"a":38,"\u00e6":38,"\u00e1":38,"\u00e2":38,"\u00e4":38,"\u00e0":38,"\u00e5":38,"\u00e3":38,":":20,";":20,"\u00bb":18,"\u00ab":29,"-":20,"\u00ad":20,")":-41,"]":-41,"}":-41,"\"":-15,"'":-15,",":63,".":63}},"W":{"d":"313,0r-133,0r-165,-674r131,0r64,306v17,82,33,168,44,235r2,0v29,-172,82,-370,122,-541r129,0r67,310v16,80,31,155,41,228r2,0v12,-74,27,-151,46,-234r70,-304r125,0r-182,674r-131,0r-70,-317v-17,-77,-29,-141,-38,-214r-2,0v-28,179,-82,358,-122,531","w":869,"k":{"\u00ef":22,"\u00c6":55,"T":-27,"J":32,"C":5,"G":5,"O":5,"Q":5,"\u00d8":5,"\u00c7":5,"\u00d3":5,"\u00d4":5,"\u00d6":5,"\u00d2":5,"\u00d5":5,"\u011e":5,"V":-10,"W":-10,"A":55,"\u00c1":55,"\u00c2":55,"\u00c4":55,"\u00c0":55,"\u00c5":55,"\u00c3":55,"S":4,"\u015e":4,"g":9,"\u011f":9,"b":7,"h":7,"k":7,"l":7,"i":22,"m":22,"n":22,"p":22,"r":22,"\u0131":22,"\u00ed":22,"\u00ee":22,"\u00ec":22,"\u00f1":22,"c":38,"d":38,"e":38,"o":38,"q":38,"\u00f8":38,"\u00e7":38,"\u00e9":38,"\u00ea":38,"\u00eb":38,"\u00e8":38,"\u00f3":38,"\u00f4":38,"\u00f6":38,"\u00f2":38,"\u00f5":38,"s":33,"\u015f":33,"u":25,"\u00fa":25,"\u00fb":25,"\u00fc":25,"\u00f9":25,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"a":38,"\u00e6":38,"\u00e1":38,"\u00e2":38,"\u00e4":38,"\u00e0":38,"\u00e5":38,"\u00e3":38,":":20,";":20,"\u00bb":18,"\u00ab":29,"-":20,"\u00ad":20,")":-41,"]":-41,"}":-41,"\"":-15,"'":-15,",":63,".":63}},"X":{"d":"574,0r-143,0r-140,-261r-2,0v-32,77,-89,180,-128,261r-141,0r200,-341r-193,-333r142,0r73,139v22,42,38,75,55,113r3,0v37,-88,83,-168,125,-252r141,0r-197,329","w":594,"k":{"T":-7,"J":-7,"C":34,"G":34,"O":34,"Q":34,"\u00d8":34,"\u00c7":34,"\u00d3":34,"\u00d4":34,"\u00d6":34,"\u00d2":34,"\u00d5":34,"\u011e":34,"V":-9,"W":-9,"X":13,"Y":-9,"\u00dd":-9,"A":11,"\u00c6":11,"\u00c1":11,"\u00c2":11,"\u00c4":11,"\u00c0":11,"\u00c5":11,"\u00c3":11,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":16,"d":16,"e":16,"o":16,"q":16,"\u00f8":16,"\u00e7":16,"\u00e9":16,"\u00ea":16,"\u00eb":16,"\u00e8":16,"\u00f3":16,"\u00f4":16,"\u00f6":16,"\u00f2":16,"\u00f5":16,"u":10,"\u00fa":10,"\u00fb":10,"\u00fc":10,"\u00f9":10,"v":29,"w":29,"y":29,"\u00fd":29,"\u00ff":29,"a":8,"\u00e6":8,"\u00e1":8,"\u00e2":8,"\u00e4":8,"\u00e0":8,"\u00e5":8,"\u00e3":8,"\u00ab":17,"-":20,"\u00ad":20,"\"":-3,"'":-3}},"Y":{"d":"347,0r-123,0r0,-281r-213,-393r141,0r139,307r2,0v38,-100,94,-208,139,-307r139,0r-224,390r0,284","w":575,"k":{"\u00f6":94,"\u00ef":17,"\u00eb":94,"\u00e4":83,"T":-16,"J":62,"M":16,"C":42,"G":42,"O":42,"Q":42,"\u00d8":42,"\u00c7":42,"\u00d3":42,"\u00d4":42,"\u00d6":42,"\u00d2":42,"\u00d5":42,"\u011e":42,"V":-23,"W":-23,"X":13,"Y":13,"\u00dd":13,"A":87,"\u00c6":87,"\u00c1":87,"\u00c2":87,"\u00c4":87,"\u00c0":87,"\u00c5":87,"\u00c3":87,"S":22,"\u015e":22,"B":13,"D":13,"E":13,"F":13,"H":13,"I":13,"K":13,"L":13,"N":13,"P":13,"R":13,"\u00d0":13,"\u00c9":13,"\u00ca":13,"\u00cb":13,"\u00c8":13,"\u00cd":13,"\u00ce":13,"\u00cf":13,"\u00cc":13,"\u00d1":13,"\u0130":13,"g":63,"\u011f":63,"b":13,"h":13,"k":13,"l":13,"i":17,"m":17,"n":17,"p":17,"r":17,"\u0131":17,"\u00ed":17,"\u00ee":17,"\u00ec":17,"\u00f1":17,"c":94,"d":94,"e":94,"o":94,"q":94,"\u00f8":94,"\u00e7":94,"\u00e9":94,"\u00ea":94,"\u00e8":94,"\u00f3":94,"\u00f4":94,"\u00f2":94,"\u00f5":94,"s":59,"\u015f":59,"t":33,"u":64,"\u00fa":64,"\u00fb":64,"\u00fc":64,"\u00f9":64,"v":42,"w":42,"y":42,"\u00fd":42,"\u00ff":42,"z":38,"a":83,"\u00e6":83,"\u00e1":83,"\u00e2":83,"\u00e0":83,"\u00e5":83,"\u00e3":83,"x":42,":":42,";":42,"\u00bb":33,"\u00ab":61,"-":57,"\u00ad":57,")":-43,"]":-43,"}":-43,"\"":-8,"'":-8,",":108,".":108}},"Z":{"d":"26,0r0,-68r344,-501r0,-3r-314,0r0,-102r474,0r0,72r-340,497r0,3r345,0r0,102r-509,0","w":566,"k":{"J":-16,"C":22,"G":22,"O":22,"Q":22,"\u00d8":22,"\u00c7":22,"\u00d3":22,"\u00d4":22,"\u00d6":22,"\u00d2":22,"\u00d5":22,"\u011e":22,"X":5,"Y":-4,"\u00dd":-4,"A":-5,"\u00c6":-5,"\u00c1":-5,"\u00c2":-5,"\u00c4":-5,"\u00c0":-5,"\u00c5":-5,"\u00c3":-5,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"u":9,"\u00fa":9,"\u00fb":9,"\u00fc":9,"\u00f9":9,"v":13,"w":13,"y":13,"\u00fd":13,"\u00ff":13,"-":16,"\u00ad":16}},"[":{"d":"269,112r-195,0r0,-798r195,0r0,71r-104,0r0,656r104,0r0,71","w":301,"k":{"T":-34,"J":-13,"C":18,"G":18,"O":18,"Q":18,"\u00d8":18,"\u00c7":18,"\u00d3":18,"\u00d4":18,"\u00d6":18,"\u00d2":18,"\u00d5":18,"\u011e":18,"V":-37,"W":-37,"X":-8,"Y":-35,"\u00dd":-35,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"j":-52}},"\\":{"d":"327,39r-86,0r-234,-725r86,0","w":335},"]":{"d":"31,-686r195,0r0,798r-195,0r0,-71r104,0r0,-656r-104,0r0,-71","w":301},"^":{"d":"546,-182r-91,0r-156,-371r-2,0r-156,371r-90,0r208,-468r79,0","w":596},"_":{"d":"0,75r500,0r0,50r-500,0r0,-50","w":500},"a":{"d":"243,-498v277,2,177,270,209,498r-111,0r-9,-54r-3,0v-29,38,-80,65,-144,65v-98,0,-153,-71,-153,-145v0,-122,109,-185,289,-184v1,-43,-9,-93,-99,-93v-48,0,-98,15,-131,36r-24,-80v36,-22,99,-43,176,-43xm224,-77v58,0,99,-36,100,-94r0,-67v-87,-1,-170,17,-170,91v0,48,31,70,70,70","w":508},"b":{"d":"66,-137r0,-573r123,0r0,290r2,0v30,-47,83,-78,156,-78v119,0,203,99,203,247v0,175,-111,262,-221,262v-65,0,-117,-28,-156,-84r-6,73r-105,0v2,-33,4,-87,4,-137xm302,-402v-59,1,-112,49,-113,122r0,79v1,71,51,115,112,115v77,0,124,-61,124,-160v0,-86,-41,-156,-123,-156","w":585,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"c":{"d":"407,-106r17,91v-26,12,-77,25,-138,25v-152,0,-251,-98,-251,-249v0,-146,100,-259,271,-259v45,0,91,10,119,22r-22,93v-20,-10,-49,-19,-93,-19v-94,0,-149,69,-149,158v0,141,137,187,246,138","w":449,"k":{"T":13,"f":-5,"\u00df":-5,"c":9,"d":9,"e":9,"o":9,"q":9,"\u00f8":9,"\u00e7":9,"\u00e9":9,"\u00ea":9,"\u00eb":9,"\u00e8":9,"\u00f3":9,"\u00f4":9,"\u00f6":9,"\u00f2":9,"\u00f5":9,"t":-15,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"\u00bb":-13,"-":-9,"\u00ad":-9,"\"":-4,"'":-4,",":8,".":8}},"d":{"d":"392,-710r123,0r0,573v0,50,2,104,4,137r-109,0v-4,-24,0,-56,-8,-77v-29,54,-88,88,-158,88v-117,0,-209,-99,-209,-249v-1,-163,101,-260,218,-260v69,0,113,30,139,63r0,-275xm282,-88v61,0,111,-49,110,-123r0,-73v0,-71,-43,-119,-109,-119v-79,0,-123,70,-123,160v0,90,44,155,122,155","w":581,"k":{",":10,".":10}},"e":{"d":"479,-209r-326,0v-1,142,181,143,285,104r18,84v-42,18,-100,31,-170,31v-158,0,-251,-97,-251,-246v0,-135,82,-262,238,-262v177,0,223,148,206,289xm153,-295r214,0v1,-45,-19,-119,-101,-119v-76,0,-108,69,-113,119","w":516,"k":{"T":37,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"x":8,"-":-29,"\u00ad":-29,"\"":3,"'":3,",":14,".":14}},"f":{"d":"203,0r-123,0r0,-395r-66,0r0,-92r66,0v-2,-77,13,-141,59,-187v52,-51,136,-56,205,-35r-8,95v-14,-5,-30,-9,-53,-9v-69,1,-84,64,-81,136r106,0r0,92r-105,0r0,395","w":319,"k":{"g":10,"\u011f":10,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"s":8,"\u015f":8,"t":-13,":":-30,";":-30,"\u00bb":-11,")":-86,"]":-86,"}":-86,"\"":-48,"'":-48,",":36,".":36}},"g":{"d":"511,-487v-7,109,-3,290,-4,416v0,102,-21,175,-72,221v-90,79,-256,73,-358,20r27,-93v31,18,83,37,142,37v93,0,156,-72,138,-189v-28,43,-77,72,-142,72v-121,0,-207,-100,-207,-238v0,-160,104,-257,221,-257v77,0,116,39,143,76r5,-65r107,0xm279,-95v59,0,105,-46,105,-118r0,-79v-2,-67,-42,-112,-104,-112v-69,0,-120,60,-120,159v0,83,42,150,119,150","w":573,"k":{"T":33,"f":-3,"\u00df":-3,"i":4,"m":4,"n":4,"p":4,"r":4,"\u0131":4,"\u00ed":4,"\u00ee":4,"\u00ef":4,"\u00ec":4,"\u00f1":4,",":16,".":16}},"h":{"d":"290,-398v-59,0,-101,42,-101,106r0,292r-123,0r0,-710r123,0r0,289r2,0v28,-43,80,-77,146,-77v83,0,170,55,170,211r0,287r-123,0r0,-274v0,-70,-26,-124,-94,-124","w":572,"k":{"T":54,"t":5,"v":16,"w":16,"y":16,"\u00fd":16,"\u00ff":16,"\"":11,"'":11}},"i":{"d":"189,0r-123,0r0,-487r123,0r0,487xm128,-690v42,0,68,29,69,67v0,36,-27,66,-70,66v-41,0,-68,-30,-68,-66v0,-38,28,-67,69,-67","w":256},"j":{"d":"-42,117v111,-20,124,-40,124,-204r0,-400r123,0r0,435v0,101,-19,165,-64,208v-41,41,-110,57,-171,57xm145,-690v41,0,67,29,68,67v0,36,-26,66,-70,66v-42,0,-68,-30,-68,-66v0,-38,28,-67,70,-67","w":270,"k":{",":11,".":11}},"k":{"d":"189,-710r0,437v16,-15,27,-40,40,-57r119,-157r148,0r-181,199r206,288r-151,0r-140,-215r-41,49r0,166r-123,0r0,-710r123,0","w":509,"k":{"T":24,"g":7,"\u011f":7,"b":-14,"h":-14,"k":-14,"l":-14,"i":-13,"m":-13,"n":-13,"p":-13,"r":-13,"\u0131":-13,"\u00ed":-13,"\u00ee":-13,"\u00ef":-13,"\u00ec":-13,"\u00f1":-13,"c":7,"d":7,"e":7,"o":7,"q":7,"\u00f8":7,"\u00e7":7,"\u00e9":7,"\u00ea":7,"\u00eb":7,"\u00e8":7,"\u00f3":7,"\u00f4":7,"\u00f6":7,"\u00f2":7,"\u00f5":7,"v":-8,"w":-8,"y":-8,"\u00fd":-8,"\u00ff":-8,"a":-11,"\u00e6":-11,"\u00e1":-11,"\u00e2":-11,"\u00e4":-11,"\u00e0":-11,"\u00e5":-11,"\u00e3":-11,":":-6,";":-6,"-":7,"\u00ad":7,",":-9,".":-9}},"l":{"d":"66,0r0,-710r123,0r0,710r-123,0","w":257,"k":{",":10,".":10}},"m":{"d":"281,-398v-60,0,-94,48,-95,110r0,288r-120,0r0,-342v0,-56,-2,-103,-4,-145r105,0r6,72r3,0v23,-38,67,-83,150,-83v66,0,112,40,137,90v35,-53,80,-90,159,-90v80,0,162,55,162,211r0,287r-120,0r0,-269v0,-81,-28,-129,-87,-129v-55,0,-92,44,-92,106r0,292r-120,0r0,-282v0,-68,-27,-116,-84,-116","w":848,"k":{"T":54,"t":5,"v":16,"w":16,"y":16,"\u00fd":16,"\u00ff":16,"\"":11,"'":11}},"n":{"d":"291,-398v-62,0,-102,46,-102,111r0,287r-123,0r0,-342v0,-56,-2,-103,-4,-145r107,0r6,73r3,0v22,-38,75,-84,156,-84v85,0,173,55,173,209r0,289r-123,0r0,-275v0,-70,-26,-123,-93,-123","w":572,"k":{"T":54,"t":5,"v":16,"w":16,"y":16,"\u00fd":16,"\u00ff":16,"\"":11,"'":11}},"o":{"d":"287,-498v145,0,242,102,242,250v0,179,-126,259,-250,259v-137,0,-244,-94,-244,-251v0,-160,105,-258,252,-258xm284,-409v-87,0,-122,85,-122,166v0,94,47,165,121,165v70,0,119,-68,119,-167v0,-76,-34,-164,-118,-164","w":564,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"p":{"d":"66,198r0,-523v0,-64,-2,-116,-4,-162r108,0v4,24,0,55,8,75v36,-55,93,-86,167,-86v112,0,205,96,205,248v0,176,-111,261,-222,261v-63,0,-110,-29,-139,-65r0,252r-123,0xm304,-401v-60,1,-115,49,-115,122r0,75v-1,74,49,120,112,120v78,0,124,-65,124,-161v0,-86,-42,-156,-121,-156","w":585,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"q":{"d":"253,-498v70,-1,115,33,144,76r3,-65r119,0v-2,44,-4,90,-4,141r0,544r-123,0r0,-265r-2,0v-29,47,-80,78,-151,78v-110,0,-204,-95,-204,-247v0,-178,114,-262,218,-262xm281,-86v62,0,111,-48,111,-119r0,-81v-1,-68,-44,-115,-108,-115v-80,0,-124,67,-124,159v0,89,43,156,121,156","w":581,"k":{"T":35,",":7,".":7}},"r":{"d":"339,-380v-90,-17,-150,34,-150,127r0,253r-123,0r0,-330v0,-66,-1,-114,-4,-157r106,0r5,92r3,0v31,-77,87,-113,163,-100r0,115","w":356,"k":{"T":17,"f":-28,"\u00df":-28,"g":8,"\u011f":8,"c":9,"d":9,"e":9,"o":9,"q":9,"\u00f8":9,"\u00e7":9,"\u00e9":9,"\u00ea":9,"\u00eb":9,"\u00e8":9,"\u00f3":9,"\u00f4":9,"\u00f6":9,"\u00f2":9,"\u00f5":9,"t":-23,"v":-22,"w":-22,"y":-22,"\u00fd":-22,"\u00ff":-22,"z":-8,"a":9,"\u00e6":9,"\u00e1":9,"\u00e2":9,"\u00e4":9,"\u00e0":9,"\u00e5":9,"\u00e3":9,"x":-15,"\u00bb":-9,"\u00ab":4,"-":3,"\u00ad":3,",":59,".":59}},"s":{"d":"36,-24r25,-90v41,34,203,63,202,-19v0,-33,-20,-50,-80,-71v-95,-33,-134,-84,-134,-142v0,-86,71,-152,184,-152v54,0,101,13,130,29r-25,86v-20,-12,-60,-28,-103,-28v-44,0,-68,22,-68,52v0,31,23,46,85,68v89,32,130,76,130,148v0,89,-69,153,-198,153v-59,0,-112,-14,-148,-34","w":417,"k":{"T":30,",":11,".":11}},"t":{"d":"231,11v-105,0,-146,-62,-145,-177r0,-229r-69,0r0,-92r69,0r0,-91r121,-34r0,125r117,0r0,92r-117,0r0,215v-7,83,46,101,111,85r2,93v-18,7,-51,13,-89,13","w":351,"k":{"g":6,"\u011f":6,"c":6,"d":6,"e":6,"o":6,"q":6,"\u00f8":6,"\u00e7":6,"\u00e9":6,"\u00ea":6,"\u00eb":6,"\u00e8":6,"\u00f3":6,"\u00f4":6,"\u00f6":6,"\u00f2":6,"\u00f5":6,"v":-7,"w":-7,"y":-7,"\u00fd":-7,"\u00ff":-7,"-":3,"\u00ad":3,",":6,".":6}},"u":{"d":"278,-89v64,0,101,-43,101,-104r0,-294r123,0r0,341v0,58,2,106,4,146r-107,0r-6,-73r-3,0v-21,34,-69,84,-157,84v-88,0,-169,-53,-169,-212r0,-286r123,0r0,265v0,81,26,133,91,133","w":569,"k":{"T":35,",":7,".":7}},"v":{"d":"11,-487r133,0r79,247v14,43,24,82,33,122r3,0v30,-125,74,-249,111,-369r129,0r-186,487r-121,0","w":508,"k":{"T":34,"g":12,"\u011f":12,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":12,"\u015f":12,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,":":-14,";":-14,"-":6,"\u00ad":6,",":44,".":44}},"w":{"d":"14,-487r126,0r50,221v14,51,19,110,34,158v28,-132,68,-254,103,-379r100,0r61,216v15,57,28,110,39,163r2,0v18,-128,57,-257,86,-379r121,0r-153,487r-114,0r-58,-198v-17,-49,-23,-102,-39,-156v-24,135,-63,234,-99,354r-115,0","w":749,"k":{"T":34,"g":12,"\u011f":12,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":12,"\u015f":12,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,":":-14,";":-14,"-":6,"\u00ad":6,",":44,".":44}},"x":{"d":"11,-487r137,0r102,167r2,0v30,-59,64,-111,97,-167r134,0r-163,234r166,253r-140,0r-59,-97v-18,-25,-28,-56,-46,-79r-100,176r-136,0r169,-248","w":494,"k":{"T":26,"c":19,"d":19,"e":19,"o":19,"q":19,"\u00f8":19,"\u00e7":19,"\u00e9":19,"\u00ea":19,"\u00eb":19,"\u00e8":19,"\u00f3":19,"\u00f4":19,"\u00f6":19,"\u00f2":19,"\u00f5":19,"s":7,"\u015f":7,"t":-13,"v":-17,"w":-17,"y":-17,"\u00fd":-17,"\u00ff":-17,"-":5,"\u00ad":5}},"y":{"d":"47,117v61,-18,126,-62,146,-133v0,-5,-1,-12,-6,-24r-179,-447r136,0r87,261v10,30,21,67,28,94r3,0r102,-355r131,0v-75,189,-184,560,-291,645v-50,40,-99,58,-129,62","w":500,"k":{"T":34,"g":12,"\u011f":12,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":12,"\u015f":12,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,":":-14,";":-14,"-":6,"\u00ad":6,",":44,".":44}},"z":{"d":"20,0r0,-71r183,-234v23,-29,50,-53,71,-84r-236,0r0,-98r386,0r0,75r-178,229v-23,30,-50,56,-72,85r256,0r0,98r-410,0","w":450,"k":{"T":25,"c":7,"d":7,"e":7,"o":7,"q":7,"\u00f8":7,"\u00e7":7,"\u00e9":7,"\u00ea":7,"\u00eb":7,"\u00e8":7,"\u00f3":7,"\u00f4":7,"\u00f6":7,"\u00f2":7,"\u00f5":7,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"\u00bb":-11}},"{":{"d":"94,-25v0,-50,13,-107,13,-159v0,-29,-8,-70,-78,-71r0,-65v69,-1,78,-39,78,-71v0,-53,-13,-110,-13,-162v0,-103,71,-139,177,-133r0,71v-61,-4,-89,22,-87,78v0,44,12,87,12,135v0,74,-32,98,-79,115v51,12,80,43,79,113v-1,91,-52,225,75,215r0,71v-105,5,-176,-25,-177,-137","w":301,"k":{"T":-34,"J":-13,"C":18,"G":18,"O":18,"Q":18,"\u00d8":18,"\u00c7":18,"\u00d3":18,"\u00d4":18,"\u00d6":18,"\u00d2":18,"\u00d5":18,"\u011e":18,"V":-37,"W":-37,"X":-8,"Y":-35,"\u00dd":-35,"A":16,"\u00c6":16,"\u00c1":16,"\u00c2":16,"\u00c4":16,"\u00c0":16,"\u00c5":16,"\u00c3":16,"j":-52}},"|":{"d":"87,-750r89,0r0,1000r-89,0r0,-1000","w":263},"}":{"d":"206,-553v0,53,-13,110,-13,162v0,32,8,70,78,71r0,65v-69,1,-78,42,-78,71v0,51,14,108,13,159v-1,112,-72,142,-177,137r0,-71v61,4,88,-23,87,-79v-1,-45,-12,-87,-12,-136v0,-73,32,-98,79,-115v-51,-12,-80,-42,-79,-113v1,-90,53,-224,-75,-213r0,-71v106,-5,177,30,177,133","w":301},"~":{"d":"426,-195v-66,0,-188,-89,-248,-89v-30,0,-50,21,-53,83r-79,0v-2,-118,54,-170,130,-170v67,0,186,87,249,87v29,0,45,-25,47,-83r79,0v5,129,-55,172,-125,172","w":596},"\u00a1":{"d":"191,193r-130,0r19,-463r93,0xm127,-491v44,0,74,33,74,78v0,45,-30,78,-76,78v-44,0,-75,-33,-75,-78v0,-45,31,-78,77,-78","w":251},"\u00a2":{"d":"274,-87v-126,-17,-203,-101,-203,-240v0,-124,75,-226,203,-248r0,-98r82,0r0,94v38,1,76,11,101,22r-22,92v-21,-11,-52,-21,-96,-21v-88,0,-143,66,-143,154v0,99,64,153,142,153v47,0,81,-10,106,-21r17,89v-22,11,-61,23,-105,26r0,98r-82,0r0,-100"},"\u00a3":{"d":"275,-280v7,83,-21,137,-65,179r281,0r0,101r-438,0r0,-67v73,-36,130,-108,108,-213r-99,0r0,-85r85,0v-4,-27,-9,-60,-9,-93v0,-123,87,-203,211,-203v53,0,92,12,113,24r-22,93v-19,-10,-47,-19,-86,-19v-112,-1,-111,111,-90,198r140,0r0,85r-129,0"},"\u00a5":{"d":"321,0r-116,0r0,-167r-155,0r0,-61r155,0r0,-68r-155,0r0,-61r124,0r-165,-293r132,0r85,181v19,36,26,72,43,101v34,-94,87,-193,130,-282r129,0r-174,293r124,0r0,61r-157,0r0,68r157,0r0,61r-157,0r0,167"},"\u00a7":{"d":"148,-346v0,34,27,61,95,85v49,17,94,32,117,45v55,-48,42,-116,-45,-145v-41,-14,-96,-33,-127,-49v-26,16,-40,37,-40,64xm443,-653r-23,77v-40,-34,-222,-52,-222,30v0,40,42,58,115,81v101,32,178,71,178,168v0,52,-27,92,-69,121v18,15,42,48,42,91v0,179,-256,185,-382,112r27,-76v41,37,242,75,243,-24v0,-39,-30,-61,-113,-88v-105,-35,-188,-73,-188,-166v0,-41,24,-89,79,-120v-21,-16,-39,-52,-39,-88v0,-148,233,-182,352,-118","w":542},"\u00a4":{"d":"153,-504v56,-51,175,-51,231,-1r74,-80r57,58r-83,75v42,46,41,196,-2,239r80,77r-56,57r-71,-83v-62,54,-170,54,-231,2r-70,81r-56,-57r79,-74v-47,-48,-47,-196,0,-242r-82,-75r57,-58xm266,-459v-61,0,-103,54,-103,127v0,87,57,127,103,127v50,0,104,-38,104,-129v0,-68,-39,-125,-104,-125"},"'":{"d":"42,-692r113,0r-20,257r-73,0","w":198,"k":{"T":-13,"J":58,"M":3,"C":7,"G":7,"O":7,"Q":7,"\u00d8":7,"\u00c7":7,"\u00d3":7,"\u00d4":7,"\u00d6":7,"\u00d2":7,"\u00d5":7,"\u011e":7,"V":-13,"W":-13,"X":-3,"Y":-6,"\u00dd":-6,"A":53,"\u00c6":53,"\u00c1":53,"\u00c2":53,"\u00c4":53,"\u00c0":53,"\u00c5":53,"\u00c3":53,"f":-25,"\u00df":-25,"g":15,"\u011f":15,"c":11,"d":11,"e":11,"o":11,"q":11,"\u00f8":11,"\u00e7":11,"\u00e9":11,"\u00ea":11,"\u00eb":11,"\u00e8":11,"\u00f3":11,"\u00f4":11,"\u00f6":11,"\u00f2":11,"\u00f5":11,"t":-23,"v":-13,"w":-13,"y":-13,"\u00fd":-13,"\u00ff":-13,",":119,".":119}},"\u00ab":{"d":"240,-440r-125,188r126,187r-91,0r-123,-187r123,-188r90,0xm421,-440r-126,188r126,187r-90,0r-123,-187r123,-188r90,0","w":444,"k":{"T":38,"V":18,"W":18,"Y":45,"\u00dd":45,"f":-4,"\u00df":-4}},"\u00b7":{"d":"117,-182v-44,0,-75,-34,-75,-79v0,-46,32,-79,76,-79v45,0,76,32,76,79v0,45,-30,79,-77,79","w":236},"\u00b6":{"d":"298,48r-81,0r0,-312v-77,2,-179,-57,-184,-189v-4,-105,54,-224,286,-224v57,0,102,3,131,10r0,715r-81,0r0,-646r-71,0r0,646","w":529},"\u00bb":{"d":"149,-252r-126,-188r89,0r124,188r-124,187r-89,0xm327,-252r-126,-188r90,0r124,188r-124,187r-89,0","w":444,"k":{"T":61,"J":13,"C":-8,"G":-8,"O":-8,"Q":-8,"\u00d8":-8,"\u00c7":-8,"\u00d3":-8,"\u00d4":-8,"\u00d6":-8,"\u00d2":-8,"\u00d5":-8,"\u011e":-8,"V":31,"W":31,"X":15,"Y":60,"\u00dd":60,"g":-7,"\u011f":-7}},"\u00bf":{"d":"244,-491v44,0,75,33,75,78v0,45,-30,78,-76,78v-45,0,-76,-33,-76,-78v0,-45,31,-78,77,-78xm48,54v0,-132,161,-185,139,-328r108,0v9,74,-5,123,-59,190v-37,46,-63,81,-63,120v0,85,131,85,183,41r29,88v-35,22,-93,41,-156,41v-124,0,-181,-72,-181,-152","w":428},"`":{"d":"12,-698r120,0r87,148r-85,0","w":300},"\u00b4":{"d":"174,-698r120,0r-122,148r-85,0","w":300},"\u00af":{"d":"31,-655r239,0r0,71r-239,0r0,-71","w":300},"\u00a8":{"d":"50,-563v-35,0,-61,-28,-61,-61v0,-35,27,-62,63,-62v33,0,59,26,59,62v0,33,-25,61,-61,61xm310,-624v0,34,-25,62,-62,61v-34,0,-60,-28,-60,-61v0,-35,27,-62,62,-62v34,0,60,26,60,62","w":300},"\u00b8":{"d":"128,-3r69,0r-29,50v37,5,71,31,71,71v0,90,-126,101,-189,65r18,-49v30,16,93,29,93,-13v0,-22,-26,-35,-78,-39","w":300},"\u00c6":{"d":"128,0r-127,0r296,-674r472,0r0,101r-280,0r21,176r253,0r0,100r-238,0r25,196r252,0r0,101r-358,0r-26,-208r-201,0xm255,-307r149,0r-33,-280r-4,0v-33,97,-75,187,-112,280","w":832,"k":{"T":-10,"J":-20,"V":-8,"W":-8,"f":3,"\u00df":3,"g":7,"\u011f":7,"j":3,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-3,"\u015f":-3,"t":5,"u":9,"\u00fa":9,"\u00fb":9,"\u00fc":9,"\u00f9":9,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"z":-5,",":6,".":6}},"\u00aa":{"d":"324,-266r-78,0v-4,-11,-1,-29,-8,-37v-22,23,-56,42,-100,42v-66,0,-105,-43,-105,-97v0,-75,75,-117,199,-115v1,-25,-4,-57,-67,-57v-35,0,-67,10,-90,26r-18,-55v27,-17,72,-32,124,-32v183,0,125,174,143,325xm169,-320v50,-1,73,-42,65,-101v-58,-1,-115,12,-115,57v0,27,23,44,50,44","w":363},"\u00d8":{"d":"136,56r-68,-54r59,-86v-58,-62,-91,-151,-91,-252v0,-204,132,-350,319,-350v58,0,112,14,157,45r57,-81r71,48r-58,85v57,62,87,151,87,247v0,227,-140,353,-316,353v-57,0,-111,-15,-156,-43xm198,-189r256,-365v-28,-22,-61,-35,-100,-35v-178,0,-243,258,-156,400xm509,-482r-254,361v26,23,57,35,98,35v169,0,240,-239,159,-396r-3,0","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"\u00ba":{"d":"188,-591v100,0,163,69,163,162v-1,115,-83,168,-166,168v-92,0,-164,-63,-164,-162v0,-102,72,-168,167,-168xm184,-528v-52,0,-74,57,-74,103v0,57,32,101,76,101v45,0,75,-42,75,-103v0,-45,-23,-101,-77,-101","w":372},"\u00e6":{"d":"754,-216r-316,0v0,86,59,135,142,135v63,0,101,-13,134,-27r19,84v-113,56,-307,50,-355,-61r-3,0v-35,59,-97,96,-182,96v-104,0,-161,-69,-161,-146v0,-116,110,-179,291,-178r0,-17v0,-18,-15,-81,-103,-81v-48,0,-98,18,-128,37r-25,-79v39,-23,101,-45,163,-45v83,0,134,34,159,89r3,0v35,-55,93,-89,167,-89v164,0,210,148,195,282xm225,-77v85,0,109,-65,101,-158v-87,-1,-173,18,-173,91v0,43,33,67,72,67xm437,-301r205,0v1,-39,-18,-114,-97,-114v-74,0,-106,69,-108,114","w":790,"k":{"T":37,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"x":8,"-":-29,"\u00ad":-29,"\"":3,"'":3,",":14,".":14}},"\u0131":{"d":"189,0r-123,0r0,-487r123,0r0,487","w":256},"\u00f8":{"d":"35,-242v0,-203,196,-313,369,-226r44,-65r47,33r-44,64v50,45,78,111,78,190v0,224,-198,306,-366,228r-46,66r-45,-36r43,-62v-50,-43,-80,-108,-80,-192xm182,-145r168,-241v-18,-15,-41,-23,-69,-23v-127,4,-155,167,-102,264r3,0xm384,-339r-168,238v93,66,201,-18,194,-142v-1,-26,-5,-69,-26,-96","w":564,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"\u00df":{"d":"415,-149v0,-86,-121,-124,-121,-222v0,-50,29,-95,84,-123v25,-63,-13,-132,-82,-132v-65,0,-107,46,-107,177r0,449r-123,0r0,-440v2,-192,74,-281,240,-281v109,0,198,66,198,178v0,32,-10,64,-23,82v-79,35,-80,94,-23,150v38,37,80,81,80,155v0,99,-71,167,-191,167v-37,0,-78,-6,-107,-18r18,-92v21,10,48,16,76,16v52,0,81,-29,81,-66","w":576,"k":{"T":30,",":11,".":11}},"\u00b9":{"d":"209,-443r-96,0r-1,-310r-76,35r-14,-69r103,-46r84,0r0,390","w":275},"\u00ac":{"d":"40,-412r516,0r0,299r-82,0r0,-221r-434,0r0,-78","w":596},"\u00b5":{"d":"279,-88v62,0,101,-42,102,-105r0,-294r123,0r0,340v0,47,12,63,43,65r-8,86v-65,21,-132,-4,-142,-75r-4,0v-17,37,-62,79,-129,79v-34,0,-67,-13,-86,-40v0,72,-1,173,11,230r-109,0v-10,-27,-14,-103,-14,-178r0,-507r123,0r0,280v0,69,27,119,90,119","w":570,"k":{"\u00b5":-3,":":-5,";":-5,"\u00bb":-3,"-":-9,"\u00ad":-9,",":-5,".":-5}},"\u00d0":{"d":"654,-353v0,252,-153,361,-411,362v-71,0,-125,-4,-166,-9r0,-294r-76,0r0,-97r76,0r0,-277v55,-8,123,-14,196,-14v127,0,212,26,275,77v65,54,106,136,106,252xm355,-391r0,97r-155,0r0,203v197,23,324,-59,324,-259v0,-185,-139,-262,-324,-229r0,188r155,0","w":689,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"\u00bd":{"d":"213,-266r-96,0r-1,-310r-76,35r-14,-69r103,-46r84,0r0,390xm207,11r-71,0r373,-672r70,0xm464,0r0,-48v60,-56,194,-159,183,-214v0,-33,-22,-58,-66,-58v-34,0,-65,15,-85,29r-26,-62v30,-23,79,-42,135,-42v97,0,143,55,143,117v0,84,-89,144,-150,206r157,0r0,72r-291,0","w":799},"\u00b1":{"d":"257,-575r83,0r0,182r217,0r0,78r-217,0r0,187r-83,0r0,-187r-217,0r0,-78r217,0r0,-182xm40,-78r517,0r0,78r-517,0r0,-78","w":596},"\u00de":{"d":"281,-554v141,-3,240,66,242,194v3,180,-156,241,-331,217r0,143r-121,0r0,-674r121,0r0,126v22,-4,49,-6,89,-6xm192,-453r0,213v18,4,43,6,68,6v94,0,141,-46,141,-116v0,-73,-51,-109,-133,-109v-36,0,-62,3,-76,6","w":558},"\u00bc":{"d":"226,-266r-96,0r-1,-310r-76,35r-14,-69r103,-46r84,0r0,390xm228,11r-71,0r374,-672r71,0xm707,0r-89,0r0,-96r-198,0r0,-52r181,-246r106,0r0,235r56,0r0,63r-56,0r0,96xm618,-159r0,-93v0,-25,2,-48,4,-69r-3,0v-31,63,-71,106,-109,161v33,3,73,0,108,1","w":799},"\u00f7":{"d":"297,-376v-37,0,-63,-28,-63,-66v0,-39,26,-66,64,-66v39,0,63,27,64,66v0,38,-25,66,-65,66xm556,-228r-516,0r0,-78r516,0r0,78xm297,-26v-37,0,-63,-28,-63,-66v0,-39,26,-66,64,-66v39,0,63,27,64,66v0,38,-25,66,-65,66","w":596},"\u00a6":{"d":"87,-174r89,0r0,350r-89,0r0,-350xm87,-674r89,0r0,350r-89,0r0,-350","w":263},"\u00b0":{"d":"172,-686v86,0,142,65,142,139v0,84,-69,142,-144,142v-84,0,-143,-62,-143,-138v0,-81,64,-143,145,-143xm169,-627v-46,0,-73,41,-73,84v0,44,32,79,74,79v44,0,75,-35,75,-82v0,-38,-24,-81,-76,-81","w":339},"\u00fe":{"d":"66,-674r123,0r0,254r2,0v31,-47,82,-78,154,-78v110,0,205,92,205,249v0,180,-116,260,-220,260v-65,0,-109,-29,-141,-65r0,252r-123,0r0,-872xm306,-401v-62,0,-117,49,-117,119r0,86v4,63,52,113,113,112v74,0,123,-62,123,-163v0,-85,-44,-154,-119,-154","w":585},"\u00be":{"d":"66,-569r-20,-60v26,-17,74,-32,128,-32v160,0,176,151,55,186r0,2v55,7,95,43,95,94v0,67,-64,118,-170,118v-52,0,-100,-12,-126,-28r21,-65v18,11,59,26,95,26v51,0,79,-27,79,-55v-1,-50,-64,-63,-124,-60r0,-58v51,2,112,-4,112,-51v0,-22,-17,-42,-58,-42v-35,0,-70,15,-87,25xm263,11r-71,0r373,-672r71,0xm717,0r-89,0r0,-96r-198,0r0,-52r181,-246r106,0r0,235r56,0r0,63r-56,0r0,96xm628,-159r0,-93v0,-25,2,-48,4,-69r-3,0v-31,64,-70,107,-109,161v33,3,73,0,108,1","w":799},"\u00b2":{"d":"13,-443r0,-47v58,-57,195,-160,183,-214v0,-33,-22,-58,-66,-58v-34,0,-65,15,-85,29r-27,-62v30,-23,80,-42,136,-42v97,0,143,55,143,117v0,84,-88,145,-150,205r157,0r0,72r-291,0","w":333},"\u00ae":{"d":"256,-432v-12,-13,-7,-68,-42,-61r-17,0r0,61r-44,0r0,-161v13,-3,36,-6,67,-6v54,0,71,7,77,47v3,20,-19,30,-35,40v29,2,34,63,42,80r-48,0xm198,-567r0,43v24,1,50,-2,50,-22v0,-21,-29,-24,-50,-21xm222,-684v96,0,172,75,172,168v0,95,-76,170,-173,170v-96,0,-174,-75,-174,-170v0,-93,78,-168,175,-168xm219,-645v-70,0,-124,57,-124,130v0,72,54,130,126,130v72,1,125,-58,125,-130v0,-73,-53,-130,-127,-130","w":441},"\u00f0":{"d":"396,-242v0,-102,-27,-158,-115,-158v-168,0,-150,322,-2,322v74,0,117,-68,117,-164xm356,-599v96,79,167,181,167,344v0,186,-123,266,-245,266v-138,0,-243,-95,-243,-247v0,-149,107,-240,228,-242v31,0,60,5,90,30r2,-3v-26,-39,-59,-74,-101,-104r-143,64r-23,-52r110,-51v-30,-20,-64,-37,-99,-53r54,-72v50,20,103,49,150,80r133,-60r26,52","w":560},"\u00d7":{"d":"40,-470r55,-56r203,207r202,-207r56,56r-202,207r202,206r-56,57r-202,-206r-202,206r-56,-57r202,-206","w":596},"\u00b3":{"d":"46,-744r-20,-62v26,-16,75,-31,129,-31v158,0,175,151,55,185r0,2v55,7,95,43,95,94v0,67,-64,118,-170,118v-52,0,-100,-12,-126,-28r21,-65v18,11,59,26,95,26v51,0,79,-27,79,-55v-1,-50,-64,-63,-124,-59r0,-58v51,2,111,-4,111,-51v0,-22,-17,-42,-57,-42v-36,0,-71,15,-88,26","w":328},"\u00a9":{"d":"341,-648v169,0,303,138,303,308v0,172,-134,310,-304,310v-171,0,-307,-138,-307,-310v0,-170,136,-308,308,-308xm338,-598v-137,0,-246,115,-246,260v0,144,109,258,247,258v137,0,246,-114,246,-259v0,-144,-109,-259,-247,-259xm474,-493r-13,48v-13,-8,-51,-23,-97,-23v-84,0,-131,52,-131,131v0,75,49,132,132,132v40,0,77,-10,100,-25r14,45v-35,24,-81,32,-124,32v-117,0,-184,-79,-184,-181v0,-114,91,-186,193,-186v50,0,97,15,110,27","w":677},"\u00c1":{"d":"419,-191r-213,0r-58,191r-127,0r216,-674r157,0r219,674r-133,0xm226,-284r173,0r-53,-166v-15,-40,-21,-91,-36,-126v-23,100,-54,198,-84,292xm342,-830r136,0r-125,120r-99,0","w":636,"k":{"T":81,"J":-17,"M":3,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"U":32,"\u00da":32,"\u00db":32,"\u00dc":32,"\u00d9":32,"V":57,"W":57,"X":20,"Y":88,"\u00dd":88,"Z":-4,"f":10,"\u00df":10,"g":13,"\u011f":13,"b":5,"h":5,"k":5,"l":5,"j":5,"i":5,"m":5,"n":5,"p":5,"r":5,"\u0131":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"\u00f1":5,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":4,"\u015f":4,"t":15,"u":14,"\u00fa":14,"\u00fb":14,"\u00fc":14,"\u00f9":14,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-7,"-":6,"\u00ad":6,")":14,"]":14,"}":14,"\"":52,"'":52}},"\u00c2":{"d":"419,-191r-213,0r-58,191r-127,0r216,-674r157,0r219,674r-133,0xm226,-284r173,0r-53,-166v-15,-40,-21,-91,-36,-126v-23,100,-54,198,-84,292xm273,-829r93,0r103,119r-92,0v-20,-21,-36,-46,-58,-65r-56,65r-91,0","w":636,"k":{"T":81,"J":-17,"M":3,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"U":32,"\u00da":32,"\u00db":32,"\u00dc":32,"\u00d9":32,"V":57,"W":57,"X":20,"Y":88,"\u00dd":88,"Z":-4,"f":10,"\u00df":10,"g":13,"\u011f":13,"b":5,"h":5,"k":5,"l":5,"j":5,"i":5,"m":5,"n":5,"p":5,"r":5,"\u0131":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"\u00f1":5,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":4,"\u015f":4,"t":15,"u":14,"\u00fa":14,"\u00fb":14,"\u00fc":14,"\u00f9":14,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-7,"-":6,"\u00ad":6,")":14,"]":14,"}":14,"\"":52,"'":52}},"\u00c4":{"d":"419,-191r-213,0r-58,191r-127,0r216,-674r157,0r219,674r-133,0xm226,-284r173,0r-53,-166v-15,-40,-21,-91,-36,-126v-23,100,-54,198,-84,292xm222,-715v-34,0,-59,-28,-59,-60v0,-34,26,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-59,60xm419,-715v-34,0,-58,-28,-58,-60v0,-34,25,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-60,60","w":636,"k":{"T":81,"J":-17,"M":3,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"U":32,"\u00da":32,"\u00db":32,"\u00dc":32,"\u00d9":32,"V":57,"W":57,"X":20,"Y":88,"\u00dd":88,"Z":-4,"f":10,"\u00df":10,"g":13,"\u011f":13,"b":5,"h":5,"k":5,"l":5,"j":5,"i":5,"m":5,"n":5,"p":5,"r":5,"\u0131":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"\u00f1":5,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":4,"\u015f":4,"t":15,"u":14,"\u00fa":14,"\u00fb":14,"\u00fc":14,"\u00f9":14,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-7,"-":6,"\u00ad":6,")":14,"]":14,"}":14,"\"":52,"'":52}},"\u00c0":{"d":"419,-191r-213,0r-58,191r-127,0r216,-674r157,0r219,674r-133,0xm226,-284r173,0r-53,-166v-15,-40,-21,-91,-36,-126v-23,100,-54,198,-84,292xm156,-830r136,0r88,119r-99,0","w":636,"k":{"T":81,"J":-17,"M":3,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"U":32,"\u00da":32,"\u00db":32,"\u00dc":32,"\u00d9":32,"V":57,"W":57,"X":20,"Y":88,"\u00dd":88,"Z":-4,"f":10,"\u00df":10,"g":13,"\u011f":13,"b":5,"h":5,"k":5,"l":5,"j":5,"i":5,"m":5,"n":5,"p":5,"r":5,"\u0131":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"\u00f1":5,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":4,"\u015f":4,"t":15,"u":14,"\u00fa":14,"\u00fb":14,"\u00fc":14,"\u00f9":14,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-7,"-":6,"\u00ad":6,")":14,"]":14,"}":14,"\"":52,"'":52}},"\u00c5":{"d":"419,-191r-213,0r-58,191r-127,0r216,-674r157,0r219,674r-133,0xm226,-284r173,0r-53,-166v-15,-40,-21,-91,-36,-126v-23,100,-54,198,-84,292xm319,-889v68,0,106,42,106,95v0,52,-42,93,-107,93v-67,0,-109,-42,-109,-93v0,-52,40,-95,110,-95xm315,-845v-61,1,-56,99,1,99v29,0,47,-22,47,-49v0,-27,-18,-50,-48,-50","w":636,"k":{"T":81,"J":-17,"M":3,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"U":32,"\u00da":32,"\u00db":32,"\u00dc":32,"\u00d9":32,"V":57,"W":57,"X":20,"Y":88,"\u00dd":88,"Z":-4,"f":10,"\u00df":10,"g":13,"\u011f":13,"b":5,"h":5,"k":5,"l":5,"j":5,"i":5,"m":5,"n":5,"p":5,"r":5,"\u0131":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"\u00f1":5,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":4,"\u015f":4,"t":15,"u":14,"\u00fa":14,"\u00fb":14,"\u00fc":14,"\u00f9":14,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-7,"-":6,"\u00ad":6,")":14,"]":14,"}":14,"\"":52,"'":52}},"\u00c3":{"d":"420,-191r-214,0r-58,191r-127,0r216,-674r157,0r219,674r-132,0xm226,-284r174,0r-54,-166v-15,-40,-21,-91,-36,-126v-23,100,-54,198,-84,292xm381,-721v-41,0,-77,-38,-108,-38v-14,0,-23,16,-25,44r-60,0v-2,-74,27,-116,73,-116v42,0,74,39,108,39v16,0,24,-8,27,-41r59,0v2,77,-24,112,-74,112","w":636,"k":{"T":81,"J":-17,"M":3,"C":21,"G":21,"O":21,"Q":21,"\u00d8":21,"\u00c7":21,"\u00d3":21,"\u00d4":21,"\u00d6":21,"\u00d2":21,"\u00d5":21,"\u011e":21,"U":32,"\u00da":32,"\u00db":32,"\u00dc":32,"\u00d9":32,"V":57,"W":57,"X":20,"Y":88,"\u00dd":88,"Z":-4,"f":10,"\u00df":10,"g":13,"\u011f":13,"b":5,"h":5,"k":5,"l":5,"j":5,"i":5,"m":5,"n":5,"p":5,"r":5,"\u0131":5,"\u00ed":5,"\u00ee":5,"\u00ef":5,"\u00ec":5,"\u00f1":5,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":4,"\u015f":4,"t":15,"u":14,"\u00fa":14,"\u00fb":14,"\u00fc":14,"\u00f9":14,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-7,"-":6,"\u00ad":6,")":14,"]":14,"}":14,"\"":52,"'":52}},"\u00c7":{"d":"534,-116r20,96v-28,14,-87,29,-166,30r-21,37v37,8,71,34,71,78v-1,95,-122,104,-191,70r18,-55v25,16,94,27,94,-14v0,-22,-27,-34,-78,-39r40,-81v-179,-22,-286,-147,-286,-335v0,-222,155,-356,361,-356v81,0,138,17,163,30r-27,98v-31,-14,-76,-26,-131,-26v-137,0,-236,86,-236,248v0,149,86,243,234,243v50,0,102,-10,135,-24","w":592,"k":{"T":-20,"J":-7,"C":26,"G":26,"O":26,"Q":26,"\u00d8":26,"\u00c7":26,"\u00d3":26,"\u00d4":26,"\u00d6":26,"\u00d2":26,"\u00d5":26,"\u011e":26,"V":-10,"W":-10,"Y":-5,"\u00dd":-5,"A":-7,"\u00c6":-7,"\u00c1":-7,"\u00c2":-7,"\u00c4":-7,"\u00c0":-7,"\u00c5":-7,"\u00c3":-7,"b":3,"h":3,"k":3,"l":3,"i":3,"m":3,"n":3,"p":3,"r":3,"\u0131":3,"\u00ed":3,"\u00ee":3,"\u00ef":3,"\u00ec":3,"\u00f1":3,"c":16,"d":16,"e":16,"o":16,"q":16,"\u00f8":16,"\u00e7":16,"\u00e9":16,"\u00ea":16,"\u00eb":16,"\u00e8":16,"\u00f3":16,"\u00f4":16,"\u00f6":16,"\u00f2":16,"\u00f5":16,"u":16,"\u00fa":16,"\u00fb":16,"\u00fc":16,"\u00f9":16,"v":27,"w":27,"y":27,"\u00fd":27,"\u00ff":27,"z":-6,"a":9,"\u00e6":9,"\u00e1":9,"\u00e2":9,"\u00e4":9,"\u00e0":9,"\u00e5":9,"\u00e3":9,"\u00ab":8,")":-13,"]":-13,"}":-13,"\"":-4,"'":-4}},"\u00c9":{"d":"448,-399r0,100r-254,0r0,198r284,0r0,101r-407,0r0,-674r392,0r0,101r-269,0r0,174r254,0xm295,-830r136,0r-125,120r-99,0","w":515,"k":{"T":-10,"J":-20,"V":-8,"W":-8,"f":3,"\u00df":3,"g":7,"\u011f":7,"j":3,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-3,"\u015f":-3,"t":5,"u":9,"\u00fa":9,"\u00fb":9,"\u00fc":9,"\u00f9":9,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"z":-5,",":6,".":6}},"\u00ca":{"d":"448,-399r0,100r-254,0r0,198r284,0r0,101r-407,0r0,-674r392,0r0,101r-269,0r0,174r254,0xm222,-829r93,0r103,119r-92,0v-20,-21,-36,-46,-58,-65r-56,65r-91,0","w":515,"k":{"T":-10,"J":-20,"V":-8,"W":-8,"f":3,"\u00df":3,"g":7,"\u011f":7,"j":3,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-3,"\u015f":-3,"t":5,"u":9,"\u00fa":9,"\u00fb":9,"\u00fc":9,"\u00f9":9,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"z":-5,",":6,".":6}},"\u00cb":{"d":"448,-399r0,100r-254,0r0,198r284,0r0,101r-407,0r0,-674r392,0r0,101r-269,0r0,174r254,0xm165,-716v-34,0,-59,-28,-59,-60v0,-34,26,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-59,60xm363,-716v-34,0,-59,-28,-59,-60v0,-34,26,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-59,60","w":515,"k":{"T":-10,"J":-20,"V":-8,"W":-8,"f":3,"\u00df":3,"g":7,"\u011f":7,"j":3,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-3,"\u015f":-3,"t":5,"u":9,"\u00fa":9,"\u00fb":9,"\u00fc":9,"\u00f9":9,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"z":-5,",":6,".":6}},"\u00c8":{"d":"448,-399r0,100r-254,0r0,198r284,0r0,101r-407,0r0,-674r392,0r0,101r-269,0r0,174r254,0xm114,-830r136,0r88,119r-99,0","w":515,"k":{"T":-10,"J":-20,"V":-8,"W":-8,"f":3,"\u00df":3,"g":7,"\u011f":7,"j":3,"c":4,"d":4,"e":4,"o":4,"q":4,"\u00f8":4,"\u00e7":4,"\u00e9":4,"\u00ea":4,"\u00eb":4,"\u00e8":4,"\u00f3":4,"\u00f4":4,"\u00f6":4,"\u00f2":4,"\u00f5":4,"s":-3,"\u015f":-3,"t":5,"u":9,"\u00fa":9,"\u00fb":9,"\u00fc":9,"\u00f9":9,"v":10,"w":10,"y":10,"\u00fd":10,"\u00ff":10,"z":-5,",":6,".":6}},"\u00cd":{"d":"71,-674r123,0r0,674r-123,0r0,-674xm156,-830r136,0r-125,120r-99,0","w":264,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"\u00ce":{"d":"71,-674r123,0r0,674r-123,0r0,-674xm85,-829r93,0r103,119r-92,0v-20,-21,-36,-46,-58,-65r-56,65r-91,0","w":264,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"\u00cf":{"d":"71,-674r123,0r0,674r-123,0r0,-674xm33,-716v-34,0,-59,-28,-59,-60v0,-34,26,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-59,60xm230,-716v-34,0,-58,-28,-58,-60v0,-34,25,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-60,60","w":264,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"\u00cc":{"d":"71,-674r123,0r0,674r-123,0r0,-674xm-26,-830r136,0r88,119r-99,0","w":264,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"\u00d1":{"d":"184,0r-114,0r0,-674r141,0v97,165,213,335,289,515r2,0v-16,-157,-10,-341,-11,-515r114,0r0,674r-128,0r-176,-297v-43,-74,-87,-156,-120,-232r-4,1v5,87,7,176,7,287r0,241xm401,-721v-42,0,-76,-38,-108,-38v-14,0,-23,16,-25,44r-60,0v-2,-74,27,-116,73,-116v41,0,74,39,108,39v16,0,24,-8,27,-41r59,0v2,77,-24,112,-74,112","w":676,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"\u00d3":{"d":"357,-686v196,0,312,149,312,342v0,226,-137,355,-322,355v-191,0,-311,-146,-311,-343v0,-208,131,-354,321,-354xm353,-587v-122,0,-187,113,-187,252v0,138,69,247,187,247v119,0,186,-111,186,-252v0,-127,-63,-247,-186,-247xm378,-832r136,0r-125,120r-99,0","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"\u00d4":{"d":"357,-686v196,0,312,149,312,342v0,226,-137,355,-322,355v-191,0,-311,-146,-311,-343v0,-208,131,-354,321,-354xm353,-587v-122,0,-187,113,-187,252v0,138,69,247,187,247v119,0,186,-111,186,-252v0,-127,-63,-247,-186,-247xm305,-830r93,0r103,119r-92,0v-20,-21,-36,-46,-58,-65r-56,65r-91,0","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"\u00d6":{"d":"357,-686v196,0,312,149,312,342v0,226,-137,355,-322,355v-191,0,-311,-146,-311,-343v0,-208,131,-354,321,-354xm353,-587v-122,0,-187,113,-187,252v0,138,69,247,187,247v119,0,186,-111,186,-252v0,-127,-63,-247,-186,-247xm253,-716v-34,0,-59,-28,-59,-60v0,-34,26,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-59,60xm450,-716v-34,0,-58,-28,-58,-60v0,-34,25,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-60,60","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"\u00d2":{"d":"357,-686v196,0,312,149,312,342v0,226,-137,355,-322,355v-191,0,-311,-146,-311,-343v0,-208,131,-354,321,-354xm353,-587v-122,0,-187,113,-187,252v0,138,69,247,187,247v119,0,186,-111,186,-252v0,-127,-63,-247,-186,-247xm193,-832r136,0r88,119r-99,0","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"\u00d5":{"d":"357,-686v196,0,312,149,312,342v0,226,-137,355,-322,355v-191,0,-311,-146,-311,-343v0,-208,131,-354,321,-354xm353,-587v-122,0,-187,113,-187,252v0,138,69,247,187,247v119,0,186,-111,186,-252v0,-127,-63,-247,-186,-247xm412,-722v-40,0,-76,-37,-108,-37v-14,0,-23,15,-25,43r-60,0v-2,-73,27,-115,73,-115v42,0,74,38,108,38v16,0,24,-8,27,-41r59,0v2,77,-24,112,-74,112","w":704,"k":{"T":27,"V":3,"W":3,"X":30,"Y":33,"\u00dd":33,"A":15,"\u00c6":15,"\u00c1":15,"\u00c2":15,"\u00c4":15,"\u00c0":15,"\u00c5":15,"\u00c3":15,"f":-13,"\u00df":-13,"g":-5,"\u011f":-5,"j":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"t":-15,"u":-4,"\u00fa":-4,"\u00fb":-4,"\u00fc":-4,"\u00f9":-4,"v":-12,"w":-12,"y":-12,"\u00fd":-12,"\u00ff":-12,"z":3,"x":9,"\u00ab":-8,"-":-13,"\u00ad":-13,")":13,"]":13,"}":13,",":37,".":37}},"\u00da":{"d":"70,-674r123,0r0,393v0,132,55,193,138,193v89,0,142,-61,142,-193r0,-393r123,0r0,385v0,208,-107,300,-269,300v-156,0,-257,-87,-257,-299r0,-386xm356,-830r136,0r-125,120r-99,0","w":666,"k":{"A":32,"\u00c6":32,"\u00c1":32,"\u00c2":32,"\u00c4":32,"\u00c0":32,"\u00c5":32,"\u00c3":32,"f":-6,"\u00df":-6,"s":10,"\u015f":10,"v":4,"w":4,"y":4,"\u00fd":4,"\u00ff":4,"z":7,"a":5,"\u00e6":5,"\u00e1":5,"\u00e2":5,"\u00e4":5,"\u00e0":5,"\u00e5":5,"\u00e3":5,"x":10,",":25,".":25}},"\u00db":{"d":"70,-674r123,0r0,393v0,132,55,193,138,193v89,0,142,-61,142,-193r0,-393r123,0r0,385v0,208,-107,300,-269,300v-156,0,-257,-87,-257,-299r0,-386xm294,-829r93,0r103,119r-92,0v-20,-21,-36,-46,-58,-65r-56,65r-91,0","w":666,"k":{"A":32,"\u00c6":32,"\u00c1":32,"\u00c2":32,"\u00c4":32,"\u00c0":32,"\u00c5":32,"\u00c3":32,"f":-6,"\u00df":-6,"s":10,"\u015f":10,"v":4,"w":4,"y":4,"\u00fd":4,"\u00ff":4,"z":7,"a":5,"\u00e6":5,"\u00e1":5,"\u00e2":5,"\u00e4":5,"\u00e0":5,"\u00e5":5,"\u00e3":5,"x":10,",":25,".":25}},"\u00dc":{"d":"70,-674r123,0r0,393v0,132,55,193,138,193v89,0,142,-61,142,-193r0,-393r123,0r0,385v0,208,-107,300,-269,300v-156,0,-257,-87,-257,-299r0,-386xm238,-716v-34,0,-59,-28,-59,-60v0,-34,26,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-59,60xm435,-716v-34,0,-58,-28,-58,-60v0,-34,25,-61,60,-61v33,0,58,26,58,61v0,32,-24,60,-60,60","w":666,"k":{"A":32,"\u00c6":32,"\u00c1":32,"\u00c2":32,"\u00c4":32,"\u00c0":32,"\u00c5":32,"\u00c3":32,"f":-6,"\u00df":-6,"s":10,"\u015f":10,"v":4,"w":4,"y":4,"\u00fd":4,"\u00ff":4,"z":7,"a":5,"\u00e6":5,"\u00e1":5,"\u00e2":5,"\u00e4":5,"\u00e0":5,"\u00e5":5,"\u00e3":5,"x":10,",":25,".":25}},"\u00d9":{"d":"70,-674r123,0r0,393v0,132,55,193,138,193v89,0,142,-61,142,-193r0,-393r123,0r0,385v0,208,-107,300,-269,300v-156,0,-257,-87,-257,-299r0,-386xm178,-830r136,0r88,119r-99,0","w":666,"k":{"A":32,"\u00c6":32,"\u00c1":32,"\u00c2":32,"\u00c4":32,"\u00c0":32,"\u00c5":32,"\u00c3":32,"f":-6,"\u00df":-6,"s":10,"\u015f":10,"v":4,"w":4,"y":4,"\u00fd":4,"\u00ff":4,"z":7,"a":5,"\u00e6":5,"\u00e1":5,"\u00e2":5,"\u00e4":5,"\u00e0":5,"\u00e5":5,"\u00e3":5,"x":10,",":25,".":25}},"\u00dd":{"d":"347,0r-123,0r0,-281r-213,-393r141,0r139,307r2,0v38,-100,94,-208,139,-307r139,0r-224,390r0,284xm319,-827r136,0r-125,120r-99,0","w":575,"k":{"\u00f6":94,"\u00ef":17,"\u00eb":94,"\u00e4":83,"T":-16,"J":62,"M":16,"C":42,"G":42,"O":42,"Q":42,"\u00d8":42,"\u00c7":42,"\u00d3":42,"\u00d4":42,"\u00d6":42,"\u00d2":42,"\u00d5":42,"\u011e":42,"V":-23,"W":-23,"X":13,"Y":13,"\u00dd":13,"A":87,"\u00c6":87,"\u00c1":87,"\u00c2":87,"\u00c4":87,"\u00c0":87,"\u00c5":87,"\u00c3":87,"S":22,"\u015e":22,"B":13,"D":13,"E":13,"F":13,"H":13,"I":13,"K":13,"L":13,"N":13,"P":13,"R":13,"\u00d0":13,"\u00c9":13,"\u00ca":13,"\u00cb":13,"\u00c8":13,"\u00cd":13,"\u00ce":13,"\u00cf":13,"\u00cc":13,"\u00d1":13,"\u0130":13,"g":63,"\u011f":63,"b":13,"h":13,"k":13,"l":13,"i":17,"m":17,"n":17,"p":17,"r":17,"\u0131":17,"\u00ed":17,"\u00ee":17,"\u00ec":17,"\u00f1":17,"c":94,"d":94,"e":94,"o":94,"q":94,"\u00f8":94,"\u00e7":94,"\u00e9":94,"\u00ea":94,"\u00e8":94,"\u00f3":94,"\u00f4":94,"\u00f2":94,"\u00f5":94,"s":59,"\u015f":59,"t":33,"u":64,"\u00fa":64,"\u00fb":64,"\u00fc":64,"\u00f9":64,"v":42,"w":42,"y":42,"\u00fd":42,"\u00ff":42,"z":38,"a":83,"\u00e6":83,"\u00e1":83,"\u00e2":83,"\u00e0":83,"\u00e5":83,"\u00e3":83,"x":42,":":42,";":42,"\u00bb":33,"\u00ab":61,"-":57,"\u00ad":57,")":-43,"]":-43,"}":-43,"\"":-8,"'":-8,",":108,".":108}},"\u00e1":{"d":"243,-498v277,2,177,270,209,498r-111,0r-9,-54r-3,0v-29,38,-80,65,-144,65v-98,0,-153,-71,-153,-145v0,-122,109,-185,289,-184v1,-43,-9,-93,-99,-93v-48,0,-98,15,-131,36r-24,-80v36,-22,99,-43,176,-43xm224,-77v58,0,99,-36,100,-94r0,-67v-87,-1,-170,17,-170,91v0,48,31,70,70,70xm279,-698r120,0r-122,148r-85,0","w":508},"\u00e2":{"d":"243,-498v277,2,177,270,209,498r-111,0r-9,-54r-3,0v-29,38,-80,65,-144,65v-98,0,-153,-71,-153,-145v0,-122,109,-185,289,-184v1,-43,-9,-93,-99,-93v-48,0,-98,15,-131,36r-24,-80v36,-22,99,-43,176,-43xm224,-77v58,0,99,-36,100,-94r0,-67v-87,-1,-170,17,-170,91v0,48,31,70,70,70xm208,-698r83,0r98,148r-85,0v-19,-29,-33,-64,-55,-90r-54,90r-84,0","w":508},"\u00e4":{"d":"243,-498v277,2,177,270,209,498r-111,0r-9,-54r-3,0v-29,38,-80,65,-144,65v-98,0,-153,-71,-153,-145v0,-122,109,-185,289,-184v1,-43,-9,-93,-99,-93v-48,0,-98,15,-131,36r-24,-80v36,-22,99,-43,176,-43xm224,-77v58,0,99,-36,100,-94r0,-67v-87,-1,-170,17,-170,91v0,48,31,70,70,70xm154,-563v-35,0,-61,-28,-61,-61v0,-35,27,-62,63,-62v33,0,59,26,59,62v0,33,-25,61,-61,61xm414,-624v0,34,-25,62,-62,61v-34,0,-60,-28,-60,-61v0,-35,27,-62,62,-62v34,0,60,26,60,62","w":508},"\u00e0":{"d":"243,-498v277,2,177,270,209,498r-111,0r-9,-54r-3,0v-29,38,-80,65,-144,65v-98,0,-153,-71,-153,-145v0,-122,109,-185,289,-184v1,-43,-9,-93,-99,-93v-48,0,-98,15,-131,36r-24,-80v36,-22,99,-43,176,-43xm224,-77v58,0,99,-36,100,-94r0,-67v-87,-1,-170,17,-170,91v0,48,31,70,70,70xm98,-698r120,0r87,148r-85,0","w":508},"\u00e5":{"d":"243,-498v277,2,177,270,209,498r-111,0r-9,-54r-3,0v-29,38,-80,65,-144,65v-98,0,-153,-71,-153,-145v0,-122,109,-185,289,-184v1,-43,-9,-93,-99,-93v-48,0,-98,15,-131,36r-24,-80v36,-22,99,-43,176,-43xm224,-77v57,0,99,-36,100,-94r0,-67v-87,-1,-170,17,-170,91v0,48,31,70,70,70xm254,-538v-66,0,-109,-41,-109,-94v0,-55,40,-98,110,-98v67,0,107,41,107,97v0,55,-44,95,-108,95xm253,-582v31,0,49,-24,49,-52v0,-28,-18,-52,-49,-52v-64,0,-61,104,0,104","w":508},"\u00e3":{"d":"243,-498v277,2,177,270,209,498r-111,0r-9,-54r-3,0v-29,38,-80,65,-144,65v-98,0,-153,-71,-153,-145v0,-122,109,-185,289,-184v1,-43,-9,-93,-99,-93v-48,0,-98,15,-131,36r-24,-80v36,-22,99,-43,176,-43xm224,-77v58,0,99,-36,100,-94r0,-67v-87,-1,-170,17,-170,91v0,48,31,70,70,70xm306,-569v-54,0,-122,-92,-131,7r-61,0v-3,-76,28,-119,76,-119v38,0,74,39,106,39v15,0,24,-9,26,-43r60,0v2,80,-26,116,-76,116","w":508},"\u00e7":{"d":"407,-106r17,91v-22,11,-65,24,-120,25r-21,37v37,8,72,33,72,77v-1,95,-121,106,-190,71r17,-55v26,16,94,28,94,-14v0,-23,-26,-34,-78,-39r40,-81v-124,-17,-203,-110,-203,-245v0,-146,100,-259,271,-259v45,0,90,10,119,22r-22,93v-20,-10,-50,-19,-94,-19v-93,0,-148,69,-148,158v0,141,137,187,246,138","w":449,"k":{"T":13,"f":-5,"\u00df":-5,"c":9,"d":9,"e":9,"o":9,"q":9,"\u00f8":9,"\u00e7":9,"\u00e9":9,"\u00ea":9,"\u00eb":9,"\u00e8":9,"\u00f3":9,"\u00f4":9,"\u00f6":9,"\u00f2":9,"\u00f5":9,"t":-15,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"\u00bb":-13,"-":-9,"\u00ad":-9,"\"":-4,"'":-4,",":8,".":8}},"\u00e9":{"d":"479,-209r-326,0v-1,142,181,143,285,104r18,84v-42,18,-100,31,-170,31v-158,0,-251,-97,-251,-246v0,-135,82,-262,238,-262v177,0,223,148,206,289xm153,-295r214,0v1,-45,-19,-119,-101,-119v-76,0,-108,69,-113,119xm302,-698r120,0r-122,148r-85,0","w":516,"k":{"T":37,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"x":8,"-":-29,"\u00ad":-29,"\"":3,"'":3,",":14,".":14}},"\u00ea":{"d":"479,-209r-326,0v-1,142,181,143,285,104r18,84v-42,18,-100,31,-170,31v-158,0,-251,-97,-251,-246v0,-135,82,-262,238,-262v177,0,223,148,206,289xm153,-295r214,0v1,-45,-19,-119,-101,-119v-76,0,-108,69,-113,119xm227,-698r83,0r98,148r-85,0v-19,-29,-33,-64,-55,-90r-54,90r-84,0","w":516,"k":{"T":37,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"x":8,"-":-29,"\u00ad":-29,"\"":3,"'":3,",":14,".":14}},"\u00eb":{"d":"479,-209r-326,0v-1,142,181,143,285,104r18,84v-42,18,-100,31,-170,31v-158,0,-251,-97,-251,-246v0,-135,82,-262,238,-262v177,0,223,148,206,289xm153,-295r214,0v1,-45,-19,-119,-101,-119v-76,0,-108,69,-113,119xm175,-563v-35,0,-61,-28,-61,-61v0,-35,27,-62,63,-62v33,0,59,26,59,62v0,33,-25,61,-61,61xm435,-624v0,34,-25,62,-62,61v-34,0,-60,-28,-60,-61v0,-35,27,-62,62,-62v34,0,60,26,60,62","w":516,"k":{"T":37,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"x":8,"-":-29,"\u00ad":-29,"\"":3,"'":3,",":14,".":14}},"\u00e8":{"d":"479,-209r-326,0v-1,142,181,143,285,104r18,84v-42,18,-100,31,-170,31v-158,0,-251,-97,-251,-246v0,-135,82,-262,238,-262v177,0,223,148,206,289xm153,-295r214,0v1,-45,-19,-119,-101,-119v-76,0,-108,69,-113,119xm127,-698r120,0r87,148r-85,0","w":516,"k":{"T":37,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"x":8,"-":-29,"\u00ad":-29,"\"":3,"'":3,",":14,".":14}},"\u00ed":{"d":"189,0r-123,0r0,-487r123,0r0,487xm157,-698r121,0r-122,148r-85,0","w":256},"\u00ee":{"d":"189,0r-123,0r0,-487r123,0r0,487xm86,-698r83,0r98,148r-85,0v-20,-29,-34,-63,-56,-90r-53,90r-84,0","w":256},"\u00ef":{"d":"189,0r-123,0r0,-487r123,0r0,487xm28,-563v-35,0,-61,-28,-61,-61v0,-35,27,-62,63,-62v33,0,59,26,59,62v0,33,-25,61,-61,61xm289,-624v0,34,-25,62,-62,61v-34,0,-60,-28,-60,-61v0,-35,27,-62,62,-62v34,0,60,26,60,62","w":256},"\u00ec":{"d":"189,0r-123,0r0,-487r123,0r0,487xm-29,-698r120,0r87,148r-85,0","w":256},"\u00f1":{"d":"291,-398v-62,0,-102,46,-102,111r0,287r-123,0r0,-342v0,-56,-2,-103,-4,-145r107,0r6,73r3,0v22,-38,75,-84,156,-84v85,0,173,55,173,209r0,289r-123,0r0,-275v0,-70,-26,-123,-93,-123xm345,-569v-54,0,-122,-92,-131,7r-61,0v-3,-76,28,-119,76,-119v37,0,74,39,105,39v16,0,25,-9,27,-43r60,0v2,80,-26,116,-76,116","w":572,"k":{"T":54,"t":5,"v":16,"w":16,"y":16,"\u00fd":16,"\u00ff":16,"\"":11,"'":11}},"\u00f3":{"d":"287,-498v145,0,242,102,242,250v0,179,-126,259,-250,259v-137,0,-244,-94,-244,-251v0,-160,105,-258,252,-258xm284,-409v-87,0,-122,85,-122,166v0,94,47,165,121,165v70,0,119,-68,119,-167v0,-76,-34,-164,-118,-164xm308,-698r120,0r-122,148r-85,0","w":564,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"\u00f4":{"d":"287,-498v145,0,242,102,242,250v0,179,-126,259,-250,259v-137,0,-244,-94,-244,-251v0,-160,105,-258,252,-258xm284,-409v-87,0,-122,85,-122,166v0,94,47,165,121,165v70,0,119,-68,119,-167v0,-76,-34,-164,-118,-164xm240,-698r83,0r98,148r-85,0v-19,-29,-33,-64,-55,-90r-54,90r-84,0","w":564,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"\u00f6":{"d":"287,-498v145,0,242,102,242,250v0,179,-126,259,-250,259v-137,0,-244,-94,-244,-251v0,-160,105,-258,252,-258xm284,-409v-87,0,-122,85,-122,166v0,94,47,165,121,165v70,0,119,-68,119,-167v0,-76,-34,-164,-118,-164xm182,-563v-35,0,-61,-28,-61,-61v0,-35,27,-62,63,-62v33,0,59,26,59,62v0,33,-25,61,-61,61xm442,-624v0,34,-25,62,-62,61v-34,0,-60,-28,-60,-61v0,-35,27,-62,62,-62v34,0,60,26,60,62","w":564,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"\u00f2":{"d":"287,-498v145,0,242,102,242,250v0,179,-126,259,-250,259v-137,0,-244,-94,-244,-251v0,-160,105,-258,252,-258xm284,-409v-87,0,-122,85,-122,166v0,94,47,165,121,165v70,0,119,-68,119,-167v0,-76,-34,-164,-118,-164xm138,-698r120,0r87,148r-85,0","w":564,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"\u00f5":{"d":"287,-498v145,0,242,102,242,250v0,179,-126,259,-250,259v-137,0,-244,-94,-244,-251v0,-160,105,-258,252,-258xm284,-409v-87,0,-122,85,-122,166v0,94,47,165,121,165v70,0,119,-68,119,-167v0,-76,-34,-164,-118,-164xm340,-569v-54,0,-122,-92,-131,7r-61,0v-3,-76,28,-119,76,-119v37,0,75,39,106,39v16,0,24,-9,26,-43r60,0v2,80,-26,116,-76,116","w":564,"k":{"T":45,"v":8,"w":8,"y":8,"\u00fd":8,"\u00ff":8,"z":8,"x":19,"-":-15,"\u00ad":-15,")":6,"]":6,"}":6,"\"":16,"'":16,",":30,".":30}},"\u00fa":{"d":"278,-89v64,0,101,-43,101,-104r0,-294r123,0r0,341v0,58,2,106,4,146r-107,0r-6,-73r-3,0v-21,34,-69,84,-157,84v-88,0,-169,-53,-169,-212r0,-286r123,0r0,265v0,81,26,133,91,133xm318,-698r120,0r-122,148r-85,0","w":569,"k":{"T":35,",":7,".":7}},"\u00fb":{"d":"278,-89v64,0,101,-43,101,-104r0,-294r123,0r0,341v0,58,2,106,4,146r-107,0r-6,-73r-3,0v-21,34,-69,84,-157,84v-88,0,-169,-53,-169,-212r0,-286r123,0r0,265v0,81,26,133,91,133xm242,-698r84,0r98,148r-85,0v-20,-29,-34,-63,-56,-90r-53,90r-84,0","w":569,"k":{"T":35,",":7,".":7}},"\u00fc":{"d":"278,-89v64,0,101,-43,101,-104r0,-294r123,0r0,341v0,58,2,106,4,146r-107,0r-6,-73r-3,0v-21,34,-69,84,-157,84v-88,0,-169,-53,-169,-212r0,-286r123,0r0,265v0,81,26,133,91,133xm187,-563v-35,0,-61,-28,-61,-61v0,-35,27,-62,63,-62v33,0,59,26,59,62v0,33,-25,61,-61,61xm448,-624v0,34,-25,62,-62,61v-34,0,-60,-28,-60,-61v0,-35,27,-62,62,-62v34,0,60,26,60,62","w":569,"k":{"T":35,",":7,".":7}},"\u00f9":{"d":"278,-89v64,0,101,-43,101,-104r0,-294r123,0r0,341v0,58,2,106,4,146r-107,0r-6,-73r-3,0v-21,34,-69,84,-157,84v-88,0,-169,-53,-169,-212r0,-286r123,0r0,265v0,81,26,133,91,133xm136,-698r120,0r87,148r-85,0","w":569,"k":{"T":35,",":7,".":7}},"\u00fd":{"d":"47,117v61,-18,126,-62,146,-133v0,-5,-1,-12,-6,-24r-179,-447r136,0r87,261v10,30,21,67,28,94r3,0r102,-355r131,0v-75,189,-184,560,-291,645v-50,40,-99,58,-129,62xm292,-698r120,0r-122,148r-85,0","w":500,"k":{"T":34,"g":12,"\u011f":12,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":12,"\u015f":12,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,":":-14,";":-14,"-":6,"\u00ad":6,",":44,".":44}},"\u00ff":{"d":"47,117v61,-18,126,-62,146,-133v0,-5,-1,-12,-6,-24r-179,-447r136,0r87,261v10,30,21,67,28,94r3,0r102,-355r131,0v-75,189,-184,560,-291,645v-50,40,-99,58,-129,62xm161,-563v-35,0,-61,-28,-61,-61v0,-35,27,-62,63,-62v33,0,59,26,59,62v0,33,-25,61,-61,61xm422,-624v0,34,-25,62,-62,61v-34,0,-60,-28,-60,-61v0,-35,27,-62,62,-62v34,0,60,26,60,62","w":500,"k":{"T":34,"g":12,"\u011f":12,"c":13,"d":13,"e":13,"o":13,"q":13,"\u00f8":13,"\u00e7":13,"\u00e9":13,"\u00ea":13,"\u00eb":13,"\u00e8":13,"\u00f3":13,"\u00f4":13,"\u00f6":13,"\u00f2":13,"\u00f5":13,"s":12,"\u015f":12,"v":-16,"w":-16,"y":-16,"\u00fd":-16,"\u00ff":-16,"a":6,"\u00e6":6,"\u00e1":6,"\u00e2":6,"\u00e4":6,"\u00e0":6,"\u00e5":6,"\u00e3":6,":":-14,";":-14,"-":6,"\u00ad":6,",":44,".":44}},"\u20ac":{"d":"197,-240v12,95,83,150,177,151v49,0,95,-17,118,-29r21,89v-33,20,-89,40,-153,40v-152,-1,-269,-100,-289,-251r-64,0r0,-62r56,0v0,-18,0,-37,2,-52r-58,0r0,-62r67,0v28,-142,137,-244,291,-245v60,0,110,15,143,31r-25,92v-26,-13,-67,-26,-112,-26v-89,0,-156,61,-171,148r262,0r0,62r-274,0v-3,15,-2,34,-2,52r276,0r0,62r-265,0"},"\u011e":{"d":"395,7v-220,0,-359,-124,-359,-338v0,-214,152,-350,375,-350v83,0,148,17,179,32r-27,99v-37,-17,-82,-29,-153,-29v-144,0,-245,85,-245,242v0,153,94,244,234,244v45,0,77,-6,93,-13r0,-169r-119,0r0,-97r238,0r0,341v-43,16,-127,38,-216,38xm234,-834r68,0v4,22,20,47,65,47v45,0,62,-22,67,-47r66,0v-2,66,-42,117,-134,117v-92,0,-130,-50,-132,-117","w":666,"k":{"b":-3,"h":-3,"k":-3,"l":-3,"i":-3,"m":-3,"n":-3,"p":-3,"r":-3,"\u0131":-3,"\u00ed":-3,"\u00ee":-3,"\u00ef":-3,"\u00ec":-3,"\u00f1":-3,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"u":-3,"\u00fa":-3,"\u00fb":-3,"\u00fc":-3,"\u00f9":-3,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3,"a":-8,"\u00e6":-8,"\u00e1":-8,"\u00e2":-8,"\u00e4":-8,"\u00e0":-8,"\u00e5":-8,"\u00e3":-8}},"\u0130":{"d":"71,-674r123,0r0,674r-123,0r0,-674xm132,-717v-34,0,-60,-29,-60,-60v0,-34,27,-61,62,-61v33,0,58,27,58,61v0,31,-25,60,-60,60","w":264,"k":{"Y":13,"\u00dd":13,"f":-8,"\u00df":-8,"b":-6,"h":-6,"k":-6,"l":-6,"j":-3,"i":-6,"m":-6,"n":-6,"p":-6,"r":-6,"\u0131":-6,"\u00ed":-6,"\u00ee":-6,"\u00ef":-6,"\u00ec":-6,"\u00f1":-6,"t":-11,"v":-4,"w":-4,"y":-4,"\u00fd":-4,"\u00ff":-4,"z":-7}},"\u015e":{"d":"41,-32r28,-102v39,23,100,43,163,43v78,0,122,-37,122,-92v0,-51,-34,-81,-119,-112v-112,-40,-183,-99,-183,-196v0,-111,92,-194,239,-194v73,0,126,16,161,34r-29,99v-25,-13,-72,-32,-135,-32v-78,0,-111,41,-111,81v0,52,39,77,129,111v117,45,173,103,173,200v0,92,-59,174,-184,197r-25,42v38,5,71,33,71,71v0,89,-128,101,-189,65r18,-49v28,16,93,29,93,-13v0,-22,-26,-35,-78,-39r38,-71v-62,1,-138,-18,-182,-43","w":519,"k":{"\u00e6":-6,"b":3,"h":3,"k":3,"l":3,"j":7,"c":-6,"d":-6,"e":-6,"o":-6,"q":-6,"\u00f8":-6,"\u00e7":-6,"\u00e9":-6,"\u00ea":-6,"\u00eb":-6,"\u00e8":-6,"\u00f3":-6,"\u00f4":-6,"\u00f6":-6,"\u00f2":-6,"\u00f5":-6,"t":4,"v":12,"w":12,"y":12,"\u00fd":12,"\u00ff":12,"a":-6,"\u00e1":-6,"\u00e2":-6,"\u00e4":-6,"\u00e0":-6,"\u00e5":-6,"\u00e3":-6,"-":-9,"\u00ad":-9}},"\u011f":{"d":"511,-487v-7,109,-3,290,-4,416v0,102,-21,175,-72,221v-90,79,-256,73,-358,20r27,-93v31,18,83,37,142,37v93,0,156,-72,138,-189v-28,43,-77,72,-142,72v-121,0,-207,-100,-207,-238v0,-160,104,-257,221,-257v77,0,116,39,143,76r5,-65r107,0xm279,-95v59,0,105,-46,105,-118r0,-79v-2,-67,-42,-112,-104,-112v-69,0,-120,60,-120,159v0,83,42,150,119,150xm151,-688r67,0v5,38,27,65,64,65v44,0,64,-32,66,-65r67,0v-1,80,-49,135,-132,135v-91,0,-131,-62,-132,-135","w":573,"k":{"T":33,"f":-3,"\u00df":-3,"i":4,"m":4,"n":4,"p":4,"r":4,"\u0131":4,"\u00ed":4,"\u00ee":4,"\u00ef":4,"\u00ec":4,"\u00f1":4,",":16,".":16}},"\u015f":{"d":"35,-24r26,-89v41,33,204,62,202,-20v0,-33,-20,-50,-80,-71v-95,-33,-134,-84,-134,-142v0,-86,71,-152,184,-152v54,0,101,13,130,29r-25,86v-20,-12,-60,-28,-103,-28v-44,0,-68,22,-68,52v0,31,23,46,85,68v89,32,130,77,130,148v0,74,-48,131,-140,148r-24,42v37,5,71,31,71,71v0,90,-126,101,-189,65r18,-49v30,16,93,29,93,-13v0,-22,-26,-35,-78,-39r38,-72v-36,0,-89,-10,-136,-34","w":417,"k":{"T":30,",":11,".":11}},"\u20ab":{"d":"88,-101r363,0r0,75r-363,0r0,-75xm342,-670r104,0r0,62r64,0r0,62r-64,0r0,290v0,36,2,75,3,98r-93,0v-3,-17,1,-41,-6,-54v-23,39,-68,63,-123,63v-91,0,-161,-71,-161,-180v-1,-118,77,-188,170,-188v51,0,84,22,106,46r0,-75r-122,0r0,-62r122,0r0,-62xm258,-229v63,0,84,-52,84,-129v0,-50,-35,-81,-81,-81v-58,0,-89,45,-89,107v0,60,32,103,86,103"},"\u00ad":{"d":"30,-309r255,0r0,85r-255,0r0,-85","w":291,"k":{"T":53,"J":12,"C":-13,"G":-13,"O":-13,"Q":-13,"\u00d8":-13,"\u00c7":-13,"\u00d3":-13,"\u00d4":-13,"\u00d6":-13,"\u00d2":-13,"\u00d5":-13,"\u011e":-13,"V":19,"W":19,"X":19,"Y":56,"\u00dd":56,"A":5,"\u00c6":5,"\u00c1":5,"\u00c2":5,"\u00c4":5,"\u00c0":5,"\u00c5":5,"\u00c3":5,"g":-9,"\u011f":-9,"c":-17,"d":-17,"e":-17,"o":-17,"q":-17,"\u00f8":-17,"\u00e7":-17,"\u00e9":-17,"\u00ea":-17,"\u00eb":-17,"\u00e8":-17,"\u00f3":-17,"\u00f4":-17,"\u00f6":-17,"\u00f2":-17,"\u00f5":-17,"v":3,"w":3,"y":3,"\u00fd":3,"\u00ff":3}},"\u00a0":{"w":207,"k":{"T":40,"V":36,"W":36,"Y":43,"\u00dd":43}}}});

// IE5.5+ PNG Alpha Fix v2.0 Alpha: Background Tiling Support
// (c) 2008-2009 Angus Turnbull http://www.twinhelix.com

// This is licensed under the GNU LGPL, version 2.1 or later.
// For details, see: http://creativecommons.org/licenses/LGPL/2.1/

var IEPNGFix = window.IEPNGFix || {};

IEPNGFix.tileBG = function(elm, pngSrc, ready) {
	// Params: A reference to a DOM element, the PNG src file pathname, and a
	// hidden "ready-to-run" passed when called back after image preloading.

	var data = this.data[elm.uniqueID],
		elmW = Math.max(elm.clientWidth, elm.scrollWidth),
		elmH = Math.max(elm.clientHeight, elm.scrollHeight),
		bgX = elm.currentStyle.backgroundPositionX,
		bgY = elm.currentStyle.backgroundPositionY,
		bgR = elm.currentStyle.backgroundRepeat;

	// Cache of DIVs created per element, and image preloader/data.
	if (!data.tiles) {
		data.tiles = {
			elm: elm,
			src: '',
			cache: [],
			img: new Image(),
			old: {}
		};
	}
	var tiles = data.tiles,
		pngW = tiles.img.width,
		pngH = tiles.img.height;

	if (pngSrc) {
		if (!ready && pngSrc != tiles.src) {
			// New image? Preload it with a callback to detect dimensions.
			tiles.img.onload = function() {
				this.onload = null;
				IEPNGFix.tileBG(elm, pngSrc, 1);
			};
			return tiles.img.src = pngSrc;
		}
	} else {
		// No image?
		if (tiles.src) ready = 1;
		pngW = pngH = 0;
	}
	tiles.src = pngSrc;

	if (!ready && elmW == tiles.old.w && elmH == tiles.old.h &&
		bgX == tiles.old.x && bgY == tiles.old.y && bgR == tiles.old.r) {
		return;
	}

	// Convert English and percentage positions to pixels.
	var pos = {
			top: '0%',
			left: '0%',
			center: '50%',
			bottom: '100%',
			right: '100%'
		},
		x,
		y,
		pc;
	x = pos[bgX] || bgX;
	y = pos[bgY] || bgY;
	if (pc = x.match(/(\d+)%/)) {
		x = Math.round((elmW - pngW) * (parseInt(pc[1]) / 100));
	}
	if (pc = y.match(/(\d+)%/)) {
		y = Math.round((elmH - pngH) * (parseInt(pc[1]) / 100));
	}
	x = parseInt(x);
	y = parseInt(y);

	// Handle backgroundRepeat.
	var repeatX = { 'repeat': 1, 'repeat-x': 1 }[bgR],
		repeatY = { 'repeat': 1, 'repeat-y': 1 }[bgR];
	if (repeatX) {
		x %= pngW;
		if (x > 0) x -= pngW;
	}
	if (repeatY) {
		y %= pngH;
		if (y > 0) y -= pngH;
	}

	// Go!
	this.hook.enabled = 0;
	if (!({ relative: 1, absolute: 1 }[elm.currentStyle.position])) {
		elm.style.position = 'relative';
	}
	var count = 0,
		xPos,
		maxX = repeatX ? elmW : x + 0.1,
		yPos,
		maxY = repeatY ? elmH : y + 0.1,
		d,
		s,
		isNew;
	if (pngW && pngH) {
		for (xPos = x; xPos < maxX; xPos += pngW) {
			for (yPos = y; yPos < maxY; yPos += pngH) {
				isNew = 0;
				if (!tiles.cache[count]) {
					tiles.cache[count] = document.createElement('div');
					isNew = 1;
				}
				var clipR = Math.max(0, xPos + pngW > elmW ? elmW - xPos : pngW),
					clipB = Math.max(0, yPos + pngH > elmH ? elmH - yPos : pngH);
				d = tiles.cache[count];
				s = d.style;
				s.behavior = 'none';
				s.left = (xPos - parseInt(elm.currentStyle.paddingLeft)) + 'px';
				s.top = yPos + 'px';
				s.width = clipR + 'px';
				s.height = clipB + 'px';
				s.clip = 'rect(' +
					(yPos < 0 ? 0 - yPos : 0) + 'px,' +
					clipR + 'px,' +
					clipB + 'px,' +
					(xPos < 0 ? 0 - xPos : 0) + 'px)';
				s.display = 'block';
				if (isNew) {
					s.position = 'absolute';
					s.zIndex = -999;
					if (elm.firstChild) {
						elm.insertBefore(d, elm.firstChild);
					} else {
						elm.appendChild(d);
					}
				}
				this.fix(d, pngSrc, 0);
				count++;
			}
		}
	}
	while (count < tiles.cache.length) {
		this.fix(tiles.cache[count], '', 0);
		tiles.cache[count++].style.display = 'none';
	}

	this.hook.enabled = 1;

	// Cache so updates are infrequent.
	tiles.old = {
		w: elmW,
		h: elmH,
		x: bgX,
		y: bgY,
		r: bgR
	};
};


IEPNGFix.update = function() {
	// Update all PNG backgrounds.
	for (var i in IEPNGFix.data) {
		var t = IEPNGFix.data[i].tiles;
		if (t && t.elm && t.src) {
			IEPNGFix.tileBG(t.elm, t.src);
		}
	}
};
IEPNGFix.update.timer = 0;

if (window.attachEvent && !window.opera) {
	window.attachEvent('onresize', function() {
		clearTimeout(IEPNGFix.update.timer);
		IEPNGFix.update.timer = setTimeout(IEPNGFix.update, 100);
	});
}

/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function(jQuery){jQuery.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=jQuery.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){jQuery(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;jQuery(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{jQuery(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
/*
* Slides, A Slideshow Plugin for jQuery
* Intructions: http://slidesjs.com
* By: Nathan Searles, http://nathansearles.com
* Version: 1.1.8
* Updated: June 1st, 2011
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(function(A){A.fn.slides=function(B){B=A.extend({},A.fn.slides.option,B);return this.each(function(){A("."+B.container,A(this)).children().wrapAll('<div class="slides_control"/>');var V=A(this),J=A(".slides_control",V),Z=J.children().size(),Q=J.children().outerWidth(),M=J.children().outerHeight(),D=B.start-1,L=B.effect.indexOf(",")<0?B.effect:B.effect.replace(" ","").split(",")[0],S=B.effect.indexOf(",")<0?L:B.effect.replace(" ","").split(",")[1],O=0,N=0,C=0,P=0,U,H,I,X,W,T,K,F;function E(c,b,a){if(!H&&U){H=true;B.animationStart(P+1);switch(c){case"next":N=P;O=P+1;O=Z===O?0:O;X=Q*2;c=-Q*2;P=O;break;case"prev":N=P;O=P-1;O=O===-1?Z-1:O;X=0;c=0;P=O;break;case"pagination":O=parseInt(a,10);N=A("."+B.paginationClass+" li."+B.currentClass+" a",V).attr("href").match("[^#/]+$");if(O>N){X=Q*2;c=-Q*2;}else{X=0;c=0;}P=O;break;}if(b==="fade"){if(B.crossfade){J.children(":eq("+O+")",V).css({zIndex:10}).fadeIn(B.fadeSpeed,B.fadeEasing,function(){if(B.autoHeight){J.animate({height:J.children(":eq("+O+")",V).outerHeight()},B.autoHeightSpeed,function(){J.children(":eq("+N+")",V).css({display:"none",zIndex:0});J.children(":eq("+O+")",V).css({zIndex:0});B.animationComplete(O+1);H=false;});}else{J.children(":eq("+N+")",V).css({display:"none",zIndex:0});J.children(":eq("+O+")",V).css({zIndex:0});B.animationComplete(O+1);H=false;}});}else{J.children(":eq("+N+")",V).fadeOut(B.fadeSpeed,B.fadeEasing,function(){if(B.autoHeight){J.animate({height:J.children(":eq("+O+")",V).outerHeight()},B.autoHeightSpeed,function(){J.children(":eq("+O+")",V).fadeIn(B.fadeSpeed,B.fadeEasing);});}else{J.children(":eq("+O+")",V).fadeIn(B.fadeSpeed,B.fadeEasing,function(){if(A.browser.msie){A(this).get(0).style.removeAttribute("filter");}});}B.animationComplete(O+1);H=false;});}}else{J.children(":eq("+O+")").css({left:X,display:"block"});if(B.autoHeight){J.animate({left:c,height:J.children(":eq("+O+")").outerHeight()},B.slideSpeed,B.slideEasing,function(){J.css({left:-Q});J.children(":eq("+O+")").css({left:Q,zIndex:5});J.children(":eq("+N+")").css({left:Q,display:"none",zIndex:0});B.animationComplete(O+1);H=false;});}else{J.animate({left:c},B.slideSpeed,B.slideEasing,function(){J.css({left:-Q});J.children(":eq("+O+")").css({left:Q,zIndex:5});J.children(":eq("+N+")").css({left:Q,display:"none",zIndex:0});B.animationComplete(O+1);H=false;});}}if(B.pagination){A("."+B.paginationClass+" li."+B.currentClass,V).removeClass(B.currentClass);A("."+B.paginationClass+" li:eq("+O+")",V).addClass(B.currentClass);}}}function R(){clearInterval(V.data("interval"));}function G(){if(B.pause){clearTimeout(V.data("pause"));clearInterval(V.data("interval"));K=setTimeout(function(){clearTimeout(V.data("pause"));F=setInterval(function(){E("next",L);},B.play);V.data("interval",F);},B.pause);V.data("pause",K);}else{R();}}if(Z<2){return ;}if(D<0){D=0;}if(D>Z){D=Z-1;}if(B.start){P=D;}if(B.randomize){J.randomize();}A("."+B.container,V).css({overflow:"hidden",position:"relative"});J.children().css({position:"absolute",top:0,left:J.children().outerWidth(),zIndex:0,display:"none"});J.css({position:"relative",width:(Q*3),height:M,left:-Q});A("."+B.container,V).css({display:"block"});if(B.autoHeight){J.children().css({height:"auto"});J.animate({height:J.children(":eq("+D+")").outerHeight()},B.autoHeightSpeed);}if(B.preload&&J.find("img:eq("+D+")").length){A("."+B.container,V).css({background:"url("+B.preloadImage+") no-repeat 50% 50%"});var Y=J.find("img:eq("+D+")").attr("src")+"?"+(new Date()).getTime();if(A("img",V).parent().attr("class")!="slides_control"){T=J.children(":eq(0)")[0].tagName.toLowerCase();}else{T=J.find("img:eq("+D+")");}J.find("img:eq("+D+")").attr("src",Y).load(function(){J.find(T+":eq("+D+")").fadeIn(B.fadeSpeed,B.fadeEasing,function(){A(this).css({zIndex:5});A("."+B.container,V).css({background:""});U=true;B.slidesLoaded();});});}else{J.children(":eq("+D+")").fadeIn(B.fadeSpeed,B.fadeEasing,function(){U=true;B.slidesLoaded();});}if(B.bigTarget){J.children().css({cursor:"pointer"});J.children().click(function(){E("next",L);return false;});}if(B.hoverPause&&B.play){J.bind("mouseover",function(){R();});J.bind("mouseleave",function(){G();});}if(B.generateNextPrev){A("."+B.container,V).after('<a href="#" class="'+B.prev+'">Prev</a>');A("."+B.prev,V).after('<a href="#" class="'+B.next+'">Next</a>');}A("."+B.next,V).click(function(a){a.preventDefault();if(B.play){G();}E("next",L);});A("."+B.prev,V).click(function(a){a.preventDefault();if(B.play){G();}E("prev",L);});if(B.generatePagination){if(B.prependPagination){V.prepend("<ul class="+B.paginationClass+"></ul>");}else{V.append("<ul class="+B.paginationClass+"></ul>");}J.children().each(function(){A("."+B.paginationClass,V).append('<li><a href="#'+C+'">'+(C+1)+"</a></li>");C++;});}else{A("."+B.paginationClass+" li a",V).each(function(){A(this).attr("href","#"+C);C++;});}A("."+B.paginationClass+" li:eq("+D+")",V).addClass(B.currentClass);A("."+B.paginationClass+" li a",V).click(function(){if(B.play){G();}I=A(this).attr("href").match("[^#/]+$");if(P!=I){E("pagination",S,I);}return false;});A("a.link",V).click(function(){if(B.play){G();}I=A(this).attr("href").match("[^#/]+$")-1;if(P!=I){E("pagination",S,I);}return false;});if(B.play){F=setInterval(function(){E("next",L);},B.play);V.data("interval",F);}});};A.fn.slides.option={preload:false,preloadImage:"/img/loading.gif",container:"slides_container",generateNextPrev:false,next:"next",prev:"prev",pagination:true,generatePagination:true,prependPagination:false,paginationClass:"pagination",currentClass:"current",fadeSpeed:350,fadeEasing:"",slideSpeed:350,slideEasing:"",start:1,effect:"slide",crossfade:false,randomize:false,play:0,pause:0,hoverPause:false,autoHeight:false,autoHeightSpeed:350,bigTarget:false,animationStart:function(){},animationComplete:function(){},slidesLoaded:function(){}};A.fn.randomize=function(C){function B(){return(Math.round(Math.random())-0.5);}return(A(this).each(function(){var F=A(this);var E=F.children();var D=E.length;if(D>1){E.hide();var G=[];for(i=0;i<D;i++){G[G.length]=i;}G=G.sort(B);A.each(G,function(I,H){var K=E.eq(H);var J=K.clone(true);J.show().appendTo(F);if(C!==undefined){C(K,J);}K.remove();});}}));};})(jQuery);

