From ac37198e3f13d3ff1d3603d196fcb19d0670319d Mon Sep 17 00:00:00 2001 From: Ross Poulton Date: Fri, 4 Feb 2011 23:13:37 +0000 Subject: [PATCH] Add first round of proper documentation. Mostly taken from the README at this stage. --- MANIFEST.in | 1 + README | 177 +-------- docs/Makefile | 130 +++++++ docs/doctrees/api.doctree | Bin 0 -> 3598 bytes docs/doctrees/configuration.doctree | Bin 0 -> 14731 bytes docs/doctrees/custom_fields.doctree | Bin 0 -> 4787 bytes docs/doctrees/environment.pickle | Bin 0 -> 16453 bytes docs/doctrees/index.doctree | Bin 0 -> 16644 bytes docs/doctrees/install.doctree | Bin 0 -> 21602 bytes docs/doctrees/settings.doctree | Bin 0 -> 6141 bytes docs/doctrees/spam.doctree | Bin 0 -> 10109 bytes docs/html/.buildinfo | 4 + docs/html/_sources/api.txt | 6 + docs/html/_sources/configuration.txt | 42 +++ docs/html/_sources/custom_fields.txt | 10 + docs/html/_sources/index.txt | 72 ++++ docs/html/_sources/install.txt | 78 ++++ docs/html/_sources/settings.txt | 20 + docs/html/_sources/spam.txt | 31 ++ docs/html/_static/basic.css | 528 +++++++++++++++++++++++++++ docs/html/_static/default.css | 256 +++++++++++++ docs/html/_static/doctools.js | 247 +++++++++++++ docs/html/_static/file.png | Bin 0 -> 392 bytes docs/html/_static/jquery.js | 154 ++++++++ docs/html/_static/minus.png | Bin 0 -> 199 bytes docs/html/_static/plus.png | Bin 0 -> 199 bytes docs/html/_static/pygments.css | 62 ++++ docs/html/_static/searchtools.js | 518 ++++++++++++++++++++++++++ docs/html/_static/sidebar.js | 148 ++++++++ docs/html/_static/underscore.js | 16 + docs/html/api.html | 101 +++++ docs/html/configuration.html | 144 ++++++++ docs/html/custom_fields.html | 113 ++++++ docs/html/genindex.html | 90 +++++ docs/html/index.html | 195 ++++++++++ docs/html/install.html | 190 ++++++++++ docs/html/objects.inv | Bin 0 -> 211 bytes docs/html/search.html | 96 +++++ docs/html/searchindex.js | 1 + docs/html/settings.html | 133 +++++++ docs/html/spam.html | 143 ++++++++ docs/source/api.rst | 6 + docs/source/conf.py | 216 +++++++++++ docs/source/configuration.rst | 42 +++ docs/source/custom_fields.rst | 10 + docs/source/index.rst | 72 ++++ docs/source/install.rst | 78 ++++ docs/source/settings.rst | 20 + docs/source/spam.rst | 31 ++ 49 files changed, 4008 insertions(+), 173 deletions(-) create mode 100644 docs/Makefile create mode 100644 docs/doctrees/api.doctree create mode 100644 docs/doctrees/configuration.doctree create mode 100644 docs/doctrees/custom_fields.doctree create mode 100644 docs/doctrees/environment.pickle create mode 100644 docs/doctrees/index.doctree create mode 100644 docs/doctrees/install.doctree create mode 100644 docs/doctrees/settings.doctree create mode 100644 docs/doctrees/spam.doctree create mode 100644 docs/html/.buildinfo create mode 100644 docs/html/_sources/api.txt create mode 100644 docs/html/_sources/configuration.txt create mode 100644 docs/html/_sources/custom_fields.txt create mode 100644 docs/html/_sources/index.txt create mode 100644 docs/html/_sources/install.txt create mode 100644 docs/html/_sources/settings.txt create mode 100644 docs/html/_sources/spam.txt create mode 100644 docs/html/_static/basic.css create mode 100644 docs/html/_static/default.css create mode 100644 docs/html/_static/doctools.js create mode 100644 docs/html/_static/file.png create mode 100644 docs/html/_static/jquery.js create mode 100644 docs/html/_static/minus.png create mode 100644 docs/html/_static/plus.png create mode 100644 docs/html/_static/pygments.css create mode 100644 docs/html/_static/searchtools.js create mode 100644 docs/html/_static/sidebar.js create mode 100644 docs/html/_static/underscore.js create mode 100644 docs/html/api.html create mode 100644 docs/html/configuration.html create mode 100644 docs/html/custom_fields.html create mode 100644 docs/html/genindex.html create mode 100644 docs/html/index.html create mode 100644 docs/html/install.html create mode 100644 docs/html/objects.inv create mode 100644 docs/html/search.html create mode 100644 docs/html/searchindex.js create mode 100644 docs/html/settings.html create mode 100644 docs/html/spam.html create mode 100644 docs/source/api.rst create mode 100644 docs/source/conf.py create mode 100644 docs/source/configuration.rst create mode 100644 docs/source/custom_fields.rst create mode 100644 docs/source/index.rst create mode 100644 docs/source/install.rst create mode 100644 docs/source/settings.rst create mode 100644 docs/source/spam.rst diff --git a/MANIFEST.in b/MANIFEST.in index 080d4f54..ea315679 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -7,3 +7,4 @@ recursive-include helpdesk/htdocs * recursive-include helpdesk/locale *.po *.mo recursive-include helpdesk/templates * recursive-include helpdesk/fixtures *.json +recursive-include docs/html * diff --git a/README b/README index 799802d5..727100ba 100644 --- a/README +++ b/README @@ -7,6 +7,8 @@ company who originally created it. As of January 2011 the name has been changed to reflect what it really is: a Django-powered ticket tracker with contributors reaching far beyond Jutda. +Complete documentation is available in the docs/ directory, or online at http://django-helpdesk.readthedocs.org/. + ######################### 0. Table of Contents ######################### @@ -15,10 +17,6 @@ contributors reaching far beyond Jutda. 2. Dependencies (pre-flight checklist) 3. Upgrading from previous versions 4. Installation -5. Initial Configuration -6. Spam filtering -7. API Usage -8. Custom fields ######################### 1. Licensing @@ -77,174 +75,7 @@ the current version of django-helpdesk working. 4. Installation ######################### -1. Try using 'pip install django-helpdesk'. If that fails, download and - place 'helpdesk' in your Python path. I use /var/django, others may use - /usr/lib/python2.4/site-packages/ or a similar path. +``pip install django-helpdesk`` -2. In your projects' settings.py file, add these lines to the INSTALLED_APPS - setting: - 'helpdesk', - 'django.contrib.admin', +For further installation information see docs/install.html and docs/configuration.html -3. In your projects' urls.py file, add this line: - (r'helpdesk/', include('helpdesk.urls')), - - You can substitute 'helpdesk/' for something else, eg 'support/' or even ''. - -4. Ensure the admin line is un-hashed in urls.py: - # Uncomment this for admin: - from django.contrib import admin - admin.autodiscover() - (r'^admin/(.*)', admin.site.root), - - If you use helpdesk at the top of your domain (at /), ensure the admin - line comes BEFORE the helpdesk line. - -5. In your project directory (NOT the helpdesk directory) run - ./manage.py syncdb - to create database tables - -6. Inside your MEDIA_ROOT folder, create a new folder called 'helpdesk' and - copy the contents of helpdesk/htdocs/ into it. Alternatively, create a - symlink: - ln -s /path/to/helpdesk/htdocs /path/to/media/helpdesk - - This application assumes all helpdesk media will be accessible at - http://MEDIA_URL/helpdesk/ - -7. Inside your MEDIA_ROOT folder, inside the 'helpdesk' folder, is a folder - called 'attachments'. Ensure your web server software can write to this - folder - something like this should do the trick: - - chown www-data:www-data attachments/; chmod 700 attachments - (substitute www-data for the user / group that your web server runs - as, eg 'apache' or 'httpd') - - If all else fails ensure all users can write to it: - - chmod 777 attachments/ - - This is NOT recommended, especially if you're on a shared server. - -8. Ensure that your 'attachments' folder has directory listings turned off, - to ensure users don't download files that they are not specifically linked - to from their tickets. - - If you are using Apache, put a .htaccess file in the 'attachments' folder - with the following content: - - Options -Indexes - - You will also have to make sure that .htaccess files aren't being ignored. - - Ideally, accessing http://MEDIA_URL/helpdesk/attachments/ will give you a - 403 access denied error. - -######################### -5. Initial Configuration -######################### - -1. Visit http://yoursite/admin/ and add a Helpdesk Queue. If you wish, - enter your POP3 or IMAP server details. - - IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE - the original e-mail from the mail server. - -2. Visit http://yoursite/helpdesk/ (or other path as defined in your urls.py) - -3. If you wish to automatically create tickets from the contents of an e-mail - inbox, set up a cronjob to run scripts/get_email.py on a regular basis. - - Don't forget to set the relevant Django environment variables in your - crontab: - - */5 * * * * /path/to/helpdesksite/manage.py get_email - - This will run the e-mail import every 5 minutes - - IMPORTANT NOTE: Any tickets created via POP3 or IMAP mailboxes will DELETE - the original e-mail from the mail server. - -4. If you wish to automatically escalate tickets based on their age, set up - a cronjob to run scripts/escalate_tickets.py on a regular basis: - - 0 * * * * /path/to/helpdesksite/manage.py escalate_tickets - - This will run the escalation process hourly, using the 'Escalation Hours' - setting for each queue to determine which tickets to escalate. - -5. If you wish to exclude some days (eg, weekends) from escalation calculations, enter - the dates manually via the Admin, or setup a cronjob to run - the create_escalation_exclusions management command on a regular basis: - - 0 0 * * 0 /path/to/helpdesksite/manage.py create_escalation_exclusions --days saturday,sunday --escalate-verbosely - - This will, on a weekly basis, create exclusions for the coming weekend. - -6. Log in to your Django admin screen, and go to the 'Sites' module. If the - site 'example.com' is listed, click it and update the details so they are - relevant for your website. - -7. If you do not send mail directly from your web server (eg, you need to - use an SMTP server) then edit your settings.py file so it contains your - mail server details: - - EMAIL_HOST = 'XXXXX' - EMAIL_HOST_USER = 'YYYYYY@ZZZZ.PPP' - EMAIL_HOST_PASSWORD = '123456' - -You're now up and running! - -######################### -7. Spam filtering -######################### - -django-helpdesk includes a copy of `akismet.py' by Michael Foord, which lets -incoming ticket submissions be automatically checked against either the -Akismet or TypePad Anti-Spam services. - -To enable this functionality, sign up for an API key with one of the following -serviceS: - -Akismet: http://akismet.com/ -Save your API key in settings.py as AKISMET_API_KEY -Note: Akismet is only free for personal use. Paid commercial accounts are -available. - -TypePad AntiSpam: http://antispam.typepad.com/ -Save your API key in settings.py as TYPEPAD_ANTISPAM_API_KEY -This service is free to use, within their terms and conditions. - -If you have either of these settings enabled, the spam filtering will be -done automatically. If you have *both* settings configured, TypePad will -be used instead of Akismet. - -Example configuration in settings.py: - -TYPEPAD_ANTISPAM_API_KEY = 'abc123' - -######################### -7. API Usage -######################### - -django-helpdesk includes an API accessible via HTTP POST requests, allowing -you to create and alter tickets from 3rd party software and systems. - -For usage instructions and command syntax, see the file -templates/helpdesk/api_help.html, or visit http://helpdesk/api/help/. - -######################### -8. Custom fields -######################### - -As of February 2011, django-helpdesk supports custom fields on the Ticket -model. These fields are created by using the Django administration tool, and -are shown on both the public and staff submission forms. - -You can use most Django field types including text, integer, boolean, and list. - -The demo at http://demo.jutdahelpdesk.com contains an example of each type of -custom field, including a mix of mandatory and optional fields. - -Note that this feature is still in beta - it needs quite a bit of testing and -no doubt has bugs! diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 00000000..25b1a397 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,130 @@ +# Makefile for Sphinx documentation +# + +# You can set these variables from the command line. +SPHINXOPTS = +SPHINXBUILD = sphinx-build +PAPER = +BUILDDIR = . + +# Internal variables. +PAPEROPT_a4 = -D latex_paper_size=a4 +PAPEROPT_letter = -D latex_paper_size=letter +ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source + +.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest + +help: + @echo "Please use \`make ' where is one of" + @echo " html to make standalone HTML files" + @echo " dirhtml to make HTML files named index.html in directories" + @echo " singlehtml to make a single large HTML file" + @echo " pickle to make pickle files" + @echo " json to make JSON files" + @echo " htmlhelp to make HTML files and a HTML help project" + @echo " qthelp to make HTML files and a qthelp project" + @echo " devhelp to make HTML files and a Devhelp project" + @echo " epub to make an epub" + @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" + @echo " latexpdf to make LaTeX files and run them through pdflatex" + @echo " text to make text files" + @echo " man to make manual pages" + @echo " changes to make an overview of all changed/added/deprecated items" + @echo " linkcheck to check all external links for integrity" + @echo " doctest to run all doctests embedded in the documentation (if enabled)" + +clean: + -rm -rf $(BUILDDIR)/* + +html: + $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." + +dirhtml: + $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml + @echo + @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." + +singlehtml: + $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml + @echo + @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." + +pickle: + $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle + @echo + @echo "Build finished; now you can process the pickle files." + +json: + $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json + @echo + @echo "Build finished; now you can process the JSON files." + +htmlhelp: + $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp + @echo + @echo "Build finished; now you can run HTML Help Workshop with the" \ + ".hhp project file in $(BUILDDIR)/htmlhelp." + +qthelp: + $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp + @echo + @echo "Build finished; now you can run "qcollectiongenerator" with the" \ + ".qhcp project file in $(BUILDDIR)/qthelp, like this:" + @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/django-helpdesk.qhcp" + @echo "To view the help file:" + @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-helpdesk.qhc" + +devhelp: + $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp + @echo + @echo "Build finished." + @echo "To view the help file:" + @echo "# mkdir -p $$HOME/.local/share/devhelp/django-helpdesk" + @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-helpdesk" + @echo "# devhelp" + +epub: + $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub + @echo + @echo "Build finished. The epub file is in $(BUILDDIR)/epub." + +latex: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo + @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." + @echo "Run \`make' in that directory to run these through (pdf)latex" \ + "(use \`make latexpdf' here to do that automatically)." + +latexpdf: + $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex + @echo "Running LaTeX files through pdflatex..." + make -C $(BUILDDIR)/latex all-pdf + @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." + +text: + $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text + @echo + @echo "Build finished. The text files are in $(BUILDDIR)/text." + +man: + $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man + @echo + @echo "Build finished. The manual pages are in $(BUILDDIR)/man." + +changes: + $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes + @echo + @echo "The overview file is in $(BUILDDIR)/changes." + +linkcheck: + $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck + @echo + @echo "Link check complete; look for any errors in the above output " \ + "or in $(BUILDDIR)/linkcheck/output.txt." + +doctest: + $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest + @echo "Testing of doctests in the sources finished, look at the " \ + "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/doctrees/api.doctree b/docs/doctrees/api.doctree new file mode 100644 index 0000000000000000000000000000000000000000..1b1abe2a88cbd64b3d4c8b8a7479e367b331a138 GIT binary patch literal 3598 zcmd5eYSs-Ma7f?UP}o!otRh zX=ExArtTh7k=Z)$y6hZJmb`nBYFUs9+s}pJJta?_JvuQl5#1JKJ+&l7l4IMdXX9{H zSTD$9o^BaBV2X~hu|;T=`H|=vo+){j=JP-s;itlwpoe(1HrHuBEVRa%zEOn^1@CQ9 zJrbePf!oddT68cdtm-OdGi8NuY@jXAE$^Zkhb)c^&zHPkPSepbSW5#~OAgk8q1jNz zNra>LK${Par*1^(&a3kU$ox>rhmpAs)`y^u&;(5bJ#g}ca+0Qpzh5*SMvGh*Ssa4S zI$wOY0kWD>rJ|{oG0ic6P4I1+gHTPNY-nTo=pE5(+ci)TL<19=H2;U1b z4~cm}7(&ub?S&g7gRkAeWNiyLU+36-YQ^T$9Gg#fY@T*( zKEttjy<>CFh|L@1ssGR9o{4fTm;5YOE|=&vRk@@q%8ezrTv19C<+RdX;e5o4Gh=m8 zU0+v{$O~1Py1%BM*F>RJ1?a(f%Aq`^}E_6-PTc+NVdf-?9ka!v_XGKNnPn7B`x`Gro<{vu6dccEi`(fzCs9O)fL zf9NbFa@7#72HnD;az@qz{r~+?3DV+{Zv#AL8rl$^R$ zs^>xSqUhjX-~!NItAosRl}?4`tVMHMovd?-d9W-l% zwXj3OuinvE;C-1DSyaCzNZ^}wzEkmCC2ua$!4Va{Yi9tyYWOvPaREXr9bv}Eu@CZ! z(f3~4qJ6p>Vkw4=LMQw>IyTgpRSLsSENr)-bg${|dy`*JH82ng7nE%~N{82g}Hew8mkab~(+8*Fh%g0K6VfN|q7%p@-MVSpRrgKqxcby4?H1V@f4Viy zD>tHukVl&EXB>SSxq`}K=vHSzV)(PTPmU9ez}1K|%=mMgw0AJ*`A)t3dBAiU-J!BC z;D|Be`HM7F*zVHR{3WUnw>v?98N1_bXNmYLRI64l8IbT*+V4lP2{4gBf)y`cYf%k1 zILCqU27evKRI@?HUymaz`5Vg^&d=8of0L$YZ%Y2H zT#$zh)U@+sYS1NqSMu-W3Aj1h;~%QQV-wULJ! V{(GDMQ8iWfHSo`p|5bDv{|0L@Gsyq| literal 0 HcmV?d00001 diff --git a/docs/doctrees/configuration.doctree b/docs/doctrees/configuration.doctree new file mode 100644 index 0000000000000000000000000000000000000000..6eea4a5c63f7f0b3f3a16c7dc10f38eeb516ade1 GIT binary patch literal 14731 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 literal 0 HcmV?d00001 diff --git a/docs/doctrees/index.doctree b/docs/doctrees/index.doctree new file mode 100644 index 0000000000000000000000000000000000000000..7711edf65716f5f36384b3d2ed58e349b0bac978 GIT binary patch literal 16644 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 literal 0 HcmV?d00001 diff --git a/docs/doctrees/install.doctree b/docs/doctrees/install.doctree new file mode 100644 index 0000000000000000000000000000000000000000..a4a6dba9f494821bd9a9f057ac569d7b9298beb4 GIT binary patch literal 21602 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 GTmJ`_&ZNEo literal 0 HcmV?d00001 diff --git a/docs/doctrees/settings.doctree b/docs/doctrees/settings.doctree new file mode 100644 index 0000000000000000000000000000000000000000..428938b2bf5f6f7e61b8a6624e07d030067c8255 GIT binary patch literal 6141 zcmeHLcYGYh6_#bIor)!48ynkrsg}Xg0X9uQz+h8iqCl(xr(9Nhw{x0Bd%O2$b|qcN zCXj@H(|brldO~_Hq?4YI-h1zr^j^O=cPGhbY!bph$uIu-r`w%<^X7Zsyl=|8roH6H zr8EgbGZw|ZG&z2)$SBFtvMtwAdq&GgL{H>ZWKye2Ln|`s7}>k7t*uSTu!;^dt}n}8 z8YZrhNfJcUhB_zqu7!brl^0FNqfI+!;d|FaDuzs2G)a(P=s02*hPpHA5d&3E8|hZ0 zG2S%B%N3|s43tu>fyp&-s!NjkCPdDcrC591oBAiju$LxrIgXPkPNZuRPbW06dzt8B zhe;tA`Bu) zqr2PTvXM+QrrH%q%a62%ixdbE=ts)69FRsfT79=U$@p+`LjY~CZIa{*5=f|Jvtmlj)H zVS2r3?NwEd&O_v{og{WRcN@k|0*`ZE&1uO9C$37!LYgtUUiMU$@GBkJtEWB+ylbSVhCS4I;Y|6S;QZ$RI1Ai-gfAh<9`mx12PGrAAE zUkP+AgwY<3ani;pIL0eD#w$6-y&U6xQ})jZc|U~L3kOU1ruzf?12QVWxoCso<(O<_ zTUTRrdSF^auhY=$E>4V#0j4tY82x|XrdTIQ0uC=ZrHuS0ic;0Jcq^>`+h_JE2=J*HJ&pPM zUx?@F^}OKKi8Xs;M$h2TZo*VuQs!-LL0|E#)H?93yqw0VY;lWZh1gAzrDe7@}y@)xx+nl}_vEA6v>dhIwgq?2$;zN>2FJ_ z?`z_}Whwr{f&UB`itbNo}s^}-9Qh-bR?MC&Yk31)=Je z;tJP`4E+TYnZ!Is6V6{n2fpYU{S6X?j8kL_?0rdp7wssc{6qBkd{<4pN>#UE6=Rf^ zUpJJqGSth^hB`tYfu_CJ?yBHp_LMy3pq>UL zq^7~*5WDUWo%Q>U9=0y+BqLR40}~{%)`!{F)uk}@W|}*RkD3^liu5Xcyg_V4sFekw zE+&m@ms-6VM*GBa8O`c7)>%F9s*$OWC@Y~p+%^x&`D%=84Uqpj@MujtMNexmd-XxZH@ z2KG-%qVwm z4}3kw4+BX1r8AsI<36#zu5cMjyX1huM7fPZr9KHJ&`X1Qs{^A?Mq@#r!Y5Fx$AnK4Zl7LR;MO zsA}$y%q2mT4?;HtD!-g7+9QE#iPZwLtzt=F=Sp@ESfhZla7eY9ZG}h#aC3nlNx@ca z{boziF8E?`v|7|}F14c2AMyRL?1y$P2rUWK;@xx1Mk?hN1GOYpOFNwgvoX_XnbT-C zX8J65n#{$iHr-Wi+MQ-|%?w?-sY~~iE-NClso=O?5%|rVi`^LAI#lVCj{y zS_MmsHIZu4Vb+-qP#Map)y`bAA#GnXQ;gUZiOOyP?rTwN2YX@VUdJ!lz2XN!?+lQ= z@NdwYi0UQa9tlEa+;~W>i`DUYvoW+rX&ANMY)tW~6U-JX48_eyAK+*_{r+Z*_qA90y3xbpY}_2hh%s93XO192d-lF<>9W`q*|fbN9ir7sl!$Ky`@Y zj3{qK`I!RYW@}WeiqoRDL$@8V+DYB+nq|Sb<$@Ps=@^z#@GFysKVl3Ir@`7&nH(NA z@{`6Mx8PW|XYBNSDQ+?*96TGI9R>!5`z5S2BXkSnc4%O&mE0ge7zRe(Hn>(wSULsE z^CpdgV}l8cc+_&sL1@@+=-6W5V)P};-SEX2z*66frQV07-o20OIk4q`Td;#3b#aa9 zo2y!?OKARG+WeQ&{JUxX%V_>RG=D$MKR+}7<(bMiO`0FdY}uXsjIK z9E1@Ee8VnVdCx`+yMZwhm30QTVD8CHM&OQ?ji_RbAgHaf(YJS(F>X&96Nq}lFWX#d z4E+(`^ZW^}p)Ag~Di?F6DaO&kJ*MMfobli>9!iXdGULH#a5rSZU4eW5tH=~wC9w)% z0*5F^bpmp@<%F?{vcSv0pTJ-~putZN{6T`BB>0Cp%Pr!6xYKA+h2~6!M|3(&$Z@P5 zNjtMPNV9`_6ebLl%{;o$&aDr$5QN#(_}slW~mkQcxZ7`tZt?j6dKQ( zM)Q$}B$xBt0O|P&z;sKjZp}1IahMBgxYQG=?vpyrhNMwFd2kNkcM;W7i0`S~A)ZFK zPbbJ{5afbP@n;^kKXK+9(nhI8Jqy#{7OQ8|BrJUPrNL!|h7*RBt-ZZj8bCtsRnLJ^ zx1@Vib5)FbF7Z828}0c-@dAQ+A>qA=y1P1RxhQMDDbw_^g1G6rlq`` zQeHtRucVY$QOc_mt&pK!!&JLqI$HHw*#32~x`Ud`?0Y?Cx&83eiM`)O;Znd}{RY_K z&RD&XqnAPQY|6ihTD}=xz_>_U^_C-YzLlWgM)+^1XWl_=-bo$a#VmU}v+TQ}!jUF= z4^+7;R__HEoo??;(rt4UuXJE%Sbc&p&iT(^s80gL-L*0CDUIUOMDZD-_$*O;jwn9Qm{>@Aet|L3ex#Yz7h%#b z#p=t%cVw=wVCH*ZRBomB#_Fr&UIdvl?5DoQNcg%&^$nu>CQ*HhsJ=~9-=UZ9A*%1D zfm&mJ^*uoOeyn}~;o7_RYVSJ99y%Yh8E}vKA-H}Ns~;0Wwecr4`0k6|cHvMcRni+>^wp*b?|<%QK?D?lJaSZV?q?sbovRMWawx8Y+y{HqpP+e`qII75v)1e{)a~GZU@6_xcjES}^-Td>g>=%UMmq%Nq z4mot=A(;ab%UoQkL{p6tG7pWgqRiKw8-}Ew4I77~f%N1dX(a6)k|xsLA!!DsUGInQ zrG<^#wDV{bS%Bvo56ME1SXyyS4Le2z$qH{sut}S4!Qj1s^HAGT7C}0IECz{X39eN9 zzcSNO2&Xx8wqm?sKbK{C-sQ=>dIi+(>e8+|VC)qf3}YWd3S%Ej3S%Ef+Rja0R`Rw< z@AFGihs!Fo>8)Nma2LyJ{oJ8n_iNt)_zECvC}8y%A=T{vvR01)27?{Iu#OZMjwc0% z^`roB0w}|+I{S(2*f#rQC!r5^-vAOzC$6yjSc-sHlZ1|fKsIWYu7rgqszu0RKu*?u zQ+0rBLIV+YlLC1UDUkP)0_iEBM7lJy(`Gbua{G`|aTm*J`nh9p143?=Dj+=|=}FHR zdRPv~=@;Q~^DL`!n1*ohxkaO6MYFN(2O)Tf( zN*krq5NFM{Am{6DOmhJ{FwHhnOw&h-X)YwiG#7y;x?@>x$HOf3gX};%yt5M|mWwsh zVTFWTf_5lOc!*{c4YEt~Uz+lFz<62dFssFOQvghK83$yQgzUl7;De6s=UAw9IVsfK zOA7U`Acgu@l0w~mpvXcRB@@vA+qXTqd=q@Iz*QizT#aj%pr~V#{HN6&!YVYD{R!vb z4hGIqS04lW_wLx+w>{U_Kd@`x-o8CGWr$n@iL->&wR$2bd>#9t@DM2saXl#vlOu%z zhCyq?%3?diDvz633b-=mZGVUWOOf(dkI@{p@oDRMfOmu)z&lC`ybdYwx}?B62Fmzc zMsJPd;Q?zI@xTE;l|W)CYxV~yYQzTz&{6lKw2_J)snU_N6gVOrgD?#=4^#-*02Lxq zsBnN3Dol_$j0v>36D@ZI)#5L2JV5?eBtE%Kln)%5I^WX&(&$EE^UEbia04u7{ zXB~yJGrawy(8r6vi<2)~N~oa9tgOmKm#4Quk30pkV5^$Fj)jywRZjuUpT>S@{&Z4k z{tQxR{!CJ6{wz>NX?wPV+{TV=4+*wsLli9Z9FSO^iz_TNmI9_FlC60(FhNer%v->JI~{(Vv(mO(~cH#s_Lah+I@FMoZ3oj;x z7hXaNFWgQFFT50#UN|Q6!pqRWeBu5tO(8GGtZ>*XKw^2NhS2dphVUxP3QIB|4u7?` zOBKfo+@M8Xjef+u(G%U3Omui5|6bhzgT9aBVbHrtVbJ%J!k`}@U8W29 z5AwD_7xJsJ!2S^0l0yE&xQpc@`Z+nd+mU?LlaF%T>MY92@=b<^q7tZ8}n_j0V~x`D~s>w;onV%&sJG{ zk7KahzOQ+p&=1%Eg?>m1g?>Z|g?>y5g?<9c<;GdK-0mYiyt4Qynt}gkAhG-$*KE}h zQgx5TK)&G{nYDkBjQXV>^{ZsmbdF!6v8p2@pPSHcH2-f?ety6?(%x^JXKb+Yh0Uj) zwn2WEh^h%z?b_dKF|foR*bhtGPYO%?krbBr6Dch5XHdF!ZRXm)up{~CbTsq-73?t4 z-#}vdJFX1m6cjbmft;*wi)T~jf>5k-fI}Oc&d5K&(Qmd^KT-3;sr*yRs+(I^XEvch ze>9ajc*Kbc8y5$YrM&OuvQdG|L-UZ#XXlb>pS-oadfnT=-sLlf<}^d2W@sWqbHNSu zatfqbx3=I))0hjhukHM3D+|z!@9R}vs-Na%p&r(XE74bcLE$8An!U*_CLiHt5uWiK zzO@!?AdB_TB^=tC;YbiJMO!S(*t6J0^(FXxp2O$-QGC~w<$72NK$T8^mQR^!jji3tI5#}yA^ExrF=~? zLmPgXpsLByc_3@G@HQM>xs{wg%ES4c7`nAJ^f_gQaUCVr<5vNhl;e5d>ft|&2>(f7 zV9}QKY@2JBt1=*k(TO7;7 z2NuoNNw#{kHN}_w03aL5=WOXWJK%C(axj!%!~uCOd2~=bd${cao4J?@1Q_UGeh=1= zli6HfwDZxZY@#G{v0cjB44FyK4jkJKr5o)xo2&gOtVH3F{EOh0NBore)P%Wh!jdv|fm|DhT&HQ?cDfC} zeQ59J@bL$#Al^?$r`d$Q?h{Wry(nk!afyA<#jh$@T~Ux)@l1-YHye_DOwQ6Gwa*dV z2i(97eUUA?wY}i^)_Be?;qW$R74csQf4Pve(Rq`(8mgA6>0m01a;V8+*sWl?*_>yW z56C%MSfY3(u%jZhEO~OSZeDC3toR6I7b`_@m>kG?x_v3Fho1%X?-Qw2&et**BtMhj zt6OH^~ zD?9kSC|7g?o@OJ~Sq#WdJ+>K{rUDf1LAjW0Tyj=EH{ljhOJ0JO-A!iO^dOa8WUMy_ zb^_9+yl+f@ERx-P>isu=tdYw&s(I8#wzTNTJ$UXn+jP)PnYdrKE@T{4v&iKfxi-xr z6B83CWnu{V5A=dL=#{X>e%87u7yu#D*y(8f%go3hH496Z-8%0Aw-A>?bl zJAlTU%~i?jwmq9ag$1x)=;YF$eZ&L{)=Fx2y#@lg3XMZ@HASw_s{$`;w&;Jkl5g)t z8AK=6-U9sWg!N0$6=i?Y)~ZcY&EVIdwLi+6?KAf*{U4WH%RzPe2P3%-_puD&+Ucyo z$N2W-g?u@_ZYkoP`4? a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + clear: both; + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/docs/html/_static/default.css b/docs/html/_static/default.css new file mode 100644 index 00000000..21f3f509 --- /dev/null +++ b/docs/html/_static/default.css @@ -0,0 +1,256 @@ +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} \ No newline at end of file diff --git a/docs/html/_static/doctools.js b/docs/html/_static/doctools.js new file mode 100644 index 00000000..8b9bd2c0 --- /dev/null +++ b/docs/html/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for all documentation. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/docs/html/_static/file.png b/docs/html/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/docs/html/_static/jquery.js b/docs/html/_static/jquery.js new file mode 100644 index 00000000..7c243080 --- /dev/null +++ b/docs/html/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(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(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(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,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/docs/html/_static/minus.png b/docs/html/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/docs/html/_static/pygments.css b/docs/html/_static/pygments.css new file mode 100644 index 00000000..1a14f2ae --- /dev/null +++ b/docs/html/_static/pygments.css @@ -0,0 +1,62 @@ +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #303030 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0040D0 } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/docs/html/_static/searchtools.js b/docs/html/_static/searchtools.js new file mode 100644 index 00000000..dae92b5e --- /dev/null +++ b/docs/html/_static/searchtools.js @@ -0,0 +1,518 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('