Merge lp:~sergei.glushchenko/percona-server/5.5-merge-pam into lp:percona-server/5.5

Proposed by Sergei Glushchenko
Status: Merged
Approved by: Laurynas Biveinis
Approved revision: no longer in the source branch.
Merged at revision: 540
Proposed branch: lp:~sergei.glushchenko/percona-server/5.5-merge-pam
Merge into: lp:percona-server/5.5
Diff against target: 2591 lines (+253/-1964)
21 files modified
Percona-Server/plugin/percona-pam-for-mysql/.bzrignore (+1/-0)
Percona-Server/plugin/percona-pam-for-mysql/CMakeLists.txt (+4/-2)
Percona-Server/plugin/percona-pam-for-mysql/configure.ac (+2/-5)
Percona-Server/plugin/percona-pam-for-mysql/doc/Makefile (+9/-0)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/layout.html (+0/-499)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/searchbox.html (+0/-22)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/default.css_t (+0/-469)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/jquery.min.js (+0/-154)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.css (+0/-271)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.js (+0/-269)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/sidebar.js (+0/-151)
Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/theme.conf (+0/-32)
Percona-Server/plugin/percona-pam-for-mysql/src/Makefile.am (+6/-3)
Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.c (+59/-67)
Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.h (+7/-10)
Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam.c (+2/-1)
Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.c (+6/-8)
Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.h (+4/-0)
Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_compat.c (+2/-1)
Percona-Server/plugin/percona-pam-for-mysql/src/groups.c (+98/-0)
Percona-Server/plugin/percona-pam-for-mysql/src/groups.h (+53/-0)
To merge this branch: bzr merge lp:~sergei.glushchenko/percona-server/5.5-merge-pam
Reviewer Review Type Date Requested Status
Laurynas Biveinis (community) Approve
Review via email: mp+169245@code.launchpad.net

Description of the change

Merge latest PAM plugin

To post a comment you must log in.
Revision history for this message
Sergei Glushchenko (sergei.glushchenko) wrote :

I have to resubmit with the fix for PAM bug1190662 included.

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) wrote :

Due to LP limitations, please create a separate blueprint for the 5.6.

Revision history for this message
Sergei Glushchenko (sergei.glushchenko) wrote :

I've updated the branch and created separate BP for 5.6.
Jenkins is in very bad shape, but it looks like debug build isn't failed http://jenkins.percona.com/view/PS%205.5/job/percona-server-5.5-param/766/ at least.

