chatterbot 2.0.3 → 2.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -5
  3. data/Gemfile +9 -17
  4. data/Rakefile +2 -18
  5. data/chatterbot.gemspec +10 -11
  6. data/docs/Gemfile +3 -0
  7. data/docs/README.md +3 -0
  8. data/docs/_config.yml +37 -0
  9. data/docs/_includes/footer.html +3 -0
  10. data/docs/_includes/header.html +4 -0
  11. data/docs/_includes/navigation.html +23 -0
  12. data/docs/_layouts/default.html +98 -0
  13. data/docs/_layouts/page.html +11 -0
  14. data/docs/_posts/.gitkeep +0 -0
  15. data/docs/_site/Gemfile +3 -0
  16. data/docs/_site/advanced.html +476 -0
  17. data/docs/_site/configuration.html +456 -0
  18. data/docs/_site/contributing.html +433 -0
  19. data/docs/_site/css/main.css +58 -0
  20. data/docs/_site/css/syntax.css +61 -0
  21. data/docs/_site/deploying.html +468 -0
  22. data/docs/_site/examples.html +574 -0
  23. data/docs/_site/features.html +497 -0
  24. data/docs/_site/images/01-create-application.png +0 -0
  25. data/docs/_site/images/02-application-permissions.png +0 -0
  26. data/docs/_site/images/03-mobile-number.png +0 -0
  27. data/docs/_site/images/04-access-token.png +0 -0
  28. data/docs/_site/index.html +482 -0
  29. data/docs/_site/javascripts/main.js +1 -0
  30. data/docs/_site/other-tools.html +438 -0
  31. data/docs/_site/params.json +1 -0
  32. data/docs/_site/rdoc.html +428 -0
  33. data/docs/_site/setup.html +500 -0
  34. data/docs/_site/streaming.html +506 -0
  35. data/docs/_site/stylesheets/pygment_trac.css +68 -0
  36. data/docs/_site/stylesheets/stylesheet.css +247 -0
  37. data/docs/_site/tut.html +422 -0
  38. data/docs/_site/twitter-docs.html +428 -0
  39. data/docs/_site/walkthrough.html +463 -0
  40. data/docs/advanced.md +67 -0
  41. data/docs/basics.md +12 -0
  42. data/docs/bin/jekyll-page +109 -0
  43. data/docs/configuration.md +32 -0
  44. data/docs/contributing.md +14 -0
  45. data/docs/css/main.css +58 -0
  46. data/docs/css/syntax.css +61 -0
  47. data/docs/deploying.md +53 -0
  48. data/docs/examples.md +168 -0
  49. data/docs/features.md +88 -0
  50. data/docs/images/01-create-application.png +0 -0
  51. data/docs/images/02-application-permissions.png +0 -0
  52. data/docs/images/03-mobile-number.png +0 -0
  53. data/docs/images/04-access-token.png +0 -0
  54. data/docs/index.md +70 -0
  55. data/docs/javascripts/main.js +1 -0
  56. data/docs/other-tools.md +17 -0
  57. data/docs/params.json +1 -0
  58. data/docs/rdoc.md +6 -0
  59. data/docs/setup.md +84 -0
  60. data/docs/streaming.md +98 -0
  61. data/docs/stylesheets/pygment_trac.css +68 -0
  62. data/docs/stylesheets/stylesheet.css +247 -0
  63. data/docs/tips.md +22 -0
  64. data/docs/tut.md +6 -0
  65. data/docs/twitter-docs.md +6 -0
  66. data/docs/walkthrough.md +46 -0
  67. data/examples/streaming_bot.rb +11 -10
  68. data/ext/mkrf_conf.rb +28 -0
  69. data/lib/chatterbot/bot.rb +5 -1
  70. data/lib/chatterbot/config.rb +1 -1
  71. data/lib/chatterbot/home_timeline.rb +1 -1
  72. data/lib/chatterbot/streaming.rb +11 -1
  73. data/lib/chatterbot/version.rb +1 -1
  74. data/spec/spec_helper.rb +1 -4
  75. metadata +71 -122
  76. data/examples/tweet_logger.rb +0 -68
