From f1f1f2e16f014cb07819a84ef235d869da71e254 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Sun, 20 Apr 2014 16:36:50 +0100
Subject: [PATCH] remove the autovpn code (on a separate repository)

---
 README.rst                               |  12 +
 autoca/newcert.py                        |  53 ---
 autovpn/README.rst                       |  85 -----
 autovpn/__init__.py                      |   0
 autovpn/acct.py                          | 183 ----------
 autovpn/static/ant.jpg                   | Bin 3696 -> 0 bytes
 autovpn/static/background.jpg            | Bin 58236 -> 0 bytes
 autovpn/static/favicon.ico               | Bin 659 -> 0 bytes
 autovpn/static/jquery-1.6.4.min.js       |   4 -
 autovpn/static/jquery.backstretch.min.js |  11 -
 autovpn/static/lock.png                  | Bin 4711 -> 0 bytes
 autovpn/static/lock_small.png            | Bin 1093 -> 0 bytes
 autovpn/static/style.css                 |  68 ----
 autovpn/templates/_base.html             |  35 --
 autovpn/templates/download.html          |  24 --
 autovpn/templates/download_retry.html    |  16 -
 autovpn/templates/index.html             |  27 --
 autovpn/templates/login.html             |  35 --
 autovpn/test/__init__.py                 |   0
 autovpn/test/test_vpn_app.py             |  70 ----
 autovpn/vpn_app.py                       | 442 -----------------------
 setup.py                                 |  36 +-
 22 files changed, 27 insertions(+), 1074 deletions(-)
 create mode 100644 README.rst
 delete mode 100755 autoca/newcert.py
 delete mode 100644 autovpn/README.rst
 delete mode 100644 autovpn/__init__.py
 delete mode 100644 autovpn/acct.py
 delete mode 100644 autovpn/static/ant.jpg
 delete mode 100644 autovpn/static/background.jpg
 delete mode 100644 autovpn/static/favicon.ico
 delete mode 100644 autovpn/static/jquery-1.6.4.min.js
 delete mode 100644 autovpn/static/jquery.backstretch.min.js
 delete mode 100644 autovpn/static/lock.png
 delete mode 100644 autovpn/static/lock_small.png
 delete mode 100644 autovpn/static/style.css
 delete mode 100644 autovpn/templates/_base.html
 delete mode 100644 autovpn/templates/download.html
 delete mode 100644 autovpn/templates/download_retry.html
 delete mode 100644 autovpn/templates/index.html
 delete mode 100644 autovpn/templates/login.html
 delete mode 100644 autovpn/test/__init__.py
 delete mode 100644 autovpn/test/test_vpn_app.py
 delete mode 100644 autovpn/vpn_app.py

diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..f78b039
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,12 @@
+
+++++++
+autoca
+++++++
+
+
+A Certification Authority manager with a very simple API (and an HTTP
+web interface).
+
+Suitable for low-security authorities that can be used as a web
+service. For a practical example, see http://vpn.autistici.org/
+where it is used to provide OpenVPN short-term certificates.
diff --git a/autoca/newcert.py b/autoca/newcert.py
deleted file mode 100755
index ac3db1d..0000000
--- a/autoca/newcert.py
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/python
-# An example of how to create a new certificate request with certutil
-# $Id$
-
-import os, sys
-import certutil
-import optparse
-import urllib
-import urllib2
-from OpenSSL import crypto
-
-
-AUTOCA_URL = "https://www.autistici.org/internalca"
-AUTOCA_CONF = "ca.yml"
-
-
-def main():
-    parser = optparse.OptionParser(usage="Usage: newcert [<OPTIONS>] <CN>")
-    parser.add_option("-c", "--config", dest="config_file", default=AUTOCA_CONF,
-                      help="Load CA configuration from this file")
-    parser.add_option("-u", "--ca-url", dest="ca_url", default=AUTOCA_URL,
-                      help="Set AutoCA endpoint URL")
-    parser.add_option("-o", "--output", dest="output_base", default="newcert",
-                      help="Set the name of the output files (minus the extension)")
-    opts, args = parser.parse_args()
-    if len(args) != 1:
-        parser.error("Wrong number of arguments")
-
-    cn = args[0]
-    ca = certutil.CA(opts.config_file, load=False)
-    pkey = ca.create_rsa_key_pair()
-    req = ca.create_cert_request(pkey, CN=cn)
-
-    key_file = "%s.key" % opts.output_base
-    csr_file = "%s.csr" % opts.output_base
-    crt_file = "%s.pem" % opts.output_base
-
-    csr = crypto.dump_certificate_request(crypto.FILETYPE_PEM, req)
-    open(key_file, "w").write(crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey))
-    os.chmod(key_file, 0400)
-    open(csr_file, "w").write(csr)
-
-    data = urllib.urlencode({"cert": csr})
-    req = urllib2.urlopen(AUTOCA_URL + "/sign", data)
-    signed = req.read()
-    open(crt_file, "w").write(signed)
-
-    print "private key saved in %s" % key_file
-    print "public cert saved in %s" % crt_file
-
-
-if __name__ == "__main__":
-    main()
diff --git a/autovpn/README.rst b/autovpn/README.rst
deleted file mode 100644
index 936865f..0000000
--- a/autovpn/README.rst
+++ /dev/null
@@ -1,85 +0,0 @@
-
-AutoVPN
-=======
-
-A simple self-service OpenVPN infrastructure (with X.509 PKI).
-
-
-Installation
-------------
-
-The 'autovpn' Python package is bundled with 'autoca'.
-Once you've got the autoca/autovpn sources, just run::
-
-    $ sudo python setup.py install
-
-from the top-level directory.
-
-
-Configuration
--------------
-
-How to run the AutoVPN web application will depend on the deployment
-method that you choose (mod_wsgi, FastCGI, standalone HTTP server...).
-Examples of a few different drivers can be found in the apps/
-directory.
-
-In all cases though, you'll need to create a configuration file and
-point the application at it (for example using the VPN_APP_CONFIG
-environment variable). This file should define the following variables
-(using Python syntax):
-
-VPN_ENDPOINT
-  DNS name for the VPN server (use more than one A record for
-  crude load balancing)
-
-VPN_SITE_URL
-  The public URL for the AutoVPN web application
-
-VPN_CERT_VALIDITY
-  How many days should the generated certificates be valid for
-  (default: 7)
-
-VPN_DEFAULT_SUBJECT_ATTRS
-  A dictionary containing X.509 attributes to use as defaults for
-  the subject of the generated certificates. For example::
-
-    VPN_DEFAULT_SUBJECT_ATTRS = {'O': 'My VPN', 'C': 'IT'}
-
-  The app will only set the 'CN' attribute.
-
-There are two different options to connect to the CA, you can either
-connect to a remote autoca web application:
-
-VPN_CA_URL
-  URL of the remote autoca web application
-
-CA_SHARED_SECRET
-  (optional) the shared secret to use for authentication
-
-Otherwise, you can instantiate a CA that is local to the AutoVPN
-application itself (for simpler deployments):
-
-VPN_CA_ROOT
-  Base directory for the CA storage -- keep it private!
-
-VPN_CA_BITS
-  How many bits to use for the CA RSA key (default 4096)
-
-VPN_CA_SUBJECT
-  Dictionary with the X.509 CA subject attributes
-
-In this latter case, the autoca web application will be available
-under the /ca/ URL prefix.
-
-The VPN web application supports authentication (to control who has
-access to the certificate generation). To enable it, define the
-following variables:
-
-AUTH_ENABLE
-  Set this to True to enable authentication
-
-AUTH_FUNCTION
-  Set this to a function that should accept two arguments (username
-  and password) and return a True/Fals result.
-
diff --git a/autovpn/__init__.py b/autovpn/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/autovpn/acct.py b/autovpn/acct.py
deleted file mode 100644
index 3d3a9fa..0000000
--- a/autovpn/acct.py
+++ /dev/null
@@ -1,183 +0,0 @@
-import json
-import optparse
-import redis
-import time
-
-
-def time2day(unix_stamp):
-    return time.strftime('%Y%m%d', time.gmtime(unix_stamp))
-
-
-class Accounting(object):
-
-    def __init__(self, local_db, aggr_db=None):
-        self._local_db = local_db
-        self._aggr_db = aggr_db or local_db
-
-    def add_connection(self, cn, conn_info):
-        data = json.dumps(conn_info)
-        local_pipe = self._local_db.pipeline()
-        local_pipe.sadd('in_cns', cn)
-        local_pipe.rpush('aggr_in:%s' % cn, data)
-        local_pipe.execute()
-
-    def get_connections(self, cn, n=0):
-        return (json.loads(x) for x in
-                self._aggr_db.lrange('connections:%s' % cn, 0, (n - 1)))
-
-    def aggregate(self, cn):
-        conns = []
-        local_pipe = self._local_db.pipeline()
-        while True:
-            try:
-                key = 'aggr_in:%s' % cn
-                local_pipe.watch(key)
-                for data in local_pipe.lrange(key, 0, -1):
-                    conns.append(data)
-                local_pipe.delete(key)
-                break
-            except redis.WatchError:
-                del conns[:]
-            finally:
-                local_pipe.reset()
-
-        # Compute daily aggregates, and copy the connection data to the master.
-        aggr = {}
-        pipe = self._aggr_db.pipeline()
-        pipe.sadd('all_cns', cn)
-        for data in conns:
-            pipe.lpush('connections:%s' % cn, data)
-            conn_info = json.loads(data)
-            day = time2day(conn_info['end_time'])
-            aggr_day = aggr.setdefault(day, {'conn_time': 0,
-                                             'bytes_sent': 0,
-                                             'bytes_recv': 0})
-            for attr in ('conn_time', 'bytes_recv', 'bytes_sent'):
-                aggr_day[attr] += conn_info[attr]
-        pipe.execute()
-
-        # Short return if there's nothing to do.
-        if not aggr:
-            return
-
-        # Aggregate values on the master server.
-        days = aggr.keys()
-        aggr_key = 'aggr:%s' % cn
-        pipe = self._aggr_db.pipeline()
-        while True:
-            try:
-                pipe.watch(aggr_key)
-                old_aggr = {}
-                for day, data in zip(days, pipe.hmget(aggr_key, days)):
-                    if data:
-                        old_aggr[day] = json.loads(data)
-                pipe.multi()
-                for day, aggr_data in aggr.iteritems():
-                    old_aggr_data = old_aggr.get(day, {})
-                    for attr in aggr_data:
-                        aggr_data[attr] += old_aggr_data.get(attr, 0)
-                    pipe.hset(aggr_key, day, json.dumps(aggr_data))
-                pipe.execute()
-                break
-            except redis.WatchError:
-                continue
-            finally:
-                pipe.reset()
-
-    def aggregate_all(self):
-        local_pipe = self._local_db.pipeline()
-        while True:
-            try:
-                local_pipe.watch('in_cns')
-                input_cns = local_pipe.smembers('in_cns')
-                local_pipe.delete('in_cns')
-                break
-            except redis.WatchError:
-                continue
-            finally:
-                local_pipe.reset()
-        for cn in input_cns:
-            self.aggregate(cn)
-
-    def get_aggregate_counts(self, cn, when=None):
-        if not when:
-            when = time.time()
-        day = time2day(when)
-        data = self._aggr_db.hget('aggr:%s' % cn, day)
-        if data:
-            return json.loads(data)
-        else:
-            return {'bytes_sent': 0, 'bytes_recv': 0, 'conn_time': 0}
-
-
-def str2kv(args):
-    return dict(x.split('=', 1) for x in args)
-
-
-def main():
-    parser = optparse.OptionParser()
-    parser.add_option('--db', dest='local_db', default='localhost',
-                      help='endpoint of the local Redis database')
-    parser.add_option('--aggr-db', dest='aggr_db',
-                      help='endpoint of the aggregate Redis database (optional)')
-    parser.add_option('--password', dest='password',
-                      help='Redis password (optional)')
-    opts, args = parser.parse_args()
-    if not args:
-        parser.error('No command specified')
-    cmd, args = args[0], args[1:]
-    if cmd == 'help':
-        parser.show_help()
-
-    local_db = redis.Redis(opts.local_db, password=opts.password)
-    if opts.aggr_db:
-        aggr_db = redis.Redis(opts.aggr_db, password=opts.password)
-    else:
-        aggr_db = None
-
-    acct = Accounting(local_db, aggr_db)
-    if cmd == 'connect':
-        if len(args) < 2:
-            parser.error('Syntax: connect <CN> <ATTR=VALUE>...')
-        cn = args[0]
-        conn_info = str2kv(args[1:])
-        for mandatory in ('bytes_sent', 'bytes_recv', 'remote_ip', 'conn_time'):
-            if mandatory not in conn_info:
-                parser.error('Missing mandatory attribute "%s"' % mandatory)
-        for int_attr in ('bytes_sent', 'bytes_recv', 'conn_time'):
-            conn_info[int_attr] = int(conn_info[int_attr])
-        conn_info['end_time'] = int(time.time())
-        conn_info['start_time'] = conn_info['end_time'] - conn_info['conn_time']
-        acct.add_connection(cn, conn_info)
-    elif cmd == 'aggregate':
-        if len(args) != 1:
-            parser.error('Syntax: aggregate <CN | "all">')
-        cn = args[0]
-        if cn == 'all':
-            acct.aggregate_all()
-        else:
-            acct.aggregate(cn)
-    elif cmd == 'get-aggr':
-        if len(args) != 1:
-            parser.error('Syntax: get-aggr <CN>')
-        cn = args[0]
-        result = acct.get_aggregate_counts(cn)
-        for key in sorted(result):
-            print '%s %d' % (key, result[key])
-    elif cmd == 'list':
-        if len(args) != 1:
-            parser.error('Syntax: list <CN>')
-        cn = args[0]
-        for conn in acct.get_connections(cn):
-            print '%s  %s  %-6d %-20s %-20s' % (
-                time.strftime('%Y/%m/%d %H:%M:%S', time.gmtime(conn['start_time'])),
-                time.strftime('%Y/%m/%d %H:%M:%S', time.gmtime(conn['end_time'])),
-                conn['conn_time'],
-                '%d/%d' % (conn['bytes_recv'], conn['bytes_sent']),
-                conn['remote_ip'])
-    else:
-        parser.error('Unknown command "%s"' % cmd)
-
-
-if __name__ == '__main__':
-    main()
diff --git a/autovpn/static/ant.jpg b/autovpn/static/ant.jpg
deleted file mode 100644
index d190260fa282ca5cf237b31d428832d50de031e6..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 3696
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