Revision history for this message
Laurynas Biveinis (laurynas-biveinis) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/.bzrignore'
2--- Percona-Server/plugin/percona-pam-for-mysql/.bzrignore 2012-03-15 14:43:05 +0000
3+++ Percona-Server/plugin/percona-pam-for-mysql/.bzrignore 2013-06-14 07:42:31 +0000
4@@ -19,3 +19,4 @@
5 *.tar.gz
6 m4/*.m4
7 doc/build
8+doc/source/percona-theme
9
10=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/CMakeLists.txt'
11--- Percona-Server/plugin/percona-pam-for-mysql/CMakeLists.txt 2013-01-16 13:23:11 +0000
12+++ Percona-Server/plugin/percona-pam-for-mysql/CMakeLists.txt 2013-06-14 07:42:31 +0000
13@@ -1,4 +1,4 @@
14-# (C) 2011 Percona Inc.
15+# (C) 2011-2013 Percona Ireland Ltd.
16 #
17 # This program is free software; you can redistribute it and/or modify
18 # it under the terms of the GNU General Public License as published by
19@@ -21,10 +21,12 @@
20 ENDIF(NOT HAVE_PAM)
21 CHECK_SYMBOL_EXISTS(getpwnam_r "pwd.h" HAVE_GETPWNAM_R)
22 CHECK_SYMBOL_EXISTS(getgrgid_r "grp.h" HAVE_GETGRGID_R)
23+CHECK_INCLUDE_FILES (security/pam_misc.h HAVE_SECURITY_PAM_MISC_H)
24+CHECK_INCLUDE_FILES (security/openpam.h HAVE_SECURITY_OPENPAM_H)
25 IF(HAVE_PAM AND HAVE_GETPWNAM_R AND HAVE_GETGRGID_R)
26 SET(AUTH_PAM_COMMON_SOURCES
27 src/auth_pam_common.c src/lib_auth_pam_client.c src/lib_auth_pam_client.h
28- src/auth_mapping.h src/auth_mapping.c)
29+ src/auth_mapping.h src/auth_mapping.c src/groups.c src/groups.h)
30 SET(AUTH_PAM_SOURCES ${AUTH_PAM_COMMON_SOURCES} src/auth_pam.c)
31 SET(AUTH_PAM_COMPAT_SOURCES ${AUTH_PAM_COMMON_SOURCES} src/auth_pam_compat.c)
32 MYSQL_ADD_PLUGIN(auth_pam ${AUTH_PAM_SOURCES} LINK_LIBRARIES pam MODULE_ONLY)
33
34=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/configure.ac'
35--- Percona-Server/plugin/percona-pam-for-mysql/configure.ac 2012-02-10 04:21:32 +0000
36+++ Percona-Server/plugin/percona-pam-for-mysql/configure.ac 2013-06-14 07:42:31 +0000
37@@ -1,5 +1,5 @@
38 # -*- Autoconf -*-
39-# (C) 2011 Percona Inc.
40+# (C) 2011-2013 Percona Ireland Ltd.
41 #
42 # This program is free software; you can redistribute it and/or modify
43 # it under the terms of the GNU General Public License as published by
44@@ -46,10 +46,7 @@
45 AC_MSG_ERROR(
46 [Unable to find PAM. Please install the PAM development libraries])
47 )
48-AC_CHECK_LIB([mysqlclient], [mysql_init], [DIALOG_LIBS="$DIALOG_LIBS -lmysqlclient"],
49- AC_MSG_ERROR(
50- [Unable to find libmysqlclient. Please install the mysql development libraries])
51-)
52+DIALOG_LIBS="$DIALOG_LIBS "`${MYSQL_CONFIG} --libs_r`
53
54 # Replace -I with -isystem for the MySQL header include GCC option to silence
55 # warnings originating from them
56
57=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/doc/Makefile'
58--- Percona-Server/plugin/percona-pam-for-mysql/doc/Makefile 2011-10-25 10:51:19 +0000
59+++ Percona-Server/plugin/percona-pam-for-mysql/doc/Makefile 2013-06-14 07:42:31 +0000
60@@ -37,6 +37,15 @@
61 -rm -rf $(BUILDDIR)/*
62
63 html:
64+ @echo "Downloading percona-theme ..."
65+ @wget -O percona-theme.tar.gz http://percona.com/docs/theme/percona-pam-for-mysql
66+ @echo "Extracting theme."
67+ @tar -zxf percona-theme.tar.gz
68+ @rm -rf source/percona-theme
69+ @mv percona-theme source/percona-theme
70+ @rm percona-theme.tar.gz
71+ @echo "Building html doc"
72+
73 $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
74 @echo
75 @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
76
77=== removed directory 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme'
78=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/layout.html'
79--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/layout.html 2012-03-26 17:43:02 +0000
80+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/layout.html 1970-01-01 00:00:00 +0000
81@@ -1,499 +0,0 @@
82-{#
83- basic/layout.html
84- ~~~~~~~~~~~~~~~~~
85-
86- Master layout template for Sphinx themes.
87-
88- :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
89- :license: BSD, see LICENSE for details.
90-#}
91-{%- block doctype -%}
92-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
93- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
94-{%- endblock %}
95-{%- set reldelim1 = reldelim1 is not defined and ' &raquo;' or reldelim1 %}
96-{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %}
97-{%- set render_sidebar = (not embedded) and (not theme_nosidebar|tobool) and
98- (sidebars != []) %}
99-{%- set url_root = pathto('', 1) %}
100-{# XXX necessary? #}
101-{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
102-{%- if not embedded and docstitle %}
103- {%- set titlesuffix = " &mdash; "|safe + docstitle|e %}
104-{%- else %}
105- {%- set titlesuffix = "" %}
106-{%- endif %}
107-
108-{%- macro relbar() %}
109- <div class="related">
110- <h3>{{ _('Navigation') }}</h3>
111- <ul>
112- {%- for rellink in rellinks %}
113- <li class="right" {% if loop.first %}style="margin-right: 10px"{% endif %}>
114- <a href="{{ pathto(rellink[0]) }}" title="{{ rellink[1]|striptags|e }}"
115- {{ accesskey(rellink[2]) }}>{{ rellink[3] }}</a>
116- {%- if not loop.first %}{{ reldelim2 }}{% endif %}</li>
117- {%- endfor %}
118- {%- block rootrellink %}
119- <li><a href="{{ pathto(master_doc) }}">{{ shorttitle|e }}</a>{{ reldelim1 }}</li>
120- {%- endblock %}
121- {%- for parent in parents %}
122- <li><a href="{{ parent.link|e }}" {% if loop.last %}{{ accesskey("U") }}{% endif %}>{{ parent.title }}</a>{{ reldelim1 }}</li>
123- {%- endfor %}
124- {%- block relbaritems %} {% endblock %}
125- </ul>
126- </div>
127-{%- endmacro %}
128-
129-{%- macro sidebar() %}
130- {%- if render_sidebar %}
131- <div class="sphinxsidebar">
132- <div class="sphinxsidebarwrapper">
133- {%- block sidebarlogo %}
134- {%- if logo %}
135- <p class="logo"><a href="{{ pathto(master_doc) }}">
136- <img class="logo" src="{{ pathto('_static/' + logo, 1) }}" alt="Logo"/>
137- </a></p>
138- {%- endif %}
139-
140-<div class="noborder" id="sidenavi">
141-
142- <div class="sidebanner" id="sidebanner">
143- <div class="header"><a href="/contact/sales">Call Us</a></div>
144- <div class="numbers">
145- <div style="padding-bottom: 4px">
146- +1-888-316-9775 (USA - Sales)<br>
147- +1-208-473-2904 (USA - Sales)
148- </div>
149- <div>
150- +44-208-133-0309 (UK - Sales)
151- </div>
152- <div>
153- +1-877-862-4316 (Emergency)
154- </div>
155- </div>
156- </div>
157- <div id="sidefloater"></div>
158-</div>
159-
160- {%- endblock %}
161- {%- if sidebars != None %}
162- {#- new style sidebar: explicitly include/exclude templates #}
163- {%- for sidebartemplate in sidebars %}
164- {%- include sidebartemplate %}
165- {%- endfor %}
166- {%- else %}
167- {#- old style sidebars: using blocks -- should be deprecated #}
168- {%- block serverseries %}
169- {%- endblock %}
170- {%- block sidebartoc %}
171- {%- include "localtoc.html" %}
172- {%- endblock %}
173- {%- block sidebarrel %}
174- {%- include "relations.html" %}
175- {%- endblock %}
176- {%- block sidebarsourcelink %}
177- {%- include "sourcelink.html" %}
178- {%- endblock %}
179- {%- if customsidebar %}
180- {%- include customsidebar %}
181- {%- endif %}
182- {%- block sidebarsearch %}
183- {%- include "searchbox.html" %}
184- {%- endblock %}
185- {%- endif %}
186-
187- </div>
188- </div>
189- {%- endif %}
190-{%- endmacro %}
191-
192-{%- macro script() %}
193- <script type="text/javascript">
194- var DOCUMENTATION_OPTIONS = {
195- URL_ROOT: '{{ url_root }}',
196- VERSION: '{{ release|e }}',
197- COLLAPSE_INDEX: false,
198- FILE_SUFFIX: '{{ '' if no_search_suffix else file_suffix }}',
199- HAS_SOURCE: {{ has_source|lower }}
200- };
201- </script>
202- {%- for scriptfile in script_files %}
203- <script type="text/javascript" src="{{ pathto(scriptfile, 1) }}"></script>
204- {%- endfor %}
205-{%- endmacro %}
206-
207-{%- macro css() %}
208- <link rel="stylesheet" href="{{ pathto('_static/percona.com.css', 1) }}" type="text/css" />
209- <link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
210- <link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
211- {%- for cssfile in css_files %}
212- <link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
213- {%- endfor %}
214-{%- endmacro %}
215-
216-<html xmlns="http://www.w3.org/1999/xhtml">
217- <head>
218- <meta http-equiv="Content-Type" content="text/html; charset={{ encoding }}" />
219- {{ metatags }}
220- {%- block htmltitle %}
221- <title>{{ title|striptags|e }}{{ titlesuffix }}</title>
222- {%- endblock %}
223-
224- {{ css() }}
225- {%- if not embedded %}
226- {{ script() }}
227- {%- if use_opensearch %}
228- <link rel="search" type="application/opensearchdescription+xml"
229- title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
230- href="{{ pathto('_static/opensearch.xml', 1) }}"/>
231- {%- endif %}
232-
233-<script src="{{ pathto('_static/percona.com.js', 1)}}" type="text/javascript"></script>
234-
235- {%- if favicon %}
236- <link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
237- {%- endif %}
238- {%- endif %}
239-{%- block linktags %}
240- {%- if hasdoc('about') %}
241- <link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
242- {%- endif %}
243- {%- if hasdoc('genindex') %}
244- <link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
245- {%- endif %}
246- {%- if hasdoc('search') %}
247- <link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
248- {%- endif %}
249- {%- if hasdoc('copyright') %}
250- <link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
251- {%- endif %}
252- <link rel="top" title="{{ docstitle|e }}" href="{{ pathto('index') }}" />
253- {%- if parents %}
254- <link rel="up" title="{{ parents[-1].title|striptags|e }}" href="{{ parents[-1].link|e }}" />
255- {%- endif %}
256- {%- if next %}
257- <link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
258- {%- endif %}
259- {%- if prev %}
260- <link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
261- {%- endif %}
262-{%- endblock %}
263-{%- block extrahead %} {% endblock %}
264- </head>
265- <body>
266-
267-{%- block header %}
268-
269- <!-- <div id="stickywrapper"> -->
270- <!-- <div id="stickycontent"> -->
271- <div id="header"><div class="header">
272- <div class="logo"><a href="http://www.percona.com/" onfocus="this.blur()"><img src="http://s3.percona.com/ui-logo.png" alt="Percona Performance Consulting Experts" width="240" height="55" /></a></div>
273- <div class="right">
274- <div class="searchlink"><a onmouseover="SEARCH.Open()"><img id="searchlink-anchor" src="http://s2.percona.com/ui-search.png" alt="" /></a></div>
275- <span class="inv"><![CDATA[<noindex>]]></span>
276- <div class="navicontainer"><div class="navi">
277- <span id="navilink-span-about-us" ><a id="navilink-a-about-us" href="http://www.percona.com/about-us/">About Us</a></span><span id="navilink-span-mysql-consulting" ><a id="navilink-a-mysql-consulting" href="http://www.percona.com/mysql-consulting/">Consulting</a></span><span id="navilink-span-support" ><a id="navilink-a-support" href="http://www.percona.com/mysql-support/">Support</a></span><span id="navilink-span-training" ><a id="navilink-a-training" href="http://www.percona.com/training/">Training</a></span><span id="navilink-span-development" ><a id="navilink-a-development" href="http://www.percona.com/development/">Development</a></span><span id="navilink-span-software" class="selected"><a class="selected" id="navilink-a-software" href="http://www.percona.com/software/">Software</a></span><span id="navilink-span-events" ><a id="navilink-a-events" href="http://www.percona.com/live/">Events</a></span><span id="navilink-span-contact" ><a id="navilink-a-contact" href="http://www.percona.com/contact/">Contact Us</a></span> </div></div>
278-
279- <span class="inv"><![CDATA[</noindex>]]></span>
280- <span class="inv"><![CDATA[</noindex>]]></span>
281- </div>
282- </div></div>
283- <div id="stripe"></div>
284-
285-{% endblock %}
286-
287- <!-- <div id="stripe"></div> -->
288-
289-{%- block content %}
290-
291-
292-
293- {%- block sidebar1 %} {# possible location for sidebar #} {% endblock %}
294-
295- <div class="document">
296-
297-
298-
299- {%- block document %}
300- <div class="documentwrapper">
301- {%- if render_sidebar %}
302- <div class="bodywrapper">
303- {%- endif %}
304-
305- {%- block relbar1 %}{{ relbar() }}{% endblock %}
306-
307- <div class="body">
308- {% block body %} {% endblock %}
309- </div>
310-
311- {%- block relbar2 %}{{ relbar() }}
312-
313- {%- if render_sidebar %}
314- </div>
315- {%- endif %}
316-
317-
318-
319- </div>
320-
321- {%- endblock %}
322-
323- {%- block sidebar2 %}{{ sidebar() }}{% endblock %}
324-
325- <div class="clearer"></div>
326-
327- {%- if last_updated %}
328- {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %}
329- {%- endif %}
330-
331- <div class="license">
332-
333- {%- if show_copyright %}
334- {%- if hasdoc('copyright') %}
335- {% trans path=pathto('copyright'), copyright=copyright|e %}&copy; <a href="{{ path }}">Copyright</a> {{ copyright }}.{% endtrans %}
336- {%- else %}
337- {% trans copyright=copyright|e %}&copy; Copyright {{ copyright }}.{% endtrans %}
338- {%- endif %}
339- {%- endif %}
340-
341- <br />
342- Except where otherwise noted, this documentation is licensed under the following license:
343- <br />
344- <a class="urlextern" rel="license" href="http://creativecommons.org/licenses/by-sa/2.0/">
345- CC Attribution-ShareAlike 2.0 Generic</a><br />
346-
347- {%- if show_sphinx %}
348- {% trans sphinx_version=sphinx_version|e %}Created using <a href="http://sphinx.pocoo.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %}
349- {%- endif %}
350-
351- </div>
352-
353- </div>
354- {%- endblock %}
355-
356- {% endblock %}
357-
358-{%- block footer %}
359-
360- <div class="file-bugs">
361- This documentation is developed in Launchpad as part of the <a href="https://code.launchpad.net/percona-toolkit">Percona Toolkit source code</a>.<br/>
362- If you spotted innacuracies, errors, don't understood it or you think something is missing or should be improved, please <a href="https://bugs.launchpad.net/percona-toolkit/+filebug?field.tags=doc&amp;field.comment=[In:Percona Toolkit Documentation]&amp;?field.tags=doc&amp;field.title=[DOC] ">file a bug</a>.
363-
364- </div>
365-
366- <div id="support-ribbon" class="vertical" style="z-index: 1;">
367- <div id="support-suboptions">
368- <ul>
369- <li><a title="Contact Me" href="http://form.percona.com/ContactMe.html" style="background: url('http://s2.percona.com/buttons/btn_contact-us.png?1');"><span>Contact Us</span></a></li>
370- <li><a title="Customer Portal Log In" href="https://customers.percona.com/" style="background: url('http://s2.percona.com/buttons/btn_customer.png?1');"><span>Customer Portal Log In</span></a></li>
371- <li><a title="Attend a Webinar" href="http://percona.com/webinars/" style="background: url('http://s2.percona.com/buttons/btn_attend-a-webinar.png?1');"><span>Attend a Webinar</span></a></li>
372- <li><a title="Download Software" href="http://percona.com/downloads/" style="background:url('http://s2.percona.com/buttons/btn_download.png?1');"><span>Download Software</span></a></li>
373- <li><a title="Register for Newsletters" href="http://percona.com/subscribe/" style="background: url('http://s2.percona.com/buttons/btn_register.png?1');"><span>Register for Newsletters</span></a></li>
374-
375- </ul>
376- </div>
377- </div>
378-
379- <div id="footer">
380-
381- <div class="footer">
382- <div class="logo"><img width="110" height="25" alt="" src="{{ pathto('_static/ui-footer-logo.png', 1) }}">
383- </div>
384-
385- <div class="text">
386- <span class="inv"><!--[CDATA[<noindex-->]]&gt;</span>
387- Call us: 1-888-316-9775 • <a href="/contact">Contact Us</a><br>
388- MySQL and InnoDB are trademarks of Oracle Corp.<br>
389- Proudly running <a href="/software/percona-server/">Percona Server<span id="recentServerVersion"></span></a><br>
390- Copyright &copy; 2006-2011 Percona Inc.<br>
391- <a href="/about-us/policies/">Copyright, Trademark, and Privacy Policy</a> • <a href="/sitemap/">Sitemap</a>
392- <span class="inv"><!--[CDATA[</noindex-->]]&gt;</span>
393- </div>
394- </div>
395-
396- </div>
397-{%- endblock %}
398-<span class="inv"><!--[CDATA[<noindex-->]]&gt;</span>
399-<div id="submenus">
400- <div class="navi-dropdown" id="navi-dropdown-about-us">
401- <div class="navi-dropdown-header-l"><!-- //--></div>
402- <div class="navi-dropdown-content">
403- <div class="item"><a href="http://www.percona.com/about-us/our-mission/">Our Mission</a></div>
404- <div class="item"><a href="http://www.percona.com/about-us/why-percona/">Why Percona?</a></div>
405- <div class="item"><a href="http://www.percona.com/about-us/procedures/">Coordinating with Percona</a></div>
406- <div class="item"><a href="http://www.percona.com/about-us/customers/">Customers</a></div>
407- <div class="item"><a href="http://www.percona.com/webinars/">Webinars</a></div>
408- <div class="item"><a href="http://www.percona.com/about-us/mysql-case-studies/">MySQL Case Studies</a></div>
409- <div class="item"><a href="http://www.percona.com/about-us/our-team/">Our Team</a></div>
410-
411- <div class="item"><a href="http://www.percona.com/about-us/books/">Our Books</a></div>
412- <div class="item"><a href="http://www.percona.com/about-us/blogs/">Our Blogs</a></div>
413- <div class="item"><a href="http://www.percona.com/about-us/mysql-white-papers/">MySQL White Papers</a></div>
414- <div class="item"><a href="http://www.percona.com/about-us/conferences/">Conferences</a></div>
415- <div class="item"><a href="http://www.percona.com/about-us/presentations/">Presentations</a></div>
416- <div class="item"><a href="http://www.percona.com/about-us/newsletters/">Newsletters</a></div>
417- <div class="item"><a href="http://www.percona.com/about-us/pressreleases/">Press Releases</a></div>
418- <div class="item"><a href="http://www.percona.com/about-us/percona-in-the-news/">In The News</a></div>
419- <div class="item"><a href="http://www.percona.com/about-us/careers/">Careers</a></div>
420-
421- </div>
422- <div class="navi-dropdown-footer"><!-- //--></div>
423- </div>
424- <div class="navi-dropdown" id="navi-dropdown-mysql-consulting">
425- <div class="navi-dropdown-header-l"><!-- //--></div>
426- <div class="navi-dropdown-content">
427- <div class="item"><a href="http://www.percona.com/mysql-consulting/overview/">MySQL Consulting Overview</a></div>
428- <div class="item"><a href="http://www.percona.com/mysql-consulting/prices/">MySQL Consulting Prices</a></div>
429- <div class="item"><a href="http://www.percona.com/mysql-consulting/architecture/">MySQL Architecture &amp; Design</a></div>
430- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-backups/">MySQL Backups</a></div>
431- <div class="item"><a href="http://www.percona.com/mysql-consulting/cloud-computing/">MySQL Cloud Solutions</a></div>
432-
433- <div class="item"><a href="http://www.percona.com/mysql-consulting/cluster/">MySQL Cluster Consulting</a></div>
434- <div class="item"><a href="http://www.percona.com/mysql-consulting/data-warehousing/">MySQL Data Warehousing</a></div>
435- <div class="item"><a href="http://www.percona.com/mysql-consulting/data-recovery/">MySQL Data Recovery</a></div>
436- <div class="item"><a href="http://www.percona.com/mysql-consulting/high-availability/">MySQL High Availability</a></div>
437- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-monitoring-graphing/">MySQL Monitoring &amp; Graphing</a></div>
438- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-onsite-consulting/">MySQL Onsite Consulting</a></div>
439- <div class="item"><a href="http://www.percona.com/mysql-consulting/performance-audit/">MySQL Performance Audit</a></div>
440- <div class="item"><a href="http://www.percona.com/mysql-consulting/remote-dba/">MySQL Remote DBA</a></div>
441-
442- <div class="item"><a href="http://www.percona.com/mysql-consulting/mysql-replication/">MySQL Replication</a></div>
443- <div class="item"><a href="http://www.percona.com/mysql-consulting/upgrade/">MySQL Version Upgrades</a></div>
444- <div class="item"><a href="http://www.percona.com/mysql-consulting/24x7-emergency/">Emergency 24&times;7 Consulting</a></div>
445- <div class="item"><a href="http://www.percona.com/mysql-consulting/migration/">Migration to MySQL</a></div>
446- <div class="item"><a href="http://www.percona.com/drizzle-consulting/">Drizzle Consulting</a></div>
447- <div class="item"><a href="http://www.percona.com/mysql-consulting/sphinx/">Sphinx Consulting</a></div>
448- <div class="item"><a href="http://www.percona.com/mysql-consulting/drbd/">DRBD Consulting</a></div>
449- <div class="item"><a href="http://www.percona.com/mysql-consulting/memcached/">Memcached Consulting</a></div>
450-
451- <div class="item"><a href="http://www.percona.com/mysql-consulting/other-services/">Other Consulting Services</a></div>
452- </div>
453- <div class="navi-dropdown-footer"><!-- //--></div>
454- </div>
455- <div class="navi-dropdown" id="navi-dropdown-support">
456- <div class="navi-dropdown-header-l"><!-- //--></div>
457- <div class="navi-dropdown-content">
458- <div class="item"><a href="http://www.percona.com/mysql-support/">MySQL Support Overview</a></div>
459- <div class="item"><a href="http://www.percona.com/prices/mysql-support/">MySQL Support Prices</a></div>
460- <div class="item"><a href="http://www.percona.com/mysql-support/policies/">MySQL Support Policies</a></div>
461- <div class="item"><a href="http://www.percona.com/mysql-support/consulting-vs-support/">Consulting vs. Support</a></div>
462- <div class="item"><a href="https://customers.percona.com">Customer Portal Login</a></div>
463-
464- </div>
465- <div class="navi-dropdown-footer"><!-- //--></div>
466- </div>
467- <div class="navi-dropdown" id="navi-dropdown-training">
468- <div class="navi-dropdown-header-l"><!-- //--></div>
469- <div class="navi-dropdown-content">
470- <div class="item"><a href="http://www.percona.com/training/">MySQL Training Overview</a></div>
471- <div class="item"><a href="http://www.percona.com/prices/training/">MySQL Training Prices</a></div>
472- <div class="item"><a href="http://www.percona.com/training/classes/dba/">MySQL DBA Training</a></div>
473- <div class="item"><a href="http://www.percona.com/training/classes/developers/">MySQL Developer Training</a></div>
474- <div class="item"><a href="http://www.percona.com/training/classes/operations/">MySQL Operations Training</a></div>
475- <div class="item"><a href="http://www.percona.com/training/classes/innodb/">InnoDB &amp; XtraDB Training</a></div>
476-
477- <div class="item"><a href="http://www.percona.com/training/classes/custom-onsite/">Custom Onsite Training</a></div>
478- </div>
479- <div class="navi-dropdown-footer"><!-- //--></div>
480- </div>
481- <div class="navi-dropdown" id="navi-dropdown-development">
482- <div class="navi-dropdown-header-l"><!-- //--></div>
483- <div class="navi-dropdown-content">
484- <div class="item"><a href="http://www.percona.com/development/mysql/">MySQL Development Overview</a></div>
485- <div class="item"><a href="http://www.percona.com/development/prices/">Custom Development Prices</a></div>
486- <div class="item"><a href="http://www.percona.com/development/maintenance/">MySQL Support Overview</a></div>
487- <div class="item"><a href="http://www.percona.com/development/benchmarking/">Custom Product Evaluation</a></div>
488- <div class="item"><a href="http://www.percona.com/development/maatkit/">Custom Maatkit Development</a></div>
489-
490- <div class="item"><a href="http://www.percona.com/development/custom-tools/">Custom Tools Development</a></div>
491- </div>
492- <div class="navi-dropdown-footer"><!-- //--></div>
493- </div>
494- <div class="navi-dropdown" id="navi-dropdown-software">
495- <div class="navi-dropdown-header-l"><!-- //--></div>
496- <div class="navi-dropdown-content">
497- <div class="item"><a href="http://www.percona.com/software/">Percona Software for MySQL</a></div>
498- <div class="item"><a href="http://www.percona.com/software/percona-server/">Percona Server with XtraDB</a></div>
499- <div class="item"><a href="http://www.percona.com/software/percona-xtradb-cluster/">Percona XtraDB Cluster</a></div>
500- <div class="item"><a href="http://www.percona.com/software/percona-xtrabackup/">Percona XtraBackup</a></div>
501- <div class="item"><a href="http://www.percona.com/software/mysql-innodb-data-recovery-tools/">Data Recovery Toolkit</a></div>
502-
503- <div class="item"><a href="http://www.percona.com/software/percona-xtradb/">Percona XtraDB</a></div>
504- <div class="item"><a href="http://www.percona.com/software/percona-toolkit/">Percona Toolkit</a></div>
505- <div class="item"><a href="http://www.percona.com/prices/software/">Software Prices</a></div>
506- <div class="item"><a href="http://www.percona.com/downloads/">Downloads</a></div>
507- <div class="item"><a href="http://www.percona.com/software/repositories/">Repositories</a></div>
508- <div class="item"><a href="http://www.percona.com/software/documentation/">Documentation</a></div>
509- <div class="item"><a href="http://forum.percona.com">Forum</a></div>
510- <div class="item"><a href="http://groups.google.com/group/percona-discussion">Google Discussion</a></div>
511- <div class="item"><a href="https://launchpad.net/percona-server">Launchpad</a></div>
512-
513- </div>
514- <div class="navi-dropdown-footer"><!-- //--></div>
515- </div>
516- <div class="navi-dropdown" id="navi-dropdown-events">
517- <div class="navi-dropdown-header-r"><!-- //--></div>
518- <div class="navi-dropdown-content">
519- <div class="item"><a href="http://www.percona.com/live/mysql-conference-2012/">MySQL Conference &amp; Expo 2012</a></div>
520- <div class="item"><a href="http://www.percona.com/live/">Previous Percona Live Events</a></div>
521- </div>
522- <div class="navi-dropdown-footer"><!-- //--></div>
523- </div>
524-
525- <div class="navi-dropdown" id="navi-dropdown-contact">
526- <div class="navi-dropdown-header-r"><!-- //--></div>
527- <div class="navi-dropdown-content">
528- <div class="item"><a href="http://www.percona.com/contact/24x7-emergency/">24&times;7 Emergency</a></div>
529- <div class="item"><a href="http://www.percona.com/contact/sales/">Sales &amp; General Inquiries</a></div>
530- <div class="item"><a href="http://www.percona.com/contact/billing/">Billing Inquiries</a></div>
531- <div class="item"><a href="https://customers.percona.com">Customer Portal Login</a></div>
532- <div class="item"><a href="http://www.percona.com/contact/phone-directory/">Phone Directory</a></div>
533- <div class="item"><a href="http://www.percona.com/subscribe/">Subscribe to Newsletter</a></div>
534-
535- </div>
536- <div class="navi-dropdown-footer"><!-- //--></div>
537- </div>
538- <div id="search-dropdown" class="search-dropdown">
539- <div class="search-dropdown-header"><!-- //--></div>
540- <div class="search-dropdown-content">
541- <div class="search-info">Search Percona.com:</div>
542- <form method="get" action="http://search.percona.com/search/" id="search-form">
543- <div class="form"><input type="text" id="search-input" name="q" maxlength="100"></div>
544- </form>
545- </div>
546- <div class="search-dropdown-footer"><!-- //--></div>
547- </div>
548-</div>
549-<div id="stats">
550-<!-- GA //-->
551- <script src="http://www.percona.com/static/js/urchin.js" type="text/javascript"></script>
552- <script type="text/javascript">
553- _uacct = "UA-343802-3";
554- urchinTracker();
555- </script>
556-<!-- /GA //-->
557-<!-- NAVI //-->
558-<script type="text/javascript">//<![CDATA[
559-var navi = [{id:"about-us", direction: "l"},{id:"mysql-consulting", direction: "l"},{id:"support", direction: "l"},{id:"training", direction: "l"},{id:"development", direction: "l"},{id:"software", direction: "l"},{id:"events", direction: "r"},{id:"contact", direction: "r"}];
560-for(var i = 0, c = navi.length; i < c; i++) {
561-window.jQuery('#navilink-a-' + navi[i].id).bind('mouseover',{id: navi[i].id, direction:navi[i].direction}, function(e) { NAVI.Open(e.data.id, e.data.direction); } );
562-}
563-window.jQuery('#search-form').bind('submit', function() { window.location.href = jQuery('#search-form').attr('action') + jQuery('#search-input').val(); return false; });
564-//]]></script>
565-<!-- /NAVI //-->
566-<script type="text/javascript">
567-//<![CDATA[
568-Percona.host = 'www.percona.com';
569-Percona.getRecentServerVersion('#recentServerVersion');
570-//]]>
571-</script>
572-</div>
573- </body>
574-</html>
575-
576-
577-
578-{% if theme_collapsiblesidebar|tobool %}
579-{% set script_files = script_files + ['_static/sidebar.js'] %}
580-{% endif %}
581
582=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/searchbox.html'
583--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/searchbox.html 2011-10-25 10:51:19 +0000
584+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/searchbox.html 1970-01-01 00:00:00 +0000
585@@ -1,22 +0,0 @@
586-{#
587- basic/searchbox.html
588- ~~~~~~~~~~~~~~~~~~~~
589-
590- Sphinx sidebar template: quick search box.
591-
592- :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
593- :license: BSD, see LICENSE for details.
594-#}
595-{%- if pagename != "search" %}
596-<div id="searchbox" style="display: none; padding: 3px;">
597- <h3>{{ _('Quick search') }}</h3>
598- <form class="search" action="{{ pathto('search') }}" method="get">
599- <input type="text" name="q" size="18" />
600- <input type="submit" value="{{ _('Go') }}" />
601- <input type="hidden" name="check_keywords" value="yes" />
602- <input type="hidden" name="area" value="default" />
603- </form>
604-
605-</div>
606-<script type="text/javascript">$('#searchbox').show(0);</script>
607-{%- endif %}
608
609=== removed directory 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static'
610=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/default.css_t'
611--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/default.css_t 2011-10-25 10:51:19 +0000
612+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/default.css_t 1970-01-01 00:00:00 +0000
613@@ -1,469 +0,0 @@
614-/*
615- * default.css_t
616- * ~~~~~~~~~~~~~
617- *
618- * Sphinx stylesheet -- default theme.
619- *
620- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
621- * :license: BSD, see LICENSE for details.
622- *
623- */
624-
625-@import url("basic.css");
626-
627-/* -- page layout ----------------------------------------------------------- */
628-
629-body {
630- font-family: Arial,Helvetica,sans-serif;
631- font-size: 14px;
632- background-color: #fff;
633- color: #333333;
634- line-height: 20px;
635- margin: 0;
636- padding: 0;
637-
638-}
639-
640-div.document {
641- background-color: #fff;
642- margin: 0 auto;
643- overflow: hidden;
644- padding: 30px 0;
645- width: 960px;
646-}
647-
648-div.documentwrapper {
649- /* float: left; */
650- /* width: 100%; */
651-
652-}
653-
654-div.bodywrapper {
655- margin: 10 0 0 0px;
656- width: 660px;
657- float:right;
658-}
659-
660-div.body {
661- background-color: #fff;
662- color: #333333;
663- padding: 0 0 20px;
664-}
665-
666-{%- if theme_rightsidebar|tobool %}
667-div.bodywrapper {
668- margin: 0 {{ theme_sidebarwidth }}px 0 0;
669-}
670-{%- endif %}
671-
672-div.footer {
673- /* color: {{ theme_footertextcolor }}; */
674- /* width: 100%; */
675- /* padding: 9px 0 9px 0; */
676- /* text-align: center; */
677- /* font-size: 75%; */
678- font: 80% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;
679- background: none repeat scroll 0 0 #333333;
680- border-top: 2px solid #D95200;
681- overflow: hidden;
682-}
683-
684-div.footer a {
685- color: {{ theme_footertextcolor }};
686- text-decoration: underline;
687-}
688-
689-div.related {
690- background-color: #ccc;
691- line-height: 30px;
692- color: #333;
693- background: none repeat scroll 0 0 #F8F8F8;
694- border: 1px solid #E0E0E0;
695- clear: both;
696- padding: 10px;
697- width: 635px;
698- margin-bottom: 5px;
699-}
700-
701-div.related a {
702- color: #999;
703-}
704-
705-div.sphinxsidebar {
706- margin-left: 0px;
707- margin-right: 30px;
708- color: #eee;
709- font-family: Arial,Helvetica,sans-serif;
710- width: 260px;
711- {%- if theme_stickysidebar|tobool %}
712- top: 30px;
713- bottom: 0;
714- margin: 0;
715- position: fixed;
716- overflow: auto;
717- height: auto;
718- {%- endif %}
719- {%- if theme_rightsidebar|tobool %}
720- float: right;
721- {%- if theme_stickysidebar|tobool %}
722- right: 0;
723- {%- endif %}
724- {%- endif %}
725-}
726-
727-{%- if theme_stickysidebar|tobool %}
728-/* this is nice, but it it leads to hidden headings when jumping
729- to an anchor */
730-/*
731-div.related {
732- position: fixed;
733-}
734-
735-div.documentwrapper {
736- margin-top: 30px;
737-}
738-*/
739-{%- endif %}
740-
741-div.sphinxsidebar h3 {
742- /* font-family: {{ theme_headfont }}; */
743- color: #999;
744- font-size: 18px;
745- line-height: 15px;
746- font-weight: 400;
747- margin-left: 5px;
748- padding: 0;
749-}
750-
751-div.sphinxsidebar h3 a {
752- color: #333;
753-}
754-
755-div.sphinxsidebar a:hover {
756- /* color: #333; */
757-}
758-
759-div.sphinxsidebar h4 {
760- /* font-family: {{ theme_headfont }}; */
761- color: #666;
762- font-size: 18px;
763- font-weight: normal;
764- margin: 5px 0 0 5px;
765- padding: 0;
766-}
767-
768-div.sphinxsidebar p {
769- color: #333;
770- margin-bottom: 5px;
771- margin-left: 5px;
772-}
773-
774-div.sphinxsidebar p.topless {
775- margin: 5px 10px 10px 10px;
776-}
777-
778-div.sphinxsidebar ul {
779- margin: 10px;
780- padding-left: 5px;
781- color: #333;
782-}
783-
784-div.sphinxsidebar a {
785- color: #D12907;
786-}
787-
788-div.sphinxsidebar input {
789- border: 1px solid #999;
790- font-family: sans-serif;
791- font-size: 1em;
792-}
793-
794-{% if theme_collapsiblesidebar|tobool %}
795-/* for collapsible sidebar */
796-div#sidebarbutton {
797- background-color: {{ theme_sidebarbtncolor }};
798-}
799-{% endif %}
800-
801-/* -- hyperlink styles ------------------------------------------------------ */
802-
803-a {
804- color: #D12907;
805- text-decoration: underline;
806- border: medium none;
807- cursor: pointer;
808-}
809-
810-a:visited {
811- color: #D12907;
812- text-decoration: underline;
813-}
814-
815-a:hover {
816- color: #D12907;
817- text-decoration: underline;
818-}
819-
820-{% if theme_externalrefs|tobool %}
821-a.external {
822- text-decoration: none;
823- border-bottom: 1px dashed {{ theme_linkcolor }};
824-}
825-
826-a.external:hover {
827- text-decoration: none;
828- border-bottom: none;
829-}
830-
831-a.external:visited {
832- text-decoration: none;
833- border-bottom: 1px dashed {{ theme_visitedlinkcolor }};
834-}
835-{% endif %}
836-
837-/* -- body styles ----------------------------------------------------------- */
838-
839-div.body h1,
840-div.body h2,
841-div.body h3,
842-div.body h4,
843-div.body h5,
844-div.body h6 {
845- font-family: Arial,Helvetica,sans-serif;
846- background-color: #fff;
847- font-weight: 400;
848-
849- /* border-bottom: 1px solid #ccc; */
850- /* margin: 20px -20px 10px -20px; */
851- /* padding: 0; */
852- /* padding: 3px 0 3px 10px; */
853- text-decoration: none !important;
854-
855- border-bottom: 1px solid #E0E0E0;
856- font-size: 20px;
857- line-height: 20px;
858- margin: 30px 0 15px;
859- padding: 0 0 3px;
860- color: #000;
861-}
862-
863-div.body h1 {
864- font-size: 32px;
865- color: #D12907;
866- line-height: 40px;
867- margin: 10px 0 20px 0;
868- text-decoration: none !important;
869- border-bottom: none;
870- margin-top: 35px;
871-}
872-
873-div.body h2 { font-size: 150%; }
874-div.body h3 { font-size: 140%; }
875-div.body h4 { font-size: 120%; }
876-div.body h5 { font-size: 110%; }
877-div.body h6 { font-size: 100%; }
878-
879-a.headerlink {
880- color: {{ theme_headlinkcolor }};
881- font-size: 0.8em;
882- padding: 0 4px 0 4px;
883- text-decoration: none;
884-}
885-
886-a.headerlink:hover {
887- background-color: {{ theme_headlinkcolor }};
888- color: white;
889-}
890-
891-div.body dd, div.body li {
892- text-align: justify;
893-}
894-
895-div.body dt {
896- list-style-type: square;
897- /* margin: 8px 0 8px 30px; */
898- padding: 0 4px 0 5px;
899-
900-}
901-
902-div.body p {
903- text-align: justify;
904-/* line-height: 130%;*/
905- margin: 10px 0;
906-}
907-
908-/* div.body ul, */
909-div.body li {
910- list-style-type: square;
911- margin: 8px 0 8px 30px;
912- padding: 0 4px 0 5px;
913-}
914-
915-.reference em {
916- font-style: normal;
917-}
918-
919-.std-term {
920- font-style: normal;
921- font-weight: 400;
922- color: #FF7400
923-}
924-
925-div.admonition p.admonition-title + p {
926- display: inline;
927-}
928-
929-div.admonition p {
930- margin-bottom: 5px;
931-}
932-
933-div.admonition pre {
934- margin-bottom: 5px;
935-}
936-
937-div.admonition ul, div.admonition ol {
938- margin-bottom: 5px;
939-}
940-
941-div.note {
942- background-color: #eee;
943- border: 1px solid #ccc;
944-}
945-
946-div.seealso {
947- background-color: #ffc;
948- border: 1px solid #ff6;
949-}
950-
951-div.topic {
952- background-color: #eee;
953-}
954-
955-div.warning {
956- background-color: #ffe4e4;
957- border: 1px solid #f66;
958-}
959-
960-p.admonition-title {
961- display: inline;
962-}
963-
964-p.admonition-title:after {
965- content: ":";
966-}
967-
968-pre {
969- padding: 10px;
970- background-color: #F0E6D9/* {{ theme_codebgcolor }} */;
971- color: {{ theme_codetextcolor }};
972- line-height: 120%;
973- border: 1px dashed #ED9821;
974- font-size: 80%;
975- overflow: auto;
976- /* border-left: none; */
977- /* border-right: none; */
978-}
979-
980-tt {
981-/* background-color: #ecf0f3;
982- padding: 0 1px 0 1px;
983- font-size: 0.95em;*/
984- font-weight: 400;
985-}
986-
987-div.body td {
988- text-align: none;
989-}
990-
991-table.docutils th {
992- background-color: #DEE7EC;
993- border: 1px solid #8CACBB;
994- padding: 3px;
995- text-align: center;
996- font-style: normal;
997- font-weight: 400;
998-}
999-
1000-table.docutils td {
1001- border: 1px solid #8CACBB;
1002- padding: 3px;
1003- line-height: 16px;
1004- vertical-align: middle;
1005-}
1006-
1007-.warning tt {
1008- background: #efc2c2;
1009-}
1010-
1011-.note tt {
1012- background: #d6d6d6;
1013-}
1014-
1015-.viewcode-back {
1016- font-family: {{ theme_bodyfont }};
1017-}
1018-
1019-div.viewcode-block:target {
1020- background-color: #f4debf;
1021- border-top: 1px solid #ac9;
1022- border-bottom: 1px solid #ac9;
1023-}
1024-
1025-.file-bugs {
1026- background: none repeat scroll 0 0 #E8E8E8;
1027- border: 1px solid #E0E0E0;
1028- clear: both;
1029- color: #333333;
1030- padding: 10px;
1031- text-align: center;
1032- font-size: 90%;
1033-}
1034-
1035-div.footer .footer {
1036- margin: 0 auto;
1037- overflow: hidden;
1038- padding: 10px 0;
1039- width: 960px;
1040- border-top: none;
1041-}
1042-
1043-div.footer .footer .logo {
1044- float: left;
1045- overflow: hidden;
1046- padding: 17px 0 0;
1047-}
1048-
1049-div.footer .footer .text {
1050- color: #E0E0E0;
1051- float: right;
1052- font-family: Arial,Helvetica,sans-serif;
1053- font-size: 11px;
1054- line-height: 15px;
1055- overflow: hidden;
1056- text-align: right;
1057-}
1058-
1059-div.license {
1060- font-size: 80%;
1061- /* padding: 0.5em; */
1062- text-align: center;
1063- margin: 13px 0 -15px;
1064-}
1065-
1066-#sidenavi.noborder {
1067- border-right: medium none;
1068- border-top: medium none;
1069- margin: 0;
1070-}
1071-
1072-#sidenavi {
1073- color: #333333;
1074- /* float: left; */
1075- font-family: Arial,Helvetica,sans-serif;
1076- font-size: 18px;
1077- line-height: 25px;
1078- overflow: hidden;
1079- padding: 10px 0 8px 0px;
1080- width: 255px;
1081-}
1082-
1083
1084=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/email-small.png'
1085Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/email-small.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/email-small.png 1970-01-01 00:00:00 +0000 differ
1086=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/jquery.min.js'
1087--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/jquery.min.js 2011-10-25 10:51:19 +0000
1088+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/jquery.min.js 1970-01-01 00:00:00 +0000
1089@@ -1,154 +0,0 @@
1090-/*!
1091- * jQuery JavaScript Library v1.4.2
1092- * http://jquery.com/
1093- *
1094- * Copyright 2010, John Resig
1095- * Dual licensed under the MIT or GPL Version 2 licenses.
1096- * http://jquery.org/license
1097- *
1098- * Includes Sizzle.js
1099- * http://sizzlejs.com/
1100- * Copyright 2010, The Dojo Foundation
1101- * Released under the MIT, BSD, and GPL Licenses.
1102- *
1103- * Date: Sat Feb 13 22:33:48 2010 -0500
1104- */
1105-(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<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i?
1106-e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r=
1107-j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g,
1108-"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e=
1109-true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/,
1110-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))&&
1111-(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,
1112-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===
1113-"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,
1114-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<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)||
1115-c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded",
1116-L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype,
1117-"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+
1118-a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f],
1119-d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]===
1120-a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&&
1121-!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari=
1122-true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>";
1123-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,
1124-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=
1125-false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";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=
1126-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,
1127-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];
1128-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,
1129-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===
1130-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,
1131-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<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ",
1132-i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ",
1133-" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className=
1134-this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-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<d;j++){var i=
1135-e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected=
1136-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");
1137-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,
1138-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(".");
1139-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),
1140-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<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!=
1141-null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type=
1142-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()&&
1143-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;
1144-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<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),
1145-fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop||
1146-d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this,
1147-"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent=
1148-a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y,
1149-isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit=
1150-{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}};
1151-if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-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",
1152-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,
1153-"_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,
1154-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;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&&
1155-!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}},
1156-toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector,
1157-u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "),
1158-function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];
1159-if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,
1160-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();
1161-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||
1162-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<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[];
1163-for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length-
1164-1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/,
1165-CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}},
1166-relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]=
1167-l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[];
1168-h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=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()},
1169-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,
1170-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)},
1171-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)}},
1172-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 h<l[3]-0},gt:function(g,h,l){return h>l[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=
1173-h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m=
1174-m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/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===
1175-"="?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,
1176-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<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition||
1177-!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m=
1178-h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";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"&&
1179-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="<a href='#'></a>";
1180-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="<p class='TEST'></p>";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}}();
1181-(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";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)}:
1182-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<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/,
1183-gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length;
1184-c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j=
1185-{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-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===
1186-"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",
1187-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")?
1188-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===
1189-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=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)?
1190-a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};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<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d=
1191-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},
1192-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)})},
1193-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,
1194-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);
1195-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,
1196-""):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;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&&
1197-this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]||
1198-u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length===
1199-1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||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]);
1200-return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?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)||["",
1201-""])[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]==="<table>"&&!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=
1202-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]?
1203-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=
1204-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=
1205-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,
1206-"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=
1207-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=
1208-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=/<script(.|\s)*?\/script>/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!==
1209-"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("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this},
1210-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(" "),
1211-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,
1212-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&&
1213-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)?
1214-"&":"?")+(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===
1215-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=
1216-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",
1217-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||
1218-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);
1219-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===
1220-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===
1221-"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;
1222-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<b;a++){var d=c.data(this[a],"olddisplay");
1223-this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").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<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a],
1224-"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)},
1225-animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing=
1226-j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]);
1227-this.each(function(){for(var f=d.length-1;f>=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===
1228-"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]||
1229-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;
1230-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=
1231-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,
1232-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.length;b++)a[b]()||a.splice(b--,1);a.length||
1233-c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement?
1234-function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b=
1235-this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle;
1236-k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&&
1237-f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";
1238-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);
1239-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,
1240-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-
1241-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":
1242-"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
1243-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);
1244
1245=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.css'
1246--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.css 2012-03-26 17:43:02 +0000
1247+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.css 1970-01-01 00:00:00 +0000
1248@@ -1,271 +0,0 @@
1249-@charset "utf-8";
1250-/**
1251- * Support ribbon
1252- */
1253-#support-ribbon.vertical
1254-{
1255- position: fixed;
1256- right:-3px;
1257- top:145px;
1258- color: #ffffff;
1259- width: 153px;
1260- height: 130px;
1261- z-index: 1;
1262-}
1263-#support-ribbon.vertical #support-suboptions {
1264- display: block;
1265- position:relative;
1266- right:0px;
1267- top: 0px;
1268- width:155px;
1269- border-bottom: 0;
1270- z-index: -10;
1271-
1272-}
1273-#support-ribbon.vertical #support-suboptions a {
1274- margin-bottom:5px;
1275- display: block;
1276- opacity: 0.9;
1277- text-align: center;
1278- color: #fff;
1279- height: 33px;
1280- line-height:33px;
1281-}
1282-#support-suboptions a:hover {
1283- opacity: 1;
1284-}
1285-#support-suboptions a span { display:none;}
1286-/**
1287-horizontal ribbon
1288-*/
1289-#support-ribbon.horizontal
1290-{
1291- position: fixed;
1292- bottom:0;
1293- left:0;
1294- color: #ffffff;
1295- height: 38px;
1296- z-index: 1;
1297-}
1298- #support-ribbon.horizontal #support-suboptions {
1299-
1300- position:relative;
1301- top: 0px;
1302- border-bottom: 0;
1303- z-index: -10;
1304- margin:auto;
1305-}
1306-#support-ribbon.horizontal #support-suboptions li {
1307- float: left;
1308- list-style-type: none;
1309-}
1310-#support-ribbon.horizontal #support-suboptions li a {
1311- margin-bottom:5px;
1312- display: block;
1313- opacity: 0.9;
1314- text-align: center;
1315- color: #fff;
1316- height: 38px;
1317- line-height:38px;
1318- width: 145px;
1319- margin-right:5px;
1320-}
1321-
1322-html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var{font-style:normal;font-weight:400;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:400;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:text-top;}sub{vertical-align:text-bottom;}input,textarea,select{font-family:inherit;font-weight:inherit;font-size:100%;}legend{color:#000;}del,ins{text-decoration:none;}body,html{height:100%;margin:0;padding:0}form{display:inline}a{border:none;cursor:pointer}img{border:none}div,img{behavior:url(/static/css/iepngfix.htc)}em{font-style:italic;}del{text-decoration:line-through;}.hidden{display:none}#header{background:#333;height:95px;overflow:hidden;zoom:1}#header .header{height:95px;margin:0 auto;overflow:hidden;width:960px;zoom:1}#header .header .logo{float:left;overflow:hidden;padding:20px 0;width:240px;zoom:1}#header .header .logo{overflow:hidden;zoom:1;float:left;width:240px;padding:20px 0px;}#header .header .right{overflow:hidden;zoom:1;float:left;width:720px;height:35px;padding:30px 0px;}#header .header .right .searchlink{overflow:hidden;zoom:1;width:35px;height:35px;float:right;padding:0px 0px 0px 10px;}#header .header .right .navicontainer{overflow:hidden;zoom:1;float:right;height:35px;background:#ffffff url(ui-navi-l.png) top left no-repeat;}#header .header .right .navi{overflow:hidden;zoom:1;height:27px;padding:4px 10px;background:url(ui-navi-r.png) top right no-repeat;}#header .header .right .navicontainer .navi span{overflow:hidden;zoom:1;height:27px;float:left;margin:0px;}#header .header .right .navicontainer .navi span:hover{background:#f0f0f0 url(ui-navi-hover-l.png) top left no-repeat;}#header .header .right .navicontainer .navi span.selected,#header .header .right .navicontainer .navi span.selected:hover{background:#d5390b url(ui-navi-sel-l.png) top left no-repeat;}#header .header .right .navicontainer .navi span a,#header .header .right .navicontainer .navi span a:visited{display:block;padding:6px 10px 4px 10px;height:17px;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:14px;color:#000000;text-decoration:none;}#header .header .right .navicontainer .navi span a:hover{background:url(ui-navi-hover-r.png) top right no-repeat;}#header .header .right .navicontainer .navi span.selected a.selected,#header .header .right .navicontainer .navi span.selected a.selected:visited,#header .header .right .navicontainer .navi span.selected a.selected:hover{background:url(ui-navi-sel-r.png) top right no-repeat;color:#ffffff;}#slogan{overflow:hidden;zoom:1;height:125px;background:#d24300 urk(ui-orange-front.png) bottom center no-repeat;text-align:center;}#stripe{overflow:hidden;zoom:1;height:20px;background:#d24300 url(ui-orange-content.png) top center no-repeat;}#footer{overflow:hidden;zoom:1;background:#333333;border-top:2px #d95200 solid;}#footer .footer{overflow:hidden;zoom:1;width:960px;margin:0px auto;padding:10px 0px;}#footer .footer .logo{overflow:hidden;zoom:1;float:left;padding:17px 0px 0px 0px;}#footer .footer .text{overflow:hidden;zoom:1;float:right;text-align:right;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:15px;color:#e0e0e0;}#footer .footer .text a,#footer .footer .text a:visited{color:#e0e0e0;text-decoration:none;}#footer .footer .text a:hover{color:#ffffff;text-decoration:underline;}div.navi-dropdown{display:none;position:absolute;overflow:hidden;zoom:1;width:255px;z-index:900;}div.navi-dropdown .navi-dropdown-header-l{overflow:hidden;zoom:1;width:255px;height:20px;background:url(ui-dropdown-header-l.png) top left no-repeat;}div.navi-dropdown .navi-dropdown-header-r{overflow:hidden;zoom:1;width:255px;height:20px;background:url(ui-dropdown-header-r.png) top left no-repeat;}div.navi-dropdown .navi-dropdown-content{overflow:hidden;zoom:1;width:225px;padding:0px 15px 5px 15px;background:#ffffff url(ui-dropdown-bg.png) repeat-y;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:20px;color:#333333;}div.navi-dropdown .navi-dropdown-content .item{padding:3px 0px 1px 0px;}div.navi-dropdown .navi-dropdown-content a,div.navi-dropdown .navi-dropdown-content a:visited{display:block;color:#333333;text-decoration:none;}div.navi-dropdown .navi-dropdown-content a:hover{color:#d12907;text-decoration:underline;}div.navi-dropdown .navi-dropdown-footer{overflow:hidden;zoom:1;width:255px;height:10px;background:url(ui-dropdown-footer.png) top left no-repeat;}div.search-dropdown{display:none;position:absolute;overflow:hidden;zoom:1;width:255px;}div.search-dropdown .search-dropdown-header{overflow:hidden;zoom:1;width:255px;height:20px;background:url(ui-dropdown-header-search.png) top left no-repeat;}div.search-dropdown .search-dropdown-content{overflow:hidden;zoom:1;width:225px;padding:0px 15px 5px 15px;background:#ffffff url(ui-dropdown-bg.png) repeat-y;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:20px;color:#333333;}div.search-dropdown .search-dropdown-content .form{padding-top:2px;}div.search-dropdown .search-dropdown-content .form input{border:1px #c0c0c0 solid;padding:4px;width:210px;outline:none;}div.search-dropdown .search-dropdown-content .form input:focus{border:1px #707070 solid;outline:none;}div.search-dropdown .search-dropdown-footer{overflow:hidden;zoom:1;width:255px;height:10px;background:url(ui-dropdown-footer.png) top left no-repeat;}#sidenavi{overflow:hidden;zoom:1;float:left;width:260px;border-top:1px #e0e0e0 solid;border-right:1px #e0e0e0 solid;margin:0px 30px 0px 0px;padding:0px 0px 20px 0px;font-family:Arial,Helvetica,sans-serif;font-size:18px;line-height:25px;color:#333333;}#sidenavi.noborder{border-top:none;border-right:none;margin:0px 31px 0px 0px;}#sidenavi .sidebanner{border-left:1px #e0e0e0 solid;border-bottom:1px #e0e0e0 solid;text-align:center;padding:15px 10px;}#sidenavi.noborder .sidebanner{border-top:1px #e0e0e0 solid;border-right:1px #e0e0e0 solid;}#sidenavi .sidebanner .header{padding:0px 0px 10px 0px;line-height:18px;text-align:center;}#sidenavi .sidebanner .numbers{padding:0px 0px 0px 58px;background:url(phone.png) 5px center no-repeat;font-family:Arial,Helvetica,sans-serif;font-size:12px;line-height:18px;text-align:left;}#sidenavi #sidefloater{padding-top:10px;}#sidenavi .item{padding:10px 10px 8px 10px;}#sidenavi > .item.selected{background:url(ui-leftnavi-sel.png) top left no-repeat;}#sidenavi a,#sidenavi a:visited{display:block;color:#333333;text-decoration:none;}#sidenavi a:hover{color:#d12907;text-decoration:none;}#sidenavi > .item.selected > a,#sidenavi > .item.selected > a:visited{color:#d12907;text-decoration:none;}#sidenavi .sidesubnavi{overflow:hidden;zoom:1;font-family:Arial,Helvetica,sans-serif;font-size:13px;line-height:17px;color:#333333;}#sidenavi .sidesubnavi .subitem{padding:7px 10px 0px 10px;}#sidenavi .sidesubnavi .subitem.selected a,#sidenavi .sidesubnavi .subitem.selected a:visited{color:#d12907;text-decoration:none;}#contentcontainer{overflow:hidden;zoom:1;width:960px;padding:30px 0px;margin:0px auto;}#content{overflow:hidden;zoom:1;font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:20px;color:#333333;}#content p{margin:10px 0px;}#content a,#content a:visited{color:#d12907;text-decoration:underline;}#content a:hover{color:#712000;text-decoration:underline;}#content h1{font-family:Arial,Helvetica,sans-serif;font-size:32px;line-height:40px;margin:5px 0px 20px 0px;color:#d12907;}#content h2{font-family:Arial,Helvetica,sans-serif;font-size:20px;line-height:20px;padding:0px 0px 3px 0px;margin:30px 0px 15px 0px;color:#000000;border-bottom:1px #e0e0e0 solid;}#content h3{font-family:Arial,Helvetica,sans-serif;font-weight:bold;font-size:16px;line-height:22px;margin:20px 0px 10px 0px;color:#000000;}#content h4{font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:14px;font-weight:bold;padding:5px 0px 0px 0px;margin:-16px 0px 20px 0px;color:#000000;border-top:1px #e0e0e0 solid;}#content h4 a,#content h4 a:visited{color:#000000;text-decoration:none;}#content h4 a:hover{color:#d12907;text-decoration:none;}#content dl dt{font-weight:bold;margin-top:10px;margin-bottom:10px;}#content dl dd{padding:0px 0px 0px 30px;}#content ul{list-style-type:square;padding:0px 0px 0px 30px;}#content ul li{list-style-type:square;margin:8px 0px;}#content ol{list-style-type:decimal;padding:0px 0px 0px 30px;}#content ol li{list-style-type:decimal;margin:8px 0px;}#content div.pagecontent{overflow:hidden;zoom:1;}div.contentbox{border:1px #e0e0e0 solid;}div.contentbox div.title{font-size:16px;line-height:20px;font-weight:bold;padding:8px 15px 2px 15px;background:url(ui-leftnavi-sel.png) repeat-x;}div.contentbox div.content{padding:15px;}div.frontpage-p{overflow:hidden;zoom:1;width:960px;margin:0px;margin-bottom:20px;padding:0px;}div.frontpage-p div.frontpage-p-container{overflow:hidden;zoom:1;width:960px;height:200px;padding-bottom:30px;z-index:100;}div.frontpage-p a.nivo-imageLink{position:absolute;top:0px;left:0px;width:960px;height:200px;border:0;padding:0;margin:0;z-index:20;display:none;}div.frontpage-p div.frontpage-p-container div.nivo-directionNav{width:1px;height:1px;display:none !important;z-index:18 !important;}div.frontpage-p div.frontpage-p-container div.nivo-controlNav{position:absolute;top:200px;width:960px;text-align:center;font-size:28px;line-height:25px;}div.frontpage-p div.frontpage-p-container div.nivo-controlNav a{padding:0px 3px;text-decoration:none !important;color:#919191 !important;}div.frontpage-p div.frontpage-p-container div.nivo-controlNav a.active{color:#d12907 !important;}div.frontpage-p div.frontpage-p-selector{overflow:hidden;zoom:1;height:20px;text-align:center;}div.frontpage-main{overflow:hidden;zoom:1;width:960px;margin:20px 0px;padding:0px;}div.frontpage-main div.frontpage-left{overflow:hidden;zoom:1;width:645px;float:left;padding:0px;}div.frontpage-boxes{overflow:hidden;zoom:1;width:645px;margin:25px 0px 0px 0px;padding:0px;}div.frontpage-boxes div.frontpage-boxes-selector{overflow:hidden;zoom:1;width:645px;}div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item{overflow:hidden;zoom:1;width:160px;float:left;margin-left:-1px;border-top:1px #cccccc solid;border-left:1px #cccccc solid;border-right:1px #cccccc solid;border-bottom:1px #cccccc solid;text-align:center;margin-top:10px;padding:0px 0px 0px 0px;}div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item:first-child{margin-left:0px;}div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item.selected{background:url(ui-tab-bg.png) repeat-x;margin-top:0px;border-bottom:none;padding:5px 0px 6px 0px;}div.frontpage-boxes div.frontpage-boxes-selector div.frontpage-boxes-selector-item a{display:block;font-size:20px;line-height:20px;color:#444444 !important;text-decoration:none !important;padding:9px 0px 8px 0px;}div.frontpage-boxes div.frontpage-boxes-container{overflow:hidden;zoom:1;width:603px;height:150px;padding:20px;border-left:1px #cccccc solid;border-right:1px #cccccc solid;border-bottom:1px #cccccc solid;}div.frontpage-boxes div.frontpage-boxes-container div.frontpage-box img{padding:0px 15px 15px 5px;}div.frontpage-main div.frontpage-right{overflow:hidden;zoom:1;width:295px;float:right;margin-left:20px;padding:0px;}div.frontpage-block{overflow:hidden;zoom:1;border:1px #cccccc solid;width:288px;margin:0 0 20px 5px;}div.frontpage-block div.header{text-align:left;padding:15px 15px 0px 15px;background:url(ui-tab-bg.png) repeat-x;font-family:Arial,Helvetica,sans-serif;font-size:20px;line-height:20px;}div.frontpage-block div.content{overflow:hidden;zoom:1;padding:10px 15px 15px 15px;}div.frontpage-block div.content div.call-us{font-size:12px;line-height:17px;}div.frontpage-block div.content div.training{padding:20px;overflow:hidden;zoom:1;font-size:12px;line-height:17px;}div.frontpage-block div.content div.training ul.training-short-list{list-style-type:none !important;margin:0 !important;padding:0 !important;}div.frontpage-block div.content div.training ul.training-short-list li{list-style-type:none !important;}div.frontpage-block div.content div.more{overflow:hidden;zoom:1;text-align:right;padding:15px 0px 0px 0px;font-size:12px;line-height:17px;}.our-team-page h2{clear:both;}div.our-team-item{overflow:hidden;zoom:1;width:162px;margin-left:5px;height:230px;float:left;}div.our-team-item .img img{border:1px #e0e0e0 solid;padding:2px;}table.phonetable{margin-top:1em;border-collapse:collapse;}.phonetable{margin-left:2em;}table.phonetable th,table.phonetable tr{text-align:center;}table.phonetable th{border:1px #e0e0e0 solid;background:#f8f8f8;padding:7px;font-weight:bold;}table.phonetable td{border:1px #e0e0e0 solid;padding:7px;}table.phonetable .label{text-align:left;}table.phonetable td.label{padding-left:2em;}.form-item{clear:both;margin-top:1em;position:relative;}.form-item label{display:block;font-weight:bold;position:absolute;top:0;left:0;width:13em;}.form-required{color:#fa0;font-weight:bold;}.form-item .description{color:#888;font-size:0.85em;line-height:150%;position:relative;left:14em;}#edit-submitbutton{position:relative;left:12em;margin:1em 0;}.form-item input[type=text],.form-item select,.form-item textarea{border:1px solid #CCC;width:493px;position:relative;top:0;left:12em;}.form-item textarea{height:12em;padding:3px;}.form-item-spacer{padding-top:1em;}.form-item #captcha{position:relative;top:0;left:12em;}#edit-submitted-captcha{margin-top:0.5em;width:154px;}fieldset.form-item-set{border:1px solid #ccc;display:block;margin:12px 0;padding:12px;}fieldset.form-item-set legend{border:none;display:block;padding:0 2px;}div.error{background:#fff;border:solid 1px #c52020;color:#C52020;padding:5px;}div.messages{margin:5px 20px;font-size:11px;}div.messages ul,div.messages ul li{list-style-image:none;list-style-type:none;}div.messages ul li{padding:0 0 0.2em 0;}.form-item .error{background-color :#fdd;}#emergency-contacts .node-field-name{text-align:right;font-weight:bold;padding-right:1em;}#emergency-contacts .node-field-value-phone{font-weight:bold;color:#137F00;}#emergency-contacts .node-field-help{font-weight:bold;}#compact_footer{width:auto !important;}#compact_contentcontainer{overflow:hidden;zoom:1;width:auto;padding:30px 0px;margin:0px 20px;}.custlogo img{padding:20px;border:1px solid white;}.custlogo img:hover{border:1px solid gray;}table.formtable{border-collapse:collapse;}table.formtable th{font-weight:normal;white-space:nowrap;padding:4px 20px 4px 0px;}table.formtable td{padding:4px 0px 4px 0px;}table.formtable td input[type='text'],table.formtable td select{border:1px #e0e0e0 solid;padding:4px;width:400px;}table.formtable td.submit{padding:10px 0px 0px 0px;text-align:center;}table.datatable{margin-top:1em;border-collapse:collapse;}.datatable{margin-left:2em;}table.datatable th,table.datatable tr{text-align:center;}table.datatable th{border:1px #e0e0e0 solid;background:#f8f8f8;padding:7px;font-weight:bold;}table.datatable td{border:1px #e0e0e0 solid;padding:7px;}table.datatable .label{text-align:left;}table.datatable td.label{padding-left:2em;}.frontpage-sidebar .header{padding:0px 0px 10px 0px;font-size:18px;font-weight:normal;text-align:center;}.frontpage-sidebar .header.link{padding:13px 0px 10px 4px;text-align:left;}.frontpage-sidebar .header a,.frontpage-sidebar .header a:visited{color:#333333 !important;text-decoration:none !important;}.frontpage-sidebar .header a:hover{color:#d12907 !important;text-decoration:none !important;}.frontpage-sidebar .header.bloglink{font-size:16px;padding:0px 0px 10px 10px;text-align:center;}.frontpage-sidebar .header.blogheader{font-weight:normal;text-align:center;font-size:15px;padding:13px 10px 10px 0px;}.frontpage-sidebar .header a.email{padding:13px 10px 10px 40px;background:url(email-small.png) left center no-repeat;}.frontpage-sidebar .call-us .numbers{padding:0px 0px 0px 38px;background:url(phone-small.png) 2px center no-repeat;font-family:Arial,Helvetica,sans-serif;font-size:11px;line-height:18px;text-align:left;}.frontpage-sidebar .eventum a,.frontpage-sidebar .eventum a:visited{padding:0px 2px 0px 55px;font-size:12px;line-height:18px;text-align:left;background:url(support-small.png) left center no-repeat;display:block;color:#333333 !important;text-decoration:none !important;}.frontpage-sidebar .eventum a:hover{color:#d12907 !important;text-decoration:underline !important;}div.presentation{border-top:1px #e0e0e0 dotted;padding:15px 0px;}div.presentation:first-child{margin-top:0;border:none;}div.presentation table.presentation{border-collapse:collapse;}div.presentation table.presentation td div.bordered-image-screenshot{border:1px #e0e0e0 solid;background:#f8f8f8;padding:5px;}div.presentation table.presentation td.presentations-descr{padding-left:15px;}div.presentation table.presentation td.presentations-descr h4{font-size:18px;font-weight:bold;}.customer-vote{width:412px;text-align:justify;}strong{font-weight:bold;}html,body{height:100%;}#stickywrapper{position:relative;min-height:100%;}* html #stickywrapper{height:100%;}#stickycontent{padding-bottom:102px;}#stickyfooter{position:relative;margin:-97px auto 0 auto;}a.links{font-style:oblique;text-decoration:underline;}span.subpart{font-weight:bold;}div.software-info-container{overflow:hidden;zoom:1;float:right;padding:0px 0px 25px 25px;}table.software-info-container{width:240px;border-collapse:collapse;}table.software-info-container td{border:1px #e0e0e0 solid;padding:10px 10px 10px 10px;}table.software-info-container td.latest{padding:10px 10px 10px 62px;background:url(software-latest.png) 15px center no-repeat;min-height:32px;font-size:16px;line-height:24px;}table.software-info-container td.download a{font-weight:bold;}table.software-info-container td.download{padding:15px 62px 15px 20px;background:url(software-download.png) 195px center no-repeat;min-height:32px;font-size:18px;line-height:24px;}table.software-info-container td.links{text-align:left;padding:4px 10px 4px 20px;}table.software-info-container td.links div{margin:10px 0px;}.inv{display:none;}table.downloadstable{margin-top:20px;border-collapse:collapse;}table.downloadstable th{border:1px #e0e0e0 solid;background:#f8f8f8;padding:7px;font-weight:bold;}table.downloadstable td{border:1px #e0e0e0 solid;padding:7px;}table.downloadstable td.file{width:90%;text-align:left;}table.downloadstable td.modified{width:5%;text-align:center;white-space:nowrap;}table.downloadstable td.size{width:5%;text-align:right;white-space:nowrap;}div.downloads-maintenance-promo,div.downloads-warning{border:1px #e0e0e0 solid;padding:15px 20px 15px 150px;margin:30px 0px;background:url(shield.png) 35px center no-repeat;}div.downloads-maintenance-promo > .close-button{float:right;clear:right;margin-top:-10px;margin-right:-15px;cursor:pointer;cursor:hand;}div.downloads-warning{background:url(warning.png) 35px center no-repeat;}div.downloads-version{border-top:1px #e0e0e0 solid;margin-top:-10px;padding-top:10px;text-align:right;font-size:14px;line-height:14px;font-weight:bold;}div.downloads-anchors{font-size:12px;line-height:15px;margin:20px 0px;}div.downloads-backtotop{font-size:12px;line-height:15px;padding-top:8px;}.downloadsignupdialog .ui-dialog-titlebar{display:none;}#downloadsignup h2{font-family:Arial,Helvetica,sans-serif;font-size:22px;line-height:22px;margin:10px 0px 20px 0px;color:#d12907;}#downloadsignup .intro{margin:10px 0px 15px 0px;}#downloadsignup .form .field{overflow:hidden;zoom:1;margin:10px 0px;}#downloadsignup .form .field .label{overflow:hidden;zoom:1;width:150px;float:left;padding-top:5px;}#downloadsignup .form .field .element{overflow:hidden;zoom:1;width:410px;float:left;}#downloadsignup .form .field .element input,#downloadsignup .form .field .element select{width:400px;border:1px #cccccc solid;padding:3px;outline:none;}#downloadsignup .form .field .element input:focus,#downloadsignup .form .field .element select:focus{border:1px #333333 solid;background:#f8f8f8;outline:none;}#downloadsignup .form .field .radiolist{overflow:hidden;zoom:1;display:block;padding:0;margin:0;}#downloadsignup .form .field table.radiolist{width:100%;}#downloadsignup .form .field .radiolist td{width:25%;}#downloadsignup .form .field div.radiolist label{display:block;min-width:55px;float:left;zoom:1;padding:8px 10px 2px 24px !important;text-indent:-24px;overflow:auto;}#downloadsignup .form .field table.radiolist label{padding:8px 15px 2px 0px !important;zoom:1;display:block;}#downloadsignup .form .field .radiolist label input{margin:0px 7px 0px 3px !important;}.schedule td{padding:3px;border:1px solid #eeeeee;padding-left:10px;font-size:16px;}.tdmini{font-weight:bold;font-size:10px !important;}.tdbreak{background-color:#ffeeee;text-align:center;}.trhead td{background-color:#d12907;color:#ffffff;font-weight:bold;}.speaker{font-size:10px;}table.left-headers th{font-weight:bold;text-align:right;padding:5px 12px;vertical-align:top;border-right:1px solid black;}table.left-headers td{padding:5px 12px;}.training-list tr th{font-weight:bold;}.training-list tr td{padding-right:15px;}a.interwiki{background:transparent url(/docs/wiki/lib/images/interwiki.png) 0px 1px no-repeat;padding-left:16px;}a.iw_wp{background-image:url(/docs/wiki/lib/images/interwiki/wp.gif)}a.iw_wpfr{background-image:url(/docs/wiki/lib/images/interwiki/wpfr.gif)}a.iw_wpde{background-image:url(/docs/wiki/lib/images/interwiki/wpde.gif)}a.iw_wpes{background-image:url(/docs/wiki/lib/images/interwiki/wpes.gif)}a.iw_wppl{background-image:url(/docs/wiki/lib/images/interwiki/wppl.gif)}a.iw_wpjp{background-image:url(/docs/wiki/lib/images/interwiki/wpjp.gif)}a.iw_wpmeta{background-image:url(/docs/wiki/lib/images/interwiki/wpmeta.gif)}a.iw_doku{background-image:url(/docs/wiki/lib/images/interwiki/doku.gif)}a.iw_dokubug{background-image:url(/docs/wiki/lib/images/interwiki/dokubug.gif)}a.iw_amazon{background-image:url(/docs/wiki/lib/images/interwiki/amazon.gif)}a.iw_amazon_de{background-image:url(/docs/wiki/lib/images/interwiki/amazon.de.gif)}a.iw_amazon_uk{background-image:url(/docs/wiki/lib/images/interwiki/amazon.uk.gif)}a.iw_phpfn{background-image:url(/docs/wiki/lib/images/interwiki/phpfn.gif)}a.iw_coral{background-image:url(/docs/wiki/lib/images/interwiki/coral.gif)}a.iw_sb{background-image:url(/docs/wiki/lib/images/interwiki/sb.gif)}a.iw_google{background-image:url(/docs/wiki/lib/images/interwiki/google.gif)}a.iw_meatball{background-image:url(/docs/wiki/lib/images/interwiki/meatball.gif)}a.iw_wiki{background-image:url(/docs/wiki/lib/images/interwiki/wiki.gif)}a.mediafile{background:transparent url(/docs/wiki/lib/images/fileicons/file.png) 0px 1px no-repeat;padding-left:18px;padding-bottom:1px;}a.mf_txt{background-image:url(/docs/wiki/lib/images/fileicons/txt.png)}a.mf_sxi{background-image:url(/docs/wiki/lib/images/fileicons/sxi.png)}a.mf_tgz{background-image:url(/docs/wiki/lib/images/fileicons/tgz.png)}a.mf_wav{background-image:url(/docs/wiki/lib/images/fileicons/wav.png)}a.mf_jpg{background-image:url(/docs/wiki/lib/images/fileicons/jpg.png)}a.mf_sxd{background-image:url(/docs/wiki/lib/images/fileicons/sxd.png)}a.mf_js{background-image:url(/docs/wiki/lib/images/fileicons/js.png)}a.mf_ps{background-image:url(/docs/wiki/lib/images/fileicons/ps.png)}a.mf_conf{background-image:url(/docs/wiki/lib/images/fileicons/conf.png)}a.mf_swf{background-image:url(/docs/wiki/lib/images/fileicons/swf.png)}a.mf_xml{background-image:url(/docs/wiki/lib/images/fileicons/xml.png)}a.mf_py{background-image:url(/docs/wiki/lib/images/fileicons/py.png)}a.mf_cpp{background-image:url(/docs/wiki/lib/images/fileicons/cpp.png)}a.mf_css{background-image:url(/docs/wiki/lib/images/fileicons/css.png)}a.mf_jpeg{background-image:url(/docs/wiki/lib/images/fileicons/jpeg.png)}a.mf_odi{background-image:url(/docs/wiki/lib/images/fileicons/odi.png)}a.mf_pptx{background-image:url(/docs/wiki/lib/images/fileicons/pptx.png)}a.mf_doc{background-image:url(/docs/wiki/lib/images/fileicons/doc.png)}a.mf_bz2{background-image:url(/docs/wiki/lib/images/fileicons/bz2.png)}a.mf_png{background-image:url(/docs/wiki/lib/images/fileicons/png.png)}a.mf_ogg{background-image:url(/docs/wiki/lib/images/fileicons/ogg.png)}a.mf_xls{background-image:url(/docs/wiki/lib/images/fileicons/xls.png)}a.mf_tar{background-image:url(/docs/wiki/lib/images/fileicons/tar.png)}a.mf_pl{background-image:url(/docs/wiki/lib/images/fileicons/pl.png)}a.mf_mp3{background-image:url(/docs/wiki/lib/images/fileicons/mp3.png)}a.mf_pdf{background-image:url(/docs/wiki/lib/images/fileicons/pdf.png)}a.mf_audio{background-image:url(/docs/wiki/lib/images/fileicons/audio.png)}a.mf_rtf{background-image:url(/docs/wiki/lib/images/fileicons/rtf.png)}a.mf_java{background-image:url(/docs/wiki/lib/images/fileicons/java.png)}a.mf_cs{background-image:url(/docs/wiki/lib/images/fileicons/cs.png)}a.mf_odt{background-image:url(/docs/wiki/lib/images/fileicons/odt.png)}a.mf_c{background-image:url(/docs/wiki/lib/images/fileicons/c.png)}a.mf_rpm{background-image:url(/docs/wiki/lib/images/fileicons/rpm.png)}a.mf_docx{background-image:url(/docs/wiki/lib/images/fileicons/docx.png)}a.mf_ppt{background-image:url(/docs/wiki/lib/images/fileicons/ppt.png)}a.mf_odp{background-image:url(/docs/wiki/lib/images/fileicons/odp.png)}a.mf_html{background-image:url(/docs/wiki/lib/images/fileicons/html.png)}a.mf_gz{background-image:url(/docs/wiki/lib/images/fileicons/gz.png)}a.mf_zip{background-image:url(/docs/wiki/lib/images/fileicons/zip.png)}a.mf_gif{background-image:url(/docs/wiki/lib/images/fileicons/gif.png)}a.mf_htm{background-image:url(/docs/wiki/lib/images/fileicons/htm.png)}a.mf_sql{background-image:url(/docs/wiki/lib/images/fileicons/sql.png)}a.mf_rar{background-image:url(/docs/wiki/lib/images/fileicons/rar.png)}a.mf_rb{background-image:url(/docs/wiki/lib/images/fileicons/rb.png)}a.mf_csv{background-image:url(/docs/wiki/lib/images/fileicons/csv.png)}a.mf_odc{background-image:url(/docs/wiki/lib/images/fileicons/odc.png)}a.mf_odf{background-image:url(/docs/wiki/lib/images/fileicons/odf.png)}a.mf_deb{background-image:url(/docs/wiki/lib/images/fileicons/deb.png)}a.mf_ods{background-image:url(/docs/wiki/lib/images/fileicons/ods.png)}a.mf_xlsx{background-image:url(/docs/wiki/lib/images/fileicons/xlsx.png)}a.mf_lua{background-image:url(/docs/wiki/lib/images/fileicons/lua.png)}a.mf_sxc{background-image:url(/docs/wiki/lib/images/fileicons/sxc.png)}a.mf_odg{background-image:url(/docs/wiki/lib/images/fileicons/odg.png)}a.mf_7z{background-image:url(/docs/wiki/lib/images/fileicons/7z.png)}a.mf_sxw{background-image:url(/docs/wiki/lib/images/fileicons/sxw.png)}a.mf_php{background-image:url(/docs/wiki/lib/images/fileicons/php.png)}div.clearer{clear:both;line-height:0;height:0;overflow:hidden;}div.no{display:inline;margin:0;padding:0;}.hidden{display:none;}div.error{background:#fcc url(/docs/wiki/lib/styles/../images/error.png) 0.5em 0px no-repeat;color:#000;border-bottom:1px solid #faa;font-size:90%;margin:0;padding-left:3em;overflow:hidden;}div.info{background:#ccf url(/docs/wiki/lib/styles/../images/info.png) 0.5em 0px no-repeat;color:#000;border-bottom:1px solid #aaf;font-size:90%;margin:0;padding-left:3em;overflow:hidden;}div.success{background:#cfc url(/docs/wiki/lib/styles/../images/success.png) 0.5em 0px no-repeat;color:#000;border-bottom:1px solid #afa;font-size:90%;margin:0;padding-left:3em;overflow:hidden;}div.notify{background:#ffc url(/docs/wiki/lib/styles/../images/notify.png) 0.5em 0px no-repeat;color:#000;border-bottom:1px solid #ffa;font-size:90%;margin:0;padding-left:3em;overflow:hidden;}.medialeft{float:left;}.mediaright{float:right;}.mediacenter{display:block;margin-left:auto;margin-right:auto;}.leftalign{text-align:left;}.centeralign{text-align:center;}.rightalign{text-align:right;}em.u{font-style:normal;text-decoration:underline;}em em.u{font-style:italic;}.code .br0{color:#6c6;}.code .co0{color:#808080;font-style:italic;}.code .co1{color:#808080;font-style:italic;}.code .co2{color:#808080;font-style:italic;}.code .co3{color:#808080;}.code .coMULTI{color:#808080;font-style:italic;}.code .es0{color:#009;font-weight:bold;}.code .kw1{color:#b1b100;}.code .kw2{color:#000;font-weight:bold;}.code .kw3{color:#006;}.code .kw4{color:#933;}.code .kw5{color:#00f;}.code .me1{color:#060;}.code .me2{color:#060;}.code .nu0{color:#c6c;}.code .re0{color:#00f;}.code .re1{color:#00f;}.code .re2{color:#00f;}.code .re3{color:#f33;font-weight:bold;}.code .re4{color:#099;}.code .st0{color:#f00;}.code .sy0{color:#6c6;}div#acl_manager div#acl__tree{font-size:90%;width:25%;height:300px;float:left;overflow:auto;border:1px solid #8cacbb;text-align:left;}div#acl_manager div#acl__tree a.cur{background-color:#ff9;font-weight:bold;}div#acl_manager div#acl__tree ul{list-style-type:none;margin:0;padding:0;}div#acl_manager div#acl__tree li{padding-left:1em;}div#acl_manager div#acl__tree ul img{margin-right:0.25em;cursor:pointer;}div#acl_manager div#acl__detail{width:73%;height:300px;float:right;overflow:auto;}div#acl_manager div#acl__detail fieldset{width:90%;}div#acl_manager div#acl__detail div#acl__user{border:1px solid #8cacbb;padding:0.5em;margin-bottom:0.6em;}div#acl_manager table.inline{width:100%;margin:0;}div#acl_manager .aclgroup{background:transparent url(/docs/wiki/lib/plugins/acl/pix/group.png) 0px 1px no-repeat;padding:1px 0px 1px 18px;}div#acl_manager .acluser{background:transparent url(/docs/wiki/lib/plugins/acl/pix/user.png) 0px 1px no-repeat;padding:1px 0px 1px 18px;}div#acl_manager .aclpage{background:transparent url(/docs/wiki/lib/plugins/acl/pix/page.png) 0px 1px no-repeat;padding:1px 0px 1px 18px;}div#acl_manager .aclns{background:transparent url(/docs/wiki/lib/plugins/acl/pix/ns.png) 0px 1px no-repeat;padding:1px 0px 1px 18px;}div#acl_manager label.disabled{color:#666!important;}#acl_manager label{text-align:left;font-weight:normal;display:inline;}#acl_manager table{margin-left:10%;width:80%;}#acl_manager table tr{background-color:inherit;}#acl_manager table tr:hover{background-color:#dee7ec;}div.toolbar #tool__bar_table button.selected{background:#fff url(/docs/wiki/lib/plugins/edittable/images/buttonshadow_toggled.png) repeat-x bottom;}div.toolbar #tool__bar_table button.disabled{background:#fff url(/docs/wiki/lib/plugins/edittable/images/buttonshadow_toggled2.png) repeat-x bottom;opacity:0.4;}div.toolbar #tool__bar_table button.separator{margin-left:0.5em;}div.toolbar #tool__bar_table{margin-bottom:0.5em;}#dw__editform #edit__wrap{margin-top:1.5em;overflow:auto;border:1px solid #8cacbb;}div.dokuwiki table.edit{margin:-1px;}div.dokuwiki table.edit th,div.dokuwiki table.edit td{min-width:5em;}div.dokuwiki table.edit input{border:none;background:transparent;font:inherit;width:100%;}html>body div.dokuwiki table.edit th,html>body div.dokuwiki table.edit td{background-image:url(/docs/wiki/lib/plugins/edittable/images/inputshadow.png);background-repeat:repeat-x;background-position:top;}div.dokuwiki table.edit td.handle{color:#666;background-color:#f5f5f5;padding:0;vertical-align:bottom;position:relative;}div.dokuwiki table.edit td.rowhandle{width:3em;}div.dokuwiki table.edit td.handle{cursor:move;}div.dokuwiki table.edit td.curhandle{background-color:#dee7ec;}div.dokuwiki table.edit td.disabledhandle{background-image:none;background-color:#c0c0c0;cursor:no-drop;}html>body div.dokuwiki table.edit td.handle{background-image:url(/docs/wiki/lib/plugins/edittable/images/buttonshadow.png);background-repeat:repeat-x;background-position:bottom;}#table__dragmarker{display:block;height:100%;width:100%;position:relative;}#table__dragmarker .dragmarker_topright{position:absolute;top:-0.5em;right:0px;}#table__dragmarker .dragmarker_bottomright{position:absolute;top:0.5em;right:0px;}#table__dragmarker .dragmarker_bottomleft{position:absolute;top:0.5em;left:0px;}.handle .handle_dropdown{float:right;margin-top:3px;}.handle .handle_dropdown img{padding:4px 2px 1px;cursor:pointer;}#dw__editform .handle .handle_dropdown div{position:absolute;z-index:25;}#dw__editform .handle .handle_dropdown div ul{background:#fff none repeat scroll 0 0;border:1px solid;list-style-image:none;list-style-position:outside;list-style-type:none;opacity:0.9;padding:0.3em;margin:0;cursor:auto;font-size:0.9em;}#dw__editform .handle .handle_dropdown div ul li{width:100%;text-align:left;}#dw__editform .handle .handle_dropdown div ul li a{width:100%;display:block;cursor:pointer;}#dw__editform .handle .handle_dropdown div ul li a:hover{background:#dee7ec;}div.dokuwiki div.editbutton_table{margin-top:-1em;}div.dokuwiki div.editbutton_table form input.button{float:none;margin-left:0.6em;padding:0 0.3em;background-image:none;border-top:none;border-bottom-right-radius:0.5em;-moz-border-radius-bottomright:0.5em;-webkit-border-bottom-right-radius:0.5em;border-bottom-left-radius:0.5em;-moz-border-radius-bottomleft:0.5em;-webkit-border-bottom-left-radius:0.5em;}div.dokuwiki div.section_highlight table{background-color:#dee7ec;}div.dokuwiki div.table.section_highlight{background-color:transparent !important;}.noteredirect{margin:1em;margin-left:auto;margin-right:auto;width:70% !important;min-height:18px;clear:both;text-align:justify;vertical-align:middle;border-collapse:collapse;padding:7px 10px 5px 32px;background-position:10px 50%;background-repeat:no-repeat;-moz-border-radius:10px;-khtml-border-radius:10px;border-radius:10px;background-color:#B5E0FF;background-image:url(/docs/wiki/lib/plugins/pageredirect/images/important_small.png);}#user__manager tr.disabled{color:#6f6f6f;background:#e4e4e4;}#user__manager tr.user_info{vertical-align:top;}#user__manager div.edit_user{width:46%;float:left;}#user__manager table{margin-bottom:1em;}#user__manager input.button[disabled]{color:#ccc!important;border-color:#ccc!important;}#plugin__manager h2{margin-left:0;}#plugin__manager form{display:block;margin:0;padding:0;}#plugin__manager legend{display:none;}#plugin__manager fieldset{width:auto;}#plugin__manager .button{margin:0;}#plugin__manager p,#plugin__manager label{text-align:left;}#plugin__manager .hidden{display:none;}#plugin__manager .new{background:#dee7ec;}#plugin__manager input[disabled]{color:#ccc;border-color:#ccc;}#plugin__manager .pm_menu,#plugin__manager .pm_info{margin-left:0;text-align:left;}#plugin__manager .pm_menu{float:left;width:48%;}#plugin__manager .pm_info{float:right;width:50%;}#plugin__manager .common fieldset{margin:0;padding:0 0 1.0em 0;text-align:left;border:none;}#plugin__manager .common label{padding:0 0 0.5em 0;}#plugin__manager .common input.edit{width:24em;margin:0.5em;}#plugin__manager .plugins fieldset{color:#000;background:#fff;text-align:right;border-top:none;border-right:none;border-left:none;}#plugin__manager .plugins fieldset.protected{background:#fdd;color:#000;}#plugin__manager .plugins fieldset.disabled{background:#e0e0e0;color:#a8a8a8;}#plugin__manager .plugins .legend{color:#000;background:inherit;display:block;margin:0;padding:0;font-size:1em;line-height:1.4em;font-weight:normal;text-align:left;float:left;padding:0;clear:none;}#plugin__manager .plugins .button{font-size:95%;}#plugin__manager .plugins fieldset.buttons{border:none;}#plugin__manager .plugins fieldset.buttons .button{float:left;}#plugin__manager .pm_info h3{margin-left:0;}#plugin__manager .pm_info dl{margin:1em 0;padding:0;}#plugin__manager .pm_info dt{width:6em;float:left;clear:left;margin:0;padding:0;}#plugin__manager .pm_info dd{margin:0 0 0 7em;padding:0;background:none;}#plugin__manager .plugins .enable{float:left;width:auto;margin-right:0.5em;}.dokuwiki #plugin__captcha_wrapper img{margin:1px;vertical-align:bottom;border:1px solid #8cacbb;}#config__manager div.success,#config__manager div.error,#config__manager div.info{background-position:0.5em;padding:0.5em;text-align:center;}#config__manager fieldset{margin:1em;width:auto;margin-bottom:2em;background-color:#dee7ec;color:#000;padding:0 1em;}#config__manager legend{font-size:1.25em;}#config__manager form{}#config__manager table{margin:1em 0;width:100%;}#config__manager fieldset td{text-align:left;}#config__manager fieldset td.value{width:31em;}#config__manager td.label{padding:0.8em 0 0.6em 1em;vertical-align:top;}#config__manager td.label label{clear:left;display:block;}#config__manager td.label img{padding:0 10px;vertical-align:middle;float:right;}#config__manager td.label span.outkey{font-size:70%;margin-top:-1.7em;margin-left:-1em;display:block;background-color:#fff;color:#666;float:left;padding:0 0.1em;position:relative;z-index:1;}#config__manager td input.edit{width:30em;}#config__manager td .input{width:30.8em;}#config__manager td select.edit{}#config__manager td textarea.edit{width:27.5em;height:4em;}#config__manager tr .input,#config__manager tr input,#config__manager tr textarea,#config__manager tr select{background-color:#fff;color:#000;}#config__manager tr.default .input,#config__manager tr.default input,#config__manager tr.default textarea,#config__manager tr.default select,#config__manager .selectiondefault{background-color:#cdf;color:#000;}#config__manager tr.protected .input,#config__manager tr.protected input,#config__manager tr.protected textarea,#config__manager tr.protected select,#config__manager tr.protected .selection{background-color:#fcc!important;color:#000 !important;}#config__manager td.error{background-color:red;color:#000;}#config__manager .selection{width:14.8em;float:left;margin:0 0.3em 2px 0;}#config__manager .selection label{float:right;width:14em;font-size:90%;}* html #config__manager .selection label{padding-top:2px;}#config__manager .selection input.checkbox{padding-left:0.7em;}#config__manager .other{clear:both;padding-top:0.5em;}#config__manager .other label{padding-left:2px;font-size:90%;}div.noteclassic,div.noteimportant,div.notewarning,div.notetip{margin:2em;margin-left:auto;margin-right:auto;width:70% !important;min-height:40px;clear:both;text-align:justify;vertical-align:middle;border-collapse:collapse;padding:15px 20px 15px 80px;background-position:20px 50%;background-repeat:no-repeat;-moz-border-radius:20px;-khtml-border-radius:20px;border-radius:20px;}div.noteclassic{background-color:#eef;background-image:url(/docs/wiki/lib/plugins/note/images/note.png);}div.noteimportant{background-color:#ffc;background-image:url(/docs/wiki/lib/plugins/note/images/important.png);}div.notewarning{background-color:#fdd;background-image:url(/docs/wiki/lib/plugins/note/images/warning.png);}div.notetip{background-color:#dfd;background-image:url(/docs/wiki/lib/plugins/note/images/tip.png);}.dtree{font-family:Verdana,Geneva,Arial,Helvetica,sans-serif;font-size:11px;color:#000;white-space:nowrap;line-height:normal;}.dtree img{border:0px;vertical-align:top;}.dtree a{color:#090;text-decoration:none;}.dtree a.node,.dtree a.nodeSel a.navSel{white-space:nowrap;padding:1px 2px 1px 2px;}.dtree a.nodeSel{background-color:#dee7ec;}.dtree a.navSel{background-color:#ff9;}.indexmenu_nojs{display:block;}div.li a.indexmenu_idx{color:#f30 !important;text-decoration:none !important;font-weight:bold;}div.li a.indexmenu_idx_head{font-weight:bold;}div.dokuwiki div.indexmenu_list_themes{clear:both;border-top:2px solid #8cacbb;padding-left:1em;}.dtree a.nodeFdUrl:hover,.dtree a.nodeSel:hover,a.navSel:hover,.dtree a.nodeUrl:hover{color:#090;text-decoration:underline;background-color:#dee7ec;}.dtree a.node:hover{text-decoration:none;}.dtree .indexmenu_tocbullet{position:absolute;background:transparent url(/docs/wiki/lib/plugins/indexmenu/images/toc_bullet.gif) no-repeat scroll;vertical-align:middle;width:11px;height:11px;}.dtree .indexmenu_larrow{position:absolute;filter:alpha(opacity=60);-moz-opacity:.60;opacity:.60;background:transparent url(/docs/wiki/lib/plugins/indexmenu/images/larrow.gif) repeat-y scroll;padding-left:22px;z-index:100;}.indexmenu_toc{font-size:80%;line-height:1.2em;white-space:normal;overflow:hidden;width:200px !important;z-index:100 !important;word-wrap:break-word;}.indexmenu_toc .indexmenu_toc_inside{border:1px solid #8cacbb;background-color:#fff;text-align:left;padding:0.5em 0 0.7em 0;max-height:300px;height:expression( this.scrollHeight > 300 ? "300px":"auto" );overflow:auto;}.dtree .indexmenu_rarrow{position:absolute;background:white url(/docs/wiki/lib/plugins/indexmenu/images/rarrow.gif) no-repeat scroll;width:11px;height:15px;}.indexmenu_rmenu{position:absolute;z-index:100;background-color:#fff;border:1px solid black;font-size:80%;line-height:100%;padding-bottom:5px;}.indexmenu_rmenuhead{background:#CFC url(/docs/wiki/lib/plugins/indexmenu/images/close.gif) no-repeat scroll;border-bottom:1px solid #000;color:#000;font-size:90%;margin:0pt;text-align:left;padding:1px 15px;vertical-align:middle;overflow:hidden;width:80px;}.indexmenu_rmenu ul,.indexmenu_rmenu li{list-style-type:none !important;list-style-image:none !important;color:#000 !important;margin:2px !important;text-align:center;}.indexmenu_rmenu a:hover{background-color:#000 !important;color:#fff !important;}.indexmenu_opts{font-size:80%;}.dtree .emptynode{background:transparent url(/docs/wiki/lib/plugins/indexmenu/images/empty.gif) no-repeat scroll;display:inline;padding:1px 8px;width:16px;height:16px;vertical-align:top;zoom:1;}div.dokuwiki .header{padding:3px 0 0 2px;}div.dokuwiki .pagename{float:left;font-size:200%;font-weight:bolder;color:#dee7ec;text-align:left;vertical-align:middle;}div.dokuwiki .pagename a{color:#436976 !important;text-decoration:none !important;}div.dokuwiki .logo{float:right;font-size:220%;font-weight:bolder;text-align:right;vertical-align:middle;}div.dokuwiki .logo a{color:#dee7ec !important;text-decoration:none !important;font-variant:small-caps;letter-spacing:2pt;}div.dokuwiki .bar{border:1px #e0e0e0 solid;background:#f8f8f8;padding:10px;clear:both;}div.dokuwiki .bar-left{float:left;}div.dokuwiki .bar-right{float:right;text-align:right;}div.dokuwiki #bar__bottom{margin-bottom:3px;}div.dokuwiki .bar-tools{display:none;border-left:1px #e0e0e0 solid;border-right:1px #e0e0e0 solid;border-bottom:1px #e0e0e0 solid;background:#f8f8f8;padding:10px;clear:both;}div.dokuwiki div.meta{clear:both;margin:20px 0px 0px 0px;color:#638c9c;font-size:70%;}div.dokuwiki div.meta div.user{float:left;}div.dokuwiki div.meta div.doc{text-align:right;}*{padding:0;margin:0;}body{font:80% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;background-color:#fff;color:#000;}div.dokuwiki div.page{text-align:justify;}div.dokuwiki table{font-size:100%;}div.dokuwiki tr,div.dokuwiki td,div.dokuwiki th{}div.dokuwiki img{border:0;}div.dokuwiki p,div.dokuwiki blockquote,div.dokuwiki table,div.dokuwiki pre{margin:0 0 1.0em 0;}div.dokuwiki hr{border:0px;border-top:1px solid #8cacbb;text-align:center;height:0px;}div.dokuwiki div.nothing{text-align:center;margin:2em;}div.dokuwiki form{border:none;display:inline;}div.dokuwiki label.block{display:block;text-align:right;font-weight:bold;}div.dokuwiki label.simple{display:block;text-align:left;font-weight:normal;}div.dokuwiki label.block input.edit{width:50%;}div.dokuwiki fieldset{width:300px;text-align:center;border:1px solid #8cacbb;padding:0.5em;margin:auto;}div.dokuwiki textarea.edit{font-family:monospace;font-size:14px;color:#000;background-color:#fff;border:1px solid #8cacbb;padding:0.3em 0 0 0.3em;width:100%;}html>body div.dokuwiki textarea.edit{background:#fff url(/docs/wiki/lib/tpl/default/images/inputshadow.png) repeat-x top;}div.dokuwiki input.edit,div.dokuwiki select.edit{font-size:100%;border:1px solid #8cacbb;color:#000;background-color:#fff;vertical-align:middle;margin:1px;padding:0.20em 0.3em;display:inline;}html>body div.dokuwiki input.edit,html>body div.dokuwiki select.edit{background:#fff url(/docs/wiki/lib/tpl/default/images/inputshadow.png) repeat-x top;}div.dokuwiki select.edit{padding:0.1em 0;}div.dokuwiki input.missing{font-size:100%;border:1px solid #8cacbb;color:#000;background-color:#fcc;vertical-align:middle;margin:1px;padding:0.20em 0.3em;display:inline;}div.dokuwiki textarea.edit[disabled],div.dokuwiki textarea.edit[readonly],div.dokuwiki input.edit[disabled],div.dokuwiki input.edit[readonly],div.dokuwiki input.button[disabled],div.dokuwiki select.edit[disabled]{background-color:#f5f5f5!important;color:#666!important;}div.dokuwiki div.toolbar,div.dokuwiki div#wiki__editbar{margin:2px 0;text-align:left;}div.dokuwiki div#size__ctl{float:right;width:60px;height:2.7em;}div.dokuwiki #size__ctl img{cursor:pointer;}div.dokuwiki div#wiki__editbar div.editButtons{float:left;padding:0 1.0em 0.7em 0;}div.dokuwiki div#wiki__editbar div.summary{float:left;}div.dokuwiki .nowrap{white-space:nowrap;}div.dokuwiki div#draft__status{float:right;color:#638c9c;}div.dokuwiki div.license{padding:0.5em;font-size:90%;text-align:center;}div.dokuwiki form#dw__editform div.license{clear:left;font-size:90%;}div.dokuwiki input.button,div.dokuwiki button.button{border:1px solid #8cacbb;color:#000;background-color:#fff;vertical-align:middle;text-decoration:none;font-size:100%;cursor:pointer;margin:1px;padding:0.125em 0.4em;}html>body div.dokuwiki input.button,html>body div.dokuwiki button.button{background:#fff url(/docs/wiki/lib/tpl/default/images/buttonshadow.png) repeat-x bottom;}* html div.dokuwiki input.button,* html div.dokuwiki button.button{height:1.8em;}div.dokuwiki div.secedit input.button{border:1px solid #8cacbb;color:#000;background-color:#fff;vertical-align:middle;text-decoration:none;margin:0;padding:0;font-size:10px;cursor:pointer;float:right;display:inline;}div.dokuwiki div.pagenav{margin:1em 0 0 0;}div.dokuwiki div.pagenav-prev{text-align:right;float:left;width:49%}div.dokuwiki div.pagenav-next{text-align:left;float:right;width:49%}div.dokuwiki a:link,div.dokuwiki a:visited{color:#436976;text-decoration:none;}div.dokuwiki a:hover,div.dokuwiki a:active{color:#000;text-decoration:underline;}div.dokuwiki h1 a{text-decoration:none !important;}div.dokuwiki h2 a,div.dokuwiki h3 a,div.dokuwiki h4 a,div.dokuwiki h5 a,div.dokuwiki a.nolink{color:#000 !important;text-decoration:none !important;}div.dokuwiki a.interwiki{}div.dokuwiki a.media{}div.dokuwiki a.mail{background:transparent url(/docs/wiki/lib/tpl/default/images/mail_icon.gif) 0px 1px no-repeat;padding:1px 0px 1px 16px;}div.dokuwiki a.wikilink2{text-decoration:none !important;border-bottom:dashed 1px #f30 !important;}div.dokuwiki div.preview{background-color:#f5f5f5;margin:0 0 0 2em;padding:4px;border:1px dashed #000;}div.dokuwiki div.breadcrumbs{background:url(http://s0.percona.com/ui-tab-bg.png) -14px left repeat-x;color:#999;font-size:11px;font-style:italic;padding:7px 0 15px 12px;}div.dokuwiki div.breadcrumbs a,div.dokuwiki div.breadcrumbs a:visited{color:#999 !important;border-color:#999 !important;}div.dokuwiki div.breadcrumbs a:hover{color:#d12907 !important;border-color:#d12907 !important;}div.dokuwiki span.user{color:#ccc;font-size:90%;}div.dokuwiki li.minor{color:#666;font-style:italic;}div.dokuwiki img.media{margin:3px;}div.dokuwiki img.medialeft{border:0;float:left;margin:0 1.5em 0 0;}div.dokuwiki img.mediaright{border:0;float:right;margin:0 0 0 1.5em;}div.dokuwiki img.mediacenter{border:0;display:block;margin:0 auto;}div.dokuwiki img.middle{vertical-align:middle;}div.dokuwiki acronym{cursor:help;border-bottom:1px dotted #000;}div.dokuwiki li.open{list-style-image:url(/docs/wiki/lib/tpl/default/images/open.gif);}div.dokuwiki li.closed{list-style-image:url(/docs/wiki/lib/tpl/default/images/closed.gif);}div.dokuwiki blockquote{border-left:2px solid #8cacbb;padding-left:3px;}div.dokuwiki pre{font-size:80%;padding:10px;border:1px dashed #8cacbb;color:#000;overflow:auto;}div.dokuwiki pre.pre{background-color:#f7f9fa;}div.dokuwiki pre.code{background-color:#f7f9fa;}div.dokuwiki pre.file{background-color:#dee7ec;}div.dokuwiki dl.file,div.dokuwiki dl.code{margin-top:2em;margin-bottom:2.5em;}div.dokuwiki dl.file dt,div.dokuwiki dl.code dt{border:1px dashed #8cacbb;display:inline;padding:0.1em 1em;margin-left:2em;}div.dokuwiki dl.code dt a,div.dokuwiki dl.file dt a{color:#000;}div.dokuwiki dl.code dt{background-color:#f7f9fa;border-bottom:1px solid #f7f9fa;}div.dokuwiki dl.file dt{background-color:#dee7ec;border-bottom:1px solid #dee7ec;}div.dokuwiki table.inline{background-color:#fff;border-spacing:0px;border-collapse:collapse;}div.dokuwiki table.inline th{padding:3px;border:1px solid #8cacbb;background-color:#dee7ec;}div.dokuwiki table.inline td{padding:3px;border:1px solid #8cacbb;}#toc{width:258px;font-size:12px;line-height:16px;clear:both;border:1px #e0e0e0 solid;background:#fff url(http://s1.percona.com/ui-tab-bg.png) top left repeat-x;}#toc div.tocheader{text-align:left;font-weight:bold;padding:7px 10px;margin-bottom:2px;font-size:16px;}#toc div.tocheader a,#toc div.tocheader a:visited{color:#000 !important;text-decoration:none !important;}#toc div.tocheader a:hover{color:#d12907 !important;text-decoration:none !important;}#toc span.toc_open,#toc span.toc_close{float:right;display:block;margin:0.4em 3px 0 0;}#toc span.toc_open span,#toc span.toc_close span{display:none;}#toc span.toc_open{margin-top:0.4em;border-top:0.4em solid #000;}#toc span.toc_close{margin-top:0;border-bottom:0.4em solid #000;}#toc #toc__inside{text-align:left;padding:1px 15px 15px 13px;}#toc ul.toc{list-style-type:none;padding-left:0px !important;margin:0;}#toc ul.toc ul{padding-left:15px !important;}#toc ul.toc li{margin:5px 0px !important;}#toc ul.toc li.clear{padding-left:0;}#toc a.toc:link,#toc a.toc:visited{color:#d12907;text-decoration:underline;}#toc a.toc:hover,#toc a.toc:active{color:#712000;text-decoration:underline;}div.dokuwiki table.diff{background-color:#fff;width:100%;}div.dokuwiki td.diff-blockheader{font-weight:bold;}div.dokuwiki table.diff th{border-bottom:1px solid #8cacbb;font-size:110%;width:50%;font-weight:normal;text-align:left;}div.dokuwiki table.diff th a{font-weight:bold;}div.dokuwiki table.diff th span.user{color:#000;font-size:80%;}div.dokuwiki table.diff th span.sum{font-size:80%;font-weight:bold;}div.dokuwiki table.diff th.minor{font-style:italic;}div.dokuwiki table.diff td{font-family:monospace;font-size:100%;}div.dokuwiki td.diff-addedline{background-color:#dfd;}div.dokuwiki td.diff-deletedline{background-color:#ffb;}div.dokuwiki td.diff-context{background-color:#f5f5f5;}div.dokuwiki table.diff td.diff-addedline strong,div.dokuwiki table.diff td.diff-deletedline strong{color:red;}div.dokuwiki div.footnotes{clear:both;border-top:1px solid #8cacbb;padding-left:1em;margin-top:1em;}div.dokuwiki div.fn{font-size:90%;}div.dokuwiki a.fn_bot{font-weight:bold;}div.insitu-footnote{font-size:80%;line-height:1.2em;border:1px solid #8cacbb;background-color:#f7f9fa;text-align:left;padding:4px;max-width:40%;}* html .insitu-footnote pre.code,* html .insitu-footnote pre.file{padding-bottom:18px;}div.dokuwiki .search_result{margin-bottom:6px;padding:0 10px 0 30px;}div.dokuwiki .search_snippet{color:#ccc;font-size:12px;margin-left:20px;}div.dokuwiki .search_sep{color:#000;}div.dokuwiki .search_hit{color:#000;background-color:#ff9;}div.dokuwiki strong.search_hit{font-weight:normal;}div.dokuwiki div.search_quickresult{margin:0 0 15px 30px;padding:0 10px 10px 0;border-bottom:1px dashed #8cacbb;}div.dokuwiki div.search_quickresult h3{margin:0 0 1.0em 0;font-size:1em;font-weight:bold;}div.dokuwiki ul.search_quickhits{margin:0 0 0.5em 1.0em;}div.dokuwiki ul.search_quickhits li{margin:0 1.0em 0 1.0em;float:left;width:30%;}div.dokuwiki div.section_highlight{background-color:#dee7ec;}div.footerinc{text-align:center;}.footerinc a img{opacity:0.5;border:0;}.footerinc a:hover img{opacity:1;}div.dokuwiki div.ajax_qsearch{position:absolute;right:237px;;width:200px;opacity:0.9;display:none;font-size:80%;line-height:1.2em;border:1px solid #8cacbb;background-color:#f7f9fa;text-align:left;padding:4px;}button.toolbutton{background-color:#fff;padding:0px;margin:0 1px 0 0;border:1px solid #8cacbb;cursor:pointer;}html>body button.toolbutton{background:#fff url(/docs/wiki/lib/tpl/default/images/buttonshadow.png) repeat-x bottom;}div.picker{width:250px;border:1px solid #8cacbb;background-color:#dee7ec;}div.pk_hl{width:125px;}button.pickerbutton{padding:0px;margin:0 1px 1px 0;border:0;background-color:transparent;font-size:80%;cursor:pointer;}div.dokuwiki div.img_big{float:left;margin-right:0.5em;}div.dokuwiki dl.img_tags dt{font-weight:bold;background-color:#dee7ec;}div.dokuwiki dl.img_tags dd{background-color:#f5f5f5;}div.dokuwiki div.imagemeta{color:#666;font-size:70%;line-height:95%;}div.dokuwiki div.imagemeta img.thumb{float:left;margin-right:0.1em;}div.dokuwiki h4{border-top:none !important;margin:20px 0px 20px 0px !important;}#media__manager{height:100%;overflow:hidden;}#media__left{width:30%;border-right:solid 1px #8cacbb;height:100%;overflow:auto;position:absolute;left:0;}#media__right{width:69.7%;height:100%;overflow:auto;position:absolute;right:0;}#media__manager h1{margin:0;padding:0;margin-bottom:0.5em;}#media__tree img{float:left;padding:0.5em 0.3em 0 0;}#media__tree ul{list-style-type:none;list-style-image:none;margin-left:1.5em;}#media__tree li{clear:left;list-style-type:none;list-style-image:none;}*+html #media__tree li,* html #media__tree li{border:1px solid #fff;}#media__opts{padding-left:1em;margin-bottom:0.5em;}#media__opts input{float:left;display:block;margin-top:4px;position:absolute;}*+html #media__opts input,* html #media__opts input{position:static;}#media__opts label{display:block;float:left;margin-left:20px;margin-bottom:4px;}*+html #media__opts label,* html #media__opts label{margin-left:10px;}#media__opts br{clear:left;}#media__content img.load{margin:1em auto;}#media__content #scroll__here{border:1px dashed #8cacbb;}#media__content .odd{background-color:#f7f9fa;padding:0.4em;}#media__content .even{padding:0.4em;}#media__content a.mediafile{margin-right:1.5em;font-weight:bold;}#media__content div.detail{padding:0.3em 0 0.3em 2em;}#media__content div.detail div.thumb{float:left;width:130px;text-align:center;margin-right:0.4em;}#media__content img.btn{vertical-align:text-bottom;}#media__content div.example{color:#666;margin-left:1em;}#media__content div.upload{font-size:90%;padding:0 0.5em 0.5em 0.5em;}#media__content form#dw__upload,#media__content div#dw__flashupload{display:block;border-bottom:solid 1px #8cacbb;padding:0 0.5em 1em 0.5em;}#media__content form#dw__upload fieldset{padding:0;margin:0;border:none;width:auto;}#media__content form#dw__upload p{text-align:left;padding:0.25em 0;margin:0;line-height:1.0em;}#media__content form#dw__upload label.check{float:none;width:auto;margin-left:11.5em;}#media__content form.meta{display:block;padding:0 0 1em 0;}#media__content form.meta label{display:block;width:25%;float:left;font-weight:bold;margin-left:1em;clear:left;}#media__content form.meta .edit{font:100% "Lucida Grande",Verdana,Lucida,Helvetica,Arial,sans-serif;float:left;width:70%;padding-right:0;padding-left:0.2em;margin:2px;}#media__content form.meta textarea.edit{height:8em;}#media__content form.meta div.metafield{clear:left;}#media__content form.meta div.buttons{clear:left;margin-left:20%;padding-left:1em;}#media__popup{background-color:#fff;display:none;border:1px solid #8cacbb;position:absolute;width:270px;}#media__popup h1{text-align:center;font-weight:normal;background-color:#dee7ec;height:16px;margin-bottom:5px;font-size:12px;border-bottom:0;}#media__popup p{display:block;line-height:14pt;margin:0.5em;}#media_nolink{padding:4px 0;}#media__popup label{float:left;width:9em;}#media__popup .button{margin-left:auto;margin-right:auto;}#media__popup .btnlbl{text-align:center;}#media__popup .btnlbl input{margin:0 1em;}#media__closeimg{float:right;}#media__linkopts label,#media__nolnk{width:80px;float:left;margin-left:10px;}#media__linkopts label{line-height:20px;}#media__nolnk,#media__linkopts label.long{margin-bottom:8px;line-height:12px;}#media__linkopts label.long{width:150px;float:none;}#media__linkopts br{clear:both;}#media__linkopts select{width:60px;margin-left:10px;}#media__linkopts input.edit{width:50px;margin-left:10px;}#media__linkopts #media__title{width:150px;}#admin__version{clear:left;float:right;color:#666;}.dokuwiki ul.admin_tasks{font-size:115%;float:left;width:40%;list-style-type:none;}.dokuwiki ul.admin_tasks li{line-height:22px;padding-left:35px;margin:1em 0;background:transparent none no-repeat scroll 0 0;text-align:left;}.dokuwiki ul.admin_tasks li div.li{font-weight:bold;}.dokuwiki ul.admin_tasks li.admin_acl{background-image:url(/docs/wiki/lib/tpl/default/../../images/admin/acl.png);}.dokuwiki ul.admin_tasks li.admin_usermanager{background-image:url(/docs/wiki/lib/tpl/default/../../images/admin/usermanager.png);}.dokuwiki ul.admin_tasks li.admin_plugin{background-image:url(/docs/wiki/lib/tpl/default/../../images/admin/plugin.png);}.dokuwiki ul.admin_tasks li.admin_config{background-image:url(/docs/wiki/lib/tpl/default/../../images/admin/config.png);}.dokuwiki ul.admin_tasks li.admin_revert{background-image:url(/docs/wiki/lib/tpl/default/../../images/admin/revert.png);}.dokuwiki ul.admin_tasks li.admin_popularity{background-image:url(/docs/wiki/lib/tpl/default/../../images/admin/popularity.png);}#link__wiz{position:absolute;display:block;z-index:99;width:300px;height:250px;padding:0;margin:0;overflow:hidden;border:1px solid #8cacbb;background-color:#f5f5f5;text-align:center;}#link__wiz_header{background-color:#dee7ec;height:16px;margin-bottom:5px;}#link__wiz_close{cursor:pointer;margin:0;}#link__wiz_result{background-color:#fff;width:293px;height:193px;overflow:auto;border:1px solid #8cacbb;margin:3px auto;text-align:left;}#link__wiz_result div.type_u{padding:3px 3px 3px 22px;background:transparent url(/docs/wiki/lib/tpl/default/../../images/up.png) 3px 3px no-repeat;}#link__wiz_result div.type_f{padding:3px 3px 3px 22px;background:transparent url(/docs/wiki/lib/tpl/default/../../images/page.png) 3px 3px no-repeat;}#link__wiz_result div.type_d{padding:3px 3px 3px 22px;background:transparent url(/docs/wiki/lib/tpl/default/../../images/ns.png) 3px 3px no-repeat;}#link__wiz_result div.even{background-color:#f5f5f5;}#link__wiz_result div.selected{background-color:#dee7ec;}#link__wiz_result span{display:block;color:#666;}.ondrag{cursor:move;opacity:0.8;}form#subscribe__form{display:block;width:300px;text-align:center;}form#subscribe__form fieldset{text-align:left;margin:0.5em 0;}form#subscribe__form label{display:block;margin:0 0.5em 0.5em;}
1323-
1324-
1325-
1326-/***
1327- * side style buttons
1328-*/
1329-.a-btn-container {
1330- overflow:hidden;
1331- border-radius:4px;
1332-}
1333-.a-btn, .a-btn-green, .a-btn-red{
1334-
1335- width: 245px;
1336- background:#f2aa2e;
1337- background:-webkit-gradient(linear,left top,left bottom,color-stop(##f2aa2e,0),color-stop(##c7401e,1));
1338- background:-webkit-linear-gradient(top, #f2aa2e 0%, #c7401e 100%);
1339- background:-moz-linear-gradient(top, #f2aa2e 0%, #c7401e 100%);
1340- background:-o-linear-gradient(top, #f2aa2e 0%, #c7401e 100%);
1341- background:linear-gradient(top, #f2aa2e 0%, #c7401e 100%);
1342- filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2aa2e', endColorstr='#c7401e',GradientType=0 );
1343- border:1px solid #f5b74e;
1344- border-color:#f5b74e #e5a73e #d6982f;
1345- -webkit-box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #fee395;
1346- -moz-box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #fee395;
1347- box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #fee395;
1348- padding:0px;
1349- height:65px;
1350- display:inline-block;
1351- position:relative;
1352- -webkit-border-radius:4px;
1353- -moz-border-radius:4px;
1354- border-radius:4px;
1355- float:left;
1356- overflow:hidden;
1357- -webkit-transition:all 0.3s linear;
1358- -moz-transition:all 0.3s linear;
1359- -o-transition:all 0.3s linear;
1360- transition:all 0.3s linear;
1361- text-decoration: none !important;
1362-}
1363-.a-btn-green{
1364- background:#a1de78;
1365- background:-webkit-gradient(linear,left top,left bottom,color-stop(##a1de78,0),color-stop(##a1de78,1));
1366- background:-webkit-linear-gradient(top, #00e05a 0%, #006127 100%);
1367- background:-moz-linear-gradient(center top , #00e05a 0%, #006127 130%);
1368- background:-o-linear-gradient(top, #00e05a 0%, #006127 100%);
1369- background:linear-gradient(top, #00e05a 0%, #006127 100%);
1370- filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#00e05a', endColorstr='#444444',GradientType=0 );
1371- border:1px solid #f5b74e;
1372- border-color:#00ba4b #009A00 #007A31;
1373- -webkit-box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #00ED5F;
1374- -moz-box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #00ED5F;
1375- box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #00ED5F;
1376-}
1377-
1378-.a-btn-red{
1379- background:#e31300;
1380- background:-webkit-gradient(linear,left top,left bottom,color-stop(##e31300,0),color-stop(##6b0900,1));
1381- background:-webkit-linear-gradient(top, #e31300 0%, #6b0900 100%);
1382- background:-moz-linear-gradient(center top , #e31300 0%, #6b0900 130%);
1383- background:-o-linear-gradient(top, #e31300 0%, #6b0900 100%);
1384- background:linear-gradient(top, #e31300 0%, #6b0900 100%);
1385- filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#e31300', endColorstr='#444444',GradientType=0 );
1386- border:1px solid #ff2d19;
1387- border-color:#e85345 #b00f00 #63241e;
1388- -webkit-box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #fa430c;
1389- -moz-box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #fa430c;
1390- box-shadow:0 1px 1px #d3d3d3, inset 0 1px 0 #fa430c;
1391-}
1392-
1393-
1394-.a-btn-text{
1395- padding-left:15px;
1396- padding-top:10px;
1397- display:block;
1398- font-size:18px;
1399- white-space:nowrap;
1400- color: #f5f1ea;
1401- text-shadow:0 1px 0 #000;
1402- -webkit-transition:all 0.3s linear;
1403- -moz-transition:all 0.3s linear;
1404- -o-transition:all 0.3s linear;
1405- transition:all 0.3s linear;
1406-
1407-}
1408-.a-btn-green .a-btn-text {
1409- color: #fff;
1410-}
1411-
1412-.a-btn-slide-text, .a-btn-fixed-slide-text {
1413- position:absolute;
1414- top:35px;
1415- left:0px;
1416- width:auto;
1417- right:52px;
1418- height:0px;
1419- background:#fff;
1420- color:#996633;
1421- font-size:13px;
1422- white-space:nowrap;
1423- font-family:Georgia, serif;
1424- font-style:italic;
1425- text-indent:15px;
1426- overflow:hidden;
1427- line-height:30px;
1428- -webkit-box-shadow:-1px 0px 1px rgba(255,255,255,0.4), 1px 1px 1px rgba(0,0,0,0.5) inset;
1429- -moz-box-shadow:-1px 0px 1px rgba(255,255,255,0.4), 1px 1px 1px rgba(0,0,0,0.5) inset;
1430- box-shadow:-1px 0px 1px rgba(255,255,255,0.4), 1px 1px 1px rgba(0,0,0,0.5) inset;
1431- -webkit-transition:height 0.3s linear;
1432- -moz-transition:height 0.3s linear;
1433- -o-transition:height 0.3s linear;
1434- transition:height 0.3s linear;
1435-}
1436-.a-btn-fixed-slide-text{
1437- height: 30px;
1438-}
1439-
1440-.a-btn-icon-right{
1441- position:absolute;
1442-
1443- right:0px;
1444- top:0px;
1445- height:100%;
1446- width:52px;
1447- border-left:1px solid #f5b74e;
1448- -webkit-box-shadow:1px 0px 1px rgba(255,255,255,0.4) inset;
1449- -moz-box-shadow:1px 0px 1px rgba(255,255,255,0.4) inset;
1450- box-shadow:1px 0px 1px rgba(255,255,255,0.4) inset;
1451-}
1452-.a-btn-red .a-btn-icon-right {
1453- border-left: 1px solid #fa430c;
1454-}
1455-.a-btn-icon-right span{
1456- width:38px;
1457- height:38px;
1458-
1459- position:absolute;
1460- left:50%;
1461- top:50%;
1462- margin:-20px 0px 0px -20px;
1463- background:transparent url(/static/images/software-download-white-brdr.png) no-repeat 50% 55%;
1464- -webkit-transition:all 0.3s linear;
1465- -moz-transition:all 0.3s linear;
1466- -o-transition:all 0.3s linear;
1467- transition:all 0.3s linear;
1468-
1469-}
1470-.a-btn-green .a-btn-icon-right span {
1471- background:transparent url(/static/images/software-download-white-brdr-green3.png) no-repeat 50% 55%;
1472-}
1473-.a-btn-red .a-btn-icon-right span {
1474-
1475- background:transparent url(/static/images/software-download-white-brdr-red.png) no-repeat 50% 55%;
1476-}
1477-.a-btn:hover{
1478- height:65px;
1479- -webkit-box-shadow:0px 1px 1px rgba(255,255,255,0.8) inset, 1px 1px 5px rgba(0,0,0,0.4);
1480- -moz-box-shadow:0px 1px 1px rgba(255,255,255,0.8) inset, 1px 1px 5px rgba(0,0,0,0.4);
1481- box-shadow:0px 1px 1px rgba(255,255,255,0.8) inset, 1px 1px 5px rgba(0,0,0,0.4);
1482-}
1483-.a-btn:hover .a-btn-text{
1484-
1485- text-shadow:0 1px 0 #000;
1486- color:#fff;
1487-}
1488-.a-btn:hover .a-btn-slide-text:hover{
1489- height:30px;
1490-}
1491-.a-btn:hover .a-btn-icon-right span{
1492- opacity:1;
1493- /**
1494- -webkit-transform:rotate(-45deg);
1495- -moz-transform:rotate(-45deg);
1496- -ms-transform:rotate(-45deg);
1497- -o-transform:rotate(-45deg);
1498- transform:rotate(-45deg);
1499- */
1500-}
1501-.a-btn:active{
1502- position:relative;
1503- top:1px;
1504- background:#fec354;
1505- background:-webkit-gradient(linear,left top,left bottom,color-stop(#fec354,0),color-stop(#fecd61,1));
1506- background:-webkit-linear-gradient(top, #fec354 0%, #fecd61 100%);
1507- background:-moz-linear-gradient(top, #fec354 0%, #fecd61 100%);
1508- background:-o-linear-gradient(top, #fec354 0%, #fecd61 100%);
1509- background:linear-gradient(top, #fec354 0%, #fecd61 100%);
1510- filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#fec354', endColorstr='#fecd61',GradientType=0 );
1511- border-color:#d29a3a #cc9436 #c89133;
1512- text-shadow:0 1px 0 #fee1a0;
1513- -webkit-box-shadow:0 1px 1px #d4d4d4, inset 0 1px 0 #fed17e;
1514- -moz-box-shadow:0 1px 1px #d4d4d4, inset 0 1px 0 #fed17e;
1515- box-shadow:0 1px 1px #d4d4d4, inset 0 1px 0 #fed17e;
1516-}
1517-.body .section blockquote {
1518- margin-left: 25px;
1519-}
1520
1521=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.js'
1522--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.js 2012-03-26 17:43:02 +0000
1523+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/percona.com.js 1970-01-01 00:00:00 +0000
1524@@ -1,269 +0,0 @@
1525-window.jQuery(function($) {
1526-
1527-
1528-
1529-function setCookie(c_name, value, expiredays)
1530-{
1531- var exdate = new Date();
1532- exdate.setDate(exdate.getDate() + expiredays);
1533- document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";path=/;expires=" + exdate.toUTCString());
1534-}
1535-
1536-function getCookie(c_name)
1537-{
1538- if (document.cookie.length > 0)
1539- {
1540- c_start = document.cookie.indexOf(c_name + "=");
1541- if (c_start != -1)
1542- {
1543- c_start = c_start + c_name.length+1;
1544- c_end = document.cookie.indexOf(";",c_start);
1545- if (c_end == -1)
1546- {
1547- c_end = document.cookie.length;
1548- }
1549- return unescape(document.cookie.substring(c_start, c_end));
1550- }
1551- }
1552- return "";
1553-}
1554-
1555-
1556-NAVI = new Object();
1557-
1558-NAVI.CloseTimer = null;
1559-
1560-NAVI.Open = function ( menu_tag, dir )
1561-{
1562- NAVI_CancelTimer();
1563- NAVI_Close();
1564- SEARCH_CancelTimer();
1565- SEARCH_Close();
1566- if ('h' == dir)
1567- {
1568- return;
1569- }
1570- var pos = $("#navilink-span-"+menu_tag).offset();
1571- if (dir=='r')
1572- {
1573- $("#navi-dropdown-"+menu_tag).css( { "position": "absolute", "left": (pos.left + ($("#navilink-span-"+menu_tag).width()) + 2 - ($("#navi-dropdown-"+menu_tag).width())) + "px", "top": (pos.top + 32) + "px" } );
1574- }
1575- else
1576- {
1577- $("#navi-dropdown-"+menu_tag).css( { "position": "absolute", "left": (pos.left) + "px", "top": (pos.top + 32) + "px" } );
1578- }
1579- $("#navi-dropdown-"+menu_tag).show();
1580- $("#navilink-span-"+menu_tag).bind('mouseover',NAVI_CancelTimer);
1581- $("#navilink-span-"+menu_tag).bind('mouseout',NAVI_Timer);
1582- $("#navi-dropdown-"+menu_tag).bind('mouseover',NAVI_CancelTimer);
1583- $("#navi-dropdown-"+menu_tag).bind('mouseout',NAVI_Timer);
1584-};
1585-
1586-function NAVI_Close()
1587-{
1588- $(".navi-dropdown").hide();
1589- $("#menu div").unbind('mouseover');
1590- $(".dropdown").unbind('mouseover');
1591- $(".dropdown").unbind('mouseout');
1592-
1593- $("#search-dropdown").hide();
1594- $("#searchlink-anchor").unbind('mouseover');
1595- $("#searchlink-anchor").unbind('mouseout');
1596- $("#search-dropdown").unbind('mouseover');
1597- $("#search-dropdown").unbind('mouseout');
1598-}
1599-
1600-function NAVI_CancelTimer()
1601-{
1602- if (NAVI.CloseTimer!=null)
1603- {
1604- window.clearTimeout(NAVI.CloseTimer);
1605- NAVI.CloseTimer = null;
1606- }
1607-}
1608-
1609-function NAVI_Timer()
1610-{
1611- if (NAVI.CloseTimer==null)
1612- {
1613- NAVI.CloseTimer = window.setTimeout(NAVI_Close, 300);
1614- }
1615-}
1616-
1617-
1618-SUBNAVI = new Object();
1619-
1620-SUBNAVI.Open = function ( menu_tag )
1621-{
1622- if ($("#sidesubnavi-" + menu_tag + ':hidden').length)
1623- {
1624- $(".sidesubnavi").hide();
1625- $("#sidesubnavi-"+menu_tag).show();
1626- return false;
1627- } else {
1628- return true;
1629- }
1630-};
1631-
1632-
1633-SEARCH = new Object();
1634-
1635-SEARCH.CloseTimer = null;
1636-
1637-SEARCH.Open = function()
1638-{
1639- NAVI_CancelTimer();
1640- NAVI_Close();
1641- SEARCH_CancelTimer();
1642- SEARCH_Close();
1643- var pos = $("#searchlink-anchor").offset();
1644- $("#search-dropdown").css( { "position": "absolute", "left": (pos.left - ($("#search-dropdown").width()) + 40) + "px", "top": (pos.top + 36) + "px" } );
1645- $("#search-dropdown").show();
1646- $("#searchlink-anchor").bind('mouseover',NAVI_CancelTimer);
1647- $("#searchlink-anchor").bind('mouseout',NAVI_Timer);
1648- $("#search-dropdown").bind('mouseover',NAVI_CancelTimer);
1649- $("#search-dropdown").bind('mouseout',NAVI_Timer);
1650- $("#search-input")[0].focus();
1651-};
1652-
1653-function SEARCH_Close()
1654-{
1655- $(".navi-dropdown").hide();
1656- $("#menu div").unbind('mouseover');
1657- $(".dropdown").unbind('mouseover');
1658- $(".dropdown").unbind('mouseout');
1659-
1660- $("#search-dropdown").hide();
1661- $("#searchlink-anchor").unbind('mouseover');
1662- $("#searchlink-anchor").unbind('mouseout');
1663- $("#search-dropdown").unbind('mouseover');
1664- $("#search-dropdown").unbind('mouseout');
1665-}
1666-
1667-
1668-function SEARCH_CancelTimer()
1669-{
1670- if (SEARCH.CloseTimer!=null)
1671- {
1672- window.clearTimeout(SEARCH.CloseTimer);
1673- SEARCH.CloseTimer = null;
1674- }
1675-}
1676-
1677-function SEARCH_Timer()
1678-{
1679- if (SEARCH.CloseTimer==null)
1680- {
1681- SEARCH.CloseTimer = window.setTimeout(SEARCH_Close, 300);
1682- }
1683-}
1684-
1685-menuImg1 = new Image(); menuImg1.src = 'http://s1.percona.com/ui-dropdown-header-l.png';
1686-menuImg2 = new Image(); menuImg2.src = 'http://s2.percona.com/ui-dropdown-header-r.png';
1687-menuImg3 = new Image(); menuImg3.src = 'http://s3.percona.com/ui-dropdown-header-search.png';
1688-menuImg4 = new Image(); menuImg4.src = 'http://s0.percona.com/ui-dropdown-bg.png';
1689-menuImg5 = new Image(); menuImg5.src = 'http://s1.percona.com/ui-dropdown-footer.png';
1690-
1691-
1692-});
1693-
1694-
1695-var Percona = {
1696- ssl: false,
1697- host: 'www.percona.com'
1698-};
1699-/**
1700- * @param string selector jQuery selector string
1701- */
1702-Percona.getRecentServerVersion = function(selector)
1703-{
1704- if ('string' != typeof(selector))
1705- {
1706- alert('Percona.getRecentServerVersion: missed or wrong selector!');
1707- }
1708- /* Localize jQuery variable */
1709- var jQuery;
1710- /******** Load jQuery if not present *********/
1711- if (window.jQuery === undefined || window.jQuery.fn.jquery !== '1.4.2')
1712- {
1713- var script_tag = document.createElement('script');
1714- script_tag.setAttribute("type","text/javascript");
1715- script_tag.setAttribute('src', 'http' + (Percona.ssl ? 's' : '') + ':/' + '/ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
1716- script_tag.onload = scriptLoadHandler;
1717- script_tag.onreadystatechange = function () /* Same thing but for IE */
1718- {
1719- if (this.readyState == 'complete' || this.readyState == 'loaded')
1720- {
1721- scriptLoadHandler();
1722- }
1723- };
1724- /* Try to find the head, otherwise default to the documentElement */
1725- (document.getElementsByTagName("head")[0] || document.documentElement).appendChild(script_tag);
1726- } else {
1727- /* The jQuery version on the window is the one we want to use */
1728- jQuery = window.jQuery;
1729- main();
1730- }
1731- var scriptLoadHandler_counter = 0;
1732- /******** Called once jQuery has loaded ******/
1733- function scriptLoadHandler()
1734- {
1735- if (++scriptLoadHandler_counter > 1)
1736- {
1737- return;
1738- }
1739- /* Restore $ and window.jQuery to their previous values and store the
1740- new jQuery in our local jQuery variable */
1741- jQuery = window.jQuery.noConflict(true);
1742- /* Call our main function */
1743- main(jQuery);
1744- }
1745- /******** Our main function ********/
1746- function main($)
1747- {
1748- var fillRecentServerVersion = function($)
1749- {
1750- if ($(selector).get(0))
1751- {
1752- $.get('http' + (Percona.ssl ? 's' : '') + ':/' + '/' + Percona.host + '/ajax/server-version/?callback=?', {}, function(json)
1753- {
1754- if ('object' == typeof(json) && 'string' == typeof(json.recentServerVersion))
1755- {
1756- $(selector).text(' ' + json.recentServerVersion);
1757- }
1758- }, 'jsonp');
1759- }
1760- };
1761- $(document).ready(function()
1762- {
1763- fillRecentServerVersion(jQuery);
1764- });
1765- }
1766-};
1767-
1768-$(document).ready(function(){
1769- $(window).bind("resize", resizeWindow);
1770- resizeWindow();
1771- function resizeWindow() {
1772- var win_w = $(window).width();
1773- var ribon = $("#support-ribbon");
1774- if(win_w < 1265){
1775- if(/mobile/i.test(navigator.userAgent)){
1776- ribon.hide();
1777- }else{
1778- if(ribon.hasClass("vertical")){
1779- ribon.removeClass("vertical");
1780- ribon.addClass("horizontal");
1781- }
1782- ribon.css({"left":'50%', "margin-left": '-'+(ribon.width() / 2)+'px'});
1783- }
1784- }else{
1785- if(ribon.hasClass("horizontal")){
1786- ribon.addClass("vertical");
1787- ribon.removeClass("horizontal");
1788- ribon.removeAttr("style");
1789- }
1790-
1791- }
1792- }
1793-});
1794\ No newline at end of file
1795
1796=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/phone-small.png'
1797Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/phone-small.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/phone-small.png 1970-01-01 00:00:00 +0000 differ
1798=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/phone.png'
1799Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/phone.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/phone.png 1970-01-01 00:00:00 +0000 differ
1800=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/shield.png'
1801Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/shield.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/shield.png 1970-01-01 00:00:00 +0000 differ
1802=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/sidebar.js'
1803--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/sidebar.js 2011-10-25 10:51:19 +0000
1804+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/sidebar.js 1970-01-01 00:00:00 +0000
1805@@ -1,151 +0,0 @@
1806-/*
1807- * sidebar.js
1808- * ~~~~~~~~~~
1809- *
1810- * This script makes the Sphinx sidebar collapsible.
1811- *
1812- * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds
1813- * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton
1814- * used to collapse and expand the sidebar.
1815- *
1816- * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden
1817- * and the width of the sidebar and the margin-left of the document
1818- * are decreased. When the sidebar is expanded the opposite happens.
1819- * This script saves a per-browser/per-session cookie used to
1820- * remember the position of the sidebar among the pages.
1821- * Once the browser is closed the cookie is deleted and the position
1822- * reset to the default (expanded).
1823- *
1824- * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
1825- * :license: BSD, see LICENSE for details.
1826- *
1827- */
1828-
1829-$(function() {
1830- // global elements used by the functions.
1831- // the 'sidebarbutton' element is defined as global after its
1832- // creation, in the add_sidebar_button function
1833- var bodywrapper = $('.bodywrapper');
1834- var sidebar = $('.sphinxsidebar');
1835- var sidebarwrapper = $('.sphinxsidebarwrapper');
1836-
1837- // for some reason, the document has no sidebar; do not run into errors
1838- if (!sidebar.length) return;
1839-
1840- // original margin-left of the bodywrapper and width of the sidebar
1841- // with the sidebar expanded
1842- var bw_margin_expanded = bodywrapper.css('margin-left');
1843- var ssb_width_expanded = sidebar.width();
1844-
1845- // margin-left of the bodywrapper and width of the sidebar
1846- // with the sidebar collapsed
1847- var bw_margin_collapsed = '.8em';
1848- var ssb_width_collapsed = '.8em';
1849-
1850- // colors used by the current theme
1851- var dark_color = $('.related').css('background-color');
1852- var light_color = $('.document').css('background-color');
1853-
1854- function sidebar_is_collapsed() {
1855- return sidebarwrapper.is(':not(:visible)');
1856- }
1857-
1858- function toggle_sidebar() {
1859- if (sidebar_is_collapsed())
1860- expand_sidebar();
1861- else
1862- collapse_sidebar();
1863- }
1864-
1865- function collapse_sidebar() {
1866- sidebarwrapper.hide();
1867- sidebar.css('width', ssb_width_collapsed);
1868- bodywrapper.css('margin-left', bw_margin_collapsed);
1869- sidebarbutton.css({
1870- 'margin-left': '0',
1871- 'height': bodywrapper.height()
1872- });
1873- sidebarbutton.find('span').text('»');
1874- sidebarbutton.attr('title', _('Expand sidebar'));
1875- document.cookie = 'sidebar=collapsed';
1876- }
1877-
1878- function expand_sidebar() {
1879- bodywrapper.css('margin-left', bw_margin_expanded);
1880- sidebar.css('width', ssb_width_expanded);
1881- sidebarwrapper.show();
1882- sidebarbutton.css({
1883- 'margin-left': ssb_width_expanded-12,
1884- 'height': bodywrapper.height()
1885- });
1886- sidebarbutton.find('span').text('«');
1887- sidebarbutton.attr('title', _('Collapse sidebar'));
1888- document.cookie = 'sidebar=expanded';
1889- }
1890-
1891- function add_sidebar_button() {
1892- sidebarwrapper.css({
1893- 'float': 'left',
1894- 'margin-right': '0',
1895- 'width': ssb_width_expanded - 28
1896- });
1897- // create the button
1898- sidebar.append(
1899- '<div id="sidebarbutton"><span>&laquo;</span></div>'
1900- );
1901- var sidebarbutton = $('#sidebarbutton');
1902- light_color = sidebarbutton.css('background-color');
1903- // find the height of the viewport to center the '<<' in the page
1904- var viewport_height;
1905- if (window.innerHeight)
1906- viewport_height = window.innerHeight;
1907- else
1908- viewport_height = $(window).height();
1909- sidebarbutton.find('span').css({
1910- 'display': 'block',
1911- 'margin-top': (viewport_height - sidebar.position().top - 20) / 2
1912- });
1913-
1914- sidebarbutton.click(toggle_sidebar);
1915- sidebarbutton.attr('title', _('Collapse sidebar'));
1916- sidebarbutton.css({
1917- 'color': '#FFFFFF',
1918- 'border-left': '1px solid ' + dark_color,
1919- 'font-size': '1.2em',
1920- 'cursor': 'pointer',
1921- 'height': bodywrapper.height(),
1922- 'padding-top': '1px',
1923- 'margin-left': ssb_width_expanded - 12
1924- });
1925-
1926- sidebarbutton.hover(
1927- function () {
1928- $(this).css('background-color', dark_color);
1929- },
1930- function () {
1931- $(this).css('background-color', light_color);
1932- }
1933- );
1934- }
1935-
1936- function set_position_from_cookie() {
1937- if (!document.cookie)
1938- return;
1939- var items = document.cookie.split(';');
1940- for(var k=0; k<items.length; k++) {
1941- var key_val = items[k].split('=');
1942- var key = key_val[0];
1943- if (key == 'sidebar') {
1944- var value = key_val[1];
1945- if ((value == 'collapsed') && (!sidebar_is_collapsed()))
1946- collapse_sidebar();
1947- else if ((value == 'expanded') && (sidebar_is_collapsed()))
1948- expand_sidebar();
1949- }
1950- }
1951- }
1952-
1953- add_sidebar_button();
1954- var sidebarbutton = $('#sidebarbutton');
1955- set_position_from_cookie();
1956-});
1957
1958=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/software-download.png'
1959Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/software-download.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/software-download.png 1970-01-01 00:00:00 +0000 differ
1960=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/software-latest.png'
1961Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/software-latest.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/software-latest.png 1970-01-01 00:00:00 +0000 differ
1962=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/support-small.png'
1963Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/support-small.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/support-small.png 1970-01-01 00:00:00 +0000 differ
1964=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-bg.png'
1965Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-bg.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-bg.png 1970-01-01 00:00:00 +0000 differ
1966=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-footer.png'
1967Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-footer.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-footer.png 1970-01-01 00:00:00 +0000 differ
1968=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-l.png'
1969Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-l.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-l.png 1970-01-01 00:00:00 +0000 differ
1970=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-r.png'
1971Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-r.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-r.png 1970-01-01 00:00:00 +0000 differ
1972=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-search.png'
1973Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-search.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-dropdown-header-search.png 1970-01-01 00:00:00 +0000 differ
1974=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-footer-logo.png'
1975Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-footer-logo.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-footer-logo.png 1970-01-01 00:00:00 +0000 differ
1976=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-leftnavi-sel.png'
1977Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-leftnavi-sel.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-leftnavi-sel.png 1970-01-01 00:00:00 +0000 differ
1978=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-logo.png'
1979Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-logo.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-logo.png 1970-01-01 00:00:00 +0000 differ
1980=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-hover-l.png'
1981Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-hover-l.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-hover-l.png 1970-01-01 00:00:00 +0000 differ
1982=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-hover-r.png'
1983Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-hover-r.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-hover-r.png 1970-01-01 00:00:00 +0000 differ
1984=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-l.png'
1985Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-l.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-l.png 1970-01-01 00:00:00 +0000 differ
1986=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-r.png'
1987Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-r.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-r.png 1970-01-01 00:00:00 +0000 differ
1988=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-sel-l.png'
1989Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-sel-l.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-sel-l.png 1970-01-01 00:00:00 +0000 differ
1990=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-sel-r.png'
1991Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-sel-r.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-navi-sel-r.png 1970-01-01 00:00:00 +0000 differ
1992=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-orange-content.png'
1993Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-orange-content.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-orange-content.png 1970-01-01 00:00:00 +0000 differ
1994=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-orange-front.png'
1995Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-orange-front.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-orange-front.png 1970-01-01 00:00:00 +0000 differ
1996=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-search.png'
1997Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-search.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-search.png 1970-01-01 00:00:00 +0000 differ
1998=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-tab-bg.png'
1999Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-tab-bg.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/ui-tab-bg.png 1970-01-01 00:00:00 +0000 differ
2000=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/warning.png'
2001Binary files Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/warning.png 2011-10-25 10:51:19 +0000 and Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/static/warning.png 1970-01-01 00:00:00 +0000 differ
2002=== removed file 'Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/theme.conf'
2003--- Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/theme.conf 2011-10-25 10:51:19 +0000
2004+++ Percona-Server/plugin/percona-pam-for-mysql/doc/source/percona-theme/theme.conf 1970-01-01 00:00:00 +0000
2005@@ -1,32 +0,0 @@
2006-[theme]
2007-inherit = default
2008-stylesheet = default.css
2009-pygments_style = sphinx
2010-
2011-[options]
2012-rightsidebar = false
2013-stickysidebar = false
2014-collapsiblesidebar = false
2015-externalrefs = false
2016-
2017-footerbgcolor = #11303d
2018-footertextcolor = #ffffff
2019-sidebarbgcolor = #1c4e63
2020-sidebarbtncolor = #3c6e83
2021-sidebartextcolor = #ffffff
2022-sidebarlinkcolor = #98dbcc
2023-relbarbgcolor = #133f52
2024-relbartextcolor = #ffffff
2025-relbarlinkcolor = #ffffff
2026-bgcolor = #ffffff
2027-textcolor = #000000
2028-headbgcolor = #f2f2f2
2029-headtextcolor = #20435c
2030-headlinkcolor = #c60f0f
2031-linkcolor = #355f7c
2032-visitedlinkcolor = #355f7c
2033-codebgcolor = #eeffcc
2034-codetextcolor = #333333
2035-
2036-bodyfont = sans-serif
2037-headfont = 'Arial', 'Helvetica' sans-serif
2038
2039=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/src/Makefile.am'
2040--- Percona-Server/plugin/percona-pam-for-mysql/src/Makefile.am 2012-02-13 06:19:11 +0000
2041+++ Percona-Server/plugin/percona-pam-for-mysql/src/Makefile.am 2013-06-14 07:42:31 +0000
2042@@ -1,4 +1,4 @@
2043-# (C) 2011 Percona Inc.
2044+# (C) 2011-2013 Percona Ireland Ltd.
2045 #
2046 # This program is free software; you can redistribute it and/or modify
2047 # it under the terms of the GNU General Public License as published by
2048@@ -20,11 +20,14 @@
2049 plugin_CPPFLAGS = -DMYSQL_DYNAMIC_PLUGIN
2050 plugin_LDFLAGS = -module -avoid-version -shared
2051
2052-auth_pam_la_SOURCES = auth_pam_common.c auth_pam.c lib_auth_pam_client.h lib_auth_pam_client.c auth_mapping.c
2053+auth_pam_la_SOURCES = auth_pam_common.c auth_pam.c lib_auth_pam_client.h \
2054+ lib_auth_pam_client.c auth_mapping.c groups.c
2055 auth_pam_la_CPPFLAGS = $(plugin_CPPFLAGS)
2056 auth_pam_la_LDFLAGS = $(plugin_LDFLAGS) $(AUTH_PAM_LIBS)
2057
2058-auth_pam_compat_la_SOURCES = auth_pam_common.c auth_pam_compat.c lib_auth_pam_client.h lib_auth_pam_client.c auth_mapping.c
2059+auth_pam_compat_la_SOURCES = auth_pam_common.c auth_pam_compat.c \
2060+ lib_auth_pam_client.h lib_auth_pam_client.c \
2061+ auth_mapping.c groups.c
2062 auth_pam_compat_la_CPPFLAGS = $(plugin_CPPFLAGS)
2063 auth_pam_compat_la_LDFLAGS = $(plugin_LDFLAGS) $(AUTH_PAM_LIBS)
2064
2065
2066=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.c'
2067--- Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.c 2012-02-09 16:25:22 +0000
2068+++ Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.c 2013-06-14 07:42:31 +0000
2069@@ -1,5 +1,5 @@
2070 /*
2071-(C) 2012 Percona Inc.
2072+(C) 2012, 2013 Percona Ireland Ltd.
2073
2074 This program is free software; you can redistribute it and/or modify
2075 it under the terms of the GNU General Public License as published by
2076@@ -16,26 +16,20 @@
2077 */
2078
2079 #include "auth_mapping.h"
2080-#include <pwd.h>
2081-#include <grp.h>
2082+#include "groups.h"
2083 #include <string.h>
2084 #include <stdlib.h>
2085 #include <ctype.h>
2086
2087 #define MIN(X,Y) ((X) < (Y) ? (X) : (Y))
2088
2089-/** The maximum length of buffer for storing NSS record. NSS will store in
2090- buffer the whole result of lookup request including user name,
2091- gecos, etc. */
2092-enum { max_nss_name_len = 10240 };
2093-
2094 /** Token representation:
2095 token type, string repr, length of token */
2096 struct token
2097 {
2098 enum { tok_id, tok_comma, tok_eq, tok_eof } token_type;
2099 const char *token;
2100- int token_len;
2101+ size_t token_len;
2102 };
2103
2104 /** Iterator in key-value mapping:
2105@@ -44,49 +38,12 @@
2106 current position in string */
2107 struct mapping_iter {
2108 const char *key;
2109- int key_len;
2110+ size_t key_len;
2111 const char *value;
2112- int value_len;
2113+ size_t value_len;
2114 const char *ptr;
2115 };
2116
2117-
2118-/** Lookup NSS database for group name by specified user name.
2119- On sucess user_group returned, otherwise NULL */
2120-char *lookup_user_group (const char *user_name,
2121- char *user_group, int user_group_len)
2122-{
2123- struct passwd pwd, *pwd_result;
2124- struct group grp, *grp_result;
2125- char *buf;
2126- int error;
2127-
2128- buf= malloc(max_nss_name_len);
2129- if (buf == NULL)
2130- return NULL;
2131-
2132- error= getpwnam_r(user_name, &pwd, buf, max_nss_name_len, &pwd_result);
2133- if (error != 0 || pwd_result == NULL)
2134- {
2135- free(buf);
2136- return NULL;
2137- }
2138-
2139- error= getgrgid_r(pwd_result->pw_gid,
2140- &grp, buf, max_nss_name_len, &grp_result);
2141- if (error != 0 || grp_result == NULL)
2142- {
2143- free(buf);
2144- return NULL;
2145- }
2146-
2147- strncpy(user_group, grp_result->gr_name, user_group_len);
2148- user_group[user_group_len]= '\0';
2149- free(buf);
2150-
2151- return user_group;
2152-}
2153-
2154 /** Get next token from buf. Returns new buf position. */
2155 static const char *get_token(struct token *token,
2156 const char *buf)
2157@@ -147,7 +104,7 @@
2158 otherwise NULL */
2159 const char *mapping_iter_next(struct mapping_iter *it)
2160 {
2161- struct token token[4];
2162+ struct token token[4]= {{0, 0, 0}};
2163
2164 /* read next 4 tokens */
2165 it->ptr= get_token(token + 3,
2166@@ -182,35 +139,70 @@
2167 free(it);
2168 }
2169
2170-/** Get value by given key. On success value_buf returned,
2171- otherwise NULL */
2172-char *mapping_get_value(const char *key, char *value_buf, int value_buf_len,
2173- const char *mapping_string)
2174+/** Get mapped value for given user name.
2175+ Value is looked up by using all user groups as a key.
2176+ Auth string is iterated only once, while groups are iterated
2177+ for every key-value pair. This is mean than auth string order
2178+ is dominant.
2179+
2180+ Example:
2181+
2182+ given:
2183+ user "foo" is the member of "wheel", "staff" and "bar".
2184+ auth string is "mysql, root=user1, bar=user2, staff=user3"
2185+
2186+ result is "user2".
2187+
2188+ On success value_buf returned, otherwise NULL */
2189+char *mapping_lookup_user(const char *user_name,
2190+ char *value_buf, size_t value_buf_len,
2191+ const char *mapping_string)
2192 {
2193- struct mapping_iter *it= mapping_iter_new(mapping_string);
2194- int key_len= strlen(key);
2195+ /* Iterate through the key-value list stored in auth_string and
2196+ find key (which is interpreted as group name) in the list of groups
2197+ for specified user. If match is found, store appropriate value in
2198+ the authenticated_as field. */
2199+ struct groups_iter *group_it;
2200+ struct mapping_iter *keyval_it;
2201+ const char *key;
2202+ const char *group;
2203
2204- if (it == NULL)
2205+ keyval_it= mapping_iter_new(mapping_string);
2206+ if (keyval_it == NULL)
2207 return NULL;
2208
2209- while (mapping_iter_next(it))
2210+ group_it= groups_iter_new(user_name);
2211+ if (group_it == NULL)
2212 {
2213- if (key_len == it->key_len && strncmp(key, it->key, key_len) == 0)
2214- {
2215- memcpy(value_buf, it->value, MIN(value_buf_len, it->value_len));
2216- value_buf[MIN(value_buf_len, it->value_len)]= '\0';
2217- mapping_iter_free(it);
2218- return value_buf;
2219+ mapping_iter_free(keyval_it);
2220+ return NULL;
2221+ }
2222+
2223+ while ((key= mapping_iter_next(keyval_it)) != NULL) {
2224+ while ((group= groups_iter_next(group_it)) != NULL) {
2225+ if (keyval_it->key_len == strlen(group) &&
2226+ strncmp(key, group, keyval_it->key_len) == 0) {
2227+ /* match is found */
2228+ memcpy(value_buf, keyval_it->value,
2229+ MIN(value_buf_len, keyval_it->value_len));
2230+ value_buf[MIN(value_buf_len, keyval_it->value_len)]= '\0';
2231+ groups_iter_free(group_it);
2232+ mapping_iter_free(keyval_it);
2233+ return value_buf;
2234+ }
2235 }
2236+ groups_iter_reset(group_it);
2237 }
2238- mapping_iter_free(it);
2239+
2240+ groups_iter_free(group_it);
2241+ mapping_iter_free(keyval_it);
2242
2243 return NULL;
2244 }
2245
2246 /** Get key in current iterator pos. On success buf returned,
2247 otherwise NULL */
2248-char *mapping_iter_get_key(struct mapping_iter *it, char *buf, int buf_len)
2249+char *mapping_iter_get_key(struct mapping_iter *it, char *buf, size_t buf_len)
2250 {
2251 if (it->key == NULL)
2252 return NULL;
2253@@ -221,7 +213,7 @@
2254
2255 /** Get value in current iterator pos. On success buf returned,
2256 otherwise NULL */
2257-char *mapping_iter_get_value(struct mapping_iter *it, char *buf, int buf_len)
2258+char *mapping_iter_get_value(struct mapping_iter *it, char *buf, size_t buf_len)
2259 {
2260 if (it->value == NULL)
2261 return NULL;
2262@@ -232,7 +224,7 @@
2263
2264 /** Get value by key. On success pointer to service_name
2265 returned, otherwise NULL */
2266-char *mapping_get_service_name(char *buf, int buf_len,
2267+char *mapping_get_service_name(char *buf, size_t buf_len,
2268 const char *mapping_string)
2269 {
2270 struct token token;
2271
2272=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.h'
2273--- Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.h 2012-02-13 06:19:11 +0000
2274+++ Percona-Server/plugin/percona-pam-for-mysql/src/auth_mapping.h 2013-06-14 07:42:31 +0000
2275@@ -1,7 +1,7 @@
2276 #ifndef AUTH_MAPPING_INCLUDED
2277 #define AUTH_MAPPING_INCLUDED
2278 /*
2279- (C) 2012 Percona Inc.
2280+ (C) 2012, 2013 Percona Ireland Ltd.
2281
2282 This program is free software; you can redistribute it and/or modify
2283 it under the terms of the GNU General Public License as published by
2284@@ -24,6 +24,8 @@
2285
2286 */
2287
2288+#include <stdlib.h>
2289+
2290 #ifdef __cplusplus
2291 extern "C" {
2292 #endif
2293@@ -31,11 +33,6 @@
2294 /** Mapping iterator. It's not exposed outsude */
2295 struct mapping_iter;
2296
2297-/** Lookup NSS database for group name by specified user name.
2298- On sucess user_group returned, otherwise NULL */
2299-char *lookup_user_group (const char *user_name,
2300- char *user_group, int user_group_len);
2301-
2302 /** Create iterator through mapping string.
2303 Initially iterator set to position before first
2304 key-value pair. On success non-NULL pointer returned, otherwise NULL */
2305@@ -51,20 +48,20 @@
2306
2307 /** Get key at current iterator position. On success buf returned,
2308 otherwise NULL */
2309-char *mapping_iter_get_key(struct mapping_iter *it, char *buf, int buf_len);
2310+char *mapping_iter_get_key(struct mapping_iter *it, char *buf, size_t buf_len);
2311
2312 /** Get value at current iterator position. On success buf returned,
2313 otherwise NULL */
2314-char *mapping_iter_get_value(struct mapping_iter *it, char *buf, int buf_len);
2315+char *mapping_iter_get_value(struct mapping_iter *it, char *buf, size_t buf_len);
2316
2317 /** Get value by given key. On success value_buf returned,
2318 otherwise NULL */
2319-char *mapping_get_value(const char *key, char *value_buf, int value_buf_len,
2320+char *mapping_lookup_user(const char *key, char *value_buf, size_t value_buf_len,
2321 const char *mapping_string);
2322
2323 /** Get service name for auth_string. On success buf returned,
2324 otherwise NULL */
2325-char *mapping_get_service_name(char *buf, int buf_len,
2326+char *mapping_get_service_name(char *buf, size_t buf_len,
2327 const char *mapping_string);
2328
2329 #ifdef __cplusplus
2330
2331=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam.c'
2332--- Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam.c 2012-02-13 06:19:11 +0000
2333+++ Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam.c 2013-06-14 07:42:31 +0000
2334@@ -1,5 +1,5 @@
2335 /*
2336-(C) 2012 Percona Inc.
2337+(C) 2012, 2013 Percona Ireland Ltd.
2338
2339 This program is free software; you can redistribute it and/or modify
2340 it under the terms of the GNU General Public License as published by
2341@@ -54,6 +54,7 @@
2342 #include "config.h"
2343 #endif
2344
2345+#include <string.h>
2346 #include "auth_pam_common.h"
2347
2348 /** The maximum length of buffered PAM messages, i.e. any messages up to the
2349
2350=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.c'
2351--- Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.c 2012-02-13 06:19:11 +0000
2352+++ Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.c 2013-06-14 07:42:31 +0000
2353@@ -1,5 +1,5 @@
2354 /*
2355-(C) 2011 Percona Inc.
2356+(C) 2011-2013 Percona Ireland Ltd.
2357
2358 This program is free software; you can redistribute it and/or modify
2359 it under the terms of the GNU General Public License as published by
2360@@ -19,8 +19,10 @@
2361 #include "config.h"
2362 #endif
2363
2364+#include <string.h>
2365 #include "auth_pam_common.h"
2366 #include "auth_mapping.h"
2367+#include "groups.h"
2368
2369 /* The server plugin */
2370
2371@@ -110,7 +112,6 @@
2372 struct pam_conv conv_func_info= { &vio_server_conv, &data };
2373 int error;
2374 char *pam_mapped_user_name;
2375- char user_group[MYSQL_USERNAME_LENGTH];
2376 char service_name[max_pam_service_name_len];
2377
2378 /* Set service name as specified in auth_string. If no auth_string
2379@@ -173,13 +174,10 @@
2380 info->authenticated_as[MYSQL_USERNAME_LENGTH]= '\0';
2381 }
2382
2383- /* If auth_string specified, then lookup user group,
2384- get mapped MySQL user name and use it as CURRENT_USER() value */
2385- if (info->auth_string &&
2386- lookup_user_group(pam_mapped_user_name, user_group, sizeof(user_group)))
2387+ if (info->auth_string)
2388 {
2389- mapping_get_value(user_group, info->authenticated_as,
2390- MYSQL_USERNAME_LENGTH, info->auth_string);
2391+ mapping_lookup_user(pam_mapped_user_name, info->authenticated_as,
2392+ MYSQL_USERNAME_LENGTH, info->auth_string);
2393 }
2394
2395 error= pam_end(pam_handle, error);
2396
2397=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.h'
2398--- Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.h 2012-02-13 06:19:11 +0000
2399+++ Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_common.h 2013-06-14 07:42:31 +0000
2400@@ -31,7 +31,11 @@
2401
2402 #include <security/pam_appl.h>
2403 #include <security/pam_modules.h>
2404+#if HAVE_SECURITY_PAM_MISC_H
2405 #include <security/pam_misc.h>
2406+#elif HAVE_SECURITY_OPENPAM_H
2407+#include <security/openpam.h>
2408+#endif
2409
2410 #include <mysql/plugin.h>
2411 #include <mysql/plugin_auth.h>
2412
2413=== modified file 'Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_compat.c'
2414--- Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_compat.c 2012-02-13 06:19:11 +0000
2415+++ Percona-Server/plugin/percona-pam-for-mysql/src/auth_pam_compat.c 2013-06-14 07:42:31 +0000
2416@@ -1,5 +1,5 @@
2417 /*
2418-(C) 2012 Percona Inc.
2419+(C) 2012, 2013 Percona Ireland Ltd.
2420
2421 This program is free software; you can redistribute it and/or modify
2422 it under the terms of the GNU General Public License as published by
2423@@ -52,6 +52,7 @@
2424 #include "config.h"
2425 #endif
2426
2427+#include <string.h>
2428 #include "auth_pam_common.h"
2429
2430 int auth_pam_client_talk_init(void **talk_data)
2431
2432=== added file 'Percona-Server/plugin/percona-pam-for-mysql/src/groups.c'
2433--- Percona-Server/plugin/percona-pam-for-mysql/src/groups.c 1970-01-01 00:00:00 +0000
2434+++ Percona-Server/plugin/percona-pam-for-mysql/src/groups.c 2013-06-14 07:42:31 +0000
2435@@ -0,0 +1,98 @@
2436+/*
2437+(C) 2013 Percona Ireland Ltd.
2438+
2439+This program is free software; you can redistribute it and/or modify
2440+it under the terms of the GNU General Public License as published by
2441+the Free Software Foundation; version 2 of the License.
2442+
2443+This program is distributed in the hope that it will be useful,
2444+but WITHOUT ANY WARRANTY; without even the implied warranty of
2445+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2446+GNU General Public License for more details.
2447+
2448+You should have received a copy of the GNU General Public License
2449+along with this program; if not, write to the Free Software
2450+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2451+*/
2452+
2453+#include <pwd.h>
2454+#include <grp.h>
2455+#include <string.h>
2456+#include <stdlib.h>
2457+#include <unistd.h>
2458+
2459+enum { max_nss_name_len = 10240 };
2460+enum { max_number_of_groups = 1024 };
2461+
2462+/** Groups iterator. It's not exposed outsude */
2463+struct groups_iter {
2464+ char buf[max_nss_name_len];
2465+ gid_t groups[max_number_of_groups];
2466+ int current_group;
2467+ int ngroups;
2468+};
2469+
2470+/** Create iterator through user groups.
2471+ Initially iterator set to position before first
2472+ group. On success non-NULL pointer returned, otherwise NULL */
2473+struct groups_iter *groups_iter_new(const char *user_name)
2474+{
2475+ struct passwd pwd, *pwd_result;
2476+ int error;
2477+ struct groups_iter *it;
2478+
2479+ it= calloc(1, sizeof(struct groups_iter));
2480+ if (it == NULL)
2481+ return NULL;
2482+
2483+ error= getpwnam_r(user_name, &pwd, it->buf, max_nss_name_len, &pwd_result);
2484+ if (error != 0 || pwd_result == NULL)
2485+ {
2486+ free(it);
2487+ return NULL;
2488+ }
2489+
2490+ it->ngroups= max_number_of_groups;
2491+ error= getgrouplist(user_name, pwd_result->pw_gid, it->groups, &it->ngroups);
2492+ if (error == -1)
2493+ {
2494+ free(it);
2495+ return NULL;
2496+ }
2497+
2498+ return it;
2499+}
2500+
2501+/** Move iterator to next group.
2502+ On success group name is returned,
2503+ otherwise NULL */
2504+const char *groups_iter_next(struct groups_iter *it)
2505+{
2506+ struct group grp, *grp_result;
2507+ int error;
2508+
2509+ if (it->current_group >= it->ngroups)
2510+ return NULL;
2511+
2512+ error= getgrgid_r(it->groups[it->current_group++],
2513+ &grp, it->buf, max_nss_name_len, &grp_result);
2514+ if (error != 0 || grp_result == NULL)
2515+ {
2516+ return NULL;
2517+ }
2518+
2519+ return grp_result->gr_name;
2520+}
2521+
2522+/** Make iterator to point to beginning again */
2523+void groups_iter_reset(struct groups_iter *it)
2524+{
2525+ it->current_group= 0;
2526+}
2527+
2528+/** Finish iteration and release iterator */
2529+void groups_iter_free(struct groups_iter *it)
2530+{
2531+ free(it);
2532+}
2533+
2534
2535=== added file 'Percona-Server/plugin/percona-pam-for-mysql/src/groups.h'
2536--- Percona-Server/plugin/percona-pam-for-mysql/src/groups.h 1970-01-01 00:00:00 +0000
2537+++ Percona-Server/plugin/percona-pam-for-mysql/src/groups.h 2013-06-14 07:42:31 +0000
2538@@ -0,0 +1,53 @@
2539+#ifndef AUTH_PAM_GROUPS_INCLUDED
2540+#define AUTH_PAM_GROUPS_INCLUDED
2541+/*
2542+ (C) 2013 Percona Ireland Ltd.
2543+
2544+ This program is free software; you can redistribute it and/or modify
2545+ it under the terms of the GNU General Public License as published by
2546+ the Free Software Foundation; version 2 of the License.
2547+
2548+ This program is distributed in the hope that it will be useful,
2549+ but WITHOUT ANY WARRANTY; without even the implied warranty of
2550+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
2551+ GNU General Public License for more details.
2552+
2553+ You should have received a copy of the GNU General Public License
2554+ along with this program; if not, write to the Free Software
2555+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
2556+*/
2557+
2558+/**
2559+ @file
2560+
2561+ PAM authentication for MySQL, interface for groups enumeration.
2562+
2563+*/
2564+
2565+#ifdef __cplusplus
2566+extern "C" {
2567+#endif
2568+
2569+struct groups_iter;
2570+
2571+/** Create iterator through user groups.
2572+ Initially iterator set to position before first
2573+ group. On success non-NULL pointer returned, otherwise NULL */
2574+struct groups_iter *groups_iter_new(const char *user_name);
2575+
2576+/** Move iterator to next group.
2577+ On success group name is returned,
2578+ otherwise NULL */
2579+const char *groups_iter_next(struct groups_iter *it);
2580+
2581+/** Make iterator to point to beginning again */
2582+void groups_iter_reset(struct groups_iter *it);
2583+
2584+/** Finish iteration and release iterator */
2585+void groups_iter_free(struct groups_iter *it);
2586+
2587+#ifdef __cplusplus
2588+}
2589+#endif
2590+
2591+#endif

Subscribers

People subscribed via source and target branches