cta_redux 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +37 -0
- data/.rspec +2 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +16 -0
- data/Rakefile +2 -0
- data/cta_redux.gemspec +32 -0
- data/data/.gitkeep +0 -0
- data/data/cta-gtfs.db.gz +0 -0
- data/lib/cta_redux/api/api_response.rb +45 -0
- data/lib/cta_redux/api/bus_tracker.rb +178 -0
- data/lib/cta_redux/api/customer_alerts.rb +68 -0
- data/lib/cta_redux/api/train_tracker.rb +89 -0
- data/lib/cta_redux/bus_tracker.rb +183 -0
- data/lib/cta_redux/customer_alerts.rb +72 -0
- data/lib/cta_redux/faraday_middleware/bus_tracker_parser.rb +46 -0
- data/lib/cta_redux/faraday_middleware/customer_alerts_parser.rb +39 -0
- data/lib/cta_redux/faraday_middleware/simple_cache.rb +32 -0
- data/lib/cta_redux/faraday_middleware/train_tracker_parser.rb +37 -0
- data/lib/cta_redux/models/agency.rb +4 -0
- data/lib/cta_redux/models/bus.rb +46 -0
- data/lib/cta_redux/models/calendar.rb +7 -0
- data/lib/cta_redux/models/route.rb +62 -0
- data/lib/cta_redux/models/shape.rb +4 -0
- data/lib/cta_redux/models/stop.rb +66 -0
- data/lib/cta_redux/models/stop_time.rb +6 -0
- data/lib/cta_redux/models/train.rb +74 -0
- data/lib/cta_redux/models/transfer.rb +6 -0
- data/lib/cta_redux/models/trip.rb +64 -0
- data/lib/cta_redux/train_tracker.rb +103 -0
- data/lib/cta_redux/version.rb +3 -0
- data/lib/cta_redux.rb +50 -0
- data/script/gtfs_to_sqlite.rb +137 -0
- data/spec/bus_tracker_spec.rb +149 -0
- data/spec/customer_alerts_spec.rb +48 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/stubs/alerts_response.xml +362 -0
- data/spec/stubs/getdirections_response.xml +16 -0
- data/spec/stubs/getpatterns_rt22_response.xml +2768 -0
- data/spec/stubs/getpredictions_rt22stpid15895_response.xml +59 -0
- data/spec/stubs/getpredictions_vid4361_response.xml +647 -0
- data/spec/stubs/getroutes_response.xml +774 -0
- data/spec/stubs/getservicebulletins_rt8_response.xml +110 -0
- data/spec/stubs/getstops_response.xml +614 -0
- data/spec/stubs/gettime_response.xml +2 -0
- data/spec/stubs/getvehicles_rt22_response.xml +239 -0
- data/spec/stubs/getvehicles_vid4394_response.xml +23 -0
- data/spec/stubs/route_status8_response.xml +1 -0
- data/spec/stubs/routes_response.xml +1 -0
- data/spec/stubs/ttarivals_stpid30141_response.xml +1 -0
- data/spec/stubs/ttfollow_run217_response.xml +1 -0
- data/spec/stubs/ttpositions_response.xml +1 -0
- data/spec/train_tracker_spec.rb +70 -0
- metadata +234 -0
@@ -0,0 +1,239 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<bustime-response>
|
3
|
+
|
4
|
+
<vehicle>
|
5
|
+
<vid>4394</vid>
|
6
|
+
<tmstmp>20150214 11:40</tmstmp>
|
7
|
+
<lat>41.873779296875</lat>
|
8
|
+
<lon>-87.63054656982422</lon>
|
9
|
+
<hdg>178</hdg>
|
10
|
+
<pid>3932</pid>
|
11
|
+
<rt>22</rt>
|
12
|
+
<des>Howard</des>
|
13
|
+
<pdist>115</pdist>
|
14
|
+
|
15
|
+
<dly>false</dly>
|
16
|
+
<spd>0</spd>
|
17
|
+
<tablockid>22 -506</tablockid>
|
18
|
+
<tatripid>204506</tatripid>
|
19
|
+
<zone></zone>
|
20
|
+
</vehicle>
|
21
|
+
|
22
|
+
<vehicle>
|
23
|
+
<vid>4385</vid>
|
24
|
+
<tmstmp>20150214 11:40</tmstmp>
|
25
|
+
<lat>41.88655059814453</lat>
|
26
|
+
<lon>-87.62959838867188</lon>
|
27
|
+
<hdg>10</hdg>
|
28
|
+
<pid>3932</pid>
|
29
|
+
<rt>22</rt>
|
30
|
+
<des>Howard</des>
|
31
|
+
<pdist>6164</pdist>
|
32
|
+
|
33
|
+
<dly>false</dly>
|
34
|
+
<spd>0</spd>
|
35
|
+
<tablockid>22 -505</tablockid>
|
36
|
+
<tatripid>204505</tatripid>
|
37
|
+
<zone></zone>
|
38
|
+
</vehicle>
|
39
|
+
|
40
|
+
<vehicle>
|
41
|
+
<vid>4398</vid>
|
42
|
+
<tmstmp>20150214 11:40</tmstmp>
|
43
|
+
<lat>41.900115966796875</lat>
|
44
|
+
<lon>-87.63133239746094</lon>
|
45
|
+
<hdg>4</hdg>
|
46
|
+
<pid>3932</pid>
|
47
|
+
<rt>22</rt>
|
48
|
+
<des>Howard</des>
|
49
|
+
<pdist>11570</pdist>
|
50
|
+
|
51
|
+
<dly>false</dly>
|
52
|
+
<spd>0</spd>
|
53
|
+
<tablockid>22 -511</tablockid>
|
54
|
+
<tatripid>204504</tatripid>
|
55
|
+
<zone></zone>
|
56
|
+
</vehicle>
|
57
|
+
|
58
|
+
<vehicle>
|
59
|
+
<vid>4332</vid>
|
60
|
+
<tmstmp>20150214 11:41</tmstmp>
|
61
|
+
<lat>41.911133986253006</lat>
|
62
|
+
<lon>-87.6315689086914</lon>
|
63
|
+
<hdg>9</hdg>
|
64
|
+
<pid>3932</pid>
|
65
|
+
<rt>22</rt>
|
66
|
+
<des>Howard</des>
|
67
|
+
<pdist>15582</pdist>
|
68
|
+
|
69
|
+
<dly>false</dly>
|
70
|
+
<spd>0</spd>
|
71
|
+
<tablockid>22 -504</tablockid>
|
72
|
+
<tatripid>204503</tatripid>
|
73
|
+
<zone></zone>
|
74
|
+
</vehicle>
|
75
|
+
|
76
|
+
<vehicle>
|
77
|
+
<vid>4155</vid>
|
78
|
+
<tmstmp>20150214 11:41</tmstmp>
|
79
|
+
<lat>41.93629308847281</lat>
|
80
|
+
<lon>-87.64751815795898</lon>
|
81
|
+
<hdg>330</hdg>
|
82
|
+
<pid>3932</pid>
|
83
|
+
<rt>22</rt>
|
84
|
+
<des>Howard</des>
|
85
|
+
<pdist>25775</pdist>
|
86
|
+
|
87
|
+
<dly>false</dly>
|
88
|
+
<spd>7</spd>
|
89
|
+
<tablockid>22 -507</tablockid>
|
90
|
+
<tatripid>204502</tatripid>
|
91
|
+
<zone></zone>
|
92
|
+
</vehicle>
|
93
|
+
|
94
|
+
<vehicle>
|
95
|
+
<vid>4360</vid>
|
96
|
+
<tmstmp>20150214 11:40</tmstmp>
|
97
|
+
<lat>41.954769134521484</lat>
|
98
|
+
<lon>-87.662428855896</lon>
|
99
|
+
<hdg>334</hdg>
|
100
|
+
<pid>3932</pid>
|
101
|
+
<rt>22</rt>
|
102
|
+
<des>Howard</des>
|
103
|
+
<pdist>33863</pdist>
|
104
|
+
|
105
|
+
<dly>false</dly>
|
106
|
+
<spd>32</spd>
|
107
|
+
<tablockid>22 -510</tablockid>
|
108
|
+
<tatripid>204501</tatripid>
|
109
|
+
<zone></zone>
|
110
|
+
</vehicle>
|
111
|
+
|
112
|
+
<vehicle>
|
113
|
+
<vid>4345</vid>
|
114
|
+
<tmstmp>20150214 11:40</tmstmp>
|
115
|
+
<lat>41.97938868204753</lat>
|
116
|
+
<lon>-87.66833292643229</lon>
|
117
|
+
<hdg>0</hdg>
|
118
|
+
<pid>3932</pid>
|
119
|
+
<rt>22</rt>
|
120
|
+
<des>Howard</des>
|
121
|
+
<pdist>43083</pdist>
|
122
|
+
|
123
|
+
<dly>false</dly>
|
124
|
+
<spd>0</spd>
|
125
|
+
<tablockid>22 -503</tablockid>
|
126
|
+
<tatripid>204500</tatripid>
|
127
|
+
<zone></zone>
|
128
|
+
</vehicle>
|
129
|
+
|
130
|
+
<vehicle>
|
131
|
+
<vid>4154</vid>
|
132
|
+
<tmstmp>20150214 11:40</tmstmp>
|
133
|
+
<lat>42.01862335205078</lat>
|
134
|
+
<lon>-87.67300415039062</lon>
|
135
|
+
<hdg>358</hdg>
|
136
|
+
<pid>3936</pid>
|
137
|
+
<rt>22</rt>
|
138
|
+
<des>Harrison</des>
|
139
|
+
<pdist>132</pdist>
|
140
|
+
|
141
|
+
<dly>false</dly>
|
142
|
+
<spd>0</spd>
|
143
|
+
<tablockid>22 -502</tablockid>
|
144
|
+
<tatripid>204440</tatripid>
|
145
|
+
<zone></zone>
|
146
|
+
</vehicle>
|
147
|
+
|
148
|
+
<vehicle>
|
149
|
+
<vid>4340</vid>
|
150
|
+
<tmstmp>20150214 11:41</tmstmp>
|
151
|
+
<lat>41.99688278198242</lat>
|
152
|
+
<lon>-87.67039489746094</lon>
|
153
|
+
<hdg>172</hdg>
|
154
|
+
<pid>3936</pid>
|
155
|
+
<rt>22</rt>
|
156
|
+
<des>Harrison</des>
|
157
|
+
<pdist>9507</pdist>
|
158
|
+
|
159
|
+
<dly>false</dly>
|
160
|
+
<spd>36</spd>
|
161
|
+
<tablockid>22 -514</tablockid>
|
162
|
+
<tatripid>204439</tatripid>
|
163
|
+
<zone></zone>
|
164
|
+
</vehicle>
|
165
|
+
|
166
|
+
<vehicle>
|
167
|
+
<vid>4361</vid>
|
168
|
+
<tmstmp>20150214 11:40</tmstmp>
|
169
|
+
<lat>41.948960379948694</lat>
|
170
|
+
<lon>-87.65780591207837</lon>
|
171
|
+
<hdg>149</hdg>
|
172
|
+
<pid>3936</pid>
|
173
|
+
<rt>22</rt>
|
174
|
+
<des>Harrison</des>
|
175
|
+
<pdist>27431</pdist>
|
176
|
+
|
177
|
+
<dly>false</dly>
|
178
|
+
<spd>12</spd>
|
179
|
+
<tablockid>22 -501</tablockid>
|
180
|
+
<tatripid>204437</tatripid>
|
181
|
+
<zone></zone>
|
182
|
+
</vehicle>
|
183
|
+
|
184
|
+
<vehicle>
|
185
|
+
<vid>4336</vid>
|
186
|
+
<tmstmp>20150214 11:41</tmstmp>
|
187
|
+
<lat>41.93275705973307</lat>
|
188
|
+
<lon>-87.64481678715458</lon>
|
189
|
+
<hdg>157</hdg>
|
190
|
+
<pid>3936</pid>
|
191
|
+
<rt>22</rt>
|
192
|
+
<des>Harrison</des>
|
193
|
+
<pdist>34343</pdist>
|
194
|
+
|
195
|
+
<dly>false</dly>
|
196
|
+
<spd>9</spd>
|
197
|
+
<tablockid>22 -513</tablockid>
|
198
|
+
<tatripid>204436</tatripid>
|
199
|
+
<zone></zone>
|
200
|
+
</vehicle>
|
201
|
+
|
202
|
+
<vehicle>
|
203
|
+
<vid>4354</vid>
|
204
|
+
<tmstmp>20150214 11:41</tmstmp>
|
205
|
+
<lat>41.930145263671875</lat>
|
206
|
+
<lon>-87.64364079066685</lon>
|
207
|
+
<hdg>163</hdg>
|
208
|
+
<pid>3936</pid>
|
209
|
+
<rt>22</rt>
|
210
|
+
<des>Harrison</des>
|
211
|
+
<pdist>35353</pdist>
|
212
|
+
|
213
|
+
<dly>false</dly>
|
214
|
+
<spd>0</spd>
|
215
|
+
<tablockid>22 -508</tablockid>
|
216
|
+
<tatripid>204435</tatripid>
|
217
|
+
<zone></zone>
|
218
|
+
</vehicle>
|
219
|
+
|
220
|
+
<vehicle>
|
221
|
+
<vid>4388</vid>
|
222
|
+
<tmstmp>20150214 11:41</tmstmp>
|
223
|
+
<lat>41.902053113253615</lat>
|
224
|
+
<lon>-87.63161238184514</lon>
|
225
|
+
<hdg>187</hdg>
|
226
|
+
<pid>3936</pid>
|
227
|
+
<rt>22</rt>
|
228
|
+
<des>Harrison</des>
|
229
|
+
<pdist>46324</pdist>
|
230
|
+
|
231
|
+
<dly>false</dly>
|
232
|
+
<spd>0</spd>
|
233
|
+
<tablockid>22 -512</tablockid>
|
234
|
+
<tatripid>204433</tatripid>
|
235
|
+
<zone></zone>
|
236
|
+
</vehicle>
|
237
|
+
|
238
|
+
</bustime-response>
|
239
|
+
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<bustime-response>
|
3
|
+
|
4
|
+
<vehicle>
|
5
|
+
<vid>4394</vid>
|
6
|
+
<tmstmp>20150214 11:58</tmstmp>
|
7
|
+
<lat>41.89195728302002</lat>
|
8
|
+
<lon>-87.6297836303711</lon>
|
9
|
+
<hdg>359</hdg>
|
10
|
+
<pid>3932</pid>
|
11
|
+
<rt>22</rt>
|
12
|
+
<des>Howard</des>
|
13
|
+
<pdist>8288</pdist>
|
14
|
+
|
15
|
+
<dly>false</dly>
|
16
|
+
<spd>10</spd>
|
17
|
+
<tablockid>22 -506</tablockid>
|
18
|
+
<tatripid>204506</tatripid>
|
19
|
+
<zone></zone>
|
20
|
+
</vehicle>
|
21
|
+
|
22
|
+
</bustime-response>
|
23
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><CTARoutes><TimeStamp>20150214 14:21</TimeStamp><RouteInfo><Route>Halsted</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>8</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=167]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo></CTARoutes>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><CTARoutes><TimeStamp>20150214 14:15</TimeStamp><ErrorCode>0</ErrorCode><ErrorMessage /><RouteInfo><Route>Red Line</Route><RouteColorCode>c60c30</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Red</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/redline.aspx]]></RouteURL><RouteStatus>Planned Work w/Reroute</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Blue Line</Route><RouteColorCode>00a1de</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Blue</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/blueline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Brown Line</Route><RouteColorCode>62361b</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Brn</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/brownline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Green Line</Route><RouteColorCode>009b3a</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>G</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/greenline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Orange Line</Route><RouteColorCode>f9461c</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Org</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/orangeline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Purple Line</Route><RouteColorCode>522398</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>P</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/purpleline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Purple Line Express</Route><RouteColorCode>522398</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Pexp</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/purpleline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Pink Line</Route><RouteColorCode>e27ea6</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Pink</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/pinkline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Yellow Line</Route><RouteColorCode>f9e300</RouteColorCode><RouteTextColor>000000</RouteTextColor><ServiceId>Y</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/systemguide/yellowline.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><ErrorCode>0</ErrorCode><ErrorMessage /><RouteInfo><Route>Bronzeville/Union Station</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>1</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=158]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Hyde Park Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>2</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=159]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>King Drive</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>3</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=160]]></RouteURL><RouteStatus>Special Note</RouteStatus><RouteStatusColor>000000</RouteStatusColor></RouteInfo><RouteInfo><Route>Cottage Grove</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>4</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=162]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>South Shore Night Bus</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>N5</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=164]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Jackson Park Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>6</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=165]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Harrison</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>7</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=166]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Halsted</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>8</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=167]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>South Halsted</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>8A</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=168]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Ashland</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>9</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=169]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Museum of Science & Industry</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>10</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=171]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Lincoln</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>11</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=172]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Roosevelt</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>12</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=173]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Jeffery Jump</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>J14</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=174]]></RouteURL><RouteStatus>Normal Service*</RouteStatus><RouteStatusColor>000000</RouteStatusColor></RouteInfo><RouteInfo><Route>Jeffery Local</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>15</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=175]]></RouteURL><RouteStatus>Normal Service*</RouteStatus><RouteStatusColor>000000</RouteStatusColor></RouteInfo><RouteInfo><Route>16th-18th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>18</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=177]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>United Center Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>19</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=325]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Madison</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>20</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=178]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Cermak</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>21</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=180]]></RouteURL><RouteStatus>Special Note</RouteStatus><RouteStatusColor>000000</RouteStatusColor></RouteInfo><RouteInfo><Route>Clark</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>22</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=181]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Wentworth</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>24</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=182]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>South Shore Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>26</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=183]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Stony Island</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>28</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=184]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>State</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>29</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=186]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>South Chicago</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>30</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=187]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>South Michigan</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>34</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=189]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>31st/35th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>35</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=190]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Broadway</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>36</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=191]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Sedgwick</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>37</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=335]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Pershing</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>39</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=193]]></RouteURL><RouteStatus>Service Change</RouteStatus><RouteStatusColor>000000</RouteStatusColor></RouteInfo><RouteInfo><Route>43rd</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>43</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=194]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Wallace-Racine</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>44</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=195]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>47th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>47</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=196]]></RouteURL><RouteStatus>Planned Reroute</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>South Damen</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>48</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=197]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Western</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>49</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=198]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>North Western</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>49B</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=200]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Damen</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>50</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=202]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>51st</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>51</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=203]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Kedzie/California</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>52</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=204]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>South Kedzie</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>52A</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=205]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Pulaski</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>53</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=206]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>South Pulaski</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>53A</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=207]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Cicero</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>54</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=209]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>North Cicero/Skokie Blvd.</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>54A</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=210]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>South Cicero</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>54B</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=211]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Garfield</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>55</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=213]]></RouteURL><RouteStatus>Normal Service*</RouteStatus><RouteStatusColor>000000</RouteStatusColor></RouteInfo><RouteInfo><Route>55th/Austin</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>55A</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=214]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>55th/Narragansett</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>55N</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=215]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Milwaukee</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>56</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=217]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Laramie</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>57</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=219]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>59th/61st</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>59</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=220]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Blue Island/26th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>60</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=221]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Archer</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>62</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=222]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Archer/Harlem</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>62H</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=223]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>63rd</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>63</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=224]]></RouteURL><RouteStatus>Planned Reroute</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>West 63rd</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>63W</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=225]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Grand</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>65</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=227]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Chicago</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>66</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=228]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>67th-69th-71st</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>67</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=229]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Northwest Highway</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>68</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=230]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Division</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>70</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=232]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>71st/South Shore</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>71</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=233]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>North</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>72</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=234]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Armitage</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>73</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=235]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Fullerton</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>74</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=236]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>74th-75th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>75</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=237]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Diversey</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>76</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=238]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Belmont</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>77</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=239]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Montrose</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>78</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=240]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>79th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>79</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=241]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Irving Park</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>80</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=242]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Lawrence</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>81</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=244]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>West Lawrence</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>81W</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=245]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Kimball-Homan</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>82</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=246]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Peterson</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>84</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=247]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Central</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>85</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=248]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>North Central</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>85A</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=249]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Narragansett/Ridgeland</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>86</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=250]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>87th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>87</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=251]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Higgins</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>88</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=252]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Harlem</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>90</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=253]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Austin</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>91</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=255]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Foster</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>92</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=256]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>California/Dodge</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>93</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=257]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>South California</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>94</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=258]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>West 95th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>95W</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=260]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>93rd-95th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>95E</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=259]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Lunt</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>96</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=261]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Skokie</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>97</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=262]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Avon Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>X98</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=263]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Jeffery Manor Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>100</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=264]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>West 103rd</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>103</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=265]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>East 103rd</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>106</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=266]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Halsted/95th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>108</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=267]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>111th/King Drive</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>111</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=268]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Pullman Shuttle</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>111A</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=347]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Vincennes/111th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>112</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=269]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Pullman/115th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>115</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=336]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Michigan/119th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>119</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=270]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Ogilvie/Streeterville Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>120</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=271]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Union/Streeterville Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>121</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=272]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Navy Pier</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>124</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=275]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Water Tower Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>125</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=276]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Jackson</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>126</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=277]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Soldier Field Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>128</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=326]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Museum Campus</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>130</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=327]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Goose Island Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>132</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=279]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Stockton/LaSalle Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>134</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=280]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Clarendon/LaSalle Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>135</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=281]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Sheridan/LaSalle Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>136</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=282]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Stockton/Michigan Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>143</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=283]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Inner Drive/Michigan Exp.</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>146</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=286]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Outer Drive Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>147</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=287]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Clarendon/Michigan Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>148</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=288]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Sheridan</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>151</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=289]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>Addison</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>152</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=290]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Devon</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>155</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=291]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>LaSalle</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>156</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=292]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Streeterville/Taylor</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>157</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=293]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>West 65th</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>165</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=294]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>69th-UPS Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>169</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=296]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>U. of Chicago/Midway</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>170</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=297]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>U. of Chicago/Hyde Park</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>171</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=298]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>U. of Chicago/Kenwood</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>172</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=299]]></RouteURL><RouteStatus>Bus Stop Relocation</RouteStatus><RouteStatusColor>06c</RouteStatusColor></RouteInfo><RouteInfo><Route>U. of Chicago Hospitals Express</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>192</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=302]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Central/Ridge</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>201</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=304]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Chicago/Golf</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>205</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=305]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>Evanston Circulator</Route><RouteColorCode>059</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>206</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/riding_cta/busroute.aspx?RouteId=306]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>All Train Routes</Route><RouteColorCode>000000</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Train</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/travel_information/railstatus.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>All Routes</Route><RouteColorCode>000000</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Systemwide</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/travel_information/systemalerts.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo><RouteInfo><Route>All Bus Routes</Route><RouteColorCode>000000</RouteColorCode><RouteTextColor>ffffff</RouteTextColor><ServiceId>Bus</ServiceId><RouteURL><![CDATA[http://www.transitchicago.com/travel_information/bus_status.aspx]]></RouteURL><RouteStatus>Normal Service</RouteStatus><RouteStatusColor>404040</RouteStatusColor></RouteInfo></CTARoutes>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><ctatt><tmst>20150214 13:03:20</tmst><errCd>0</errCd><errNm /><eta><staId>40730</staId><stpId>30141</stpId><staNm>Washington/Wells</staNm><stpDe>Service at Inner Loop platform</stpDe><rn>301</rn><rt>Pink</rt><destSt>30114</destSt><destNm>54th/Cermak</destNm><trDr>5</trDr><prdt>20150214 13:02:57</prdt><arrT>20150214 13:05:57</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /><lat>41.87691</lat><lon>-87.6282</lon><heading>267</heading></eta><eta><staId>40730</staId><stpId>30141</stpId><staNm>Washington/Wells</staNm><stpDe>Service at Inner Loop platform</stpDe><rn>711</rn><rt>Org</rt><destSt>30182</destSt><destNm>Midway</destNm><trDr>5</trDr><prdt>20150214 13:02:43</prdt><arrT>20150214 13:07:43</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /><lat>41.87635</lat><lon>-87.62601</lon><heading>357</heading></eta><eta><staId>40730</staId><stpId>30141</stpId><staNm>Washington/Wells</staNm><stpDe>Service at Inner Loop platform</stpDe><rn>705</rn><rt>Org</rt><destSt>30182</destSt><destNm>Midway</destNm><trDr>5</trDr><prdt>20150214 13:02:55</prdt><arrT>20150214 13:20:55</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /><lat>41.82659</lat><lon>-87.68557</lon><heading>52</heading></eta><eta><staId>40730</staId><stpId>30141</stpId><staNm>Washington/Wells</staNm><stpDe>Service at Inner Loop platform</stpDe><rn>309</rn><rt>Pink</rt><destSt>30114</destSt><destNm>54th/Cermak</destNm><trDr>5</trDr><prdt>20150214 13:02:56</prdt><arrT>20150214 13:20:56</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /><lat>41.88344</lat><lon>-87.63387</lon><heading>358</heading></eta></ctatt>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><ctatt><tmst>20150214 13:12:34</tmst><errCd>0</errCd><errNm /><position><lat>41.87349</lat><lon>-87.80696</lon><heading>95</heading></position><eta><staId>40180</staId><stpId>30034</stpId><staNm>Oak Park</staNm><stpDe>Oak Park to O'Hare</stpDe><rn>217</rn><rt>Blue Line</rt><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><prdt>20150214 13:11:40</prdt><arrT>20150214 13:13:40</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /></eta><eta><staId>40010</staId><stpId>30001</stpId><staNm>Austin</staNm><stpDe>Austin to O'Hare</stpDe><rn>217</rn><rt>Blue Line</rt><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><prdt>20150214 13:11:40</prdt><arrT>20150214 13:14:40</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /></eta><eta><staId>40970</staId><stpId>30187</stpId><staNm>Cicero</staNm><stpDe>Cicero to O'Hare</stpDe><rn>217</rn><rt>Blue Line</rt><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><prdt>20150214 13:11:40</prdt><arrT>20150214 13:19:40</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /></eta><eta><staId>40920</staId><stpId>30179</stpId><staNm>Pulaski</staNm><stpDe>Service toward O'Hare</stpDe><rn>217</rn><rt>Blue Line</rt><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><prdt>20150214 13:11:40</prdt><arrT>20150214 13:22:40</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /></eta><eta><staId>40250</staId><stpId>30048</stpId><staNm>Kedzie-Homan</staNm><stpDe>Service toward O'Hare</stpDe><rn>217</rn><rt>Blue Line</rt><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><prdt>20150214 13:11:40</prdt><arrT>20150214 13:24:40</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /></eta><eta><staId>40220</staId><stpId>30042</stpId><staNm>Western (Forest Park Branch)</staNm><stpDe>Service toward O'Hare</stpDe><rn>217</rn><rt>Blue Line</rt><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><prdt>20150214 13:11:40</prdt><arrT>20150214 13:26:40</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /></eta><eta><staId>40810</staId><stpId>30157</stpId><staNm>Illinois Medical District</staNm><stpDe>Service toward O'Hare</stpDe><rn>217</rn><rt>Blue Line</rt><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><prdt>20150214 13:11:40</prdt><arrT>20150214 13:29:40</arrT><isApp>0</isApp><isSch>0</isSch><isDly>0</isDly><isFlt>0</isFlt><flags /></eta></ctatt>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><ctatt><tmst>20150214 13:55:10</tmst><errCd>0</errCd><errNm /><route name="red"><train><rn>801</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>41320</nextStaId><nextStpId>30255</nextStpId><nextStaNm>Belmont</nextStaNm><prdt>20150214 13:54:55</prdt><arrT>20150214 13:55:55</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.93975</lat><lon>-87.65338</lon><heading>359</heading></train><train><rn>802</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>40660</nextStaId><nextStpId>30127</nextStpId><nextStaNm>Armitage</nextStaNm><prdt>20150214 13:53:08</prdt><arrT>20150214 13:55:08</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.91043</lat><lon>-87.64716</lon><heading>299</heading></train><train><rn>803</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>40800</nextStaId><nextStpId>30155</nextStpId><nextStaNm>Sedgwick</nextStaNm><prdt>20150214 13:54:40</prdt><arrT>20150214 14:00:40</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.89678</lat><lon>-87.63595</lon><heading>307</heading></train><train><rn>804</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>40450</nextStaId><nextStpId>30089</nextStpId><nextStaNm>95th/Dan Ryan</nextStaNm><prdt>20150214 13:54:55</prdt><arrT>20150214 13:55:55</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.73371</lat><lon>-87.62469</lon><heading>177</heading></train><train><rn>805</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>41230</nextStaId><nextStpId>30237</nextStpId><nextStaNm>47th</nextStaNm><prdt>20150214 13:54:51</prdt><arrT>20150214 13:55:51</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.80854</lat><lon>-87.63177</lon><heading>10</heading></train><train><rn>806</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>40910</nextStaId><nextStpId>30177</nextStpId><nextStaNm>63rd</nextStaNm><prdt>20150214 13:54:55</prdt><arrT>20150214 13:55:55</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.76984</lat><lon>-87.62584</lon><heading>358</heading></train><train><rn>807</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>41090</nextStaId><nextStpId>30212</nextStpId><nextStaNm>Monroe</nextStaNm><prdt>20150214 13:54:49</prdt><arrT>20150214 13:55:49</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88481</lat><lon>-87.62781</lon><heading>178</heading></train><train><rn>808</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>40240</nextStaId><nextStpId>30047</nextStpId><nextStaNm>79th</nextStaNm><prdt>20150214 13:54:51</prdt><arrT>20150214 13:55:51</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.75381</lat><lon>-87.62537</lon><heading>174</heading></train><train><rn>809</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>40770</nextStaId><nextStpId>30150</nextStpId><nextStaNm>Lawrence</nextStaNm><prdt>20150214 13:54:56</prdt><arrT>20150214 13:55:56</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.9713</lat><lon>-87.65849</lon><heading>178</heading></train><train><rn>819</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>41220</nextStaId><nextStpId>30234</nextStpId><nextStaNm>Fullerton</nextStaNm><prdt>20150214 13:54:32</prdt><arrT>20150214 13:57:32</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.93739</lat><lon>-87.65332</lon><heading>177</heading></train><train><rn>901</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>41000</nextStaId><nextStpId>30194</nextStpId><nextStaNm>Cermak-Chinatown</nextStaNm><prdt>20150214 13:54:29</prdt><arrT>20150214 13:57:29</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.8674</lat><lon>-87.6274</lon><heading>178</heading></train><train><rn>902</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>41320</nextStaId><nextStpId>30256</nextStpId><nextStaNm>Belmont</nextStaNm><prdt>20150214 13:54:12</prdt><arrT>20150214 13:55:12</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.9452</lat><lon>-87.65353</lon><heading>178</heading></train><train><rn>903</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>40540</nextStaId><nextStpId>30106</nextStpId><nextStaNm>Wilson</nextStaNm><prdt>20150214 13:54:56</prdt><arrT>20150214 13:55:56</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.96665</lat><lon>-87.65835</lon><heading>168</heading></train><train><rn>904</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>41380</nextStaId><nextStpId>30268</nextStpId><nextStaNm>Bryn Mawr</nextStaNm><prdt>20150214 13:54:57</prdt><arrT>20150214 13:55:57</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.99026</lat><lon>-87.65908</lon><heading>177</heading></train><train><rn>906</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>41220</nextStaId><nextStpId>30233</nextStpId><nextStaNm>Fullerton</nextStaNm><prdt>20150214 13:54:38</prdt><arrT>20150214 13:55:38</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.92416</lat><lon>-87.65284</lon><heading>358</heading></train><train><rn>907</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>40380</nextStaId><nextStpId>30075</nextStpId><nextStaNm>Clark/Lake</nextStaNm><prdt>20150214 13:54:29</prdt><arrT>20150214 13:55:29</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88574</lat><lon>-87.62898</lon><heading>269</heading></train><train><rn>909</rn><destSt>30089</destSt><destNm>95th/Dan Ryan</destNm><trDr>5</trDr><nextStaId>41170</nextStaId><nextStpId>30224</nextStpId><nextStaNm>Garfield</nextStaNm><prdt>20150214 13:54:50</prdt><arrT>20150214 13:55:50</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.79655</lat><lon>-87.6312</lon><heading>178</heading></train><train><rn>912</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>40100</nextStaId><nextStpId>30020</nextStpId><nextStaNm>Morse</nextStaNm><prdt>20150214 13:53:47</prdt><arrT>20150214 13:55:47</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>42.00107</lat><lon>-87.66106</lon><heading>309</heading></train><train><rn>913</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>41380</nextStaId><nextStpId>30267</nextStpId><nextStaNm>Bryn Mawr</nextStaNm><prdt>20150214 13:54:44</prdt><arrT>20150214 13:55:44</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.98074</lat><lon>-87.65876</lon><heading>358</heading></train><train><rn>914</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>40640</nextStaId><nextStpId>30123</nextStpId><nextStaNm>Madison/Wabash</nextStaNm><prdt>20150214 13:54:48</prdt><arrT>20150214 13:56:48</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.87452</lat><lon>-87.62655</lon><heading>33</heading></train><train><rn>915</rn><destSt>30173</destSt><destNm>Howard</destNm><trDr>1</trDr><nextStaId>41400</nextStaId><nextStpId>30080</nextStpId><nextStaNm>Roosevelt</nextStaNm><prdt>20150214 13:54:51</prdt><arrT>20150214 13:59:51</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.85321</lat><lon>-87.63097</lon><heading>343</heading></train></route><route name="blue"><train><rn>107</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40230</nextStaId><nextStpId>30044</nextStpId><nextStaNm>Cumberland</nextStaNm><prdt>20150214 13:54:41</prdt><arrT>20150214 13:56:41</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.98232</lat><lon>-87.8089</lon><heading>269</heading></train><train><rn>109</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40250</nextStaId><nextStpId>30048</nextStpId><nextStaNm>Kedzie-Homan</nextStaNm><prdt>20150214 13:54:50</prdt><arrT>20150214 13:55:50</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.87404</lat><lon>-87.71383</lon><heading>89</heading></train><train><rn>110</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40970</nextStaId><nextStpId>30187</nextStpId><nextStaNm>Cicero</nextStaNm><prdt>20150214 13:54:16</prdt><arrT>20150214 13:58:16</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.87079</lat><lon>-87.77521</lon><heading>93</heading></train><train><rn>111</rn><destSt>30077</destSt><destNm>Forest Park</destNm><trDr>5</trDr><nextStaId>40010</nextStaId><nextStpId>30002</nextStpId><nextStaNm>Austin</nextStaNm><prdt>20150214 13:54:54</prdt><arrT>20150214 13:56:54</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.87079</lat><lon>-87.761</lon><heading>245</heading></train><train><rn>112</rn><destSt>30077</destSt><destNm>Forest Park</destNm><trDr>5</trDr><nextStaId>40350</nextStaId><nextStpId>30069</nextStpId><nextStaNm>UIC-Halsted</nextStaNm><prdt>20150214 13:54:04</prdt><arrT>20150214 13:55:04</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.87552</lat><lon>-87.64535</lon><heading>270</heading></train><train><rn>113</rn><destSt>30077</destSt><destNm>Forest Park</destNm><trDr>5</trDr><nextStaId>40380</nextStaId><nextStpId>30374</nextStpId><nextStaNm>Clark/Lake</nextStaNm><prdt>20150214 13:54:58</prdt><arrT>20150214 13:55:58</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88588</lat><lon>-87.64006</lon><heading>126</heading></train><train><rn>114</rn><destSt>30077</destSt><destNm>Forest Park</destNm><trDr>5</trDr><nextStaId>41280</nextStaId><nextStpId>30248</nextStpId><nextStaNm>Jefferson Park</nextStaNm><prdt>20150214 13:54:56</prdt><arrT>20150214 13:56:56</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.97063</lat><lon>-87.76089</lon><heading>113</heading></train><train><rn>115</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40380</nextStaId><nextStpId>30375</nextStpId><nextStaNm>Clark/Lake</nextStaNm><prdt>20150214 13:54:58</prdt><arrT>20150214 13:55:58</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88574</lat><lon>-87.62992</lon><heading>269</heading></train><train><rn>120</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40590</nextStaId><nextStpId>30115</nextStpId><nextStaNm>Damen</nextStaNm><prdt>20150214 13:54:58</prdt><arrT>20150214 13:55:58</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.90416</lat><lon>-87.66786</lon><heading>300</heading></train><train><rn>121</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40790</nextStaId><nextStpId>30153</nextStpId><nextStaNm>Monroe</nextStaNm><prdt>20150214 13:54:36</prdt><arrT>20150214 13:55:36</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.87818</lat><lon>-87.6293</lon><heading>358</heading></train><train><rn>122</rn><destSt>0</destSt><destNm>UIC-Halsted</destNm><trDr>5</trDr><nextStaId>40320</nextStaId><nextStpId>30063</nextStpId><nextStaNm>Division</nextStaNm><prdt>20150214 13:54:55</prdt><arrT>20150214 13:55:55</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.90336</lat><lon>-87.6665</lon><heading>123</heading></train><train><rn>123</rn><destSt>0</destSt><destNm>UIC-Halsted</destNm><trDr>5</trDr><nextStaId>41280</nextStaId><nextStpId>30248</nextStpId><nextStaNm>Jefferson Park</nextStaNm><prdt>20150214 13:54:58</prdt><arrT>20150214 13:57:58</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.98245</lat><lon>-87.79183</lon><heading>89</heading></train><train><rn>127</rn><destSt>30077</destSt><destNm>Forest Park</destNm><trDr>5</trDr><nextStaId>40920</nextStaId><nextStpId>30180</nextStpId><nextStaNm>Pulaski</nextStaNm><prdt>20150214 13:54:53</prdt><arrT>20150214 13:56:53</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.87438</lat><lon>-87.70631</lon><heading>261</heading></train><train><rn>208</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>41330</nextStaId><nextStpId>30259</nextStpId><nextStaNm>Montrose</nextStaNm><prdt>20150214 13:54:46</prdt><arrT>20150214 13:56:46</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.95296</lat><lon>-87.72921</lon><heading>299</heading></train><train><rn>209</rn><destSt>0</destSt><destNm>UIC-Halsted</destNm><trDr>5</trDr><nextStaId>40370</nextStaId><nextStpId>30073</nextStpId><nextStaNm>Washington</nextStaNm><prdt>20150214 13:54:50</prdt><arrT>20150214 13:55:50</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88549</lat><lon>-87.62947</lon><heading>176</heading></train><train><rn>210</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40430</nextStaId><nextStpId>30084</nextStpId><nextStaNm>Clinton</nextStaNm><prdt>20150214 13:53:15</prdt><arrT>20150214 13:55:15</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.87552</lat><lon>-87.64841</lon><heading>89</heading></train><train><rn>212</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40550</nextStaId><nextStpId>30107</nextStpId><nextStaNm>Irving Park</nextStaNm><prdt>20150214 13:54:32</prdt><arrT>20150214 13:56:32</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.94735</lat><lon>-87.71909</lon><heading>310</heading></train><train><rn>213</rn><destSt>30077</destSt><destNm>Forest Park</destNm><trDr>5</trDr><nextStaId>40670</nextStaId><nextStpId>30130</nextStpId><nextStaNm>Western (O'Hare branch)</nextStaNm><prdt>20150214 13:54:22</prdt><arrT>20150214 13:56:22</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.91973</lat><lon>-87.69322</lon><heading>121</heading></train><train><rn>214</rn><destSt>0</destSt><destNm>UIC-Halsted</destNm><trDr>5</trDr><nextStaId>41240</nextStaId><nextStpId>30240</nextStpId><nextStaNm>Addison</nextStaNm><prdt>20150214 13:54:54</prdt><arrT>20150214 13:55:54</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.95257</lat><lon>-87.72852</lon><heading>119</heading></train><train><rn>215</rn><destSt>30077</destSt><destNm>Forest Park</destNm><trDr>5</trDr><nextStaId>40820</nextStaId><nextStpId>30160</nextStpId><nextStaNm>Rosemont</nextStaNm><prdt>20150214 13:54:59</prdt><arrT>20150214 13:56:59</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.97816</lat><lon>-87.88568</lon><heading>66</heading></train><train><rn>216</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>40230</nextStaId><nextStpId>30044</nextStpId><nextStaNm>Cumberland</nextStaNm><prdt>20150214 13:54:55</prdt><arrT>20150214 13:55:55</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.98445</lat><lon>-87.82712</lon><heading>272</heading></train><train><rn>217</rn><destSt>30171</destSt><destNm>O'Hare</destNm><trDr>1</trDr><nextStaId>41020</nextStaId><nextStpId>30197</nextStpId><nextStaNm>Logan Square</nextStaNm><prdt>20150214 13:54:44</prdt><arrT>20150214 13:55:44</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.92834</lat><lon>-87.7064</lon><heading>304</heading></train></route><route name="brn"><train><rn>405</rn><destSt>30249</destSt><destNm>Kimball</destNm><trDr>1</trDr><nextStaId>40870</nextStaId><nextStpId>30167</nextStpId><nextStaNm>Francisco</nextStaNm><prdt>20150214 13:54:54</prdt><arrT>20150214 13:55:54</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.96621</lat><lon>-87.6941</lon><heading>269</heading></train><train><rn>406</rn><destSt>30249</destSt><destNm>Kimball</destNm><trDr>1</trDr><nextStaId>40800</nextStaId><nextStpId>30155</nextStpId><nextStaNm>Sedgwick</nextStaNm><prdt>20150214 13:54:41</prdt><arrT>20150214 13:56:41</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.90563</lat><lon>-87.63712</lon><heading>357</heading></train><train><rn>407</rn><destSt>30249</destSt><destNm>Kimball</destNm><trDr>1</trDr><nextStaId>40730</nextStaId><nextStpId>30142</nextStpId><nextStaNm>Washington/Wells</nextStaNm><prdt>20150214 13:54:59</prdt><arrT>20150214 13:56:59</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.8903</lat><lon>-87.63548</lon><heading>167</heading></train><train><rn>408</rn><destSt>30249</destSt><destNm>Kimball</destNm><trDr>1</trDr><nextStaId>41220</nextStaId><nextStpId>30235</nextStpId><nextStaNm>Fullerton</nextStaNm><prdt>20150214 13:53:09</prdt><arrT>20150214 13:54:09</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.92422</lat><lon>-87.65284</lon><heading>358</heading></train><train><rn>409</rn><destSt>30249</destSt><destNm>Kimball</destNm><trDr>1</trDr><nextStaId>40710</nextStaId><nextStpId>30137</nextStpId><nextStaNm>Chicago</nextStaNm><prdt>20150214 13:54:15</prdt><arrT>20150214 13:56:15</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.88897</lat><lon>-87.63397</lon><heading>357</heading></train><train><rn>410</rn><destSt>30249</destSt><destNm>Kimball</destNm><trDr>1</trDr><nextStaId>40680</nextStaId><nextStpId>30131</nextStpId><nextStaNm>Adams/Wabash</nextStaNm><prdt>20150214 13:53:42</prdt><arrT>20150214 13:55:42</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.87694</lat><lon>-87.62738</lon><heading>88</heading></train><train><rn>411</rn><destSt>30249</destSt><destNm>Loop</destNm><trDr>5</trDr><nextStaId>40800</nextStaId><nextStpId>30156</nextStpId><nextStaNm>Sedgwick</nextStaNm><prdt>20150214 13:54:35</prdt><arrT>20150214 13:56:35</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.91033</lat><lon>-87.64669</lon><heading>92</heading></train><train><rn>412</rn><destSt>30249</destSt><destNm>Loop</destNm><trDr>5</trDr><nextStaId>41460</nextStaId><nextStpId>30282</nextStpId><nextStaNm>Irving Park</nextStaNm><prdt>20150214 13:54:42</prdt><arrT>20150214 13:55:42</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.96175</lat><lon>-87.67517</lon><heading>179</heading></train><train><rn>415</rn><destSt>30249</destSt><destNm>Kimball</destNm><trDr>1</trDr><nextStaId>41460</nextStaId><nextStpId>30281</nextStpId><nextStaNm>Irving Park</nextStaNm><prdt>20150214 13:54:36</prdt><arrT>20150214 13:56:36</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.94702</lat><lon>-87.67474</lon><heading>357</heading></train><train><rn>417</rn><destSt>30249</destSt><destNm>Loop</destNm><trDr>5</trDr><nextStaId>41220</nextStaId><nextStpId>30236</nextStpId><nextStaNm>Fullerton</nextStaNm><prdt>20150214 13:54:47</prdt><arrT>20150214 13:56:47</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.93251</lat><lon>-87.65312</lon><heading>176</heading></train><train><rn>418</rn><destSt>30249</destSt><destNm>Loop</destNm><trDr>5</trDr><nextStaId>40870</nextStaId><nextStpId>30168</nextStpId><nextStaNm>Francisco</nextStaNm><prdt>20150214 13:54:35</prdt><arrT>20150214 13:56:35</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.96609</lat><lon>-87.70882</lon><heading>89</heading></train></route><route name="pink"><train><rn>302</rn><destSt>30114</destSt><destNm>54th/Cermak</destNm><trDr>1</trDr><nextStaId>41160</nextStaId><nextStpId>30222</nextStpId><nextStaNm>Clinton</nextStaNm><prdt>20150214 13:54:39</prdt><arrT>20150214 13:57:39</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.88344</lat><lon>-87.63387</lon><heading>358</heading></train><train><rn>303</rn><destSt>30114</destSt><destNm>Loop</destNm><trDr>1</trDr><nextStaId>41030</nextStaId><nextStpId>30199</nextStpId><nextStaNm>Polk</nextStaNm><prdt>20150214 13:54:56</prdt><arrT>20150214 13:55:56</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.86004</lat><lon>-87.66921</lon><heading>358</heading></train><train><rn>304</rn><destSt>30114</destSt><destNm>54th/Cermak</destNm><trDr>5</trDr><nextStaId>40260</nextStaId><nextStpId>30050</nextStpId><nextStaNm>State/Lake</nextStaNm><prdt>20150214 13:54:30</prdt><arrT>20150214 13:55:30</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88574</lat><lon>-87.63089</lon><heading>89</heading></train><train><rn>305</rn><destSt>30114</destSt><destNm>54th/Cermak</destNm><trDr>5</trDr><nextStaId>40600</nextStaId><nextStpId>30118</nextStpId><nextStaNm>Kostner</nextStaNm><prdt>20150214 13:54:58</prdt><arrT>20150214 13:56:58</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.85386</lat><lon>-87.72431</lon><heading>269</heading></train><train><rn>306</rn><destSt>30114</destSt><destNm>54th/Cermak</destNm><trDr>5</trDr><nextStaId>40210</nextStaId><nextStpId>30041</nextStpId><nextStaNm>Damen</nextStaNm><prdt>20150214 13:54:56</prdt><arrT>20150214 13:55:56</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.85728</lat><lon>-87.66914</lon><heading>178</heading></train><train><rn>307</rn><destSt>30114</destSt><destNm>Loop</destNm><trDr>1</trDr><nextStaId>40600</nextStaId><nextStpId>30117</nextStpId><nextStaNm>Kostner</nextStaNm><prdt>20150214 13:54:34</prdt><arrT>20150214 13:56:34</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.85192</lat><lon>-87.74534</lon><heading>89</heading></train></route><route name="org"><train><rn>706</rn><destSt>30182</destSt><destNm>Loop</destNm><trDr>1</trDr><nextStaId>40120</nextStaId><nextStpId>30022</nextStpId><nextStaNm>35th/Archer</nextStaNm><prdt>20150214 13:54:39</prdt><arrT>20150214 13:57:39</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.80617</lat><lon>-87.67969</lon><heading>19</heading></train><train><rn>707</rn><destSt>30182</destSt><destNm>Midway</destNm><trDr>5</trDr><nextStaId>41400</nextStaId><nextStpId>30081</nextStpId><nextStaNm>Roosevelt</nextStaNm><prdt>20150214 13:54:40</prdt><arrT>20150214 13:55:40</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.86797</lat><lon>-87.62662</lon><heading>177</heading></train><train><rn>708</rn><destSt>30182</destSt><destNm>Midway</destNm><trDr>5</trDr><nextStaId>40120</nextStaId><nextStpId>30023</nextStpId><nextStaNm>35th/Archer</nextStaNm><prdt>20150214 13:54:44</prdt><arrT>20150214 13:56:44</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.83933</lat><lon>-87.66536</lon><heading>243</heading></train><train><rn>709</rn><destSt>30182</destSt><destNm>Midway</destNm><trDr>5</trDr><nextStaId>40380</nextStaId><nextStpId>30074</nextStpId><nextStaNm>Clark/Lake</nextStaNm><prdt>20150214 13:54:50</prdt><arrT>20150214 13:55:50</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88573</lat><lon>-87.63367</lon><heading>89</heading></train><train><rn>710</rn><destSt>30182</destSt><destNm>Loop</destNm><trDr>1</trDr><nextStaId>40960</nextStaId><nextStpId>30185</nextStpId><nextStaNm>Pulaski</nextStaNm><prdt>20150214 13:54:46</prdt><arrT>20150214 13:55:46</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.79332</lat><lon>-87.73801</lon><heading>28</heading></train><train><rn>712</rn><destSt>30182</destSt><destNm>Midway</destNm><trDr>5</trDr><nextStaId>40310</nextStaId><nextStpId>30061</nextStpId><nextStaNm>Western</nextStaNm><prdt>20150214 13:54:39</prdt><arrT>20150214 13:55:39</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.80757</lat><lon>-87.67955</lon><heading>178</heading></train><train><rn>713</rn><destSt>30182</destSt><destNm>Midway</destNm><trDr>5</trDr><nextStaId>40160</nextStaId><nextStpId>30031</nextStpId><nextStaNm>LaSalle/Van Buren</nextStaNm><prdt>20150214 13:54:42</prdt><arrT>20150214 13:55:42</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.87691</lat><lon>-87.6282</lon><heading>267</heading></train><train><rn>714</rn><destSt>30182</destSt><destNm>Loop</destNm><trDr>1</trDr><nextStaId>41400</nextStaId><nextStpId>30080</nextStpId><nextStaNm>Roosevelt</nextStaNm><prdt>20150214 13:54:53</prdt><arrT>20150214 13:57:53</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.84941</lat><lon>-87.64158</lon><heading>64</heading></train></route><route name="g"><train><rn>004</rn><destSt>30004</destSt><destNm>Harlem/Lake</destNm><trDr>1</trDr><nextStaId>40260</nextStaId><nextStpId>30051</nextStpId><nextStaNm>State/Lake</nextStaNm><prdt>20150214 13:54:43</prdt><arrT>20150214 13:55:43</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88443</lat><lon>-87.62622</lon><heading>358</heading></train><train><rn>007</rn><destSt>30139</destSt><destNm>Cottage Grove</destNm><trDr>5</trDr><nextStaId>41690</nextStaId><nextStpId>30382</nextStpId><nextStaNm>Cermak-McCormick Place</nextStaNm><prdt>20150214 13:54:54</prdt><arrT>20150214 13:56:54</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.86275</lat><lon>-87.62651</lon><heading>179</heading></train><train><rn>008</rn><destSt>30139</destSt><destNm>Cottage Grove</destNm><trDr>5</trDr><nextStaId>41360</nextStaId><nextStpId>30265</nextStpId><nextStaNm>California</nextStaNm><prdt>20150214 13:54:41</prdt><arrT>20150214 13:55:41</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88432</lat><lon>-87.70615</lon><heading>93</heading></train><train><rn>009</rn><destSt>30004</destSt><destNm>Harlem/Lake</destNm><trDr>1</trDr><nextStaId>41400</nextStaId><nextStpId>30080</nextStpId><nextStaNm>Roosevelt</nextStaNm><prdt>20150214 13:54:45</prdt><arrT>20150214 13:57:45</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.86744</lat><lon>-87.62659</lon><heading>357</heading></train><train><rn>011</rn><destSt>30004</destSt><destNm>Harlem/Lake</destNm><trDr>1</trDr><nextStaId>40130</nextStaId><nextStpId>30024</nextStpId><nextStaNm>51st</nextStaNm><prdt>20150214 13:54:50</prdt><arrT>20150214 13:55:50</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.8</lat><lon>-87.61846</lon><heading>358</heading></train><train><rn>012</rn><destSt>30004</destSt><destNm>Harlem/Lake</destNm><trDr>1</trDr><nextStaId>40940</nextStaId><nextStpId>30183</nextStpId><nextStaNm>Halsted</nextStaNm><prdt>20150214 13:54:10</prdt><arrT>20150214 13:56:10</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.77908</lat><lon>-87.65681</lon><heading>89</heading></train><train><rn>604</rn><destSt>30057</destSt><destNm>Ashland/63rd</destNm><trDr>5</trDr><nextStaId>40300</nextStaId><nextStpId>30059</nextStpId><nextStaNm>Indiana</nextStaNm><prdt>20150214 13:54:55</prdt><arrT>20150214 13:56:55</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.82633</lat><lon>-87.62575</lon><heading>178</heading></train><train><rn>605</rn><destSt>30057</destSt><destNm>Ashland/63rd</destNm><trDr>5</trDr><nextStaId>40200</nextStaId><nextStpId>30039</nextStpId><nextStaNm>Randolph/Wabash</nextStaNm><prdt>20150214 13:54:46</prdt><arrT>20150214 13:55:46</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88443</lat><lon>-87.62622</lon><heading>178</heading></train><train><rn>606</rn><destSt>30004</destSt><destNm>Harlem/Lake</destNm><trDr>1</trDr><nextStaId>41360</nextStaId><nextStpId>30266</nextStpId><nextStaNm>California</nextStaNm><prdt>20150214 13:54:47</prdt><arrT>20150214 13:57:47</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.88531</lat><lon>-87.66697</lon><heading>268</heading></train><train><rn>608</rn><destSt>30057</destSt><destNm>Ashland/63rd</destNm><trDr>5</trDr><nextStaId>40280</nextStaId><nextStpId>30054</nextStpId><nextStaNm>Central</nextStaNm><prdt>20150214 13:54:04</prdt><arrT>20150214 13:55:04</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>41.88729</lat><lon>-87.77413</lon><heading>89</heading></train><train><rn>610</rn><destSt>30004</destSt><destNm>Harlem/Lake</destNm><trDr>1</trDr><nextStaId>40480</nextStaId><nextStpId>30009</nextStpId><nextStaNm>Cicero</nextStaNm><prdt>20150214 13:54:03</prdt><arrT>20150214 13:56:03</arrT><isApp>0</isApp><isDly>0</isDly><flags /><lat>41.88541</lat><lon>-87.7254</lon><heading>273</heading></train></route><route name="p"><train><rn>505</rn><destSt>30176</destSt><destNm>Howard</destNm><trDr>5</trDr><nextStaId>40900</nextStaId><nextStpId>30176</nextStpId><nextStaNm>Howard</nextStaNm><prdt>20150214 13:54:26</prdt><arrT>20150214 13:55:26</arrT><isApp>1</isApp><isDly>0</isDly><flags /><lat>42.02761</lat><lon>-87.67833</lon><heading>170</heading></train></route><route name="y" /></ctatt>
|
@@ -0,0 +1,70 @@
|
|
1
|
+
base_path = File.expand_path(File.dirname(__FILE__))
|
2
|
+
data_path = File.expand_path(File.join(base_path, 'stubs'))
|
3
|
+
|
4
|
+
require File.join(base_path, "..", "lib", "cta_redux")
|
5
|
+
|
6
|
+
RSpec.describe CTA::TrainTracker do
|
7
|
+
stubs = Faraday::Adapter::Test::Stubs.new do |stub|
|
8
|
+
stub.get('/api/1.0/ttarrivals.aspx?key=&stpid=30141') { |env| [200, {}, File.read(File.join(data_path, 'ttarivals_stpid30141_response.xml'))] }
|
9
|
+
stub.get('/api/1.0/ttfollow.aspx?key=&runnumber=217') { |env| [200, {}, File.read(File.join(data_path, 'ttfollow_run217_response.xml'))] }
|
10
|
+
stub.get('/api/1.0/ttpositions.aspx?key=&rt=red,blue,g,y,p,org,brn,pink') { |env| [200, {}, File.read(File.join(data_path, 'ttpositions_response.xml'))] }
|
11
|
+
end
|
12
|
+
|
13
|
+
CTA::TrainTracker.key = ''
|
14
|
+
CTA::TrainTracker.connection.instance_variable_get(:@builder).delete(Faraday::Adapter::NetHttp)
|
15
|
+
CTA::TrainTracker.connection.adapter :test, stubs
|
16
|
+
|
17
|
+
describe "arrivals!" do
|
18
|
+
it "finds arrivals for washington/wells" do
|
19
|
+
response = CTA::TrainTracker.arrivals!(:station => 30141)
|
20
|
+
|
21
|
+
expect(response).to be_instance_of(CTA::TrainTracker::ArrivalsResponse)
|
22
|
+
expect(response.predictions.size).to eq(4)
|
23
|
+
expect(response.routes.size).to eq(2)
|
24
|
+
expect(response.trains.size).to eq(4)
|
25
|
+
|
26
|
+
expect(response.predictions.first.run).to eq("301")
|
27
|
+
expect(response.predictions.first.destination.stop_name).to eq("54th/Cermak")
|
28
|
+
expect(response.predictions.first.minutes).to eq(3)
|
29
|
+
expect(response.predictions.first.route.route_id).to eq("Pink")
|
30
|
+
|
31
|
+
expect(response.routes.last.route_id).to eq("Org")
|
32
|
+
|
33
|
+
expect(response.trains.last.route.route_type).to eq(1)
|
34
|
+
expect(response.trains.last.schd_trip_id).to eq("R705")
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
describe "follow!" do
|
39
|
+
it "finds all predictions for blue line run 217" do
|
40
|
+
response = CTA::TrainTracker.follow!(:run => 217)
|
41
|
+
|
42
|
+
expect(response).to be_instance_of(CTA::TrainTracker::FollowResponse)
|
43
|
+
expect(response.train).to be_instance_of(CTA::Train)
|
44
|
+
expect(response.train.route_id).to eq("Blue")
|
45
|
+
expect(response.train.route.route_id).to eq("Blue")
|
46
|
+
expect(response.train.predictions).to eq(response.predictions)
|
47
|
+
expect(response.predictions.first.direction).to eq("O'Hare-bound")
|
48
|
+
expect(response.predictions.first.destination.stop_name).to eq("O'Hare")
|
49
|
+
expect(response.predictions.first.approaching).to eq(false)
|
50
|
+
expect(response.predictions.first.minutes).to eq(2)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "locations!" do
|
55
|
+
it "finds all trains on the system" do
|
56
|
+
response = CTA::TrainTracker.positions!(:routes => [:red, :blue, :green, :yellow, :purple, :orange, :brown, :pink])
|
57
|
+
|
58
|
+
expect(response).to be_instance_of(CTA::TrainTracker::PositionsResponse)
|
59
|
+
expect(response.predictions.size).to eq(80)
|
60
|
+
expect(response.routes.size).to eq(8)
|
61
|
+
expect(response.trains.size).to eq(80)
|
62
|
+
|
63
|
+
expect(response.trains.last.route.route_id).to eq("Y")
|
64
|
+
expect(response.predictions.first.lon).to eq(-87.65338)
|
65
|
+
expect(response.predictions.first.route.route_id).to eq("Red")
|
66
|
+
expect(response.predictions.first.destination.stop_id).to eq(30173)
|
67
|
+
expect(response.predictions.first.trip.service_id).to eq(104701)
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|