diff --git a/autovpn/static/background.jpg b/autovpn/static/background.jpg
deleted file mode 100644
index b0b2486d6f58e4a7b624375bf7464976253a946e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 58236
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%0Dp_#ul
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
YO@~zSqmP7{sK_+$unu(f*!uq_0J-5FAOHXW

diff --git a/autovpn/static/favicon.ico b/autovpn/static/favicon.ico
deleted file mode 100644
index e32a25149caa7fec83d0c1dfa5a9e99d7a3c3526..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 659
zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4i*LmhONKMUokK+u%tWsIx;Y9?5p`5IGKTg
zVRfdnbAYF_vqC^oep+TuDg#5soT(EGxehrnusm;C8o{dF{kuWoM^nKeQ!&G324(3z
zzDYKdf<MOpQ+eRdl0Ca2$)RvnYixvsz{ZW+J~Y(6)RJXAsTJvc&mc3m*<cRyly;-V
zhaa~wWE}I-Pu>3CD}VM?%>vf4^mN${!3X(8uN{0C?E95jlh}A}**e5$uJlnXP1UQv
z_wU)$hx;5Dl5W)OV)W?0y0Z7s>_ftT)+@!^GI@J2Ffb@2dj$D1FjT2RFarZNy2wZ_
zfq{X6v%n*=n1O*?7=#%aX3ddcU|<aLba4#Pn3&pU?;V{eakTz@b-q`TvRZ=Al`Bib
z1ne7ru*<Y4iN+i`dUE09<_rA~j|*7s(0r@obkULZ;891D7XnUN%Q{)se_yn3d9(S-
zN0rlxEBKzv1TUDraKXly|CeMIJ4m@pm{jQ%|7N!SZXW70k$?Ve`*&)^XMzq16`xaN
zxOwWp_7CQZ9Sa)RN}o-6a5C4TC1BOB%p1qNAM$+3>fy67p0(k4(Uw>CHLMoq+)*Kn
zt51Y%$+UV_G3&t>RX#<TcT<H<&H34XRQ&ypXD^Sd2erm8yQz8dv8kX`;n#N_ndg^I
zX8C_jse#k$ZrqGT?wqFAjxaF3*uOCK(7L<7>Ko1TKTPr3GB3B_sI|zAG*>o{tvT;F
z6pZ%VN;os;=99(EXSRObmLr|@K8S_QXt#*wy2X3`z0mbbnQEo`y)v_{@3+3x&)skC
oOqQQ~$M?(Ldp{!MxU>H=xG}Fhn|fzs6DTq~UHx3vIVCg!06BONDgXcg

diff --git a/autovpn/static/jquery-1.6.4.min.js b/autovpn/static/jquery-1.6.4.min.js
deleted file mode 100644
index 3684c36..0000000
--- a/autovpn/static/jquery-1.6.4.min.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.6.4 http://jquery.com/ | http://jquery.org/license */
-(function(a,b){function cu(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cr(a){if(!cg[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ch||(ch=c.createElement("iframe"),ch.frameBorder=ch.width=ch.height=0),b.appendChild(ch);if(!ci||!ch.createElement)ci=(ch.contentWindow||ch.contentDocument).document,ci.write((c.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>"),ci.close();d=ci.createElement(a),ci.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ch)}cg[a]=e}return cg[a]}function cq(a,b){var c={};f.each(cm.concat.apply([],cm.slice(0,b)),function(){c[this]=a});return c}function cp(){cn=b}function co(){setTimeout(cp,0);return cn=f.now()}function cf(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ce(){try{return new a.XMLHttpRequest}catch(b){}}function b$(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 bZ(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 bY(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bA.test(a)?d(a,e):bY(a+"["+(typeof e=="object"||f.isArray(e)?b:"")+"]",e,c,d)});else if(!c&&b!=null&&typeof b=="object")for(var e in b)bY(a+"["+e+"]",b[e],c,d);else d(a,b)}function bX(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bW(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===bP,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=bW(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bW(a,c,d,e,"*",g));return l}function bV(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bL),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 by(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?bt:bu;if(d>0){c!=="border"&&f.each(e,function(){c||(d-=parseFloat(f.css(a,"padding"+this))||0),c==="margin"?d+=parseFloat(f.css(a,c+this))||0:d-=parseFloat(f.css(a,"border"+this+"Width"))||0});return d+"px"}d=bv(a,b,b);if(d<0||d==null)d=a.style[b]||0;d=parseFloat(d)||0,c&&f.each(e,function(){d+=parseFloat(f.css(a,"padding"+this))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+this+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+this))||0)});return d+"px"}function bl(a,b){b.src?f.ajax({url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bd,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)}function bk(a){f.nodeName(a,"input")?bj(a):"getElementsByTagName"in a&&f.grep(a.getElementsByTagName("input"),bj)}function bj(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bi(a){return"getElementsByTagName"in a?a.getElementsByTagName("*"):"querySelectorAll"in a?a.querySelectorAll("*"):[]}function bh(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 bg(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 bf(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function V(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(Q.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 U(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function M(a,b){return(a&&a!=="*"?a+".":"")+b.replace(y,"`").replace(z,"&")}function L(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(w,"")===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 J(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 D(){return!0}function C(){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").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 K(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(K,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=/-([a-z]|[0-9])/ig,x=/^-ms-/,y=function(a,b){return(b+"").toUpperCase()},z=d.userAgent,A,B,C,D=Object.prototype.toString,E=Object.prototype.hasOwnProperty,F=Array.prototype.push,G=Array.prototype.slice,H=String.prototype.trim,I=Array.prototype.indexOf,J={};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.4",length:0,size:function(){return this.length},toArray:function(){return G.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)?F.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(),B.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(G.apply(this,arguments),"slice",G.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:F,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;B.resolveWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").unbind("ready")}},bindReady:function(){if(!B){B=e._Deferred();if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",C,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",C),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&K()}}},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):J[D.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!E.call(a,"constructor")&&!E.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||E.call(a,d)},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(c){var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(x,"ms-").replace(w,y)},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:H?function(a){return a==null?"":H.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)?F.call(c,a):e.merge(c,a)}return c},inArray:function(a,b){if(!b)return-1;if(I)return I.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=G.call(arguments,2),g=function(){return a.apply(c,f.concat(G.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){J["[object "+b+"]"]=b.toLowerCase()}),A=e.uaMatch(z),A.browser&&(e.browser[A.browser]=!0,e.browser.version=A.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?C=function(){c.removeEventListener("DOMContentLoaded",C,!1),e.ready()}:c.attachEvent&&(C=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",C),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+"With"](this===b?d:this,[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,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;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{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=a.getElementsByTagName("input")[0],k={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:i.value==="on",optSelected:h.selected,getSetAttribute:a.className!=="t",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0},i.checked=!0,k.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,k.optDisabled=!h.disabled;try{delete a.test}catch(v){k.deleteExpando=!1}!a.addEventListener&&a.attachEvent&&a.fireEvent&&(a.attachEvent("onclick",function(){k.noCloneEvent=!1}),a.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),k.radioValue=i.value==="t",i.setAttribute("checked","checked"),a.appendChild(i),l=c.createDocumentFragment(),l.appendChild(a.firstChild),k.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,a.innerHTML="",a.style.width=a.style.paddingLeft="1px",m=c.getElementsByTagName("body")[0],o=c.createElement(m?"div":"body"),p={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},m&&f.extend(p,{position:"absolute",left:"-1000px",top:"-1000px"});for(t in p)o.style[t]=p[t];o.appendChild(a),n=m||b,n.insertBefore(o,n.firstChild),k.appendChecked=i.checked,k.boxModel=a.offsetWidth===2,"zoom"in a.style&&(a.style.display="inline",a.style.zoom=1,k.inlineBlockNeedsLayout=a.offsetWidth===2,a.style.display="",a.innerHTML="<div style='width:4px;'></div>",k.shrinkWrapBlocks=a.offsetWidth!==2),a.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>",q=a.getElementsByTagName("td"),u=q[0].offsetHeight===0,q[0].style.display="",q[1].style.display="none",k.reliableHiddenOffsets=u&&q[0].offsetHeight===0,a.innerHTML="",c.defaultView&&c.defaultView.getComputedStyle&&(j=c.createElement("div"),j.style.width="0",j.style.marginRight="0",a.appendChild(j),k.reliableMarginRight=(parseInt((c.defaultView.getComputedStyle(j,null)||{marginRight:0}).marginRight,10)||0)===0),o.innerHTML="",n.removeChild(o);if(a.attachEvent)for(t in{submit:1,change:1,focusin:1})s="on"+t,u=s in a,u||(a.setAttribute(s,"return;"),u=typeof a[s]=="function"),k[t+"Bubbles"]=u;o=l=g=h=m=j=a=i=null;return k}(),f.boxModel=f.support.boxModel;var i=/^(?:\{.*\}|\[.*\])$/,j=/([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,h,i=f.expando,j=typeof c=="string",k=a.nodeType,l=k?f.cache:a,m=k?a[f.expando]:a[f.expando]&&f.expando;if((!m||e&&m&&l[m]&&!l[m][i])&&j&&d===b)return;m||(k?a[f.expando]=m=++f.uuid:m=f.expando),l[m]||(l[m]={},k||(l[m].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?l[m][i]=f.extend(l[m][i],c):l[m]=f.extend(l[m],c);g=l[m],e&&(g[i]||(g[i]={}),g=g[i]),d!==b&&(g[f.camelCase(c)]=d);if(c==="events"&&!g[c])return g[i]&&g[i].events;j?(h=g[c],h==null&&(h=g[f.camelCase(c)])):h=g;return h}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e=f.expando,g=a.nodeType,h=g?f.cache:a,i=g?a[f.expando]:f.expando;if(!h[i])return;if(b){d=c?h[i][e]:h[i];if(d){d[b]||(b=f.camelCase(b)),delete d[b];if(!l(d))return}}if(c){delete h[i][e];if(!l(h[i]))return}var j=h[i][e];f.support.deleteExpando||!h.setInterval?delete h[i]:h[i]=null,j?(h[i]={},g||(h[i].toJSON=f.noop),h[i][e]=j):g&&(f.support.deleteExpando?delete a[f.expando]:a.removeAttribute?a.removeAttribute(f.expando):a[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;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){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(o);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(o);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(n," ");for(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){f(this).toggleClass(a.call(this,c,this.className,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].nodeType===1&&(" "+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;d=e.value;return typeof d=="string"?d.replace(p,""):d==null?"":d}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);j&&(c=f.attrFix[c]||c,i=f.attrHooks[c],i||(t.test(c)?i=v:u&&(i=u)));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&&(h=i.get(a,c))!==null)return h;h=a.getAttribute(c);return h===null?b:h},removeAttr:function(a,b){var c;a.nodeType===1&&(b=f.attrFix[b]||b,f.attr(a,b,""),a.removeAttribute(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}}},value:{get:function(a,b){if(u&&f.nodeName(a,"button"))return u.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(u&&f.nodeName(a,"button"))return u.set(a,b,c);a.value=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);i&&(c=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))!==null?g:a[c]},propHooks:{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}}}}),f.attrHooks.tabIndex=f.propHooks.tabIndex,v={get:function(a,c){var d;return f.prop(a,c)===!0||(d=a.getAttributeNode(c))&&d.nodeValue!==!1?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]=!0),a.setAttribute(c,c.toLowerCase()));return c}},f.support.getSetAttribute||(u=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&d.nodeValue!==""?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=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);return null}})),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 w=/\.(.*)$/,x=/^(?:textarea|input|select)$/i,y=/\./g,z=/ /g,A=/[^\w\s.|`]/g,B=function(a){return a.replace(A,"\\$&")};f.event={add:function(a,c,d,e){if(a.nodeType!==3&&a.nodeType!==8){if(d===!1)d=C;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=C);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(),B).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!=null?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,M(a.origType,a.selector),f.extend({},a,{handler:L,guid:a.handler.guid}))},remove:function(a){f.event.remove(this,M(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()?D:C):this.type=a,b&&f.extend(this,b),this.timeStamp=f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=D;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=D;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=D,this.stopPropagation()},isDefaultPrevented:C,isPropagationStopped:C,isImmediatePropagationStopped:C};var E=function(a){var b=a.relatedTarget,c=!1,d=a.type;a.type=a.data,b!==this&&(b&&(c=f.contains(this,b)),c||(f.event.handle.apply(this,arguments),a.type=d))},F=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?F:E,a)},teardown:function(a){f.event.remove(this,b,a&&a.selector?F:E)}}}),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=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="submit"||c==="image")&&f(b).closest("form").length&&J("submit",this,arguments)}),f.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,c=f.nodeName(b,"input")||f.nodeName(b,"button")?b.type:"";(c==="text"||c==="password")&&f(b).closest("form").length&&a.keyCode===13&&J("submit",this,arguments)});else return!1},teardown:function(a){f.event.remove(this,".specialSubmit")}});if(!f.support.changeBubbles){var G,H=function(a){var b=f.nodeName(a,"input")?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},I=function(c){var d=c.target,e,g;if(!!x.test(d.nodeName)&&!d.readOnly){e=f._data(d,"_change_data"),g=H(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:I,beforedeactivate:I,click:function(a){var b=a.target,c=f.nodeName(b,"input")?b.type:"";(c==="radio"||c==="checkbox"||f.nodeName(b,"select"))&&I.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")&&I.call(this,a)},beforeactivate:function(a){var b=a.target;f._data(b,"_change_data",H(b))}},setup:function(a,b){if(this.type==="file")return!1;for(var c in G)f.event.add(this,c+".specialChange",G[c]);return x.test(this.nodeName)},teardown:function(a){f.event.remove(this,".specialChange");return x.test(this.nodeName)}},G=f.event.special.change.filters,G.focus=G.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 K={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||C,d=b;a=(a||"").split(" ");while((h=a[i++])!=null){j=w.exec(h),k="",j&&(k=j[0],h=h.replace(w,""));if(h==="hover"){a.push("mouseenter"+k,"mouseleave"+k);continue}l=h,K[h]?(a.push(K[h]+k),h=h+k):h=(K[h]||h)+k;if(c==="live")for(var p=0,q=n.length;p<q;p++)f.event.add(n[p],"live."+M(h,m),{data:d,selector:m,handler:e,origType:h,origHandler:e,preType:l});else n.unbind("live."+M(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 N=/Until$/,O=/^(?:parents|prevUntil|prevAll)/,P=/,/,Q=/^.[^:#\[\.,]*$/,R=Array.prototype.slice,S=f.expr.match.POS,T={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(V(this,a,!1),"not",a)},filter:function(a){return this.pushStack(V(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]=S.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=S.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)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));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(U(c[0])||U(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=R.call(arguments);N.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!T[a]?f.unique(e):e,(this.length>1||P.test(d))&&O.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 W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|object|embed|option|style)/i,bb=/checked\s*(?:[^=]|=\s*.checked.)/i,bc=/\/(java|ecma)script/i,bd=/^\s*<!(?:\[CDATA\[|\-\-)/,be={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,"",""]};be.optgroup=be.option,be.tbody=be.tfoot=be.colgroup=be.caption=be.thead,be.th=be.td,f.support.htmlSerialize||(be._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(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!be[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$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"&&bb.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?bf(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,bl)}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i;b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof a[0]=="string"&&a[0].length<512&&i===c&&a[0].charAt(0)==="<"&&!ba.test(a[0])&&(f.support.checkClone||!bb.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)){bh(a,d),e=bi(a),g=bi(d);for(h=0;e[h];++h)g[h]&&bh(e[h],g[h])}if(b){bg(a,d);if(c){e=bi(a),g=bi(d);for(h=0;e[h];++h)bg(e[h],g[h])}}e=g=null;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(!_.test(k))k=b.createTextNode(k);else{k=k.replace(Y,"<$1></$2>");var l=(Z.exec(k)||["",""])[1].toLowerCase(),m=be[l]||be._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=$.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&&X.test(k)&&o.insertBefore(b.createTextNode(X.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++)bk(k[i]);else bk(k);k.nodeType?h.push(k):h=f.merge(h,k)}if(d){g=function(a){return!a.type||bc.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 bm=/alpha\([^)]*\)/i,bn=/opacity=([^)]*)/,bo=/([A-Z]|^ms)/g,bp=/^-?\d+(?:px)?$/i,bq=/^-?\d/,br=/^([\-+])=([\-+.\de]+)/,bs={position:"absolute",visibility:"hidden",display:"block"},bt=["Left","Right"],bu=["Top","Bottom"],bv,bw,bx;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=bv(a,"opacity","opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!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,h==="string"&&(g=br.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;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(bv)return bv(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]}}),f.curCSS=f.css,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){var e;if(c){if(a.offsetWidth!==0)return by(a,b,d);f.swap(a,bs,function(){e=by(a,b,d)});return e}},set:function(a,b){if(!bp.test(b))return b;b=parseFloat(b);if(b>=0)return b+"px"}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bn.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,e=f.isNaN(b)?"":"alpha(opacity="+b*100+")",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bm,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bm.test(g)?g.replace(bm,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=bv(a,"margin-right","marginRight"):c=a.style.marginRight});return c}})}),c.defaultView&&c.defaultView.getComputedStyle&&(bw=function(a,c){var d,e,g;c=c.replace(bo,"-$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&&(bx=function(a,b){var c,d=a.currentStyle&&a.currentStyle[b],e=a.runtimeStyle&&a.runtimeStyle[b],f=a.style;!bp.test(d)&&bq.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}),bv=bw||bx,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 bz=/%20/g,bA=/\[\]$/,bB=/\r?\n/g,bC=/#.*$/,bD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bE=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bF=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bG=/^(?:GET|HEAD)$/,bH=/^\/\//,bI=/\?/,bJ=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bK=/^(?:select|textarea)/i,bL=/\s+/,bM=/([?&])_=[^&]*/,bN=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bO=f.fn.load,bP={},bQ={},bR,bS,bT=["*/"]+["*"];try{bR=e.href}catch(bU){bR=c.createElement("a"),bR.href="",bR=bR.href}bS=bN.exec(bR.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bO)return bO.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(bJ,"")).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||bK.test(this.nodeName)||bE.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(bB,"\r\n")}}):{name:b.name,value:c.replace(bB,"\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?bX(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),bX(a,b);return a},ajaxSettings:{url:bR,isLocal:bF.test(bS[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","*":bT},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},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bV(bP),ajaxTransport:bV(bQ),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>0?4:0;var o,r,u,w=c,x=l?bZ(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=b$(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.resolveWith(e,[v,w]),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=bD.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(bC,"").replace(bH,bS[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bL),d.crossDomain==null&&(r=bN.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bS[1]&&r[2]==bS[2]&&(r[3]||(r[1]==="http:"?80:443))==(bS[3]||(bS[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bW(bP,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bG.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bI.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bM,"$1_="+x);d.url=y+(y===d.url?(bI.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]!=="*"?", "+bT+"; 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=bW(bQ,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){s<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)bY(g,a[g],c,e);return d.join("&").replace(bz,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var b_=f.now(),ca=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+b_++}}),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&&(ca.test(b.url)||e&&ca.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(ca,l),b.url===j&&(e&&(k=k.replace(ca,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 cb=a.ActiveXObject?function(){for(var a in cd)cd[a](0,1)}:!1,cc=0,cd;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ce()||cf()}:ce,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,cb&&delete cd[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=++cc,cb&&(cd||(cd={},f(a).unload(cb)),cd[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cg={},ch,ci,cj=/^(?:toggle|show|hide)$/,ck=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,cl,cm=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cn;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(cq("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",cr(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(cq("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(cq("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=cr(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],cj.test(h)?k[h==="toggle"?d?"show":"hide":h]():(l=ck.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:cq("show",1),slideUp:cq("hide",1),slideToggle:cq("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){f.isFunction(d.old)&&d.old.call(this),d.queue!==!1?f.dequeue(this):a!==!1&&f._unmark(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 g(a){return d.step(a)}var d=this,e=f.fx;this.startTime=cn||co(),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,g.elem=this.elem,g()&&f.timers.push(g)&&!cl&&(cl=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=cn||co(),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(cl),cl=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 cs=/^t(?:able|d|h)$/i,ct=/^(?: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=cu(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||!cs.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=ct.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&&!ct.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=cu(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=cu(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(){var a=this[0];return a&&a.style?parseFloat(f.css(a,d,"padding")):null},f.fn["outer"+c]=function(a){var b=this[0];return b&&b.style?parseFloat(f.css(b,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],h=e.document.body;return e.document.compatMode==="CSS1Compat"&&g||h&&h["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 i=f.css(e,d),j=parseFloat(i);return f.isNaN(j)?i:j}return this.css(d,typeof a=="string"?a:a+"px")}}),a.jQuery=a.$=f})(window);
\ No newline at end of file
diff --git a/autovpn/static/jquery.backstretch.min.js b/autovpn/static/jquery.backstretch.min.js
deleted file mode 100644
index 6f6e83f..0000000
--- a/autovpn/static/jquery.backstretch.min.js
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
- * jQuery Backstretch
- * Version 1.2.5
- * http://srobbin.com/jquery-plugins/jquery-backstretch/
- *
- * Add a dynamically-resized background image to the page
- *
- * Copyright (c) 2011 Scott Robbin (srobbin.com)
- * Dual licensed under the MIT and GPL licenses.
-*/
-(function(a){a.backstretch=function(l,b,j){function m(c){try{h={left:0,top:0},e=f.width(),d=e/k,d>=f.height()?(i=(d-f.height())/2,g.centeredY&&a.extend(h,{top:"-"+i+"px"})):(d=f.height(),e=d*k,i=(e-f.width())/2,g.centeredX&&a.extend(h,{left:"-"+i+"px"})),a("#backstretch, #backstretch img:not(.deleteable)").width(e).height(d).filter("img").css(h)}catch(b){}"function"==typeof c&&c()}var n={centeredX:!0,centeredY:!0,speed:0},c=a("#backstretch"),g=c.data("settings")||n;c.data("settings");var f="onorientationchange"in window?a(document):a(window),k,e,d,i,h;b&&"object"==typeof b&&a.extend(g,b);b&&"function"==typeof b&&(j=b);a(document).ready(function(){if(l){var b;0==c.length?c=a("<div />").attr("id","backstretch").css({left:0,top:0,position:"fixed",overflow:"hidden",zIndex:-999999,margin:0,padding:0,height:"100%",width:"100%"}):c.find("img").addClass("deleteable");b=a("<img />").css({position:"absolute",display:"none",margin:0,padding:0,border:"none",zIndex:-999999}).bind("load",function(b){var d=a(this),e;d.css({width:"auto",height:"auto"});e=this.width||a(b.target).width();b=this.height||a(b.target).height();k=e/b;m(function(){d.fadeIn(g.speed,function(){c.find(".deleteable").remove();"function"==typeof j&&j()})})}).appendTo(c);0==a("body #backstretch").length&&a("body").append(c);c.data("settings",g);b.attr("src",l);a(window).resize(m)}});return this}})(jQuery);
\ No newline at end of file
diff --git a/autovpn/static/lock.png b/autovpn/static/lock.png
deleted file mode 100644
index 7828fc238d72fab3b7624e1ecc3ec9cd9ab56612..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 4711
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

diff --git a/autovpn/static/lock_small.png b/autovpn/static/lock_small.png
deleted file mode 100644
index 51c20e1516492ade81b44e98356aa6a4571dc79e..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1093
zcmeAS@N?(olHy`uVBq!ia0y~yU~m9o4mJh`hE<t`_ZS!$*pj^6T^Rm@;DWu&Co?cG
zU-fix45_&F_V(HAm{19}5BHZ`R#CaOq-o0n?!X*nv4dSJ7Az7F&pO)Qsy$sVrqlbQ
zyg<oA_FY0QC5!b$Vs;cM?z*t*=%Q^=y9FILL?lmI_R{@UPxp78;+f}W%seyKa-%W-
z9-i;#_CB|HU%c;pW&Y8G4YJjR^6!qGz0te!%YQAu2O9g1JpUp2oc+l9{22%SR!Hwp
z<lV}f!@K`+tWCqoJAOH0#TDHDOCFS1M<23YbnH+52HyVeS9>Cl&weX0&&70mvGl^O
z^ny*y%dffIj=vgtIpRREg#P4$rBAlZJ9c_T=I1l<KiJ|sgVvh&&%M!XUC3UxwX&X7
z|AFtC>6$K*6&_!nto3^T-sM->|GO)F6YS%BleT)jUXqa%&2|0ZZnKvC$D4O$?+-oG
zee06eS^0wGyydSY4twWz)GgdDSHo|YJ^9<~Z63=jwEtb$H6>3|@vo&!*2I6D7voco
zck7<eecUPZxgz5A&m-EW-k#WfOz+~c*`0gUt+s615bLvQ)@RGE>|!p1{>ys0e}CFN
zDed>pJ}4>kLiOTCInTG(BQ9L|I5}f;>f?e<N@~LGI!qx)xYkRyyLe9R4Nh8-d+c7^
zpBJtTg&UXT9$Q~qu&?j2?z^|woa--lGlcq>-;KUL|I+$oM)6tid|xNlUdR^CsM~+7
zDPg9?^iLX#w89oJi$B<Oz@y;~OHs0lLmtyk!!Jx<l5JyeKluOaL!@Z;oUR+fF~Xla
zdhgvAVhTBOBRaG2f7QnA=H0S8jBfgDl0BJrL}i)Mw_npH&lS4;(7W|@s?MV}v&y_G
zxeI5be(Bi+6(p#?I~MADer-pPj6YL<=}dn?(?D&#j^IUJj$5pz9m%}p<hZ8)<J&aX
z%=YI~x1YbCU%f4O`L35N?6=I=TNlc+x-mUbn;@;sSR{O+cOt`1&L_tpu6@CJqH<4-
zgnXywx5Ybr+nUeCF#YLRUZ4_N-|+ow#hI;=PqLWii_KB@tFb%js4|^lE8qLrZA>x;
z_8s~vBPXrK`0XKYjBeSqIN^n6%<ks`6L`{(mW6LKm_FxoLvs@Ud!BuAW{lTn&9T$S
zI(&iS!*Y(rs~>l8Y?YQ`?CYFxom24nW(B(m5*9_JP38{|A1d|bX?0dUV0v;>@{90h
zOvi$Q_F^wXq`mJ;A=%=$X<C1}Z=9LqXErq_=m>Lf_lotoPB%7XU$5HKon%>ScQdkA
zKfqtz`d;RuyHj386cxm*d89UpAzUOUOj#-?j3wZ#*t&GC^M08w<*_2t%Gy$aN!_jY
zS$j`xJes1-8ZA2U$@57XUnlJ5{iq*f9H?2-wa1l#fkCpwHKHUqKdq!Zu_%?nF(p4K
gRlzeiF+DXXH8G{K@MNkD0|Nttr>mdKI;Vst06BO8qyPW_

diff --git a/autovpn/static/style.css b/autovpn/static/style.css
deleted file mode 100644
index a07d4db..0000000
--- a/autovpn/static/style.css
+++ /dev/null
@@ -1,68 +0,0 @@
-body {
-    background-color: white;
-    font-family: helvetica, arial, sans-serif;
-    margin-left: 0px;
-    margin-right: auto;
-    width: 100%;
-}
-
-#container {
-    width: 100%;
-    margin-right: 0;
-    margin-left: 0;
-    padding: 0;
-}
-
-h1 {
-    font-family: helvetica, arial, sans-serif;
-    font-size: 6em;
-    color: red;
-    padding: 10px;
-    width: 50%;
-    background: url(/static/ant.jpg) white no-repeat top left;
-    opacity: 0.9;
-}
-
-h1 span {
-    display: block;
-    padding-left: 150px;
-}
-
-#content {
-    background-color: rgba(128,128,128,0.9);
-    font-weight: bold;
-    color: #FFF;
-    padding: 10px;
-    width: 50%;
-    font-size: 1.2em;
-}
-
-a {
-    text-decoration: underline;
-    color: white;
-}
-
-a:hover {
-    text-decoration: underline;
-}
-
-.footer {
-    font-size: 0.8em;
-    color: #AAA;
-    text-align: right;
-    padding-right: 5px;
-    margin-top: 20px;
-}
-
-.footer a { 
-    text-decoration: none;
-}
-
-input {
-    font-size: 1.2em;
-}
-
-.center {
-    text-align: center;
-}
-
diff --git a/autovpn/templates/_base.html b/autovpn/templates/_base.html
deleted file mode 100644
index d9e86cb..0000000
--- a/autovpn/templates/_base.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!doctype html>
-<html>
-  <head>
-    <title>A/I VPN</title>
-    <link href="/static/favicon.ico" type="image/x-icon" rel="shortcut icon">
-    <link rel="stylesheet" type="text/css" href="/static/style.css">
-    <script type="text/javascript"
-            src="/static/jquery-1.6.4.min.js"></script>
-    <script type="text/javascript"
-            src="/static/jquery.backstretch.min.js"></script>
-    <script>
-      $(document).ready(function() {
-        $.backstretch('/static/background.jpg');
-      });
-    </script>
-{% block head %}{% endblock -%}
-  </head>
-  <body>
-
-    <div id="container">
-
-      <h1>
-        <span>VPN</span>
-      </h1>
-
-      <div id="content">
-        {% block content %}{% endblock %}
-
-        {% if config.get('FOOTER') %}{{ config['FOOTER'] | safe }}{% endif %}
-      </div>
-
-    </div>
-
-  </body>
-</html>
diff --git a/autovpn/templates/download.html b/autovpn/templates/download.html
deleted file mode 100644
index 9cd05cc..0000000
--- a/autovpn/templates/download.html
+++ /dev/null
@@ -1,24 +0,0 @@
-{% extends "_base.html" %}
-{% set dl_url = url_for('vpn_admin.new_cert_dl', _csrf=csrf_token(), t=cn_token) %}
-{% block head %}
-  <meta http-equiv="refresh" content="2; url={{ dl_url }}">
-{% endblock %}
-{% block content %}
-
-    <p>
-      The download of the ZIP file should start in a few seconds.
-      If it doesn't work, try with 
-      <a href="{{ dl_url }}">this link</a> (note: it will only work
-      once).
-    </p>
-    <p>
-      If you have any trouble downloading the ZIP file, try clearing
-      the cookies in your browser and
-      <a href="{{ url_for('vpn_admin.index') }}">starting over</a>.
-    </p>
-    <p>
-      <b>This ZIP file is VERY IMPORTANT, do not
-        share it with anyone, and save it only on trusted media.</b>
-    </p>
-
-{% endblock %}
diff --git a/autovpn/templates/download_retry.html b/autovpn/templates/download_retry.html
deleted file mode 100644
index 0291514..0000000
--- a/autovpn/templates/download_retry.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "_base.html" %}
-{% block content %}
-
-    <p>
-      Sorry, you are trying to re-use an expired session. If you are
-      trying to download a certificate, it probably means that the
-      file is already on your computer, check in your Downloads
-      folder.
-    </p>
-    <p>
-      Otherwise, you should 
-      <a href="{{ url_for('vpn_admin.index') }}">start the process
-        from scratch</a> (it's easy anyway!)
-    </p>
-
-{% endblock %}
diff --git a/autovpn/templates/index.html b/autovpn/templates/index.html
deleted file mode 100644
index eb6df07..0000000
--- a/autovpn/templates/index.html
+++ /dev/null
@@ -1,27 +0,0 @@
-{% extends "_base.html" %}
-{% block content %}
-        <p>
-          A reasonably anonymous (but low-traffic) VPN service, for when
-          you really need to get on the Internet from a nasty place!
-        </p>
-
-        <p>
-          You only need a SSL certificate to connect, click the link
-          below to download a ZIP file containing the certificate and
-          a private key.
-        </p>
-
-        <form action="{{ url_for('vpn_admin.new_cert') }}" method="post">
-          <div style="display:none;">
-            <input type="hidden" name="_csrf" value="{{ csrf_token() }}">
-          </div>
-          <p class="center">
-            <input type="submit" value="  Generate new SSL certificate  ">
-          </p>
-        </form>
-
-        {% if config.get('HELP_MESSAGE') %}
-          {{ config['HELP_MESSAGE'] | safe }}
-        {% endif %}
-
-{% endblock %}
diff --git a/autovpn/templates/login.html b/autovpn/templates/login.html
deleted file mode 100644
index ae4fbdb..0000000
--- a/autovpn/templates/login.html
+++ /dev/null
@@ -1,35 +0,0 @@
-{% extends "_base.html" %}
-{% block content %}
-
-        <p>
-          {% if config.get('AUTH_MESSAGE') %}
-            {{ config['AUTH_MESSAGE'] | safe }}
-          {% else %}
-            Enter your authentication credentials:
-          {% endif %}
-        </p>
-
-        {% if error %}
-        <p class="center" style="color:red;">{{ error }}</p>
-        {% endif %}
-
-        <form action="{{ url_for('vpn_admin.login') }}" method="post">
-          <div style="display:none;">
-            <input type="hidden" name="_csrf" value="{{ csrf_token() }}">
-          </div>
-          <p class="center">
-            <input type="text" size="20" placeholder="Email" 
-                   name="username" value="{{ username }}"><br>
-            <input type="password" size="20" placeholder="Password"
-                   name="password"><br>
-            <input type="submit" value="Login">
-          </p>
-        </form>
-
-        <p>
-          <b>NOTE:</b> the credentials are only used to limit access
-          to this application. They will not be saved, nor they will
-          ever be associated with the VPN connection.
-        </p>
-
-{% endblock %}
diff --git a/autovpn/test/__init__.py b/autovpn/test/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/autovpn/test/test_vpn_app.py b/autovpn/test/test_vpn_app.py
deleted file mode 100644
index 0fefdec..0000000
--- a/autovpn/test/test_vpn_app.py
+++ /dev/null
@@ -1,70 +0,0 @@
-import tempfile
-import shutil
-import unittest
-from flask import session
-from autovpn import vpn_app
-
-
-class VpnAppTest(unittest.TestCase):
-
-    def setUp(self):
-        self.tmpdir = tempfile.mkdtemp()
-        self.config = {
-            'DEBUG': 'true',
-            'SECRET_KEY': 'somesecret',
-            'SIGNER_SECRET': 'abracadabra',
-            'CACHE_DIR': self.tmpdir,
-            'VPN_CA_ROOT': self.tmpdir,
-            'VPN_CA_SUBJECT': {'CN': 'test CA', 'O': 'test'},
-            'VPN_CA_BITS': 1024,
-            'VPN_ENDPOINT': 'vpn.example.com',
-            'VPN_SITE_URL': 'http://localhost:4000/',
-            'FOOTER': '''
-<p class="footer">
-  built by <a href="http://www.autistici.org/">autistici.org</a>
-</p>
-''',
-            'AUTH_ENABLE': True,
-            'AUTH_FUNCTION': lambda x, y: (x and y and x == y),
-            'TLS_AUTH_KEY': self.tmpdir + '/tlsauth.key',
-            }
-
-        self.app = vpn_app.make_app(self.config)
-
-    def tearDown(self):
-        shutil.rmtree(self.tmpdir)
-
-    def test_login_ok(self):
-        with self.app.test_client() as c:
-            rv = c.get('/login')
-            csrf = session['_csrf']
-            rv = c.post('/login', data={
-                    '_csrf': csrf,
-                    'username': 'admin',
-                    'password': 'admin'},
-                        follow_redirects=True)
-            self.assertTrue('download of the ZIP file' in rv.data)
-
-    def test_login_fail(self):
-        with self.app.test_client() as c:
-            rv = c.get('/login')
-            csrf = session['_csrf']
-            rv = c.post('/login', data={
-                    '_csrf': csrf,
-                    'username': 'user',
-                    'password': 'wrong password'},
-                        follow_redirects=True)
-            self.assertFalse(session.get('dl_ok'))
-            self.assertTrue('Authentication failed' in rv.data)
-
-    def test_cert_dl(self):
-        cn = 'testcn1234'
-        t = self.app.signer.encode(cn)
-        with self.app.test_client() as c:
-            with c.session_transaction() as sess:
-                sess['dl_ok'] = True
-                sess['_csrf'] = 'csrf'
-                sess['logged_in'] = True
-            rv = c.get('/newcertdl?_csrf=csrf&t=' + t)
-            self.assertEquals('200 OK', rv.status)
-            self.assertEquals('application/zip', rv.content_type)
diff --git a/autovpn/vpn_app.py b/autovpn/vpn_app.py
deleted file mode 100644
index 912c5cc..0000000
--- a/autovpn/vpn_app.py
+++ /dev/null
@@ -1,442 +0,0 @@
-import datetime
-import functools
-import itsdangerous
-import logging
-import os
-import shutil
-import subprocess
-import tempfile
-import threading
-import time
-import uuid
-import zipfile
-from cStringIO import StringIO
-from OpenSSL import crypto
-from flask import Blueprint, Flask, abort, redirect, request, make_response, \
-    render_template, session, g, current_app, url_for
-
-from autoca import ca
-from autoca import ca_app
-from autoca import ca_stub
-
-vpn_admin = Blueprint('vpn_admin', __name__)
-log = logging.getLogger(__name__)
-
-OPENVPN_CONFIG_TEMPLATE = '''
-client
-dev tun
-resolv-retry infinite
-nobind
-persist-key
-persist-tun
-
-<connection>
-  remote %(vpn_endpoint)s 1194 udp
-</connection>
-
-<connection>
-  remote %(vpn_endpoint)s 443 tcp
-</connection>
-
-; SSL configuration.
-ca ca.crt
-cert %(cn)s.crt
-key %(cn)s.key
-crl-verify crl.pem
-ns-cert-type server
-tls-auth tlsauth.key 1
-'''
-
-TBLK_PLIST_TEMPLATE = '''<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
-  <key>CFBundleIdentifier</key>
-  <string>%(bundle_identifier)s</string>
-  <key>CFBundleVersion</key>
-  <string>1</string>
-  <key>TBPackageVersion</key>
-  <string>1</string>
-  <key>TBSharePackage</key>
-  <string>private</string>
-</dict>
-</plist>
-'''
-
-README_TEMPLATE = '''
-VPN client configuration
-========================
-
-The ZIP file you just got contains an SSL certificate (and private
-key) used to authenticate to the VPN network.  This file is very
-sensitive, keep it in a safe place.
-
-The certificate will expire on %(expiry_date)s. Go back to where you got the
-ZIP file in the first place to obtain another one.
-
-The specific instructions to install the VPN connection on your device
-may vary depending on your OS, some examples follow.  Refer to the
-official OpenVPN documentation for further information.
-
-
-Linux (without NetworkManager)
-------------------------------
-
-- Install OpenVPN, i.e. on a Debian-based system::
-
-    $ sudo apt-get install openvpn
-
-- Start the VPN connection by pointing openvpn at your config (the file
-  named openvpn-ai.conf in the same directory as this README)::
-
-    $ sudo openvpn --config openvpn-%(cn)s.conf
-
-
-Linux (with NetworkManager)
----------------------------
-
-If you are using NetworkManager to configure your network connections,
-you are probably better off having it deal with OpenVPN itself.  A
-NetworkManager plugin exists for this purpose::
-
-    $ sudo apt-get install network-manager-openvpn-gnome
-
-You can then configure the VPN using NetworkManager itself, use
-"Certificates (TLS)" as the Authentication Type, and use the
-certificates contained in this ZIP file.
-
-
-OSX
----
-
-The ZIP file contains a configuration for Tunnelblick. Double-click
-on it and it will install itself automatically.
-
-
-Android
--------
-
-Check out the OpenVPN app at
-https://play.google.com/store/apps/details?id=de.blinkt.openvpn
-
-To use it:
-
-- Select the PKCS12 format for the credentials and select the
-  <uuid>.pfx file from the ZIP archive.
-
-- Ensure that LZO compression is disabled.
-
-
-References
-----------
-
-OpenVPN documentation:
-http://openvpn.net/index.php/open-source/documentation/
-
-Further info:
-%(vpn_site)s
-
-
-'''
-
-
-class Singleton(object):
-    """Singleton with deferred instantiation."""
-
-    def __init__(self, cls):
-        self.lock = threading.Lock()
-        self.obj = None
-        self.cls = cls
-
-    def __call__(self, *args):
-        with self.lock:
-            if self.obj is None:
-                self.obj = self.cls(*args)
-            return self.obj
-
-
-class Signer(object):
-    """Generates secure download tokens that are valid for a few seconds."""
-
-    TIMEOUT = 60
-
-    def __init__(self, secret):
-        self.l = threading.local()
-        self.secret = secret
-
-    def _signer(self):
-        if not hasattr(self.l, 'signer'):
-            self.l.signer = itsdangerous.URLSafeTimedSerializer(self.secret, salt='cn')
-        return self.l.signer
-
-    def encode(self, cn):
-        return self._signer().dumps(cn)
-
-    def decode(self, token):
-        return self._signer().loads(token, max_age=self.TIMEOUT)
-
-
-class ZipCacheCleanupThread(threading.Thread):
-
-    EXPIRE_TIME = 120
-
-    def __init__(self, root):
-        threading.Thread.__init__(self)
-        self.root = root
-        self.setDaemon(True)
-        self.start()
-
-    def purge_cached_files(self):
-        cutoff = self.EXPIRE_TIME
-        now = time.time()
-        for f in os.listdir(self.root):
-            if f.startswith('.') or not f.endswith('.zip'):
-                continue
-            fp = os.path.join(self.root, f)
-            mtime = os.path.getmtime(gp)
-            if (now - mtime) > cutoff:
-                os.unlink(fp)
-
-    def run(self):
-        while True:
-            time.sleep(60)
-            try:
-                self.purge_cached_files()
-            except:
-                pass
-
-
-class ZipCache(object):
-    """A simple on-disk cache of recent zip files."""
-
-    cleanup_thread = Singleton(ZipCacheCleanupThread)
-
-    def __init__(self, root):
-        self.root = root
-        self.cleanup = self.cleanup_thread(root)
-
-    def _path(self, cn):
-        return os.path.join(self.root, cn + '.zip')
-
-    def get(self, cn):
-        try:
-            with open(self._path(cn), 'r') as fd:
-                return fd.read()
-        except:
-            return None
-
-    def put(self, cn, contents):
-        with open(self._path(cn), 'w') as fd:
-            fd.write(contents)
-
-
-def to_pkcs12(crt_pem, key_pem, ca_pem):
-    """Pack credentials into a PKCS12-format buffer."""
-    tmpdir = tempfile.mkdtemp()
-    bundle_pem = '\n'.join([ca_pem, crt_pem])
-    try:
-        for name, content in [('bundle.pem', bundle_pem), ('key.pem', key_pem)]:
-            with open(os.path.join(tmpdir, name), 'w') as fd:
-                fd.write(content)
-        pipe = subprocess.Popen(
-            ['openssl', 'pkcs12', '-export', '-password', 'pass:',
-             '-in', 'bundle.pem', '-inkey', 'key.pem'],
-            cwd=tmpdir, stdout=subprocess.PIPE)
-        return pipe.communicate()[0]
-    finally:
-        shutil.rmtree(tmpdir)
-
-
-def csrf(methods=('POST',)):
-    def _csrf(fn):
-        @functools.wraps(fn)
-        def _csrf_wrapper(*args, **kwargs):
-            if request.method in methods:
-                query_args = (request.method == 'POST') and request.form or request.args
-                token = session.pop('_csrf', None)
-                if not token or token != query_args.get('_csrf'):
-                    abort(400)
-            return fn(*args, **kwargs)
-        return _csrf_wrapper
-    return _csrf
-
-
-def auth(fn):
-    @functools.wraps(fn)
-    def _auth_wrapper(*args, **kwargs):
-        if current_app.config.get('AUTH_ENABLE'):
-            if not session.get('logged_in'):
-                return redirect(url_for('vpn_admin.login'))
-        return fn(*args, **kwargs)
-    return _auth_wrapper
-
-
-def generate_csrf_token():
-    if '_csrf' not in session:
-        session['_csrf'] = os.urandom(18).encode('base64').rstrip()
-    return session['_csrf']
-
-
-@vpn_admin.before_request
-def set_ca_wrapper():
-    g.ca = current_app.ca
-
-
-@vpn_admin.route('/')
-def index():
-    return render_template('index.html')
-
-
-@vpn_admin.route('/login', methods=['GET', 'POST'])
-@csrf()
-def login():
-    error = None
-    username = ''
-    if request.method == 'POST':
-        username = request.form.get('username', '')
-        password = request.form.get('password', '')
-        if current_app.config['AUTH_FUNCTION'](username, password):
-            session['logged_in'] = True
-            return redirect(url_for('vpn_admin.new_cert',
-                                    _csrf=generate_csrf_token()))
-        else:
-            error = 'Authentication failed'
-    return render_template('login.html', error=error, username=username)
-
-
-@vpn_admin.route('/logout')
-def logout():
-    session.pop('logged_in', None)
-    return redirect(url_for('vpn_admin.index'))
-
-
-@vpn_admin.route('/newcert', methods=['GET', 'POST'])
-@auth
-@csrf(methods=['GET', 'POST'])
-def new_cert():
-    cn = str(uuid.uuid4())
-    cn_token = current_app.signer.encode(cn)
-    return render_template('download.html', cn_token=cn_token)
-
-
-@vpn_admin.route('/newcertdl')
-@auth
-@csrf(methods=['GET'])
-def new_cert_dl():
-    # Retrieve CN from the signed token.
-    try:
-        cn = current_app.signer.decode(request.args.get('t'))
-    except:
-        return render_template('download_retry.html')
-
-    # Check if the certificate is new or not, so that the user can
-    # perform multiple downloads of the same certificate / private
-    # keypair until the token is valid.
-    zip_data = current_app.zipcache.get(cn)
-    if not zip_data:
-
-        # Create and sign the new certificate.
-        validity = int(current_app.config.get('VPN_CERT_VALIDITY', 7))
-        expiry_date = datetime.date.today() + datetime.timedelta(validity)
-
-        subject = current_app.config.get('VPN_DEFAULT_SUBJECT_ATTRS', {}).copy()
-        subject['CN'] = cn
-
-        pkey, cert = g.ca.make_certificate(subject, days=validity)
-
-        # Create the zipfile in-memory, with all the files the user needs.
-        vars = {'cn': cn,
-                'bundle_identifier': '.'.join(
-                current_app.config['VPN_ENDPOINT'].split('.')[::-1]) + '.' + cn,
-                'vpn_endpoint': current_app.config['VPN_ENDPOINT'],
-                'vpn_site': current_app.config['VPN_SITE_URL'],
-                'expiry_date': expiry_date.strftime('%Y/%m/%d')}
-        ca_pem = g.ca.get_ca()
-        crt_pem = crypto.dump_certificate(crypto.FILETYPE_PEM, cert)
-        key_pem = crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)
-        pkcs12 = to_pkcs12(crt_pem, key_pem, ca_pem)
-        manifest = [
-            ('ca.crt', ca_pem),
-            ('crl.pem', g.ca.get_crl(format='pem')),
-            ('%s.crt' % cn, crt_pem),
-            ('%s.key' % cn, key_pem),
-            ('%s.pfx' % cn, pkcs12),
-            ('tlsauth.key', current_app.config['TLS_AUTH_KEY']),
-            ('openvpn-%s.conf' % cn, OPENVPN_CONFIG_TEMPLATE % vars),
-            ('README.txt', README_TEMPLATE % vars),
-
-            # Tunnelblick configuration for OSX
-            ('%s.tblk/Info.plist' % cn, TBLK_PLIST_TEMPLATE % vars),
-            ('%s.tblk/config.ovpn' % cn, OPENVPN_CONFIG_TEMPLATE % vars),
-            ('%s.tblk/ca.crt' % cn, g.ca.get_ca()),
-            ('%s.tblk/crl.pem' % cn, g.ca.get_crl(format='pem')),
-            ('%s.tblk/%s.crt' % (cn, cn), crt_pem),
-            ('%s.tblk/%s.key' % (cn, cn), key_pem),
-            ('%s.tblk/tlsauth.key' % cn, current_app.config['TLS_AUTH_KEY']),
-            ]
-
-        zbuf = StringIO()
-        zf = zipfile.ZipFile(zbuf, mode='w',
-                             compression=zipfile.ZIP_DEFLATED)
-        for filename, contents in manifest:
-            zf.writestr(filename, contents)
-        zf.close()
-        zip_data = zbuf.getvalue()
-
-        current_app.zipcache.put(cn, zip_data)
-
-    response = make_response(zip_data)
-    response.headers['Content-Type'] = 'application/zip'
-    response.headers['Content-Disposition'] = (
-        'attachment; filename="%s.zip"' % cn)
-    response.headers['Cache-control'] = 'private'
-    return response
-
-
-def make_app(config={}):
-    app = Flask(__name__)
-    app.config.update(config)
-    app.config.from_envvar('APP_CONFIG', silent=True)
-    app.signer = Signer(app.config['SIGNER_SECRET'])
-    app.zipcache = ZipCache(app.config['CACHE_DIR'])
-    app.register_blueprint(vpn_admin)
-
-    # Figure out how to hook to the CA.
-    if app.config.get('VPN_CA_URL'):
-        app.ca = ca_stub.CaStub(app.config['VPN_CA_URL'],
-                                app.config.get('CA_SHARED_SECRET'))
-    else:
-        app.ca = ca.CA(app.config['VPN_CA_ROOT'],
-                       app.config['VPN_CA_SUBJECT'],
-                       int(app.config.get('VPN_CA_BITS', 4096)))
-        app.register_blueprint(ca_app.ca_app, url_prefix='/ca')
-
-    app.jinja_env.globals['csrf_token'] = generate_csrf_token
-    return app
-
-
-if __name__ == '__main__':
-    # Run a test instance with a standalone HTTP server.
-    import tempfile
-    import shutil
-    ca_dir = tempfile.mkdtemp()
-    print 'CA dir:', ca_dir
-    try:
-        make_app({'DEBUG': 'true',
-                  'SECRET_KEY': 'somesecret',
-                  'SIGNER_SECRET': 'moresecrets',
-                  'VPN_CA_ROOT': ca_dir,
-                  'VPN_CA_SUBJECT': {'CN': 'test CA', 'O': 'test'},
-                  'VPN_ENDPOINT': 'vpn.example.com',
-                  'VPN_SITE_URL': 'http://localhost:4000/',
-                  'FOOTER': '''
-<p class="footer">
-  built by <a href="http://www.autistici.org/">autistici.org</a>
-</p>
-''',
-                  'AUTH_ENABLE': True,
-                  'AUTH_FUNCTION': lambda x, y: (x and y and x == y),
-                  'CACHE_DIR': 'cache',
-                  }).run(port=4000)
-    finally:
-        shutil.rmtree(ca_dir)
diff --git a/setup.py b/setup.py
index cb90527..face0d1 100755
--- a/setup.py
+++ b/setup.py
@@ -3,25 +3,19 @@
 from setuptools import setup, find_packages
 
 setup(
-    name = "autoca",
-    version = "0.2.1",
-    description = "Automated CA management.",
-    author = "Ale",
-    author_email = "ale@incal.net",
-    url = "http://git.autistici.org/autoca/",
-    license = "MIT",
-    packages = find_packages(),
-    platforms = ["any"],
-    install_requires = ["pyOpenSSL", "Flask", "itsdangerous"],
-    zip_safe = False,
-    entry_points = {
+    name="autoca",
+    version="0.3",
+    description="Automated CA management.",
+    author="Ale",
+    author_email="ale@incal.net",
+    url="http://git.autistici.org/ai/autoca",
+    license="MIT",
+    packages=find_packages(),
+    platforms=["any"],
+    install_requires=["pyOpenSSL", "Flask"],
+    entry_points={
         "console_scripts": [
-            "autoca = autoca.ca_tool:main",
-            "vpnacct = autovpn.acct:main",
-            ],
-        },
-    package_data={
-        "autovpn": ["templates/*", "static/*"],
-        },
-    )
-
+            "autoca=autoca.ca_tool:main",
+        ],
+    },
+)
-- 
GitLab