Wednesday, January 30, 2013

updated script

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1252">
    <meta charset="UTF-8">
<title>Open Projects1</title>

</HEAD>

<BODY>

<!-- first table to show lucky number header -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=24 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD><TD WIDTH=777  ALIGN=left  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:32pt FACE="Cambria" COLOR=#1f0000>Today's Mega Number</FONT></B></TD>
</TR>
</TABLE>

<!-- 2nd table to show mega number and lucky numbers -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=24>
<TD WIDTH=24  ALIGN=LEFT > <BR></TD><TD WIDTH=732  ALIGN=center  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:42pt FACE="Calibri" COLOR=#000000>

<script language="JavaScript">

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date("03/01/2013")
var secondDate = new Date()
var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)))

document.write(diffDays)
document.write("<br/>");
</script>
<br />
</FONT></TD>
</TR>
</table>

<!--  lottery numbers start here   -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=24 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD><TD WIDTH=777  ALIGN=left  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:28pt FACE="Cambria" COLOR=#1f0000>

Other Lucky Numbers:
<script language="JavaScript">

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date("03/01/2013")
var secondDate = new Date()
var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)))

for (i=15; i<=167; i=i+37) {
    num = Math.floor(Math.random()*100);
var lott = (((i-3)*7 + diffDays*5 + num*7 + (i+3)*diffDays*44)%56)+1;
document.write("   -      " + lott);
}

</script>
                 </FONT></B></TD></tr>

<TR HEIGHT=30> <TD WIDTH=196  ALIGN=LEFT > <br></TD> </tr>

</TABLE>


<!-- 3rd table to show today's Date -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=14 >
<TD WIDTH=4  ALIGN=LEFT > <BR></TD>

<TD WIDTH=764  ALIGN=LEFT  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:10pt FACE="Calibri" COLOR=#000000>

<!-- to show today's Date -->

<script language="JavaScript">
var today = new Date()

var month = today.getMonth() + 1
var day = today.getDate()
var year = today.getFullYear()
var s = '/'
document.write("Today\'s date:    "+ month + s + day + s + year)
document.write("<br/>")
</script>
</FONT></TD>
</TR>
</TABLE>


<!-- 4th table, for list of tasks. -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=71>
<TD ALIGN=center >

<input type="textarea" name="calculation" value="">
<script language="JavaScript">
var today = new Date()

var month = today.getMonth() + 1
var day = today.getDate()
var year = today.getFullYear()
var s = '/'
</script>


 <BR></TD></tr>

<TR HEIGHT=70 >

<TD WIDTH=70  ALIGN=LEFT > <BR></TD>

<!--contact list starts here. -->

<TD WIDTH=220  ALIGN=LEFT  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:14pt FACE="Cambria" COLOR=#1f0000>

Tony Pastrano</br>
Robert Skellen</br>

Tom Croley</br>
Bob Bashaw</br>

George Sharpe/Altec</br>
Don Hildebrandt</br>



</FONT></TD>
<TD WIDTH=250  ALIGN=LEFT  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:14pt FACE="Cambria" COLOR=#1f0000>

(415) 550-4604</br>
(415) 550-4651</br>

(415) 273-5032 </br>
(510) 608-6886</br>

(510) 393-5307</br>
(530) 219-3373</br>

</FONT></TD>

<!--lists start here. -->

<TD WIDTH=350  ALIGN=LEFT  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:14pt FACE="Cambria" COLOR=#1f0000>    
<ul>
<li><a target="_blank" href="G:\New Drive Organization\Department Folders\Fleet Team">Fleet Folder</a></li>
<li><a target="_blank" href="G:\DOCS\Sole Source\2013 Sole Source">Sole Source Folder</a></li>
<li><a target="_blank" href="G:\New Drive Organization\Term Contracts (THIS IS LIVE NOW)">Term Contract Folder</a></li>
<li><a target="_blank" href="G:\DOCS\Technology Store 2009\Reports">Tech Store Extract Folder</a></li>
</ul>
</FONT></B></TD>