@@ -0,0 +1,68 @@
1
+ .highlight .c { color: #999988; font-style: italic } /* Comment */
2
+ .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
3
+ .highlight .k { font-weight: bold } /* Keyword */
4
+ .highlight .o { font-weight: bold } /* Operator */
5
+ .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
6
+ .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
7
+ .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
8
+ .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
9
+ .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
10
+ .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
11
+ .highlight .ge { font-style: italic } /* Generic.Emph */
12
+ .highlight .gr { color: #aa0000 } /* Generic.Error */
13
+ .highlight .gh { color: #999999 } /* Generic.Heading */
14
+ .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
15
+ .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
16
+ .highlight .go { color: #888888 } /* Generic.Output */
17
+ .highlight .gp { color: #555555 } /* Generic.Prompt */
18
+ .highlight .gs { font-weight: bold } /* Generic.Strong */
19
+ .highlight .gu { color: #800080; font-weight: bold; } /* Generic.Subheading */
20
+ .highlight .gt { color: #aa0000 } /* Generic.Traceback */
21
+ .highlight .kc { font-weight: bold } /* Keyword.Constant */
22
+ .highlight .kd { font-weight: bold } /* Keyword.Declaration */
23
+ .highlight .kn { font-weight: bold } /* Keyword.Namespace */
24
+ .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
25
+ .highlight .kr { font-weight: bold } /* Keyword.Reserved */
26
+ .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
27
+ .highlight .m { color: #009999 } /* Literal.Number */
28
+ .highlight .s { color: #d14 } /* Literal.String */
29
+ .highlight .na { color: #008080 } /* Name.Attribute */
30
+ .highlight .nb { color: #0086B3 } /* Name.Builtin */
31
+ .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
32
+ .highlight .no { color: #008080 } /* Name.Constant */
33
+ .highlight .ni { color: #800080 } /* Name.Entity */
34
+ .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
35
+ .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
36
+ .highlight .nn { color: #555555 } /* Name.Namespace */
37
+ .highlight .nt { color: #CBDFFF } /* Name.Tag */
38
+ .highlight .nv { color: #008080 } /* Name.Variable */
39
+ .highlight .ow { font-weight: bold } /* Operator.Word */
40
+ .highlight .w { color: #bbbbbb } /* Text.Whitespace */
41
+ .highlight .mf { color: #009999 } /* Literal.Number.Float */
42
+ .highlight .mh { color: #009999 } /* Literal.Number.Hex */
43
+ .highlight .mi { color: #009999 } /* Literal.Number.Integer */
44
+ .highlight .mo { color: #009999 } /* Literal.Number.Oct */
45
+ .highlight .sb { color: #d14 } /* Literal.String.Backtick */
46
+ .highlight .sc { color: #d14 } /* Literal.String.Char */
47
+ .highlight .sd { color: #d14 } /* Literal.String.Doc */
48
+ .highlight .s2 { color: #d14 } /* Literal.String.Double */
49
+ .highlight .se { color: #d14 } /* Literal.String.Escape */
50
+ .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
51
+ .highlight .si { color: #d14 } /* Literal.String.Interpol */
52
+ .highlight .sx { color: #d14 } /* Literal.String.Other */
53
+ .highlight .sr { color: #009926 } /* Literal.String.Regex */
54
+ .highlight .s1 { color: #d14 } /* Literal.String.Single */
55
+ .highlight .ss { color: #990073 } /* Literal.String.Symbol */
56
+ .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
57
+ .highlight .vc { color: #008080 } /* Name.Variable.Class */
58
+ .highlight .vg { color: #008080 } /* Name.Variable.Global */
59
+ .highlight .vi { color: #008080 } /* Name.Variable.Instance */
60
+ .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
61
+
62
+ .type-csharp .highlight .k { color: #0000FF }
63
+ .type-csharp .highlight .kt { color: #0000FF }
64
+ .type-csharp .highlight .nf { color: #000000; font-weight: normal }
65
+ .type-csharp .highlight .nc { color: #2B91AF }
66
+ .type-csharp .highlight .nn { color: #000000 }
67
+ .type-csharp .highlight .s { color: #A31515 }
68
+ .type-csharp .highlight .sc { color: #A31515 }
@@ -0,0 +1,247 @@
1
+ body {
2
+ margin: 0;
3
+ padding: 0;
4
+ background: #151515 url("../images/bkg.png") 0 0;
5
+ color: #eaeaea;
6
+ font: 16px;
7
+ line-height: 1.5;
8
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
9
+ }
10
+
11
+ /* General & 'Reset' Stuff */
12
+
13
+ .container {
14
+ width: 90%;
15
+ max-width: 600px;
16
+ margin: 0 auto;
17
+ }
18
+
19
+ section {
20
+ display: block;
21
+ margin: 0 0 20px 0;
22
+ }
23
+
24
+ h1, h2, h3, h4, h5, h6 {
25
+ margin: 0 0 20px;
26
+ }
27
+
28
+ li {
29
+ line-height: 1.4 ;
30
+ }
31
+
32
+ /* Header, <header>
33
+ header - container
34
+ h1 - project name
35
+ h2 - project description
36
+ */
37
+
38
+ header {
39
+ background: rgba(0, 0, 0, 0.1);
40
+ width: 100%;
41
+ border-bottom: 1px dashed #b5e853;
42
+ padding: 20px 0;
43
+ margin: 0 0 40px 0;
44
+ }
45
+
46
+ header h1 {
47
+ font-size: 30px;
48
+ line-height: 1.5;
49
+ margin: 0 0 0 -40px;
50
+ font-weight: bold;
51
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
52
+ color: #b5e853;
53
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
54
+ 0 0 5px rgba(181, 232, 83, 0.1),
55
+ 0 0 10px rgba(181, 232, 83, 0.1);
56
+ letter-spacing: -1px;
57
+ -webkit-font-smoothing: antialiased;
58
+ }
59
+
60
+ header h1:before {
61
+ content: "./ ";
62
+ font-size: 24px;
63
+ }
64
+
65
+ header h2 {
66
+ font-size: 18px;
67
+ font-weight: 300;
68
+ color: #666;
69
+ }
70
+
71
+ #downloads .btn {
72
+ display: inline-block;
73
+ text-align: center;
74
+ margin: 0;
75
+ }
76
+
77
+ /* Main Content
78
+ */
79
+
80
+ #main_content {
81
+ width: 100%;
82
+ -webkit-font-smoothing: antialiased;
83
+ }
84
+ section img {
85
+ max-width: 100%
86
+ }
87
+
88
+ h1, h2, h3, h4, h5, h6 {
89
+ font-weight: normal;
90
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
91
+ color: #b5e853;
92
+ letter-spacing: -0.03em;
93
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.1),
94
+ 0 0 5px rgba(181, 232, 83, 0.1),
95
+ 0 0 10px rgba(181, 232, 83, 0.1);
96
+ }
97
+
98
+ #main_content h1 {
99
+ font-size: 30px;
100
+ }
101
+
102
+ #main_content h2 {
103
+ font-size: 24px;
104
+ }
105
+
106
+ #main_content h3 {
107
+ font-size: 18px;
108
+ }
109
+
110
+ #main_content h4 {
111
+ font-size: 14px;
112
+ }
113
+
114
+ #main_content h5 {
115
+ font-size: 12px;
116
+ text-transform: uppercase;
117
+ margin: 0 0 5px 0;
118
+ }
119
+
120
+ #main_content h6 {
121
+ font-size: 12px;
122
+ text-transform: uppercase;
123
+ color: #999;
124
+ margin: 0 0 5px 0;
125
+ }
126
+
127
+ dt {
128
+ font-style: italic;
129
+ font-weight: bold;
130
+ }
131
+
132
+ ul li {
133
+ list-style: none;
134
+ }
135
+
136
+ ul li:before {
137
+ content: ">>";
138
+ font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace;
139
+ font-size: 13px;
140
+ color: #b5e853;
141
+ margin-left: -37px;
142
+ margin-right: 21px;
143
+ line-height: 16px;
144
+ }
145
+
146
+ blockquote {
147
+ color: #aaa;
148
+ padding-left: 10px;
149
+ border-left: 1px dotted #666;
150
+ }
151
+
152
+ pre {
153
+ background: rgba(0, 0, 0, 0.9);
154
+ border: 1px solid rgba(255, 255, 255, 0.15);
155
+ padding: 10px;
156
+ font-size: 14px;
157
+ color: #b5e853;
158
+ border-radius: 2px;
159
+ -moz-border-radius: 2px;
160
+ -webkit-border-radius: 2px;
161
+ text-wrap: normal;
162
+ overflow: auto;
163
+ overflow-y: hidden;
164
+ }
165
+
166
+ table {
167
+ width: 100%;
168
+ margin: 0 0 20px 0;
169
+ }
170
+
171
+ th {
172
+ text-align: left;
173
+ border-bottom: 1px dashed #b5e853;
174
+ padding: 5px 10px;
175
+ }
176
+
177
+ td {
178
+ padding: 5px 10px;
179
+ }
180
+
181
+ hr {
182
+ height: 0;
183
+ border: 0;
184
+ border-bottom: 1px dashed #b5e853;
185
+ color: #b5e853;
186
+ }
187
+
188
+ /* Buttons
189
+ */
190
+
191
+ .btn {
192
+ display: inline-block;
193
+ background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.3), rgba(35, 35, 35, 0.3) 50%, rgba(10, 10, 10, 0.3) 50%, rgba(0, 0, 0, 0.3));
194
+ padding: 8px 18px;
195
+ border-radius: 50px;
196
+ border: 2px solid rgba(0, 0, 0, 0.7);
197
+ border-bottom: 2px solid rgba(0, 0, 0, 0.7);
198
+ border-top: 2px solid rgba(0, 0, 0, 1);
199
+ color: rgba(255, 255, 255, 0.8);
200
+ font-family: Helvetica, Arial, sans-serif;
201
+ font-weight: bold;
202
+ font-size: 13px;
203
+ text-decoration: none;
204
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.75);
205
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
206
+ }
207
+
208
+ .btn:hover {
209
+ background: -webkit-linear-gradient(top, rgba(40, 40, 40, 0.6), rgba(35, 35, 35, 0.6) 50%, rgba(10, 10, 10, 0.8) 50%, rgba(0, 0, 0, 0.8));
210
+ }
211
+
212
+ .btn .icon {
213
+ display: inline-block;
214
+ width: 16px;
215
+ height: 16px;
216
+ margin: 1px 8px 0 0;
217
+ float: left;
218
+ }
219
+
220
+ .btn-github .icon {
221
+ opacity: 0.6;
222
+ background: url("../images/blacktocat.png") 0 0 no-repeat;
223
+ }
224
+
225
+ /* Links
226
+ a, a:hover, a:visited
227
+ */
228
+
229
+ a {
230
+ color: #63c0f5;
231
+ text-shadow: 0 0 5px rgba(104, 182, 255, 0.5);
232
+ }
233
+
234
+ /* Clearfix */
235
+
236
+ .cf:before, .cf:after {
237
+ content:"";
238
+ display:table;
239
+ }
240
+
241
+ .cf:after {
242
+ clear:both;
243
+ }
244
+
245
+ .cf {
246
+ zoom:1;
247
+ }
@@ -0,0 +1,422 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
6
+ <meta name="viewport" content="width=device-width">
7
+
8
+ <title>chatterbot : Setup</title>
9
+ <meta name="description" content="twitter bots in ruby">
10
+
11
+ <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.no-icons.min.css" rel="stylesheet">
12
+ <link rel="stylesheet" href="/css/syntax.css">
13
+ <link rel="stylesheet" href="/css/main.css">
14
+ </head>
15
+ <body>
16
+
17
+ <div class="container">
18
+ <div class=row-fluid>
19
+ <div id=header class=span12>
20
+ <h4><a class=brand href="/">chatterbot</a>
21
+ <small>twitter bots in ruby</small>
22
+ </h4>
23
+
24
+
25
+ </div>
26
+ </div>
27
+
28
+ <div class=row-fluid>
29
+
30
+
31
+ <div id=navigation class=span2>
32
+ <ul class="nav nav-list">
33
+ <li><a href="/">Home</a></li>
34
+
35
+
36
+
37
+ <li class=nav-header>Getting Started</li>
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+
49
+
50
+
51
+
52
+
53
+
54
+
55
+
56
+
57
+ <li data-order="">
58
+
59
+ <a href="/examples.html">Examples</a>
60
+
61
+ </li>
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+
72
+
73
+
74
+
75
+
76
+
77
+
78
+
79
+
80
+
81
+
82
+
83
+ <li data-order="">
84
+
85
+ <a href="/setup.html">Authorizing Your Bot</a>
86
+
87
+ </li>
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+
96
+
97
+
98
+
99
+
100
+
101
+
102
+
103
+
104
+
105
+ <li data-order="">
106
+
107
+ <a href="/walkthrough.html">Walkthrough</a>
108
+
109
+ </li>
110
+
111
+
112
+
113
+
114
+
115
+
116
+ <li class=nav-header>Documentation</li>
117
+
118
+
119
+
120
+ <li data-order="">
121
+
122
+ <a href="/advanced.html">Advanced Features</a>
123
+
124
+ </li>
125
+
126
+
127
+
128
+
129
+
130
+ <li data-order="">
131
+
132
+ <a href="/configuration.html">Configuration</a>
133
+
134
+ </li>
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+ <li data-order="">
145
+
146
+ <a href="/deploying.html">Running your Bot</a>
147
+
148
+ </li>
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+ <li data-order="">
159
+
160
+ <a href="/features.html">Basic Features</a>
161
+
162
+ </li>
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+ <li data-order="">
185
+
186
+ <a href="/streaming.html">Streaming API</a>
187
+
188
+ </li>
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+ <li class=nav-header>Developers</li>
208
+
209
+
210
+
211
+
212
+
213
+
214
+
215
+
216
+
217
+
218
+
219
+ <li data-order="">
220
+
221
+ <a href="/contributing.html">Contributing</a>
222
+
223
+ </li>
224
+
225
+
226
+
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+ <li class=nav-header>Resources</li>
275
+
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+ <li data-order="">
307
+
308
+ <a href="/other-tools.html">Other Tools</a>
309
+
310
+ </li>
311
+
312
+
313
+
314
+
315
+
316
+ <li data-order="">
317
+
318
+ <a href="http://rubydoc.info/gems/chatterbot">rdoc</a>
319
+
320
+ </li>
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+ <li data-order="">
339
+
340
+ <a href="https://dev.twitter.com/rest/public">Twitter API docs</a>
341
+
342
+ </li>
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+ <!-- List additional links. It is recommended to add a divider
352
+ e.g. <li class=divider></li> first to break up the content. -->
353
+ </ul>
354
+
355
+ </div>
356
+
357
+ <div id=content class=span10>
358
+ <p>setting up your bot!</p>
359
+
360
+ </div>
361
+
362
+ </div>
363
+
364
+ <div class=row-fluid>
365
+ <div id=footer class=span12>
366
+ Documentation for <a href="https://github.com/muffinista/chatterbot">chatterbot</a>
367
+
368
+ </div>
369
+ </div>
370
+ </div>
371
+
372
+ <script>
373
+ function orderNav() {
374
+ var list,
375
+ section,
376
+ header,
377
+ sections = [],
378
+ lists = {},
379
+ headers = {};
380
+
381
+ var navUl = document.querySelectorAll('#navigation ul')[0],
382
+ navLis = document.querySelectorAll('#navigation ul li');
383
+
384
+ if (!navUl) return;
385
+
386
+ for (var i = 0; i < navLis.length; i++) {
387
+ var order, li = navLis[i];
388
+
389
+ if (li.classList.contains('nav-header')) {
390
+ section = li.textContent || li.innerText;
391
+ sections.push(section);
392
+ headers[section] = li;
393
+ continue;
394
+ }
395
+
396
+ if (!lists[section]) {
397
+ lists[section] = [];
398
+ }
399
+
400
+ order = parseFloat(li.getAttribute('data-order'))
401
+ lists[section].push([order, li]);
402
+ }
403
+
404
+ for (var i = 0; i < sections.length; i++) {
405
+ section = sections[i];
406
+ list = lists[section].sort(function(a, b) {
407
+ return a[0] - b[0];
408
+ });
409
+
410
+ if (header = headers[section]) {
411
+ navUl.appendChild(header);
412
+ }
413
+ for (var j = 0; j < list.length; j++) {
414
+ navUl.appendChild(list[j][1]);
415
+ }
416
+ }
417
+ }
418
+
419
+ if (document.querySelectorAll) orderNav();
420
+ </script>
421
+ </body>
422
+ </html>