Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / archives / week_2006_04_09.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
4 <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta name="generator" content="Movable Type 5.2.3" />
7
8    <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles-site.css" type="text/css" />
9    <link rel="alternate" type="application/atom+xml" title="Atom" href="http://defaria.com/blogs/Status/atom.xml" />
10    <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://defaria.com/blogs/Status/index.xml"$>" />
11
12    <title>Status for Andrew DeFaria: April  9, 2006 - April 15, 2006 Archives</title>
13
14    <link rel="start" href="http://defaria.com/blogs/Status/" title="Home" />
15    <link rel="prev" href="http://defaria.com/blogs/Status/archives/week_2006_04_02.html" title="April  2, 2006 - April  8, 2006" />
16    <link rel="next" href="http://defaria.com/blogs/Status/archives/week_2006_04_16.html" title="April 16, 2006 - April 22, 2006" />
17 </head>
18 <body class="layout-one-column">
19    <div id="container">
20       <div id="container-inner" class="pkg">
21
22          <div id="banner">
23             <div id="banner-inner" class="pkg">
24                <h1 id="banner-header"><a href="http://defaria.com/blogs/Status/" accesskey="1">Status for Andrew DeFaria</a></h1>
25                <h2 id="banner-description">Searchable status reports and work log</h2>
26             </div>
27          </div>
28
29          <div id="pagebody">
30             <div id="pagebody-inner" class="pkg">
31                <div id="alpha">
32                   <div id="alpha-inner" class="pkg">
33                      
34                      <p class="content-nav">
35                         <a href="http://defaria.com/blogs/Status/archives/week_2006_04_02.html">&laquo; April  2, 2006 - April  8, 2006</a> |
36                         <a href="http://defaria.com/blogs/Status/">Main</a>
37                         | <a href="http://defaria.com/blogs/Status/archives/week_2006_04_16.html">April 16, 2006 - April 22, 2006 &raquo;</a>
38                      </p>
39                      
40                      
41                      
42
43                      <h2 class="date-header">April 15, 2006</h2>
44                      <a id="a000541"></a>
45                      <div class="entry" id="entry-541">
46                         <h3 class="entry-header">Production User Database Migrated</h3>
47                         <div class="entry-content">
48                            <div class="entry-body">
49                               <ul>
50   <li>Managed to migrate the production user database</li>
51
52   <li>Clearquest desktop users need to upgrade their software. Meantime they can use the web interface</li>
53
54   <li>Verified cqd and triggers work</li>
55
56   <li>Documented how to switch a desktop to the new server</li>
57
58   <li>Documented how to build on the new server</li>
59 </ul>
60
61 <p><b>Time Spent:</b> 4 Hours</p>
62                               
63                               <h2>Production User Database Migrated!</h2>
64
65 <p>More progress in this area.</p>
66
67 <p>I decided to try to use the Sybase Central tool to see if I could
68 verify or otherwise fix this potentially bad database. I also looked at
69 running Chkdisk as the eventlog was reporting some bad sectors on the
70 disk. Unfortunately chkdisk cannot fully check the disk since the
71 database is on the C drive and the C drive is currently busy. Normally
72 you just set a flag and chkdisk will run after next boot. But such a
73 chkdisk will take a long time on a big disk.</p>
74
75 <p>Meantime in Sybase Central I decide to do fresh backups of the
76 databases which seem to go OK. These backup databases look no different
77 really than the regular databases so I run validate on the backup
78 database. Hmmm.... Doesn't seem to have any errors. So I tried the
79 installutil copyuserdb to copy the <b>backup</b> database <b>as if is
80 was the real production database</b> to the new server. Hmmm.... That
81 worked!</p>
82
83 <p>Next I had to go into Clearquest Maintenance Tool and select Schema
84 Respository: Upgrade: Selected Connection and upgrade the production
85 user database. That worked!</p>
86
87 <p>I checked the Clearquest web (<a href="http://sons-sc-cc/cqweb/login">http://sons-sc-cc/cqweb/login</a>) and the
88 new database is indeed there and working!</p>
89
90 <h2>Clearquest Desktop Clients Need to Upgrade</h2>
91
92 <p><font color="#ff0000"><b>Problem:</b> Clearquest 2002.05.00 desktop
93 clients cannot access this new database!</font></p>
94
95 <p>I tried creating a connection profile to this new database and then
96 importing it on the old server running 2002.05.00.This did not work!
97 Later I read in the Rational Suite Migration Guide:</p>
98
99 <blockquote>Your network environement can contain misxed versions of
100 ClearCase and ClearQuest clients (where some clients are at v2003 and
101 some clients are at ealier versions) if these products are in a
102 standalone environment, that is:</p>
103 <p></p>
104 ....
105 <p></p>
106
107 <p>If your vendor database is SQL Anywhere, you do not plan to upgrade to
108 SQL Anywhere 8.0 until all ClearQuest clients and databases have been
109 upgraded to version 2003.</p>
110 </blockquote>
111
112 <p>So we'll have to upgrade desktop clients to 2003.06.00! Luckily people
113 can use the Clearquest Web Client...</p>
114
115 <h2>Clearquest Daemon Works with Minor Tweaks</h2>
116
117 <p>Checked that cqd and cqc work with the new server. All that need to be
118 changed is to change the default server from sons-clearcase -&gt;
119 sons-sc-cc in cqc.pm.</p>
120
121 <h2>Checked and Triggers Work in New Environment</h2>
122
123 <p>I was able to check to see that the triggers function in the new
124 environment.</p>
125
126 <h2>Switching Your Desktop to the New Server</h2>
127
128 <p>Use the following steps switch your desktop to the new server:</p>
129
130 <ol>
131   <li>Stop all Clearcase activity. Close any Clearcase Explorer windows
132 and any shells in Clearcase views.</li>
133   <li>In a Cygwin shell type ct umount -all to unmount all vobs.</li>
134   <li>Go to Control Panel: Clearcase</li>
135   <li>Click on the Services tab then Stop Clearcase</li>
136   <li>Click OK to the dialog saying Clearcase has stopped</li>
137   <li>Click OK to <b>close</b> the Clearcase Control Panel Applet</li>
138   <li>Start the Clearcase Control Panel <b>again</b></li>
139   <li>On the registry tag, change the registry server to sons-sc-cc</li>
140   <li>Click OK to close the Clearcase Control Panel <b>again</b></li>
141   <li>On the Registry tab click the drop down arrow for Windows Region.
142 You should see the new SC region. Select it.</li>
143   <li>Click on <b>Apply</b></li>
144   <li>Click on the Services Startup tab and then Start Clearcase</li>
145   <li>Close the Clearcase Control Panel</li>
146   <li>Start a Cygwin shell and type ct hostinfo -l. You should see
147 something like:<br>
148     <br>
149 <div class=code><pre>
150 <font color="blue"><b>[ccadmin] adefaria:</b></font><u>ct hostinfo -l</u>
151 Client: adefaria
152   Product: ClearCase 2002.05.00+
153   Operating system: Windows NT 5.1 (build 2600) Service Pack 2
154   Hardware type: Pentium
155   Registry host: <b>sons-sc-cc</b>
156   Registry region: <b>SC</b>
157   License host: sons-clearcase
158 </pre></div>
159
160     <p>As you can see we are now pointing to the sons-sc-cc registry
161 host and the SC region. Sons-clearcase is still the license server at
162 this time. Type ct lsview and you should see:</p>
163
164 <div class="code"><pre>
165 <font color="blue"><b>[ccadmin] adefaria:</b></font><u>ct lsview</u>
166   official             \\sons-sc-cc\Views\SALIRA\ccadmin\official.vws
167   3.1.ccadmin     \\sons-sc-cc\Views\SALIRA\ccadmin\3.1.ccadmin.vws
168   szhu_view_2     \\sons-sc-cc\Views\SALIRA\szhu\szhu_view_2.vws
169     </pre></div>
170
171     <p>A noticeably smaller list of views that are on sons-sc-cc in
172 the SC region</li>
173 </ol>
174
175 <p>Follow a similar set of steps to switch back to the old registry server
176 (sons-clearcase) and region (US). No reboots required (provided you
177 properly stop Clearcase and do things like get out of views and umount
178 vobs).</p>
179
180 <h2>Attempting an Official Build on sons-sc-cc</h2>
181
182 <p>This procedure can be done either by following the procedure above to
183 switch your desktop to the new server or simply use rsh/telnet to log
184 into sons-sc-cc. Once there:</p>
185
186 <ol>
187   <li>Make user that the 3.1.ccadmin view is started<br>
188 <div class=code><pre>
189 $ ct startview 3.1.ccadmin
190 </pre></div></li>
191   <li>Make sure the salira vob is mounted:<br>
192     <br>
193 <div class=code><pre>
194 $ ct mount \\salira
195 </pre></div></li>
196   <li>Change directory to the build area:<br>
197     <br>
198 <div class=code><pre>
199 $ cd /dview/3.1.ccadmin/salira/neopon/build
200 </pre></div></li>
201   <li>Type make:<br>
202 <div class=code><pre>
203 $ make
204 </pre></div></li>
205 </ol>
206
207                               
208                               <p class="entry-footer">
209                                  <span class="post-footers">Posted by  at  6:55 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000541.html">Permalink</a>
210                                  
211                                  
212                               </p>
213                            </div>
214                         </div>
215                      </div>
216                      
217                      
218
219                      <h2 class="date-header">April 12, 2006</h2>
220                      <a id="a000540"></a>
221                      <div class="entry" id="entry-540">
222                         <h3 class="entry-header">More fun with SQL ANYWHERE</h3>
223                         <div class="entry-content">
224                            <div class="entry-body">
225                               <h3>Attempting to transfer databases using MS Access</h3>
226
227 <p>OK, trying this methodology:</p>
228
229 <ul>
230   <li>Used installutil copyschemarepo command to copy schema.db -&gt;
231 schema.mdb</li>
232   <li>Moved schema.mdb to new server</li>
233   <li>Used installutil copyuserdb command to copy salira_test.db -&gt;
234 test.db.</li>
235   <li>Moved test.db to new server</li>
236   <li>Tried several times to use installutil command to copy
237 salira_bugs.db (the production database) -&gt; bugs2.db. System aborted
238 several times. Not sure if this is due to bad disk blocks or not. This
239 is a major problem as this is the data we care about.</li>
240 </ul>
241
242 <p>Back on the new server:</p>
243
244 <ul>
245   <li>If I do Connection: New and point to the schema.mdb file it wants
246 to overwrite it! Instead I did File: Import Profile of a profile of the
247 old databases. Of course these say SQL_ANYWHERE. I change this to
248 MS_ACCESS and point to the schema.mdb file and this seems to work.</li>
249   <li>Attempt to do Schema Repository: Move. In doing so I set the
250 Physical Database Name by browsing to the folder via the ellipsis
251 button. This leaves me with D:\Clearquest\schema.db. Clicking on Finish
252 give ms:<br>
253     <blockquote>The filename you have specified is not a Share. If
254 other users will need access to this database, you should browse
255 through "Network Neighborhood" to place is in a share. Continue with
256 this name?<br>
257     </blockquote>
258 I select No because I do want other users to be able to access this
259 database. Next I change the D:\Clearquest\salira.db -&gt;
260 \\sons-sc-cc\Clearquest\schema.db and click Finish. At this point I get
261 a error dialog stating that it was "Unable to connect to the database
262 server". After much scratching of the head I realize that I should use
263 D:\Clearquest\schema.db, ignore the warning, then go back in and set
264 the Physical Database Name to \\sons-sc-cc\Clearquest\schema.db.<br>
265     <br>
266 Oh, a side issue: After failing using a Physical Database Name of
267 \\sons-sc-cc\Clearquest\schema.db the Rational Clearquest Maintenance
268 Tool still creates a schema.db file. If you go Back and correct the
269 Physical Database Name to a local path and click Finish you'll get a
270 database I/O error. Turns out you have to remove this schema.db file
271 first. These two (what else could I call them but) BUGS caused me to
272 lose many hours of sleep.<br>
273     <br>
274 Managed to move the schema.mdb -&gt; schema.db.</li>
275   <li>Switching to the Clearquest Designer now to Database: Update User
276 Database Properties. As I only have the test.mdb file to convert I
277 change the user database properties for the test database.</li>
278   <li>Now I select Database: Move User Database to move the test user
279 database to SQL_ANYWHERE</li>
280 </ul>
281
282 <p>At this point I'd like to run Clearquest Designer and do Test Work so I
283 can at at least verify that I can access the converted to SQL_ANYWHERE
284 test.db. Unfortunately there is a checked out version of the schema in
285 the schema database that I copied over and I'm not the owner of that
286 checked out schema. And I can't login as that user.</p>
287
288 <p>By chance I tried Schema Repository: Upgrade: Selected connection in
289 the Clearquest Maintenance Tool and in stepping through those dialog
290 boxes it say "The schema repository that you want to upgrade has
291 checked-out schemas. If you continue the upgrade process, the checked
292 out schema versions cannot be upgraded and will be deleted from the
293 system". I continue onward and manage to "upgrade" the schema and test
294 database. I proceed into Clearquest Designer and manage to Test Work
295 and viola! I got it up. I am nothing if not tenacious!</p>
296
297 <p><b>Total Time:</b> 2 hours</p>
298                               
299                               <p class="entry-footer">
300                                  <span class="post-footers">Posted by  at 10:50 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000540.html">Permalink</a>
301                                  
302                                  
303                               </p>
304                            </div>
305                         </div>
306                      </div>
307                      
308                      
309
310                      <h2 class="date-header">April 11, 2006</h2>
311                      <a id="a000539"></a>
312                      <div class="entry" id="entry-539">
313                         <h3 class="entry-header">Build bugs, Test suite still not runing nightly</h3>
314                         <div class="entry-content">
315                            <div class="entry-body">
316                               <ul>
317   <li>Fixed bug with saving test.log where I was attempting to save it before I returned from the subroutine. We now save the test.log even if test suite is successful. This is good because continuous building reuses the view area thus destroying any test.logs created before.</li>
318
319   <li>Fixed bug in build::CheckForShutdown where we called LogEvent without a $log parameter. This caused CheckForShutdown to abort the build while in CIT daemon mode and thus we didn't see the error. It also left the shutdown file thus subsequent starts merely shutdown (actually aborted) until one manually removed the shutdown file. Bad bug! Bad, bad!</li>
320
321   <li>Looking into why the test suite works when called at the Build.pl level but fails when called from the streamBuild.pl level.</li>
322 </ul>
323                               
324                               <p class="entry-footer">
325                                  <span class="post-footers">Posted by  at 12:15 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000539.html">Permalink</a>
326                                  
327                                  
328                               </p>
329                            </div>
330                         </div>
331                      </div>
332                      
333                      
334
335                      
336                      <a id="a000538"></a>
337                      <div class="entry" id="entry-538">
338                         <h3 class="entry-header">More SQL Anywhere Wrestling</h3>
339                         <div class="entry-content">
340                            <div class="entry-body">
341                               <ul>
342   <li>Installed SQL Anywhere 8.0.3 Patch to fix problem with Services folder not appearing in Sybase Central</li>
343
344   <li>Spent time trying to figure out how to get a service configured. Eventually figured out that I need to specify -n &lt;<i>machine</i>&gt; as part of the parms or starting the service would just hang</li>
345
346   <li>Instructions given from Rational spoke of converting databases on a single server. This is not what we are doing there. Tried various things in an attempt to extend the directions to two servers and get the installutil command to run. Nothing was working.</li>
347
348   <li>Scoured the Rational documents and the net for "preparedbforupgrade" - turned up little except some guys personal web site talking about how the <i>Rational Suite - Upgrade Guide</i> describes the upgrade procedure with two servers and here's the single server procedure. That's nice, and it's pretty much the exact technote that the Rational support engineer pointed me to. However where's the double server procedure!</li>
349
350   <li>Scoured the Rational site, this time for <i>Rational Suite - Upgrade Guide</i>. Found it! It was a in a pdf file! Apparently the Rational site search engine doesn't search inside pdf files. They should take a lesson from Google! Also searched the system for this pdf file (rs_upgrade.pdf) and it was not on the system. Now why isn't it part of what gets installed?</li>
351
352   <li>Started doing the steps for converting the database as described in the <i>Rational Suite - Upgrade Guide</i>. See below for more.</li>
353 </ul>
354
355 <p><b>Time Spent:</b> 4 hours</p>
356                               
357                               <h3>Still issues with SQL Anywhere upgrade</h3>
358
359 <p>According to the <i>Rational Suite - Upgrade Guide</i> I need to import the connection profile from the SQL Anywhere 5.0 server then update it to add on the new SERVER_VER connection option (I believe I need to specify SERVER_VER=8.0.3 since I've now patched to 8.0.3) then save that connection profile. If I change the database server name to the new name but leave the Physical Database Name pointing to the old server then I get an error. If I change the database server name and point the Physical Database Name to a copy of the schema.db on the new server I can't connect either. If I leave those pointing to the old server and only add on the SERVER_VER parm then the connection updates. But now access to Clearquest fails on the old server complaining that SERVER_VER is invalid! How are you supposed to do this?!? Step by step instructions would be great!</p>
360
361 <p>Even if I were to be able to get the above done I would hesitant to perform the next step because it describes using the Clearquest Maintainance Tool to <b>move</b> the schema and user databases!</p>
362
363 <blockquote>
364 Move your schema repository. In the ClearQuest Maintenance Tool, in the <strong>Existing Connections</strong> area, select the connection to your existing SQL Anywhere 5.0 databases, then click <strong>Schema Repository > Move</strong>. Enter database information for a new database under your SQL Anywhere 8.0 server. For example, enter a different filename in the same directory as the existing
365 database. Click <strong>Finish</strong>.
366 </blockquote>
367 <p>I don't want to <b>move</b> databases - I want to simply <b>copy</b> them. Moving them would mean that current production would have to halt until I got it back up and running on the new server.
368                               
369                               <p class="entry-footer">
370                                  <span class="post-footers">Posted by  at 12:37 AM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000538.html">Permalink</a>
371                                  
372                                  
373                               </p>
374                            </div>
375                         </div>
376                      </div>
377                      
378                      
379
380                      <h2 class="date-header">April 10, 2006</h2>
381                      <a id="a000537"></a>
382                      <div class="entry" id="entry-537">
383                         <h3 class="entry-header">Save the logfiles! IFrames</h3>
384                         <div class="entry-content">
385                            <div class="entry-body">
386                               <ul>
387   <li>Changed the build process to save the test logfile</li>
388
389   <li>Changed the build_status to use an iframe for the continuous log file</li>
390 </ul>
391                               
392                               <p class="entry-footer">
393                                  <span class="post-footers">Posted by  at  6:49 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000537.html">Permalink</a>
394                                  
395                                  
396                               </p>
397                            </div>
398                         </div>
399                      </div>
400                      
401                      
402
403                      <h2 class="date-header">April  9, 2006</h2>
404                      <a id="a000535"></a>
405                      <div class="entry" id="entry-535">
406                         <h3 class="entry-header">SQL Anywhere</h3>
407                         <div class="entry-content">
408                            <div class="entry-body">
409                               <ul>
410   <li>Attempted to migrate Clearquest databases to new server. I was unable to. I've opened up a PMR with IBM Rational #8552849R and expect to get email from them tomorrow.</li>
411
412   <li>Attempting to switch the machine adefaria over to this newly created registry server (sons-sc-cc). Decided to reboot the machine. It never came back up! If you can boot this machine that would be great. You might need to go into the Clearcase Control Panel and set the registry server back to sons-clearcase and set the region to US. It might require a reboot to be effective. Why, when I rebooted it, it failed to come back up?</li>
413 </ul>
414
415 <p><b>Time Spent:</b> 4 hours</p>
416                               
417                               <h2>Migrating databases to new SQLAnywhere 8.x</h2>
418
419 <p>Spent most of the day banging against SQL Anywhere. We need to migrate the databases (both the schema.db and the salira_bugs.db) to the new server. With the new server comes new DBMS software (Sorry but SQL Anywhere 5.5.05 which is what you have on sons-clearcase is being sunsetted anyway).</p>
420
421 <p>Now I've done some extensive Clearquest work over at <a href="http://defaria.com/blogs/Status/archives/cat_pqa.html">Broadcom</a> it was all MS SQL based in the back end.</p>
422
423 <p>The first problem I have is that there is not service for SQL Anywhere like there used to be over on sons-clearcase. I managed to find C:\Program Files\Rational\SQLAnywhere8\win32\dbeng8.exe and dbsrv8.exe and that appears to be the process to start, there still isn't any automatically starting service for SQL Anywhere 8. That plus when run it prompts with a dialog box that queries about the database to use. I was always under the impression that a DBMS server just runs for any and all databases on the machine. I can just specify the server and leave the database blank but other times when running Sybase Central it complains that it can't start the DB server.</p>
424
425 <p>I thought that I could simply use Sybase Central to backup the databases on sons-clearcase then use the restore function of Sybase Central on sons-sc-cc. There are also options like Migrate Database, etc. to deal with differences in databases between old and new versions of SQL Anywhere. All of these had problems for me...</p>
426
427 <h2>Backup/Restore</h2>
428
429 <p>I backed up the salira_bugs.db file over to \\sons-sc-cc\Clearquest\backup\salira_bugs.db. Next I attempted to restore it on sons-sc-cc I get "Unable to start database server".</p>
430
431 <h2>Connect to backup database</h2>
432
433 <p>When I attempt to simply connect to that db I get:</p>
434
435 <blockquote>
436   <p>You are attempting to connect to a version 5.5.03 database running on a version 8.0.2-3601 server. In order for the Sybase Central to use this database, the database must be unloaded and reloaded into a new database (Sybase Central only supports version 7.0.0 and later database). The Unload Database wizard can step you through this process, after which Sybase Central will diconnect from this database.</p>
437
438   <p>Do you want to unload and reload this database? (If not, Sybase Central will disconnect from this database now.)</p>
439 </blockquote>
440
441 <p>If I step through this wizard I eventually get:</p>
442
443 <div class=code><pre>
444 java.lang.UnsatisfiedLinkError: unloadDatabase
445 Could not unload the database 'salira_bugs'.
446 </pre></div>
447
448 <h2>Migrate Database</h2>
449
450 <p>If I attempt to Migrate Database I get a message saying "You must be connected to the database to which you want to migrate" which, of course, I can't...</p>
451
452 <h2>Creating and Erase Database</h2>
453
454 <p>I have not managed to create a database through Sybase Central (but I have been able to create it through Clearquest Maintainance Tool and the Clearquest Designer - see below). When I try I get: Unable to start database server.</p>
455
456 <p>For databases created via Clearquest tools I cannot erase them using Erase database. Instead I get the same thing: Unable to start database server. So far when I need to delete a database I merely remove the databse files themselves.</p>
457
458 <p>I can create a schema database and even user databases through the Clearcase Maintainance Tool and Clearquest Designer respectively. But we don't want a new schema nor empty user databases - we want to migrate the old scheme that has our modifications and we want to migrate our old database!</p>
459
460 <h2>Moving Databases</h2>
461
462 <p>There's also an option to move a database from one server to another. Now I don't want to move databases right yet - I want to copy them. However this move seems to copy the database and then lock the original database. So I tried it out on the test2 database. Effectively you go into the Clearquest Designer on sons-clearcase and then select Database: Move Database then go through the dialog box specifying that you want to move the database over to sons-sc-cc. That works and test2.db does appear over on sons-sc-cc. But when I attempt to connect to it Sybase Central again goes through the unload/load procedure which fails the same way as described above.</p>
463                               
464                               <p class="entry-footer">
465                                  <span class="post-footers">Posted by  at  7:07 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000535.html">Permalink</a>
466                                  
467                                  
468                               </p>
469                            </div>
470                         </div>
471                      </div>
472                      
473                   </div>
474                </div>
475             </div>
476          </div>
477       </div>
478    </div>
479 </body>
480 </html>