42 ; ˆl–äY>” je¶…8 Cq§nµ1hß „mÇÝkÁa–ß=¿JJj"Tâ‚ ÆZ¸”Å£Å?÷ a ´iY\ã@s8dZdZddlZddlZddlZdd„ZdZdZ dZ gd ¢Z d gZ dZ e dd…D]Ze  e ¡e e7Z qR[ [d d „Zd d„Zdd„Zdd„Zdd„ZedƒZedƒZedƒZdd„Zgd¢Zgd¢Zdd„ZdZdd „Zd!d"„Zd#d$„Zd%d&„Zd'd(„Z d)d*„Z!d+d,„Z"d-d.„Z#d/d0„Z$d1d2„Z%d3d4„Z&d5d6„Z'd7d8„Z(d9d:„Z)Gd;d<„d<ƒZ*e*d=ƒe*_+e*d>d?d@d@dAdB�e*_,e*ddC�e*_-GdDdE„dEƒZ.e.Z/e.dddƒe._+e.ddFdGƒe._,e*ddH�e._-GdIdJ„dJƒZ0GdKdL„dLe1ƒZ2e2Z3[2e0Z4GdMdN„dNƒZeZ5edddƒe_+ed?d@d@dAƒe_,e*ddC�e_-GdOdP„dPe.ƒZ6e6dddƒe6_+e6ddFdGd?d@d@dAƒe6_,e*ddC�e6_-dQdR„Z7GdSdT„dTe0ƒZ8e8 9e*dƒ¡e8_:e8 9e*d?d@dU� ¡e8_+e8 9e*d?d@dU�¡e8_,e6dVdde8j:dW�Z;z ddXl 1 if leap year, else 0.ér édé�r )Úyearr r rÚ_is_leap)srcCs(|d}|d|d|d|dS)z2year -> number of days before January 1st of year.r émrrrr )rrr r rÚ_days_before_year-srcCs|dkrt|ƒrdSt|S)z9year, month -> number of days in that month in that year.éé)rÚ_DAYS_IN_MONTH©rÚmonthr r rÚ_days_in_month2sr!cCst||dkot|ƒS)zCyear, month -> number of days in year preceding first day of month.r)Ú_DAYS_BEFORE_MONTHrrr r rÚ_days_before_month9sr#cCs t||ƒ}t|ƒt||ƒ|S)z>year, month, day -> ordinal, considering 01-Jan-0001 as day 1.)r!rr#©rr ÚdayÚdimr r rÚ_ymd2ord>s  ÿþr'i‘éeéc Csø|d8}t|tƒ\}}|dd}t|tƒ\}}t|tƒ\}}t|dƒ\}}||d|d|7}|dkst|dkr‚|dddfS|dko˜|d kp˜|dk}|d d ?}t||d ko¶|}||krâ|d8}|t||d koÜ|8}||8}|||dfS) z@ordinal -> (year, month, day), considering 01-Jan-0001 as day 1.r rrrré rééé2r)r)ÚdivmodÚ_DI400YÚ_DI100YÚ_DI4Yr"r) ÚnZn400rZn100Zn4Zn1Zleapyearr Z precedingr r rÚ_ord2ymdWs"  r3) NZJanZFebZMarZAprZMayZJunZJulZAugZSepZOctZNovZDec)NZMonZTueZWedZThuZFriZSatZSunc Cs>t|||ƒdd}t||ƒ|}t |||||||||f ¡S)Néé)r'r#Ú_timeÚ struct_time) rÚmÚdÚhhÚmmÚssZdstflagZwdayZdnumr r rÚ_build_struct_time›sr=ÚautocCsrddddddœ}|dkr&|r dnd }n|d kr6|d }z ||}Wnty\td ƒ‚Yn0| ||||¡SdS) Nz{:02d}z {:02d}:{:02d}z{:02d}:{:02d}:{:02d}z{:02d}:{:02d}:{:02d}.{:03d}z{:02d}:{:02d}:{:02d}.{:06d})ÚhoursÚminutesÚsecondsÚ millisecondsÚ microsecondsr>rCrArBéèzUnknown timespec value)ÚKeyErrorÚ ValueErrorÚformat)r:r;r<ÚusÚtimespecZspecsÚfmtr r rÚ _format_time sû  rKcCs�d}|durŒ|jdkr"d}| }nd}t|tdd�ƒ\}}t|tdd�ƒ\}}|d|||f7}|sj|jrŒ|d |j7}|jrŒ|d |j7}|S) NÚr ú-ú+r ©r?©r@