<TD WIDTH=250  ALIGN=LEFT  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:14pt FACE="Cambria" COLOR=#1f0000>
<ul>
<li><a target="_blank" href="G:\Scans">Scan</a></li>
<li><a target="_blank" href="G:\DOCS\IT Group\Purchase Orders\ComputerLand\ComputerLand 2013">Computerland 2013</a></li>
<li><a target="_blank" href="G:\DOCS\IT Group\Purchase Orders\En Pointe\En Pointe 2013">En Pointe 2013</a></li>
<li><a target="_blank" href="G:\DOCS\IT Group\Purchase Orders\Xtech\Xtech 2013">Xtech 2013</a></li>
</ul>
</FONT></TD>

<TD WIDTH=320  ALIGN=LEFT  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:14pt FACE="Cambria" COLOR=#1f0000>    
<ul>
<li><a target="_blank" href="G:\DOCS\Jason.Li">Jason's G drive</a></li>
<li><a target="_blank" href="G:\New Drive Organization\Department Folders\Fleet Team\Individual Purchaser Folders\Jason">Jason's Fleet Folder</a></li>

<li><a target="_blank" href="H:\">Jason's H Drive</a></li>
<li><a target="_blank" href="C:\Users\JasonLi\Documents">Jason's Documents</a></li>
</ul>
</FONT></B></TD>

</tr>

<TR HEIGHT=71><TD WIDTH=100  ALIGN=LEFT > <BR></TD></tr>
</TABLE>


<!-- 5th table, with 6th table, to show Tech store Req header -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=25 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD>
<TD WIDTH=572  ALIGN=LEFT  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:24pt FACE="Cambria" COLOR=#1f00ff>Due Date for Tech Store PO's</FONT></B></TD>
</TR>
</TABLE>

<!-- 6th table, with 5th table, to show actual date -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=72 >
<TD WIDTH=24  ALIGN=LEFT > <BR></TD>
<TD WIDTH=732  ALIGN=CENTER  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:32pt FACE="Calibri" COLOR=#000000>

