├── Dockerfile
├── LICENSE
├── README.md
├── app.js
├── node_modules.zip
├── pub
├── css
│ ├── jquery-ui.css
│ └── snorpy.css
├── html
│ └── index.html
├── images
│ ├── accept.png
│ ├── cancel.png
│ ├── green_plus.png
│ └── undo.png
└── js
│ ├── jquery-ui.js
│ ├── jquery.min.js
│ ├── part.js
│ ├── particles.js
│ └── snorpy.js
└── snorpy-old-py.7z
/Dockerfile:
--------------------------------------------------------------------------------
1 | FROM node:6
2 | # replace this with your application's default port
3 | EXPOSE 8080
4 | # docker build -t snorpy_app .
5 | # docker run -p 8080:8080 -it --rm --name snorpy_container snorpy_app
6 |
7 | RUN apt-get update && apt-get install p7zip-full wget
8 |
9 | RUN useradd -m --user-group -p $(echo SOMEPASSWORDHERE | openssl passwd -1 -stdin) snorpy
10 |
11 | RUN git clone https://github.com/chrisjd20/Snorpy.git /opt/snorpy
12 |
13 | RUN 7z x /opt/snorpy/node_modules.zip -o/opt/snorpy/
14 |
15 | RUN chown snorpy:snorpy /opt/snorpy -R
16 |
17 | USER snorpy
18 | WORKDIR /opt/snorpy
19 | ENTRYPOINT ["node","/opt/snorpy/app.js"]
20 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU GENERAL PUBLIC LICENSE
2 | Version 2, June 1991
3 |
4 | Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
6 | Everyone is permitted to copy and distribute verbatim copies
7 | of this license document, but changing it is not allowed.
8 |
9 | Preamble
10 |
11 | The licenses for most software are designed to take away your
12 | freedom to share and change it. By contrast, the GNU General Public
13 | License is intended to guarantee your freedom to share and change free
14 | software--to make sure the software is free for all its users. This
15 | General Public License applies to most of the Free Software
16 | Foundation's software and to any other program whose authors commit to
17 | using it. (Some other Free Software Foundation software is covered by
18 | the GNU Lesser General Public License instead.) You can apply it to
19 | your programs, too.
20 |
21 | When we speak of free software, we are referring to freedom, not
22 | price. Our General Public Licenses are designed to make sure that you
23 | have the freedom to distribute copies of free software (and charge for
24 | this service if you wish), that you receive source code or can get it
25 | if you want it, that you can change the software or use pieces of it
26 | in new free programs; and that you know you can do these things.
27 |
28 | To protect your rights, we need to make restrictions that forbid
29 | anyone to deny you these rights or to ask you to surrender the rights.
30 | These restrictions translate to certain responsibilities for you if you
31 | distribute copies of the software, or if you modify it.
32 |
33 | For example, if you distribute copies of such a program, whether
34 | gratis or for a fee, you must give the recipients all the rights that
35 | you have. You must make sure that they, too, receive or can get the
36 | source code. And you must show them these terms so they know their
37 | rights.
38 |
39 | We protect your rights with two steps: (1) copyright the software, and
40 | (2) offer you this license which gives you legal permission to copy,
41 | distribute and/or modify the software.
42 |
43 | Also, for each author's protection and ours, we want to make certain
44 | that everyone understands that there is no warranty for this free
45 | software. If the software is modified by someone else and passed on, we
46 | want its recipients to know that what they have is not the original, so
47 | that any problems introduced by others will not reflect on the original
48 | authors' reputations.
49 |
50 | Finally, any free program is threatened constantly by software
51 | patents. We wish to avoid the danger that redistributors of a free
52 | program will individually obtain patent licenses, in effect making the
53 | program proprietary. To prevent this, we have made it clear that any
54 | patent must be licensed for everyone's free use or not licensed at all.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | GNU GENERAL PUBLIC LICENSE
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
61 |
62 | 0. This License applies to any program or other work which contains
63 | a notice placed by the copyright holder saying it may be distributed
64 | under the terms of this General Public License. The "Program", below,
65 | refers to any such program or work, and a "work based on the Program"
66 | means either the Program or any derivative work under copyright law:
67 | that is to say, a work containing the Program or a portion of it,
68 | either verbatim or with modifications and/or translated into another
69 | language. (Hereinafter, translation is included without limitation in
70 | the term "modification".) Each licensee is addressed as "you".
71 |
72 | Activities other than copying, distribution and modification are not
73 | covered by this License; they are outside its scope. The act of
74 | running the Program is not restricted, and the output from the Program
75 | is covered only if its contents constitute a work based on the
76 | Program (independent of having been made by running the Program).
77 | Whether that is true depends on what the Program does.
78 |
79 | 1. You may copy and distribute verbatim copies of the Program's
80 | source code as you receive it, in any medium, provided that you
81 | conspicuously and appropriately publish on each copy an appropriate
82 | copyright notice and disclaimer of warranty; keep intact all the
83 | notices that refer to this License and to the absence of any warranty;
84 | and give any other recipients of the Program a copy of this License
85 | along with the Program.
86 |
87 | You may charge a fee for the physical act of transferring a copy, and
88 | you may at your option offer warranty protection in exchange for a fee.
89 |
90 | 2. You may modify your copy or copies of the Program or any portion
91 | of it, thus forming a work based on the Program, and copy and
92 | distribute such modifications or work under the terms of Section 1
93 | above, provided that you also meet all of these conditions:
94 |
95 | a) You must cause the modified files to carry prominent notices
96 | stating that you changed the files and the date of any change.
97 |
98 | b) You must cause any work that you distribute or publish, that in
99 | whole or in part contains or is derived from the Program or any
100 | part thereof, to be licensed as a whole at no charge to all third
101 | parties under the terms of this License.
102 |
103 | c) If the modified program normally reads commands interactively
104 | when run, you must cause it, when started running for such
105 | interactive use in the most ordinary way, to print or display an
106 | announcement including an appropriate copyright notice and a
107 | notice that there is no warranty (or else, saying that you provide
108 | a warranty) and that users may redistribute the program under
109 | these conditions, and telling the user how to view a copy of this
110 | License. (Exception: if the Program itself is interactive but
111 | does not normally print such an announcement, your work based on
112 | the Program is not required to print an announcement.)
113 |
114 | These requirements apply to the modified work as a whole. If
115 | identifiable sections of that work are not derived from the Program,
116 | and can be reasonably considered independent and separate works in
117 | themselves, then this License, and its terms, do not apply to those
118 | sections when you distribute them as separate works. But when you
119 | distribute the same sections as part of a whole which is a work based
120 | on the Program, the distribution of the whole must be on the terms of
121 | this License, whose permissions for other licensees extend to the
122 | entire whole, and thus to each and every part regardless of who wrote it.
123 |
124 | Thus, it is not the intent of this section to claim rights or contest
125 | your rights to work written entirely by you; rather, the intent is to
126 | exercise the right to control the distribution of derivative or
127 | collective works based on the Program.
128 |
129 | In addition, mere aggregation of another work not based on the Program
130 | with the Program (or with a work based on the Program) on a volume of
131 | a storage or distribution medium does not bring the other work under
132 | the scope of this License.
133 |
134 | 3. You may copy and distribute the Program (or a work based on it,
135 | under Section 2) in object code or executable form under the terms of
136 | Sections 1 and 2 above provided that you also do one of the following:
137 |
138 | a) Accompany it with the complete corresponding machine-readable
139 | source code, which must be distributed under the terms of Sections
140 | 1 and 2 above on a medium customarily used for software interchange; or,
141 |
142 | b) Accompany it with a written offer, valid for at least three
143 | years, to give any third party, for a charge no more than your
144 | cost of physically performing source distribution, a complete
145 | machine-readable copy of the corresponding source code, to be
146 | distributed under the terms of Sections 1 and 2 above on a medium
147 | customarily used for software interchange; or,
148 |
149 | c) Accompany it with the information you received as to the offer
150 | to distribute corresponding source code. (This alternative is
151 | allowed only for noncommercial distribution and only if you
152 | received the program in object code or executable form with such
153 | an offer, in accord with Subsection b above.)
154 |
155 | The source code for a work means the preferred form of the work for
156 | making modifications to it. For an executable work, complete source
157 | code means all the source code for all modules it contains, plus any
158 | associated interface definition files, plus the scripts used to
159 | control compilation and installation of the executable. However, as a
160 | special exception, the source code distributed need not include
161 | anything that is normally distributed (in either source or binary
162 | form) with the major components (compiler, kernel, and so on) of the
163 | operating system on which the executable runs, unless that component
164 | itself accompanies the executable.
165 |
166 | If distribution of executable or object code is made by offering
167 | access to copy from a designated place, then offering equivalent
168 | access to copy the source code from the same place counts as
169 | distribution of the source code, even though third parties are not
170 | compelled to copy the source along with the object code.
171 |
172 | 4. You may not copy, modify, sublicense, or distribute the Program
173 | except as expressly provided under this License. Any attempt
174 | otherwise to copy, modify, sublicense or distribute the Program is
175 | void, and will automatically terminate your rights under this License.
176 | However, parties who have received copies, or rights, from you under
177 | this License will not have their licenses terminated so long as such
178 | parties remain in full compliance.
179 |
180 | 5. You are not required to accept this License, since you have not
181 | signed it. However, nothing else grants you permission to modify or
182 | distribute the Program or its derivative works. These actions are
183 | prohibited by law if you do not accept this License. Therefore, by
184 | modifying or distributing the Program (or any work based on the
185 | Program), you indicate your acceptance of this License to do so, and
186 | all its terms and conditions for copying, distributing or modifying
187 | the Program or works based on it.
188 |
189 | 6. Each time you redistribute the Program (or any work based on the
190 | Program), the recipient automatically receives a license from the
191 | original licensor to copy, distribute or modify the Program subject to
192 | these terms and conditions. You may not impose any further
193 | restrictions on the recipients' exercise of the rights granted herein.
194 | You are not responsible for enforcing compliance by third parties to
195 | this License.
196 |
197 | 7. If, as a consequence of a court judgment or allegation of patent
198 | infringement or for any other reason (not limited to patent issues),
199 | conditions are imposed on you (whether by court order, agreement or
200 | otherwise) that contradict the conditions of this License, they do not
201 | excuse you from the conditions of this License. If you cannot
202 | distribute so as to satisfy simultaneously your obligations under this
203 | License and any other pertinent obligations, then as a consequence you
204 | may not distribute the Program at all. For example, if a patent
205 | license would not permit royalty-free redistribution of the Program by
206 | all those who receive copies directly or indirectly through you, then
207 | the only way you could satisfy both it and this License would be to
208 | refrain entirely from distribution of the Program.
209 |
210 | If any portion of this section is held invalid or unenforceable under
211 | any particular circumstance, the balance of the section is intended to
212 | apply and the section as a whole is intended to apply in other
213 | circumstances.
214 |
215 | It is not the purpose of this section to induce you to infringe any
216 | patents or other property right claims or to contest validity of any
217 | such claims; this section has the sole purpose of protecting the
218 | integrity of the free software distribution system, which is
219 | implemented by public license practices. Many people have made
220 | generous contributions to the wide range of software distributed
221 | through that system in reliance on consistent application of that
222 | system; it is up to the author/donor to decide if he or she is willing
223 | to distribute software through any other system and a licensee cannot
224 | impose that choice.
225 |
226 | This section is intended to make thoroughly clear what is believed to
227 | be a consequence of the rest of this License.
228 |
229 | 8. If the distribution and/or use of the Program is restricted in
230 | certain countries either by patents or by copyrighted interfaces, the
231 | original copyright holder who places the Program under this License
232 | may add an explicit geographical distribution limitation excluding
233 | those countries, so that distribution is permitted only in or among
234 | countries not thus excluded. In such case, this License incorporates
235 | the limitation as if written in the body of this License.
236 |
237 | 9. The Free Software Foundation may publish revised and/or new versions
238 | of the General Public License from time to time. Such new versions will
239 | be similar in spirit to the present version, but may differ in detail to
240 | address new problems or concerns.
241 |
242 | Each version is given a distinguishing version number. If the Program
243 | specifies a version number of this License which applies to it and "any
244 | later version", you have the option of following the terms and conditions
245 | either of that version or of any later version published by the Free
246 | Software Foundation. If the Program does not specify a version number of
247 | this License, you may choose any version ever published by the Free Software
248 | Foundation.
249 |
250 | 10. If you wish to incorporate parts of the Program into other free
251 | programs whose distribution conditions are different, write to the author
252 | to ask for permission. For software which is copyrighted by the Free
253 | Software Foundation, write to the Free Software Foundation; we sometimes
254 | make exceptions for this. Our decision will be guided by the two goals
255 | of preserving the free status of all derivatives of our free software and
256 | of promoting the sharing and reuse of software generally.
257 |
258 | NO WARRANTY
259 |
260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
268 | REPAIR OR CORRECTION.
269 |
270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
278 | POSSIBILITY OF SUCH DAMAGES.
279 |
280 | END OF TERMS AND CONDITIONS
281 |
282 | How to Apply These Terms to Your New Programs
283 |
284 | If you develop a new program, and you want it to be of the greatest
285 | possible use to the public, the best way to achieve this is to make it
286 | free software which everyone can redistribute and change under these terms.
287 |
288 | To do so, attach the following notices to the program. It is safest
289 | to attach them to the start of each source file to most effectively
290 | convey the exclusion of warranty; and each file should have at least
291 | the "copyright" line and a pointer to where the full notice is found.
292 |
293 | {description}
294 | Copyright (C) {year} {fullname}
295 |
296 | This program is free software; you can redistribute it and/or modify
297 | it under the terms of the GNU General Public License as published by
298 | the Free Software Foundation; either version 2 of the License, or
299 | (at your option) any later version.
300 |
301 | This program is distributed in the hope that it will be useful,
302 | but WITHOUT ANY WARRANTY; without even the implied warranty of
303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
304 | GNU General Public License for more details.
305 |
306 | You should have received a copy of the GNU General Public License along
307 | with this program; if not, write to the Free Software Foundation, Inc.,
308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
309 |
310 | Also add information on how to contact you by electronic and paper mail.
311 |
312 | If the program is interactive, make it output a short notice like this
313 | when it starts in an interactive mode:
314 |
315 | Gnomovision version 69, Copyright (C) year name of author
316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
317 | This is free software, and you are welcome to redistribute it
318 | under certain conditions; type `show c' for details.
319 |
320 | The hypothetical commands `show w' and `show c' should show the appropriate
321 | parts of the General Public License. Of course, the commands you use may
322 | be called something other than `show w' and `show c'; they could even be
323 | mouse-clicks or menu items--whatever suits your program.
324 |
325 | You should also get your employer (if you work as a programmer) or your
326 | school, if any, to sign a "copyright disclaimer" for the program, if
327 | necessary. Here is a sample; alter the names:
328 |
329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program
330 | `Gnomovision' (which makes passes at compilers) written by James Hacker.
331 |
332 | {signature of Ty Coon}, 1 April 1989
333 | Ty Coon, President of Vice
334 |
335 | This General Public License does not permit incorporating your program into
336 | proprietary programs. If your program is a subroutine library, you may
337 | consider it more useful to permit linking proprietary applications with the
338 | library. If this is what you want to do, use the GNU Lesser General
339 | Public License instead of this License.
340 |
341 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Snorpy
2 | Snorpy is a simple Snort rule creator / builder / maker made originally with python but I made the most recent version with Node and jquery.
3 |
4 | This sample can be seen at Snorpy.com
5 |
6 |
7 | # Docker Installation Instructions:
8 |
9 | 1. Download and install Docker-ce
10 | 2. git clone https://github.com/chrisjd20/Snorpy.git
11 | 3. cd Snorpy
12 | 4. docker build -t snorpy_app .
13 | 5. docker run -p 8080:8080 -it --rm --name snorpy_container snorpy_app
14 |
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | var cluster = require('cluster');
2 | var fs = require('fs');
3 | var express = require('express');
4 | var app = express();
5 | var fs = require('fs');
6 | var bodyParser = require('body-parser');
7 | app.use(bodyParser.json());
8 | app.use(bodyParser.urlencoded({ extended: true }));
9 |
10 | //This next line sets the server info
11 | var logging = false;
12 | //var dbhost = 'localhost';
13 | //var dbuser = 'root';
14 | //var dbpass = 'root';
15 | var SSL = false;
16 | var httpport = 8080;
17 | var httpsport = 4433;
18 |
19 | if (SSL) {
20 | var privateKey = fs.readFileSync('./certs/cert-name.key', 'utf8');
21 | var certificate = fs.readFileSync('./certs/cert-name.crt', 'utf8');
22 | var credentials = { key: privateKey, cert: certificate };
23 | var https = require('https');
24 | var httpsServer = https.createServer(credentials, app);
25 | } else {
26 | var http = require('http');
27 | var httpServer = http.createServer(app);
28 | }
29 |
30 | // Code to run if we're in the master process
31 | if (cluster.isMaster) {
32 |
33 |
34 | // Count the machine's CPUs
35 | var cpuCount = require('os').cpus().length;
36 |
37 |
38 | // Create a worker for each CPU
39 | for (var i = 0; i < cpuCount; i += 1) {
40 | cluster.fork();
41 | }
42 |
43 |
44 | // Code to run if we're in a worker process
45 | } else {
46 | try {
47 |
48 | // --------------- Main Functions --------------- //
49 | function routeLogger(req){
50 | try {
51 | var date = new Date();
52 | var ipaddr = req.connection.remoteAddress;
53 | var fullUrl = req.protocol + '://' + req.get('host') + req.originalUrl;
54 | var line = (date + '').replace(/\(.+?\)/g,'') + ipaddr + ' ' + fullUrl.replace(/https?\:\/\/.+?\//g, '') + " " + JSON.stringify(req.body);
55 | console.log(line);
56 | return;
57 | } catch (err) {
58 | console.log(err);
59 | }
60 | }
61 |
62 | // --------------- Beginning of Routes --------------- //
63 | // Add a basic route – index page
64 | app.get(['/','index.html'], function (req, res) {
65 | routeLogger(req);
66 | res.sendFile('pub/html/index.html', {root: __dirname});
67 | });
68 |
69 | app.get(['/static.js'], function (req, res) {
70 | routeLogger(req);
71 | if (req.query.file) {
72 | var thefile = req.query.file.replace(/\.\./g,'');
73 | fs.access('./pub/' + thefile, fs.F_OK, function(err) {
74 | if (!err) {
75 | res.sendFile('pub/'+thefile, {root: __dirname});
76 | } else {
77 | res.send('404 not found');
78 | }
79 | });
80 | } else {
81 | res.send('404 not found')
82 | }
83 | });
84 |
85 |
86 | // Bind to a port
87 | console.log('[+] Worker '+cluster.worker.id+' running');
88 | if (SSL) {
89 | httpsServer.listen(httpsport)
90 | } else {
91 | httpServer.listen(httpport);
92 | }
93 | } catch (err) {
94 | console.log(err.message)
95 | }
96 |
97 |
98 | }
99 |
--------------------------------------------------------------------------------
/node_modules.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chrisjd20/Snorpy/77a4a1cc85ef6988fdc1723a6c190b24beecbc3c/node_modules.zip
--------------------------------------------------------------------------------
/pub/css/jquery-ui.css:
--------------------------------------------------------------------------------
1 | /*! jQuery UI - v1.12.1 - 2016-12-04
2 | * http://jqueryui.com
3 | * Includes: draggable.css, core.css, resizable.css, selectable.css, sortable.css, accordion.css, autocomplete.css, menu.css, button.css, controlgroup.css, checkboxradio.css, datepicker.css, dialog.css, progressbar.css, selectmenu.css, slider.css, spinner.css, tabs.css, tooltip.css, theme.css
4 | * To view and modify this theme, visit http://jqueryui.com/themeroller/?scope=&folderName=base&cornerRadiusShadow=8px&offsetLeftShadow=0px&offsetTopShadow=0px&thicknessShadow=5px&opacityShadow=30&bgImgOpacityShadow=0&bgTextureShadow=flat&bgColorShadow=666666&opacityOverlay=30&bgImgOpacityOverlay=0&bgTextureOverlay=flat&bgColorOverlay=aaaaaa&iconColorError=cc0000&fcError=5f3f3f&borderColorError=f1a899&bgTextureError=flat&bgColorError=fddfdf&iconColorHighlight=777620&fcHighlight=777620&borderColorHighlight=dad55e&bgTextureHighlight=flat&bgColorHighlight=fffa90&iconColorActive=ffffff&fcActive=ffffff&borderColorActive=003eff&bgTextureActive=flat&bgColorActive=007fff&iconColorHover=555555&fcHover=2b2b2b&borderColorHover=cccccc&bgTextureHover=flat&bgColorHover=ededed&iconColorDefault=777777&fcDefault=454545&borderColorDefault=c5c5c5&bgTextureDefault=flat&bgColorDefault=f6f6f6&iconColorContent=444444&fcContent=333333&borderColorContent=dddddd&bgTextureContent=flat&bgColorContent=ffffff&iconColorHeader=444444&fcHeader=333333&borderColorHeader=dddddd&bgTextureHeader=flat&bgColorHeader=e9e9e9&cornerRadius=3px&fwDefault=normal&fsDefault=1em&ffDefault=Arial%2CHelvetica%2Csans-serif
5 | * Copyright jQuery Foundation and other contributors; Licensed MIT */
6 |
7 | .ui-draggable-handle {
8 | -ms-touch-action: none;
9 | touch-action: none;
10 | }
11 | /* Layout helpers
12 | ----------------------------------*/
13 | .ui-helper-hidden {
14 | display: none;
15 | }
16 | .ui-helper-hidden-accessible {
17 | border: 0;
18 | clip: rect(0 0 0 0);
19 | height: 1px;
20 | margin: -1px;
21 | overflow: hidden;
22 | padding: 0;
23 | position: absolute;
24 | width: 1px;
25 | }
26 | .ui-helper-reset {
27 | margin: 0;
28 | padding: 0;
29 | border: 0;
30 | outline: 0;
31 | line-height: 1.3;
32 | text-decoration: none;
33 | font-size: 100%;
34 | list-style: none;
35 | }
36 | .ui-helper-clearfix:before,
37 | .ui-helper-clearfix:after {
38 | content: "";
39 | display: table;
40 | border-collapse: collapse;
41 | }
42 | .ui-helper-clearfix:after {
43 | clear: both;
44 | }
45 | .ui-helper-zfix {
46 | width: 100%;
47 | height: 100%;
48 | top: 0;
49 | left: 0;
50 | position: absolute;
51 | opacity: 0;
52 | filter:Alpha(Opacity=0); /* support: IE8 */
53 | }
54 |
55 | .ui-front {
56 | z-index: 100;
57 | }
58 |
59 |
60 | /* Interaction Cues
61 | ----------------------------------*/
62 | .ui-state-disabled {
63 | cursor: default !important;
64 | pointer-events: none;
65 | }
66 |
67 |
68 | /* Icons
69 | ----------------------------------*/
70 | .ui-icon {
71 | display: inline-block;
72 | vertical-align: middle;
73 | margin-top: -.25em;
74 | position: relative;
75 | text-indent: -99999px;
76 | overflow: hidden;
77 | background-repeat: no-repeat;
78 | }
79 |
80 | .ui-widget-icon-block {
81 | left: 50%;
82 | margin-left: -8px;
83 | display: block;
84 | }
85 |
86 | /* Misc visuals
87 | ----------------------------------*/
88 |
89 | /* Overlays */
90 | .ui-widget-overlay {
91 | position: fixed;
92 | top: 0;
93 | left: 0;
94 | width: 100%;
95 | height: 100%;
96 | }
97 | .ui-resizable {
98 | position: relative;
99 | }
100 | .ui-resizable-handle {
101 | position: absolute;
102 | font-size: 0.1px;
103 | display: block;
104 | -ms-touch-action: none;
105 | touch-action: none;
106 | }
107 | .ui-resizable-disabled .ui-resizable-handle,
108 | .ui-resizable-autohide .ui-resizable-handle {
109 | display: none;
110 | }
111 | .ui-resizable-n {
112 | cursor: n-resize;
113 | height: 7px;
114 | width: 100%;
115 | top: -5px;
116 | left: 0;
117 | }
118 | .ui-resizable-s {
119 | cursor: s-resize;
120 | height: 7px;
121 | width: 100%;
122 | bottom: -5px;
123 | left: 0;
124 | }
125 | .ui-resizable-e {
126 | cursor: e-resize;
127 | width: 7px;
128 | right: -5px;
129 | top: 0;
130 | height: 100%;
131 | }
132 | .ui-resizable-w {
133 | cursor: w-resize;
134 | width: 7px;
135 | left: -5px;
136 | top: 0;
137 | height: 100%;
138 | }
139 | .ui-resizable-se {
140 | cursor: se-resize;
141 | width: 12px;
142 | height: 12px;
143 | right: 1px;
144 | bottom: 1px;
145 | }
146 | .ui-resizable-sw {
147 | cursor: sw-resize;
148 | width: 9px;
149 | height: 9px;
150 | left: -5px;
151 | bottom: -5px;
152 | }
153 | .ui-resizable-nw {
154 | cursor: nw-resize;
155 | width: 9px;
156 | height: 9px;
157 | left: -5px;
158 | top: -5px;
159 | }
160 | .ui-resizable-ne {
161 | cursor: ne-resize;
162 | width: 9px;
163 | height: 9px;
164 | right: -5px;
165 | top: -5px;
166 | }
167 | .ui-selectable {
168 | -ms-touch-action: none;
169 | touch-action: none;
170 | }
171 | .ui-selectable-helper {
172 | position: absolute;
173 | z-index: 100;
174 | border: 1px dotted black;
175 | }
176 | .ui-sortable-handle {
177 | -ms-touch-action: none;
178 | touch-action: none;
179 | }
180 | .ui-accordion .ui-accordion-header {
181 | display: block;
182 | cursor: pointer;
183 | position: relative;
184 | margin: 2px 0 0 0;
185 | padding: .5em .5em .5em .7em;
186 | font-size: 100%;
187 | }
188 | .ui-accordion .ui-accordion-content {
189 | padding: 1em 2.2em;
190 | border-top: 0;
191 | overflow: auto;
192 | }
193 | .ui-autocomplete {
194 | position: absolute;
195 | top: 0;
196 | left: 0;
197 | cursor: default;
198 | }
199 | .ui-menu {
200 | list-style: none;
201 | padding: 0;
202 | margin: 0;
203 | display: block;
204 | outline: 0;
205 | }
206 | .ui-menu .ui-menu {
207 | position: absolute;
208 | }
209 | .ui-menu .ui-menu-item {
210 | margin: 0;
211 | cursor: pointer;
212 | /* support: IE10, see #8844 */
213 | list-style-image: url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
214 | }
215 | .ui-menu .ui-menu-item-wrapper {
216 | position: relative;
217 | padding: 3px 1em 3px .4em;
218 | }
219 | .ui-menu .ui-menu-divider {
220 | margin: 5px 0;
221 | height: 0;
222 | font-size: 0;
223 | line-height: 0;
224 | border-width: 1px 0 0 0;
225 | }
226 | .ui-menu .ui-state-focus,
227 | .ui-menu .ui-state-active {
228 | margin: -1px;
229 | }
230 |
231 | /* icon support */
232 | .ui-menu-icons {
233 | position: relative;
234 | }
235 | .ui-menu-icons .ui-menu-item-wrapper {
236 | padding-left: 2em;
237 | }
238 |
239 | /* left-aligned */
240 | .ui-menu .ui-icon {
241 | position: absolute;
242 | top: 0;
243 | bottom: 0;
244 | left: .2em;
245 | margin: auto 0;
246 | }
247 |
248 | /* right-aligned */
249 | .ui-menu .ui-menu-icon {
250 | left: auto;
251 | right: 0;
252 | }
253 | .ui-button {
254 | padding: .4em 1em;
255 | display: inline-block;
256 | position: relative;
257 | line-height: normal;
258 | margin-right: .1em;
259 | cursor: pointer;
260 | vertical-align: middle;
261 | text-align: center;
262 | -webkit-user-select: none;
263 | -moz-user-select: none;
264 | -ms-user-select: none;
265 | user-select: none;
266 |
267 | /* Support: IE <= 11 */
268 | overflow: visible;
269 | }
270 |
271 | .ui-button,
272 | .ui-button:link,
273 | .ui-button:visited,
274 | .ui-button:hover,
275 | .ui-button:active {
276 | text-decoration: none;
277 | }
278 |
279 | /* to make room for the icon, a width needs to be set here */
280 | .ui-button-icon-only {
281 | width: 2em;
282 | box-sizing: border-box;
283 | text-indent: -9999px;
284 | white-space: nowrap;
285 | }
286 |
287 | /* no icon support for input elements */
288 | input.ui-button.ui-button-icon-only {
289 | text-indent: 0;
290 | }
291 |
292 | /* button icon element(s) */
293 | .ui-button-icon-only .ui-icon {
294 | position: absolute;
295 | top: 50%;
296 | left: 50%;
297 | margin-top: -8px;
298 | margin-left: -8px;
299 | }
300 |
301 | .ui-button.ui-icon-notext .ui-icon {
302 | padding: 0;
303 | width: 2.1em;
304 | height: 2.1em;
305 | text-indent: -9999px;
306 | white-space: nowrap;
307 |
308 | }
309 |
310 | input.ui-button.ui-icon-notext .ui-icon {
311 | width: auto;
312 | height: auto;
313 | text-indent: 0;
314 | white-space: normal;
315 | padding: .4em 1em;
316 | }
317 |
318 | /* workarounds */
319 | /* Support: Firefox 5 - 40 */
320 | input.ui-button::-moz-focus-inner,
321 | button.ui-button::-moz-focus-inner {
322 | border: 0;
323 | padding: 0;
324 | }
325 | .ui-controlgroup {
326 | vertical-align: middle;
327 | display: inline-block;
328 | }
329 | .ui-controlgroup > .ui-controlgroup-item {
330 | float: left;
331 | margin-left: 0;
332 | margin-right: 0;
333 | }
334 | .ui-controlgroup > .ui-controlgroup-item:focus,
335 | .ui-controlgroup > .ui-controlgroup-item.ui-visual-focus {
336 | z-index: 9999;
337 | }
338 | .ui-controlgroup-vertical > .ui-controlgroup-item {
339 | display: block;
340 | float: none;
341 | width: 100%;
342 | margin-top: 0;
343 | margin-bottom: 0;
344 | text-align: left;
345 | }
346 | .ui-controlgroup-vertical .ui-controlgroup-item {
347 | box-sizing: border-box;
348 | }
349 | .ui-controlgroup .ui-controlgroup-label {
350 | padding: .4em 1em;
351 | }
352 | .ui-controlgroup .ui-controlgroup-label span {
353 | font-size: 80%;
354 | }
355 | .ui-controlgroup-horizontal .ui-controlgroup-label + .ui-controlgroup-item {
356 | border-left: none;
357 | }
358 | .ui-controlgroup-vertical .ui-controlgroup-label + .ui-controlgroup-item {
359 | border-top: none;
360 | }
361 | .ui-controlgroup-horizontal .ui-controlgroup-label.ui-widget-content {
362 | border-right: none;
363 | }
364 | .ui-controlgroup-vertical .ui-controlgroup-label.ui-widget-content {
365 | border-bottom: none;
366 | }
367 |
368 | /* Spinner specific style fixes */
369 | .ui-controlgroup-vertical .ui-spinner-input {
370 |
371 | /* Support: IE8 only, Android < 4.4 only */
372 | width: 75%;
373 | width: calc( 100% - 2.4em );
374 | }
375 | .ui-controlgroup-vertical .ui-spinner .ui-spinner-up {
376 | border-top-style: solid;
377 | }
378 |
379 | .ui-checkboxradio-label .ui-icon-background {
380 | box-shadow: inset 1px 1px 1px #ccc;
381 | border-radius: .12em;
382 | border: none;
383 | }
384 | .ui-checkboxradio-radio-label .ui-icon-background {
385 | width: 16px;
386 | height: 16px;
387 | border-radius: 1em;
388 | overflow: visible;
389 | border: none;
390 | }
391 | .ui-checkboxradio-radio-label.ui-checkboxradio-checked .ui-icon,
392 | .ui-checkboxradio-radio-label.ui-checkboxradio-checked:hover .ui-icon {
393 | background-image: none;
394 | width: 8px;
395 | height: 8px;
396 | border-width: 4px;
397 | border-style: solid;
398 | }
399 | .ui-checkboxradio-disabled {
400 | pointer-events: none;
401 | }
402 | .ui-datepicker {
403 | width: 17em;
404 | padding: .2em .2em 0;
405 | display: none;
406 | }
407 | .ui-datepicker .ui-datepicker-header {
408 | position: relative;
409 | padding: .2em 0;
410 | }
411 | .ui-datepicker .ui-datepicker-prev,
412 | .ui-datepicker .ui-datepicker-next {
413 | position: absolute;
414 | top: 2px;
415 | width: 1.8em;
416 | height: 1.8em;
417 | }
418 | .ui-datepicker .ui-datepicker-prev-hover,
419 | .ui-datepicker .ui-datepicker-next-hover {
420 | top: 1px;
421 | }
422 | .ui-datepicker .ui-datepicker-prev {
423 | left: 2px;
424 | }
425 | .ui-datepicker .ui-datepicker-next {
426 | right: 2px;
427 | }
428 | .ui-datepicker .ui-datepicker-prev-hover {
429 | left: 1px;
430 | }
431 | .ui-datepicker .ui-datepicker-next-hover {
432 | right: 1px;
433 | }
434 | .ui-datepicker .ui-datepicker-prev span,
435 | .ui-datepicker .ui-datepicker-next span {
436 | display: block;
437 | position: absolute;
438 | left: 50%;
439 | margin-left: -8px;
440 | top: 50%;
441 | margin-top: -8px;
442 | }
443 | .ui-datepicker .ui-datepicker-title {
444 | margin: 0 2.3em;
445 | line-height: 1.8em;
446 | text-align: center;
447 | }
448 | .ui-datepicker .ui-datepicker-title select {
449 | font-size: 1em;
450 | margin: 1px 0;
451 | }
452 | .ui-datepicker select.ui-datepicker-month,
453 | .ui-datepicker select.ui-datepicker-year {
454 | width: 45%;
455 | }
456 | .ui-datepicker table {
457 | width: 100%;
458 | font-size: .9em;
459 | border-collapse: collapse;
460 | margin: 0 0 .4em;
461 | }
462 | .ui-datepicker th {
463 | padding: .7em .3em;
464 | text-align: center;
465 | font-weight: bold;
466 | border: 0;
467 | }
468 | .ui-datepicker td {
469 | border: 0;
470 | padding: 1px;
471 | }
472 | .ui-datepicker td span,
473 | .ui-datepicker td a {
474 | display: block;
475 | padding: .2em;
476 | text-align: right;
477 | text-decoration: none;
478 | }
479 | .ui-datepicker .ui-datepicker-buttonpane {
480 | background-image: none;
481 | margin: .7em 0 0 0;
482 | padding: 0 .2em;
483 | border-left: 0;
484 | border-right: 0;
485 | border-bottom: 0;
486 | }
487 | .ui-datepicker .ui-datepicker-buttonpane button {
488 | float: right;
489 | margin: .5em .2em .4em;
490 | cursor: pointer;
491 | padding: .2em .6em .3em .6em;
492 | width: auto;
493 | overflow: visible;
494 | }
495 | .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current {
496 | float: left;
497 | }
498 |
499 | /* with multiple calendars */
500 | .ui-datepicker.ui-datepicker-multi {
501 | width: auto;
502 | }
503 | .ui-datepicker-multi .ui-datepicker-group {
504 | float: left;
505 | }
506 | .ui-datepicker-multi .ui-datepicker-group table {
507 | width: 95%;
508 | margin: 0 auto .4em;
509 | }
510 | .ui-datepicker-multi-2 .ui-datepicker-group {
511 | width: 50%;
512 | }
513 | .ui-datepicker-multi-3 .ui-datepicker-group {
514 | width: 33.3%;
515 | }
516 | .ui-datepicker-multi-4 .ui-datepicker-group {
517 | width: 25%;
518 | }
519 | .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header,
520 | .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header {
521 | border-left-width: 0;
522 | }
523 | .ui-datepicker-multi .ui-datepicker-buttonpane {
524 | clear: left;
525 | }
526 | .ui-datepicker-row-break {
527 | clear: both;
528 | width: 100%;
529 | font-size: 0;
530 | }
531 |
532 | /* RTL support */
533 | .ui-datepicker-rtl {
534 | direction: rtl;
535 | }
536 | .ui-datepicker-rtl .ui-datepicker-prev {
537 | right: 2px;
538 | left: auto;
539 | }
540 | .ui-datepicker-rtl .ui-datepicker-next {
541 | left: 2px;
542 | right: auto;
543 | }
544 | .ui-datepicker-rtl .ui-datepicker-prev:hover {
545 | right: 1px;
546 | left: auto;
547 | }
548 | .ui-datepicker-rtl .ui-datepicker-next:hover {
549 | left: 1px;
550 | right: auto;
551 | }
552 | .ui-datepicker-rtl .ui-datepicker-buttonpane {
553 | clear: right;
554 | }
555 | .ui-datepicker-rtl .ui-datepicker-buttonpane button {
556 | float: left;
557 | }
558 | .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current,
559 | .ui-datepicker-rtl .ui-datepicker-group {
560 | float: right;
561 | }
562 | .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header,
563 | .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header {
564 | border-right-width: 0;
565 | border-left-width: 1px;
566 | }
567 |
568 | /* Icons */
569 | .ui-datepicker .ui-icon {
570 | display: block;
571 | text-indent: -99999px;
572 | overflow: hidden;
573 | background-repeat: no-repeat;
574 | left: .5em;
575 | top: .3em;
576 | }
577 | .ui-dialog {
578 | position: absolute;
579 | top: 0;
580 | left: 0;
581 | padding: .2em;
582 | outline: 0;
583 | }
584 | .ui-dialog .ui-dialog-titlebar {
585 | padding: .4em 1em;
586 | position: relative;
587 | }
588 | .ui-dialog .ui-dialog-title {
589 | float: left;
590 | margin: .1em 0;
591 | white-space: nowrap;
592 | width: 90%;
593 | overflow: hidden;
594 | text-overflow: ellipsis;
595 | }
596 | .ui-dialog .ui-dialog-titlebar-close {
597 | position: absolute;
598 | right: .3em;
599 | top: 50%;
600 | width: 20px;
601 | margin: -10px 0 0 0;
602 | padding: 1px;
603 | height: 20px;
604 | }
605 | .ui-dialog .ui-dialog-content {
606 | position: relative;
607 | border: 0;
608 | padding: .5em 1em;
609 | background: none;
610 | overflow: auto;
611 | }
612 | .ui-dialog .ui-dialog-buttonpane {
613 | text-align: left;
614 | border-width: 1px 0 0 0;
615 | background-image: none;
616 | margin-top: .5em;
617 | padding: .3em 1em .5em .4em;
618 | }
619 | .ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset {
620 | float: right;
621 | }
622 | .ui-dialog .ui-dialog-buttonpane button {
623 | margin: .5em .4em .5em 0;
624 | cursor: pointer;
625 | }
626 | .ui-dialog .ui-resizable-n {
627 | height: 2px;
628 | top: 0;
629 | }
630 | .ui-dialog .ui-resizable-e {
631 | width: 2px;
632 | right: 0;
633 | }
634 | .ui-dialog .ui-resizable-s {
635 | height: 2px;
636 | bottom: 0;
637 | }
638 | .ui-dialog .ui-resizable-w {
639 | width: 2px;
640 | left: 0;
641 | }
642 | .ui-dialog .ui-resizable-se,
643 | .ui-dialog .ui-resizable-sw,
644 | .ui-dialog .ui-resizable-ne,
645 | .ui-dialog .ui-resizable-nw {
646 | width: 7px;
647 | height: 7px;
648 | }
649 | .ui-dialog .ui-resizable-se {
650 | right: 0;
651 | bottom: 0;
652 | }
653 | .ui-dialog .ui-resizable-sw {
654 | left: 0;
655 | bottom: 0;
656 | }
657 | .ui-dialog .ui-resizable-ne {
658 | right: 0;
659 | top: 0;
660 | }
661 | .ui-dialog .ui-resizable-nw {
662 | left: 0;
663 | top: 0;
664 | }
665 | .ui-draggable .ui-dialog-titlebar {
666 | cursor: move;
667 | }
668 | .ui-progressbar {
669 | height: 2em;
670 | text-align: left;
671 | overflow: hidden;
672 | }
673 | .ui-progressbar .ui-progressbar-value {
674 | margin: -1px;
675 | height: 100%;
676 | }
677 | .ui-progressbar .ui-progressbar-overlay {
678 | background: url("data:image/gif;base64,R0lGODlhKAAoAIABAAAAAP///yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJAQABACwAAAAAKAAoAAACkYwNqXrdC52DS06a7MFZI+4FHBCKoDeWKXqymPqGqxvJrXZbMx7Ttc+w9XgU2FB3lOyQRWET2IFGiU9m1frDVpxZZc6bfHwv4c1YXP6k1Vdy292Fb6UkuvFtXpvWSzA+HycXJHUXiGYIiMg2R6W459gnWGfHNdjIqDWVqemH2ekpObkpOlppWUqZiqr6edqqWQAAIfkECQEAAQAsAAAAACgAKAAAApSMgZnGfaqcg1E2uuzDmmHUBR8Qil95hiPKqWn3aqtLsS18y7G1SzNeowWBENtQd+T1JktP05nzPTdJZlR6vUxNWWjV+vUWhWNkWFwxl9VpZRedYcflIOLafaa28XdsH/ynlcc1uPVDZxQIR0K25+cICCmoqCe5mGhZOfeYSUh5yJcJyrkZWWpaR8doJ2o4NYq62lAAACH5BAkBAAEALAAAAAAoACgAAAKVDI4Yy22ZnINRNqosw0Bv7i1gyHUkFj7oSaWlu3ovC8GxNso5fluz3qLVhBVeT/Lz7ZTHyxL5dDalQWPVOsQWtRnuwXaFTj9jVVh8pma9JjZ4zYSj5ZOyma7uuolffh+IR5aW97cHuBUXKGKXlKjn+DiHWMcYJah4N0lYCMlJOXipGRr5qdgoSTrqWSq6WFl2ypoaUAAAIfkECQEAAQAsAAAAACgAKAAAApaEb6HLgd/iO7FNWtcFWe+ufODGjRfoiJ2akShbueb0wtI50zm02pbvwfWEMWBQ1zKGlLIhskiEPm9R6vRXxV4ZzWT2yHOGpWMyorblKlNp8HmHEb/lCXjcW7bmtXP8Xt229OVWR1fod2eWqNfHuMjXCPkIGNileOiImVmCOEmoSfn3yXlJWmoHGhqp6ilYuWYpmTqKUgAAIfkECQEAAQAsAAAAACgAKAAAApiEH6kb58biQ3FNWtMFWW3eNVcojuFGfqnZqSebuS06w5V80/X02pKe8zFwP6EFWOT1lDFk8rGERh1TTNOocQ61Hm4Xm2VexUHpzjymViHrFbiELsefVrn6XKfnt2Q9G/+Xdie499XHd2g4h7ioOGhXGJboGAnXSBnoBwKYyfioubZJ2Hn0RuRZaflZOil56Zp6iioKSXpUAAAh+QQJAQABACwAAAAAKAAoAAACkoQRqRvnxuI7kU1a1UU5bd5tnSeOZXhmn5lWK3qNTWvRdQxP8qvaC+/yaYQzXO7BMvaUEmJRd3TsiMAgswmNYrSgZdYrTX6tSHGZO73ezuAw2uxuQ+BbeZfMxsexY35+/Qe4J1inV0g4x3WHuMhIl2jXOKT2Q+VU5fgoSUI52VfZyfkJGkha6jmY+aaYdirq+lQAACH5BAkBAAEALAAAAAAoACgAAAKWBIKpYe0L3YNKToqswUlvznigd4wiR4KhZrKt9Upqip61i9E3vMvxRdHlbEFiEXfk9YARYxOZZD6VQ2pUunBmtRXo1Lf8hMVVcNl8JafV38aM2/Fu5V16Bn63r6xt97j09+MXSFi4BniGFae3hzbH9+hYBzkpuUh5aZmHuanZOZgIuvbGiNeomCnaxxap2upaCZsq+1kAACH5BAkBAAEALAAAAAAoACgAAAKXjI8By5zf4kOxTVrXNVlv1X0d8IGZGKLnNpYtm8Lr9cqVeuOSvfOW79D9aDHizNhDJidFZhNydEahOaDH6nomtJjp1tutKoNWkvA6JqfRVLHU/QUfau9l2x7G54d1fl995xcIGAdXqMfBNadoYrhH+Mg2KBlpVpbluCiXmMnZ2Sh4GBqJ+ckIOqqJ6LmKSllZmsoq6wpQAAAh+QQJAQABACwAAAAAKAAoAAAClYx/oLvoxuJDkU1a1YUZbJ59nSd2ZXhWqbRa2/gF8Gu2DY3iqs7yrq+xBYEkYvFSM8aSSObE+ZgRl1BHFZNr7pRCavZ5BW2142hY3AN/zWtsmf12p9XxxFl2lpLn1rseztfXZjdIWIf2s5dItwjYKBgo9yg5pHgzJXTEeGlZuenpyPmpGQoKOWkYmSpaSnqKileI2FAAACH5BAkBAAEALAAAAAAoACgAAAKVjB+gu+jG4kORTVrVhRlsnn2dJ3ZleFaptFrb+CXmO9OozeL5VfP99HvAWhpiUdcwkpBH3825AwYdU8xTqlLGhtCosArKMpvfa1mMRae9VvWZfeB2XfPkeLmm18lUcBj+p5dnN8jXZ3YIGEhYuOUn45aoCDkp16hl5IjYJvjWKcnoGQpqyPlpOhr3aElaqrq56Bq7VAAAOw==");
679 | height: 100%;
680 | filter: alpha(opacity=25); /* support: IE8 */
681 | opacity: 0.25;
682 | }
683 | .ui-progressbar-indeterminate .ui-progressbar-value {
684 | background-image: none;
685 | }
686 | .ui-selectmenu-menu {
687 | padding: 0;
688 | margin: 0;
689 | position: absolute;
690 | top: 0;
691 | left: 0;
692 | display: none;
693 | }
694 | .ui-selectmenu-menu .ui-menu {
695 | overflow: auto;
696 | overflow-x: hidden;
697 | padding-bottom: 1px;
698 | }
699 | .ui-selectmenu-menu .ui-menu .ui-selectmenu-optgroup {
700 | font-size: 1em;
701 | font-weight: bold;
702 | line-height: 1.5;
703 | padding: 2px 0.4em;
704 | margin: 0.5em 0 0 0;
705 | height: auto;
706 | border: 0;
707 | }
708 | .ui-selectmenu-open {
709 | display: block;
710 | }
711 | .ui-selectmenu-text {
712 | display: block;
713 | margin-right: 20px;
714 | overflow: hidden;
715 | text-overflow: ellipsis;
716 | }
717 | .ui-selectmenu-button.ui-button {
718 | text-align: left;
719 | white-space: nowrap;
720 | width: 14em;
721 | }
722 | .ui-selectmenu-icon.ui-icon {
723 | float: right;
724 | margin-top: 0;
725 | }
726 | .ui-slider {
727 | position: relative;
728 | text-align: left;
729 | }
730 | .ui-slider .ui-slider-handle {
731 | position: absolute;
732 | z-index: 2;
733 | width: 1.2em;
734 | height: 1.2em;
735 | cursor: default;
736 | -ms-touch-action: none;
737 | touch-action: none;
738 | }
739 | .ui-slider .ui-slider-range {
740 | position: absolute;
741 | z-index: 1;
742 | font-size: .7em;
743 | display: block;
744 | border: 0;
745 | background-position: 0 0;
746 | }
747 |
748 | /* support: IE8 - See #6727 */
749 | .ui-slider.ui-state-disabled .ui-slider-handle,
750 | .ui-slider.ui-state-disabled .ui-slider-range {
751 | filter: inherit;
752 | }
753 |
754 | .ui-slider-horizontal {
755 | height: .8em;
756 | }
757 | .ui-slider-horizontal .ui-slider-handle {
758 | top: -.3em;
759 | margin-left: -.6em;
760 | }
761 | .ui-slider-horizontal .ui-slider-range {
762 | top: 0;
763 | height: 100%;
764 | }
765 | .ui-slider-horizontal .ui-slider-range-min {
766 | left: 0;
767 | }
768 | .ui-slider-horizontal .ui-slider-range-max {
769 | right: 0;
770 | }
771 |
772 | .ui-slider-vertical {
773 | width: .8em;
774 | height: 100px;
775 | }
776 | .ui-slider-vertical .ui-slider-handle {
777 | left: -.3em;
778 | margin-left: 0;
779 | margin-bottom: -.6em;
780 | }
781 | .ui-slider-vertical .ui-slider-range {
782 | left: 0;
783 | width: 100%;
784 | }
785 | .ui-slider-vertical .ui-slider-range-min {
786 | bottom: 0;
787 | }
788 | .ui-slider-vertical .ui-slider-range-max {
789 | top: 0;
790 | }
791 | .ui-spinner {
792 | position: relative;
793 | display: inline-block;
794 | overflow: hidden;
795 | padding: 0;
796 | vertical-align: middle;
797 | }
798 | .ui-spinner-input {
799 | border: none;
800 | background: none;
801 | color: inherit;
802 | padding: .222em 0;
803 | margin: .2em 0;
804 | vertical-align: middle;
805 | margin-left: .4em;
806 | margin-right: 2em;
807 | }
808 | .ui-spinner-button {
809 | width: 1.6em;
810 | height: 50%;
811 | font-size: .5em;
812 | padding: 0;
813 | margin: 0;
814 | text-align: center;
815 | position: absolute;
816 | cursor: default;
817 | display: block;
818 | overflow: hidden;
819 | right: 0;
820 | }
821 | /* more specificity required here to override default borders */
822 | .ui-spinner a.ui-spinner-button {
823 | border-top-style: none;
824 | border-bottom-style: none;
825 | border-right-style: none;
826 | }
827 | .ui-spinner-up {
828 | top: 0;
829 | }
830 | .ui-spinner-down {
831 | bottom: 0;
832 | }
833 | .ui-tabs {
834 | position: relative;/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
835 | padding: .2em;
836 | }
837 | .ui-tabs .ui-tabs-nav {
838 | margin: 0;
839 | padding: .2em .2em 0;
840 | }
841 | .ui-tabs .ui-tabs-nav li {
842 | list-style: none;
843 | float: left;
844 | position: relative;
845 | top: 0;
846 | margin: 1px .2em 0 0;
847 | border-bottom-width: 0;
848 | padding: 0;
849 | white-space: nowrap;
850 | }
851 | .ui-tabs .ui-tabs-nav .ui-tabs-anchor {
852 | float: left;
853 | padding: .5em 1em;
854 | text-decoration: none;
855 | }
856 | .ui-tabs .ui-tabs-nav li.ui-tabs-active {
857 | margin-bottom: -1px;
858 | padding-bottom: 1px;
859 | }
860 | .ui-tabs .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor,
861 | .ui-tabs .ui-tabs-nav li.ui-state-disabled .ui-tabs-anchor,
862 | .ui-tabs .ui-tabs-nav li.ui-tabs-loading .ui-tabs-anchor {
863 | cursor: text;
864 | }
865 | .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active .ui-tabs-anchor {
866 | cursor: pointer;
867 | }
868 | .ui-tabs .ui-tabs-panel {
869 | display: block;
870 | border-width: 0;
871 | padding: 1em 1.4em;
872 | background: none;
873 | }
874 | .ui-tooltip {
875 | padding: 8px;
876 | position: absolute;
877 | z-index: 9999;
878 | max-width: 300px;
879 | }
880 | body .ui-tooltip {
881 | border-width: 2px;
882 | }
883 |
884 | /* Component containers
885 | ----------------------------------*/
886 | .ui-widget {
887 | font-family: Arial,Helvetica,sans-serif;
888 | font-size: 1em;
889 | }
890 | .ui-widget .ui-widget {
891 | font-size: 1em;
892 | }
893 | .ui-widget input,
894 | .ui-widget select,
895 | .ui-widget textarea,
896 | .ui-widget button {
897 | font-family: Arial,Helvetica,sans-serif;
898 | font-size: 1em;
899 | }
900 | .ui-widget.ui-widget-content {
901 | border: 1px solid #c5c5c5;
902 | }
903 | .ui-widget-content {
904 | border: 1px solid #dddddd;
905 | background: #ffffff;
906 | color: #333333;
907 | }
908 | .ui-widget-content a {
909 | color: #333333;
910 | }
911 | .ui-widget-header {
912 | border: 1px solid #dddddd;
913 | background: #e9e9e9;
914 | color: #333333;
915 | font-weight: bold;
916 | }
917 | .ui-widget-header a {
918 | color: #333333;
919 | }
920 |
921 | /* Interaction states
922 | ----------------------------------*/
923 | .ui-state-default,
924 | .ui-widget-content .ui-state-default,
925 | .ui-widget-header .ui-state-default,
926 | .ui-button,
927 |
928 | /* We use html here because we need a greater specificity to make sure disabled
929 | works properly when clicked or hovered */
930 | html .ui-button.ui-state-disabled:hover,
931 | html .ui-button.ui-state-disabled:active {
932 | border: 1px solid #c5c5c5;
933 | background: #f6f6f6;
934 | font-weight: normal;
935 | color: #454545;
936 | }
937 | .ui-state-default a,
938 | .ui-state-default a:link,
939 | .ui-state-default a:visited,
940 | a.ui-button,
941 | a:link.ui-button,
942 | a:visited.ui-button,
943 | .ui-button {
944 | color: #454545;
945 | text-decoration: none;
946 | }
947 | .ui-state-hover,
948 | .ui-widget-content .ui-state-hover,
949 | .ui-widget-header .ui-state-hover,
950 | .ui-state-focus,
951 | .ui-widget-content .ui-state-focus,
952 | .ui-widget-header .ui-state-focus,
953 | .ui-button:hover,
954 | .ui-button:focus {
955 | border: 1px solid #cccccc;
956 | background: #ededed;
957 | font-weight: normal;
958 | color: #2b2b2b;
959 | }
960 | .ui-state-hover a,
961 | .ui-state-hover a:hover,
962 | .ui-state-hover a:link,
963 | .ui-state-hover a:visited,
964 | .ui-state-focus a,
965 | .ui-state-focus a:hover,
966 | .ui-state-focus a:link,
967 | .ui-state-focus a:visited,
968 | a.ui-button:hover,
969 | a.ui-button:focus {
970 | color: #2b2b2b;
971 | text-decoration: none;
972 | }
973 |
974 | .ui-visual-focus {
975 | box-shadow: 0 0 3px 1px rgb(94, 158, 214);
976 | }
977 | .ui-state-active,
978 | .ui-widget-content .ui-state-active,
979 | .ui-widget-header .ui-state-active,
980 | a.ui-button:active,
981 | .ui-button:active,
982 | .ui-button.ui-state-active:hover {
983 | border: 1px solid #003eff;
984 | background: #007fff;
985 | font-weight: normal;
986 | color: #ffffff;
987 | }
988 | .ui-icon-background,
989 | .ui-state-active .ui-icon-background {
990 | border: #003eff;
991 | background-color: #ffffff;
992 | }
993 | .ui-state-active a,
994 | .ui-state-active a:link,
995 | .ui-state-active a:visited {
996 | color: #ffffff;
997 | text-decoration: none;
998 | }
999 |
1000 | /* Interaction Cues
1001 | ----------------------------------*/
1002 | .ui-state-highlight,
1003 | .ui-widget-content .ui-state-highlight,
1004 | .ui-widget-header .ui-state-highlight {
1005 | border: 1px solid #dad55e;
1006 | background: #fffa90;
1007 | color: #777620;
1008 | }
1009 | .ui-state-checked {
1010 | border: 1px solid #dad55e;
1011 | background: #fffa90;
1012 | }
1013 | .ui-state-highlight a,
1014 | .ui-widget-content .ui-state-highlight a,
1015 | .ui-widget-header .ui-state-highlight a {
1016 | color: #777620;
1017 | }
1018 | .ui-state-error,
1019 | .ui-widget-content .ui-state-error,
1020 | .ui-widget-header .ui-state-error {
1021 | border: 1px solid #f1a899;
1022 | background: #fddfdf;
1023 | color: #5f3f3f;
1024 | }
1025 | .ui-state-error a,
1026 | .ui-widget-content .ui-state-error a,
1027 | .ui-widget-header .ui-state-error a {
1028 | color: #5f3f3f;
1029 | }
1030 | .ui-state-error-text,
1031 | .ui-widget-content .ui-state-error-text,
1032 | .ui-widget-header .ui-state-error-text {
1033 | color: #5f3f3f;
1034 | }
1035 | .ui-priority-primary,
1036 | .ui-widget-content .ui-priority-primary,
1037 | .ui-widget-header .ui-priority-primary {
1038 | font-weight: bold;
1039 | }
1040 | .ui-priority-secondary,
1041 | .ui-widget-content .ui-priority-secondary,
1042 | .ui-widget-header .ui-priority-secondary {
1043 | opacity: .7;
1044 | filter:Alpha(Opacity=70); /* support: IE8 */
1045 | font-weight: normal;
1046 | }
1047 | .ui-state-disabled,
1048 | .ui-widget-content .ui-state-disabled,
1049 | .ui-widget-header .ui-state-disabled {
1050 | opacity: .35;
1051 | filter:Alpha(Opacity=35); /* support: IE8 */
1052 | background-image: none;
1053 | }
1054 | .ui-state-disabled .ui-icon {
1055 | filter:Alpha(Opacity=35); /* support: IE8 - See #6059 */
1056 | }
1057 |
1058 | /* Icons
1059 | ----------------------------------*/
1060 |
1061 | /* states and images */
1062 | .ui-icon {
1063 | width: 16px;
1064 | height: 16px;
1065 | }
1066 | .ui-icon,
1067 | .ui-widget-content .ui-icon {
1068 | background-image: url("images/ui-icons_444444_256x240.png");
1069 | }
1070 | .ui-widget-header .ui-icon {
1071 | background-image: url("images/ui-icons_444444_256x240.png");
1072 | }
1073 | .ui-state-hover .ui-icon,
1074 | .ui-state-focus .ui-icon,
1075 | .ui-button:hover .ui-icon,
1076 | .ui-button:focus .ui-icon {
1077 | background-image: url("images/ui-icons_555555_256x240.png");
1078 | }
1079 | .ui-state-active .ui-icon,
1080 | .ui-button:active .ui-icon {
1081 | background-image: url("images/ui-icons_ffffff_256x240.png");
1082 | }
1083 | .ui-state-highlight .ui-icon,
1084 | .ui-button .ui-state-highlight.ui-icon {
1085 | background-image: url("images/ui-icons_777620_256x240.png");
1086 | }
1087 | .ui-state-error .ui-icon,
1088 | .ui-state-error-text .ui-icon {
1089 | background-image: url("images/ui-icons_cc0000_256x240.png");
1090 | }
1091 | .ui-button .ui-icon {
1092 | background-image: url("images/ui-icons_777777_256x240.png");
1093 | }
1094 |
1095 | /* positioning */
1096 | .ui-icon-blank { background-position: 16px 16px; }
1097 | .ui-icon-caret-1-n { background-position: 0 0; }
1098 | .ui-icon-caret-1-ne { background-position: -16px 0; }
1099 | .ui-icon-caret-1-e { background-position: -32px 0; }
1100 | .ui-icon-caret-1-se { background-position: -48px 0; }
1101 | .ui-icon-caret-1-s { background-position: -65px 0; }
1102 | .ui-icon-caret-1-sw { background-position: -80px 0; }
1103 | .ui-icon-caret-1-w { background-position: -96px 0; }
1104 | .ui-icon-caret-1-nw { background-position: -112px 0; }
1105 | .ui-icon-caret-2-n-s { background-position: -128px 0; }
1106 | .ui-icon-caret-2-e-w { background-position: -144px 0; }
1107 | .ui-icon-triangle-1-n { background-position: 0 -16px; }
1108 | .ui-icon-triangle-1-ne { background-position: -16px -16px; }
1109 | .ui-icon-triangle-1-e { background-position: -32px -16px; }
1110 | .ui-icon-triangle-1-se { background-position: -48px -16px; }
1111 | .ui-icon-triangle-1-s { background-position: -65px -16px; }
1112 | .ui-icon-triangle-1-sw { background-position: -80px -16px; }
1113 | .ui-icon-triangle-1-w { background-position: -96px -16px; }
1114 | .ui-icon-triangle-1-nw { background-position: -112px -16px; }
1115 | .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
1116 | .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
1117 | .ui-icon-arrow-1-n { background-position: 0 -32px; }
1118 | .ui-icon-arrow-1-ne { background-position: -16px -32px; }
1119 | .ui-icon-arrow-1-e { background-position: -32px -32px; }
1120 | .ui-icon-arrow-1-se { background-position: -48px -32px; }
1121 | .ui-icon-arrow-1-s { background-position: -65px -32px; }
1122 | .ui-icon-arrow-1-sw { background-position: -80px -32px; }
1123 | .ui-icon-arrow-1-w { background-position: -96px -32px; }
1124 | .ui-icon-arrow-1-nw { background-position: -112px -32px; }
1125 | .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
1126 | .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
1127 | .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
1128 | .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
1129 | .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
1130 | .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
1131 | .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
1132 | .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
1133 | .ui-icon-arrowthick-1-n { background-position: 1px -48px; }
1134 | .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
1135 | .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
1136 | .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
1137 | .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
1138 | .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
1139 | .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
1140 | .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
1141 | .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
1142 | .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
1143 | .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
1144 | .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
1145 | .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
1146 | .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
1147 | .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
1148 | .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
1149 | .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
1150 | .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
1151 | .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
1152 | .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
1153 | .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
1154 | .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
1155 | .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
1156 | .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
1157 | .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
1158 | .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
1159 | .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
1160 | .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
1161 | .ui-icon-arrow-4 { background-position: 0 -80px; }
1162 | .ui-icon-arrow-4-diag { background-position: -16px -80px; }
1163 | .ui-icon-extlink { background-position: -32px -80px; }
1164 | .ui-icon-newwin { background-position: -48px -80px; }
1165 | .ui-icon-refresh { background-position: -64px -80px; }
1166 | .ui-icon-shuffle { background-position: -80px -80px; }
1167 | .ui-icon-transfer-e-w { background-position: -96px -80px; }
1168 | .ui-icon-transferthick-e-w { background-position: -112px -80px; }
1169 | .ui-icon-folder-collapsed { background-position: 0 -96px; }
1170 | .ui-icon-folder-open { background-position: -16px -96px; }
1171 | .ui-icon-document { background-position: -32px -96px; }
1172 | .ui-icon-document-b { background-position: -48px -96px; }
1173 | .ui-icon-note { background-position: -64px -96px; }
1174 | .ui-icon-mail-closed { background-position: -80px -96px; }
1175 | .ui-icon-mail-open { background-position: -96px -96px; }
1176 | .ui-icon-suitcase { background-position: -112px -96px; }
1177 | .ui-icon-comment { background-position: -128px -96px; }
1178 | .ui-icon-person { background-position: -144px -96px; }
1179 | .ui-icon-print { background-position: -160px -96px; }
1180 | .ui-icon-trash { background-position: -176px -96px; }
1181 | .ui-icon-locked { background-position: -192px -96px; }
1182 | .ui-icon-unlocked { background-position: -208px -96px; }
1183 | .ui-icon-bookmark { background-position: -224px -96px; }
1184 | .ui-icon-tag { background-position: -240px -96px; }
1185 | .ui-icon-home { background-position: 0 -112px; }
1186 | .ui-icon-flag { background-position: -16px -112px; }
1187 | .ui-icon-calendar { background-position: -32px -112px; }
1188 | .ui-icon-cart { background-position: -48px -112px; }
1189 | .ui-icon-pencil { background-position: -64px -112px; }
1190 | .ui-icon-clock { background-position: -80px -112px; }
1191 | .ui-icon-disk { background-position: -96px -112px; }
1192 | .ui-icon-calculator { background-position: -112px -112px; }
1193 | .ui-icon-zoomin { background-position: -128px -112px; }
1194 | .ui-icon-zoomout { background-position: -144px -112px; }
1195 | .ui-icon-search { background-position: -160px -112px; }
1196 | .ui-icon-wrench { background-position: -176px -112px; }
1197 | .ui-icon-gear { background-position: -192px -112px; }
1198 | .ui-icon-heart { background-position: -208px -112px; }
1199 | .ui-icon-star { background-position: -224px -112px; }
1200 | .ui-icon-link { background-position: -240px -112px; }
1201 | .ui-icon-cancel { background-position: 0 -128px; }
1202 | .ui-icon-plus { background-position: -16px -128px; }
1203 | .ui-icon-plusthick { background-position: -32px -128px; }
1204 | .ui-icon-minus { background-position: -48px -128px; }
1205 | .ui-icon-minusthick { background-position: -64px -128px; }
1206 | .ui-icon-close { background-position: -80px -128px; }
1207 | .ui-icon-closethick { background-position: -96px -128px; }
1208 | .ui-icon-key { background-position: -112px -128px; }
1209 | .ui-icon-lightbulb { background-position: -128px -128px; }
1210 | .ui-icon-scissors { background-position: -144px -128px; }
1211 | .ui-icon-clipboard { background-position: -160px -128px; }
1212 | .ui-icon-copy { background-position: -176px -128px; }
1213 | .ui-icon-contact { background-position: -192px -128px; }
1214 | .ui-icon-image { background-position: -208px -128px; }
1215 | .ui-icon-video { background-position: -224px -128px; }
1216 | .ui-icon-script { background-position: -240px -128px; }
1217 | .ui-icon-alert { background-position: 0 -144px; }
1218 | .ui-icon-info { background-position: -16px -144px; }
1219 | .ui-icon-notice { background-position: -32px -144px; }
1220 | .ui-icon-help { background-position: -48px -144px; }
1221 | .ui-icon-check { background-position: -64px -144px; }
1222 | .ui-icon-bullet { background-position: -80px -144px; }
1223 | .ui-icon-radio-on { background-position: -96px -144px; }
1224 | .ui-icon-radio-off { background-position: -112px -144px; }
1225 | .ui-icon-pin-w { background-position: -128px -144px; }
1226 | .ui-icon-pin-s { background-position: -144px -144px; }
1227 | .ui-icon-play { background-position: 0 -160px; }
1228 | .ui-icon-pause { background-position: -16px -160px; }
1229 | .ui-icon-seek-next { background-position: -32px -160px; }
1230 | .ui-icon-seek-prev { background-position: -48px -160px; }
1231 | .ui-icon-seek-end { background-position: -64px -160px; }
1232 | .ui-icon-seek-start { background-position: -80px -160px; }
1233 | /* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
1234 | .ui-icon-seek-first { background-position: -80px -160px; }
1235 | .ui-icon-stop { background-position: -96px -160px; }
1236 | .ui-icon-eject { background-position: -112px -160px; }
1237 | .ui-icon-volume-off { background-position: -128px -160px; }
1238 | .ui-icon-volume-on { background-position: -144px -160px; }
1239 | .ui-icon-power { background-position: 0 -176px; }
1240 | .ui-icon-signal-diag { background-position: -16px -176px; }
1241 | .ui-icon-signal { background-position: -32px -176px; }
1242 | .ui-icon-battery-0 { background-position: -48px -176px; }
1243 | .ui-icon-battery-1 { background-position: -64px -176px; }
1244 | .ui-icon-battery-2 { background-position: -80px -176px; }
1245 | .ui-icon-battery-3 { background-position: -96px -176px; }
1246 | .ui-icon-circle-plus { background-position: 0 -192px; }
1247 | .ui-icon-circle-minus { background-position: -16px -192px; }
1248 | .ui-icon-circle-close { background-position: -32px -192px; }
1249 | .ui-icon-circle-triangle-e { background-position: -48px -192px; }
1250 | .ui-icon-circle-triangle-s { background-position: -64px -192px; }
1251 | .ui-icon-circle-triangle-w { background-position: -80px -192px; }
1252 | .ui-icon-circle-triangle-n { background-position: -96px -192px; }
1253 | .ui-icon-circle-arrow-e { background-position: -112px -192px; }
1254 | .ui-icon-circle-arrow-s { background-position: -128px -192px; }
1255 | .ui-icon-circle-arrow-w { background-position: -144px -192px; }
1256 | .ui-icon-circle-arrow-n { background-position: -160px -192px; }
1257 | .ui-icon-circle-zoomin { background-position: -176px -192px; }
1258 | .ui-icon-circle-zoomout { background-position: -192px -192px; }
1259 | .ui-icon-circle-check { background-position: -208px -192px; }
1260 | .ui-icon-circlesmall-plus { background-position: 0 -208px; }
1261 | .ui-icon-circlesmall-minus { background-position: -16px -208px; }
1262 | .ui-icon-circlesmall-close { background-position: -32px -208px; }
1263 | .ui-icon-squaresmall-plus { background-position: -48px -208px; }
1264 | .ui-icon-squaresmall-minus { background-position: -64px -208px; }
1265 | .ui-icon-squaresmall-close { background-position: -80px -208px; }
1266 | .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
1267 | .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
1268 | .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
1269 | .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
1270 | .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
1271 | .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
1272 |
1273 |
1274 | /* Misc visuals
1275 | ----------------------------------*/
1276 |
1277 | /* Corner radius */
1278 | .ui-corner-all,
1279 | .ui-corner-top,
1280 | .ui-corner-left,
1281 | .ui-corner-tl {
1282 | border-top-left-radius: 3px;
1283 | }
1284 | .ui-corner-all,
1285 | .ui-corner-top,
1286 | .ui-corner-right,
1287 | .ui-corner-tr {
1288 | border-top-right-radius: 3px;
1289 | }
1290 | .ui-corner-all,
1291 | .ui-corner-bottom,
1292 | .ui-corner-left,
1293 | .ui-corner-bl {
1294 | border-bottom-left-radius: 3px;
1295 | }
1296 | .ui-corner-all,
1297 | .ui-corner-bottom,
1298 | .ui-corner-right,
1299 | .ui-corner-br {
1300 | border-bottom-right-radius: 3px;
1301 | }
1302 |
1303 | /* Overlays */
1304 | .ui-widget-overlay {
1305 | background: #aaaaaa;
1306 | opacity: .3;
1307 | filter: Alpha(Opacity=30); /* support: IE8 */
1308 | }
1309 | .ui-widget-shadow {
1310 | -webkit-box-shadow: 0px 0px 5px #666666;
1311 | box-shadow: 0px 0px 5px #666666;
1312 | }
1313 |
--------------------------------------------------------------------------------
/pub/css/snorpy.css:
--------------------------------------------------------------------------------
1 | /* ---- reset ---- */
2 |
3 | body {
4 | margin: 0;
5 | background-color: #f1f1f1;
6 | text-align: center;
7 | color:#888888;
8 | font-family: Helvetica;
9 | }
10 |
11 | #particles-js {
12 | position: fixed;
13 | left: 0;
14 | top: 0;
15 | z-index: -1;
16 | width: 100%;
17 | height: 100%;
18 | background-color: #f1f1f1;
19 | background-image: url("");
20 | background-repeat: no-repeat;
21 | background-size: cover;
22 | background-position: 50% 50%;
23 | }
24 | #miscOptions{
25 | position: absolute;
26 | width: 95%;
27 | left: 2.5%;
28 | bottom: 2%;
29 | }
30 | #globalcontainer {
31 | position: relative;
32 | min-width: 1050px;
33 | height: 100%;
34 | top: 20px;
35 | }
36 | #GlobalResults {
37 | position: absolute;
38 | left: 0;
39 | right: 0;
40 | display: none;
41 | top: -35px;
42 | transform: translateY(-50%);
43 | -ms-transform: translateY(-50%);
44 | -webkit-transform: translateY(-50%);
45 | -moz-transform: translateY(-50%);
46 | -o-transform: translateY(-50%);
47 | }
48 |
49 | #innerRuleOutput {
50 | position: absolute;
51 | border-radius: 3px;
52 | font-size: 14px;
53 | line-height: 16px;
54 | border:1px solid #aaa;
55 | width: 95%;
56 | top: 50%;
57 | overflow-y: auto;
58 | color: black;
59 | left: 2.5%;
60 | transform: translateY(-50%);
61 | -ms-transform: translateY(-50%);
62 | -webkit-transform: translateY(-50%);
63 | -moz-transform: translateY(-50%);
64 | -o-transform: translateY(-50%);
65 | height: 80%;
66 | border-radius: 3px;
67 | background-color: rgba(255, 255, 255, 0.6);
68 | }
69 |
70 | /* ---- stats.js ---- */
71 | .SNORPY {
72 | color: #fff;
73 | font-size: 60px;
74 | font-weight: bold;
75 | font-family: Helvetica;
76 | text-shadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 10px 10px rgba(0,0,0,.2), 0 20px 20px rgba(0,0,0,.15);
77 | }
78 | hr.style1{
79 | border-top: 1px solid rgba(140, 139, 139, 0.7);
80 | width: 95%;
81 | top: 47.5%;
82 | left: 2.5%;
83 | transform: translateY(-50%);
84 | -ms-transform: translateY(-50%);
85 | -webkit-transform: translateY(-50%);
86 | -moz-transform: translateY(-50%);
87 | -o-transform: translateY(-50%);
88 | position: absolute;
89 |
90 | }
91 | .check {
92 | position: absolute;
93 | width: 20px;
94 | height: 20px;
95 | top: 66px;
96 | }
97 | .check2 {
98 | width: 20px;
99 | height: 20px;
100 | }
101 | .contentpluses {
102 | position: absolute;
103 | left: 235px;
104 | top: 70px;
105 | }
106 | .contentpluses:focus {
107 | -moz-transform: scale(1.1);
108 | -webkit-transform: scale(1.1);
109 | transform: scale(1.1);
110 | }
111 | #thecontent{
112 | position: absolute;
113 | top: 20px;
114 | left: 5%;
115 | width: 90%;
116 | }
117 | #theregex{
118 | position: absolute;
119 | top: 20px;
120 | left: 5%;
121 | width: 90%;
122 | }
123 | #theoffset {
124 | position: absolute;
125 | left: 5%;
126 | top: 65px;
127 | }
128 | #thedepth {
129 | position: absolute;
130 | left: 31.5%;
131 | top: 65px;
132 | }
133 | .contentHeaders {
134 | position: absolute;
135 | left: -50px;
136 | right: 0;
137 | top: -40px;
138 | }
139 | .plusexplode {
140 | z-index: 2;
141 | }
142 | #pcrediv text {
143 | font-size: 12px;
144 | }
145 | #contentdiv{
146 | position: absolute;
147 | background-color: rgba(255, 255, 255, 0.6);
148 | height: 40%;
149 | border-radius: 4px;
150 | top: 5%;
151 | width: 95%;
152 | left: 2.5%;
153 | border:1px solid #aaa;
154 | }
155 | #pcrediv{
156 | position: absolute;
157 | background-color: rgba(255, 255, 255, 0.6);
158 | width: 95%;
159 | height: 40%;
160 | border-radius: 4px;
161 | top: 55%;
162 | left: 2.5%;
163 | border:1px solid #aaa;
164 | }
165 | #rightarrow {
166 | color: black;
167 | font-size: 27px;
168 | }
169 | #headermessage{
170 | width: 610px;
171 | }
172 | #headerInner1{
173 | position: absolute;
174 | top:12%;
175 | left:0;
176 | width: 100%;
177 | }
178 | #headerInner2{
179 | position: absolute;
180 | top:55%;
181 | left:0;
182 | width: 100%;
183 | }
184 | input {
185 | width: 120px;
186 | border-radius: 3px;
187 | height: 30px;
188 | font-size: 14px;
189 | color: #595959;
190 | background-color: rgba(255, 255, 255, 0.6);
191 | }
192 |
193 | input:focus {
194 | outline:none;
195 | color: black;
196 | border-color:#9ecaed;
197 | box-shadow:0 0 10px #9ecaed;
198 | background-color: rgba(255, 255, 255, 1);
199 | }
200 | select {
201 | width: 80px;
202 | height: 30px;
203 | font-size: 14px;
204 | color: #595959;
205 | border-radius: 3px;
206 | background-color: rgba(255, 255, 255, 0.6);
207 | }
208 |
209 | select:focus {
210 | outline:none;
211 | color: black;
212 | border-color:#9ecaed;
213 | box-shadow:0 0 10px #9ecaed;
214 | background-color: rgba(255, 255, 255, 1);
215 | }
216 | .mainsquares {
217 | background-color: rgba(0, 82, 204, 0.06);
218 | border-radius: 3px;
219 | border:1px solid #aaa;
220 | clear:left;
221 | text-shadow: none;
222 | }
223 | .rulebody
224 | {
225 | position: relative;
226 | margin: auto;
227 | top: 0px;
228 | right: 0;
229 | line-height: 10%;
230 | left: 0;
231 | width: 1005px;
232 | height: 100px;
233 | }
234 |
235 | .selectedProtoOptions{
236 | position: absolute;
237 | left: 8.5%;
238 | width: 82%;
239 | height: 40%;
240 | top: 4.5%;
241 | font-size: 12;
242 | }
243 | .rulebody + .protoOptions + .contentMatch {
244 | margin-top: 4px;
245 | }
246 | .protoOptions
247 | {
248 | position: relative;
249 | margin: auto;
250 | top: 0px;
251 | right: 0px;
252 | line-height: 10%;
253 | left: 0;
254 | width: 500px;
255 | height: 350px;
256 | }
257 | .contentMatch
258 | {
259 | white-space: nowrap;
260 | position: relative;
261 | margin: auto;
262 | top: 0px;
263 | right: 0;
264 | line-height: 10%;
265 | left: 0px;
266 | width: 500px;
267 | height: 350px;
268 | }
269 | .contentMatch, .protoOptions
270 | {
271 | display: inline-block;
272 | margin: auto;
273 | }
274 | :required {
275 | background: red;
276 | }
277 | .ruleOutput
278 | {
279 | position: relative;
280 | margin: auto;
281 | top: 0px;
282 | right: 0;
283 | line-height: 10%;
284 | left: 0;
285 | width: 1005px;
286 | height: 100px;
287 | }
288 | .submit {
289 | position: absolute;
290 | padding: 3px 15px;
291 | margin: auto;
292 | border-radius: 10px;
293 | font-family: 'Helvetica', cursive;
294 | font-size: 15px;
295 | color: #FFF;
296 | left:46%;
297 | top: 73%;
298 | text-decoration: none;
299 | background-color: #3498DB;
300 | border-bottom: 5px solid #2980B9;
301 | text-shadow: 0px -2px #2980B9;
302 | /* Animation */
303 | transition: all 0.1s;
304 | -webkit-transition: all 0.1s;
305 | }
306 | .submit:hover,
307 | .submit:focus {
308 | text-decoration: none;
309 | color: #fff;
310 | }
311 | .submit:active {
312 | transform: translate(0px,5px);
313 | -webkit-transform: translate(0px,5px);
314 | border-bottom: 1px solid;
315 | }
316 |
317 | .item {
318 | overflow: visible;
319 | }
320 | .item img {
321 | max-width: 100%;
322 | -moz-transition: all 0.3s;
323 | -webkit-transition: all 0.3s;
324 | transition: all 0.3s;
325 | }
326 | .item:hover img {
327 | -moz-transform: scale(1.2);
328 | -webkit-transform: scale(1.2);
329 | transform: scale(1.2);
330 | }
331 | .tcpinputs {
332 | width: 46%;
333 | }
334 |
--------------------------------------------------------------------------------
/pub/html/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Snorpy 2.0 - Web Based Snort Rule Creator
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
SNORPY
15 |
A Web Based Snort Rule Creator / Maker for Building Simple Snort Rules
16 |
17 |
18 |
19 |
20 |
21 |
32 |
33 |
39 |
40 |
41 |
42 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |

84 |
85 |
86 |
87 |
104 |
105 |
106 |
107 |
108 |
109 |

110 |
111 |
112 |
113 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 | ->
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 | (
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
249 |
250 |
251 |
252 |
253 |
254 |
255 | )
256 |
257 |
258 |
259 |
Created by Christopher Davis   Github
260 |
Test
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |
272 |
273 |
274 |
275 |
276 |
--------------------------------------------------------------------------------
/pub/images/accept.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chrisjd20/Snorpy/77a4a1cc85ef6988fdc1723a6c190b24beecbc3c/pub/images/accept.png
--------------------------------------------------------------------------------
/pub/images/cancel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chrisjd20/Snorpy/77a4a1cc85ef6988fdc1723a6c190b24beecbc3c/pub/images/cancel.png
--------------------------------------------------------------------------------
/pub/images/green_plus.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chrisjd20/Snorpy/77a4a1cc85ef6988fdc1723a6c190b24beecbc3c/pub/images/green_plus.png
--------------------------------------------------------------------------------
/pub/images/undo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/chrisjd20/Snorpy/77a4a1cc85ef6988fdc1723a6c190b24beecbc3c/pub/images/undo.png
--------------------------------------------------------------------------------
/pub/js/jquery.min.js:
--------------------------------------------------------------------------------
1 | /*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */
2 | !function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R),
3 | a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,""],col:[2,""],tr:[2,""],td:[3,""],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/