dfect 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,347 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html>
4
- <head>
5
- <meta name="Content-Type" content="text/html; charset=utf-8" />
6
- <link rel="stylesheet" href="css/full_list.css" type="text/css" media="screen" charset="utf-8" />
7
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
8
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
9
- <script type="text/javascript" charset="utf-8" src="js/full_list.js"></script>
10
- <base id="base_target" target="_parent" />
11
- </head>
12
- <body>
13
- <script type="text/javascript" charset="utf-8">
14
- if (window.top.frames.main) {
15
- document.getElementById('base_target').target = 'main';
16
- document.body.className = 'frames';
17
- }
18
- </script>
19
- <div id="content">
20
- <h1 id="full_list_header">Method List</h1>
21
- <div id="nav">
22
- <a target="_self" href="class_list.html">Classes</a> |
23
- <a target="_self" href="method_list.html">Methods</a> |
24
- <a target="_self" href="file_list.html">Files</a>
25
- </div>
26
- <div id="search">Search: <input type="text" /></div>
27
-
28
- <ul id="full_list" class="methods">
29
-
30
-
31
- <li class="r1 ">
32
- <a href="Dfect.html#%3C-class_method" title="Dfect.< (method)"><</a>
33
-
34
- <small>Dfect</small>
35
-
36
- </li>
37
-
38
-
39
- <li class="r2 ">
40
- <a href="Dfect.html#%3C%3C-class_method" title="Dfect.<< (method)"><<</a>
41
-
42
- <small>Dfect</small>
43
-
44
- </li>
45
-
46
-
47
- <li class="r1 ">
48
- <a href="Dfect.html#%3E-class_method" title="Dfect.> (method)">></a>
49
-
50
- <small>Dfect</small>
51
-
52
- </li>
53
-
54
-
55
- <li class="r2 ">
56
- <a href="Dfect.html#%3E%3E-class_method" title="Dfect.>> (method)">>></a>
57
-
58
- <small>Dfect</small>
59
-
60
- </li>
61
-
62
-
63
- <li class="r1 ">
64
- <a href="Dfect.html#C-class_method" title="Dfect.C (method)">C</a>
65
-
66
- <small>Dfect</small>
67
-
68
- </li>
69
-
70
-
71
- <li class="r2 ">
72
- <a href="Dfect.html#C%21-class_method" title="Dfect.C! (method)">C!</a>
73
-
74
- <small>Dfect</small>
75
-
76
- </li>
77
-
78
-
79
- <li class="r1 ">
80
- <a href="Dfect.html#C%3F-class_method" title="Dfect.C? (method)">C?</a>
81
-
82
- <small>Dfect</small>
83
-
84
- </li>
85
-
86
-
87
- <li class="r2 ">
88
- <a href="Dfect.html#D-class_method" title="Dfect.D (method)">D</a>
89
-
90
- <small>Dfect</small>
91
-
92
- </li>
93
-
94
-
95
- <li class="r1 ">
96
- <a href="Dfect.html#D%21-class_method" title="Dfect.D! (method)">D!</a>
97
-
98
- <small>Dfect</small>
99
-
100
- </li>
101
-
102
-
103
- <li class="r2 ">
104
- <a href="Dfect.html#E-class_method" title="Dfect.E (method)">E</a>
105
-
106
- <small>Dfect</small>
107
-
108
- </li>
109
-
110
-
111
- <li class="r1 ">
112
- <a href="Dfect.html#E%21-class_method" title="Dfect.E! (method)">E!</a>
113
-
114
- <small>Dfect</small>
115
-
116
- </li>
117
-
118
-
119
- <li class="r2 ">
120
- <a href="Dfect.html#E%3F-class_method" title="Dfect.E? (method)">E?</a>
121
-
122
- <small>Dfect</small>
123
-
124
- </li>
125
-
126
-
127
- <li class="r1 ">
128
- <a href="Dfect.html#F%3F-class_method" title="Dfect.F? (method)">F?</a>
129
-
130
- <small>Dfect</small>
131
-
132
- </li>
133
-
134
-
135
- <li class="r2 ">
136
- <a href="Dfect.html#L-class_method" title="Dfect.L (method)">L</a>
137
-
138
- <small>Dfect</small>
139
-
140
- </li>
141
-
142
-
143
- <li class="r1 ">
144
- <a href="Dfect.html#S-class_method" title="Dfect.S (method)">S</a>
145
-
146
- <small>Dfect</small>
147
-
148
- </li>
149
-
150
-
151
- <li class="r2 ">
152
- <a href="Dfect.html#S%21-class_method" title="Dfect.S! (method)">S!</a>
153
-
154
- <small>Dfect</small>
155
-
156
- </li>
157
-
158
-
159
- <li class="r1 ">
160
- <a href="Dfect.html#S%3F-class_method" title="Dfect.S? (method)">S?</a>
161
-
162
- <small>Dfect</small>
163
-
164
- </li>
165
-
166
-
167
- <li class="r2 ">
168
- <a href="Dfect.html#T-class_method" title="Dfect.T (method)">T</a>
169
-
170
- <small>Dfect</small>
171
-
172
- </li>
173
-
174
-
175
- <li class="r1 ">
176
- <a href="Dfect.html#T%21-class_method" title="Dfect.T! (method)">T!</a>
177
-
178
- <small>Dfect</small>
179
-
180
- </li>
181
-
182
-
183
- <li class="r2 ">
184
- <a href="Dfect.html#T%3F-class_method" title="Dfect.T? (method)">T?</a>
185
-
186
- <small>Dfect</small>
187
-
188
- </li>
189
-
190
-
191
- <li class="r1 ">
192
- <a href="Dfect.html#after-instance_method" title="Dfect#after (method)">#after</a>
193
-
194
- <small>Dfect</small>
195
-
196
- </li>
197
-
198
-
199
- <li class="r2 ">
200
- <a href="Dfect/Suite.html#after_all-instance_method" title="Dfect::Suite#after_all (method)">#after_all</a>
201
-
202
- <small>Dfect::Suite</small>
203
-
204
- </li>
205
-
206
-
207
- <li class="r1 ">
208
- <a href="Dfect/Suite.html#after_each-instance_method" title="Dfect::Suite#after_each (method)">#after_each</a>
209
-
210
- <small>Dfect::Suite</small>
211
-
212
- </li>
213
-
214
-
215
- <li class="r2 ">
216
- <a href="Dfect.html#before-instance_method" title="Dfect#before (method)">#before</a>
217
-
218
- <small>Dfect</small>
219
-
220
- </li>
221
-
222
-
223
- <li class="r1 ">
224
- <a href="Dfect/Suite.html#before_all-instance_method" title="Dfect::Suite#before_all (method)">#before_all</a>
225
-
226
- <small>Dfect::Suite</small>
227
-
228
- </li>
229
-
230
-
231
- <li class="r2 ">
232
- <a href="Dfect/Suite.html#before_each-instance_method" title="Dfect::Suite#before_each (method)">#before_each</a>
233
-
234
- <small>Dfect::Suite</small>
235
-
236
- </li>
237
-
238
-
239
- <li class="r1 ">
240
- <a href="Dfect/Suite/Test.html#block-instance_method" title="Dfect::Suite::Test#block (method)">#block</a>
241
-
242
- <small>Dfect::Suite::Test</small>
243
-
244
- </li>
245
-
246
-
247
- <li class="r2 ">
248
- <a href="Dfect/Suite/Test.html#desc-instance_method" title="Dfect::Suite::Test#desc (method)">#desc</a>
249
-
250
- <small>Dfect::Suite::Test</small>
251
-
252
- </li>
253
-
254
-
255
- <li class="r1 ">
256
- <a href="Dfect.html#info-class_method" title="Dfect.info (method)">info</a>
257
-
258
- <small>Dfect</small>
259
-
260
- </li>
261
-
262
-
263
- <li class="r2 ">
264
- <a href="Dfect/Suite.html#initialize-instance_method" title="Dfect::Suite#initialize (method)">#initialize</a>
265
-
266
- <small>Dfect::Suite</small>
267
-
268
- </li>
269
-
270
-
271
- <li class="r1 ">
272
- <a href="Dfect.html#inspect-class_method" title="Dfect.inspect (method)">inspect</a>
273
-
274
- <small>Dfect</small>
275
-
276
- </li>
277
-
278
-
279
- <li class="r2 ">
280
- <a href="Dfect.html#options-class_method" title="Dfect.options (method)">options</a>
281
-
282
- <small>Dfect</small>
283
-
284
- </li>
285
-
286
-
287
- <li class="r1 ">
288
- <a href="Dfect.html#report-class_method" title="Dfect.report (method)">report</a>
289
-
290
- <small>Dfect</small>
291
-
292
- </li>
293
-
294
-
295
- <li class="r2 ">
296
- <a href="Dfect.html#require-class_method" title="Dfect.require (method)">require</a>
297
-
298
- <small>Dfect</small>
299
-
300
- </li>
301
-
302
-
303
- <li class="r1 ">
304
- <a href="Dfect.html#run-class_method" title="Dfect.run (method)">run</a>
305
-
306
- <small>Dfect</small>
307
-
308
- </li>
309
-
310
-
311
- <li class="r2 ">
312
- <a href="Dfect/Suite/Test.html#sandbox-instance_method" title="Dfect::Suite::Test#sandbox (method)">#sandbox</a>
313
-
314
- <small>Dfect::Suite::Test</small>
315
-
316
- </li>
317
-
318
-
319
- <li class="r1 ">
320
- <a href="Dfect.html#stop-class_method" title="Dfect.stop (method)">stop</a>
321
-
322
- <small>Dfect</small>
323
-
324
- </li>
325
-
326
-
327
- <li class="r2 ">
328
- <a href="Dfect/Suite.html#tests-instance_method" title="Dfect::Suite#tests (method)">#tests</a>
329
-
330
- <small>Dfect::Suite</small>
331
-
332
- </li>
333
-
334
-
335
- <li class="r1 ">
336
- <a href="Class.html#to_yaml-instance_method" title="Class#to_yaml (method)">#to_yaml</a>
337
-
338
- <small>Class</small>
339
-
340
- </li>
341
-
342
-
343
- </ul>
344
- </div>
345
- </body>
346
- </html>
347
-
@@ -1,89 +0,0 @@
1
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
- <head>
5
- <meta name="Content-Type" content="text/html; charset=utf-8" />
6
- <title>Top Level Namespace</title>
7
- <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
- <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
-
10
- <script type="text/javascript" charset="utf-8">
11
- relpath = '';
12
- if (relpath != '') relpath += '/';
13
- </script>
14
- <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
- <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
-
17
- </head>
18
- <body>
19
- <script type="text/javascript" charset="utf-8">
20
- if (window.top.frames.main) document.body.className = 'frames';
21
- </script>
22
-
23
- <div id="header">
24
- <div id="menu">
25
-
26
- <a href="_index.html">Index</a> &raquo;
27
-
28
-
29
- <span class="title">Top Level Namespace</span>
30
-
31
-
32
- <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
33
- </div>
34
-
35
- <div id="search">
36
- <a id="class_list_link" href="#">Class List</a>
37
- <a id="method_list_link" href="#">Method List</a>
38
- <a id ="file_list_link" href="#">File List</a>
39
- </div>
40
-
41
- <div class="clear"></div>
42
- </div>
43
-
44
- <iframe id="search_frame"></iframe>
45
-
46
- <div id="content"><h1>Top Level Namespace
47
-
48
-
49
- </h1>
50
-
51
- <dl class="box">
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
- </dl>
61
- <div class="clear"></div>
62
-
63
- <h2>Defined Under Namespace</h2>
64
- <p class="children">
65
-
66
-
67
- <strong class="modules">Modules:</strong> <a href="Dfect.html" title="Dfect (module)">Dfect</a>
68
-
69
-
70
-
71
- <strong class="classes">Classes:</strong> <a href="Object.html" title="Object (class)">Object</a>
72
-
73
-
74
- </p>
75
-
76
-
77
-
78
-
79
-
80
- </div>
81
-
82
- <div id="footer">
83
- Generated on Wed Mar 31 23:33:35 2010 by
84
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool">yard</a>
85
- 0.5.4 (ruby-1.9.1).
86
- </div>
87
-
88
- </body>
89
- </html>
@@ -1,2750 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
- <html xmlns="http://www.w3.org/1999/xhtml">
5
- <head>
6
- <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
7
-
8
- <meta name="generator" content="ERBook 9.2.1 (2009-11-18) &mdash; http://snk.tuxfamily.org/lib/erbook/"/>
9
-
10
- <title>Dfect 2.1.0 (2010-03-31) &mdash; Assertion testing library for Ruby</title>
11
-
12
- <meta name="author" content="Suraj N. Kurapati"/>
13
-
14
- <meta name="date" content="31 March 2010"/>
15
-
16
- <link rel="alternate" type="application/rss+xml" href="ann.xml"/>
17
-
18
- <style type="text/css" media="screen">
19
- /*<![CDATA[*/
20
- /*
21
- * jQuery UI CSS Framework
22
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
23
- * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
24
- */
25
-
26
- /* Layout helpers
27
- ----------------------------------*/
28
- .ui-helper-hidden { display: none; }
29
- .ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
30
- .ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
31
- .ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
32
- .ui-helper-clearfix { display: inline-block; }
33
- /* required comment for clearfix to work in Opera \*/
34
- * html .ui-helper-clearfix { height:1%; }
35
- .ui-helper-clearfix { display:block; }
36
- /* end clearfix */
37
- .ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
38
-
39
-
40
- /* Interaction Cues
41
- ----------------------------------*/
42
- .ui-state-disabled { cursor: default !important; }
43
-
44
-
45
- /* Icons
46
- ----------------------------------*/
47
-
48
- /* states and images */
49
- .ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
50
-
51
-
52
- /* Misc visuals
53
- ----------------------------------*/
54
-
55
- /* Overlays */
56
- .ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
57
-
58
-
59
-
60
- /*
61
- * jQuery UI CSS Framework
62
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
63
- * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.
64
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
65
- */
66
-
67
-
68
- /* Component containers
69
- ----------------------------------*/
70
- .ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
71
- .ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
72
- .ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAeUlEQVRoge3OMQHAIBAAsVL/nh8JDDfAkCjImpn5HvbfDpwIVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVoKVYCVYCVaClWAlWAlWgpVgJVgJVhtqiwTEKTLXTgAAAABJRU5ErkJggg==") 50% 50% repeat-x; color: #222222; }
73
- .ui-widget-content a { color: #222222; }
74
- .ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAALElEQVQYlWN49OjRfyYGBgaGIUT8//8fSqBx0Yh///4RL8vAwAAVQ2MNOwIAl6g6KkOJwk8AAAAASUVORK5CYII=") 50% 50% repeat-x; color: #222222; font-weight: bold; }
75
- .ui-widget-header a { color: #222222; }
76
-
77
- /* Interaction states
78
- ----------------------------------*/
79
- .ui-state-default, .ui-widget-content .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANUlEQVQ4je3LMQoAIBADwb38/6t5wFXaWAiCtUiaYZvF9hBACOFbuntVVe11B0CSjjeE8BwThQIJ8dhEl0YAAAAASUVORK5CYII=") 50% 50% repeat-x; font-weight: normal; color: #555555; outline: none; }
80
- .ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; outline: none; }
81
- .ui-state-hover, .ui-widget-content .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus { border: 1px solid #999999; background: #dadada url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAANklEQVQ4jWN48uTJfyYGBgaGUWKUGCWGLfHt2zcoi5GREYNgYmJCZiG42IiB98woMUqMEtgIAMdjCdyg+eEBAAAAAElFTkSuQmCC") 50% 50% repeat-x; font-weight: normal; color: #212121; outline: none; }
82
- .ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; outline: none; }
83
- .ui-state-active, .ui-widget-content .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAMElEQVQ4je3LIQ4AIBTD0O3f/8wrFgmKhMy8pKJKwkhSKeVbbGuAPU9f4PIopTxgAeS0DRtI4yK0AAAAAElFTkSuQmCC") 50% 50% repeat-x; font-weight: normal; color: #212121; outline: none; }
84
- .ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; outline: none; text-decoration: none; }
85
-
86
- /* Interaction Cues
87
- ----------------------------------*/
88
- .ui-state-highlight, .ui-widget-content .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAP0lEQVQ4je3PMQrAMABC0a/3v2zX0mCXNkOgc6C4PARd5DqPGKCU8luS8SbAQhiCQRgJE56kZTfbbP9RSvnkBsWcEAZRWcgqAAAAAElFTkSuQmCC") 50% 50% repeat-x; color: #363636; }
89
- .ui-state-highlight a, .ui-widget-content .ui-state-highlight a { color: #363636; }
90
- .ui-state-error, .ui-widget-content .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAPklEQVQ4je3PMQqAMABD0Z/c/7aCIAXjJIhD10LJ8vgZw30eMUApZV/GhZNgSTjoLYElY/hNMJ/S6gullCkPiCIPCr4NiEwAAAAASUVORK5CYII=") 50% 50% repeat-x; color: #cd0a0a; }
91
- .ui-state-error a, .ui-widget-content .ui-state-error a { color: #cd0a0a; }
92
- .ui-state-error-text, .ui-widget-content .ui-state-error-text { color: #cd0a0a; }
93
- .ui-state-disabled, .ui-widget-content .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
94
- .ui-priority-primary, .ui-widget-content .ui-priority-primary { font-weight: bold; }
95
- .ui-priority-secondary, .ui-widget-content .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
96
-
97
- /* Icons
98
- ----------------------------------*/
99
-
100
- /* states and images */
101
- .ui-icon { width: 16px; height: 16px; background-image: url("data:image/png;base64,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"); }
102
- .ui-widget-content .ui-icon {background-image: url("data:image/png;base64,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"); }
103
- .ui-widget-header .ui-icon {background-image: url("data:image/png;base64,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"); }
104
- .ui-state-default .ui-icon { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEWIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIiIighcp7AAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg=="); }
105
- .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url("data:image/png;base64,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"); }
106
- .ui-state-active .ui-icon {background-image: url("data:image/png;base64,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"); }
107
- .ui-state-highlight .ui-icon {background-image: url("data:image/png;base64,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"); }
108
- .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEXNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrNCgrqN5j8AAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg=="); }
109
-
110
- /* positioning */
111
- .ui-icon-carat-1-n { background-position: 0 0; }
112
- .ui-icon-carat-1-ne { background-position: -16px 0; }
113
- .ui-icon-carat-1-e { background-position: -32px 0; }
114
- .ui-icon-carat-1-se { background-position: -48px 0; }
115
- .ui-icon-carat-1-s { background-position: -64px 0; }
116
- .ui-icon-carat-1-sw { background-position: -80px 0; }
117
- .ui-icon-carat-1-w { background-position: -96px 0; }
118
- .ui-icon-carat-1-nw { background-position: -112px 0; }
119
- .ui-icon-carat-2-n-s { background-position: -128px 0; }
120
- .ui-icon-carat-2-e-w { background-position: -144px 0; }
121
- .ui-icon-triangle-1-n { background-position: 0 -16px; }
122
- .ui-icon-triangle-1-ne { background-position: -16px -16px; }
123
- .ui-icon-triangle-1-e { background-position: -32px -16px; }
124
- .ui-icon-triangle-1-se { background-position: -48px -16px; }
125
- .ui-icon-triangle-1-s { background-position: -64px -16px; }
126
- .ui-icon-triangle-1-sw { background-position: -80px -16px; }
127
- .ui-icon-triangle-1-w { background-position: -96px -16px; }
128
- .ui-icon-triangle-1-nw { background-position: -112px -16px; }
129
- .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
130
- .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
131
- .ui-icon-arrow-1-n { background-position: 0 -32px; }
132
- .ui-icon-arrow-1-ne { background-position: -16px -32px; }
133
- .ui-icon-arrow-1-e { background-position: -32px -32px; }
134
- .ui-icon-arrow-1-se { background-position: -48px -32px; }
135
- .ui-icon-arrow-1-s { background-position: -64px -32px; }
136
- .ui-icon-arrow-1-sw { background-position: -80px -32px; }
137
- .ui-icon-arrow-1-w { background-position: -96px -32px; }
138
- .ui-icon-arrow-1-nw { background-position: -112px -32px; }
139
- .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
140
- .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
141
- .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
142
- .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
143
- .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
144
- .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
145
- .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
146
- .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
147
- .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
148
- .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
149
- .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
150
- .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
151
- .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
152
- .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
153
- .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
154
- .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
155
- .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
156
- .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
157
- .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
158
- .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
159
- .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
160
- .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
161
- .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
162
- .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
163
- .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
164
- .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
165
- .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
166
- .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
167
- .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
168
- .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
169
- .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
170
- .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
171
- .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
172
- .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
173
- .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
174
- .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
175
- .ui-icon-arrow-4 { background-position: 0 -80px; }
176
- .ui-icon-arrow-4-diag { background-position: -16px -80px; }
177
- .ui-icon-extlink { background-position: -32px -80px; }
178
- .ui-icon-newwin { background-position: -48px -80px; }
179
- .ui-icon-refresh { background-position: -64px -80px; }
180
- .ui-icon-shuffle { background-position: -80px -80px; }
181
- .ui-icon-transfer-e-w { background-position: -96px -80px; }
182
- .ui-icon-transferthick-e-w { background-position: -112px -80px; }
183
- .ui-icon-folder-collapsed { background-position: 0 -96px; }
184
- .ui-icon-folder-open { background-position: -16px -96px; }
185
- .ui-icon-document { background-position: -32px -96px; }
186
- .ui-icon-document-b { background-position: -48px -96px; }
187
- .ui-icon-note { background-position: -64px -96px; }
188
- .ui-icon-mail-closed { background-position: -80px -96px; }
189
- .ui-icon-mail-open { background-position: -96px -96px; }
190
- .ui-icon-suitcase { background-position: -112px -96px; }
191
- .ui-icon-comment { background-position: -128px -96px; }
192
- .ui-icon-person { background-position: -144px -96px; }
193
- .ui-icon-print { background-position: -160px -96px; }
194
- .ui-icon-trash { background-position: -176px -96px; }
195
- .ui-icon-locked { background-position: -192px -96px; }
196
- .ui-icon-unlocked { background-position: -208px -96px; }
197
- .ui-icon-bookmark { background-position: -224px -96px; }
198
- .ui-icon-tag { background-position: -240px -96px; }
199
- .ui-icon-home { background-position: 0 -112px; }
200
- .ui-icon-flag { background-position: -16px -112px; }
201
- .ui-icon-calendar { background-position: -32px -112px; }
202
- .ui-icon-cart { background-position: -48px -112px; }
203
- .ui-icon-pencil { background-position: -64px -112px; }
204
- .ui-icon-clock { background-position: -80px -112px; }
205
- .ui-icon-disk { background-position: -96px -112px; }
206
- .ui-icon-calculator { background-position: -112px -112px; }
207
- .ui-icon-zoomin { background-position: -128px -112px; }
208
- .ui-icon-zoomout { background-position: -144px -112px; }
209
- .ui-icon-search { background-position: -160px -112px; }
210
- .ui-icon-wrench { background-position: -176px -112px; }
211
- .ui-icon-gear { background-position: -192px -112px; }
212
- .ui-icon-heart { background-position: -208px -112px; }
213
- .ui-icon-star { background-position: -224px -112px; }
214
- .ui-icon-link { background-position: -240px -112px; }
215
- .ui-icon-cancel { background-position: 0 -128px; }
216
- .ui-icon-plus { background-position: -16px -128px; }
217
- .ui-icon-plusthick { background-position: -32px -128px; }
218
- .ui-icon-minus { background-position: -48px -128px; }
219
- .ui-icon-minusthick { background-position: -64px -128px; }
220
- .ui-icon-close { background-position: -80px -128px; }
221
- .ui-icon-closethick { background-position: -96px -128px; }
222
- .ui-icon-key { background-position: -112px -128px; }
223
- .ui-icon-lightbulb { background-position: -128px -128px; }
224
- .ui-icon-scissors { background-position: -144px -128px; }
225
- .ui-icon-clipboard { background-position: -160px -128px; }
226
- .ui-icon-copy { background-position: -176px -128px; }
227
- .ui-icon-contact { background-position: -192px -128px; }
228
- .ui-icon-image { background-position: -208px -128px; }
229
- .ui-icon-video { background-position: -224px -128px; }
230
- .ui-icon-script { background-position: -240px -128px; }
231
- .ui-icon-alert { background-position: 0 -144px; }
232
- .ui-icon-info { background-position: -16px -144px; }
233
- .ui-icon-notice { background-position: -32px -144px; }
234
- .ui-icon-help { background-position: -48px -144px; }
235
- .ui-icon-check { background-position: -64px -144px; }
236
- .ui-icon-bullet { background-position: -80px -144px; }
237
- .ui-icon-radio-off { background-position: -96px -144px; }
238
- .ui-icon-radio-on { background-position: -112px -144px; }
239
- .ui-icon-pin-w { background-position: -128px -144px; }
240
- .ui-icon-pin-s { background-position: -144px -144px; }
241
- .ui-icon-play { background-position: 0 -160px; }
242
- .ui-icon-pause { background-position: -16px -160px; }
243
- .ui-icon-seek-next { background-position: -32px -160px; }
244
- .ui-icon-seek-prev { background-position: -48px -160px; }
245
- .ui-icon-seek-end { background-position: -64px -160px; }
246
- .ui-icon-seek-first { background-position: -80px -160px; }
247
- .ui-icon-stop { background-position: -96px -160px; }
248
- .ui-icon-eject { background-position: -112px -160px; }
249
- .ui-icon-volume-off { background-position: -128px -160px; }
250
- .ui-icon-volume-on { background-position: -144px -160px; }
251
- .ui-icon-power { background-position: 0 -176px; }
252
- .ui-icon-signal-diag { background-position: -16px -176px; }
253
- .ui-icon-signal { background-position: -32px -176px; }
254
- .ui-icon-battery-0 { background-position: -48px -176px; }
255
- .ui-icon-battery-1 { background-position: -64px -176px; }
256
- .ui-icon-battery-2 { background-position: -80px -176px; }
257
- .ui-icon-battery-3 { background-position: -96px -176px; }
258
- .ui-icon-circle-plus { background-position: 0 -192px; }
259
- .ui-icon-circle-minus { background-position: -16px -192px; }
260
- .ui-icon-circle-close { background-position: -32px -192px; }
261
- .ui-icon-circle-triangle-e { background-position: -48px -192px; }
262
- .ui-icon-circle-triangle-s { background-position: -64px -192px; }
263
- .ui-icon-circle-triangle-w { background-position: -80px -192px; }
264
- .ui-icon-circle-triangle-n { background-position: -96px -192px; }
265
- .ui-icon-circle-arrow-e { background-position: -112px -192px; }
266
- .ui-icon-circle-arrow-s { background-position: -128px -192px; }
267
- .ui-icon-circle-arrow-w { background-position: -144px -192px; }
268
- .ui-icon-circle-arrow-n { background-position: -160px -192px; }
269
- .ui-icon-circle-zoomin { background-position: -176px -192px; }
270
- .ui-icon-circle-zoomout { background-position: -192px -192px; }
271
- .ui-icon-circle-check { background-position: -208px -192px; }
272
- .ui-icon-circlesmall-plus { background-position: 0 -208px; }
273
- .ui-icon-circlesmall-minus { background-position: -16px -208px; }
274
- .ui-icon-circlesmall-close { background-position: -32px -208px; }
275
- .ui-icon-squaresmall-plus { background-position: -48px -208px; }
276
- .ui-icon-squaresmall-minus { background-position: -64px -208px; }
277
- .ui-icon-squaresmall-close { background-position: -80px -208px; }
278
- .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
279
- .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
280
- .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
281
- .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
282
- .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
283
- .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
284
-
285
-
286
- /* Misc visuals
287
- ----------------------------------*/
288
-
289
- /* Corner radius */
290
- .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; }
291
- .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
292
- .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
293
- .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
294
- .ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; }
295
- .ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
296
- .ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; }
297
- .ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; }
298
- .ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; }
299
-
300
- /* Overlays */
301
- .ui-widget-overlay { background: #aaaaaa url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC") 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
302
- .ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC") 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; }/* Accordion
303
- ----------------------------------*/
304
- .ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
305
- .ui-accordion .ui-accordion-li-fix { display: inline; }
306
- .ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
307
- .ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em 2.2em; }
308
- .ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
309
- .ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; }
310
- .ui-accordion .ui-accordion-content-active { display: block; }/* Datepicker
311
- ----------------------------------*/
312
- .ui-datepicker { width: 17em; padding: .2em .2em 0; }
313
- .ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
314
- .ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
315
- .ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
316
- .ui-datepicker .ui-datepicker-prev { left:2px; }
317
- .ui-datepicker .ui-datepicker-next { right:2px; }
318
- .ui-datepicker .ui-datepicker-prev-hover { left:1px; }
319
- .ui-datepicker .ui-datepicker-next-hover { right:1px; }
320
- .ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; }
321
- .ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
322
- .ui-datepicker .ui-datepicker-title select { float:left; font-size:1em; margin:1px 0; }
323
- .ui-datepicker select.ui-datepicker-month-year {width: 100%;}
324
- .ui-datepicker select.ui-datepicker-month,
325
- .ui-datepicker select.ui-datepicker-year { width: 49%;}
326
- .ui-datepicker .ui-datepicker-title select.ui-datepicker-year { float: right; }
327
- .ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
328
- .ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; }
329
- .ui-datepicker td { border: 0; padding: 1px; }
330
- .ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
331
- .ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
332
- .ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
333
- .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
334
-
335
- /* with multiple calendars */
336
- .ui-datepicker.ui-datepicker-multi { width:auto; }
337
- .ui-datepicker-multi .ui-datepicker-group { float:left; }
338
- .ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
339
- .ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
340
- .ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
341
- .ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
342
- .ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
343
- .ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
344
- .ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
345
- .ui-datepicker-row-break { clear:both; width:100%; }
346
-
347
- /* RTL support */
348
- .ui-datepicker-rtl { direction: rtl; }
349
- .ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
350
- .ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
351
- .ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
352
- .ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
353
- .ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
354
- .ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
355
- .ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
356
- .ui-datepicker-rtl .ui-datepicker-group { float:right; }
357
- .ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
358
- .ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
359
-
360
- /* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
361
- .ui-datepicker-cover {
362
- display: none; /*sorry for IE5*/
363
- display/**/: block; /*sorry for IE5*/
364
- position: absolute; /*must have*/
365
- z-index: -1; /*must have*/
366
- filter: mask(); /*must have*/
367
- top: -4px; /*must have*/
368
- left: -4px; /*must have*/
369
- width: 200px; /*must have*/
370
- height: 200px; /*must have*/
371
- }/* Dialog
372
- ----------------------------------*/
373
- .ui-dialog { position: relative; padding: .2em; width: 300px; }
374
- .ui-dialog .ui-dialog-titlebar { padding: .5em .3em .3em 1em; position: relative; }
375
- .ui-dialog .ui-dialog-title { float: left; margin: .1em 0 .2em; }
376
- .ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
377
- .ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
378
- .ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
379
- .ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
380
- .ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
381
- .ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; }
382
- .ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
383
- .ui-draggable .ui-dialog-titlebar { cursor: move; }
384
- /* Progressbar
385
- ----------------------------------*/
386
- .ui-progressbar { height:2em; text-align: left; }
387
- .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }/* Resizable
388
- ----------------------------------*/
389
- .ui-resizable { position: relative;}
390
- .ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
391
- .ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
392
- .ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0px; }
393
- .ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0px; }
394
- .ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0px; height: 100%; }
395
- .ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0px; height: 100%; }
396
- .ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
397
- .ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
398
- .ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
399
- .ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* Slider
400
- ----------------------------------*/
401
- .ui-slider { position: relative; text-align: left; }
402
- .ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
403
- .ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; }
404
-
405
- .ui-slider-horizontal { height: .8em; }
406
- .ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
407
- .ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
408
- .ui-slider-horizontal .ui-slider-range-min { left: 0; }
409
- .ui-slider-horizontal .ui-slider-range-max { right: 0; }
410
-
411
- .ui-slider-vertical { width: .8em; height: 100px; }
412
- .ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
413
- .ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
414
- .ui-slider-vertical .ui-slider-range-min { bottom: 0; }
415
- .ui-slider-vertical .ui-slider-range-max { top: 0; }/* Tabs
416
- ----------------------------------*/
417
- .ui-tabs { padding: .2em; zoom: 1; }
418
- .ui-tabs .ui-tabs-nav { list-style: none; position: relative; padding: .2em .2em 0; }
419
- .ui-tabs .ui-tabs-nav li { position: relative; float: left; margin: 0 .2em -1px 0; padding: 0; }
420
- .ui-tabs .ui-tabs-nav li a { float: left; text-decoration: none; padding: .5em 1em; }
421
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected { padding-bottom: 1px; border-bottom-width: 0; }
422
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
423
- .ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
424
- .ui-tabs .ui-tabs-panel { padding: 1em 1.4em; display: block; border-width: 0; background: none; }
425
- .ui-tabs .ui-tabs-hide { display: none !important; }
426
-
427
- /*]]>*/
428
- </style>
429
-
430
- <style type="text/css" media="all">
431
- /*<![CDATA[*/body {
432
- color: #000000;
433
- background-color: #FFFFFF;
434
- line-height: 1.5em;
435
- font-family: Calibri, Verdana, sans-serif; }
436
-
437
- em, strong, dt {
438
- font-family: Constantia, "Book Antiqua", "URW Bookman L", serif; }
439
-
440
- blockquote {
441
- color: #333;
442
- font-style: italic;
443
- background-image: url(cid:69903120);
444
- background-repeat: no-repeat;
445
- margin-left: 0;
446
- padding-left: 65px;
447
- min-height: 50px; }
448
-
449
- hr {
450
- height: 0;
451
- border: 0;
452
- border-top: thin dashed #000000; }
453
-
454
- tt, code, pre {
455
- font-family: Monaco, Consolas, "Lucida Console", monospace;
456
- font-size: 1em;
457
- line-height: 1em; }
458
-
459
- code.para {
460
- white-space: pre; }
461
-
462
- ins {
463
- text-decoration: none; }
464
-
465
- a > img {
466
- border: none; }
467
-
468
- dt {
469
- margin-top: 1.5em;
470
- font-weight: bolder; }
471
-
472
- h1, h2, h3, h4, h5, h6, .title {
473
- font-weight: lighter;
474
- font-family: Constantia, "Book Antiqua", "URW Bookman L", serif; }
475
-
476
- #_floats h1, #_floats h2, #_floats h3, #_floats h4, #_floats h5, #_floats h6 {
477
- margin-top: 1.25em; }
478
-
479
- #_document h1, #_document h2, #_document h3, #_document h4, #_document h5, #_document h6 {
480
- margin-top: 2.5em;
481
- line-height: 1.25em; }
482
- #_document h1 {
483
- font-size: 2.0em; }
484
- #_document h2 {
485
- font-size: 1.8em; }
486
- #_document h3 {
487
- font-size: 1.6em; }
488
- #_document h4 {
489
- font-size: 1.4em; }
490
- #_document h5 {
491
- font-size: 1.2em; }
492
- #_document h6 {
493
- font-size: 1.0em; }
494
-
495
- table {
496
- border: none;
497
- border-collapse: collapse;
498
- margin: auto;
499
- margin-top: 1em;
500
- margin-bottom: 1em; }
501
-
502
- th, td {
503
- padding: 1em;
504
- border: 1px solid #bbb;
505
- vertical-align: top;
506
- background-color: #FFFFFF; }
507
-
508
- th {
509
- background-color: #F5F5F5; }
510
-
511
- #_header > .title {
512
- font-size: 2.25em; }
513
-
514
- @media print {
515
- #_header .printer_friendly_toggle {
516
- display: none; } }
517
-
518
- @media screen {
519
- #_header .printer_friendly_toggle {
520
- display: inline; }
521
- #_header .printer_friendly_toggle label:hover {
522
- cursor: pointer; } }
523
-
524
- #_abstract {
525
- margin-bottom: 5em; }
526
-
527
- #_contents ul > li {
528
- list-style-type: none; }
529
- #_contents li ul {
530
- padding-bottom: 1em; }
531
- #_contents > ul {
532
- padding-left: 1em; }
533
-
534
- #_references > ol > li {
535
- margin-bottom: 1em; }
536
-
537
- #_footer {
538
- padding-top: 1em;
539
- text-align: center;
540
- margin: auto; }
541
-
542
- .part > .title, .chapter > .title {
543
- padding-bottom: 0.5em; }
544
-
545
- .part > .title > big, .chapter > .title > big {
546
- display: block;
547
- margin-top: 0.25em; }
548
-
549
- .paragraph > .title {
550
- font-size: large; }
551
-
552
- ._float > .title {
553
- font-size: large; }
554
- ._float > .content {
555
- min-height: 48px; }
556
- ._float > .content > .icon {
557
- float: left;
558
- margin-top: 0;
559
- margin-right: 1em;
560
- margin-bottom: 1em;
561
- margin-left: 0; }
562
-
563
- .figure > .title {
564
- text-align: center; }
565
- .figure > .content img {
566
- display: block;
567
- margin: auto; }
568
- /*]]>*/
569
- </style>
570
-
571
- <style type="text/css" media="screen">
572
- /*<![CDATA[*/body {
573
- margin: 0;
574
- padding: 0.5em;
575
- background-color: #FFFFFF; }
576
-
577
- #_loading:before {
578
- content: "Loading..."; }
579
-
580
- #_body, #_abstract > .title, #_contents > .title, .part > .title, .chapter > .title, .section > .title, #_references > .title {
581
- display: none; }
582
-
583
- .tabs {
584
- clear: both; }
585
-
586
- .ui-widget {
587
- font-size: 1em; }
588
-
589
- .ui-tabs .ui-tabs-nav li.ui-tabs-selected a {
590
- cursor: pointer; }
591
-
592
- li > p:first-child {
593
- display: inline; }
594
-
595
- tt {
596
- background-color: #F0F8FF; }
597
-
598
- pre {
599
- cursor: text;
600
- line-height: normal;
601
- border: 1px solid #b1d827;
602
- background-color: #F5FFDF;
603
- padding: 1em;
604
- display: inline-block;
605
- min-width: 95%;
606
- margin: 0; }
607
-
608
- ins ~ div {
609
- margin-top: 1.5em; }
610
-
611
- code.para {
612
- cursor: text;
613
- line-height: normal;
614
- border: 1px solid #b1d827;
615
- background-color: #F5FFDF;
616
- padding: 1em;
617
- display: inline-block;
618
- margin: 0;
619
- min-width: 92.5%;
620
- background-color: #FFFFE8;
621
- border-color: #EEDD88; }
622
-
623
- pre.para {
624
- background-color: #FFFFE8;
625
- border-color: #EEDD88; }
626
-
627
- a {
628
- text-decoration: none; }
629
- a:hover {
630
- text-decoration: underline; }
631
- a:link {
632
- color: #0038E1; }
633
- a:visited {
634
- color: #800080; }
635
- a[href]:not([href^="#"]) {
636
- background: url(cid:69935292);
637
- background-position: center right;
638
- background-repeat: no-repeat;
639
- padding-right: 13px; }
640
-
641
- #_header > .logo {
642
- text-align: center; }
643
- #_header > .title_and_subtitle {
644
- float: left;
645
- margin-right: 1.5em; }
646
- #_header > .title_and_subtitle .title {
647
- margin-top: 0.25em; }
648
- #_header > .authors_and_date {
649
- text-align: right; }
650
- #_header > .authors_and_date .authors, #_header > .authors_and_date .date {
651
- margin-top: 0;
652
- margin-bottom: 0.25em; }
653
- #_header > .authors_and_date .date {
654
- font-weight: lighter; }
655
-
656
- #_contents li ul {
657
- border-left: thick solid #F5F5F5; }
658
- #_contents li ul:hover {
659
- border-color: #DCDCDC; }
660
-
661
- #_contents a:target, #_floats a:target {
662
- background: url(cid:69923168);
663
- background-position: center right;
664
- background-repeat: no-repeat;
665
- padding-right: 20px; }
666
-
667
- .paragraph {
668
- margin-top: 1.5em;
669
- margin-bottom: 1.5em; }
670
- .paragraph > .nav {
671
- float: left; }
672
- .paragraph > .title {
673
- padding-left: 2.5em;
674
- padding-top: 0.25em; }
675
-
676
- ._float {
677
- margin: 1.5em; }
678
- ._float > .title {
679
- padding-top: 0.5em;
680
- padding-left: 1em;
681
- padding-right: 1em; }
682
- ._float > .nav {
683
- position: relative;
684
- z-index: 1;
685
- top: 0.25em;
686
- right: 0.25em; }
687
- ._float > .content {
688
- margin: 1em; }
689
-
690
- .nav {
691
- float: right;
692
- clear: right; }
693
- .nav > a > img:hover {
694
- background-color: yellow; }
695
-
696
- .ui-tabs > .ui-tabs-panel > .nav {
697
- position: relative;
698
- margin-top: -3.4em;
699
- margin-right: -1.25em; }
700
-
701
- .ui-tabs > .ui-tabs-nav > li:last-child {
702
- margin-right: 9em; }
703
-
704
- .ui-tabs > .ui-tabs-nav > li > a > .section_number {
705
- display: none; }
706
-
707
- #_about > table td:first-child, #_about > .validations {
708
- text-align: center; }
709
-
710
- #_search_form {
711
- text-align: right;
712
- font-weight: normal; }
713
- #_search_form input {
714
- margin-top: 0.25em; }
715
- #_search_form input.initial {
716
- color: gray;
717
- font-style: italic; }
718
- #_search_form #_search_start, #_search_form #_search_stop {
719
- float: right;
720
- margin: 0.1625em;
721
- padding: 0.325em; }
722
- #_search_form #_search_start:hover, #_search_form #_search_stop:hover {
723
- cursor: pointer; }
724
-
725
- #_search > .status {
726
- text-align: center; }
727
- #_search > .results > .result > .excerpt:hover {
728
- background-color: #FFFFE0;
729
- cursor: pointer; }
730
- #_search > .results > .result > .excerpt:hover * {
731
- cursor: pointer; }
732
- /*]]>*/
733
- </style>
734
-
735
- <style type="text/css" media="print">
736
- /*<![CDATA[*/body {
737
- font-family: Constantia, "Book Antiqua", "URW Bookman L", serif; }
738
-
739
- em, strong, dt {
740
- font-family: Calibri, Verdana, sans-serif; }
741
-
742
- tt {
743
- font-weight: normal; }
744
-
745
- pre {
746
- border: none; }
747
-
748
- h1, h2, h3, h4, h5, h6, .title {
749
- font-weight: normal;
750
- font-family: Calibri, Verdana, sans-serif;
751
- clear: both; }
752
-
753
- a:link, a:visited {
754
- color: #000000;
755
- text-decoration: none; }
756
- a[href]:not([href^="#"]):link, a[href]:not([href^="#"]):visited {
757
- color: #0000FF;
758
- text-decoration: underline;
759
- font-weight: bolder; }
760
- a.xref[title]:link, a.xref[title]:visited {
761
- color: #0000FF;
762
- text-decoration: underline;
763
- font-weight: bolder; }
764
- a[href]:not([href^="#"]):after {
765
- content: " " attr(href);
766
- font-family: Monaco, Consolas, "Lucida Console", monospace; }
767
- a.xref[title]:after {
768
- content: " " attr(title); }
769
- a:after {
770
- font-weight: normal;
771
- font-size: smaller; }
772
-
773
- .tabs > ul, .nav, #_floats, #_about, #_search {
774
- display: none; }
775
-
776
- #_contents, .part, .chapter, #_references {
777
- page-break-before: always; }
778
-
779
- #_header, #_footer {
780
- text-align: center; }
781
-
782
- #_header > .authors_and_date > .authors {
783
- margin-top: 1.625em;
784
- margin-bottom: -0.25em; }
785
-
786
- .header_outside_above, #_header, .header_outside_below, .logo {
787
- margin-bottom: 5em; }
788
-
789
- .footer_outside_above, #_footer, .footer_outside_below, #_references, #_about {
790
- margin-top: 5em; }
791
-
792
- #_header .header_inside_above, #_footer .footer_inside_above {
793
- margin-bottom: 4em; }
794
-
795
- #_header .header_inside_below, #_footer .footer_inside_below {
796
- margin-top: 4em; }
797
-
798
- .part > .title > big, .chapter > .title > big {
799
- padding-bottom: 0.5em; }
800
-
801
- .paragraph > .title {
802
- margin-top: 2em; }
803
-
804
- ._float {
805
- margin: 3em; }
806
- /*]]>*/
807
- </style>
808
-
809
- <script type="text/javascript">
810
- //<![CDATA[
811
- /*
812
- * jQuery JavaScript Library v1.3.2
813
- * http://jquery.com/
814
- *
815
- * Copyright (c) 2009 John Resig
816
- * Dual licensed under the MIT and GPL licenses.
817
- * http://docs.jquery.com/License
818
- *
819
- * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009)
820
- * Revision: 6246
821
- */
822
- (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F<J;F++){var G=M[F];if(G.selected){K=o(G).val();if(H){return K}L.push(K)}}return L}return(E.value||"").replace(/\r/g,"")}return g}if(typeof K==="number"){K+=""}return this.each(function(){if(this.nodeType!=1){return}if(o.isArray(K)&&/radio|checkbox/.test(this.type)){this.checked=(o.inArray(this.value,K)>=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G<E;G++){L.call(K(this[G],H),this.length>1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H<I;H++){if((G=arguments[H])!=null){for(var F in G){var K=J[F],L=G[F];if(J===L){continue}if(E&&L&&typeof L==="object"&&!L.nodeType){J[F]=o.extend(E,K||(L.length!=null?[]:{}),L)}else{if(L!==g){J[F]=L}}}}}return J};var b=/z-?index|font-?weight|opacity|zoom|line-?height/i,q=document.defaultView||{},s=Object.prototype.toString;o.extend({noConflict:function(E){l.$=p;if(E){l.jQuery=y}return o},isFunction:function(E){return s.call(E)==="[object Function]"},isArray:function(E){return s.call(E)==="[object Array]"},isXMLDoc:function(E){return E.nodeType===9&&E.documentElement.nodeName!=="HTML"||!!E.ownerDocument&&o.isXMLDoc(E.ownerDocument)},globalEval:function(G){if(G&&/\S/.test(G)){var F=document.getElementsByTagName("head")[0]||document.documentElement,E=document.createElement("script");E.type="text/javascript";if(o.support.scriptEval){E.appendChild(document.createTextNode(G))}else{E.text=G}F.insertBefore(E,F.firstChild);F.removeChild(E)}},nodeName:function(F,E){return F.nodeName&&F.nodeName.toUpperCase()==E.toUpperCase()},each:function(G,K,F){var E,H=0,I=G.length;if(F){if(I===g){for(E in G){if(K.apply(G[E],F)===false){break}}}else{for(;H<I;){if(K.apply(G[H++],F)===false){break}}}}else{if(I===g){for(E in G){if(K.call(G[E],E,G[E])===false){break}}}else{for(var J=G[0];H<I&&K.call(J,H,J)!==false;J=G[++H]){}}}return G},prop:function(H,I,G,F,E){if(o.isFunction(I)){I=I.call(H,F)}return typeof I==="number"&&G=="curCSS"&&!b.test(E)?I+"px":I},className:{add:function(E,F){o.each((F||"").split(/\s+/),function(G,H){if(E.nodeType==1&&!o.className.has(E.className,H)){E.className+=(E.className?" ":"")+H}})},remove:function(E,F){if(E.nodeType==1){E.className=F!==g?o.grep(E.className.split(/\s+/),function(G){return !o.className.has(F,G)}).join(" "):""}},has:function(F,E){return F&&o.inArray(E,(F.className||F).toString().split(/\s+/))>-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+"></"+T+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("<opt")&&[1,"<select multiple='multiple'>","</select>"]||!O.indexOf("<leg")&&[1,"<fieldset>","</fieldset>"]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"<table>","</table>"]||!O.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!O.indexOf("<td")||!O.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||!O.indexOf("<col")&&[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"]||!o.support.htmlSerialize&&[1,"div<div>","</div>"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/<tbody/i.test(S),N=!O.indexOf("<table")&&!R?L.firstChild&&L.firstChild.childNodes:Q[1]=="<table>"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E<F;E++){if(H[E]===G){return E}}return -1},merge:function(H,E){var F=0,G,I=H.length;if(!o.support.getAll){while((G=E[F++])!=null){if(G.nodeType!=8){H[I++]=G}}}else{while((G=E[F++])!=null){H[I++]=G}}return H},unique:function(K){var F=[],E={};try{for(var G=0,H=K.length;G<H;G++){var J=o.data(K[G]);if(!E[J]){E[J]=true;F.push(K[G])}}}catch(I){F=K}return F},grep:function(F,J,E){var G=[];for(var H=0,I=F.length;H<I;H++){if(!E!=!J(F[H],H)){G.push(F[H])}}return G},map:function(E,J){var F=[];for(var G=0,H=E.length;G<H;G++){var I=J(E[G],G);if(I!=null){F[F.length]=I}}return F.concat.apply([],F)}});var C=navigator.userAgent.toLowerCase();o.browser={version:(C.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],safari:/webkit/.test(C),opera:/opera/.test(C),msie:/msie/.test(C)&&!/opera/.test(C),mozilla:/mozilla/.test(C)&&!/(compatible|webkit)/.test(C)};o.each({parent:function(E){return E.parentNode},parents:function(E){return o.dir(E,"parentNode")},next:function(E){return o.nth(E,2,"nextSibling")},prev:function(E){return o.nth(E,2,"previousSibling")},nextAll:function(E){return o.dir(E,"nextSibling")},prevAll:function(E){return o.dir(E,"previousSibling")},siblings:function(E){return o.sibling(E.parentNode.firstChild,E)},children:function(E){return o.sibling(E.firstChild)},contents:function(E){return o.nodeName(E,"iframe")?E.contentDocument||E.contentWindow.document:o.makeArray(E.childNodes)}},function(E,F){o.fn[E]=function(G){var H=o.map(this,F);if(G&&typeof G=="string"){H=o.multiFilter(G,H)}return this.pushStack(o.unique(H),E,G)}});o.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(E,F){o.fn[E]=function(G){var J=[],L=o(G);for(var K=0,H=L.length;K<H;K++){var I=(K>0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}});
823
- /*
824
- * Sizzle CSS Selector Engine - v0.9.3
825
- * Copyright 2009, The Dojo Foundation
826
- * Released under the MIT, BSD, and GPL Licenses.
827
- * More information: http://sizzlejs.com/
828
- */
829
- (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa<ab.length;aa++){if(ab[aa]===ab[aa-1]){ab.splice(aa--,1)}}}}}return ab};F.matches=function(T,U){return F(T,null,null,U)};F.find=function(aa,T,ab){var Z,X;if(!aa){return[]}for(var W=0,V=I.order.length;W<V;W++){var Y=I.order[W],X;if((X=I.match[Y].exec(aa))){var U=RegExp.leftContext;if(U.substr(U.length-1)!=="\\"){X[1]=(X[1]||"").replace(/\\/g,"");Z=I.find[Y](X,T,ab);if(Z!=null){aa=aa.replace(I.match[Y],"");break}}}}if(!Z){Z=T.getElementsByTagName("*")}return{set:Z,expr:aa}};F.filter=function(ad,ac,ag,W){var V=ad,ai=[],aa=ac,Y,T,Z=ac&&ac[0]&&Q(ac[0]);while(ad&&ac.length){for(var ab in I.filter){if((Y=I.match[ab].exec(ad))!=null){var U=I.filter[ab],ah,af;T=false;if(aa==ai){ai=[]}if(I.preFilter[ab]){Y=I.preFilter[ab](Y,aa,ag,ai,W,Z);if(!Y){T=ah=true}else{if(Y===true){continue}}}if(Y){for(var X=0;(af=aa[X])!=null;X++){if(af){ah=U(af,Y,X,aa);var ae=W^!!ah;if(ag&&ah!=null){if(ae){T=true}else{aa[X]=false}}else{if(ae){ai.push(af);T=true}}}}}if(ah!==g){if(!ag){aa=ai}ad=ad.replace(I.match[ab],"");if(!T){return[]}break}}}if(ad==V){if(T==null){throw"Syntax error, unrecognized expression: "+ad}else{break}}V=ad}return aa};var I=F.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF_-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF_-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF_-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*_-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF_-]|\\.)+)(?:\((['"]*)((?:\([^\)]+\)|[^\2\(\)]*)+)\2\))?/},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(T){return T.getAttribute("href")}},relative:{"+":function(aa,T,Z){var X=typeof T==="string",ab=X&&!/\W/.test(T),Y=X&&!ab;if(ab&&!Z){T=T.toUpperCase()}for(var W=0,V=aa.length,U;W<V;W++){if((U=aa[W])){while((U=U.previousSibling)&&U.nodeType!==1){}aa[W]=Y||U&&U.nodeName===T?U||false:U===T}}if(Y){F.filter(T,aa,true)}},">":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){var W=Y.parentNode;Z[V]=W.nodeName===U?W:false}}}else{for(var V=0,T=Z.length;V<T;V++){var Y=Z[V];if(Y){Z[V]=X?Y.parentNode:Y.parentNode===U}}if(X){F.filter(U,Z,true)}}},"":function(W,U,Y){var V=L++,T=S;if(!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("parentNode",U,V,W,X,Y)},"~":function(W,U,Y){var V=L++,T=S;if(typeof U==="string"&&!U.match(/\W/)){var X=U=Y?U:U.toUpperCase();T=P}T("previousSibling",U,V,W,X,Y)}},find:{ID:function(U,V,W){if(typeof V.getElementById!=="undefined"&&!W){var T=V.getElementById(U[1]);return T?[T]:[]}},NAME:function(V,Y,Z){if(typeof Y.getElementsByName!=="undefined"){var U=[],X=Y.getElementsByName(V[1]);for(var W=0,T=X.length;W<T;W++){if(X[W].getAttribute("name")===V[1]){U.push(X[W])}}return U.length===0?null:U}},TAG:function(T,U){return U.getElementsByTagName(T[1])}},preFilter:{CLASS:function(W,U,V,T,Z,aa){W=" "+W[1].replace(/\\/g,"")+" ";if(aa){return W}for(var X=0,Y;(Y=U[X])!=null;X++){if(Y){if(Z^(Y.className&&(" "+Y.className+" ").indexOf(W)>=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return U<T[3]-0},gt:function(V,U,T){return U>T[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W<T;W++){if(Y[W]===Z){return false}}return true}}}},CHILD:function(T,W){var Z=W[1],U=T;switch(Z){case"only":case"first":while(U=U.previousSibling){if(U.nodeType===1){return false}}if(Z=="first"){return true}U=T;case"last":while(U=U.nextSibling){if(U.nodeType===1){return false}}return true;case"nth":var V=W[2],ac=W[3];if(V==1&&ac==0){return true}var Y=W[0],ab=T.parentNode;if(ab&&(ab.sizcache!==Y||!T.nodeIndex)){var X=0;for(U=ab.firstChild;U;U=U.nextSibling){if(U.nodeType===1){U.nodeIndex=++X}}ab.sizcache=Y}var aa=T.nodeIndex-ac;if(V==0){return aa==0}else{return(aa%V==0&&aa/V>=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V<T;V++){U.push(X[V])}}else{for(var V=0;X[V];V++){U.push(X[V])}}}return U}}var G;if(document.documentElement.compareDocumentPosition){G=function(U,T){var V=U.compareDocumentPosition(T)&4?-1:U===T?0:1;if(V===0){hasDuplicate=true}return V}}else{if("sourceIndex" in document.documentElement){G=function(U,T){var V=U.sourceIndex-T.sourceIndex;if(V===0){hasDuplicate=true}return V}}else{if(document.createRange){G=function(W,U){var V=W.ownerDocument.createRange(),T=U.ownerDocument.createRange();V.selectNode(W);V.collapse(true);T.selectNode(U);T.collapse(true);var X=V.compareBoundaryPoints(Range.START_TO_END,T);if(X===0){hasDuplicate=true}return X}}}}(function(){var U=document.createElement("form"),V="script"+(new Date).getTime();U.innerHTML="<input name='"+V+"'/>";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="<a href='#'></a>";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="<p class='TEST'></p>";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="<div class='test e'></div><div class='test'></div>";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1&&!ac){T.sizcache=Y;T.sizset=W}if(T.nodeName===Z){X=T;break}T=T[U]}ad[W]=X}}}function S(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W<V;W++){var T=ad[W];if(T){if(ab&&T.nodeType===1){T.sizcache=Y;T.sizset=W}T=T[U];var X=false;while(T){if(T.sizcache===Y){X=ad[T.sizset];break}if(T.nodeType===1){if(!ac){T.sizcache=Y;T.sizset=W}if(typeof Z!=="string"){if(T===Z){X=true;break}}else{if(F.filter(Z,[T]).length>0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z<U;Z++){F(T,V[Z],W)}return F.filter(X,W)};o.find=F;o.filter=F.filter;o.expr=F.selectors;o.expr[":"]=o.expr.filters;F.selectors.filters.hidden=function(T){return T.offsetWidth===0||T.offsetHeight===0};F.selectors.filters.visible=function(T){return T.offsetWidth>0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F<E.length){o.event.proxy(G,E[F++])}return this.click(o.event.proxy(G,function(H){this.lastToggle=(this.lastToggle||0)%F;H.preventDefault();return E[this.lastToggle++].apply(this,arguments)||false}))},hover:function(E,F){return this.mouseenter(E).mouseleave(F)},ready:function(E){B();if(o.isReady){E.call(document,o)}else{o.readyList.push(E)}return this},live:function(G,F){var E=o.event.proxy(F);E.guid+=this.selector+G;o(document).bind(i(G,this.selector),this.selector,E);return this},die:function(F,E){o(document).unbind(i(F,this.selector),E?{guid:E.guid+this.selector+F}:null);return this}});function c(H){var E=RegExp("(^|\\.)"+H.type+"(\\.|$)"),G=true,F=[];o.each(o.data(this,"events").live||[],function(I,J){if(E.test(J.type)){var K=o(H.target).closest(J.data)[0];if(K){F.push({elem:K,fn:J})}}});F.sort(function(J,I){return o.data(J.elem,"closest")-o.data(I.elem,"closest")});o.each(F,function(){if(this.fn.call(this.elem,H,this.fn.data)===false){return(G=false)}});return G}function i(F,E){return["live",F,E.replace(/\./g,"`").replace(/ /g,"|")].join(".")}o.extend({isReady:false,readyList:[],ready:function(){if(!o.isReady){o.isReady=true;if(o.readyList){o.each(o.readyList,function(){this.call(document,o)});o.readyList=null}o(document).triggerHandler("ready")}}});var x=false;function B(){if(x){return}x=true;if(document.addEventListener){document.addEventListener("DOMContentLoaded",function(){document.removeEventListener("DOMContentLoaded",arguments.callee,false);o.ready()},false)}else{if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);o.ready()}});if(document.documentElement.doScroll&&l==l.top){(function(){if(o.isReady){return}try{document.documentElement.doScroll("left")}catch(E){setTimeout(arguments.callee,0);return}o.ready()})()}}}o.event.add(l,"load",o.ready)}o.each(("blur,focus,load,resize,scroll,unload,click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,mouseenter,mouseleave,change,select,submit,keydown,keypress,keyup,error").split(","),function(F,E){o.fn[E]=function(G){return G?this.bind(E,G):this.trigger(E)}});o(l).bind("unload",function(){for(var E in o.cache){if(E!=1&&o.cache[E].handle){o.event.remove(o.cache[E].handle.elem)}}});(function(){o.support={};var F=document.documentElement,G=document.createElement("script"),K=document.createElement("div"),J="script"+(new Date).getTime();K.style.display="none";K.innerHTML=' <link/><table></table><a href="/a" style="color:red;float:left;opacity:.5;">a</a><select><option>text</option></select><object><param/></object>';var H=K.getElementsByTagName("*"),E=K.getElementsByTagName("a")[0];if(!H||!H.length||!E){return}o.support={leadingWhitespace:K.firstChild.nodeType==3,tbody:!K.getElementsByTagName("tbody").length,objectAll:!!K.getElementsByTagName("object")[0].getElementsByTagName("*").length,htmlSerialize:!!K.getElementsByTagName("link").length,style:/red/.test(E.getAttribute("style")),hrefNormalized:E.getAttribute("href")==="/a",opacity:E.style.opacity==="0.5",cssFloat:!!E.style.cssFloat,scriptEval:false,noCloneEvent:true,boxModel:null};G.type="text/javascript";try{G.appendChild(document.createTextNode("window."+J+"=1;"))}catch(I){}F.insertBefore(G,F.firstChild);if(l[J]){o.support.scriptEval=true;delete l[J]}F.removeChild(G);if(K.attachEvent&&K.fireEvent){K.attachEvent("onclick",function(){o.support.noCloneEvent=false;K.detachEvent("onclick",arguments.callee)});K.cloneNode(true).fireEvent("onclick")}o(function(){var L=document.createElement("div");L.style.width=L.style.paddingLeft="1px";document.body.appendChild(L);o.boxModel=o.support.boxModel=L.offsetWidth===2;document.body.removeChild(L).style.display="none"})})();var w=o.support.cssFloat?"cssFloat":"styleFloat";o.props={"for":"htmlFor","class":"className","float":w,cssFloat:w,styleFloat:w,readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",tabindex:"tabIndex"};o.fn.extend({_load:o.fn.load,load:function(G,J,K){if(typeof G!=="string"){return this._load(G)}var I=G.indexOf(" ");if(I>=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("<div/>").append(M.responseText.replace(/<script(.|\s)*?\/script>/g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H<F;H++){var E=o.data(this[H],"olddisplay");this[H].style.display=E||"";if(o.css(this[H],"display")==="none"){var G=this[H].tagName,K;if(m[G]){K=m[G]}else{var I=o("<"+G+" />").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H<F;H++){this[H].style.display=o.data(this[H],"olddisplay")||""}return this}},hide:function(H,I){if(H){return this.animate(t("hide",3),H,I)}else{for(var G=0,F=this.length;G<F;G++){var E=o.data(this[G],"olddisplay");if(!E&&E!=="none"){o.data(this[G],"olddisplay",o.css(this[G],"display"))}}for(var G=0,F=this.length;G<F;G++){this[G].style.display="none"}return this}},_toggle:o.fn.toggle,toggle:function(G,F){var E=typeof G==="boolean";return o.isFunction(G)&&o.isFunction(F)?this._toggle.apply(this,arguments):G==null||E?this.each(function(){var H=E?G:o(this).is(":hidden");o(this)[H?"show":"hide"]()}):this.animate(t("toggle",3),G,F)},fadeTo:function(E,G,F){return this.animate({opacity:G},E,F)},animate:function(I,F,H,G){var E=o.speed(F,H,G);return this[E.queue===false?"each":"queue"](function(){var K=o.extend({},E),M,L=this.nodeType==1&&o(this).is(":hidden"),J=this;for(M in I){if(I[M]=="hide"&&L||I[M]=="show"&&!L){return K.complete.call(this)}if((M=="height"||M=="width")&&this.style){K.display=o.css(this,"display");K.overflow=this.style.overflow}}if(K.overflow!=null){this.style.overflow="hidden"}K.curAnim=o.extend({},I);o.each(I,function(O,S){var R=new o.fx(J,K,O);if(/toggle|show|hide/.test(S)){R[S=="toggle"?L?"show":"hide":S](I)}else{var Q=S.toString().match(/^([+-]=)?([\d+-.]+)(.*)$/),T=R.cur(true)||0;if(Q){var N=parseFloat(Q[2]),P=Q[3]||"px";if(P!="px"){J.style[O]=(N||1)+P;T=((N||1)/R.cur(true))*T;J.style[O]=T+P}if(Q[1]){N=((Q[1]=="-="?-1:1)*N)+T}R.custom(T,N,P)}else{R.custom(T,S,"")}}});return true})},stop:function(F,E){var G=o.timers;if(F){this.queue([])}this.each(function(){for(var H=G.length-1;H>=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J<K.length;J++){if(!K[J]()){K.splice(J--,1)}}if(!K.length){clearInterval(n);n=g}},13)}},show:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.show=true;this.custom(this.prop=="width"||this.prop=="height"?1:0,this.cur());o(this.elem).show()},hide:function(){this.options.orig[this.prop]=o.attr(this.elem.style,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(H){var G=e();if(H||G>=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='<div style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;"><div></div></div><table style="position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;" cellpadding="0" cellspacing="0"><tr><td></td></tr></table>';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})();
830
- /*
831
- * jQuery UI 1.7.2
832
- *
833
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
834
- * Dual licensed under the MIT (MIT-LICENSE.txt)
835
- * and GPL (GPL-LICENSE.txt) licenses.
836
- *
837
- * http://docs.jquery.com/UI
838
- */
839
- jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/*
840
- * jQuery UI Tabs 1.7.2
841
- *
842
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
843
- * Dual licensed under the MIT (MIT-LICENSE.txt)
844
- * and GPL (GPL-LICENSE.txt) licenses.
845
- *
846
- * http://docs.jquery.com/UI/Tabs
847
- *
848
- * Depends:
849
- * ui.core.js
850
- */
851
- (function(a){a.widget("ui.tabs",{_init:function(){if(this.options.deselectable!==undefined){this.options.collapsible=this.options.deselectable}this._tabify(true)},_setData:function(b,c){if(b=="selected"){if(this.options.collapsible&&c==this.options.selected){return}this.select(c)}else{this.options[b]=c;if(b=="deselectable"){this.options.collapsible=c}this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^A-Za-z0-9\-_:\.]/g,"")||this.options.idPrefix+a.data(b)},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+a.data(this.list[0]));return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(c,b){return{tab:c,panel:b,index:this.anchors.index(c)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(n){this.list=this.element.children("ul:first");this.lis=a("li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return a("a",this)[0]});this.panels=a([]);var p=this,d=this.options;var c=/^#.+/;this.anchors.each(function(r,o){var q=a(o).attr("href");var s=q.split("#")[0],u;if(s&&(s===location.toString().split("#")[0]||(u=a("base")[0])&&s===u.href)){q=o.hash;o.href=q}if(c.test(q)){p.panels=p.panels.add(p._sanitizeSelector(q))}else{if(q!="#"){a.data(o,"href.tabs",q);a.data(o,"load.tabs",q.replace(/#.*$/,""));var w=p._tabId(o);o.href="#"+w;var v=a("#"+w);if(!v.length){v=a(d.panelTemplate).attr("id",w).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(p.panels[r-1]||p.list);v.data("destroy.tabs",true)}p.panels=p.panels.add(v)}else{d.disabled.push(r)}}});if(n){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(d.selected===undefined){if(location.hash){this.anchors.each(function(q,o){if(o.hash==location.hash){d.selected=q;return false}})}if(typeof d.selected!="number"&&d.cookie){d.selected=parseInt(p._cookie(),10)}if(typeof d.selected!="number"&&this.lis.filter(".ui-tabs-selected").length){d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}d.selected=d.selected||0}else{if(d.selected===null){d.selected=-1}}d.selected=((d.selected>=0&&this.anchors[d.selected])||d.selected<0)?d.selected:0;d.disabled=a.unique(d.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(q,o){return p.lis.index(q)}))).sort();if(a.inArray(d.selected,d.disabled)!=-1){d.disabled.splice(a.inArray(d.selected,d.disabled),1)}this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active");if(d.selected>=0&&this.anchors.length){this.panels.eq(d.selected).removeClass("ui-tabs-hide");this.lis.eq(d.selected).addClass("ui-tabs-selected ui-state-active");p.element.queue("tabs",function(){p._trigger("show",null,p._ui(p.anchors[d.selected],p.panels[d.selected]))});this.load(d.selected)}a(window).bind("unload",function(){p.lis.add(p.anchors).unbind(".tabs");p.lis=p.anchors=p.panels=null})}else{d.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))}this.element[d.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");if(d.cookie){this._cookie(d.selected,d.cookie)}for(var g=0,m;(m=this.lis[g]);g++){a(m)[a.inArray(g,d.disabled)!=-1&&!a(m).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled")}if(d.cache===false){this.anchors.removeData("cache.tabs")}this.lis.add(this.anchors).unbind(".tabs");if(d.event!="mouseover"){var f=function(o,i){if(i.is(":not(.ui-state-disabled)")){i.addClass("ui-state-"+o)}};var j=function(o,i){i.removeClass("ui-state-"+o)};this.lis.bind("mouseover.tabs",function(){f("hover",a(this))});this.lis.bind("mouseout.tabs",function(){j("hover",a(this))});this.anchors.bind("focus.tabs",function(){f("focus",a(this).closest("li"))});this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var b,h;if(d.fx){if(a.isArray(d.fx)){b=d.fx[0];h=d.fx[1]}else{b=h=d.fx}}function e(i,o){i.css({display:""});if(a.browser.msie&&o.opacity){i[0].style.removeAttribute("filter")}}var k=h?function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.hide().removeClass("ui-tabs-hide").animate(h,h.duration||"normal",function(){e(o,h);p._trigger("show",null,p._ui(i,o[0]))})}:function(i,o){a(i).closest("li").removeClass("ui-state-default").addClass("ui-tabs-selected ui-state-active");o.removeClass("ui-tabs-hide");p._trigger("show",null,p._ui(i,o[0]))};var l=b?function(o,i){i.animate(b,b.duration||"normal",function(){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");e(i,b);p.element.dequeue("tabs")})}:function(o,i,q){p.lis.removeClass("ui-tabs-selected ui-state-active").addClass("ui-state-default");i.addClass("ui-tabs-hide");p.element.dequeue("tabs")};this.anchors.bind(d.event+".tabs",function(){var o=this,r=a(this).closest("li"),i=p.panels.filter(":not(.ui-tabs-hide)"),q=a(p._sanitizeSelector(this.hash));if((r.hasClass("ui-tabs-selected")&&!d.collapsible)||r.hasClass("ui-state-disabled")||r.hasClass("ui-state-processing")||p._trigger("select",null,p._ui(this,q[0]))===false){this.blur();return false}d.selected=p.anchors.index(this);p.abort();if(d.collapsible){if(r.hasClass("ui-tabs-selected")){d.selected=-1;if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){l(o,i)}).dequeue("tabs");this.blur();return false}else{if(!i.length){if(d.cookie){p._cookie(d.selected,d.cookie)}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this));this.blur();return false}}}if(d.cookie){p._cookie(d.selected,d.cookie)}if(q.length){if(i.length){p.element.queue("tabs",function(){l(o,i)})}p.element.queue("tabs",function(){k(o,q)});p.load(p.anchors.index(this))}else{throw"jQuery UI Tabs: Mismatching fragment identifier."}if(a.browser.msie){this.blur()}});this.anchors.bind("click.tabs",function(){return false})},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var c=a.data(this,"href.tabs");if(c){this.href=c}var d=a(this).unbind(".tabs");a.each(["href","load","cache"],function(e,f){d.removeData(f+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){if(a.data(this,"destroy.tabs")){a(this).remove()}else{a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}});if(b.cookie){this._cookie(null,b.cookie)}},add:function(e,d,c){if(c===undefined){c=this.anchors.length}var b=this,g=this.options,i=a(g.tabTemplate.replace(/#\{href\}/g,e).replace(/#\{label\}/g,d)),h=!e.indexOf("#")?e.replace("#",""):this._tabId(a("a",i)[0]);i.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var f=a("#"+h);if(!f.length){f=a(g.panelTemplate).attr("id",h).data("destroy.tabs",true)}f.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(c>=this.lis.length){i.appendTo(this.list);f.appendTo(this.list[0].parentNode)}else{i.insertBefore(this.lis[c]);f.insertBefore(this.panels[c])}g.disabled=a.map(g.disabled,function(k,j){return k>=c?++k:k});this._tabify();if(this.anchors.length==1){i.addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){b._trigger("show",null,b._ui(b.anchors[0],b.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[c],this.panels[c]))},remove:function(b){var d=this.options,e=this.lis.eq(b).remove(),c=this.panels.eq(b).remove();if(e.hasClass("ui-tabs-selected")&&this.anchors.length>1){this.select(b+(b+1<this.anchors.length?1:-1))}d.disabled=a.map(a.grep(d.disabled,function(g,f){return g!=b}),function(g,f){return g>=b?--g:g});this._tabify();this._trigger("remove",null,this._ui(e.find("a")[0],c[0]))},enable:function(b){var c=this.options;if(a.inArray(b,c.disabled)==-1){return}this.lis.eq(b).removeClass("ui-state-disabled");c.disabled=a.grep(c.disabled,function(e,d){return e!=b});this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b]))},disable:function(c){var b=this,d=this.options;if(c!=d.selected){this.lis.eq(c).addClass("ui-state-disabled");d.disabled.push(c);d.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[c],this.panels[c]))}},select:function(b){if(typeof b=="string"){b=this.anchors.index(this.anchors.filter("[href$="+b+"]"))}else{if(b===null){b=-1}}if(b==-1&&this.options.collapsible){b=this.options.selected}this.anchors.eq(b).trigger(this.options.event+".tabs")},load:function(e){var c=this,g=this.options,b=this.anchors.eq(e)[0],d=a.data(b,"load.tabs");this.abort();if(!d||this.element.queue("tabs").length!==0&&a.data(b,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(e).addClass("ui-state-processing");if(g.spinner){var f=a("span",b);f.data("label.tabs",f.html()).html(g.spinner)}this.xhr=a.ajax(a.extend({},g.ajaxOptions,{url:d,success:function(i,h){a(c._sanitizeSelector(b.hash)).html(i);c._cleanup();if(g.cache){a.data(b,"cache.tabs",true)}c._trigger("load",null,c._ui(c.anchors[e],c.panels[e]));try{g.ajaxOptions.success(i,h)}catch(j){}c.element.dequeue("tabs")}}))},abort:function(){this.element.queue([]);this.panels.stop(false,true);if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup()},url:function(c,b){this.anchors.eq(c).removeData("cache.tabs").data("load.tabs",b)},length:function(){return this.anchors.length}});a.extend(a.ui.tabs,{version:"1.7.2",getter:"length",defaults:{ajaxOptions:null,cache:false,cookie:null,collapsible:false,disabled:[],event:"click",fx:null,idPrefix:"ui-tabs-",panelTemplate:"<div></div>",spinner:"<em>Loading&#8230;</em>",tabTemplate:'<li><a href="#{href}"><span>#{label}</span></a></li>'}});a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(d,f){var b=this,g=this.options;var c=b._rotate||(b._rotate=function(h){clearTimeout(b.rotation);b.rotation=setTimeout(function(){var i=g.selected;b.select(++i<b.anchors.length?i:0)},d);if(h){h.stopPropagation()}});var e=b._unrotate||(b._unrotate=!f?function(h){if(h.clientX){b.rotate(null)}}:function(h){t=g.selected;c()});if(d){this.element.bind("tabsshow",c);this.anchors.bind(g.event+".tabs",e);c()}else{clearTimeout(b.rotation);this.element.unbind("tabsshow",c);this.anchors.unbind(g.event+".tabs",e);delete this._rotate;delete this._unrotate}}})})(jQuery);;/*
852
- * jQuery UI Progressbar 1.7.2
853
- *
854
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
855
- * Dual licensed under the MIT (MIT-LICENSE.txt)
856
- * and GPL (GPL-LICENSE.txt) licenses.
857
- *
858
- * http://docs.jquery.com/UI/Progressbar
859
- *
860
- * Depends:
861
- * ui.core.js
862
- */
863
- (function(a){a.widget("ui.progressbar",{_init:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this._valueMin(),"aria-valuemax":this._valueMax(),"aria-valuenow":this._value()});this.valueDiv=a('<div class="ui-progressbar-value ui-widget-header ui-corner-left"></div>').appendTo(this.element);this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow").removeData("progressbar").unbind(".progressbar");this.valueDiv.remove();a.widget.prototype.destroy.apply(this,arguments)},value:function(b){if(b===undefined){return this._value()}this._setData("value",b);return this},_setData:function(b,c){switch(b){case"value":this.options.value=c;this._refreshValue();this._trigger("change",null,{});break}a.widget.prototype._setData.apply(this,arguments)},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_valueMin:function(){var b=0;return b},_valueMax:function(){var b=100;return b},_refreshValue:function(){var b=this.value();this.valueDiv[b==this._valueMax()?"addClass":"removeClass"]("ui-corner-right");this.valueDiv.width(b+"%");this.element.attr("aria-valuenow",b)}});a.extend(a.ui.progressbar,{version:"1.7.2",defaults:{value:0}})})(jQuery);;/*
864
- * jQuery UI Effects 1.7.2
865
- *
866
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
867
- * Dual licensed under the MIT (MIT-LICENSE.txt)
868
- * and GPL (GPL-LICENSE.txt) licenses.
869
- *
870
- * http://docs.jquery.com/UI/Effects/
871
- */
872
- jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.data("ec.storage."+h[f],g[0].style[h[f]])}}},restore:function(g,h){for(var f=0;f<h.length;f++){if(h[f]!==null){g.css(h[f],g.data("ec.storage."+h[f]))}}},setMode:function(f,g){if(g=="toggle"){g=f.is(":hidden")?"show":"hide"}return g},getBaseline:function(g,h){var i,f;switch(g[0]){case"top":i=0;break;case"middle":i=0.5;break;case"bottom":i=1;break;default:i=g[0]/h.height}switch(g[1]){case"left":f=0;break;case"center":f=0.5;break;case"right":f=1;break;default:f=g[1]/h.width}return{x:f,y:i}},createWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent()}var g={width:f.outerWidth(true),height:f.outerHeight(true),"float":f.css("float")};f.wrap('<div class="ui-effects-wrapper" style="font-size:100%;background:transparent;border:none;margin:0;padding:0"></div>');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return -(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f},easeOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}return h*Math.pow(2,-10*i)*Math.sin((i*l-j)*(2*Math.PI)/k)+m+f},easeInOutElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l/2)==2){return f+m}if(!k){k=l*(0.3*1.5)}if(h<Math.abs(m)){h=m;var j=k/4}else{var j=k/(2*Math.PI)*Math.asin(m/h)}if(i<1){return -0.5*(h*Math.pow(2,10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k))+f}return h*Math.pow(2,-10*(i-=1))*Math.sin((i*l-j)*(2*Math.PI)/k)*0.5+m+f},easeInBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*(h/=j)*h*((i+1)*h-i)+f},easeOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}return k*((h=h/j-1)*h*((i+1)*h+i)+1)+f},easeInOutBack:function(g,h,f,k,j,i){if(i==undefined){i=1.70158}if((h/=j/2)<1){return k/2*(h*h*(((i*=(1.525))+1)*h-i))+f}return k/2*((h-=2)*h*(((i*=(1.525))+1)*h+i)+2)+f},easeInBounce:function(g,h,f,j,i){return j-d.easing.easeOutBounce(g,i-h,0,j,i)+f},easeOutBounce:function(g,h,f,j,i){if((h/=i)<(1/2.75)){return j*(7.5625*h*h)+f}else{if(h<(2/2.75)){return j*(7.5625*(h-=(1.5/2.75))*h+0.75)+f}else{if(h<(2.5/2.75)){return j*(7.5625*(h-=(2.25/2.75))*h+0.9375)+f}else{return j*(7.5625*(h-=(2.625/2.75))*h+0.984375)+f}}}},easeInOutBounce:function(g,h,f,j,i){if(h<i/2){return d.easing.easeInBounce(g,h*2,0,j,i)*0.5+f}return d.easing.easeOutBounce(g,h*2-i,0,j,i)*0.5+j*0.5+f}})})(jQuery);;/*
873
- * jQuery UI Effects Highlight 1.7.2
874
- *
875
- * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
876
- * Dual licensed under the MIT (MIT-LICENSE.txt)
877
- * and GPL (GPL-LICENSE.txt) licenses.
878
- *
879
- * http://docs.jquery.com/UI/Effects/Highlight
880
- *
881
- * Depends:
882
- * effects.core.js
883
- */
884
- (function(a){a.effects.highlight=function(b){return this.queue(function(){var e=a(this),d=["backgroundImage","backgroundColor","opacity"];var h=a.effects.setMode(e,b.options.mode||"show");var c=b.options.color||"#ffff99";var g=e.css("backgroundColor");a.effects.save(e,d);e.show();e.css({backgroundImage:"none",backgroundColor:c});var f={backgroundColor:g};if(h=="hide"){f.opacity=0}e.animate(f,{queue:false,duration:b.duration,easing:b.options.easing,complete:function(){if(h=="hide"){e.hide()}a.effects.restore(e,d);if(h=="show"&&a.browser.msie){this.style.removeAttribute("filter")}if(b.callback){b.callback.apply(this,arguments)}e.dequeue()}})})}})(jQuery);;
885
- $(function() {
886
- /*(the ISC license)
887
-
888
- Copyright 2006 Suraj N. Kurapati <sunaku@gmail.com>
889
-
890
- Permission to use, copy, modify, and/or distribute this software for any
891
- purpose with or without fee is hereby granted, provided that the above
892
- copyright notice and this permission notice appear in all copies.
893
-
894
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
895
- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
896
- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
897
- ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
898
- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
899
- ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
900
- OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
901
- */
902
- "use strict";
903
-
904
- //--------------------------------------------------------------------------
905
- // utility logic
906
- //--------------------------------------------------------------------------
907
-
908
- //
909
- // Returns the tab corresponding to the
910
- // given panel in the given tabs widget.
911
- //
912
- function tab_by_panel(panel, tabs_widget) {
913
- if (!tabs_widget) {
914
- tabs_widget = panel.parent('.ui-tabs');
915
- }
916
-
917
- return tabs_widget.find(
918
- '.ui-tabs-nav > li > a[href=#'+ panel.attr('id') +']'
919
- ).parent('li');
920
- }
921
-
922
- //
923
- // Returns a jQuery element containing a jQuery UI icon of the given name.
924
- //
925
- function ui_icon(name) {
926
- return $('<div/>').addClass('ui-state-default ui-corner-all').append(
927
- $('<span/>').addClass('ui-icon ui-icon-' + name)
928
- );
929
- }
930
-
931
- //--------------------------------------------------------------------------
932
- // document location
933
- //--------------------------------------------------------------------------
934
-
935
- var $last_hash;
936
-
937
- //
938
- // Sets the location bar hash to the given value.
939
- //
940
- // [prevent_jump]
941
- // If true, prevents the browser from jumping to
942
- // the element corresponding to the given hash.
943
- //
944
- function set_hash(hash, prevent_jump) {
945
- if (hash === $last_hash) {
946
- return;
947
- }
948
-
949
- function set_the_hash() {
950
- // XXX: bypass on_hash_change() by setting $last_hash
951
- window.location.hash = $last_hash = hash;
952
- }
953
-
954
- if (prevent_jump) {
955
- var target = $(hash);
956
-
957
- if (target.length) {
958
- //
959
- // This particular approach to solving the browser
960
- // jumping problem comes from the jQuery.LocalScroll
961
- // plugin, which is dual licensed under MIT and GPL:
962
- //
963
- // Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
964
- //
965
- // Permission is hereby granted, free of charge, to any person obtaining a copy
966
- // of this software and associated documentation files (the "Software"), to deal
967
- // in the Software without restriction, including without limitation the rights
968
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
969
- // copies of the Software, and to permit persons to whom the Software is
970
- // furnished to do so, subject to the following conditions:
971
- //
972
- // The above copyright notice and this permission notice shall be included in
973
- // all copies or substantial portions of the Software.
974
- //
975
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
976
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
977
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
978
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
979
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
980
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
981
- // THE SOFTWARE.
982
- //
983
- // The jQuery.LocalScroll plugin is documented at:
984
- //
985
- // http://flesler.blogspot.com/2007/10/jquerylocalscroll-10.html
986
- //
987
- // And its source is available at:
988
- //
989
- // http://flesler-plugins.googlecode.com/svn/trunk/jquery.localScroll/jquery.localScroll.js
990
- //
991
-
992
- var target_id = target.attr('id');
993
-
994
- // temporarily place a dummy element at the current
995
- // screen position and give it the ID of the target
996
- var original_screen_position = $(window).scrollTop();
997
-
998
- var dummy = $('<span/>').attr('id', target_id).css({
999
- position: 'absolute',
1000
- top: original_screen_position
1001
- });
1002
-
1003
- target.removeAttr('id').before(dummy);
1004
-
1005
- // when we set the hash, the browser will jump to the
1006
- // dummy, which is where the browser screen currently
1007
- // is, and therefore the jump will not be visualized!
1008
- set_the_hash();
1009
-
1010
- // undo the temporary changes
1011
- dummy.remove();
1012
- target.attr('id', target_id);
1013
-
1014
- // the above approach does not work for Opera and IE.
1015
- // they ignore the dummy and jump to the actual target
1016
- $(window).scrollTop(original_screen_position);
1017
-
1018
- return;
1019
- }
1020
- }
1021
-
1022
- set_the_hash();
1023
- }
1024
-
1025
- //
1026
- // Reveals the element at the given hash by (1) activating all
1027
- // tabs that contain it, (2) smoothly scrolling to it, and (3)
1028
- // updating the hash in the browser's location bar accordingly.
1029
- //
1030
- function reveal(hash_or_elem, callback) {
1031
- var target = $(hash_or_elem);
1032
-
1033
- if (target.length) {
1034
- var target_is_panel = target.is('div') &&
1035
- target.parent('.ui-tabs').length;
1036
-
1037
- // reveal all tabs which contain the target
1038
- if (target.is(':hidden')) {
1039
- var panels = target.parents('.ui-tabs > div:hidden').get().reverse();
1040
-
1041
- if (target_is_panel) {
1042
- panels.push(target);
1043
- }
1044
-
1045
- $(panels).each(function() {
1046
- var panel = $(this);
1047
- var tabs_widget = panel.parent('.ui-tabs');
1048
- var selected_index = tabs_widget.tabs('option', 'selected');
1049
-
1050
- // map the panel to its tab because tabs do not
1051
- // have to be in the same order as their panels
1052
- var tab = tab_by_panel(panel, tabs_widget);
1053
- var wanted_index = tab.prevAll('li').length;
1054
-
1055
- if (wanted_index !== selected_index) {
1056
- tabs_widget.tabs('select', wanted_index);
1057
- }
1058
- });
1059
- }
1060
-
1061
- // scroll to nearest visible element if the target
1062
- // is naturally hidden (e.g. because of a CSS rule)
1063
- if (target.is(':hidden')) {
1064
- target = target.closest(':not(:hidden)');
1065
- }
1066
-
1067
- // scroll to the tab bar instead of the target
1068
- // because it contains the title for the target
1069
- var scroll_target = target;
1070
-
1071
- if (target_is_panel) {
1072
- var tabs_nav = target.parent('.ui-tabs').find('> .ui-tabs-nav');
1073
-
1074
- if (!tabs_nav.is(':hidden')) {
1075
- scroll_target = tabs_nav;
1076
- }
1077
- }
1078
-
1079
- var scroll_offset = Math.floor(scroll_target.offset().top);
1080
-
1081
- // set body height so that any element can be
1082
- // brought to the top of the screen via scrolling
1083
- var document_height = $(document).height();
1084
- var window_height = $(window).height();
1085
- if (document_height - scroll_offset <= window_height) {
1086
- $('body').css('min-height', document_height + window_height);
1087
- }
1088
-
1089
- var pending = true;
1090
- $('html, body').animate(
1091
- { scrollTop: scroll_offset }, 'slow', 'swing', function() {
1092
- // prevent the body of this function from being
1093
- // executed twice -- because there are 2 target
1094
- // elements in the animation list and only one
1095
- // of them actually works in different browsers!
1096
- if (pending && scroll_offset === $(window).scrollTop()) {
1097
- pending = false;
1098
-
1099
- var target_id = target.attr('id');
1100
- set_hash('#' + (target_id || '_reveal' + Math.random()),
1101
- target_is_panel || !target_id);
1102
-
1103
- if (callback && typeof(callback) === 'function') {
1104
- callback();
1105
- }
1106
- }
1107
- }
1108
- );
1109
- }
1110
- }
1111
-
1112
- //--------------------------------------------------------------------------
1113
- // search engine
1114
- //--------------------------------------------------------------------------
1115
-
1116
- // Adapted from the source code of the ":contains" selector from
1117
- // the "Search on this Page" plugin by Waldek Mastykarz
1118
- // <http://blog.mastykarz.nl>, which was (1) published online on
1119
- // 17 November 2008 at <http://www.endusersharepoint.com/?p=951>
1120
- // and <http://blog.mastykarz.nl/search-page-jquery/>, and was
1121
- // (2) updated to work with jQuery 1.3 by "anonymous" here:
1122
- // <http://stackoverflow.com/questions/187537>.
1123
- jQuery.expr[':'].matches = function(a, i, m) {
1124
- // compile the regexp during the first call to this
1125
- // function only, so that subsequent calls are fast
1126
- if (typeof(m[3]) === 'string') {
1127
- m[3] = new RegExp(m[3], 'i');
1128
- }
1129
- return jQuery(a).text().match(m[3]);
1130
- };
1131
-
1132
- $('.tabs:first > ul').append(
1133
- $('<li/>').append(
1134
- $('<a/>').attr('id', '_search_link').attr('href', '#_search').
1135
- text("Search")
1136
- ).hide()
1137
- ).append(
1138
- $('<form/>').attr('id', '_search_form').append(
1139
- $('<input/>').attr('type', 'text').attr('name', 'q').
1140
- addClass('initial').attr('title', "Search with regular expression").focus(function() {
1141
- var box = $(this);
1142
-
1143
- if (box.is('.initial')) {
1144
- box.val('').removeClass('initial');
1145
- }
1146
- }).blur(function() {
1147
- var box = $(this);
1148
-
1149
- if (! box.val().match(/\S/)) {
1150
- box.val(box.attr('title')).addClass('initial');
1151
- }
1152
- }).blur()
1153
- ).append(
1154
- ui_icon('search').attr('id', '_search_start').click(function() {
1155
- $('#_search_form').submit();
1156
- })
1157
- ).append(
1158
- ui_icon('cancel').attr('id', '_search_stop').hide().click(function() {
1159
- $(this).attr('clicked', 'clicked');
1160
- })
1161
- ).submit(function(event) {
1162
- event.preventDefault();
1163
-
1164
- var search_box = $(this).find(':text');
1165
- var query = search_box.val().replace(/^\s+|\s+$/g, '');
1166
-
1167
- // ignore empty queries
1168
- if (search_box.is('.initial') || !query.match(/\S/)) {
1169
- return;
1170
- }
1171
-
1172
- // detect invalid regexps
1173
- try {
1174
- new RegExp(query);
1175
- }
1176
- catch(e) {
1177
- alert(e);
1178
- return;
1179
- }
1180
-
1181
- // one search at a time
1182
- if (search_box.attr('disabled')) {
1183
- return;
1184
- }
1185
-
1186
- search_box.attr('disabled', 'disabled');
1187
-
1188
- // begin the search
1189
- var status = $('#_search > .status');
1190
- var results = $('#_search > .results');
1191
-
1192
- // display the search results tab
1193
- $('#_search_link').click().parent().show();
1194
-
1195
- // clear previous search results
1196
- results.text('');
1197
- status.text("Searching...");
1198
-
1199
- // timeout allows status updates to appear
1200
- setTimeout(function() {
1201
- var num_results = 0;
1202
-
1203
- function emit_result(match) {
1204
- // exclude matches from previous search results,
1205
- // the table of contents, and jQuery UI tab bars
1206
- if (match.closest('#_search, #_contents, .ui-tabs-nav').length) {
1207
- return;
1208
- }
1209
-
1210
- var excerpt;
1211
-
1212
- // resolve tab panels into their section title
1213
- // because additional matches, which lie within
1214
- // the content of these tab panels, will come
1215
- if (match.is('.ui-tabs-panel')) {
1216
- excerpt = match.find('.title:first').clone().show();
1217
- }
1218
- else {
1219
- excerpt = match.clone();
1220
- }
1221
-
1222
- // highlight the query inside the match excerpt
1223
- excerpt.html(excerpt.html().replace(
1224
- new RegExp('(<[^>]*)?(' + query + ')', 'ig'),
1225
- function($0, $1, $2) {
1226
- // only highlight if not inside an XML tag literal
1227
- return $1 ? $0 :
1228
- '<span class="ui-state-error">' + $2 + '</span>';
1229
- }
1230
- ));
1231
-
1232
- num_results += 1;
1233
- var result = $('<li/>').addClass('result').append(
1234
- $('<blockquote/>').addClass('excerpt').append(excerpt)
1235
- ).attr('id', '_search' + num_results).click(
1236
- function(event) {
1237
- event.stopPropagation();
1238
-
1239
- // save this search result's hash in browser history
1240
- // before revealing the matching element so that
1241
- // the user can press the back button to return to
1242
- // this exact spot in the search results listing
1243
- reveal(this, function() {
1244
- if (!$(event.target).is('a')) {
1245
- reveal(match);
1246
- }
1247
- });
1248
- }
1249
- );
1250
-
1251
- // show bread-crumb trail for the match
1252
- var first = true;
1253
- match.parents('.ui-tabs-panel').each(function() {
1254
- var panel = $(this);
1255
- var tab = tab_by_panel(panel);
1256
-
1257
- if (tab.length) {
1258
- if (!first) {
1259
- result.prepend(' &rang; ');
1260
- }
1261
- first = false;
1262
-
1263
- result.prepend(tab.find('a').clone());
1264
- }
1265
- });
1266
-
1267
- results.append(result);
1268
-
1269
- // unhide any hidden elements in the search result
1270
- result.find(':hidden').removeClass('ui-tabs-hide').show();
1271
-
1272
- // remove tab bars (used for titles) and mini navigation menus
1273
- result.find('.ui-tabs-nav, .ui-tabs-panel > .nav').remove();
1274
- };
1275
-
1276
- var matching_elems = $('#_body').
1277
- find(':matches("'+ query.replace(/"/, '\\"') +'")');
1278
-
1279
- status.text('').progressbar();
1280
- var start_button = $('#_search_start').hide();
1281
- var stop_button = $('#_search_stop').show();
1282
-
1283
- var prev_match;
1284
- var prev_elem;
1285
-
1286
- function process_match(i, n) {
1287
- status.progressbar('value', Math.round(i / n * 100));
1288
-
1289
- var elem = matching_elems.eq(i);
1290
-
1291
- // ascend to a larger container for more context
1292
- var match = elem.closest('pre,ul,ol,dl,table,p,div');
1293
- if (!match.length) {
1294
- match = elem;
1295
- }
1296
-
1297
- if (
1298
- prev_match && prev_match.length &&
1299
- match.get(0) !== prev_match.get(0) && // unique matches only
1300
- elem.parent().get(0) !== prev_elem.get(0) // leaf nodes only
1301
- ) {
1302
- emit_result(prev_match);
1303
- }
1304
-
1305
- prev_elem = elem;
1306
- prev_match = match;
1307
-
1308
- if (i < n && !stop_button.attr('clicked')) {
1309
- // timeout allows status updates to appear
1310
- setTimeout(function() { process_match(i + 1, n); }, 0);
1311
- }
1312
- else {
1313
- // handle the last item in this two-stage prev/curr loop
1314
- if (prev_match && prev_match.length) {
1315
- emit_result(prev_match);
1316
- }
1317
-
1318
- status.progressbar('destroy').text("0 results".replace('0', num_results));
1319
-
1320
- search_box.removeAttr('disabled');
1321
- stop_button.hide().removeAttr('clicked');
1322
- start_button.show();
1323
- }
1324
- }
1325
-
1326
- process_match(0, matching_elems.length);
1327
-
1328
- }, 0);
1329
-
1330
- return false;
1331
- })
1332
- ).after(
1333
- $('<div/>').attr('id', '_search').append(
1334
- $('<p/>').addClass('status')
1335
- ).append(
1336
- $('<ol/>').addClass('results')
1337
- )
1338
- );
1339
-
1340
- //--------------------------------------------------------------------------
1341
- // create print preview toggle
1342
- //--------------------------------------------------------------------------
1343
-
1344
- $('#_header > .authors_and_date').append(
1345
- $('<span/>').addClass('printer_friendly_toggle').append(
1346
- $('<input/>').attr('type', 'checkbox').
1347
- attr('id', 'printer_friendly_toggle').click(function() {
1348
- var checkbox = $(this);
1349
-
1350
- function change_media(src, dst) {
1351
- var styles = $('style[media="'+ src +'"]');
1352
- if (styles.length) {
1353
- // try changing the media in-place
1354
- var before = checkbox.offset();
1355
- styles.attr('media', dst);
1356
- var after = checkbox.offset();
1357
-
1358
- // but if that did not work
1359
- if (after.top === before.top && after.left === before.left) {
1360
- // try reinserting the <style> into document.
1361
- // this works in Webkit browsers, which ignore
1362
- // the in-place changing approach tried above.
1363
- styles.each(function() {
1364
- var style = $(this);
1365
- var parent = style.parent();
1366
-
1367
- style.remove();
1368
- parent.append(style);
1369
- });
1370
- }
1371
- }
1372
- }
1373
-
1374
- if (checkbox.is(':checked')) {
1375
- change_media('screen', 'none');
1376
- change_media('print', 'screen,print');
1377
- }
1378
- else {
1379
- change_media('screen,print', 'print');
1380
- change_media('none', 'screen');
1381
- }
1382
-
1383
- return true;
1384
- }).css('margin-right', '0.3em')
1385
- ).append(
1386
- $('<label/>').attr('for', 'printer_friendly_toggle').
1387
- text("Printer friendly")
1388
- )
1389
- );
1390
-
1391
- //--------------------------------------------------------------------------
1392
- // activate base64 data URIs
1393
- //--------------------------------------------------------------------------
1394
-
1395
- var data_uri_by_embed_uri = {"cid:69935292":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC","cid:69923168":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAIkSURBVDiNjZJNSxtRFIbfc+cjmZkkfjSCEFuQtghCwUWj0KXb/IQs3GlBKBQ3waWLoNBfIBSkJYI/ILsupIsuGrIqLQGRoEak6KLNmExzZ+aeLuJMZ4oLz+7e97nPORwuMTMeUvOVvTrAW0TUZua1brN2AgAUCVZeH9aZeUsToh2Eaq21Xz3593h3U9P1vcKjojPyPDV0+z0wL3abtYEAgOWNxmYmY7x5ufTMnCsVV4QQn8rrDSduT7STny46mm7AzheEputTAFYBQIxz2llceOxYVgZP5maEbZkxMF/ZnQVg64YR+8xM1gbwCgBEeb0xC8B27GwMTE7mbKIxAKCsG8YouQ/dNDUiEU9QzjnZFFDIWZqmaauRwDAzuf8EYFYvYsFEwUkB+ZyFMBwDADwAKpmzYoDIiwQeM6eAMFQggnd37ARSDpN54EsQqB0JOreDPynAHXgQQrRjQeBrKYGUklkdA4AOoDMcjlKA63oyCMLju+MpK2XfXF4kERPA10hwKv3A/vzl+71At1mTAFINkkUP+crzld0egFLiyu82a2Y0AZY3DnvMnAJa+1Uz7kJ0npuaLmUsG74coX9zfRVlOgBogs6fPy2VZooT6LtDfPtxdpWQgZkPPLe/JDTdGvb7koGjKBMAEITq4OLyxnNvPZxdXEtmPkK6PgS+/+739c9bX47eg7me2kF5vZElom0Ab4noo1Jqu7Vf/XXPLkS3WUv9mb/vR+THZPMfuQAAAABJRU5ErkJggg==","cid:69921642":"data:image/png;base64,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","cid:69920620":"data:image/png;base64,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","cid:69919892":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAlSSURBVGiB1ZpJjFzFGcd/31t6ncWzeHrGG15JwBAcjAGDkwtJDPIgnAgh+UAkDlzgFHHIzQeOUXKJAheUE1IQEoqMMiZBkSMQToxkx2DMImMbg5cZz7jbs3W/3t6rL4funnm9zoxnEiklleq9qn9X/f9ffVWvlhZV5f85OGtSi4iMwT4LDtsi9wObDaQC1X4AW+S2BZPAtUD1vIFjo3CaNbCerKaOMZEnbMt6XlWf6Uml7M337U50pYbsSFcXkZ4u3HgCTEDZ8yhls5Tm5pmfmAiufXXBm7+VDkTk3cCYN0dVT/xPBYyJ7LdFXutav37Xzr0PJgfuuVvcaAymZyCbhVIZiiUolys/cF2IuhCJQFcSeropFwukL3ytl8+ey2VvpS8Gqi+Pqp76rwo4JrIjKvK629tzYM+PHo8P3LtbyNyGTAbyhWXVsdBaPAYDfWhvN5kLF/Szkx/ny7NzJ4uqLx1WvbzmAo6LHLQc553d+x9ObHporyXzOZi4CYFZHuEWeaoKtgXDKehNcP30WfPVx2c84/vPHlJ9f80EHBd5xU0kXn300MFEd/8g3JgA31826fB7rb0mjOMgG4bI3r7F6b+e8Mpe/ugh1d+tWsB7Im90p4aO7Hvyp8moWjB1a0nC4bxw/e2EhfMlNUjJ8jn73onc3FT6rVHVFzvxszoVHhd5pTs1dOSxp59KRr1SHXkNxcY8o4qqVtIG3AKmRWqAYDKN7QU8dOgnye6hwSPHRV7pxLFtDxwXOegmEn/+8c9HE9GCDzmvvQVXaOVWedWKFsuSCfy48PGxv3m+l/9FuzHRUsAxkR1Rx/n08aef6uqyXMh5bUl3dJ8O5Bc5N4tfyFnXhVfMcvr4iWzZD/a0mp1aulBU5PV7H9mb6HIctGr5dq5Ra7CTazS5UUM9phFfLdfpeeJujLv3PZCIirzeimuTgDGR/W5vz4GNO7ZZZi7X1Fg7X25HOky4kXQdtlpOqB0DmBmP1PYtltOdPDAmsn9JAbbIa/c9tCeumRkUWdEA7GTldqSpietgBDOdY9fe++OWyGsdBYyJPJFcP7hrIDUkWvLrLbGElVnCymHXCJNeFqZkWDfUL4nBvl1jIk+0FWBb1vNbv7cjqdNzqGW3dZGWrrGElRtdY8meEEFFqqmFPznNxp13JW14Psx5cTktIiryTP+mDWImp8GNdJ7mGtKFZ1UQWXwXaY0Jl4XxjRioCCkpvZtSYkSeQURq09dCD4zBvq71A7bjB6jjoiILDbS0imWhlgWWhVbzqeUvWE7aYyyrqT5aYaq/JZ7AKvskBvvsMdhX422FHg4P37U5ofO5yo9rhMMVhUmH3aCKa8JUDbCAEWmJQaQyBjoYCNfFvzXD4OaRBHC4yYVE5P5kb7etBtSxmt3n7bfrXqUhXevgPfccsOiGiBDki8R7k7ZV2fUBYQGw2Y3HMEXT5JNrRVSN1lUkSPuKLat5vBnFiUYANtdgCwIMpNx4FC0U6gdeVcxqBKhRjJqWW2ARwbIsROpbMA3vlZWA4CSiKKSaBaj2O7EoahVbzgodl60dQhAEHffuqkoQBItCar0SMmItNV4eNxrBVA8L6gTUKlPXreu+Ow1qlMAEy8fXhCBYdmVCaCrPZuumVwjPQiK3S4UCanRxKgvFlQQTmBWRryNKRUjx3DmCbHaRg+9jTEC5WMQSuV3Dh3tgspwvDNuBDRK9ox5YqdU7hXImQzmTQZJJrL4+/JuTWF0xSl4BKmdMQP0sdK2Yzz8QlejCtLUcESJSGaTGYLTzBn8lYWHJks3iZ7MAWNFuyoUiAteaBASq57Mzc08lYzFbInEkHl+oCKDwwgtNgky+gP/dt5THxyEIlr3UuBMMgNWbJD+XDYzq+YW8UPmx9NVxz1rfT/Gzz1Bj6r6aC+PCGPx0msLnn5M/+RGlq1dR3++4oDO1FWo7TLW8E8YAdqqP6WuTHnCsqQdG4fTx9HTgOxZqfLwPPsAeHEQGBiAwaKmI8TyCdBoNgtaWW8KCq8FIMoaJ2OTTs8EonG4SgKoi8u7Mjclfdo8MSnDpGuWpKZia6rhvrdsPrALTSZgC0eF+5m+kVeDdMKG6yVbhzfFL3+WcrRswlnTeUYW7fAnXWA6mk/sgQmTrMLeu3MgpvBnmXCdgVPVEPj19cTY9rc7Wjc2bmQ4NrRbTSby7bZhsZlYL6dmLjSfZTSsEo/ryN598mXd2bgLXWZMBqHQWZmg48QgLcx0iOzcwfv5SHni5kW+TgFHVU8G8dzLz3bhxd29f2n2WYcFluVgL0QaI37uFmauTxp/zTrY6fm+5RiupvvTtv7/wyskYzo5NS7pGeEO+li4W3T6C6Y5x89OLng8vteLaUsBh1csSmGcvfnjGs7aOYA31LWnBVblYC4yb6sPdluLqR+c9Ccyz7e4M2q6SD6m+H3iFo5f/+UkuumcXdqr/ztznDjBuqo/4nu1cP/VFzuSLRzvdFSx5vP4XkTcSg+uObDuwJ+l/M07h8g2g+YPTlLdCDFVR8R0jRLYPc+PUl7l8evatp5c4Xl/2BYediL267cc/TFjzebwvrqCl8pp+bcV1SO6+C7pjXD953jP50tpccIREHFTbemfDnrsT67akrMKlcYpXJjBmcQV6J0sELIvYthTxnSPMXZsyU+e+8SQwa3vFBCAizm/g+7vg97HuxKMbfrAzlhjolcKVCUoTGYJcoZko7d3HTsZwh/uIb0+Rz8zrzfNXCt68d+ZD+PUf4GugBBRVtbQqASLiAjEgWkt/BY88Bkd7Bnu3DGwbiXWNDApln9LEbfzZHEGxhMkXCYqVa1aJuljRCFbMxe5NEh3pQ10HbzyjmW8nCrOZ+Rt/h9/+Ec4CBaDYkBZUtbhiASLiAPEq8VjDc+xF2P8g/GwYHokN9NjrNg5Goj1Jy4lFsGMRnJiLAkGhjF8o4ueLFOZyZmY8Uy5m5s11OPsxfPgnOFMjCuSrxPOh97YiViWglmdD/Em451F4eD1sTkB/DLojFTxFKOQhl4WZKRj/F3z6D7hoQuSWISCrqk371eW4kFUlXiMfbUgj1edIKLqAXY1SjQoE1ViuxlIoFkLpgusAWSrWb7lfXckglhDZeDV1Q4RdKvsLJ0S+9qGsCaitOgLAbyGmDHhUra6q5SV53emfPaqCrBDpMPlaalVjI/la9EMCgnZW7hT+A5SLlrQmK/qkAAAAAElFTkSuQmCC","cid:69919486":"data:image/png;base64,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","cid:69919094":"data:image/png;base64,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","cid:69917778":"data:image/png;base64,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","cid:69903120":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAN1wAADdcBQiibeAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAU3SURBVGiB7VlPaBRXHP5+82aTSLIrkY3YJR68VmuSPXlRPPQPGg05iD14sZfEUkpbPJQqQVJs0yQlkEDobaE9CaloTlI0InhYNOBi2yAFT0JxZW2ysn/cmTczvx4ym+7Ozs7uzK6kQj54zOzvzbz3fe/3583MEjPjbYay3QRaxY6A7caOgO2G2uoAExMTB4QQVy3LGrEsq+XxnFAUpcDMCVVVv71y5Ure2d/yhKqqLgwPDw8PDg6SEMLzWj8lu3ytlLLr9u3bXzx48OAlgJma+f3Rrcb4+HgoGo1+FI/HSUoJKWVDQpXnThsR1fSHQiEcP36849GjR2NtFxCLxYSu64qiKDBNsyXyAGBZVo3NNE2EQiEA2OU2dttj1gkvwn766+GNCvAi50eQF96IgCCrHVRQ2wW0Sq7tHhgfHw/FYrF69bELAAzDgGEYvsipqtoU+cA5MDExcUBV1Z/27t37vld97+rqEtPT056TOCGlRF9fH44dO4b9+/cHTmDAQ4AQ4uqpU6c+jMfj5Itdk0in07h27RrOnz+/ZWurByzLGjl8+DBpmlZVn5tBo/AhIuzbtw+GYSCfz6OnpycQ+UYCVCEEDMNoG/GKscHM6O7ursodv+Q9BfhBOypL0ErUsoBmCDda2WbKLTO75mJgAX43paB7QYWdiIjYsQK+X2gqB3WbqFmbc0wvQfZvBUC3815fHggaLl4hREQgoq1KV36kLh/LhYSZNQCdAKpeapoS0I5wqSciEokgEokgm80CAHbv3g0hxNY1hmHg3r17xvr6+q9u3BoKCLrCzfRJKTE3N2devHhRhMNh5HI5qKqKyclJSCl1+7bSxsbG8srKys8AXgcS4IzddnmEiEpPnjz5anFxcebChQvhPXv2AAA0TeOFhYUjxWJRBWAAKADYcBPQVBK3kqxeNgD86tWr35PJ5Oj8/PxGMpnUmRnRaLR09uzZAQAv7ZYB8I+zAgFtDiG/HiEi7u3tzV+/fn0tm82+p+v6lw8fPvyso6Ojo7+///uDBw8eWltbKwKo+7Ld0AOVIeRczRZXHwAgpRQA1GQy+Xp2dva7W7duHXr+/HnCNM2+EydOfAqAsLnQgohUIqri/EZDyE20Y1wqFoudAEI2SfXOnTvZqampr58+fTrAzO+cPn26z+ap2GIUKtdY1AkhIlIvX75cQ8rt6MfmNlWpVOqyyVU+8vLS0tLfAL5x2AGgasB6OdBJRKZpmnB+MqncdCptdlWpjO8tmxOKokBRFORyOWiaxrYAaZOz7GP53Ko4N5m5avIaAUQkAKi6rv+WSqVG4/G4UvlGJqVEPp+HEAKRSKSOfm9YloVnz56hUCi8XF1dTdvkpIN8pQDLrQK5CijrSCaT05ZldS4vL3/AzAIADQ0NWaOjoyoRIRwO4+7du3JlZUXA4dZGsPPhz8ePH/8AQLPb6zLxemRdibo8mxCAHrt1A+gAwGfOnDly7ty5xZGRkV0AsLq6Km/cuLGWSCQ+yWQymh8B+C8hS9jcpHLMXPPhthnUeICZmYh0bK4KAdABcCwWG+jv71dN08TNmzdLqVTqr6WlpY8zmUzN7uhDgG6LKAYhD7h4YKuDqBObn03EyZMno4ODg38cPXpUSaVShRcvXkwmEolfcrlc/Q+i3ignlQ6gyMxBx6m/EzOzZntCDAwM/AgA9+/fn02n01OJRKIQdEIbyuYUwYmXUdcDZVy6dOldZv7cNM3JmZmZdKsTth3OXdPZxsbGQo2u2c7W0AP/d7z1f/LtCNhu7AjYbrz1Av4F8/cV1apw1zkAAAAASUVORK5CYII=","cid:69902140":"data:image/png;base64,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","cid:69901174":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJOgAACToB8GSSSgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAS1SURBVFiF7ZddbBRVFMf/596Z3W3rtiwtUFsJFQhWMQSIWi0UKJHPlISvCGpiogkxig8SlBSj0Rij6YMPJhB9IyZqTFRC4pNKAgElplSIsRURRL6xtLRLu53dmbn3Hh9mFrZ1Kcs2pi9McnJndu8953c+7rkzxMwYz0uMq/W7AACssSpofo2qlJQfW6X66QNvs7rT9WOKQNP22Kz4xNqOadX1y1CkM0UDLH7dXlo3ddahV9a9O62m6n6/WD1FUS9qtbbMe6i5bUXDxkR/5h+AijVfBEBTa+TD1Q3PbJlX3xQ/39eFeKyyeOt3AvDIi2THJsivn1u5fUXt5LroxeRJMBjA2BoZFdIJm7fRBHFP+f4tLTvnRksism/oCjQrKOOjIlaFgWTSOX3pj0FmRiAGBszMBgyG1gqdZ38+cvh9tWGk7ttG4IltJXWTJtbsf37NjulplaSeVDeYDTRrGKMw6PahrKK89OH43FJjVAimYFhBax/aKFRXTEfn3+2T8+kfFaDpjUhD3X0z9m5e9lJNz9A5eCoDRughGxhoeF4ag+41aKOgtA9tfCgzfCwvmXRLG7cEWNRqbZ5d9+iulY2bKi8ku6CMAhGBmQFigAIAIzTYaLBQYFYwRsGwzhGD0eokL0DTzug7jXNWvjq/fkHFqd6jAANEwV4jQQEAgvwaykIoMGmwMGCjoTkACUZTOMDCndaelsZnn5oyubr0VE87iAQIBCKCEHRjyxOFBcY+UqofQ24SaX8IMACMALGEhRKAGYZ14QAEOL3XL2urzCDpdKMsloCAgLAEBBG0ceF4STg6ibRKwtVDYV0w2ABGM4xmaMUwiiE4ghnevFB1AQCHP1BbF7dG/pw+MPutWTNnVnZc/A5CANFoDBAaWmQgJUFIAkmCsAPdzATWDKIcUwwo30VGOQCDiEgyDw9H3rPgUJu/u/PEby8cO97R3TB1DWw7AtcMQlEGQhKERRA2QVqhhPfCDv4bBigDGmYIABEikqMCEJEAYHXs0ge62i+tPXjk+/Pz713FidIpECJQPsywLSAtcQNCWrnGEdTNzeBbACyim7/k2wUiFHlir//X4LneFtfd9+Xy5pYHrnKX7PXOQsjQS4tQYpcjEa0J8m+CvGvF0L4JR0ZpJA4wKEc3Idybt+uEdPEX9F0/l1rvet988uSS1Y+XJxKxC86vAYQlUFlWC75alT5/+kImaMPgoMOb4KQwxNdwlJlNb14DI8+CMEeRUOyc0X5sq/3mwgWN62vrE/HTqUOQNqEmXo8zR5z+z3Yc35BJwgGgAPiheCPus88uh4b/UwNhlepQ0TBp3+2/d/CHn9p+bz/TP2fialgyEuRYgEnCAZAB4OYYG6lDA/A4x+tbpWDkG07Q+gB9bI/63OvvOjXgDHy0fMWq6hRdBsNhIZEOAfI5kI1Chnl4W8wLEBJ6RGSyhsO5EoDs3Kd/TCUvrXOcb7/YuHZTHXE3ywgcAOlwfnbNDa9Hen67CGRBFAAV1oWdBQAgzh70T7rXe5pd79OvonbJg5E4hsII5AJ4AHQ+wwUB5IBkw4pwDwsAdOU4UiQGl8xc6r3cK3AtnMPBksK++Qp6I/o/r3H/MroL8C8JiYMXQa6AIwAAAABJRU5ErkJggg==","cid:69900642":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAJOgAACToB8GSSSgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAASrSURBVFiF7ZdtaFZlGMd/133O2dgcmunUZDgzzIYvJIH2wU2UtDKKXkCCLIqiDyIWZfhCEYIRCUIgUvYhApMKKoUMDd9ymagzNHTGZNlSp5tz0z17e55zzn1ffXjOo8/WZuqH+SEfuLgOPPc5/9/1v677PhxRVW7nz9xW9TsAtwowZ7X4Ve/4i24bAFcoKb173MZH3h2yY8FSKRx8AGDqhBnpt57/eJ43aszhqqVSOugATh1i1Cx+ZvW0svEVNbNWFE4eVABVR1d4mfOpehY9+kb5tAkz9lSu8J8cNACnjshGpOMOTrcdY/7Dz42a/eBTmyqXFy6/medIfydh1Ur/64pxM+cGnq8igogICCJylXtieUXJsGF3FbV2NeLUouoYM3QCF1uaurfu//zb6oLoFX1f3S0BVK4q2PPmwg/mXOo6h4jBE58siMHINdNS6VbSUReKw6nDOcvw4tH4tij6ZvdnB21rasHeDdp5PQB/oD+6wxSN7acScYMRL8kCJE4IqCqqDtUsRHNHA8XB0OCFx5bM2rL3iyOz35Z5+9bp2YF0BpwBq5bYhkQuQ+ySbDPZTAYrIY4MTrLXlpBYM8Q25HJPMw1Xjsqzc1+aVFY26UDlqoKZNw3gXEzswiyEzYrHZHAS4gixksFKhJMIJyFWQjKuk/boIq1djbR0nuXYhd3Mnvl42eTxD22rXO6/2J/OgC2wGhO5ECMeBoPxPXwEMMk8CKHtpjPTRmfUTjrsxFqLs4qLFRtnZ6vxSh3Tx88fOaxk2PqqlYUV1R9mVt0QQCbupivTjmd8giDAOEirRV1M5Hrose3EGmYXK4gPngi5jaKAi5XQprmQqqe0ZGKh58mUG3NAkY50G80dfyEGvMDg+YLnC8YXjCcYD7zcjlAQp7icuCbhlIpRs4hSfuqnmu+/PLDWLmFNb6l/zYCIeFwdczBGMIasaALh+YIXGPxA8APBC6Q3oC/4vseM8idoOdfe9uuhXe8dWGuXAd51HcgeOHiqWQAREC9X8bXwEhfEZDnVKbndqQoFUszU0fM4WHOo6dSxhsW/b3bViZaKiNW8w6dvCwzgoUhRUELZ8PsxgcH3kyoDk3UhAUnFTaRtJ+queVbij2BicZXu3PPT37W7Wl9u+MXWX30u2CTHAwEkPXSttX8cvySmGBHIgKiIGAMogiDjxo8tHDHSL2rqqcM5AXWMKCyn1E2Jf9ixpfbIVx2vtZ+mLUHLtVT6avU6ikXEAAVAkOT86yA/Xv10+rb7ZhWPaOqpw8WOewqn4pqH9+zYuX1/zcbMsrCLHiACwj45rXrtHdHLAVV1ImITy2xiVX4FCjjAiqDGCL5vuHdIJQ3H21LVP/+4ueaTaH1yX5REnIQFonzxflugqlEyjPmiOeE4uccgqMHngSHzObzvRMtv1bVrjm6KtueJ5SByOa2qcV+9AWZAQxFxuWqT8MkOkAGMgI71prN123fnTlY3vn5yqz3RZ30OIgYyqmr70+r3ddxrQfZcCK5WnsTTH5X9GUXp83W7Ly2s30tznks5iIh+LL8hB/q4YQGb1xYDyKXLFzec2R+uO7Ofnj7i+l+ivQq88234vwf4B6YlTDQudkyaAAAAAElFTkSuQmCC","cid:69898332":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABHNCSVQICAgIfAhkiAAABSlJREFUWIXdl1lsVUUYx/8zc7a7daUroXQhlkpoQ4sVA8b6gilbIEIDggEiEiSRFwzEJ/pCXXjgQR8sAW0I0QQSicZIiC9IsClFFqlC6HorXW/Xe+/p7b3nnpnxobbpJW1pS+uD3+N3vpn/b2b+c853gP9rrNp1WZtNHVlo4ZLDl/YzkC+lhAMUZ+9Uv3MCIHK6eraQ4sXvX9ri0tVvD2wtMt4oyaZPvP1rE1bf93ff/f72dGMWbAcKj1xMNYTSeGh7cbxUFNhcQpE2Lvxwz1Sj4czfvn4vONU4ulAAGicni/LTjYR4Jxo7g2jzjSAzJQ5Ll3iUCDUqphu3IACF7150MUqPvr4mS2/sCkICEEKic3AUhfkZBlXJjkUF0HW6JTXJTVwOHYOmNZHv80eQlRYHSFLyQgCrdlXOeKUkIRtezklVff5ITH7U4vC4dAjO00sOVzvnASDJ8vJPz5ghPZSz+ZNg9uaq/VNOQkmypjMaifKYvC0kKBn3eaI6Z4DsTZ9/mBTvOHZ0TxnbVV7q1hXlfO6mqi3P1nEhvIFg2NbU2Ol0hcIM2yAgPHcI5pwA8rd95iFEnN5UVqS19piQTMHO8lJFEHIpb+OZ1Mm1DLjT1jVsexyxizQ0hkF/CJSSlitXKmK353kAYc4rUpPilbQlcXjQ5MOv9zvgdjuwesVSw1b4yRgAxut7B4KGxgjIpDdLSpyOx20+Swh5dTqdaQEo2I6VKzKNJ0+HwIWEkBJ1j7rx6ppcnVIcTdt4xjVeawmHyYVE1BYTZ+5xqFCpxMOmHoVSXJgzAICSrPREtHX7JxKdfSaYoiIj2UMczJ7kBVuldExY/Gu83FQXrtc2WlLImtvVe5vmBJC5tdIppUh3OjUEQ1bMM29PAMsyl6gScgMAFB+6WECkuOlxaLBsCQkgM8lAR++wbO0cClpW9PgMi5wawBg1VACghMJ65mqFLRuMMUooSwYAytgxl6EWFOSlcv9oFJpCkehScb22kQsujzyoOTg8Z4DWxFxTEvDASBhOI9bZDk1BYCRsQwovADCCbbvfKsS6wizW548gJU5HQ4tPhsJRJcevTWu+GQFwpYJT0BbfoIl4V+xL0O3Q0NfvtyXFnZLD1SrnMlNRGf78O4BwlCMlXofKxhcisucHAEAKcbW1vdfKSHZP5AgBDI2if9g0OHi9orscACAkgS3Geo5AKIqoJSVltPbuud0t8wagjF3wdvUpTo0izjm2C4yOeYJzAS2smLe/2BdglA72Do0gwaki2aMhErFQ+9ArbFvMaL7nArT+dKKJc1FT/0eztTI7GZQQcCEmrpniUFQAICBnb/7eEtaZBOwofrzxyLI5P3Xv/L662QDM2BFlb69MQFRvXlf8UlIUKmnvCWBtfhpu1TXADEUeS0LfznmltCnU3V0jBN9DKIsQKU7Xn9tbNVMfOGsAAMgpr9qpG9p3b64vUhraBpCe5IQ5PMzbO3xsNBL9yvvzxx8AQNmBb4wbNQfDsxGdHM/tB9rcK66GI1Glpb1HZiS70DUwgrycpWx9aQEIJdvG6+YjPiuAZaY3GwA0hSHBrcOKcjxo9kGAQgqZWVJSPeV3fsEAnl470UIJqbVsLobNsY4nagtwPnbE/tRux6ICAIAQ5Hirt0sKbiPJY8Dj1DDoN0FABpuvVQYWHcB77WQdF/JUw1/Nlko44gyK5raOMICzLyIOzOHPaLjpl1vuvFuir3/otW7fAOO2vLw8FP7I670hXhRizpFdVmn856KLFf8AcP0p5DnhnVEAAAAASUVORK5CYII=","cid:69886712":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAAAfCAMAAABUFvrSAAADAFBMVEUBAAAIBgMMCQQLCwsSDgYXEgkaFQoUFBQcHBwlHQ4rIhEwJhM2KxU7Lxc9MBgjIyMoKCg0MzI7OztBNBpOPh5OSz9TQiFeSyVkUChqVCpuWCx1Rzl0XC5+ZDFOTk5ST0tWUk1VVVVcXFxqXUplZWVra2twcHB7e3sAWpwIX58JYJ8OY6ERZaIVaKQaa6Yebaghb6klcqopdawxea82fbE4frI+grRFhrZMi7pVkb1alL9dlsBkm8NoncRtocZ0pcl8qsyWBAOZAACcCASIIBmdNiegDge3PB6mPiqBZzODaDSKbjaOcTiUdjuXeDyaez26QiG/TCaAeWihclPATifBUCjIXy/QbzfWej3Yfj+KgWWjgkGui0WxjUa0gVi3kkm6lEq+mEyjkmuzn2e7pnLFnU7eikXOpFHRp1PVqlXarlfesVjjlUrmm03poFDtqVTitFrmuFzqu13ywWD7xWL+y2WDg4OXl5eYmJippZ61rZisrKy0tLS/v7+Crs6FsNCLtNKQt9SWu9aYvNebvtifwdqjw9uox92ryd6yzeG20OPCwsLMzMzU1NTA1ufG2ujN3+zT4+7d6fL/7Mbn5+fs7Ozl7vXp8fbu9Pj09PTy9/r1+Pv+/v7MzMwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADn4rtgAAAAnnRSTlP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AD6H4/gAAAABYktHRP+lB/LFAAAACXBIWXMAAABIAAAASABGyWs+AAADSUlEQVRIx+2WaU8TURSGzyCLQEUxiFYtCEo8Da3sYglQbDUaluISV6pYFdsyop1Or8ElSgg2RSjgArSZ63/13JkOXRBZgn7yTXpmyzwz857lFhb3XW9/CsEi317f2c71/OnZ/+C9gSdDKmNySI2GorQNxiaDpFA4FgrS+WgoxFhwck/gMTjBwmCJ+WCYMQso5SBUoQCcZKwGgClg2QSOt7jp7pnWGQFJ2e0tpFYX5+k3TUn+QTOsqAV/hRRmJngiYAVrYILAkipT+C34GzqJ+AW7BDiBhga4VgdwIFmdNMBKMcAQI3Ctz1cOCmPD4hEKVBX5TpdYfg/m7bhC0YHrFHvQtbY2h840fw9Hzh8tO7CaSZ6V3k2AdWXBNdaKosGtwG78SLED4xSd+I1rbWK37ii5cO58pirCUglYBXhIjVlywWGQoluBl7CT83VE8nUZ28lu3ZUycUlLZ8CVUrgGnpgeR7JgZrUxHVzh9/tjAuzxbFRFM7nwGbGZ8wF083UHLlPqDuZWxSAZrBSXqmbyGBuBEQNM0sFCUQJf8QiyAXbRp7uwA5fI7iXei9ifotzlgiMy3R+NqKpMRiv6gUwVzfTAlAiLyUJkxVWPUAYcR5fWfCGB7jV00GOciJ0an95T5133GDLAKXTMY1/K3j6HPeJ42YEJvrAX8M0M1+y8LvJhnnejURmc92HvH2aFGtuWa4I/Ido1qgbElH48j235YNkiwbhxc6QKpJN56NiN18bOnQ2uCV5BvCRaEC8aqAS2rBp76bSRPFutCT4No8chkMu95vG+ynIve3KHUAvO6i04w2d7dCu6Fwxy00LGCpsJrixlQbAVfL/35Qb3VN5068M1vQW/UrG5U3EHxrXGH4IrJTfAxluqUMWicCjLva/zvC8Mf72388fmfIeIS61UIU60o2jFxbKGxsMwzQvfuKScyTREcxz2ZOV9XDCPtY/6ZoB+X/udzl6Rw2RDWfV7ngceonFxXIqMgj83eXey3Fe7HfRh0bAlondZQJKgXM2rsrsmd2rXK4j6ZHx8PMAmhM/y2CO1oH7vmdx9X0wfZLj7v0q/8Orcv7D8T039s/8VH7bVu2c718NbJrhuBzq2leo3nTlTX62DfwGZkKiGotSUXQAAAABJRU5ErkJggg==","cid:69885298":"data:image/gif;base64,R0lGODlhWAAfAMYAAP///3OUxwxHnTZkrlR8ut/m8u7u7kxMTK6urp2dnb6+vrHD4KG32ZKr0ywsLAAAAH19fRwcHO7y+CFVpsHP5o2NjQwMDBdNomSIwQtEnY6n0s7Ozl1dXdDb7CZZqIOfzUVwtDw8PGx6kW1tbczMzP/MZmOlxgBmmRh7rUqUvefv90pKSr29xpmZmbXW54S11jMzM4SEhCMcDg8MBlqcvWZmZu+/X4ltNjwwGG1XK9+yWa+MRkw8HsCZTM+lUltIJCwjEQwJBJx8PjGMtTk5ORwWC8OcTuu8XpkAAGYzAPTDYZUAAMyZM7mUSuG0Wt6xWHtzZiggEABmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmQBmmSH+ClZhbGlkIENTUyEAIfkEAQAAfwAsAAAAAFgAHwAAB/6AJIKDhIWGh4iJiouMhX+PjyQAk5SVlpeYmSWbnJ2en6ChoEdGK5CRmamqqaKtrq8lpKankqu2trC5urGlp3+1t8GYu8Stsr7AwsqTxc2fx7TL0gDO1ZvQkLUBAgOUBAIElQUC5OXkkwYHBwgACQqU1tXYqAAL5AWTDOeUDebl3QYcPBgIIQIEePGazftFiRyDSRLILfAmYAIFCtsEUABQ4YGFAxEGJkCYkNhCYN/CTbogAEPDDBoASGCp0oGFDZM4RKhUsthJSvouTOpAzsMkewIkAPhwb9KDCpQMvCNp4waOqzl0cNrB4yqPHpx8/PC6Q9cxJNkojRMwkSm5Dv4AMHADsPYDpQcGWJWwAWRg3wdBtPYYGATHQLA6ggA2/EBILlJJkEimN2mAgAAALLNsAMCDAM7fBHjYCMCBqk03APvYa/hHidRBylp1nPrBjRI7cDiGdeSG5N8MKTH1EPEyN6IC4IIwtzHE6RI8HuQAtWMg4R82SviwPpDHali+f/9OhpzpgLqiK1FgCYLj8x/SOfW44djHjRw4inQvoePG2L9AwCKEeMAlAwBLLNllGTkuVSJXUjjpJQRg9fU1nWHTQfcADq89wMMmOQD2yoAEohUcJQ8mB0BGbFmij0arcAIfd0BkVx13D5Tlg2LcZfjabp2QSGBalSAlFADICf5wyYsiXCIVSbjh9wOQ2lmFww1gbdJfVzmUtQmJQijBiZDiRVNJcQ0eCM6KHuATFzkJjFQJByNA2ROZSIiJJxJLIHPJNxNNItdDyw1AgVvtRQAVAOk8cBAzPW3CRIlI7InELERW0o9S+QiATwEsmQMXAg9EEMJAptlZkqUlNoEpZWqpBFE3R4XmQaAAIBDSAxzkpeqqlIrnRC9mWuKmWpZIAFcwkXoyabBK/DSNMs06S6mY0k7LbLWdPPubmLy8eqK2uHDbyRPfcpItuTGae+4N4F5DbKbsPueuKD+xoO++/Pbr77//GiHwwAQXbPDBCB8cAxTikrDCwxBHLPHEFA1XbPHFGGf8MBFR+BIIACH5BAEKAH8ALAEAAQAkABwAAAf+gACCg4SFhoeIiYqLjI2Oj5CRkpOUiAECA4MEAgSEBQKgoaCCBgcHCAAJCoULoAWCDKODDaKhmQYOD7oQERCGoAyCEqALmgITFBSXAhQAFQ8WBxG6CYabnYIXAhiDAhkaABLa2A4WG4IcEYexF4IdoB6CrQISAB+ugg8Vgwarhp8Cit0D1QEABkwAAH4Y9MBAowECAgCAqK0BAA8CLG4S4KEZAAeO7nkYFhHTOwEFQYhqFsLRyXsDFHIkREEbCGePtGlbCBEUN0IH6Z1zFBQlgGUBC8ViBmleOwAnBRhaKsJQP0QkfwIYd9TDK4OgElQjxGFEok3FBB0MpnIAhYE8NyPsA1DqgS9EtOrBEvCqgDZRBRE8iBBCF8hEBbAJyyRvo4e0ABBMe8DBoaKvgzALK1ips+fPoEOLDh0IADs="};
1396
-
1397
- $('img[src]').each(function() {
1398
- var image = $(this);
1399
- var embed_uri = image.attr('src');
1400
-
1401
- if (data_uri_by_embed_uri.hasOwnProperty(embed_uri)) {
1402
- image.attr('src', data_uri_by_embed_uri[embed_uri]);
1403
- }
1404
- });
1405
-
1406
- $('style').each(function() {
1407
- var style = $(this);
1408
- var css = style.text();
1409
-
1410
- if (css) {
1411
- for (var embed_uri in data_uri_by_embed_uri) {
1412
- if (data_uri_by_embed_uri.hasOwnProperty(embed_uri)) {
1413
- var src = new RegExp('\\burl\\(' + embed_uri + '\\)', 'g');
1414
- var dst = 'url("' + data_uri_by_embed_uri[embed_uri] + '")';
1415
-
1416
- css = css.replace(src, dst);
1417
- }
1418
- }
1419
-
1420
- style.text(css);
1421
- }
1422
- });
1423
-
1424
- //--------------------------------------------------------------------------
1425
- // create jQuery UI tabs
1426
- //--------------------------------------------------------------------------
1427
-
1428
- $('.tabs').tabs();
1429
-
1430
- // make internal hyperlinks reveal their targets (which may be
1431
- // nested within many levels of jQuery UI tabs) when clicked
1432
- $('a[href^=#]').click(function() {
1433
- var link = $(this);
1434
- var hash = link.attr('href');
1435
-
1436
- if (link.parent('li').parent('.ui-tabs-nav').length) {
1437
- // tab clicks should not cause the screen to scroll
1438
- set_hash(hash, true);
1439
- }
1440
- else {
1441
- reveal(hash);
1442
- }
1443
-
1444
- return false;
1445
- });
1446
-
1447
- // make external hyperlinks open in a separate window
1448
- $('a[href]').not('[href^=#]').attr('target', '_blank');
1449
-
1450
- //--------------------------------------------------------------------------
1451
- // style jQuery UI icons
1452
- //--------------------------------------------------------------------------
1453
-
1454
- $('.ui-icon').parent().hover(
1455
- function() { $(this).addClass('ui-state-hover'); },
1456
- function() { $(this).removeClass('ui-state-hover'); }
1457
- );
1458
-
1459
- //--------------------------------------------------------------------------
1460
- // unveil the document
1461
- //--------------------------------------------------------------------------
1462
-
1463
- $('#_loading').append("Ready!").
1464
- fadeOut('slow', function() {
1465
- $(this).remove();
1466
-
1467
- $('#_body').show();
1468
-
1469
- // respond to changes in window location
1470
- (function on_hash_change() {
1471
- var current_hash = window.location.hash;
1472
-
1473
- if (current_hash && current_hash !== $last_hash) {
1474
- $last_hash = current_hash;
1475
- reveal(current_hash);
1476
- }
1477
-
1478
- setTimeout(on_hash_change, 300);
1479
- })();
1480
- });
1481
- });
1482
-
1483
- //]]>
1484
- </script>
1485
- </head>
1486
- <body>
1487
- <div id="_loading"></div>
1488
-
1489
- <div id="_body">
1490
-
1491
-
1492
- <div id="_header">
1493
-
1494
-
1495
-
1496
- <div class="title_and_subtitle">
1497
- <h1 class="title">Dfect 2.1.0 (2010-03-31)</h1>
1498
-
1499
- <h2 class="subtitle">Assertion testing library for Ruby</h2>
1500
- </div>
1501
-
1502
- <div class="authors_and_date">
1503
- <h3 class="authors"><a href="mailto:sunaku@gmail.com">Suraj N. Kurapati</a></h3>
1504
-
1505
- <h3 class="date">31 March 2010</h3>
1506
- </div>
1507
-
1508
-
1509
- </div>
1510
-
1511
-
1512
-
1513
- <div class="tabs">
1514
- <ul>
1515
-
1516
- <li><a href="#_document">Document</a></li>
1517
-
1518
- <li><a href="#_contents">Contents</a></li>
1519
-
1520
-
1521
- <li><a href="#_about">About</a></li>
1522
- </ul>
1523
-
1524
-
1525
-
1526
- <div id="_contents">
1527
- <h1 class="title">Contents</h1>
1528
- <ul><li>1&nbsp;&nbsp;<a id="_contents-Welcome" href="#Welcome">Welcome</a><ul><li>1.1&nbsp;&nbsp;<a id="_contents-Features" href="#Features">Features</a></li><li>1.2&nbsp;&nbsp;<a id="_contents-Etymology" href="#Etymology">Etymology</a></li><li>1.3&nbsp;&nbsp;<a id="_contents-License" href="#License">License</a></li><li>1.4&nbsp;&nbsp;<a id="_contents-Credits" href="#Credits">Credits</a></li><li>1.5&nbsp;&nbsp;<a id="_contents-Related-works" href="#Related-works">Related works</a></li></ul></li><li>2&nbsp;&nbsp;<a id="_contents-Setup" href="#Setup">Setup</a><ul><li>2.1&nbsp;&nbsp;<a id="_contents-Prerequisites" href="#Prerequisites">Prerequisites</a></li><li>2.2&nbsp;&nbsp;<a id="_contents-Installing" href="#Installing">Installing</a></li><li>2.3&nbsp;&nbsp;<a id="_contents-Upgrading" href="#Upgrading">Upgrading</a></li><li>2.4&nbsp;&nbsp;<a id="_contents-Uninstalling" href="#Uninstalling">Uninstalling</a></li></ul></li><li>3&nbsp;&nbsp;<a id="_contents-Usage" href="#Usage">Usage</a><ul><li>3.1&nbsp;&nbsp;<a id="_contents-Shell-command" href="#Shell-command">Shell command</a></li><li>3.2&nbsp;&nbsp;<a id="_contents-Ruby-library" href="#Ruby-library">Ruby library</a><ul><li>3.2.1&nbsp;&nbsp;<a id="_contents-Assertions" href="#Assertions">Assertions</a><ul><li>3.2.1.1&nbsp;&nbsp;<a id="_contents-Negation" href="#Negation">Negation</a></li><li>3.2.1.2&nbsp;&nbsp;<a id="_contents-Sampling" href="#Sampling">Sampling</a></li><li>3.2.1.3&nbsp;&nbsp;<a id="_contents-Failures" href="#Failures">Failures</a></li><li>3.2.1.4&nbsp;&nbsp;<a id="_contents-Emulation" href="#Emulation">Emulation</a></li></ul></li><li>3.2.2&nbsp;&nbsp;<a id="_contents-Tests" href="#Tests">Tests</a><ul><li>3.2.2.1&nbsp;&nbsp;<a id="_contents-Execution" href="#Execution">Execution</a><ul><li>3.2.2.1.1&nbsp;&nbsp;<a id="_contents-Hooks" href="#Hooks">Hooks</a></li><li>3.2.2.1.2&nbsp;&nbsp;<a id="_contents-Logging" href="#Logging">Logging</a></li></ul></li><li>3.2.2.2&nbsp;&nbsp;<a id="_contents-Sharing" href="#Sharing">Sharing</a></li><li>3.2.2.3&nbsp;&nbsp;<a id="_contents-Insulation" href="#Insulation">Insulation</a></li></ul></li></ul></li></ul></li><li>4&nbsp;&nbsp;<a id="_contents-History" href="#History">History</a><ul><li>4.1&nbsp;&nbsp;<a id="_contents-Version-2-1-0-2010-03-31" href="#Version-2-1-0-2010-03-31">Version 2.1.0 (2010-03-31)</a></li><li>4.2&nbsp;&nbsp;<a id="_contents-Version-2-0-0-2010-03-21" href="#Version-2-0-0-2010-03-21">Version 2.0.0 (2010-03-21)</a></li><li>4.3&nbsp;&nbsp;<a id="_contents-Version-1-1-0-2009-10-27" href="#Version-1-1-0-2009-10-27">Version 1.1.0 (2009-10-27)</a></li><li>4.4&nbsp;&nbsp;<a id="_contents-Version-1-0-1-2009-10-07" href="#Version-1-0-1-2009-10-07">Version 1.0.1 (2009-10-07)</a></li><li>4.5&nbsp;&nbsp;<a id="_contents-Version-1-0-0-2009-05-03" href="#Version-1-0-0-2009-05-03">Version 1.0.0 (2009-05-03)</a></li><li>4.6&nbsp;&nbsp;<a id="_contents-Version-0-1-0-2009-04-28" href="#Version-0-1-0-2009-04-28">Version 0.1.0 (2009-04-28)</a></li><li>4.7&nbsp;&nbsp;<a id="_contents-Version-0-0-0-2009-04-13" href="#Version-0-0-0-2009-04-13">Version 0.0.0 (2009-04-13)</a></li></ul></li></ul>
1529
-
1530
- <div id="_floats"><div id="__command__"><h2 class="title">Commands</h2> <ol><li><a id="_contents-gem-install-dfect" href="#gem-install-dfect"><tt>gem install dfect</tt></a></li><li><a id="_contents-gem-update-dfect" href="#gem-update-dfect"><tt>gem update dfect</tt></a></li><li><a id="_contents-gem-uninstall-dfect" href="#gem-uninstall-dfect"><tt>gem uninstall dfect</tt></a></li><li><a id="_contents-dfect-help" href="#dfect-help"><tt>dfect --help</tt></a></li></ol></div><div id="__example__"><h2 class="title">Examples</h2> <ol><li><a id="_contents-Logging-information-in-the-execution-report" href="#Logging-information-in-the-execution-report">Logging information in the execution report</a></li><li><a id="_contents-Sharing-code-between-tests" href="#Sharing-code-between-tests">Sharing code between tests</a></li><li><a id="_contents-Insulated-and-uninsulated-tests" href="#Insulated-and-uninsulated-tests">Insulated and uninsulated tests</a></li></ol></div></div>
1531
- </div>
1532
-
1533
- <div id="_document" class="tabs">
1534
- <h1 style="display: none">Document</h1>
1535
- <ul>
1536
- <li><a href="#Welcome">Welcome</a></li>
1537
- <li><a href="#Setup">Setup</a></li>
1538
- <li><a href="#Usage">Usage</a></li>
1539
- <li><a href="#History">History</a></li>
1540
- </ul>
1541
-
1542
-
1543
-
1544
-
1545
-
1546
-
1547
-
1548
-
1549
- <div class="part" id="Welcome">
1550
- <div style="display: none"><br/><hr/><br/></div><a name="Welcome"/><div class="nav"><a title="Here" href="#Welcome"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Next" href="#Features"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Welcome"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1551
- <h1 class="title">
1552
- Part&nbsp;1
1553
- <br/>
1554
- <big>Welcome</big>
1555
- </h1>
1556
- <div class="content"><p>Dfect is an assertion testing library for Ruby that emphasizes a simple assertion vocabulary, instant debuggability of failures, and flexibility in composing tests.</p>
1557
-
1558
-
1559
- <div class="paragraph" id="Resources">
1560
- <div style="display: none"><br/><hr/><br/></div><a name="Resources"/><div class="nav"><a title="Here" href="#Resources"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
1561
- <p class="title">Resources</p>
1562
- <div class="content"><ul>
1563
- <li>
1564
- <p><a class="xref" href="#History" title="Part 4. &quot;History&quot;">What&#8217;s new?</a> &#8212; release notes and project history.</p>
1565
- </li>
1566
-
1567
- <li>
1568
- <p><a href='http://github.com/sunaku/dfect/issues'>Issue tracker</a> &#8212; report bugs, request features, or ask for help.</p>
1569
- </li>
1570
-
1571
- <li>
1572
- <p><a href='http://github.com/sunaku/dfect'>Source code</a> &#8212; browse online or obtain using <a href='http://git-scm.com'>Git</a></p>
1573
- </li>
1574
-
1575
- <li>
1576
- <p><a href='api/index.html'>API reference</a> &#8212; documentation for source code.</p>
1577
- </li>
1578
-
1579
- <li>
1580
- <p><a href='http://snk.tuxfamily.org/lib/dfect/'>Project home</a> &#8212; the official project home page.</p>
1581
- </li>
1582
- </ul></div>
1583
- </div>
1584
-
1585
-
1586
- <div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Features"><span class="section_number">1.1&nbsp;&nbsp;</span>Features</a></li><li><a href="#Etymology"><span class="section_number">1.2&nbsp;&nbsp;</span>Etymology</a></li><li><a href="#License"><span class="section_number">1.3&nbsp;&nbsp;</span>License</a></li><li><a href="#Credits"><span class="section_number">1.4&nbsp;&nbsp;</span>Credits</a></li><li><a href="#Related-works"><span class="section_number">1.5&nbsp;&nbsp;</span>Related works</a></li></ul>
1587
- <div class="section" id="Features">
1588
- <div style="display: none"><br/><hr/><br/></div><a name="Features"/><div class="nav"><a title="Here" href="#Features"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Welcome"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Etymology"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Features"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1589
- <h1 class="title">
1590
- <span class="section_number">1.1&nbsp;&nbsp;</span>Features
1591
- </h1>
1592
- <div class="content"><p>Dfect is exciting because:</p>
1593
-
1594
- <ul>
1595
- <li>
1596
- <p>There are only 5 methods to remember: D F E C T.</p>
1597
- </li>
1598
-
1599
- <li>
1600
- <p>It lets you debug assertion failures interactively.</p>
1601
- </li>
1602
-
1603
- <li>
1604
- <p>It keeps a detailed report of assertion failures.</p>
1605
- </li>
1606
-
1607
- <li>
1608
- <p>It lets you nest tests and execution hooks.</p>
1609
- </li>
1610
-
1611
- <li>
1612
- <p>Its core consists of a mere 375 lines of code.</p>
1613
- </li>
1614
- </ul></div>
1615
- </div>
1616
-
1617
-
1618
-
1619
- <div class="section" id="Etymology">
1620
- <div style="display: none"><br/><hr/><br/></div><a name="Etymology"/><div class="nav"><a title="Here" href="#Etymology"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Features"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#License"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Etymology"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1621
- <h1 class="title">
1622
- <span class="section_number">1.2&nbsp;&nbsp;</span>Etymology
1623
- </h1>
1624
- <div class="content"><p>Dfect is named after the D F E C T methods it provides.</p>
1625
-
1626
- <p>The name is also play on the word &#8220;defect&#8221;, whereby the intentional misspelling of &#8220;defect&#8221; as &#8220;dfect&#8221; is a defect in itself! ;-)</p>
1627
-
1628
- <p>This wordplay is similar to <a href='http://www.erlang.org/doc/apps/mnesia/index.html'>Mnesia</a>&#8217;s play on the word &#8220;amnesia&#8221;, whereby the intentional omission of the letter &#8220;A&#8221; indicates forgetfulness&#8212;the key characteristic of having amnesia. Clever!</p></div>
1629
- </div>
1630
-
1631
-
1632
-
1633
- <div class="section" id="License">
1634
- <div style="display: none"><br/><hr/><br/></div><a name="License"/><div class="nav"><a title="Here" href="#License"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Etymology"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Credits"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-License"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1635
- <h1 class="title">
1636
- <span class="section_number">1.3&nbsp;&nbsp;</span>License
1637
- </h1>
1638
- <div class="content"><p>(the ISC license)</p>
1639
-
1640
- <p>Copyright 2009 Suraj N. Kurapati <a href='mailto:sunaku@gmail.com'>&#115;&#117;&#110;&#097;&#107;&#117;&#064;&#103;&#109;&#097;&#105;&#108;&#046;&#099;&#111;&#109;</a></p>
1641
-
1642
- <p>Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.</p>
1643
-
1644
- <p>THE SOFTWARE IS PROVIDED &#8220;AS IS&#8221; AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.</p></div>
1645
- </div>
1646
-
1647
-
1648
-
1649
- <div class="section" id="Credits">
1650
- <div style="display: none"><br/><hr/><br/></div><a name="Credits"/><div class="nav"><a title="Here" href="#Credits"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#License"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Related-works"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Credits"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1651
- <h1 class="title">
1652
- <span class="section_number">1.4&nbsp;&nbsp;</span>Credits
1653
- </h1>
1654
- <div class="content"><p>Dfect is made possible by <a class="xref" href="#History" title="Part 4. &quot;History&quot;">contributions</a> from users like you:</p>
1655
-
1656
- <ul>
1657
- <li>François Beausoleil <a href='http://github.com/francois'>http://github.com/francois</a></li>
1658
-
1659
- <li>Iñaki Baz Castillo <a href='http://github.com/ibc'>http://github.com/ibc</a></li>
1660
- </ul></div>
1661
- </div>
1662
-
1663
-
1664
-
1665
- <div class="section" id="Related-works">
1666
- <div style="display: none"><br/><hr/><br/></div><a name="Related-works"/><div class="nav"><a title="Here" href="#Related-works"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Credits"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Setup"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Related-works"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1667
- <h1 class="title">
1668
- <span class="section_number">1.5&nbsp;&nbsp;</span>Related works
1669
- </h1>
1670
- <div class="content"><ul>
1671
- <li><a href='http://assert2.rubyforge.org'>assert{ 2.0 }</a></li>
1672
-
1673
- <li><a href='http://chneukirchen.org/repos/bacon/README'>Bacon</a></li>
1674
-
1675
- <li><a href='http://github.com/jeremymcanally/context'>Context</a></li>
1676
-
1677
- <li><a href='http://blog.zenspider.com/minitest'>minitest</a></li>
1678
-
1679
- <li><a href='http://rspec.info'>RSpec</a></li>
1680
-
1681
- <li><a href='http://thoughtbot.com/projects/shoulda'>Shoulda</a></li>
1682
-
1683
- <li><a href='http://test-spec.rubyforge.org/test-spec'>test-spec</a></li>
1684
-
1685
- <li><a href='http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/'>Test::Unit</a></li>
1686
-
1687
- <li><a href='http://github.com/ahoward/testy/tree/master'>Testy</a></li>
1688
-
1689
- <li><a href='http://www.ruby-forum.com/topic/183354'>Verify</a></li>
1690
- </ul></div>
1691
- </div>
1692
- </div></div>
1693
- </div>
1694
-
1695
-
1696
- <div class="part" id="Setup">
1697
- <div style="display: none"><br/><hr/><br/></div><a name="Setup"/><div class="nav"><a title="Here" href="#Setup"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Related-works"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Prerequisites"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Setup"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1698
- <h1 class="title">
1699
- Part&nbsp;2
1700
- <br/>
1701
- <big>Setup</big>
1702
- </h1>
1703
- <div class="content"><div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Prerequisites"><span class="section_number">2.1&nbsp;&nbsp;</span>Prerequisites</a></li><li><a href="#Installing"><span class="section_number">2.2&nbsp;&nbsp;</span>Installing</a></li><li><a href="#Upgrading"><span class="section_number">2.3&nbsp;&nbsp;</span>Upgrading</a></li><li><a href="#Uninstalling"><span class="section_number">2.4&nbsp;&nbsp;</span>Uninstalling</a></li></ul>
1704
- <div class="section" id="Prerequisites">
1705
- <div style="display: none"><br/><hr/><br/></div><a name="Prerequisites"/><div class="nav"><a title="Here" href="#Prerequisites"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Setup"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Installing"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Prerequisites"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1706
- <h1 class="title">
1707
- <span class="section_number">2.1&nbsp;&nbsp;</span>Prerequisites
1708
- </h1>
1709
- <div class="content"><ul>
1710
- <li>
1711
- <p><a href='http://ruby-lang.org'>Ruby</a> 1.8.6 or newer.</p>
1712
- </li>
1713
-
1714
- <li>
1715
- <p><a href='http://rubygems.org'>RubyGems</a> 1.3.6 or newer.</p>
1716
- </li>
1717
-
1718
- <li>
1719
- <p><a href='http://www.datanoise.com/ruby-debug'>ruby-debug</a> will be used if it is available. Otherwise the standard interactive Ruby shell (IRB) will be used instead.</p>
1720
- </li>
1721
- </ul></div>
1722
- </div>
1723
-
1724
-
1725
-
1726
- <div class="section" id="Installing">
1727
- <div style="display: none"><br/><hr/><br/></div><a name="Installing"/><div class="nav"><a title="Here" href="#Installing"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Prerequisites"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#gem-install-dfect"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Installing"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1728
- <h1 class="title">
1729
- <span class="section_number">2.2&nbsp;&nbsp;</span>Installing
1730
- </h1>
1731
- <div class="content">
1732
- <div class="_float ui-tabs ui-widget ui-widget-content ui-corner-all command" id="gem-install-dfect">
1733
- <div style="display: none"><br/><hr/><br/></div><a name="gem-install-dfect"/><div class="nav"><a title="Here" href="#gem-install-dfect"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Installing"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Upgrading"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-gem-install-dfect"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1734
- <p class="title ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"><span class="section_number">Command 1.&nbsp;&nbsp;</span><tt>gem install dfect</tt></p>
1735
- </div>
1736
- </div>
1737
- </div>
1738
-
1739
- <div class="section" id="Upgrading">
1740
- <div style="display: none"><br/><hr/><br/></div><a name="Upgrading"/><div class="nav"><a title="Here" href="#Upgrading"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#gem-install-dfect"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#gem-update-dfect"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Upgrading"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1741
- <h1 class="title">
1742
- <span class="section_number">2.3&nbsp;&nbsp;</span>Upgrading
1743
- </h1>
1744
- <div class="content">
1745
- <div class="_float ui-tabs ui-widget ui-widget-content ui-corner-all command" id="gem-update-dfect">
1746
- <div style="display: none"><br/><hr/><br/></div><a name="gem-update-dfect"/><div class="nav"><a title="Here" href="#gem-update-dfect"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Upgrading"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Uninstalling"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-gem-update-dfect"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1747
- <p class="title ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"><span class="section_number">Command 2.&nbsp;&nbsp;</span><tt>gem update dfect</tt></p>
1748
- </div>
1749
- </div>
1750
- </div>
1751
-
1752
- <div class="section" id="Uninstalling">
1753
- <div style="display: none"><br/><hr/><br/></div><a name="Uninstalling"/><div class="nav"><a title="Here" href="#Uninstalling"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#gem-update-dfect"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#gem-uninstall-dfect"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Uninstalling"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1754
- <h1 class="title">
1755
- <span class="section_number">2.4&nbsp;&nbsp;</span>Uninstalling
1756
- </h1>
1757
- <div class="content">
1758
- <div class="_float ui-tabs ui-widget ui-widget-content ui-corner-all command" id="gem-uninstall-dfect">
1759
- <div style="display: none"><br/><hr/><br/></div><a name="gem-uninstall-dfect"/><div class="nav"><a title="Here" href="#gem-uninstall-dfect"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Uninstalling"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Usage"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-gem-uninstall-dfect"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1760
- <p class="title ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"><span class="section_number">Command 3.&nbsp;&nbsp;</span><tt>gem uninstall dfect</tt></p>
1761
- </div>
1762
- </div>
1763
- </div>
1764
- </div></div>
1765
- </div>
1766
-
1767
-
1768
- <div class="part" id="Usage">
1769
- <div style="display: none"><br/><hr/><br/></div><a name="Usage"/><div class="nav"><a title="Here" href="#Usage"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#gem-uninstall-dfect"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Shell-command"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Usage"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1770
- <h1 class="title">
1771
- Part&nbsp;3
1772
- <br/>
1773
- <big>Usage</big>
1774
- </h1>
1775
- <div class="content"><div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Shell-command"><span class="section_number">3.1&nbsp;&nbsp;</span>Shell command</a></li><li><a href="#Ruby-library"><span class="section_number">3.2&nbsp;&nbsp;</span>Ruby library</a></li></ul>
1776
- <div class="section" id="Shell-command">
1777
- <div style="display: none"><br/><hr/><br/></div><a name="Shell-command"/><div class="nav"><a title="Here" href="#Shell-command"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Usage"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#dfect-help"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Shell-command"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1778
- <h1 class="title">
1779
- <span class="section_number">3.1&nbsp;&nbsp;</span>Shell command
1780
- </h1>
1781
- <div class="content">
1782
- <div class="_float ui-tabs ui-widget ui-widget-content ui-corner-all command" id="dfect-help">
1783
- <div style="display: none"><br/><hr/><br/></div><a name="dfect-help"/><div class="nav"><a title="Here" href="#dfect-help"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Shell-command"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Ruby-library"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-dfect-help"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1784
- <p class="title ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"><span class="section_number">Command 4.&nbsp;&nbsp;</span><tt>dfect --help</tt></p>
1785
- <div class="content ui-tabs-panel ui-widget-content ui-corner-bottom">
1786
- <img alt="command" src="cid:69921642" class="icon"/>
1787
- <pre>Dfect 2.1.0 (2010-03-31)
1788
- Assertion testing library for Ruby
1789
-
1790
-
1791
- Usage:
1792
-
1793
- dfect [Options] FILE_OR_GLOB...
1794
-
1795
- FILE_OR_GLOB : A file or file globbing pattern that
1796
- describes a set of files to evaluate.
1797
-
1798
-
1799
- Options:
1800
-
1801
- -d, --debug : Launch interactive debugger
1802
- during assertion failures.
1803
-
1804
- -q, --quiet : Do not show execution report.
1805
-
1806
- -h, --help : Show this message and exit.
1807
-
1808
- -v, --version : Show version number and exit.
1809
-
1810
-
1811
- Read the user manual for more information:
1812
-
1813
- /home/sun/src/dfect/doc/index.html
1814
-
1815
- http://snk.tuxfamily.org/lib/dfect/
1816
-
1817
- </pre>
1818
- </div>
1819
- </div>
1820
- </div>
1821
- </div>
1822
-
1823
- <div class="section" id="Ruby-library">
1824
- <div style="display: none"><br/><hr/><br/></div><a name="Ruby-library"/><div class="nav"><a title="Here" href="#Ruby-library"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#dfect-help"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Assertions"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Ruby-library"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1825
- <h1 class="title">
1826
- <span class="section_number">3.2&nbsp;&nbsp;</span>Ruby library
1827
- </h1>
1828
- <div class="content"><p>Begin by loading Dfect into your program:</p>
1829
-
1830
- <ins><pre lang="ruby" class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span> <span style="color:#888"># only necessary if you are using Ruby 1.8</span>
1831
- require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">dfect</span><span style="color:#710">'</span></span>
1832
- </pre></ins><p> You now have access to the <code class="line"><span style="color:#036;font-weight:bold">Dfect</span></code> module, which provides methods that can be either mixed-in or called directly, according to your preference:</p>
1833
-
1834
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">Dfect</span>.<span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">hello</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="color:#888"># D() is a class method</span>
1835
- puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">world</span><span style="color:#710">&quot;</span></span>
1836
- <span style="color:#080;font-weight:bold">end</span>
1837
-
1838
- <span style="color:#888"># the above is same as:</span>
1839
-
1840
- include <span style="color:#036;font-weight:bold">Dfect</span> <span style="color:#888"># mix-in the Dfect API</span>
1841
-
1842
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">hello</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span> <span style="color:#888"># D() is an instance method</span>
1843
- puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">world</span><span style="color:#710">&quot;</span></span>
1844
- <span style="color:#080;font-weight:bold">end</span>
1845
- </pre></ins>
1846
-
1847
- <div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Assertions"><span class="section_number">3.2.1&nbsp;&nbsp;</span>Assertions</a></li><li><a href="#Tests"><span class="section_number">3.2.2&nbsp;&nbsp;</span>Tests</a></li></ul>
1848
- <div class="section" id="Assertions">
1849
- <div style="display: none"><br/><hr/><br/></div><a name="Assertions"/><div class="nav"><a title="Here" href="#Assertions"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Ruby-library"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Negation"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Assertions"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1850
- <h1 class="title">
1851
- <span class="section_number">3.2.1&nbsp;&nbsp;</span>Assertions
1852
- </h1>
1853
- <div class="content"><p>The following methods accept a block parameter and assert something about the result of executing that block. They also accept an optional message, which is shown in <a class="xref" href="#Failures" title="Section 3.2.1.3. &quot;Failures&quot;">failure reports</a> if they fail.</p>
1854
-
1855
- <p>See the <a href='api/index.html'>API reference</a> for more details and examples.</p>
1856
-
1857
- <ins><table border="1"><thead><tr><th>Method</th><th>Description</th></tr></thead><tbody><tr><td>T</td><td>assert true (not <code class="line"><span style="color:#038;font-weight:bold">nil</span></code> and not <code class="line"><span style="color:#038;font-weight:bold">false</span></code>)</td></tr><tr><td>F</td><td>assert not true (<code class="line"><span style="color:#038;font-weight:bold">nil</span></code> or <code class="line"><span style="color:#038;font-weight:bold">false</span></code>)</td></tr><tr><td>E</td><td>assert that an execption is raised</td></tr><tr><td>C</td><td>assert that a symbol is thrown</td></tr></tbody></table></ins><div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Negation"><span class="section_number">3.2.1.1&nbsp;&nbsp;</span>Negation</a></li><li><a href="#Sampling"><span class="section_number">3.2.1.2&nbsp;&nbsp;</span>Sampling</a></li><li><a href="#Failures"><span class="section_number">3.2.1.3&nbsp;&nbsp;</span>Failures</a></li><li><a href="#Emulation"><span class="section_number">3.2.1.4&nbsp;&nbsp;</span>Emulation</a></li></ul>
1858
- <div class="section" id="Negation">
1859
- <div style="display: none"><br/><hr/><br/></div><a name="Negation"/><div class="nav"><a title="Here" href="#Negation"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Assertions"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Sampling"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Negation"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1860
- <h1 class="title">
1861
- <span class="section_number">3.2.1.1&nbsp;&nbsp;</span>Negation
1862
- </h1>
1863
- <div class="content"><p>These methods are the <em>opposite</em> of <a class="xref" href="#Assertions" title="Section 3.2.1. &quot;Assertions&quot;">normal assertions</a>.</p>
1864
-
1865
- <ins><table border="1"><thead><tr><th>Method</th><th>Description</th></tr></thead><tbody><tr><td>T!</td><td>same as F</td></tr><tr><td>F!</td><td>same as T</td></tr><tr><td>E!</td><td>assert that an exception is <em>not</em> raised</td></tr><tr><td>C!</td><td>assert that a symbol is <em>not</em> thrown</td></tr></tbody></table></ins></div>
1866
- </div>
1867
-
1868
- <div class="section" id="Sampling">
1869
- <div style="display: none"><br/><hr/><br/></div><a name="Sampling"/><div class="nav"><a title="Here" href="#Sampling"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Negation"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Failures"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Sampling"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1870
- <h1 class="title">
1871
- <span class="section_number">3.2.1.2&nbsp;&nbsp;</span>Sampling
1872
- </h1>
1873
- <div class="content"><p>These methods allow you to <em>check the outcome</em> of an assertion without recording a success or failure for that assertion in the execution report.</p>
1874
-
1875
- <ins><table border="1"><thead><tr><th>Method</th><th>Description</th></tr></thead><tbody><tr><td>T?</td><td>returns <code class="line"><span style="color:#038;font-weight:bold">true</span></code> if T passes; <code class="line"><span style="color:#038;font-weight:bold">false</span></code> otherwise</td></tr><tr><td>F?</td><td>returns <code class="line"><span style="color:#038;font-weight:bold">true</span></code> if F passes; <code class="line"><span style="color:#038;font-weight:bold">false</span></code> otherwise</td></tr><tr><td>E?</td><td>returns <code class="line"><span style="color:#038;font-weight:bold">true</span></code> if E passes; <code class="line"><span style="color:#038;font-weight:bold">false</span></code> otherwise</td></tr><tr><td>C?</td><td>returns <code class="line"><span style="color:#038;font-weight:bold">true</span></code> if C passes; <code class="line"><span style="color:#038;font-weight:bold">false</span></code> otherwise</td></tr></tbody></table></ins></div>
1876
- </div>
1877
-
1878
- <div class="section" id="Failures">
1879
- <div style="display: none"><br/><hr/><br/></div><a name="Failures"/><div class="nav"><a title="Here" href="#Failures"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Sampling"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Emulation"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Failures"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1880
- <h1 class="title">
1881
- <span class="section_number">3.2.1.3&nbsp;&nbsp;</span>Failures
1882
- </h1>
1883
- <div class="content"><p>When an assertion fails, details about the failure will be shown:</p>
1884
-
1885
- <pre>- fail: block must yield true (!nil &amp;&amp; !false)
1886
- code: |-
1887
- [12..22] in test/simple.rb
1888
- 12
1889
- 13 D &quot;with more nested tests&quot; do
1890
- 14 x = 5
1891
- 15
1892
- 16 T { x &gt; 2 } # passes
1893
- =&gt; 17 F { x &gt; 2 } # fails
1894
- 18 E { x.hello } # passes
1895
- 19 end
1896
- 20 end
1897
- 21
1898
- 22 # equivalent of before(:each) or setup()
1899
- vars:
1900
- x: 5
1901
- y: 83
1902
- call:
1903
- - test/simple.rb:17
1904
- - test/simple.rb:3</pre>
1905
-
1906
- <p>You will then be placed into a debugger to investigate the failure if the <code class="line"><span style="color:#A60">:debug</span></code> option is enabled in the <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>.options</code> hash.</p>
1907
-
1908
- <p>Details about all assertion failures and a trace of all tests executed are stored by Dfect and provided by the <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>.report()</code> method.</p></div>
1909
- </div>
1910
-
1911
-
1912
-
1913
- <div class="section" id="Emulation">
1914
- <div style="display: none"><br/><hr/><br/></div><a name="Emulation"/><div class="nav"><a title="Here" href="#Emulation"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Failures"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Tests"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Emulation"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1915
- <h1 class="title">
1916
- <span class="section_number">3.2.1.4&nbsp;&nbsp;</span>Emulation
1917
- </h1>
1918
- <div class="content"><p>Dfect provides emulation layers for several popular testing libraries:</p>
1919
-
1920
- <ul>
1921
- <li><tt>dfect/unit</tt> &#8212; Test::Unit</li>
1922
-
1923
- <li><tt>dfect/mini</tt> &#8212; Minitest</li>
1924
-
1925
- <li><tt>dfect/spec</tt> &#8212; RSpec</li>
1926
- </ul>
1927
-
1928
- <p>Simply <code class="line">require()</code> one of these emulation layers into your test suite and you can write your tests using the familiar syntax of that testing library. See <a href='http://github.com/sunaku/dfect/tree/master/lib/dfect/'>their source code</a> for more details.</p></div>
1929
- </div>
1930
- </div></div>
1931
- </div>
1932
-
1933
- <div class="section" id="Tests">
1934
- <div style="display: none"><br/><hr/><br/></div><a name="Tests"/><div class="nav"><a title="Here" href="#Tests"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Emulation"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Execution"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Tests"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1935
- <h1 class="title">
1936
- <span class="section_number">3.2.2&nbsp;&nbsp;</span>Tests
1937
- </h1>
1938
- <div class="content"><p>The <code class="line">D()</code> method defines a new Dfect <strong>test</strong>, which is analagous to the concept of <strong>test case</strong> in xUnit or <strong>describe</strong> in rSpec. A test may contain nested tests.</p>
1939
-
1940
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">outer test</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
1941
- <span style="color:#888"># assertions and logic here</span>
1942
-
1943
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">inner test</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
1944
- <span style="color:#888"># more assertions and logic here</span>
1945
- <span style="color:#080;font-weight:bold">end</span>
1946
- <span style="color:#080;font-weight:bold">end</span>
1947
- </pre></ins>
1948
-
1949
- <div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Execution"><span class="section_number">3.2.2.1&nbsp;&nbsp;</span>Execution</a></li><li><a href="#Sharing"><span class="section_number">3.2.2.2&nbsp;&nbsp;</span>Sharing</a></li><li><a href="#Insulation"><span class="section_number">3.2.2.3&nbsp;&nbsp;</span>Insulation</a></li></ul>
1950
- <div class="section" id="Execution">
1951
- <div style="display: none"><br/><hr/><br/></div><a name="Execution"/><div class="nav"><a title="Here" href="#Execution"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Tests"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Hooks"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Execution"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1952
- <h1 class="title">
1953
- <span class="section_number">3.2.2.1&nbsp;&nbsp;</span>Execution
1954
- </h1>
1955
- <div class="content"><p>Tests are executed in depth-first order.</p>
1956
-
1957
- <p>You can configure the test execution process using:</p>
1958
-
1959
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">Dfect</span>.options = your_options_hash
1960
- </pre></ins><p> You can execute all tests defined thus far using:</p>
1961
-
1962
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">Dfect</span>.run
1963
- </pre></ins><p> You can stop the execution at any time using:</p>
1964
-
1965
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">Dfect</span>.stop
1966
- </pre></ins><p> You can view the results of execution using:</p>
1967
-
1968
- <ins><pre lang="ruby" class="para">puts <span style="color:#036;font-weight:bold">Dfect</span>.report.to_yaml
1969
- </pre></ins><p> See the <a href='api/index.html'>API reference</a> for details and examples.</p>
1970
-
1971
-
1972
- <div class="paragraph" id="Automatic-test-execution">
1973
- <div style="display: none"><br/><hr/><br/></div><a name="Automatic-test-execution"/><div class="nav"><a title="Here" href="#Automatic-test-execution"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
1974
- <p class="title">Automatic test execution</p>
1975
- <div class="content"><p>To mix-in the <code class="line"><span style="color:#036;font-weight:bold">Dfect</span></code> module into your program and execute all tests defined by your program before it terminates, simply add the following line at the top of your program:</p>
1976
-
1977
- <ins><pre lang="ruby" class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">dfect/auto</span><span style="color:#710">'</span></span>
1978
- </pre></ins></div>
1979
- </div>
1980
- <div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Hooks"><span class="section_number">3.2.2.1.1&nbsp;&nbsp;</span>Hooks</a></li><li><a href="#Logging"><span class="section_number">3.2.2.1.2&nbsp;&nbsp;</span>Logging</a></li></ul>
1981
- <div class="section" id="Hooks">
1982
- <div style="display: none"><br/><hr/><br/></div><a name="Hooks"/><div class="nav"><a title="Here" href="#Hooks"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Execution"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Logging"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Hooks"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
1983
- <h1 class="title">
1984
- <span class="section_number">3.2.2.1.1&nbsp;&nbsp;</span>Hooks
1985
- </h1>
1986
- <div class="content"><p>The <code class="line">D()</code> method provides several entry points (hooks) into the test execution process:</p>
1987
-
1988
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">outer test</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
1989
- <span style="color:#036;font-weight:bold">D</span> .&lt; { puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">before each nested test</span><span style="color:#710">&quot;</span></span> }
1990
- <span style="color:#036;font-weight:bold">D</span> .&gt; { puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">after each nested test</span><span style="color:#710">&quot;</span></span> }
1991
- <span style="color:#036;font-weight:bold">D</span> .&lt;&lt; { puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">before all nested tests</span><span style="color:#710">&quot;</span></span> }
1992
- <span style="color:#036;font-weight:bold">D</span> .&gt;&gt; { puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">after all nested tests</span><span style="color:#710">&quot;</span></span> }
1993
-
1994
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">inner test</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
1995
- <span style="color:#888"># assertions and logic here</span>
1996
- <span style="color:#080;font-weight:bold">end</span>
1997
- <span style="color:#080;font-weight:bold">end</span>
1998
- </pre></ins><p> A hook method may be called multiple times. Each call registers additional logic to execute during the hook:</p>
1999
-
2000
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">D</span> .&lt; { puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">do something</span><span style="color:#710">&quot;</span></span> }
2001
- <span style="color:#036;font-weight:bold">D</span> .&lt; { puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">do something more!</span><span style="color:#710">&quot;</span></span> }
2002
- </pre></ins></div>
2003
- </div>
2004
-
2005
- <div class="section" id="Logging">
2006
- <div style="display: none"><br/><hr/><br/></div><a name="Logging"/><div class="nav"><a title="Here" href="#Logging"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Hooks"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Logging-information-in-the-execution-report"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Logging"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2007
- <h1 class="title">
2008
- <span class="section_number">3.2.2.1.2&nbsp;&nbsp;</span>Logging
2009
- </h1>
2010
- <div class="content"><p>The <code class="line">L()</code> method lets you insert log messages, composed of arbitrary Ruby objects, into the test execution report.</p>
2011
-
2012
-
2013
- <div class="_float ui-tabs ui-widget ui-widget-content ui-corner-all example" id="Logging-information-in-the-execution-report">
2014
- <div style="display: none"><br/><hr/><br/></div><a name="Logging-information-in-the-execution-report"/><div class="nav"><a title="Here" href="#Logging-information-in-the-execution-report"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Logging"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Sharing"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Logging-information-in-the-execution-report"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2015
- <p class="title ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"><span class="section_number">Example 1.&nbsp;&nbsp;</span>Logging information in the execution report</p>
2016
- <div class="content"><p>When the following test is run:</p>
2017
-
2018
- <ins><pre lang="ruby" class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">dfect/auto</span><span style="color:#710">'</span></span>
2019
-
2020
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Wizard</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
2021
- <span style="color:#036;font-weight:bold">L</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Preparing spell to defeat mortal foes...</span><span style="color:#710">'</span></span>
2022
- <span style="color:#080;font-weight:bold">end</span>
2023
-
2024
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Magician</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
2025
- <span style="color:#036;font-weight:bold">L</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Preparing rabbits to pull from hat...</span><span style="color:#710">'</span></span>, rand(<span style="color:#00D;font-weight:bold">15</span>)
2026
- <span style="color:#080;font-weight:bold">end</span>
2027
-
2028
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Calculator</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
2029
- <span style="color:#036;font-weight:bold">L</span> <span style="color:#036;font-weight:bold">Math</span>::<span style="color:#036;font-weight:bold">PI</span>, [<span style="color:#00D;font-weight:bold">1</span>, <span style="color:#00D;font-weight:bold">2</span>, <span style="color:#00D;font-weight:bold">3</span>, [<span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">a</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">b</span><span style="color:#710">'</span></span>, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">c</span><span style="color:#710">'</span></span>]], {<span style="color:#A60">:foo</span> =&gt; <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">bar!</span><span style="color:#710">'</span></span>}
2030
- <span style="color:#080;font-weight:bold">end</span>
2031
- </pre></ins><p> Dfect will output the following:</p>
2032
-
2033
- <pre>---
2034
- - Wizard:
2035
- - Preparing spell to defeat mortal foes...
2036
- - Magician:
2037
- - Preparing rabbits to pull from hat...
2038
- - 7
2039
- - Calculator:
2040
- - 3.14159265358979
2041
- - - 1
2042
- - 2
2043
- - 3
2044
- - - a
2045
- - b
2046
- - c
2047
- - foo: bar!
2048
- ---
2049
- time: 0.000191774</pre></div>
2050
- </div>
2051
- </div>
2052
- </div>
2053
- </div></div>
2054
- </div>
2055
-
2056
- <div class="section" id="Sharing">
2057
- <div style="display: none"><br/><hr/><br/></div><a name="Sharing"/><div class="nav"><a title="Here" href="#Sharing"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Logging-information-in-the-execution-report"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Sharing-code-between-tests"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Sharing"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2058
- <h1 class="title">
2059
- <span class="section_number">3.2.2.2&nbsp;&nbsp;</span>Sharing
2060
- </h1>
2061
- <div class="content"><p>The <code class="line">S()</code> method is a mechanism for sharing code. When called with a block, it shares the given block (under a given identifier) for injection into other tests. When called without a block, it injects a previously shared block (under a given identifier) into the environment where it is called.</p>
2062
-
2063
- <p>The <code class="line">S!()</code> method is a combination of the two uses of the <code class="line">S()</code> method: it lets you simultaneously share a block of code while injecting it into the environment where that method is called.</p>
2064
-
2065
- <p>The <code class="line">S?()</code> method simply checks whether any code has been shared under a given identifier.</p>
2066
-
2067
-
2068
- <div class="_float ui-tabs ui-widget ui-widget-content ui-corner-all example" id="Sharing-code-between-tests">
2069
- <div style="display: none"><br/><hr/><br/></div><a name="Sharing-code-between-tests"/><div class="nav"><a title="Here" href="#Sharing-code-between-tests"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Sharing"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Insulation"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Sharing-code-between-tests"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2070
- <p class="title ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"><span class="section_number">Example 2.&nbsp;&nbsp;</span>Sharing code between tests</p>
2071
- <div class="content"><p>When the following test is run:</p>
2072
-
2073
- <ins><pre lang="ruby" class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">dfect/auto</span><span style="color:#710">'</span></span>
2074
-
2075
- <span style="color:#036;font-weight:bold">S</span> <span style="color:#A60">:knowledge</span> <span style="color:#080;font-weight:bold">do</span>
2076
- <span style="color:#036;font-weight:bold">L</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Knowledge is power!</span><span style="color:#710">'</span></span>
2077
- <span style="color:#080;font-weight:bold">end</span>
2078
-
2079
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Healer</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
2080
- <span style="color:#036;font-weight:bold">S</span> <span style="color:#A60">:knowledge</span>
2081
- <span style="color:#080;font-weight:bold">end</span>
2082
-
2083
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Warrior</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
2084
- S! <span style="color:#A60">:strength</span> <span style="color:#080;font-weight:bold">do</span>
2085
- <span style="color:#036;font-weight:bold">L</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Strength is power!</span><span style="color:#710">'</span></span>
2086
- <span style="color:#080;font-weight:bold">end</span>
2087
- <span style="color:#080;font-weight:bold">end</span>
2088
-
2089
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Wizard</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
2090
- <span style="color:#036;font-weight:bold">S</span> <span style="color:#A60">:knowledge</span>
2091
- <span style="color:#036;font-weight:bold">S</span> <span style="color:#A60">:strength</span>
2092
- <span style="color:#080;font-weight:bold">end</span>
2093
-
2094
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">King</span><span style="color:#710">'</span></span> <span style="color:#080;font-weight:bold">do</span>
2095
- <span style="color:#036;font-weight:bold">T</span> { S? <span style="color:#A60">:knowledge</span> }
2096
- <span style="color:#036;font-weight:bold">T</span> { S? <span style="color:#A60">:strength</span> }
2097
- <span style="color:#036;font-weight:bold">F</span> { S? <span style="color:#A60">:power</span> }
2098
- <span style="color:#036;font-weight:bold">L</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">Power is power!</span><span style="color:#710">'</span></span>
2099
- <span style="color:#080;font-weight:bold">end</span>
2100
- </pre></ins><p> Dfect will output the following:</p>
2101
-
2102
- <pre>---
2103
- - Healer:
2104
- - Knowledge is power!
2105
- - Warrior:
2106
- - Strength is power!
2107
- - Wizard:
2108
- - Knowledge is power!
2109
- - Strength is power!
2110
- - King:
2111
- - Power is power!
2112
- ---
2113
- pass: 3
2114
- time: 0.000433887</pre></div>
2115
- </div>
2116
- </div>
2117
- </div>
2118
-
2119
- <div class="section" id="Insulation">
2120
- <div style="display: none"><br/><hr/><br/></div><a name="Insulation"/><div class="nav"><a title="Here" href="#Insulation"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Sharing-code-between-tests"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Insulated-and-uninsulated-tests"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Insulation"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2121
- <h1 class="title">
2122
- <span class="section_number">3.2.2.3&nbsp;&nbsp;</span>Insulation
2123
- </h1>
2124
- <div class="content"><p>The <code class="line">D!()</code> method defines a new test that is explicitly insulated from the tests that contain it and also from the top-level Ruby environment. Root-level calls to the <code class="line">D()</code> method are insulated by default.</p>
2125
-
2126
- <p>Inside an insulated test, you are free to:</p>
2127
-
2128
- <ul>
2129
- <li>mix-in any modules your test logic needs</li>
2130
-
2131
- <li>define your own constants, methods, and classes</li>
2132
- </ul>
2133
-
2134
-
2135
- <div class="_float ui-tabs ui-widget ui-widget-content ui-corner-all example" id="Insulated-and-uninsulated-tests">
2136
- <div style="display: none"><br/><hr/><br/></div><a name="Insulated-and-uninsulated-tests"/><div class="nav"><a title="Here" href="#Insulated-and-uninsulated-tests"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Insulation"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#History"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Insulated-and-uninsulated-tests"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2137
- <p class="title ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"><span class="section_number">Example 3.&nbsp;&nbsp;</span>Insulated and uninsulated tests</p>
2138
- <div class="content"><p>When the following test is run:</p>
2139
-
2140
- <ins><pre lang="ruby" class="para">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">dfect/auto</span><span style="color:#710">'</span></span>
2141
-
2142
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">a root-level test</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
2143
- <span style="color:#33B">@outside</span> = <span style="color:#00D;font-weight:bold">1</span>
2144
- <span style="color:#036;font-weight:bold">T</span> { <span style="color:#080;font-weight:bold">defined?</span> <span style="color:#33B">@outside</span> }
2145
- <span style="color:#036;font-weight:bold">T</span> { <span style="color:#33B">@outside</span> == <span style="color:#00D;font-weight:bold">1</span> }
2146
-
2147
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">an inner, non-insulated test</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
2148
- <span style="color:#036;font-weight:bold">T</span> { <span style="color:#080;font-weight:bold">defined?</span> <span style="color:#33B">@outside</span> }
2149
- <span style="color:#036;font-weight:bold">T</span> { <span style="color:#33B">@outside</span> == <span style="color:#00D;font-weight:bold">1</span> }
2150
- <span style="color:#080;font-weight:bold">end</span>
2151
-
2152
- D! <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">an inner, insulated test</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
2153
- <span style="color:#036;font-weight:bold">F</span> { <span style="color:#080;font-weight:bold">defined?</span> <span style="color:#33B">@outside</span> }
2154
- <span style="color:#036;font-weight:bold">F</span> { <span style="color:#33B">@outside</span> == <span style="color:#00D;font-weight:bold">1</span> }
2155
-
2156
- <span style="color:#33B">@inside</span> = <span style="color:#00D;font-weight:bold">2</span>
2157
- <span style="color:#036;font-weight:bold">T</span> { <span style="color:#080;font-weight:bold">defined?</span> <span style="color:#33B">@inside</span> }
2158
- <span style="color:#036;font-weight:bold">T</span> { <span style="color:#33B">@inside</span> == <span style="color:#00D;font-weight:bold">2</span> }
2159
- <span style="color:#080;font-weight:bold">end</span>
2160
-
2161
- <span style="color:#036;font-weight:bold">F</span> { <span style="color:#080;font-weight:bold">defined?</span> <span style="color:#33B">@inside</span> }
2162
- <span style="color:#036;font-weight:bold">F</span> { <span style="color:#33B">@inside</span> == <span style="color:#00D;font-weight:bold">2</span> }
2163
- <span style="color:#080;font-weight:bold">end</span>
2164
- </pre></ins><p> Dfect will output the following:</p>
2165
-
2166
- <pre>---
2167
- - a root-level test:
2168
- - an inner, non-insulated test: []
2169
-
2170
- - an inner, insulated test: []
2171
-
2172
- ---
2173
- pass: 10
2174
- time: 0.000545926</pre></div>
2175
- </div>
2176
- </div>
2177
- </div>
2178
- </div></div>
2179
- </div>
2180
- </div></div>
2181
- </div>
2182
- </div></div>
2183
- </div>
2184
-
2185
-
2186
- <div class="part" id="History">
2187
- <div style="display: none"><br/><hr/><br/></div><a name="History"/><div class="nav"><a title="Here" href="#History"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Insulated-and-uninsulated-tests"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Version-2-1-0-2010-03-31"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-History"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2188
- <h1 class="title">
2189
- Part&nbsp;4
2190
- <br/>
2191
- <big>History</big>
2192
- </h1>
2193
- <div class="content"><div style="display: none"><br/><hr/><br/></div><div class="tabs"><ul><li><a href="#Version-2-1-0-2010-03-31"><span class="section_number">4.1&nbsp;&nbsp;</span>Version 2.1.0 (2010-03-31)</a></li><li><a href="#Version-2-0-0-2010-03-21"><span class="section_number">4.2&nbsp;&nbsp;</span>Version 2.0.0 (2010-03-21)</a></li><li><a href="#Version-1-1-0-2009-10-27"><span class="section_number">4.3&nbsp;&nbsp;</span>Version 1.1.0 (2009-10-27)</a></li><li><a href="#Version-1-0-1-2009-10-07"><span class="section_number">4.4&nbsp;&nbsp;</span>Version 1.0.1 (2009-10-07)</a></li><li><a href="#Version-1-0-0-2009-05-03"><span class="section_number">4.5&nbsp;&nbsp;</span>Version 1.0.0 (2009-05-03)</a></li><li><a href="#Version-0-1-0-2009-04-28"><span class="section_number">4.6&nbsp;&nbsp;</span>Version 0.1.0 (2009-04-28)</a></li><li><a href="#Version-0-0-0-2009-04-13"><span class="section_number">4.7&nbsp;&nbsp;</span>Version 0.0.0 (2009-04-13)</a></li></ul>
2194
- <div class="section" id="Version-2-1-0-2010-03-31">
2195
- <div style="display: none"><br/><hr/><br/></div><a name="Version-2-1-0-2010-03-31"/><div class="nav"><a title="Here" href="#Version-2-1-0-2010-03-31"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#History"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Version-2-0-0-2010-03-21"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Version-2-1-0-2010-03-31"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2196
- <h1 class="title">
2197
- <span class="section_number">4.1&nbsp;&nbsp;</span>Version 2.1.0 (2010-03-31)
2198
- </h1>
2199
- <div class="content"><p>This release adds a <a class="xref" href="#Shell-command" title="Section 3.1. &quot;Shell command&quot;">command-line test runner</a> and performs some minor housekeeping.</p>
2200
-
2201
-
2202
- <div class="paragraph" id="New-features">
2203
- <div style="display: none"><br/><hr/><br/></div><a name="New-features"/><div class="nav"><a title="Here" href="#New-features"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2204
- <p class="title">New features</p>
2205
- <div class="content"><ul>
2206
- <li>Add <code class="line">bin/dfect</code> executable as command-line interface to this library.</li>
2207
- </ul></div>
2208
- </div>
2209
-
2210
-
2211
-
2212
- <div class="paragraph" id="Housekeeping">
2213
- <div style="display: none"><br/><hr/><br/></div><a name="Housekeeping"/><div class="nav"><a title="Here" href="#Housekeeping"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2214
- <p class="title">Housekeeping</p>
2215
- <div class="content"><ul>
2216
- <li>
2217
- <p>Do not <code class="line">require <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">'</span><span style="">rubygems</span><span style="color:#710">'</span></span></code> before loading the &#8220;ruby-debug&#8221; library.</p>
2218
- </li>
2219
-
2220
- <li>
2221
- <p>Upgrade to Inochi 2.0.0-rc2 for managing this project.</p>
2222
- </li>
2223
- </ul></div>
2224
- </div>
2225
- </div>
2226
- </div>
2227
-
2228
- <div class="section" id="Version-2-0-0-2010-03-21">
2229
- <div style="display: none"><br/><hr/><br/></div><a name="Version-2-0-0-2010-03-21"/><div class="nav"><a title="Here" href="#Version-2-0-0-2010-03-21"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Version-2-1-0-2010-03-31"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Version-1-1-0-2009-10-27"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Version-2-0-0-2010-03-21"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2230
- <h1 class="title">
2231
- <span class="section_number">4.2&nbsp;&nbsp;</span>Version 2.0.0 (2010-03-21)
2232
- </h1>
2233
- <div class="content"><p>This release adds the ability to insulate tests from each other, share code between them, makes the order of parameters consistent in the API, improves user interactivity, fixes some bugs, and revises the user manual.</p>
2234
-
2235
-
2236
- <div class="paragraph" id="Incompatible-changes">
2237
- <div style="display: none"><br/><hr/><br/></div><a name="Incompatible-changes"/><div class="nav"><a title="Here" href="#Incompatible-changes"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2238
- <p class="title">Incompatible changes</p>
2239
- <div class="content"><ul>
2240
- <li>
2241
- <p>Root-level calls to the <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::D()</code> method are <a class="xref" href="#Insulation" title="Section 3.2.2.3. &quot;Insulation&quot;">automatically insulated</a> now.</p>
2242
- </li>
2243
-
2244
- <li>
2245
- <p>The <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::E()</code> methods now expects its optional message parameter to be the <em>last parameter</em> in the parameter list.</p>
2246
- </li>
2247
-
2248
- <li>
2249
- <p>The <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::C()</code> methods now expect their first parameter to be a symbol instead of the optional message to be shown in case of assertion failure.</p>
2250
- </li>
2251
-
2252
- <li>
2253
- <p>The <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::R()</code> has been renamed to <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::L()</code>, which is a mnemonic for <a class="xref" href="#Logging" title="Section 3.2.2.1.2">Logging</a>.</p>
2254
- </li>
2255
-
2256
- <li>
2257
- <p>Shorten names of hash keys in the execution trace for brevity and rename <code class="line"><span style="color:#A60">:raise</span></code> key in report statistics to <code class="line"><span style="color:#A60">:error</span></code>.</p>
2258
- </li>
2259
-
2260
- <li>
2261
- <p>Only the most helpful subset of the failure details is shown before placing the user into a debugger because they can query the omitted information (on demand) inside the debugger.</p>
2262
- </li>
2263
-
2264
- <li>
2265
- <p>The execution trace is only shown if all tests passed in <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::run()</code>.</p>
2266
- </li>
2267
-
2268
- <li>
2269
- <p>The <code class="line"><span style="color:#A60">:debug</span></code> option is now set to Ruby&#8217;s <code class="line"><span style="color:#d70;font-weight:bold">$DEBUG</span></code> global by default.</p>
2270
- </li>
2271
- </ul></div>
2272
- </div>
2273
-
2274
-
2275
-
2276
- <div class="paragraph" id="New-features-74488218">
2277
- <div style="display: none"><br/><hr/><br/></div><a name="New-features-74488218"/><div class="nav"><a title="Here" href="#New-features-74488218"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2278
- <p class="title">New features</p>
2279
- <div class="content"><ul>
2280
- <li>
2281
- <p>Print failures as they occur instead of waiting until the end.</p>
2282
- </li>
2283
-
2284
- <li>
2285
- <p>Allow passing condition as argument to true/false assertions instead of requiring the condition to be passed as a code block, and also fall back to the binding of inner-most enclosing test or hook when debugging or constructing a failure report for an assertion that was not given a block.</p>
2286
-
2287
- <p>This allows you to reduce &#8220;line noise&#8221; in your tests:</p>
2288
- </li>
2289
- </ul>
2290
-
2291
- <ins><pre lang="ruby" class="para"><span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">Lottery</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
2292
- winning_ticket = rand()
2293
-
2294
- <span style="color:#036;font-weight:bold">D</span> <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">My chances of winning</span><span style="color:#710">&quot;</span></span> <span style="color:#080;font-weight:bold">do</span>
2295
- my_ticket = rand()
2296
- <span style="color:#036;font-weight:bold">F</span> my_ticket == winning_ticket, <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">&quot;</span><span style="">I won?! Dream on.</span><span style="color:#710">&quot;</span></span>
2297
- <span style="color:#080;font-weight:bold">end</span>
2298
- <span style="color:#080;font-weight:bold">end</span>
2299
- </pre></ins>
2300
-
2301
- <ul>
2302
- <li>
2303
- <p>Add <a class="xref" href="#Sharing" title="Section 3.2.2.2. &quot;Sharing&quot;"><code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::S()</code> methods</a> for sharing code between tests.</p>
2304
- </li>
2305
-
2306
- <li>
2307
- <p>Add <a class="xref" href="#Insulation" title="Section 3.2.2.3. &quot;Insulation&quot;"><code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::D!()</code> method</a> to explicitly insulate a test from other tests, the top-level Ruby environment, and the code being tested.</p>
2308
- </li>
2309
-
2310
- <li>
2311
- <p>Add <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::info()</code> method which returns the details of the failure that is currently being debugged by the user.</p>
2312
- </li>
2313
-
2314
- <li>
2315
- <p>Add instance variables to the <code class="line"><span style="color:#A60">:vars</span></code> section of a failure report.</p>
2316
- </li>
2317
-
2318
- <li>
2319
- <p>Add <code class="line">setup!()</code> and <code class="line">teardown!()</code> methods for before-all and after-all hooks in the <tt>dfect/unit</tt> emulation library.</p>
2320
- </li>
2321
-
2322
- <li>
2323
- <p>Add test execution time to statistics hash (under the <code class="line"><span style="color:#A60">:time</span></code> key).</p>
2324
- </li>
2325
- </ul></div>
2326
- </div>
2327
-
2328
-
2329
-
2330
- <div class="paragraph" id="Bug-fixes">
2331
- <div style="display: none"><br/><hr/><br/></div><a name="Bug-fixes"/><div class="nav"><a title="Here" href="#Bug-fixes"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2332
- <p class="title">Bug fixes</p>
2333
- <div class="content"><ul>
2334
- <li>
2335
- <p>Do not print any output when <code class="line"><span style="color:#A60">:quiet</span></code> option is active.</p>
2336
- </li>
2337
-
2338
- <li>
2339
- <p>Allow passing multiple strings/objects to <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::D()</code> like in RSpec.</p>
2340
- </li>
2341
-
2342
- <li>
2343
- <p>Make before and after hook methods mixin-able like assertions.</p>
2344
- </li>
2345
-
2346
- <li>
2347
- <p>Do not assume that <code class="line"><span style="color:#036;font-weight:bold">Module</span><span style="color:#888">#to_s</span></code> is the same as <code class="line"><span style="color:#036;font-weight:bold">Module</span><span style="color:#888">#name</span></code>.</p>
2348
- </li>
2349
- </ul></div>
2350
- </div>
2351
-
2352
-
2353
-
2354
- <div class="paragraph" id="Housekeeping-74367468">
2355
- <div style="display: none"><br/><hr/><br/></div><a name="Housekeeping-74367468"/><div class="nav"><a title="Here" href="#Housekeeping-74367468"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2356
- <p class="title">Housekeeping</p>
2357
- <div class="content"><ul>
2358
- <li>
2359
- <p>Upgrade to Inochi 2.0.0-rc1 for managing this project.</p>
2360
- </li>
2361
-
2362
- <li>
2363
- <p>Make emulation libraries modify Dfect module instead of Kernel.</p>
2364
- </li>
2365
-
2366
- <li>
2367
- <p>Do not pollute the user&#8217;s output with our <code class="line"><span style="color:#036;font-weight:bold">Class</span><span style="color:#888">#to_yaml</span></code> workaround.</p>
2368
- </li>
2369
-
2370
- <li>
2371
- <p>Remove &#8220;Motivation&#8221; section from user manual. It was too fanatic!</p>
2372
- </li>
2373
- </ul></div>
2374
- </div>
2375
- </div>
2376
- </div>
2377
-
2378
- <div class="section" id="Version-1-1-0-2009-10-27">
2379
- <div style="display: none"><br/><hr/><br/></div><a name="Version-1-1-0-2009-10-27"/><div class="nav"><a title="Here" href="#Version-1-1-0-2009-10-27"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Version-2-0-0-2010-03-21"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Version-1-0-1-2009-10-07"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Version-1-1-0-2009-10-27"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2380
- <h1 class="title">
2381
- <span class="section_number">4.3&nbsp;&nbsp;</span>Version 1.1.0 (2009-10-27)
2382
- </h1>
2383
- <div class="content"><p>This release adds a new method for emitting status messages and does some internal housekeeping.</p>
2384
-
2385
-
2386
- <div class="paragraph" id="Thank-you">
2387
- <div style="display: none"><br/><hr/><br/></div><a name="Thank-you"/><div class="nav"><a title="Here" href="#Thank-you"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2388
- <p class="title">Thank you</p>
2389
- <div class="content"><ul>
2390
- <li>Iñaki Baz Castillo used Dfect and suggested new features.</li>
2391
- </ul></div>
2392
- </div>
2393
-
2394
-
2395
-
2396
- <div class="paragraph" id="New-features-74340098">
2397
- <div style="display: none"><br/><hr/><br/></div><a name="New-features-74340098"/><div class="nav"><a title="Here" href="#New-features-74340098"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2398
- <p class="title">New features</p>
2399
- <div class="content"><ul>
2400
- <li>Add <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::S()</code> method for <a class="xref" href="#Logging" title="Section 3.2.2.1.2. &quot;Logging&quot;">adding status messages</a> to the execution report. This feature was <a href='http://github.com/sunaku/dfect/issues/closed#issue/1'>requested by</a> Iñaki Baz Castillo.</li>
2401
- </ul></div>
2402
- </div>
2403
-
2404
-
2405
-
2406
- <div class="paragraph" id="Housekeeping-73828104">
2407
- <div style="display: none"><br/><hr/><br/></div><a name="Housekeeping-73828104"/><div class="nav"><a title="Here" href="#Housekeeping-73828104"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2408
- <p class="title">Housekeeping</p>
2409
- <div class="content"><ul>
2410
- <li>
2411
- <p>Remove unused require of &#8216;delegate&#8217; standard library in &#8216;dfect/spec&#8217; RSpec emulation layer.</p>
2412
- </li>
2413
-
2414
- <li>
2415
- <p>Mention <a class="xref" href="#Emulation" title="Section 3.2.1.4">Emulation</a> layers for popular testing libraries.</p>
2416
- </li>
2417
-
2418
- <li>
2419
- <p>Mention that assertions take an optional message parameter.</p>
2420
- </li>
2421
-
2422
- <li>
2423
- <p>Replace sample unit test with Dfect test suite.</p>
2424
- </li>
2425
-
2426
- <li>
2427
- <p>Upgrade user manual to ERBook 9.0.0.</p>
2428
- </li>
2429
- </ul></div>
2430
- </div>
2431
- </div>
2432
- </div>
2433
-
2434
- <div class="section" id="Version-1-0-1-2009-10-07">
2435
- <div style="display: none"><br/><hr/><br/></div><a name="Version-1-0-1-2009-10-07"/><div class="nav"><a title="Here" href="#Version-1-0-1-2009-10-07"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Version-1-1-0-2009-10-27"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Version-1-0-0-2009-05-03"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Version-1-0-1-2009-10-07"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2436
- <h1 class="title">
2437
- <span class="section_number">4.4&nbsp;&nbsp;</span>Version 1.0.1 (2009-10-07)
2438
- </h1>
2439
- <div class="content"><p>This release fixes a bug in the Test::Unit emulation library and revises the user manual.</p>
2440
-
2441
-
2442
- <div class="paragraph" id="Bug-fixes-73219314">
2443
- <div style="display: none"><br/><hr/><br/></div><a name="Bug-fixes-73219314"/><div class="nav"><a title="Here" href="#Bug-fixes-73219314"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2444
- <p class="title">Bug fixes</p>
2445
- <div class="content"><ul>
2446
- <li>The parameters for the <code class="line">assert_equal()</code> method in the <tt>dfect/unit</tt> library were in the wrong order.</li>
2447
- </ul></div>
2448
- </div>
2449
-
2450
-
2451
-
2452
- <div class="paragraph" id="Housekeeping-73201954">
2453
- <div style="display: none"><br/><hr/><br/></div><a name="Housekeeping-73201954"/><div class="nav"><a title="Here" href="#Housekeeping-73201954"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2454
- <p class="title">Housekeeping</p>
2455
- <div class="content"><ul>
2456
- <li>
2457
- <p>Revise user manual to better fit jQuery UI tabs.</p>
2458
- </li>
2459
-
2460
- <li>
2461
- <p>Justify the use of <code class="line">eval()</code> in emulation libraries.</p>
2462
- </li>
2463
-
2464
- <li>
2465
- <p>Use simpler Copyright reminder at the top of every file.</p>
2466
- </li>
2467
-
2468
- <li>
2469
- <p>Make SLOC count in user manual reflect the <em>core</em> library only.</p>
2470
- </li>
2471
-
2472
- <li>
2473
- <p>Mark code spans with <code class="line">{<span style="color:#A60">:lang=</span>ruby}</code> instead of HTML <code class="line">&lt;code/&gt;</code> tags.</p>
2474
- </li>
2475
-
2476
- <li>
2477
- <p>Open source is for fun, so <a href='http://loiclemeur.com/english/2009/03/never-criticize-your-competitors.html'>be nice</a> and speak of &#8220;related works&#8221; instead of &#8220;competitors&#8221;.</p>
2478
- </li>
2479
- </ul></div>
2480
- </div>
2481
- </div>
2482
- </div>
2483
-
2484
- <div class="section" id="Version-1-0-0-2009-05-03">
2485
- <div style="display: none"><br/><hr/><br/></div><a name="Version-1-0-0-2009-05-03"/><div class="nav"><a title="Here" href="#Version-1-0-0-2009-05-03"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Version-1-0-1-2009-10-07"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Version-0-1-0-2009-04-28"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Version-1-0-0-2009-05-03"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2486
- <h1 class="title">
2487
- <span class="section_number">4.5&nbsp;&nbsp;</span>Version 1.0.0 (2009-05-03)
2488
- </h1>
2489
- <div class="content"><p>This release improves default choices, adds emulation layers to mimic other testing libraries, and fixes some bugs.</p>
2490
-
2491
-
2492
- <div class="paragraph" id="Incompatible-changes-73179218">
2493
- <div style="display: none"><br/><hr/><br/></div><a name="Incompatible-changes-73179218"/><div class="nav"><a title="Here" href="#Incompatible-changes-73179218"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2494
- <p class="title">Incompatible changes</p>
2495
- <div class="content"><ul>
2496
- <li>
2497
- <p>The <code class="line"><span style="color:#A60">:debug</span></code> option is now enabled by default and is no longer linked to the value of <code class="line"><span style="color:#d70;font-weight:bold">$DEBUG</span></code>.</p>
2498
- </li>
2499
-
2500
- <li>
2501
- <p><code class="line"><span style="color:#036;font-weight:bold">Dfect</span>.run()</code> now appends to previous results by default.</p>
2502
-
2503
- <p>This behavior can be disabled by passing <code class="line"><span style="color:#038;font-weight:bold">false</span></code> to the method.</p>
2504
- </li>
2505
- </ul></div>
2506
- </div>
2507
-
2508
-
2509
-
2510
- <div class="paragraph" id="New-features-73162432">
2511
- <div style="display: none"><br/><hr/><br/></div><a name="New-features-73162432"/><div class="nav"><a title="Here" href="#New-features-73162432"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2512
- <p class="title">New features</p>
2513
- <div class="content"><ul>
2514
- <li>
2515
- <p>Add emulation layers to mimic other testing libraries:</p>
2516
-
2517
- <ul>
2518
- <li><tt>dfect/unit</tt> &#8212; Test::Unit</li>
2519
-
2520
- <li><tt>dfect/mini</tt> &#8212; Minitest</li>
2521
-
2522
- <li><tt>dfect/spec</tt> &#8212; RSpec</li>
2523
- </ul>
2524
- </li>
2525
- </ul></div>
2526
- </div>
2527
-
2528
-
2529
-
2530
- <div class="paragraph" id="Bug-fixes-73157672">
2531
- <div style="display: none"><br/><hr/><br/></div><a name="Bug-fixes-73157672"/><div class="nav"><a title="Here" href="#Bug-fixes-73157672"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2532
- <p class="title">Bug fixes</p>
2533
- <div class="content"><ul>
2534
- <li>Do not blindly replace <code class="line"><span style="color:#036;font-weight:bold">Class</span><span style="color:#888">#to_yaml</span></code>; it might be fixed someday.</li>
2535
- </ul></div>
2536
- </div>
2537
-
2538
-
2539
-
2540
- <div class="paragraph" id="Housekeeping-72917222">
2541
- <div style="display: none"><br/><hr/><br/></div><a name="Housekeeping-72917222"/><div class="nav"><a title="Here" href="#Housekeeping-72917222"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2542
- <p class="title">Housekeeping</p>
2543
- <div class="content"><ul>
2544
- <li>
2545
- <p>Add &#8220;Motivation&#8221; section in user manual to promote interactive debugging.</p>
2546
- </li>
2547
-
2548
- <li>
2549
- <p>Add brief <a class="xref" href="#History" title="Part 4">History</a> of this project&#8217;s inception.</p>
2550
- </li>
2551
-
2552
- <li>
2553
- <p>Remove redundant assertions for F!() and T!() methods in test suite.</p>
2554
- </li>
2555
-
2556
- <li>
2557
- <p>Add copyright notice at the top of every file.</p>
2558
- </li>
2559
- </ul></div>
2560
- </div>
2561
- </div>
2562
- </div>
2563
-
2564
- <div class="section" id="Version-0-1-0-2009-04-28">
2565
- <div style="display: none"><br/><hr/><br/></div><a name="Version-0-1-0-2009-04-28"/><div class="nav"><a title="Here" href="#Version-0-1-0-2009-04-28"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Version-1-0-0-2009-05-03"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Next" href="#Version-0-0-0-2009-04-13"><img alt="[Next]" src="cid:69900642" class="icon"/></a> <a title="Contents" href="#_contents-Version-0-1-0-2009-04-28"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2566
- <h1 class="title">
2567
- <span class="section_number">4.6&nbsp;&nbsp;</span>Version 0.1.0 (2009-04-28)
2568
- </h1>
2569
- <div class="content"><p>This release adds new variations to assertion methods, fixes several bugs, and improves test coverage.</p>
2570
-
2571
-
2572
- <div class="paragraph" id="Thank-you-72666538">
2573
- <div style="display: none"><br/><hr/><br/></div><a name="Thank-you-72666538"/><div class="nav"><a title="Here" href="#Thank-you-72666538"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2574
- <p class="title">Thank you</p>
2575
- <div class="content"><ul>
2576
- <li>François Beausoleil contributed patches for both code <em>and</em> tests! :-)</li>
2577
- </ul></div>
2578
- </div>
2579
-
2580
-
2581
-
2582
- <div class="paragraph" id="New-features-72643214">
2583
- <div style="display: none"><br/><hr/><br/></div><a name="New-features-72643214"/><div class="nav"><a title="Here" href="#New-features-72643214"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2584
- <p class="title">New features</p>
2585
- <div class="content"><ul>
2586
- <li>
2587
- <p>Added <a class="xref" href="#Negation" title="Section 3.2.1.1. &quot;Negation&quot;">negation (m!)</a> and <a class="xref" href="#Sampling" title="Section 3.2.1.2. &quot;Sampling&quot;">sampling (m?)</a> variations to <a class="xref" href="#Assertions" title="Section 3.2.1. &quot;Assertions&quot;">assertion methods</a>.</p>
2588
-
2589
- <p>These new methods implement assertion functionality missing so far (previously we could not assert that a given exception was NOT thrown) and thereby allow us to fully test Dfect using itself.</p>
2590
- </li>
2591
-
2592
- <li>
2593
- <p>Added documentation on <a class="xref" href="#Insulation" title="Section 3.2.2.3. &quot;Insulation&quot;">how to insulate tests</a> from the global Ruby namespace.</p>
2594
- </li>
2595
- </ul></div>
2596
- </div>
2597
-
2598
-
2599
-
2600
- <div class="paragraph" id="Bug-fixes-72021180">
2601
- <div style="display: none"><br/><hr/><br/></div><a name="Bug-fixes-72021180"/><div class="nav"><a title="Here" href="#Bug-fixes-72021180"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2602
- <p class="title">Bug fixes</p>
2603
- <div class="content"><ul>
2604
- <li>
2605
- <p>The <code class="line">E()</code> method did not consider the case where a block does not raise anything as a failure. &#8212;<em>François Beausoleil</em></p>
2606
- </li>
2607
-
2608
- <li>
2609
- <p>When creating a report about an assertion failure, an exception would be thrown if any local variables pointed to an empty array.</p>
2610
- </li>
2611
-
2612
- <li>
2613
- <p>The <code class="line"><span style="color:#036;font-weight:bold">Dfect</span>::&lt;()</code> method broke the inheritance-checking behavior of the &lt; class method.</p>
2614
-
2615
- <p>Added a bypass to the originial behavior so that <code class="line"><span style="color:#036;font-weight:bold">RCov</span>::<span style="color:#036;font-weight:bold">XX</span></code> can properly generate a report about code that uses Dfect.</p>
2616
- </li>
2617
-
2618
- <li>
2619
- <p>Added workaround for YAML error when serializing a class object:</p>
2620
-
2621
- <pre>TypeError: can&#39;t dump anonymous class Class</pre>
2622
- </li>
2623
- </ul></div>
2624
- </div>
2625
-
2626
-
2627
-
2628
- <div class="paragraph" id="Housekeeping-71939392">
2629
- <div style="display: none"><br/><hr/><br/></div><a name="Housekeeping-71939392"/><div class="nav"><a title="Here" href="#Housekeeping-71939392"><img alt="[Here]" src="cid:69902140" class="icon"/></a> </div>
2630
- <p class="title">Housekeeping</p>
2631
- <div class="content"><ul>
2632
- <li>Filled the big holes in test coverage. Everything except the runtime debugging logic is now covered by the unit tests.</li>
2633
- </ul></div>
2634
- </div>
2635
- </div>
2636
- </div>
2637
-
2638
- <div class="section" id="Version-0-0-0-2009-04-13">
2639
- <div style="display: none"><br/><hr/><br/></div><a name="Version-0-0-0-2009-04-13"/><div class="nav"><a title="Here" href="#Version-0-0-0-2009-04-13"><img alt="[Here]" src="cid:69902140" class="icon"/></a> <a title="Previous" href="#Version-0-1-0-2009-04-28"><img alt="[Previous]" src="cid:69901174" class="icon"/></a> <a title="Contents" href="#_contents-Version-0-0-0-2009-04-13"><img alt="[Contents]" src="cid:69898332" class="icon"/></a></div>
2640
- <h1 class="title">
2641
- <span class="section_number">4.7&nbsp;&nbsp;</span>Version 0.0.0 (2009-04-13)
2642
- </h1>
2643
- <div class="content"><p>For the longest time, I took Test::Unit and <a href='http://rspec.info'>RSpec</a> for granted. They were the epitomy of modern Ruby practice; the insurmountable status quo; immortalized in books, conferences, and blogs alike.</p>
2644
-
2645
- <p>Why would <em>anyone</em> think of using anything remotely different, let alone be foolish enough to write an alternative testing library when these are clearly <em>good enough</em>?</p>
2646
-
2647
- <p>Recent experiments in assertion testing libraries smashed my world view:</p>
2648
-
2649
- <ul>
2650
- <li><a href='http://assert2.rubyforge.org'>assert{ 2.0 }</a></li>
2651
-
2652
- <li><a href='http://github.com/ahoward/testy/tree/master'>Testy</a></li>
2653
-
2654
- <li><a href='http://www.ruby-forum.com/topic/183354'>Verify</a></li>
2655
- </ul>
2656
-
2657
- <p>The status quo was certainly <em>not</em> &#8220;good enough&#8221;, as I had so blindly believed all these years. In fact, they were <em>verbose</em> behemoths that chose to encode endless permutations of conjecture into methods.</p>
2658
-
2659
- <p>Empowered by this revelation and inspired by <a href='http://www.ruby-forum.com/topic/183354#801895'>Sean O&#8217;Halpin&#8217;s musing</a> on alternative names for assertion methods, I rose to challenge the status quo.</p>
2660
-
2661
- <p>And so I present to you the first public release of &#8220;Dfect&#8221;.</p></div>
2662
- </div>
2663
- </div></div>
2664
- </div>
2665
-
2666
- </div>
2667
-
2668
-
2669
- <div style="display: none"><br/><hr/><br/></div>
2670
-
2671
- <div id="_about">
2672
- <p>This document was generated by <a href="http://snk.tuxfamily.org/lib/erbook/">ERBook 9.2.1 (2009-11-18)</a> on <b>Wed Mar 31 23:33:30 2010</b> using the following resources.</p>
2673
-
2674
- <table border="1">
2675
- <thead>
2676
- <tr>
2677
- <th>Resource</th>
2678
- <th>Origin</th>
2679
- <th>License</th>
2680
- </tr>
2681
- </thead>
2682
- <tbody>
2683
- <tr>
2684
- <td>
2685
- <img alt="here_frag" src="cid:69923168" class="icon"/>
2686
- <img alt="command" src="cid:69921642" class="icon"/>
2687
- <img alt="important" src="cid:69920620" class="icon"/>
2688
- <img alt="warning" src="cid:69919892" class="icon"/>
2689
- <img alt="caution" src="cid:69919486" class="icon"/>
2690
- <img alt="note" src="cid:69919094" class="icon"/>
2691
- <img alt="tip" src="cid:69917778" class="icon"/>
2692
- <img alt="quote" src="cid:69903120" class="icon"/>
2693
- <img alt="nav_here" src="cid:69902140" class="icon"/>
2694
- <img alt="nav_prev" src="cid:69901174" class="icon"/>
2695
- <img alt="nav_next" src="cid:69900642" class="icon"/>
2696
- <img alt="nav_list" src="cid:69898332" class="icon"/>
2697
- </td>
2698
- <td>
2699
- <a href="http://tango.freedesktop.org/Tango_Icon_Library">Tango Icon Theme</a>
2700
-
2701
- <p>&copy; 2005 <a href="http://tango.freedesktop.org">Tango Desktop Project</a></p>
2702
- </td>
2703
- <td>
2704
- <a href="http://creativecommons.org/licenses/by-sa/2.5/">Creative Commons Attribution-ShareAlike 2.5 License Agreement</a>
2705
- </td>
2706
- </tr>
2707
-
2708
- <tr>
2709
- <td>
2710
- <img alt="hyperlink" src="cid:69935292" class="icon"/>
2711
- </td>
2712
- <td>
2713
- <a href="http://www.mediawiki.org/skins-1.5/monobook/external.png">MediaWiki Monobook Skin</a>
2714
-
2715
- <p>&copy; 2007 <a href="https://www.ohloh.net/projects/mediawiki/contributors">MediaWiki contributors</a></p>
2716
- </td>
2717
- <td>
2718
- <a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">GNU General Public License, version 2</a>
2719
- </td>
2720
- </tr>
2721
- </tbody>
2722
- </table>
2723
-
2724
- <p class="validations">
2725
- <a href="http://validator.w3.org/check?uri=referer"><img
2726
- src="cid:69886712"
2727
- alt="Valid XHTML 1.0 Strict" height="31" width="88" /></a>
2728
-
2729
- <a href="http://jigsaw.w3.org/css-validator/check/referer?profile=css3"><img
2730
- src="cid:69885298"
2731
- alt="Valid CSS 3!" height="31" width="88" /></a>
2732
- </p>
2733
- </div>
2734
- </div>
2735
-
2736
-
2737
-
2738
-
2739
- <div id="_footer">
2740
-
2741
-
2742
-
2743
-
2744
- </div>
2745
-
2746
-
2747
-
2748
- </div>
2749
- </body>
2750
- </html>