<script language="JavaScript">
var m_names = new Array("December", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November");
var today = new Date()
var dueDate = today.getDate()
today.setDate(dueDate + 14)
var month = today.getMonth()+1
var day = today.getDate()
var year = today.getFullYear()
var s = '/'
document.write(m_names[month] + " " + day + ", " + year)
</script>
</FONT></TD>
</TR>
</TABLE>

<!-- 7th table, with 8th table, to show Vehicle POs header -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=25 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD>
<TD WIDTH=772  ALIGN=LEFT  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:24pt FACE="Cambria" COLOR=#1f00ff>

Due Date for LP Vehicle Orders on Term Contract</FONT></B></TD>
</TR>
</TABLE>

<!-- 8th table, with 7th table, to show actual date -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=72 >
<TD WIDTH=24  ALIGN=LEFT > <BR></TD>
<TD WIDTH=732  ALIGN=CENTER  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:32pt FACE="Calibri" COLOR=#000000>

<script language="JavaScript">
var today = new Date()
var dueDate = today.getDate()
today.setDate(dueDate + 90)

var month = today.getMonth() + 1
var day = today.getDate()
var year = today.getFullYear()
var s = '/'

document.write(month + s + day + s + year)
document.write("<br/>");

</script>

<br />
</FONT></TD>
</TR>
</TABLE>

<!-- This is random garbage -->

<script language="JavaScript">

<select name="_ctl0:cp_BODY_CONTENT:NameSearchBody:dl_NAME_SEARCH_AGENCY_NO" id="_ctl0_cp_BODY_CONTENT_NameSearchBody_dl_NAME_SEARCH_AGENCY_NO" style="width:590px;">
                <option selected="selected" value="ALL">All Agencies</option>
                <option value="70">311 Customer Service Center</option>
                <option value="191">Access Appeals Commission</option>
                <option value="13">Adult Probation Department</option>
                <option value="26">Aging and Adult Services, Department of</option>
                <option value="27">Airport (San Francisco  International - SFIA)</option>
                <option value="76">Animal Care and Control</option>
                <option value="28">Arts Commission</option>
                <option value="62">Asian Art Museum</option>
                <option value="1AAB">Assessment Appeals Board</option>
                <option value="2">Assessor-Recorder</option>
                <option value="707">Back Streets Business Advisory Board</option>
                <option value="37">Board of Appeals</option>
                <option value="1">Board of Supervisors</option>
                <option value="19">Building Inspection, Department of</option>
                <option value="60">California Academy of Sciences</option  

</select>


<input type="submit" name="_ctl0:cp_BODY_CONTENT:NameSearchBody:btn_SUBMIT_NAME_SEARCH" value="Submit" id="_ctl0_cp_BODY_CONTENT_NameSearchBody_btn_SUBMIT_NAME_SEARCH" title="Enter your searech arguments above and press to search the directory." style="width:90px;" />
</script>


        <script language="JavaScript">
//timer vars
var startTime;
var timer1:int;
var texture1: GUITexture;
function Update(){TimerStart();}
function TimerStart(){
startTime = Time.time; //time starter
timer1 = Time.time;  //Set time
if(timer1 > 5){ //<-------the number here are the seconds you want
Debug.Log ("Time is over, render texture now");
//Here we just enable a GUI texture on the screen (create a GUItexture and disable it)
texture1.enabled = true;
}
}
        </script>


</BODY>
</HTML>

Thursday, January 24, 2013

My Own Scripts

<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=windows-1252">
    <meta charset="UTF-8">
<title>Open Projects1</title>

</HEAD>

<BODY>

<!-- first table to show lucky number header -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=24 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD><TD WIDTH=777  ALIGN=left  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:32pt FACE="Cambria" COLOR=#1f0000>Today's Mega Number</FONT></B></TD>
</TR>
</TABLE>

<!-- 2nd table to show mega number and lucky numbers -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=24>
<TD WIDTH=24  ALIGN=LEFT > <BR></TD><TD WIDTH=732  ALIGN=center  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:42pt FACE="Calibri" COLOR=#000000>

<script language="JavaScript">

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date("03/01/2013")
var secondDate = new Date()
var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)))

document.write(diffDays)
document.write("<br/>");
</script>
<br />
</FONT></TD>
</TR>
</table>

<!--  lottery numbers start here   -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=24 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD><TD WIDTH=777  ALIGN=left  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:28pt FACE="Cambria" COLOR=#1f0000>

Other Lucky Numbers:
<script language="JavaScript">

var oneDay = 24*60*60*1000; // hours*minutes*seconds*milliseconds
var firstDate = new Date("03/01/2013")
var secondDate = new Date()
var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime())/(oneDay)))

for (i=1; i<=5; i++) {
var lott = ((i*25489 - diffDays*328)%47)+1
document.write("   -      " + lott);
}

</script>
                 </FONT></B></TD></tr>

<TR HEIGHT=30> <TD WIDTH=196  ALIGN=LEFT > <br></TD> </tr>

</TABLE>


<!-- 3rd table to show today's Date -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=14 >
<TD WIDTH=4  ALIGN=LEFT > <BR></TD>

<TD WIDTH=764  ALIGN=LEFT  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:12pt FACE="Calibri" COLOR=#000000>

<!-- to show today's Date -->

<script language="JavaScript">
var today = new Date()

var month = today.getMonth() + 1
var day = today.getDate()
var year = today.getFullYear()
var s = '/'
document.write("Today\'s date:    "+ month + s + day + s + year)
document.write("<br/>")
</script>
</FONT></TD>
</TR>
</TABLE>


<!-- 4th table, extra padding only. -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=119 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD><TD WIDTH=572  ALIGN=LEFT  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:14pt FACE="Cambria" COLOR=#1f0000>                 </FONT></B></TD>
</TABLE>


<!-- 5th table, with 6th table, to show Tech store Req header -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=25 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD>
<TD WIDTH=572  ALIGN=LEFT  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:20pt FACE="Cambria" COLOR=#1f0000>Due Date for Tech Store PO's</FONT></B></TD>
</TR>
</TABLE>

<!-- 6th table, with 5th table, to show actual date -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=72 >
<TD WIDTH=24  ALIGN=LEFT > <BR></TD>
<TD WIDTH=732  ALIGN=CENTER  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:32pt FACE="Calibri" COLOR=#000000>

<script language="JavaScript">
var m_names = new Array("December", "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November");
var today = new Date()
var dueDate = today.getDate()
today.setDate(dueDate + 14)
var month = today.getMonth()+1
var day = today.getDate()
var year = today.getFullYear()
var s = '/'
document.write(m_names[month] + " " + day + ", " + year)
</script>
</FONT></TD>
</TR>
</TABLE>

<!-- 7th table, with 8th table, to show Vehicle POs header -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=25 >
<TD WIDTH=196  ALIGN=LEFT > <BR></TD>
<TD WIDTH=772  ALIGN=LEFT  BGCOLOR=#FFFFFF ><B><FONT style=FONT-SIZE:20pt FACE="Cambria" COLOR=#1f0000>

Due Date for LP Vehicle Orders on Term Contract</FONT></B></TD>
</TR>
</TABLE>

<!-- 8th table, with 7th table, to show actual date -->

<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 >
<TR HEIGHT=72 >
<TD WIDTH=24  ALIGN=LEFT > <BR></TD>
<TD WIDTH=732  ALIGN=CENTER  BGCOLOR=#FFFFFF ><FONT style=FONT-SIZE:32pt FACE="Calibri" COLOR=#000000>

<script language="JavaScript">
var today = new Date()
var dueDate = today.getDate()
today.setDate(dueDate + 90)

var month = today.getMonth() + 1
var day = today.getDate()
var year = today.getFullYear()
var s = '/'

document.write(month + s + day + s + year)
document.write("<br/>");

</script>

<br />
</FONT></TD>
</TR>
</TABLE>

<!-- This is random garbage -->

<script language="JavaScript">

<select name="_ctl0:cp_BODY_CONTENT:NameSearchBody:dl_NAME_SEARCH_AGENCY_NO" id="_ctl0_cp_BODY_CONTENT_NameSearchBody_dl_NAME_SEARCH_AGENCY_NO" style="width:590px;">
                <option selected="selected" value="ALL">All Agencies</option>
                <option value="70">311 Customer Service Center</option>
                <option value="191">Access Appeals Commission</option>
                <option value="13">Adult Probation Department</option>
                <option value="26">Aging and Adult Services, Department of</option>
                <option value="27">Airport (San Francisco  International - SFIA)</option>
                <option value="76">Animal Care and Control</option>
                <option value="28">Arts Commission</option>
                <option value="62">Asian Art Museum</option>
                <option value="1AAB">Assessment Appeals Board</option>
                <option value="2">Assessor-Recorder</option>
                <option value="707">Back Streets Business Advisory Board</option>
                <option value="37">Board of Appeals</option>
                <option value="1">Board of Supervisors</option>
                <option value="19">Building Inspection, Department of</option>
                <option value="60">California Academy of Sciences</option  

</select>


<input type="submit" name="_ctl0:cp_BODY_CONTENT:NameSearchBody:btn_SUBMIT_NAME_SEARCH" value="Submit" id="_ctl0_cp_BODY_CONTENT_NameSearchBody_btn_SUBMIT_NAME_SEARCH" title="Enter your searech arguments above and press to search the directory." style="width:90px;" />
</script>


        <script language="JavaScript">
//timer vars
var startTime;
var timer1:int;
var texture1: GUITexture;
function Update(){TimerStart();}
function TimerStart(){
startTime = Time.time; //time starter
timer1 = Time.time;  //Set time
if(timer1 > 5){ //<-------the number here are the seconds you want
Debug.Log ("Time is over, render texture now");
//Here we just enable a GUI texture on the screen (create a GUItexture and disable it)
texture1.enabled = true;
}
}
        </script>


</BODY>
</HTML>

Best regards,

Jason

Jason Li,  Office of Cotract Admin.
Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564


Friday, January 18, 2013

Yoli Friday continues

Hola.

Happy New Year!   Thanks for the congrats on Linkedin as well.  That's very nice of you.   Yes, it's almost a year.   I still need to have about 1 month to go to pass the probation.  You will be completing one year with Adept soon as well.  How are the NPI things going?   I haven't done real NPI stuff.   I think I am more cut for sustaining stuff, like commodity specialist, supply channel lead type of job.   The other day I dreamt of interviewing with Cisco.  Crazy, isn't it.   If Adept is closer to San Mateo, I would like to interview with them.   Continuing along with the topic of Interview, Unigen, in Fremont, was looking for a quotation analyst and called me up.  It just so happens that Kevin Hicks, an ex commodity manager (Memory team) at Cisco, is now working there.  If you or anyone else is interested, let me know.

I thought I'd show you part of what I do that is visible to the outside world.    CCSF=City and County of San Francisco.  I think that I still like handling  materials/operations/production better than an articulating/telescopic aerial device  mounted on a 35,000lb chassis with a chip dump body/bed and a City-wide office supply ordering portal.  

Hey, how about next Sat or 2/2 or 2/9 or 2/6....  (I'm so free) that we do lunch?






http://mission.sfgov.org/OCABidPublication/BidDetail.aspx?K=6246







Best regards,

Jason

Jason Li,  Asst. Purchaser, Office of Cotract Admin.
Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564


Thursday, January 17, 2013

Fw: Aun Mas Firms_20130117

Jason Li,  Assistant Purchaser
Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564



Best regards,

Jason

Jason Li,  Asst. Purchaser  Rm 430, City Hall, SF, CA  Tel: (415) 554-4564


----- Forwarded by Jason Li/ADMSVC/SFGOV on 01/17/2013 05:00 PM -----
{In Archive}  Aun Mas Firms_20121108

Jason Li  to:Jason Li
11/08/2012 01:57 PM



Archive: This message is being viewed in an archive.








Jason Li, C.P.M.
Office of Contract Administration
Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564


















Best regards,

Jason

Jason Li, C.P.M.
Office of Contract Administration
Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564


----- Forwarded by Jason Li/ADMSVC/SFGOV on 11/08/2012 01:57 PM -----

From:        Jason Li/ADMSVC/SFGOV
To:        Jason Li/ADMSVC/SFGOV@SFGOV
Date:        11/08/2012 01:39 PM
Subject:        Aun Mas Firmas



Jason Li, C.P.M.
Office of Contract Administration
Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564


Best regards,

Jason

Jason Li,  C.P.M. Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564


----- Forwarded by Jason Li/ADMSVC/SFGOV on 11/08/2012 01:39 PM -----

From:        Jason Li/ADMSVC/SFGOV
To:        Jason Li/ADMSVC/SFGOV@SFGOV
Date:        11/07/2012 08:21 AM
Subject:        Mas Firmas





Best regards,

Jason

Jason Li, C.P.M.
Office of Contract Administration
Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564








From:        Jason Li/ADMSVC/SFGOV
To:        Jason Li/ADMSVC/SFGOV@SFGOV
Date:        10/25/2012 08:24 AM
Subject:        more signatures  












Best regards,

Jason

Jason Li, C.P.M. Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564 








 
Jason Li,  Assistant Purchaser  Rm 430, City Hall  Tel: (415) 554-4564 




Jason Li,  C.P.M. Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564



----- Forwarded by Jason Li/ADMSVC/SFGOV on 10/25/2012 08:05 AM -----

From:        Jason Li/ADMSVC/SFGOV
To:        Jason Li/ADMSVC/SFGOV@SFGOV
Date:        10/24/2012 05:13 PM
Subject:        2 signatures







Best regards,

Jason


Jason Li,  C.P.M.   Rm 430, City Hall   Tel: (415) 554-4564







Best regards,

Jason



Jason Li,  C.P.M. Rm 430, City Hall, SF, CA 94102 Tel: (415) 554-4564