Ë
    òT•jÁg ã            	       ó®  — d Z dZddlZddlZddlZddlmZ	 d„ Z
d„ ZdZdZd	Zg d
¢ZdgZdZedd D ]  Zej'                  e«       eez  ZŒ [[d„ Zd„ Zd„ Zd„ Zd„ Z ed«      Z ed«      Z ed«      Zedk(  sJ ‚edez  dz   k(  sJ ‚edez  dz
  k(  sJ ‚d„ Zg d¢Zg d¢Zd„ ZdHd„Z dId„Z!d„ Z"d„ Z#d„ Z$d „ Z%g d!¢Z&d"„ Z'd#„ Z(d$„ Z)d%„ Z*d&„ Z+d'„ Z,d(„ Z-d)„ Z.d*„ Z/d+„ Z0 G d,„ d-«      Z1 e1d.«      e1_2         e1d/d0d1d1d2¬3«      e1_3         e1d¬4«      e1_4         G d5„ d6«      Z5e5Z6 e5ddd«      e5_2         e5dd7d8«      e5_3         e1d¬9«      e5_4         G d:„ d;«      Z7 G d<„ d=e8«      Z9e9Z:[9e7Z; G d>„ d?«      ZeZ< eddd«      e_2         ed0d1d1d2«      e_3         e1d¬4«      e_4         G d@„ dAe5«      Z= e=ddd«      e=_2         e=dd7d8d0d1d1d2«      e=_3         e1d¬4«      e=_4        dB„ Z> G dC„ dDe7«      Z?e?j�                   e1d«      «      xZAe?_B        e?j�                   e1d0d1¬E«       «      e?_2        e?j�                   e1d0d1¬E«      «      e?_3         e=dFdde?j„                  ¬G«      ZCy)Jz†Concrete date/time and related types.

See http://www.iana.org/time-zones/repository/tz-link.html for
time zone and DST data sources.
)	ÚdateÚdatetimeÚtimeÚ	timedeltaÚtimezoneÚtzinfoÚMINYEARÚMAXYEARÚUTCé    N)Úindexc                 ó"   — | |k(  rdS | |kD  rdS dS )Nr   é   éÿÿÿÿ© ©ÚxÚys     ú"/usr/lib/python3.12/_pydatetime.pyÚ_cmpr      s   € Ø�Q’ˆ1Ð.  Q¢˜AÐ.¨BÐ.ó    c                 ó>   — | j                   j                  }|dk(  ry|S )NÚ_pydatetimer   )Ú	__class__Ú
__module__)ÚselfÚmodule_names     r   Ú_get_class_moduler      s"   € Ø—.‘.×+Ñ+€KØ�mÒ#ØàÐr   r   i'  iÛ¹7 )r   é   é   r   é   r   r    r   r   r    r   r    r   r   c                 ó:   — | dz  dk(  xr | dz  dk7  xs | dz  dk(  S )zyear -> 1 if leap year, else 0.é   r   éd   é�  r   )Úyears    r   Ú_is_leapr&   1   s*   € à�!‰8�q‰=ÒA˜d S™j¨A™oÒ@°¸±¸q±ÐAr   c                 ó:   — | dz
  }|dz  |dz  z   |dz  z
  |dz  z   S )z2year -> number of days before January 1st of year.r   ém  r"   r#   r$   r   )r%   r   s     r   Ú_days_before_yearr)   5   s/   € àˆq‰€AØˆS‰5�1�a‘4‰<˜!˜S™&Ñ  1 c¡6Ñ)Ð)r   c                 ój   — d|cxk  rdk  sJ |«       ‚ J |«       ‚|dk(  rt        | «      ryt        |   S )z9year, month -> number of days in that month in that year.r   é   é   é   )r&   Ú_DAYS_IN_MONTH©r%   Úmonths     r   Ú_days_in_monthr1   :   s@   € à�Ô˜ÒÐ"˜UÓ"ÑÐ"˜UÓ"ÐØ�‚z”h˜t”nØÜ˜%Ñ Ð r   c                 ón   — d|cxk  rdk  sJ d«       ‚ J d«       ‚t         |   |dkD  xr t        | «      z   S )zCyear, month -> number of days in year preceding first day of month.r   r+   úmonth must be in 1..12r,   )Ú_DAYS_BEFORE_MONTHr&   r/   s     r   Ú_days_before_monthr5   A   sD   € à�Ô˜ÒÐ5Ð5Ó5ÑÐ5Ð5Ó5ÐÜ˜eÑ$¨°©	Ò(D´h¸t³nÑEÐEr   c                 ó²   — d|cxk  rdk  sJ d«       ‚ J d«       ‚t        | |«      }d|cxk  r|k  sn J d|z  «       ‚t        | «      t        | |«      z   |z   S )z>year, month, day -> ordinal, considering 01-Jan-0001 as day 1.r   r+   r3   úday must be in 1..%d)r1   r)   r5   ©r%   r0   ÚdayÚdims       r   Ú_ymd2ordr;   F   sr   € à�Ô˜ÒÐ5Ð5Ó5ÑÐ5Ð5Ó5ÐÜ
˜˜uÓ
%€CØ�Œ?�sŒ?Ð:Ð3°cÑ9Ó:ˆ?Ü˜dÓ#Ü˜t UÓ+ñ,àñð r   i‘  ée   é   iµ  r"   é   c                 ó
  — | dz  } t        | t        «      \  }} |dz  dz   }t        | t        «      \  }} t        | t        «      \  }} t        | d«      \  }} ||dz  |dz  z   |z   z  }|dk(  s|dk(  r| dk(  sJ ‚|dz
  ddfS |d	k(  xr |d
k7  xs |d	k(  }|t	        |«      k(  sJ ‚| dz   dz	  }t
        |   |dkD  xr |z   }|| kD  r|dz  }|t        |   |dk(  xr |z   z  }| |z  } d| cxk  rt        ||«      k  sJ ‚ J ‚||| dz   fS )z@ordinal -> (year, month, day), considering 01-Jan-0001 as day 1.r   r$   r(   r#   r"   r   r+   r   é   é   é2   r=   r,   )ÚdivmodÚ_DI400YÚ_DI100YÚ_DI4Yr&   r4   r.   r1   )	ÚnÚn400r%   Ún100Ún4Ún1Úleapyearr0   Ú	precedings	            r   Ú_ord2ymdrN   _   s`  € ð. ˆ�F€AÜ�QœÓ �G€Dˆ!Ø�#‰:˜‰>€Dô �QœÓ �G€Dˆ!ô �1”eÓ�E€Bˆô �1�c‹N�E€BˆàˆD�3‰J˜˜a™Ñ "Ñ$Ñ$€DØ	ˆQ‚w�$˜!’)Ø�AŠvˆˆvØ�A‰v�r˜2ˆ~Ðð �Q‰wÒ2˜B "™HÒ1¨°©	€HØ”x “~Ò%Ð%Ð%Ø�‰V˜‰M€EÜ" 5Ñ)¨U°Q©YÒ-C¸8ÑD€IØ�1‚}Ø�‰
ˆØ”^ EÑ*¨e°q©jÒ.E¸XÑFÑFˆ	Øˆ�N€AØ�Ô/”N 4¨Ó/Ò/Ð/Ñ/Ð/Ð/ð �˜˜!™ÐÐr   )NÚJanÚFebÚMarÚAprÚMayÚJunÚJulÚAugÚSepÚOctÚNovÚDec)NÚMonÚTueÚWedÚThuÚFriÚSatÚSunc                 ó‚   — t        | ||«      dz   dz  }t        | |«      |z   }t        j                  | ||||||||f	«      S )Né   é   )r;   r5   Ú_timeÚstruct_time)	r   ÚmÚdÚhhÚmmÚssÚdstflagÚwdayÚdnums	            r   Ú_build_struct_timero   £   sO   € Ü�Q˜˜1Ó Ñ! QÑ&€DÜ˜a Ó# aÑ'€DÜ×Ñ˜a  A r¨2¨r°4¸¸wÐGÓHÐHr   c                 ó¢   — ddddddœ}|dk(  r|rdnd	}n
|d
k(  r|dz  }	 ||   }|j                  | |||«      S # t        $ r t        d«      ‚w xY w)Nz{:02d}z{:02d}:{:02d}z{:02d}:{:02d}:{:02d}z{:02d}:{:02d}:{:02d}.{:03d}z{:02d}:{:02d}:{:02d}.{:06d})ÚhoursÚminutesÚsecondsÚmillisecondsÚmicrosecondsÚautoru   rs   rt   éè  zUnknown timespec value)ÚformatÚKeyErrorÚ
ValueError)ri   rj   rk   ÚusÚtimespecÚspecsÚfmts          r   Ú_format_timer   ¨   s~   € àØ"Ø)Ø5Ø5ñ€Eð �6Òá%'‘>¨Y‰Ø	�^Ò	#Ø
ˆt‰ˆð*Ø�H‰oˆð �z‰z˜"˜b " bÓ)Ð)øô ò 3ÜÐ1Ó2Ð2ð3ús	    9 ¹Ac                 ó8  — d}| �•| j                   dk  rd}|  } nd}t        | t        d¬«      «      \  }}t        |t        d¬«      «      \  }}|d||||fz  z  }|s|j                  r2|d	||j                  fz  z  }|j                  r|d
|j                  z  z  }|S )NÚ r   ú-ú+r   ©rq   ©rr   z%s%02d%s%02dz%s%02dú.%06d)ÚdaysrC   r   ru   rs   )ÚoffÚsepÚsÚsignri   rj   rk   s          r   Ú_format_offsetrŒ   ½   sª   € Ø
€AØ
€Ø�8‰8�aŠ<ØˆDØ�$‰CàˆDÜ˜œY¨QÔ/Ó0‰ˆˆBÜ˜œI¨aÔ0Ó1‰ˆˆBØ	ˆ^˜t R¨¨bÐ1Ñ1Ñ1ˆÙ�—’Ø�˜S "§*¡*Ð-Ñ-Ñ-ˆAà�ŠØ�W˜rŸ™Ñ.Ñ.�Ø€Hr   c                 óœ  — d }d }d }d }g }|j                   }dt        |«      }
}	|	|
k  �r}||	   }|	dz  }	|dk(  �r^|	|
k  �rO||	   }|	dz  }	|dk(  r%|€dt        | dd«      z  }|j                  |«       �n,|dk(  rD|€*t        | d«      rt	        | j                  «       d	¬
«      }nd	}d|vsJ ‚|j                  |«       nã|dk(  rq|	|
k  rÙ||	   }|	dz  }	|dk(  rD|€*t        | d«      rt	        | j                  «       d¬
«      }nd	}d|vsJ ‚|j                  |«       n† |d«        ||«        ||«       nm|dk(  rF|€2d	}t        | d«      r$| j                  «       }|�|j                  dd«      }|j                  |«       n" |d«        ||«       n |d«       n ||«       |	|
k  r�Œ}d	j                  |«      }t        j                  ||«      S )Nr   r   ú%Úfz%06dÚmicrosecondÚzÚ	utcoffsetr�   ©r‰   ú:ÚZÚtznamez%%)ÚappendÚlenÚgetattrÚhasattrrŒ   r’   r–   ÚreplaceÚjoinre   Ústrftime)Úobjectrx   Ú	timetupleÚfreplaceÚzreplaceÚcolonzreplaceÚZreplaceÚ	newformatÚpushÚirG   ÚchÚch2rŠ   s                 r   Ú_wrap_strftimer©   Ð   s  € à€HØ€HØ€MØ€Hð €IØ×Ñ€DØŒc�&‹k€q€AØ
ˆa‹%Ø�A‰YˆØ	ˆQ‰ˆØ�‹9Ø�1‹uØ˜A‘Y�Ø�Q‘�Ø˜’9ØÐ'Ø#)¬G°FØ4AÀ1ó-Fñ $F˜à×$Ñ$ XÖ.Ø˜3’YØÐ'Ü" 6¨;Ô7Ü'5°f×6FÑ6FÓ6HÈbÔ'Q™Hà')˜HØ hÑ.Ð.Ð.Ø×$Ñ$ XÕ.Ø˜3’YØ˜1’uØ$ Q™i˜Ø˜Q™˜Ø #š:Ø,Ð4Ü#*¨6°;Ô#?Ü4BÀ6×CSÑCSÓCUÐ[^Ô4_¡Mà46 MØ#&¨mÑ#;Ð;Ð#;Ø%×,Ñ,¨]Õ;á  œIÙ  œHÙ  �IØ˜3’YØÐ'Ø#%˜Ü" 6¨8Ô4Ø &§¡£˜AØ ˜}à+,¯9©9°S¸$Ó+? Ø×$Ñ$ XÕ.á˜”IÙ˜•Há�S•	á�ŒHðg ˆaŒ%ðh —‘˜	Ó"€IÜ�>‰>˜) YÓ/Ð/r   c                 ó
   — | dv S )NÚ
0123456789r   )Úcs    r   Ú_is_ascii_digitr­     s   € Ø�ÐÐr   c                 óX  — t        | «      }|dk(  ry|dkD  sJ ‚d}d}| d   |k(  rL| d   |k(  rC|dk  rt        d«      ‚|dkD  r-| d   |k(  r%|dk(  rt        d«      ‚|d	kD  rt        | d	   «      ryy	yy	| d   |k(  r2d}||k  rt        | |   «      sn|d
z  }||k  rŒ|dk  r|S |dz  dk(  ryyy)Nrd   r‚   ÚWr"   r=   é   zInvalid ISO stringé	   é
   r   r,   r   )r˜   rz   r­   )ÚdtstrÚ	len_dtstrÚdate_separatorÚweek_indicatorÚidxs        r   Ú"_find_isoformat_datetime_separatorr¸     sü   € ä�E“
€IØ�A‚~Øà�qŠ=Ðˆ=Ø€NØ€NàˆQ�x�>Ò!Ø�‰8�~Ò%Ø˜1Š}Ü Ð!5Ó6Ð6Ø˜1Š}  q¡¨^Ò!;Ø ’>Ü$Ð%9Ó:Ð:Ø˜r’>¤o°e¸B±iÔ&@ð Øð ð à�‰8�~Ò%àˆCØ˜	’/Ü& u¨S¡zÔ2ØØ�q‘�ð ˜	“/ð
 �QŠwØ�
à�Q‰w˜!Š|ààð r   c                 óà  — t        | «      dv sJ ‚t        | dd «      }| d   dk(  }d|z   }| ||dz    dk(  rp|dz  }t        | ||dz    «      }|dz  }d}t        | «      |kD  r/| ||dz    dk(  |k7  rt        d«      ‚||z  }t        | ||dz    «      }t        t	        |||«      «      S t        | ||dz    «      }|dz  }| ||dz    dk(  |k7  rt        d«      ‚||z  }t        | ||dz    «      }|||gS )	N©rd   r°   r²   r   r"   r‚   r   r¯   r,   z"Inconsistent use of dash separator)r˜   Úintrz   ÚlistÚ_isoweek_to_gregorian)r³   r%   Úhas_sepÚposÚweeknoÚdaynor0   r9   s           r   Ú_parse_isoformat_daterÂ   O  sJ  € ô ˆu‹:˜Ñ#Ð#Ð#Üˆu�Q�qˆz‹?€DØ�A‰h˜#‰o€Gà
ˆg‰+€CØˆS��q‘Ð˜SÒ àˆq‰ˆÜ�U˜3˜s Q™wÐ'Ó(ˆØˆq‰ˆàˆÜˆu‹:˜ÒØ�c˜# ™'Ð" cÑ)¨gÒ5Ü Ð!EÓFÐFà�7‰NˆCä˜˜c #¨¡'Ð*Ó+ˆEäÔ)¨$°¸Ó>Ó?Ð?ä�E˜#˜c A™gÐ&Ó'ˆØˆq‰ˆØ�#�c˜A‘gÐ #Ñ%¨'Ò1ÜÐAÓBÐBàˆw‰ˆÜ�%˜˜C !™GÐ$Ó%ˆà�e˜SÐ!Ð!r   )i † i'  rw   r#   r²   c                 ó   — t        | «      }g d¢}d}t        dd«      D ]c  }||z
  dk  rt        d«      ‚t        | ||dz    «      ||<   |dz  }| ||dz    }|dk(  r|dk(  }|r|dk\  r nr|dk7  rt        d|z  «      ‚||z  }Œe ||k  r…| |   d	vrt        d
«      ‚|dz  }||z
  }|dk\  rd}n|}t        | |||z    «      |d<   |dk  r|dxx   t        |dz
     z  cc<   ||kD  r*t        t        t        | ||z   d  «      «      st        d«      ‚|S )N)r   r   r   r   r   r@   r,   zIncomplete time componentr   r”   zInvalid time separator: %cz.,zInvalid microsecond componentrc   z%Non-digit values in unparsed fraction)r˜   Úrangerz   r»   Ú_FRACTION_CORRECTIONÚallÚmapr­   )	ÚtstrÚlen_strÚ
time_compsr¿   ÚcompÚ	next_charr¾   Úlen_remainderÚto_parses	            r   Ú_parse_hh_mm_ss_ffrÏ   v  se  € ä�$‹i€Gâ€JØ
€CÜ�a˜“ò ˆØ�c‰M˜QÒÜÐ8Ó9Ð9ä˜t C¨¨A©˜Ó/ˆ
�4Ñàˆq‰ˆØ˜˜S ™U�Oˆ	à�1Š9Ø 3Ñ&ˆGá˜D AšIÙá�y CÒ'ÜÐ9¸IÑEÓFÐFàˆw‰‰ð%ð( ˆW‚}Ø�‰9˜DÑ ÜÐ<Ó=Ð=à�1‰HˆCà# c™MˆMà Ò!Ø‘à(�ä  S¨#¨h©,Ð 8Ó9ˆJ�q‰MØ˜!Š|Ø˜1“Ô!5°h¸q±jÑ!AÑA“Ø Ò(Ü¤¤O°T¸3¸x¹<¸/Ð5JÓ KÔLÜ Ð!HÓIÐIàÐr   c                 ób  — t        | «      }|dk  rt        d«      ‚| j                  d«      dz   xs* | j                  d«      dz   xs | j                  d«      dz   }|dkD  r| d |dz
   n| }t        |«      }d }||k(  r| d   dk(  rt        j
                  }nˆ|dkD  rƒ| |d  }t        |«      d	v rt        d
«      ‚t        |«      }t        d„ |D «       «      rt        j
                  }n8| |dz
     dk(  rdnd}t        |d   |d   |d   |d   ¬«      }	t	        ||	z  «      }|j                  |«       |S )Nr,   zIsoformat time too shortr‚   r   rƒ   r•   r   r   )r   r   r@   zMalformed time zone stringc              3   ó&   K  — | ]	  }|d k(  –— Œ y­w)r   Nr   )Ú.0r   s     r   ú	<genexpr>z(_parse_isoformat_time.<locals>.<genexpr>Æ  s   è ø€ Ò(˜!ˆq�A�vÑ(ùs   ‚r@   ©rq   rr   rs   ru   )	r˜   rz   ÚfindrÏ   r   ÚutcrÆ   r   r—   )
rÈ   rÉ   Útz_posÚtimestrrÊ   ÚtziÚtzstrÚtz_compsÚtzsignÚtds
             r   Ú_parse_isoformat_timerÞ   ¦  sC  € ä�$‹i€GØ�‚{ÜÐ3Ó4Ð4ð �i‰i˜‹n˜qÑ ÒL D§I¡I¨c£N°QÑ$6ÒL¸$¿)¹)ÀC».È1Ñ:L€FØ!'¨!¢ˆd�9�F˜1‘H‰o°€Gä# GÓ,€Jà
€CØ�Ò˜T "™X¨š_Ü�l‰l‰Ø	�!ŠØ�V�W�ˆô ˆu‹:˜Ñ"ÜÐ9Ó:Ð:ä% eÓ,ˆäÑ(˜xÔ(Ô(Ü—,‘,‰Cà ¨¡
Ñ+¨sÒ2‘R¸ˆFä ¨!¡°h¸q±kØ#+¨A¡;¸XÀa¹[ôJˆBô ˜6 B™;Ó'ˆCà×Ñ�cÔàÐr   c                 óh  — t         | cxk  r	t        k  sn t        d| › �«      ‚d|cxk  rdk  s@n d}|dk(  r't        | dd«      dz  }|dk(  s|dk(  rt	        | «      rd	}|rt        d
|› �«      ‚d|cxk  rdk  sn t        d|› d�«      ‚|dz
  dz  |dz
  z   }t        | «      }||z   }t        |«      S )NzYear is out of range: r   é5   Tr   rd   r"   r@   FzInvalid week: r°   zInvalid weekday: z (range is [1, 7]))r   r	   rz   r;   r&   Ú_isoweek1mondayrN   )r%   Úweekr9   Úout_of_rangeÚfirst_weekdayÚ
day_offsetÚday_1Úord_days           r   r½   r½   Õ  sØ   € ä�dÔ%œgÔ%ÜÐ1°$°Ð8Ó9Ð9àˆtŒ=�bŒ=Øˆà�2Š:ô % T¨1¨aÓ0°1Ñ4ˆMØ Ò" }¸Ò'9Ü'/°¤~Ø$�áÜ˜~¨d¨VÐ4Ó5Ð5àˆsŒ;�QŒ;ÜÐ,¨S¨EÐ1CÐDÓEÐEð ˜‘(˜a‘ 3¨¡7Ñ+€Jô ˜DÓ!€EØ�jÑ €Gä�GÓÐr   c                 óX   — | �(t        | t        «      st        dt        | «      z  «      ‚y y )Nz4tzinfo.tzname() must return None or string, not '%s')Ú
isinstanceÚstrÚ	TypeErrorÚtype)Únames    r   Ú_check_tznamerî   ö  s7   € ØÐ¤
¨4´Ô 5Üð #Ü%)¨$£Zñ0ó 1ð 	1ð !6Ðr   c                 óÎ   — | dv sJ ‚|€y t        |t        «      st        d| ›dt        |«      ›d�«      ‚t        d«       |cxk  rt        d«      k  sn t	        | ›d|›d�«      ‚y )N)r’   Údstztzinfo.z'() must return None or timedelta, not 'ú'r   z()=zG, must be strictly between -timedelta(hours=24) and timedelta(hours=24))ré   r   rë   rì   rz   )rí   Úoffsets     r   Ú_check_utc_offsetró     st   € ØÐ'Ñ'Ð'Ð'Ø€~ØÜ�fœiÔ(ÝÚ48¼$¸v½,ðHó Ið 	Iä�a‹Lˆ=˜6Ô0¤I¨a£LÔ0Üâ¢ð(ó )ð 	)ð 1r   c                 ó,  — t        | «      } t        |«      }t        |«      }t        | cxk  r	t        k  sn t        dt        t        fz  | «      ‚d|cxk  rdk  sn t        d|«      ‚t	        | |«      }d|cxk  r|k  sn t        d|z  |«      ‚| ||fS )Nzyear must be in %d..%dr   r+   r3   r7   )Ú_indexr   r	   rz   r1   r8   s       r   Ú_check_date_fieldsrö     s”   € Ü�$‹<€DÜ�5‹M€EÜ
�‹+€CÜ�dÔ%œgÔ%ÜÐ1´W¼gÐ4FÑFÈÓMÐMØ�Ô˜ÔÜÐ1°5Ó9Ð9Ü
˜˜uÓ
%€CØ�Œ?�sŒ?ÜÐ/°#Ñ5°sÓ;Ð;Ø�˜ÐÐr   c                 óP  — t        | «      } t        |«      }t        |«      }t        |«      }d| cxk  rdk  sn t        d| «      ‚d|cxk  rdk  sn t        d|«      ‚d|cxk  rdk  sn t        d|«      ‚d|cxk  rdk  sn t        d|«      ‚|d	vrt        d
|«      ‚| ||||fS )Nr   é   zhour must be in 0..23é;   zminute must be in 0..59zsecond must be in 0..59é?B z microsecond must be in 0..999999)r   r   zfold must be either 0 or 1)rõ   rz   )ÚhourÚminuteÚsecondr�   Úfolds        r   Ú_check_time_fieldsrÿ     s¸   € Ü�$‹<€DÜ�F‹^€FÜ�F‹^€FÜ˜Ó%€KØ�Œ?˜Œ?ÜÐ0°$Ó7Ð7Ø�Ô˜"ÔÜÐ2°FÓ;Ð;Ø�Ô˜"ÔÜÐ2°FÓ;Ð;Ø�Ô%˜vÔ%ÜÐ;¸[ÓIÐIØ�6ÑÜÐ5°tÓ<Ð<Ø�˜ ¨dÐ2Ð2r   c                 ó@   — | �t        | t        «      st        d«      ‚y y )Nz4tzinfo argument must be None or of a tzinfo subclass)ré   r   rë   )Útzs    r   Ú_check_tzinfo_argr  +  s#   € Ø	€~œj¨¬VÔ4ÜÐNÓOÐOð 5€~r   c                 ór   — t        dt        | «      j                  ›dt        |«      j                  ›d�«      ‚)Nzcan't compare 'z' to 'rñ   )rë   rì   Ú__name__r   s     r   Ú	_cmperrorr  /  s-   € Ý
Ü˜“G×$Ó$¤d¨1£g×&6Ó&6ð8ó 9ð 9r   c                 ót   — t        | |«      \  }}|dz  }|dkD  r||kD  n||k  }|s||k(  r|dz  dk(  r|dz  }|S )zšdivide a by b and round result to the nearest integer

    When the ratio is exactly half-way between two integers,
    the even integer is returned.
    r,   r   r   )rC   )ÚaÚbÚqÚrÚgreater_than_halfs        r   Ú_divide_and_roundr  3  sU   € ô �!�Q‹<�D€A€qð ˆ�F€AØ!" Q¢˜˜Aš¨A°©EÐÙ˜A šF q¨1¡u°¢zØ	ˆQ‰ˆà€Hr   c                   óî   — e Zd ZdZdZ	 	 d!d„Zd„ Zd„ Zd„ Ze	d„ «       Z
e	d„ «       Ze	d	„ «       Zd
„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Zd„ ZeZd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$y )"r   a²  Represent the difference between two datetime objects.

    Supported operators:

    - add, subtract timedelta
    - unary plus, minus, abs
    - compare to timedelta
    - multiply, divide by int

    In addition, datetime supports subtraction of two datetime objects
    returning a timedelta, and addition or subtraction of a datetime
    and a timedelta giving a datetime.

    Representation: (days, seconds, microseconds).
    )Ú_daysÚ_secondsÚ_microsecondsÚ	_hashcodec                 óÆ  — dx}x}	}
||dz  z  }||dz  |dz  z   z  }||dz  z  }t        |t        «      rjt        j                  |«      \  }}t        j                  |dz  «      \  }}|t	        |«      k(  sJ ‚t	        |«      }	|t	        |«      k(  sJ ‚t	        |«      }nd}|}t        |t        «      sJ ‚t        |«      dk  sJ ‚t        |t        «      sJ ‚t        |	«      d	k  sJ ‚t        |t        «      rHt        j                  |«      \  }}|t	        |«      k(  sJ ‚t	        |«      }||z  }t        |«      d
k  sJ ‚|}t        |t        «      sJ ‚t        |«      d
k  sJ ‚t        |t        «      sJ ‚t        |d	«      \  }}||z  }|	t	        |«      z  }	t        |	t        «      sJ ‚t        |	«      dk  sJ ‚|dz  }t        |«      dk  sJ ‚t        |t        «      r7t        ||z   «      }t        |d«      \  }}t        |d	«      \  }}||z  }|	|z  }	nAt	        |«      }t        |d«      \  }}t        |d	«      \  }}||z  }|	|z  }	t        ||z   «      }t        |	t        «      sJ ‚t        |t        «      sJ ‚t        |	«      dk  sJ ‚t        |«      dk  sJ ‚t        |d«      \  }}
|	|z  }	t        |	d	«      \  }}	||z  }t        |t        «      sJ ‚t        |	t        «      rd|	cxk  rd	k  sJ ‚ J ‚t        |
t        «      rd|
cxk  rdk  sJ ‚ J ‚t        |«      dkD  rt        d|z  «      ‚t        j                  | «      }||_        |	|_        |
|_        d|_        |S )Nr   rd   é<   é  rw   g     õ@g        g      ð?é€Q g       @i £ ç    €„.Ag    �@Aé@B i€ô g    °¦GAéÿÉš;z$timedelta # of days is too large: %dr   )ré   ÚfloatÚ_mathÚmodfr»   ÚabsrC   ÚroundÚOverflowErrorrž   Ú__new__r  r  r  r  )Úclsr‡   rs   ru   rt   rr   rq   Úweeksrh   rŠ   r{   ÚdayfracÚdaysecondsfracÚdaysecondswholeÚsecondsfracÚusdoubler   s                    r   r  ztimedelta.__new__]  s³  € ð ˆˆˆˆA�ð 	��a‘‰ˆØ�7˜2‘:  d¡
Ñ*Ñ*ˆØ˜ TÑ)Ñ)ˆô �dœEÔ"Ü!ŸJ™J tÓ,‰MˆG�TÜ.3¯j©j¸ÀIÑ9NÓ.OÑ+ˆN˜OØ"¤c¨/Ó&:Ò:Ð:Ð:Ü�OÓ$ˆAØœ3˜t›9Ò$Ð$Ð$Ü�D“	‰Aà ˆNØˆAÜ˜.¬%Ô0Ð0Ð0Ü�>Ó" cÒ)Ð)Ð)Ü˜!œSÔ!Ð!Ð!Ü�1‹v˜Ò"Ð"Ð"ô �gœuÔ%Ü#(§:¡:¨gÓ#6Ñ ˆK˜Øœc '›lÒ*Ð*Ð*Ü˜'“lˆGØ˜>Ñ)ˆKÜ�{Ó# sÒ*Ð*Ð*à(ˆKä˜+¤uÔ-Ð-Ð-Ü�;Ó 3Ò&Ð&Ð&ä˜'¤3Ô'Ð'Ð'Ü˜w¨Ó0‰ˆˆgØ	ˆT‰	ˆØ	ŒS�‹\ÑˆÜ˜!œSÔ!Ð!Ð!Ü�1‹v˜Ò&Ð&Ð&ð  Ñ$ˆÜ�8‹}˜uÒ$Ð$Ð$ô �l¤EÔ*Ü  °Ñ!8Ó9ˆLÜ$*¨<¸Ó$AÑ!ˆG�\Ü" 7¨GÓ4‰MˆD�'Ø�‰IˆAØ�‰L‰Aä˜|Ó,ˆLÜ$*¨<¸Ó$AÑ!ˆG�\Ü" 7¨GÓ4‰MˆD�'Ø�‰IˆAØ�‰LˆAÜ  °Ñ!8Ó9ˆLÜ˜!œSÔ!Ð!Ð!Ü˜,¬Ô,Ð,Ð,Ü�1‹v˜Ò&Ð&Ð&Ü�<Ó  5Ò(Ð(Ð(ô ˜\¨7Ó3‰ˆ�Ø	ˆW‰ˆÜ˜˜GÓ$‰ˆˆaØ	ˆT‰	ˆä˜!œSÔ!Ð!Ð!Ü˜!œSÔ! a¨1Ô&6¨wÒ&6Ð6Ð6Ð&6Ð6Ð6Ü˜"œcÔ" q¨BÔ'8°Ò'8Ð8Ð8Ð'8Ð8Ð8äˆq‹6�IÒÜÐ FÈÑ JÓKÐKä�~‰~˜cÓ"ˆØˆŒ
ØˆŒØˆÔØˆŒØˆr   c                 ó–  — g }| j                   r|j                  d| j                   z  «       | j                  r|j                  d| j                  z  «       | j                  r|j                  d| j                  z  «       |s|j                  d«       t	        | «      ›d| j
                  j                  ›ddj                  |«      ›d�S )	Nzdays=%dz
seconds=%dzmicroseconds=%dÚ0ú.ú(ú, ú))r  r—   r  r  r   r   Ú__qualname__rœ   )r   Úargss     r   Ú__repr__ztimedelta.__repr__Â  s™   € ØˆØ�:Š:Ø�K‰K˜	 D§J¡JÑ.Ô/Ø�=Š=Ø�K‰K˜ t§}¡}Ñ4Ô5Ø×ÒØ�K‰KÐ)¨D×,>Ñ,>Ñ>Ô?ÙØ�K‰K˜ÔÜ/°Õ5Ø"Ÿn™n×9Ó9Ø"Ÿi™i¨�oð/ð 	/r   c                 óð   — t        | j                  d«      \  }}t        |d«      \  }}d|||fz  }| j                  rd„ }d || j                  «      z  |z   }| j                  r|d| j                  z  z   }|S )Nr  z%d:%02d:%02dc                 ó2   — | t        | «      dk7  xr dxs dfS )Nr   rŠ   r�   )r  )rG   s    r   Úpluralz!timedelta.__str__.<locals>.pluralÕ  s   € Øœ#˜a›& A™+Ò-¨#Ò3°Ð3Ð3r   z
%d day%s, r†   )rC   r  r  r  )r   rj   rk   ri   rŠ   r2  s         r   Ú__str__ztimedelta.__str__Ð  s|   € Ü˜Ÿ™ rÓ*‰ˆˆBÜ˜˜B“‰ˆˆBØ˜b " b˜\Ñ)ˆØ�:Š:ò4à¡ t§z¡zÓ 2Ñ2°aÑ7ˆAØ×ÒØ�G˜d×0Ñ0Ñ0Ñ0ˆAØˆr   c                 ó`   — | j                   dz  | j                  z   dz  | j                  z   dz  S )zTotal seconds in the duration.r  r  )r‡   rs   ru   ©r   s    r   Útotal_secondsztimedelta.total_secondsÜ  s7   € à—‘˜UÑ" T§\¡\Ñ1°UÑ:Ø×!Ñ!ñ"Ø%*ñ+ð 	+r   c                 ó   — | j                   S ©r‡   ©r  r5  s    r   r‡   ztimedelta.daysâ  ó   € ð �z‰zÐr   c                 ó   — | j                   S ©rs   )r  r5  s    r   rs   ztimedelta.secondsç  s   € ð �}‰}Ðr   c                 ó   — | j                   S ©ru   )r  r5  s    r   ru   ztimedelta.microsecondsì  s   € ð ×!Ñ!Ð!r   c                 óÒ   — t        |t        «      rRt        | j                  |j                  z   | j                  |j                  z   | j                  |j                  z   «      S t
        S ©N©ré   r   r  r  r  ÚNotImplemented©r   Úothers     r   Ú__add__ztimedelta.__add__ñ  óX   € Ü�eœYÔ'ô ˜TŸZ™Z¨%¯+©+Ñ5Ø!Ÿ]™]¨U¯^©^Ñ;Ø!×/Ñ/°%×2EÑ2EÑEóGð Gô Ðr   c                 óÒ   — t        |t        «      rRt        | j                  |j                  z
  | j                  |j                  z
  | j                  |j                  z
  «      S t
        S r@  rA  rC  s     r   Ú__sub__ztimedelta.__sub__ü  rF  r   c                 ó:   — t        |t        «      r|  |z   S t        S r@  )ré   r   rB  rC  s     r   Ú__rsub__ztimedelta.__rsub__  s   € Ü�eœYÔ'Ø�5˜5‘=Ð ÜÐr   c                 ó^   — t        | j                   | j                   | j                   «      S r@  )r   r  r  r  r5  s    r   Ú__neg__ztimedelta.__neg__
  s.   € ô ˜$Ÿ*™*˜ØŸ-™-˜Ø×,Ñ,Ð,ó.ð 	.r   c                 ó   — | S r@  r   r5  s    r   Ú__pos__ztimedelta.__pos__  s   € Øˆr   c                 ó*   — | j                   dk  r|  S | S ©Nr   r9  r5  s    r   Ú__abs__ztimedelta.__abs__  s   € Ø�:‰:˜Š>Ø�5ˆLàˆKr   c                 ó0  — t        |t        «      r4t        | j                  |z  | j                  |z  | j
                  |z  «      S t        |t        «      r=| j                  «       }|j                  «       \  }}t        ddt        ||z  |«      «      S t        S rP  )ré   r»   r   r  r  r  r  Ú_to_microsecondsÚas_integer_ratior  rB  ©r   rD  Úusecr  r  s        r   Ú__mul__ztimedelta.__mul__  s�   € Ü�eœSÔ!ô ˜TŸZ™Z¨%Ñ/Ø!Ÿ]™]¨UÑ2Ø!×/Ñ/°%Ñ7ó9ð 9ô �eœUÔ#Ø×(Ñ(Ó*ˆDØ×)Ñ)Ó+‰DˆAˆqÜ˜Q Ô#4°T¸A±X¸qÓ#AÓBÐBÜÐr   c                 óZ   — | j                   dz  | j                  z   dz  | j                  z   S )Nr  r  ©r  r  r  r5  s    r   rS  ztimedelta._to_microseconds)  s/   € Ø—‘˜wÑ'¨$¯-©-Ñ7¸7ÑBØ×"Ñ"ñ#ð 	$r   c                 óâ   — t        |t        t        f«      st        S | j	                  «       }t        |t        «      r||j	                  «       z  S t        |t        «      rt        dd||z  «      S y rP  )ré   r»   r   rB  rS  )r   rD  rV  s      r   Ú__floordiv__ztimedelta.__floordiv__-  se   € Ü˜%¤#¤yÐ!1Ô2Ü!Ð!Ø×$Ñ$Ó&ˆÜ�eœYÔ'Ø˜5×1Ñ1Ó3Ñ3Ð3Ü�eœSÔ!Ü˜Q  4¨5¡=Ó1Ð1ð "r   c                 ót  — t        |t        t        t        f«      st        S | j                  «       }t        |t        «      r||j                  «       z  S t        |t        «      rt        ddt        ||«      «      S t        |t        «      r-|j                  «       \  }}t        ddt        ||z  |«      «      S y rP  )ré   r»   r  r   rB  rS  r  rT  rU  s        r   Ú__truediv__ztimedelta.__truediv__6  s¢   € Ü˜%¤#¤u¬iÐ!8Ô9Ü!Ð!Ø×$Ñ$Ó&ˆÜ�eœYÔ'Ø˜%×0Ñ0Ó2Ñ2Ð2Ü�eœSÔ!Ü˜Q Ô#4°T¸5Ó#AÓBÐBÜ�eœUÔ#Ø×)Ñ)Ó+‰DˆAˆqÜ˜Q Ô#4°Q¸±X¸qÓ#AÓBÐBð $r   c                 óŠ   — t        |t        «      r.| j                  «       |j                  «       z  }t        dd|«      S t        S rP  )ré   r   rS  rB  )r   rD  r
  s      r   Ú__mod__ztimedelta.__mod__B  s=   € Ü�eœYÔ'Ø×%Ñ%Ó'¨%×*@Ñ*@Ó*BÑBˆAÜ˜Q  1Ó%Ð%ÜÐr   c                 ó¢   — t        |t        «      r:t        | j                  «       |j                  «       «      \  }}|t        dd|«      fS t        S rP  )ré   r   rC   rS  rB  )r   rD  r	  r
  s       r   Ú
__divmod__ztimedelta.__divmod__H  sK   € Ü�eœYÔ'Ü˜$×/Ñ/Ó1Ø×0Ñ0Ó2ó4‰DˆAˆqà”i  1 aÓ(Ð(Ð(ÜÐr   c                 óV   — t        |t        «      r| j                  |«      dk(  S t        S rP  ©ré   r   r   rB  rC  s     r   Ú__eq__ztimedelta.__eq__Q  ó&   € Ü�eœYÔ'Ø—9‘9˜UÓ# qÑ(Ð(ä!Ð!r   c                 óV   — t        |t        «      r| j                  |«      dk  S t        S rP  rc  rC  s     r   Ú__le__ztimedelta.__le__W  re  r   c                 óV   — t        |t        «      r| j                  |«      dk  S t        S rP  rc  rC  s     r   Ú__lt__ztimedelta.__lt__]  ó&   € Ü�eœYÔ'Ø—9‘9˜UÓ# aÑ'Ð'ä!Ð!r   c                 óV   — t        |t        «      r| j                  |«      dk\  S t        S rP  rc  rC  s     r   Ú__ge__ztimedelta.__ge__c  re  r   c                 óV   — t        |t        «      r| j                  |«      dkD  S t        S rP  rc  rC  s     r   Ú__gt__ztimedelta.__gt__i  rj  r   c                 óv   — t        |t        «      sJ ‚t        | j                  «       |j                  «       «      S r@  )ré   r   r   Ú	_getstaterC  s     r   r   ztimedelta._cmpo  s-   € Ü˜%¤Ô+Ð+Ð+Ü�D—N‘NÓ$ e§o¡oÓ&7Ó8Ð8r   c                 ót   — | j                   dk(  rt        | j                  «       «      | _         | j                   S )Nr   ©r  Úhashrp  r5  s    r   Ú__hash__ztimedelta.__hash__s  s+   € Ø�>‰>˜RÒÜ! $§.¡.Ó"2Ó3ˆDŒNØ�~‰~Ðr   c                 ód   — | j                   dk7  xs  | j                  dk7  xs | j                  dk7  S rP  rY  r5  s    r   Ú__bool__ztimedelta.__bool__x  s6   € Ø—
‘
˜a‘ò (Ø—‘ Ñ"ò(à×"Ñ" aÑ'ð	)r   c                 óH   — | j                   | j                  | j                  fS r@  rY  r5  s    r   rp  ztimedelta._getstate  s   € Ø—
‘
˜DŸM™M¨4×+=Ñ+=Ð>Ð>r   c                 ó:   — | j                   | j                  «       fS r@  ©r   rp  r5  s    r   Ú
__reduce__ztimedelta.__reduce__‚  ó   € Ø—‘ §¡Ó 0Ð1Ð1r   N)r   r   r   r   r   r   r   )%r  r   r-  Ú__doc__Ú	__slots__r  r/  r3  r6  Úpropertyr‡   rs   ru   rE  Ú__radd__rH  rJ  rL  rN  rQ  rW  Ú__rmul__rS  r[  r]  r_  ra  rd  rg  ri  rl  rn  r   rt  rv  rp  rz  r   r   r   r   r   G  sä   „ ñð& B€Ià56Ø:;ócòJ/ò
ò+ð ñó ðð ñó ðð ñ"ó ð"òð €Hòòò
.òòòð €Hò$ò2ò
Còòò"ò"ò"ò"ò"ò9òò
)ò?ó2r   r   i6eÄr  rø   rù   rú   )r‡   rq   rr   rs   ru   r>  c                   ó0  — e Zd ZdZdZd$d„Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
ed	„ «       Zd
„ Zd„ Zd„ Zd„ Zd„ ZeZed„ «       Zed„ «       Zed„ «       Zd„ Zd„ Zd%d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z e Z!d„ Z"d„ Z#d„ Z$d „ Z%d!„ Z&d"„ Z'd#„ Z(y)&r   aÀ  Concrete date type.

    Constructors:

    __new__()
    fromtimestamp()
    today()
    fromordinal()

    Operators:

    __repr__, __str__
    __eq__, __le__, __lt__, __ge__, __gt__, __hash__
    __add__, __radd__, __sub__ (add/radd only with timedelta arg)

    Methods:

    timetuple()
    toordinal()
    weekday()
    isoweekday(), isocalendar(), isoformat()
    ctime()
    strftime()

    Properties (readonly):
    year, month, day
    )Ú_yearÚ_monthÚ_dayr  Nc                 óÜ  — |€�t        |t        t        f«      ryt        |«      dk(  rkdt	        |dd «      cxk  rdk  rTn nQt        |t        «      r	 |j                  d«      }t        j                  | «      }|j                  |«       d|_        |S t        |||«      \  }}}t        j                  | «      }||_        ||_        ||_        d|_        |S # t        $ r t        d«      ‚w xY w)	zVConstructor.

        Arguments:

        year, month, day (required, base 1)
        r"   r   r,   r@   r+   Úlatin1znFailed to encode latin1 string when unpickling a date object. pickle.load(data, encoding='latin1') is assumed.r   )ré   Úbytesrê   r˜   ÚordÚencodeÚUnicodeEncodeErrorrz   rž   r  Ú_date__setstater  rö   r‚  rƒ  r„  )r   r%   r0   r9   r   s        r   r  zdate.__new__¨  sê   € ð ˆMÜ�tœe¤S˜\Ô*¬s°4«y¸Aª~Ø”�T˜!˜A�Y“Ô% 2Õ%ä˜$¤Ô$ðLØŸ;™; xÓ0�Dô —>‘> #Ó&ˆDØ�O‰O˜DÔ!ØˆDŒNØˆKÜ-¨d°E¸3Ó?Ñˆˆe�SÜ�~‰~˜cÓ"ˆØˆŒ
ØˆŒØˆŒ	ØˆŒØˆøô! *ò Lä$ðKóLð LðLús   ÁC ÃC+c           	      óT   — t        j                  |«      \	  }}}}}}}}	}
 | |||«      S )z;Construct a date from a POSIX timestamp (like time.time()).)re   Ú	localtime)r   Útr   rg   rh   ri   rj   rk   ÚweekdayÚjdayrð   s              r   Úfromtimestampzdate.fromtimestampÊ  s3   € ô 38·/±/À!Ó2DÑ/ˆˆ1ˆa��R˜˜W d¨CÙ�1�a˜‹|Ðr   c                 óL   — t        j                  «       }| j                  |«      S )z"Construct a date from time.time().©re   r   r‘  )r   rŽ  s     r   Útodayz
date.todayÐ  s    € ô �J‰J‹LˆØ× Ñ  Ó#Ð#r   c                 ó4   — t        |«      \  }}} | |||«      S )z¦Construct a date from a proleptic Gregorian ordinal.

        January 1 of year 1 is day 1.  Only the year, month and day are
        non-zero in the result.
        )rN   )r   rG   r   rg   rh   s        r   Úfromordinalzdate.fromordinalÖ  s!   € ô ˜1“+‰ˆˆ1ˆaÙ�1�a˜‹|Ðr   c                 óÂ   — t        |t        «      st        d«      ‚t        |«      dvrt	        d|›�«      ‚	  | t        |«      Ž S # t        $ r t	        d|›�«      ‚w xY w)z2Construct a date from a string in ISO 8601 format.ú#fromisoformat: argument must be strrº   úInvalid isoformat string: )ré   rê   rë   r˜   rz   rÂ   Ú	Exception)r   Údate_strings     r   Úfromisoformatzdate.fromisoformatà  su   € ô ˜+¤sÔ+ÜÐAÓBÐBäˆ{Ó :Ñ-ÜÐ9¸+¸ÐIÓJÐJð	KÙÔ-¨kÓ:Ð;Ð;øÜò 	KÜÐ9¸+¸ÐIÓJÐJð	Kús   ¸A ÁAc                 ó"   —  | t        |||«      Ž S )z|Construct a date from the ISO year, week number and weekday.

        This is the inverse of the date.isocalendar() function)r½   )r   r%   râ   r9   s       r   Úfromisocalendarzdate.fromisocalendarî  s   € ñ
 Ô)¨$°°cÓ:Ð;Ð;r   c                 óŒ   — dt        | «      | j                  j                  | j                  | j                  | j
                  fz  S )zˆConvert to formal string, for repr().

        >>> d = date(2010, 1, 1)
        >>> repr(d)
        'datetime.date(2010, 1, 1)'
        z%s.%s(%d, %d, %d))r   r   r-  r‚  rƒ  r„  r5  s    r   r/  zdate.__repr__÷  s@   € ð #Ô&7¸Ó&=Ø&*§n¡n×&AÑ&AØ&*§j¡jØ&*§k¡kØ&*§i¡ið	&1ñ 1ð 	1r   c                 óš   — | j                  «       dz  xs d}dt        |   t        | j                     | j                  | j
                  fz  S )úReturn ctime() style string.rd   z%s %s %2d 00:00:00 %04d)Ú	toordinalÚ	_DAYNAMESÚ_MONTHNAMESrƒ  r„  r‚  ©r   r�  s     r   Úctimez
date.ctime	  sK   € à—.‘.Ó" QÑ&Ò+¨!ˆØ(Ü�gÑÜ˜Ÿ™Ñ$Ø�I‰I�t—z‘zð,#ñ #ð 	#r   c                 ó8   — t        | || j                  «       «      S )zQ
        Format using strftime().

        Example: "%d/%m/%Y, %H:%M:%S"
        )r©   rŸ   )r   rx   s     r   r�   zdate.strftime  s   € ô ˜d F¨D¯N©NÓ,<Ó=Ð=r   c                 ó¸   — t        |t        «      s!t        dt        |«      j                  z  «      ‚t        |«      dk7  r| j                  |«      S t        | «      S ©Nzmust be str, not %sr   ©ré   rê   rë   rì   r  r˜   r�   ©r   r~   s     r   Ú
__format__zdate.__format__  óK   € Ü˜#œsÔ#ÜÐ1´D¸³I×4FÑ4FÑFÓGÐGÜˆs‹8�qŠ=Ø—=‘= Ó%Ð%Ü�4‹yÐr   c                 óN   — d| j                   | j                  | j                  fz  S )zÌReturn the date formatted according to ISO.

        This is 'YYYY-MM-DD'.

        References:
        - http://www.w3.org/TR/NOTE-datetime
        - http://www.cl.cam.ac.uk/~mgk25/iso-time.html
        z%04d-%02d-%02d)r‚  rƒ  r„  r5  s    r   Ú	isoformatzdate.isoformat   s"   € ð   4§:¡:¨t¯{©{¸D¿I¹IÐ"FÑFÐFr   c                 ó   — | j                   S )zyear (1-9999))r‚  r5  s    r   r%   z	date.year.  r:  r   c                 ó   — | j                   S )zmonth (1-12))rƒ  r5  s    r   r0   z
date.month3  s   € ð �{‰{Ðr   c                 ó   — | j                   S )z
day (1-31))r„  r5  s    r   r9   zdate.day8  s   € ð �y‰yÐr   c           	      ó`   — t        | j                  | j                  | j                  dddd«      S )ú9Return local time tuple compatible with time.localtime().r   r   )ro   r‚  rƒ  r„  r5  s    r   rŸ   zdate.timetuple@  s*   € ä! $§*¡*¨d¯k©k¸4¿9¹9Ø"# Q¨¨2ó/ð 	/r   c                 óX   — t        | j                  | j                  | j                  «      S )z¶Return proleptic Gregorian ordinal for the year, month and day.

        January 1 of year 1 is day 1.  Only the year, month and day values
        contribute to the result.
        )r;   r‚  rƒ  r„  r5  s    r   r¢  zdate.toordinalE  s   € ô ˜Ÿ
™
 D§K¡K°·±Ó;Ð;r   c                 ó|   — |€| j                   }|€| j                  }|€| j                  } t        | «      |||«      S )z;Return a new date with new values for the specified fields.)r‚  rƒ  r„  rì   )r   r%   r0   r9   s       r   r›   zdate.replaceM  sA   € àˆ<Ø—:‘:ˆDØˆ=Ø—K‘KˆEØˆ;Ø—)‘)ˆCØŒt�D‹z˜$  sÓ+Ð+r   c                 óV   — t        |t        «      r| j                  |«      dk(  S t        S rP  ©ré   r   r   rB  rC  s     r   rd  zdate.__eq__Y  ó&   € Ü�eœTÔ"Ø—9‘9˜UÓ# qÑ(Ð(ÜÐr   c                 óV   — t        |t        «      r| j                  |«      dk  S t        S rP  r¸  rC  s     r   rg  zdate.__le__^  r¹  r   c                 óV   — t        |t        «      r| j                  |«      dk  S t        S rP  r¸  rC  s     r   ri  zdate.__lt__c  ó&   € Ü�eœTÔ"Ø—9‘9˜UÓ# aÑ'Ð'ÜÐr   c                 óV   — t        |t        «      r| j                  |«      dk\  S t        S rP  r¸  rC  s     r   rl  zdate.__ge__h  r¹  r   c                 óV   — t        |t        «      r| j                  |«      dkD  S t        S rP  r¸  rC  s     r   rn  zdate.__gt__m  r¼  r   c                 óÚ   — t        |t        «      sJ ‚| j                  | j                  | j                  }}}|j                  |j                  |j                  }}}t        |||f|||f«      S r@  )ré   r   r‚  rƒ  r„  r   )r   rD  r   rg   rh   Úy2Úm2Úd2s           r   r   z	date._cmpr  s]   € Ü˜%¤Ô&Ð&Ð&Ø—*‘*˜dŸk™k¨4¯9©9ˆaˆ1ˆØ—[‘[ %§,¡,°·
±
�ˆBˆÜ�Q˜˜1�I  B¨˜|Ó,Ð,r   c                 ót   — | j                   dk(  rt        | j                  «       «      | _         | j                   S )úHash.r   rr  r5  s    r   rt  zdate.__hash__x  s+   € à�>‰>˜RÒÜ! $§.¡.Ó"2Ó3ˆDŒNØ�~‰~Ðr   c                 óê   — t        |t        «      r^| j                  «       |j                  z   }d|cxk  r	t        k  r'n t        d«      ‚t        | «      j                  |«      S t        d«      ‚t        S )zAdd a date to a timedelta.r   úresult out of range)	ré   r   r¢  r‡   Ú_MAXORDINALrì   r–  r  rB  )r   rD  Úos      r   rE  zdate.__add__€  sc   € ä�eœYÔ'Ø—‘Ó  5§:¡:Ñ-ˆAØ�1Ô#œÔ#äÐ 5Ó6Ð6ô ˜D“z×-Ñ-¨aÓ0Ð0ÜÐ 5Ó6Ð6ÜÐr   c                 óÜ   — t        |t        «      r| t        |j                   «      z   S t        |t        «      r.| j	                  «       }|j	                  «       }t        ||z
  «      S t
        S )z.Subtract two dates, or a date and a timedelta.)ré   r   r‡   r   r¢  rB  )r   rD  Údays1Údays2s       r   rH  zdate.__sub__‹  sY   € ä�eœYÔ'Øœ) U§Z¡Z KÓ0Ñ0Ð0Ü�eœTÔ"Ø—N‘NÓ$ˆEØ—O‘OÓ%ˆEÜ˜U U™]Ó+Ð+ÜÐr   c                 ó.   — | j                  «       dz   dz  S )z:Return day of the week, where Monday == 0 ... Sunday == 6.rc   rd   ©r¢  r5  s    r   r�  zdate.weekday•  s   € à—‘Ó  1Ñ$¨Ñ)Ð)r   c                 ó0   — | j                  «       dz  xs dS )z:Return day of the week, where Monday == 1 ... Sunday == 7.rd   rÍ  r5  s    r   Ú
isoweekdayzdate.isoweekday›  s   € ð �~‰~Ó !Ñ#Ò( qÐ(r   c                 óZ  — | j                   }t        |«      }t        | j                   | j                  | j                  «      }t        ||z
  d«      \  }}|dk  r#|dz  }t        |«      }t        ||z
  d«      \  }}n|dk\  r|t        |dz   «      k\  r|dz  }d}t        ||dz   |dz   «      S )a¦  Return a named tuple containing ISO year, week number, and weekday.

        The first ISO week of the year is the (Mon-Sun) week
        containing the year's first Thursday; everything else derives
        from that.

        The first week is 1; Monday is 1 ... Sunday is 7.

        ISO calendar algorithm taken from
        http://www.phys.uu.nl/~vgent/calendar/isocalendar.htm
        (used with permission)
        rd   r   r   é4   )r‚  rá   r;   rƒ  r„  rC   Ú_IsoCalendarDate)r   r%   Úweek1mondayr”  râ   r9   s         r   Úisocalendarzdate.isocalendar   s²   € ð �z‰zˆÜ% dÓ+ˆÜ˜Ÿ™ T§[¡[°$·)±)Ó<ˆä˜5 ;Ñ.°Ó2‰	ˆˆcØ�!Š8Ø�A‰IˆDÜ)¨$Ó/ˆKÜ˜u {Ñ2°AÓ6‰IˆD‘#Ø�RŠZØœ¨¨Q©Ó/Ò/Ø˜‘	�Ø�Ü  d¨1¡f¨c°!©eÓ4Ð4r   c                 ó|   — t        | j                  d«      \  }}t        ||| j                  | j                  g«      fS ©Né   )rC   r‚  r‡  rƒ  r„  )r   ÚyhiÚylos      r   rp  zdate._getstate¾  s5   € Ü˜$Ÿ*™* cÓ*‰ˆˆSÜ�c˜3 §¡¨T¯Y©YÐ7Ó8Ð9Ð9r   c                 ó@   — |\  }}| _         | _        |dz  |z   | _        y rÖ  )rƒ  r„  r‚  )r   ÚstringrØ  rÙ  s       r   Ú
__setstatezdate.__setstateÂ  s#   € Ø+1Ñ(ˆˆS�$”+˜tœyØ˜3‘Y ‘_ˆ�
r   c                 ó:   — | j                   | j                  «       fS r@  ry  r5  s    r   rz  zdate.__reduce__Æ  r{  r   )NN)NNN))r  r   r-  r|  r}  r  Úclassmethodr‘  r”  r–  rœ  rž  r/  r¦  r�   r¬  r¯  r3  r~  r%   r0   r9   rŸ   r¢  r›   rd  rg  ri  rl  rn  r   rt  rE  r  rH  r�  rÏ  rÔ  rp  r‹  rz  r   r   r   r   r   Š  s8  „ ñð6 7€IóðD ñó ðð
 ñ$ó ð$ð
 ñó ðð ñKó ðKð ñ<ó ð<ò1ò$#ò>òò	Gð €Gð ñó ðð ñó ðð ñó ðò/ò
<ó,òò
ò
ò
ò
ò
-òòð €Hòò*ò)ò
5ò<:ò%ó2r   r   r+   r   r8  c                   ó2   — e Zd ZdZdZd„ Zd„ Zd„ Zd„ Zd„ Z	y)	r   zAbstract base class for time zone info classes.

    Subclasses must override the tzname(), utcoffset() and dst() methods.
    r   c                 ó   — t        d«      ‚)z%datetime -> string name of time zone.z&tzinfo subclass must override tzname()©ÚNotImplementedError©r   Údts     r   r–   ztzinfo.tzname×  s   € ä!Ð"JÓKÐKr   c                 ó   — t        d«      ‚)zIdatetime -> timedelta, positive for east of UTC, negative for west of UTCz)tzinfo subclass must override utcoffset()rá  rã  s     r   r’   ztzinfo.utcoffsetÛ  s   € ä!Ð"MÓNÐNr   c                 ó   — t        d«      ‚)z¡datetime -> DST offset as timedelta, positive for east of UTC.

        Return 0 if DST not in effect.  utcoffset() must include the DST
        offset.
        z#tzinfo subclass must override dst()rá  rã  s     r   rð   z
tzinfo.dstß  s   € ô "Ð"GÓHÐHr   c                 ó:  — t        |t        «      st        d«      ‚|j                  | urt	        d«      ‚|j                  «       }|€t	        d«      ‚|j                  «       }|€t	        d«      ‚||z
  }|r"||z  }|j                  «       }|€t	        d«      ‚||z   S )z*datetime in UTC -> datetime in local time.z&fromutc() requires a datetime argumentzdt.tzinfo is not selfz0fromutc() requires a non-None utcoffset() resultz*fromutc() requires a non-None dst() resultz;fromutc(): dt.dst gave inconsistent results; cannot convert)ré   r   rë   r   rz   r’   rð   )r   rä  ÚdtoffÚdtdstÚdeltas        r   Úfromutcztzinfo.fromutcç  s³   € ô ˜"œhÔ'ÜÐDÓEÐEØ�9‰9˜DÑ ÜÐ4Ó5Ð5à—‘“ˆØˆ=Üð &ó 'ð 'ð
 —‘“ˆØˆ=ÜÐIÓJÐJØ˜‘ˆÙØ�%‰KˆBØ—F‘F“HˆEØˆ}Ü ð ";ó <ð <à�E‰zÐr   c                 ón   — t        | dd «      }|r |«       }nd}| j                  || j                  «       fS )NÚ__getinitargs__r   )r™   r   Ú__getstate__)r   Úgetinitargsr.  s      r   rz  ztzinfo.__reduce__  s:   € Ü˜dÐ$5°tÓ<ˆÙÙ“=‰DàˆDØ—‘  d×&7Ñ&7Ó&9Ð:Ð:r   N)
r  r   r-  r|  r}  r–   r’   rð   rë  rz  r   r   r   r   r   Ð  s*   „ ñð €IòLòOòIòó:;r   r   c                   óZ   ‡ — e Zd Zˆ fd„Zed„ «       Zed„ «       Zed„ «       Zd„ Zd„ Z	ˆ xZ
S )ÚIsoCalendarDatec                ó*   •— t         ‰| �  | |||f«      S r@  )Úsuperr  )r   r%   râ   r�  r   s       €r   r  zIsoCalendarDate.__new__  s   ø€ Ü‰w‰˜s T¨4°Ð$9Ó:Ð:r   c                 ó   — | d   S rP  r   r5  s    r   r%   zIsoCalendarDate.year  ó   € à�A‰wˆr   c                 ó   — | d   S )Nr   r   r5  s    r   râ   zIsoCalendarDate.week  rõ  r   c                 ó   — | d   S ©Nr,   r   r5  s    r   r�  zIsoCalendarDate.weekday  rõ  r   c                 ó&   — t         t        | «      ffS r@  )Útupler5  s    r   rz  zIsoCalendarDate.__reduce__  s   € ô œ˜d›�~Ð&Ð&r   c                 óX   — | j                   j                  › d| d   › d| d   › d| d   › d�S )Nz(year=r   z, week=r   z
, weekday=r,   r,  )r   r  r5  s    r   r/  zIsoCalendarDate.__repr__#  s?   € Ø—>‘>×*Ñ*Ð+Ø˜˜a™˜	 ¨¨a©¨	°¸DÀ¹G¸9ÀAðGð 	Hr   )r  r   r-  r  r~  r%   râ   r�  rz  r/  Ú__classcell__)r   s   @r   rñ  rñ    sO   ø„ ô;ð ñó ðð ñó ðð ñó ðò'ö
Hr   rñ  c                   ó   — e Zd ZdZdZd"ddœd„Zed„ «       Zed„ «       Zed	„ «       Z	ed
„ «       Z
ed„ «       Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd#d„Zd„ Zd„ Zd„ Zd$d„ZeZed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Z	 	 d%ddœd„Zd&d„Z d„ Z!d „ Z"d!„ Z#y)'r   a<  Time with time zone.

    Constructors:

    __new__()

    Operators:

    __repr__, __str__
    __eq__, __le__, __lt__, __ge__, __gt__, __hash__

    Methods:

    strftime()
    isoformat()
    utcoffset()
    tzname()
    dst()

    Properties (readonly):
    hour, minute, second, microsecond, tzinfo, fold
    )Ú_hourÚ_minuteÚ_secondÚ_microsecondÚ_tzinfor  Ú_foldr   N©rþ   c                ó  — t        |t        t        f«      rxt        |«      dk(  rjt	        |dd «      dz  dk  rVt        |t        «      r	 |j                  d«      }t        j                  | «      }|j                  ||xs d«       d	|_        |S t        |||||«      \  }}}}}t        |«       t        j                  | «      }||_        ||_        ||_        ||_        ||_        d	|_        ||_        |S # t        $ r t        d«      ‚w xY w)
zÆConstructor.

        Arguments:

        hour, minute (required)
        second, microsecond (default to zero)
        tzinfo (default to None)
        fold (keyword only, default to zero)
        rc   r   r   é   rA   r†  znFailed to encode latin1 string when unpickling a time object. pickle.load(data, encoding='latin1') is assumed.Nr   )ré   r‡  rê   r˜   rˆ  r‰  rŠ  rz   rž   r  Ú_time__setstater  rÿ   r  rþ  rÿ  r   r  r  r  )r   rû   rü   rý   r�   r   rþ   r   s           r   r  ztime.__new__E  s  € ô �tœe¤S˜\Ô*¬s°4«y¸Aª~Ü��Q�q�	‹N˜4Ñ "Ò$ä˜$¤Ô$ðLØŸ;™; xÓ0�Dô —>‘> #Ó&ˆDØ�O‰O˜D &¢.¨DÔ1ØˆDŒNØˆKÜ2DØ�&˜& +¨tó35Ñ/ˆˆf�f˜k¨4ä˜&Ô!Ü�~‰~˜cÓ"ˆØˆŒ
ØˆŒØˆŒØ'ˆÔØˆŒØˆŒØˆŒ
Øˆøô+ *ò Lä$ðKóLð LðLús   Á
C7 Ã7Dc                 ó   — | j                   S ©zhour (0-23)©rþ  r5  s    r   rû   z	time.hourm  r:  r   c                 ó   — | j                   S ©zminute (0-59)©rÿ  r5  s    r   rü   ztime.minuter  ó   € ð �|‰|Ðr   c                 ó   — | j                   S ©zsecond (0-59)©r   r5  s    r   rý   ztime.secondw  r  r   c                 ó   — | j                   S ©zmicrosecond (0-999999)©r  r5  s    r   r�   ztime.microsecond|  ó   € ð × Ñ Ð r   c                 ó   — | j                   S ©ztimezone info object©r  r5  s    r   r   ztime.tzinfo�  r  r   c                 ó   — | j                   S r@  ©r  r5  s    r   rþ   z	time.fold†  ó   € à�z‰zÐr   c                 óZ   — t        |t        «      r| j                  |d¬«      dk(  S t        S )NT©Úallow_mixedr   ©ré   r   r   rB  rC  s     r   rd  ztime.__eq__Ž  s*   € Ü�eœTÔ"Ø—9‘9˜U°�9Ó5¸Ñ:Ð:ä!Ð!r   c                 óV   — t        |t        «      r| j                  |«      dk  S t        S rP  r  rC  s     r   rg  ztime.__le__”  ó&   € Ü�eœTÔ"Ø—9‘9˜UÓ# qÑ(Ð(ä!Ð!r   c                 óV   — t        |t        «      r| j                  |«      dk  S t        S rP  r  rC  s     r   ri  ztime.__lt__š  ó&   € Ü�eœTÔ"Ø—9‘9˜UÓ# aÑ'Ð'ä!Ð!r   c                 óV   — t        |t        «      r| j                  |«      dk\  S t        S rP  r  rC  s     r   rl  ztime.__ge__   r!  r   c                 óV   — t        |t        «      r| j                  |«      dkD  S t        S rP  r  rC  s     r   rn  ztime.__gt__¦  r#  r   c                 óÊ  — t        |t        «      sJ ‚| j                  }|j                  }d x}}||u rd}n%| j                  «       }|j                  «       }||k(  }|rdt	        | j
                  | j                  | j                  | j                  f|j
                  |j                  |j                  |j                  f«      S |�|€|ryt        d«      ‚| j
                  dz  | j                  z   |t        d¬«      z  z
  }|j
                  dz  |j                  z   |t        d¬«      z  z
  }	t	        || j                  | j                  f|	|j                  |j                  f«      S )NTr,   z$cannot compare naive and aware timesr  r   r…   )ré   r   r  r’   r   rþ  rÿ  r   r  rë   r   )
r   rD  r  ÚmytzÚottzÚmyoffÚotoffÚbase_compareÚmyhhmmÚothhmms
             r   r   z	time._cmp¬  sJ  € Ü˜%¤Ô&Ð&Ð&Ø�|‰|ˆØ�}‰}ˆØÐˆ�à�4‰<Ø‰Là—N‘NÓ$ˆEØ—O‘OÓ%ˆEØ  E™>ˆLáÜ˜Ÿ™ T§\¡\°4·<±<Ø×*Ñ*ð,àŸ™ e§m¡m°U·]±]Ø×+Ñ+ð-ó.ð .ð ˆ=˜E˜MÙØäÐ FÓGÐGØ—‘˜b‘ 4§<¡<Ñ/°%¼È1Ô9MÑ2MÑMˆØ—‘˜rÑ! E§M¡MÑ1°E¼9ÈQÔ;OÑ4OÑOˆÜ�V˜TŸ\™\¨4×+<Ñ+<Ð=Ø˜UŸ]™]¨E×,>Ñ,>Ð?óAð 	Ar   c                 óž  — | j                   dk(  �r2| j                  r| j                  d¬«      }n| }|j                  «       }|s-t	        |j                  «       d   «      | _         | j                   S t        t        | j                  | j                  ¬«      |z
  t        d¬«      «      \  }}|t        d¬«      z  rJ d«       ‚|t        d¬«      z  }d|cxk  rd	k  r?n n<t	        t        ||| j                  | j                  «      «      | _         | j                   S t	        ||| j                  | j                  f«      | _         | j                   S )
rÄ  r   r   r  ©rq   rr   r   r„   r…   zwhole minuterA   )r  rþ   r›   r’   rs  rp  rC   r   rû   rü   r   rý   r�   )r   rŽ  ÚtzoffÚhrg   s        r   rt  ztime.__hash__È  s  € à�>‰>˜RÓØ�yŠyØ—L‘L a�LÓ(‘à�Ø—K‘K“MˆEÙÜ!% a§k¡k£m°AÑ&6Ó!7�”ð �~‰~Ðô œi¨d¯i©iÀÇÁÔMÐPUÑUÜ'¨aÔ0ó2‘��1àœy°Ô3Ò3ÐC°^ÓCÐ3Ø”i¨Ô*Ñ*�Ø˜”;˜B•;Ü%)¬$¨q°!°T·[±[À$×BRÑBRÓ*SÓ%T�D”Nð �~‰~Ðô &*¨1¨a°·±¸d×>NÑ>NÐ*OÓ%P�D”NØ�~‰~Ðr   c                 ó8   — | j                  «       }t        |«      S )z=Return formatted timezone offset (+xx:xx) or an empty string.)r’   rŒ   )r   rˆ   s     r   Ú_tzstrztime._tzstrß  s   € à�n‰nÓˆÜ˜cÓ"Ð"r   c                 ó¬  — | j                   dk7  rd| j                  | j                   fz  }n!| j                  dk7  rd| j                  z  }nd}dt        | «      | j                  j                  | j
                  | j                  |fz  }| j                  �"|dd dk(  sJ ‚|dd d	| j                  z  z   dz   }| j                  r|dd dk(  sJ ‚|dd d
z   }|S )ú%Convert to formal string, for repr().r   z, %d, %dz, %dr�   z%s.%s(%d, %d%s)Nr   r,  ú, tzinfo=%rú	, fold=1))	r  r   r   r   r-  rþ  rÿ  r  r  ©r   rŠ   s     r   r/  ztime.__repr__ä  så   € à×Ñ Ò!Ø˜dŸl™l¨D×,=Ñ,=Ð>Ñ>‰AØ�\‰\˜QÒØ˜Ÿ™Ñ%‰AàˆAØÔ 1°$Ó 7Ø $§¡× ;Ñ ;Ø $§
¡
¨D¯L©L¸!ð =ñ =ˆð �<‰<Ð#Ø�R�S�6˜S’=Ð �=Ø�#�2�˜¨¯©Ñ5Ñ5¸Ñ;ˆAØ�:Š:Ø�R�S�6˜S’=Ð �=Ø�#�2�˜Ñ$ˆAØˆr   c                 ó¢   — t        | j                  | j                  | j                  | j                  |«      }| j                  «       }|r||z  }|S )a‹  Return the time formatted according to ISO.

        The full format is 'HH:MM:SS.mmmmmm+zz:zz'. By default, the fractional
        part is omitted if self.microsecond == 0.

        The optional argument timespec specifies the number of additional
        terms of the time to include. Valid options are 'auto', 'hours',
        'minutes', 'seconds', 'milliseconds' and 'microseconds'.
        )r   rþ  rÿ  r   r  r3  )r   r|   rŠ   r  s       r   r¯  ztime.isoformat÷  sG   € ô ˜Ÿ™ T§\¡\°4·<±<Ø×+Ñ+¨Xó7ˆà�[‰[‹]ˆÙØ�‰GˆAØˆr   c                 ó®   — t        |t        «      st        d«      ‚|j                  d«      }	  | t	        |«      Ž S # t
        $ r t        d|›�«      ‚w xY w)z>Construct a time from a string in one of the ISO 8601 formats.r˜  ÚTr™  )ré   rê   rë   ÚremoveprefixrÞ   rš  rz   )r   Útime_strings     r   rœ  ztime.fromisoformat
  sg   € ô ˜+¤sÔ+ÜÐAÓBÐBð
 "×.Ñ.¨sÓ3ˆð	KÙÔ-¨kÓ:Ð;Ð;øÜò 	KÜÐ9¸+¸ÐIÓJÐJð	Kús	   ®< ¼Ac           	      ón   — ddd| j                   | j                  | j                  dddf	}t        | ||«      S )z{Format using strftime().  The date part of the timestamp passed
        to underlying strftime should not be used.
        il  r   r   r   )rþ  rÿ  r   r©   )r   rx   rŸ   s      r   r�   ztime.strftime  s=   € ð ˜1˜aØ—Z‘Z §¡¨t¯|©|Ø˜˜2ðˆ	ô ˜d F¨IÓ6Ð6r   c                 ó¸   — t        |t        «      s!t        dt        |«      j                  z  «      ‚t        |«      dk7  r| j                  |«      S t        | «      S r©  rª  r«  s     r   r¬  ztime.__format__%  r­  r   c                 ón   — | j                   €y| j                   j                  d«      }t        d|«       |S )z^Return the timezone offset as timedelta, positive east of UTC
         (negative west of UTC).Nr’   ©r  r’   ró   ©r   rò   s     r   r’   ztime.utcoffset.  ó4   € ð �<‰<ÐØØ—‘×'Ñ'¨Ó-ˆÜ˜+ vÔ.Øˆr   c                 ól   — | j                   €y| j                   j                  d«      }t        |«       |S ©a  Return the timezone name.

        Note that the name is 100% informational -- there's no requirement that
        it mean anything in particular. For example, "GMT", "UTC", "-500",
        "-5:00", "EDT", "US/Eastern", "America/New York" are all valid replies.
        N©r  r–   rî   ©r   rí   s     r   r–   ztime.tzname7  ó2   € ð �<‰<ÐØØ�|‰|×"Ñ" 4Ó(ˆÜ�dÔØˆr   c                 ón   — | j                   €y| j                   j                  d«      }t        d|«       |S ©aq  Return 0 if DST is not in effect, or the DST offset (as timedelta
        positive eastward) if DST is in effect.

        This is purely informational; the DST offset has already been added to
        the UTC offset returned by utcoffset() if applicable, so there's no
        need to consult dst() unless you're interested in displaying the DST
        info.
        Nrð   ©r  rð   ró   rB  s     r   rð   ztime.dstD  ó4   € ð �<‰<ÐØØ—‘×!Ñ! $Ó'ˆÜ˜% Ô(Øˆr   c                óÜ   — |€| j                   }|€| j                  }|€| j                  }|€| j                  }|du r| j                  }|€| j
                  } t        | «      ||||||¬«      S )z;Return a new time with new values for the specified fields.Tr  )rû   rü   rý   r�   r   r  rì   )r   rû   rü   rý   r�   r   rþ   s          r   r›   ztime.replaceS  sx   € ð ˆ<Ø—9‘9ˆDØˆ>Ø—[‘[ˆFØˆ>Ø—[‘[ˆFØÐØ×*Ñ*ˆKØ�T‰>Ø—[‘[ˆFØˆ<Ø—:‘:ˆDØŒt�D‹z˜$ ¨°¸VÈ$ÔOÐOr   c                 ó  — t        | j                  d«      \  }}t        |d«      \  }}| j                  }| j                  r
|dkD  r|dz  }t	        || j
                  | j                  |||g«      }| j                  €|fS || j                  fS ©Nr×  r@   é€   )rC   r  rþ  r  r‡  rÿ  r   r  )r   ÚprotocolÚus2Úus3Úus1r1  Ú	basestates          r   rp  ztime._getstatef  sŒ   € Ü˜$×+Ñ+¨SÓ1‰ˆˆSÜ˜#˜sÓ#‰ˆˆSØ�J‰JˆØ�:Š:˜( Qš,Ø�‰HˆAÜ˜1˜dŸl™l¨D¯L©LØ  Sð*ó +ˆ	à�<‰<ÐØ�<Ðà˜tŸ|™|Ð,Ð,r   c                 óâ   — |�t        |t        «      st        d«      ‚|\  }| _        | _        }}}|dkD  rd| _        |dz
  | _        nd| _        || _        |dz  |z  dz  |z  | _        || _        y )Núbad tzinfo state argr  r   rP  r   r°   )	ré   Ú_tzinfo_classrë   rÿ  r   r  rþ  r  r  )r   rÛ  r   r1  rT  rR  rS  s          r   rÜ  ztime.__setstates  s|   € ØÐ¤j°¼Ô&GÜÐ2Ó3Ð3Ø7=Ñ4ˆˆ4Œ<˜œ s¨C°ØˆsŠ7ØˆDŒJØ˜S™ˆD�JàˆDŒJØˆDŒJØ" a™x¨3Ñ.°1Ñ4¸Ñ;ˆÔØˆ�r   c                 ó<   — | j                   | j                  |«      fS r@  ry  ©r   rQ  s     r   Ú__reduce_ex__ztime.__reduce_ex__€  ó   € Ø—‘ §¡¨xÓ 8Ð9Ð9r   c                 ó$   — | j                  d«      S rø  ©r[  r5  s    r   rz  ztime.__reduce__ƒ  ó   € Ø×!Ñ! !Ó$Ð$r   ©r   r   r   r   N©F©rv   )NNNNT©r@   )$r  r   r-  r|  r}  r  r~  rû   rü   rý   r�   r   rþ   rd  rg  ri  rl  rn  r   rt  r3  r/  r¯  r3  rÞ  rœ  r�   r¬  r’   r–   rð   r›   rp  r  r[  rz  r   r   r   r   r   ,  s)  „ ñð, _€Ið%ÐUVô %ðP ñó ðð ñó ðð ñó ðð ñ!ó ð!ð ñó ðð ñó ðò"ò"ò"ò"ò"óAò8ò.#ò
ó&ð" €GàñKó ðKò	7òòòòð HLØðPØ%)ôPó&-òò:ó%r   r   c                   ó  — e Zd ZdZej
                  ej
                  z   Z	 	 d2ddœd„Zed„ «       Z	ed„ «       Z
ed„ «       Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zed3d„«       Zed„ «       Zed3d„«       Zed„ «       Zed4d„«       Zed„ «       Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	 	 d5ddœd„Zd„ Zd3d„Zd„ Zd6d„Z d„ Z!d „ Z"ed!„ «       Z#d"„ Z$d#„ Z%d$„ Z&d%„ Z'd&„ Z(d'„ Z)d(„ Z*d)„ Z+d7d*„Z,d+„ Z-e-Z.d,„ Z/d-„ Z0d8d.„Z1d/„ Z2d0„ Z3d1„ Z4y)9r   zêdatetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])

    The year, month and day arguments are required. tzinfo may be None, or an
    instance of a tzinfo subclass. The remaining arguments may be ints.
    Nr   r  c	                ój  — t        |t        t        f«      rxt        |«      dk(  rjdt	        |dd «      dz  cxk  rdk  rPn nMt        |t        «      r	 t        |d«      }t        j                  | «      }
|
j                  ||«       d	|
_
        |
S t        |||«      \  }}}t        |||||	«      \  }}}}}	t        |«       t        j                  | «      }
||
_        ||
_        ||
_        ||
_        ||
_        ||
_        ||
_        ||
_        d	|
_
        |	|
_        |
S # t
        $ r t        d«      ‚w xY w)
Nr²   r   r,   r@   r  r+   r†  zrFailed to encode latin1 string when unpickling a datetime object. pickle.load(data, encoding='latin1') is assumed.r   )ré   r‡  rê   r˜   rˆ  rŠ  rz   rž   r  Ú_datetime__setstater  rö   rÿ   r  r‚  rƒ  r„  rþ  rÿ  r   r  r  r  )r   r%   r0   r9   rû   rü   rý   r�   r   rþ   r   s              r   r  zdatetime.__new__•  s;  € ä�tœe¤S˜\Ô*¬s°4«y¸BªØ”�T˜!˜A�Y“ Ñ$Ô*¨Õ*ä˜$¤Ô$ðLÜ   xÓ0�Dô —>‘> #Ó&ˆDØ�O‰O˜D %Ô(ØˆDŒNØˆKÜ-¨d°E¸3Ó?Ñˆˆe�SÜ2DØ�&˜& +¨tó35Ñ/ˆˆf�f˜k¨4ä˜&Ô!Ü�~‰~˜cÓ"ˆØˆŒ
ØˆŒØˆŒ	ØˆŒ
ØˆŒØˆŒØ'ˆÔØˆŒØˆŒØˆŒ
Øˆøô3 *ò Lä$ðKóLð LðLús   ÁD ÄD2c                 ó   — | j                   S r	  r
  r5  s    r   rû   zdatetime.hour¹  r:  r   c                 ó   — | j                   S r  r  r5  s    r   rü   zdatetime.minute¾  r  r   c                 ó   — | j                   S r  r  r5  s    r   rý   zdatetime.secondÃ  r  r   c                 ó   — | j                   S r  r  r5  s    r   r�   zdatetime.microsecondÈ  r  r   c                 ó   — | j                   S r  r  r5  s    r   r   zdatetime.tzinfoÍ  r  r   c                 ó   — | j                   S r@  r  r5  s    r   rþ   zdatetime.foldÒ  r  r   c           
      ó´  — t        j                  |«      \  }}t        |dz  «      }|dk\  r|dz  }|dz  }n|dk  r
|dz  }|dz  }|rt        j                  nt        j
                  } ||«      \	  }}}	}
}}}}}t        |d«      } | |||	|
||||«      }|€®|s¬d}||k  r!t        j                  j                  d«      r|S  |||z
  «      dd	 \  }}}	}
}} | |||	|
||||«      }||z
  t        d|«      z
  }|j                  dk  r= |||t        dd«      z  z   «      dd	 \  }}}	}
}} | |||	|
||||«      }||k(  rd|_        |S |�|j                  |«      }|S )
ú‚Construct a datetime from a POSIX timestamp (like time.time()).

        A timezone info object may be passed in as well.
        r  r  r   r   rù   Nr  Úwinrc   )r  r  r  re   Úgmtimer�  ÚminÚsysÚplatformÚ
startswithr   r‡   r  rë  )r   rŽ  rÖ   r  Úfracr{   Ú	converterr   rg   rh   ri   rj   rk   r�  r�  rð   ÚresultÚmax_fold_secondsÚprobe1ÚtransÚprobe2s                        r   Ú_fromtimestampzdatetime._fromtimestampÖ  s¨  € ô —*‘*˜Q“-‰ˆˆaÜ�4˜#‘:ÓˆØ�Š=Ø�‰FˆAØ�'‰M‰BØ�!ŠVØ�‰FˆAØ�'‰MˆBá$'”E—L’L¬U¯_©_ˆ	Ù2;¸A³,Ñ/ˆˆ1ˆa��R˜˜W d¨CÜ��R‹[ˆÙ�Q˜˜1˜b " b¨"¨bÓ1ˆØˆ:™cð  )Ðð Ð#Ò#¬¯©×(?Ñ(?ÀÔ(FØ�á"+¨AÐ0@Ñ,@Ó"AÀ"À1Ð"EÑˆAˆq�!�R˜˜RÙ˜˜A˜q " b¨"¨b°"Ó5ˆFØ˜V‘O¤i°Ð3CÓ&DÑDˆEØ�z‰z˜AŠ~Ù&/°°E¼YÀqÈ!»_Ñ4LÑ0LÓ&MÈbÈqÐ&QÑ#��1�a˜˜R Ù˜Q  1 b¨"¨b°"°bÓ9�Ø˜VÒ#Ø#$�F”Lð ˆð ˆ^Ø—Z‘Z Ó'ˆFØˆr   c                 óB   — t        |«       | j                  ||du|«      S )rn  N)r  r|  )r   Ú	timestampr  s      r   r‘  zdatetime.fromtimestamp  s%   € ô 	˜"Ôà×!Ñ! )¨R°t¨^¸RÓ@Ð@r   c                 ó`   — ddl }|j                  dt        d¬«       | j                  |dd«      S )z6Construct a naive UTC datetime from a POSIX timestamp.r   NzÍdatetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(t, datetime.UTC).r,   ©Ú
stacklevelT)ÚwarningsÚwarnÚDeprecationWarningr|  )r   rŽ  r‚  s      r   Úutcfromtimestampzdatetime.utcfromtimestamp  s=   € ó 	Ø�‰ð Jô )Ø!"ð 	ô 	$ð ×!Ñ! ! T¨4Ó0Ð0r   c                 óN   — t        j                  «       }| j                  ||«      S )zBConstruct a datetime from time.time() and optional time zone info.r“  )r   r  rŽ  s      r   Únowzdatetime.now  s"   € ô �J‰J‹LˆØ× Ñ   BÓ'Ð'r   c                 óˆ   — ddl }|j                  dt        d¬«       t        j                  «       }| j                  |dd«      S )z*Construct a UTC datetime from time.time().r   Nz¶datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).r,   r€  T)r‚  rƒ  r„  re   r   r|  )r   r‚  rŽ  s      r   Úutcnowzdatetime.utcnow  sG   € ó 	Ø�‰ð =ô )Ø!"ð 	ô 	$ô �J‰J‹LˆØ×!Ñ! ! T¨4Ó0Ð0r   c                 óP  — t        |t        «      st        d«      ‚t        |t        «      st        d«      ‚|du r|j                  } | |j
                  |j                  |j                  |j                  |j                  |j                  |j                  ||j                  ¬«	      S )z8Construct a datetime from a given date and a given time.z%date argument must be a date instancez%time argument must be a time instanceTr  )ré   Ú_date_classrë   Ú_time_classr   r%   r0   r9   rû   rü   rý   r�   rþ   )r   r   r   r   s       r   Úcombinezdatetime.combine+  sƒ   € ô ˜$¤Ô,ÜÐCÓDÐDÜ˜$¤Ô,ÜÐCÓDÐDØ�T‰>Ø—[‘[ˆFÙ�4—9‘9˜dŸj™j¨$¯(©(Ø—9‘9˜dŸk™k¨4¯;©;¸×8HÑ8HØ §	¡	ô+ð 	+r   c                 ó^  — t        |t        «      st        d«      ‚t        |«      dk  rt	        d|›�«      ‚	 t        |«      }|d| }||dz   d }t        |«      }|r	 t        |«      }ng d¢} | ||z   Ž S # t        $ r t	        d|›�«      d‚w xY w# t        $ r t	        d|›�«      d‚w xY w)zBConstruct a datetime from a string in one of the ISO 8601 formats.r˜  rd   r™  r   r   Nr`  )ré   rê   rë   r˜   rz   r¸   rÂ   rÞ   )r   r›  Úseparator_locationÚdstrrÈ   Údate_componentsÚtime_componentss          r   rœ  zdatetime.fromisoformat8  sý   € ô ˜+¤sÔ+ÜÐAÓBÐBäˆ{Ó˜aÒÜÐ9¸+¸ÐIÓJÐJð	HÜ!CÀKÓ!PÐØ˜qÐ!3Ð4ˆDØÐ 2°1Ñ 4Ð6Ð7ˆDä3°DÓ9ˆOñ
 ðLÜ"7¸Ó"=‘ò
 1ˆOá�_ Ñ6Ð8Ð8øô ò 	HÜØ,¨[¨OÐ<ó>ØCGðHð	Hûô ò LÜ Ø0°°Ð@óBØGKðLðLús   ¹#A7 ÁB Á7BÂB,c           	      óÔ   — | j                  «       }|€d}n|rd}nd}t        | j                  | j                  | j                  | j
                  | j                  | j                  |«      S )r´  r   r   r   )rð   ro   r%   r0   r9   rû   rü   rý   )r   rð   s     r   rŸ   zdatetime.timetupleW  sY   € à�h‰h‹jˆØˆ;Ø‰CÙØ‰CàˆCÜ! $§)¡)¨T¯Z©Z¸¿¹Ø"&§)¡)¨T¯[©[¸$¿+¹+Ø"%ó'ð 	'r   c                 ód  ‡
— t        ddd«      Š
d}| ‰
z
  t        dd«      z  }ˆ
fd„} ||«      |z
  }||z
  } ||«      }||k(  r'|| |f| j                     z   } ||«      |z
  }||k(  r|S ||z
  }||k7  sJ ‚||z
  } ||«      }	|	|k(  r|S ||k(  r|S t        t        f| j                     ||«      S )zReturn integer POSIX timestamp.é²  r   r  r   c                 ó‚   •— t        j                  | «      d d \  }}}}}}t        ||||||«      ‰z
  t        dd«      z  S )Nrc   r   r   )re   r�  r   r   )Úur   rg   rh   ri   rj   rk   Úepochs          €r   Úlocalzdatetime._mktime.<locals>.locali  sJ   ø€ Ü"'§/¡/°!Ó"4°R°aÐ"8ÑˆAˆq�!�R˜˜RÜ˜Q  1 b¨"¨bÓ1°EÑ9¼iÈÈ1»oÑMÐMr   )r   r   rþ   Úmaxrq  )r   rx  rŽ  r™  r  Úu1Út1Úu2r  Út2r˜  s             @r   Ú_mktimezdatetime._mktimed  së   ø€ ä˜˜q !Ó$ˆØ$ÐØ�E‰\œi¨¨1›oÑ-ˆô	Nñ
 �!‹H�q‰LˆØ�‰UˆÙ�2‹YˆØ�Š7ð Ð(Ð(Ð*:Ð;¸D¿I¹IÑFÑFˆBÙ�b“	˜B‘ˆAØ�AŠvØ�	à�R‘ˆAØ˜’6ˆM�6Ø�‰UˆÙ�2‹YˆØ�Š7ØˆIØ�Š7ØˆIô ”Sˆz˜$Ÿ)™)Ñ$ R¨Ó,Ð,r   c                 óŒ   — | j                   €"| j                  «       }|| j                  dz  z   S | t        z
  j	                  «       S )zReturn POSIX timestamp as floatr  )r  rŸ  r�   Ú_EPOCHr6  r8  s     r   r~  zdatetime.timestamp‡  s@   € à�<‰<ÐØ—‘“ˆAØ�t×'Ñ'¨#Ñ-Ñ-Ð-àœ6‘M×0Ñ0Ó2Ð2r   c           	      óâ   — | j                  «       }|r| |z  } | j                  | j                  | j                  }}}| j                  | j
                  | j                  }}}t        ||||||d«      S )z4Return UTC time tuple compatible with time.gmtime().r   )r’   r%   r0   r9   rû   rü   rý   ro   )r   rò   r   rg   rh   ri   rj   rk   s           r   Úutctimetuplezdatetime.utctimetuple�  sc   € à—‘Ó!ˆÙØ�F‰NˆDØ—)‘)˜TŸZ™Z¨¯©ˆaˆ1ˆØ—Y‘Y §¡¨T¯[©[�ˆBˆÜ! ! Q¨¨2¨r°2°qÓ9Ð9r   c                 óX   — t        | j                  | j                  | j                  «      S )zReturn the date part.)r   r‚  rƒ  r„  r5  s    r   r   zdatetime.date˜  s   € ä�D—J‘J §¡¨T¯Y©YÓ7Ð7r   c                 ó†   — t        | j                  | j                  | j                  | j                  | j
                  ¬«      S )z'Return the time part, with tzinfo None.r  )r   rû   rü   rý   r�   rþ   r5  s    r   r   zdatetime.timeœ  s.   € ä�D—I‘I˜tŸ{™{¨D¯K©K¸×9IÑ9IÐPT×PYÑPYÔZÐZr   c                 óœ   — t        | j                  | j                  | j                  | j                  | j
                  | j                  ¬«      S )z'Return the time part, with same tzinfo.r  )r   rû   rü   rý   r�   r  rþ   r5  s    r   Útimetzzdatetime.timetz   s6   € ä�D—I‘I˜tŸ{™{¨D¯K©K¸×9IÑ9IØ—L‘L t§y¡yô2ð 	2r   c	                ó6  — |€| j                   }|€| j                  }|€| j                  }|€| j                  }|€| j                  }|€| j
                  }|€| j                  }|du r| j                  }|	€| j                  }	 t        | «      |||||||||	¬«	      S )z?Return a new datetime with new values for the specified fields.Tr  )
r%   r0   r9   rû   rü   rý   r�   r   rþ   rì   )
r   r%   r0   r9   rû   rü   rý   r�   r   rþ   s
             r   r›   zdatetime.replace¥  s­   € ð ˆ<Ø—9‘9ˆDØˆ=Ø—J‘JˆEØˆ;Ø—(‘(ˆCØˆ<Ø—9‘9ˆDØˆ>Ø—[‘[ˆFØˆ>Ø—[‘[ˆFØÐØ×*Ñ*ˆKØ�T‰>Ø—[‘[ˆFØˆ<Ø—9‘9ˆDØŒt�D‹z˜$  s¨D°&¸&Ø% v°Dô:ð 	:r   c                 ó�  — | j                   €W| j                  «       }| j                  d| j                  z
  ¬«      j                  «       }||k7  r+||kD  | j                  k(  r|}n| t        z
  t        d¬«      z  }t        j                  |«      }t        |d d Ž }|j                  }|j                  }t        t        |¬«      |«      S )Nr   r  r<  rc   )r   rŸ  r›   rþ   r¡  r   re   r�  r   Ú	tm_gmtoffÚtm_zoner   )r   ÚtsÚts2Úlocaltmr™  ÚgmtoffÚzones          r   Ú_local_timezonezdatetime._local_timezone¾  s«   € Ø�;‰;ÐØ—‘“ˆBà—,‘, A d§i¡i¡K�,Ó0×8Ñ8Ó:ˆCØ�bŠyØ˜"‘H §¡Ò*Ø‘Bàœ‘-¤I°aÔ$8Ñ8ˆBÜ—/‘/ "Ó%ˆÜ˜' " 1˜+Ð&ˆà×"Ñ"ˆØ�‰ˆÜœ	¨&Ô1°4Ó8Ð8r   c                 óž  — |€| j                  «       }nt        |t        «      st        d«      ‚| j                  }|€"| j                  «       }|j	                  | «      }nD|j	                  | «      }|€1| j                  d ¬«      j                  «       }|j	                  | «      }||u r| S | |z
  j                  |¬«      }|j                  |«      S )Nz)tz argument must be an instance of tzinfo©r   )r±  ré   r   rë   r’   r›   rë  )r   r  r'  ÚmyoffsetrÖ   s        r   Ú
astimezonezdatetime.astimezoneÏ  sÅ   € Øˆ:Ø×%Ñ%Ó'‰BÜ˜B¤Ô'ÜÐGÓHÐHà�{‰{ˆØˆ<Ø×'Ñ'Ó)ˆDØ—~‘~ dÓ+‰Hà—~‘~ dÓ+ˆHØÐØ—|‘|¨4�|Ó0×@Ñ@ÓB�ØŸ>™>¨$Ó/�à�‰:ØˆKð �h‰×'Ñ'¨rÐ'Ó2ˆð �z‰z˜#‹Ðr   c                 óÜ   — | j                  «       dz  xs d}dt        |   t        | j                     | j                  | j
                  | j                  | j                  | j                  fz  S )r¡  rd   z%s %s %2d %02d:%02d:%02d %04d)	r¢  r£  r¤  rƒ  r„  rþ  rÿ  r   r‚  r¥  s     r   r¦  zdatetime.ctimeê  s_   € à—.‘.Ó" QÑ&Ò+¨!ˆØ.Ü�gÑÜ˜Ÿ™Ñ$Ø�I‰IØ�J‰J˜Ÿ™ d§l¡lØ�J‰Jð2ñ ð 	r   c                 ó  — d| j                   | j                  | j                  |fz  t        | j                  | j
                  | j                  | j                  |«      z   }| j                  «       }t        |«      }|r||z  }|S )aŒ  Return the time formatted according to ISO.

        The full format looks like 'YYYY-MM-DD HH:MM:SS.mmmmmm'.
        By default, the fractional part is omitted if self.microsecond == 0.

        If self.tzinfo is not None, the UTC offset is also attached, giving
        giving a full format of 'YYYY-MM-DD HH:MM:SS.mmmmmm+HH:MM'.

        Optional argument sep specifies the separator between date and
        time, default 'T'.

        The optional argument timespec specifies the number of additional
        terms of the time to include. Valid options are 'auto', 'hours',
        'minutes', 'seconds', 'milliseconds' and 'microseconds'.
        z%04d-%02d-%02d%c)
r‚  rƒ  r„  r   rþ  rÿ  r   r  r’   rŒ   )r   r‰   r|   rŠ   rˆ   r  s         r   r¯  zdatetime.isoformatô  sv   € ð    4§:¡:¨t¯{©{¸D¿I¹IÀsÐ"KÑKÜ˜$Ÿ*™* d§l¡l°D·L±LØ×+Ñ+¨Xó7ñ7ˆð �n‰nÓˆÜ˜CÓ ˆÙØ�‰GˆAàˆr   c           
      óò  — | j                   | j                  | j                  | j                  | j                  | j
                  | j                  g}|d   dk(  r|d= |d   dk(  r|d= t        | «      ›d| j                  j                  ›ddj                  t        t        |«      «      ›d�}| j                  �"|dd dk(  sJ ‚|dd d| j                  z  z   dz   }| j                  r|dd dk(  sJ ‚|dd d	z   }|S )
r5  r   r   r)  r*  r+  r,  Nr6  r7  )r‚  rƒ  r„  rþ  rÿ  r   r  r   r   r-  rœ   rÇ   rê   r  r  )r   ÚLrŠ   s      r   r/  zdatetime.__repr__  sô   € à�Z‰Z˜Ÿ™ d§i¡iØ�Z‰Z˜Ÿ™ t§|¡|°T×5FÑ5FðHˆàˆR‰5�AŠ:Ø�"�ØˆR‰5�AŠ:Ø�"�Ü,¨TÕ2ØŸ>™>×6Ó6ØŸ9™9¤S¬¨a£[Õ1ð3ˆð �<‰<Ð#Ø�R�S�6˜S’=Ð �=Ø�#�2�˜¨¯©Ñ5Ñ5¸Ñ;ˆAØ�:Š:Ø�R�S�6˜S’=Ð �=Ø�#�2�˜Ñ$ˆAØˆr   c                 ó&   — | j                  d¬«      S )zConvert to string, for str().ú r“   )r¯  r5  s    r   r3  zdatetime.__str__"  s   € à�~‰~ #ˆ~Ó&Ð&r   c                 ó0   — ddl }|j                  | ||«      S )zKstring, format -> new datetime parsed from a string (like time.strptime()).r   N)Ú	_strptimeÚ_strptime_datetime)r   r›  rx   r½  s       r   Ústrptimezdatetime.strptime&  s   € ó 	Ø×+Ñ+¨C°¸fÓEÐEr   c                 ón   — | j                   €y| j                   j                  | «      }t        d|«       |S )z\Return the timezone offset as timedelta positive east of UTC (negative west of
        UTC).Nr’   rA  rB  s     r   r’   zdatetime.utcoffset,  rC  r   c                 ól   — | j                   €y| j                   j                  | «      }t        |«       |S rE  rF  rG  s     r   r–   zdatetime.tzname5  rH  r   c                 ón   — | j                   €y| j                   j                  | «      }t        d|«       |S rJ  rK  rB  s     r   rð   zdatetime.dstB  rL  r   c                 ó|   — t        |t        «      r| j                  |d¬«      dk(  S t        |t        «      st        S y)NTr  r   F)ré   r   r   r   rB  rC  s     r   rd  zdatetime.__eq__S  s7   € Ü�eœXÔ&Ø—9‘9˜U°�9Ó5¸Ñ:Ð:Ü˜E¤4Ô(Ü!Ð!àr   c                 ó�   — t        |t        «      r| j                  |«      dk  S t        |t        «      st        S t        | |«       y rP  ©ré   r   r   r   rB  r  rC  s     r   rg  zdatetime.__le__[  ó:   € Ü�eœXÔ&Ø—9‘9˜UÓ# qÑ(Ð(Ü˜E¤4Ô(Ü!Ð!ä�d˜EÕ"r   c                 ó�   — t        |t        «      r| j                  |«      dk  S t        |t        «      st        S t        | |«       y rP  rÅ  rC  s     r   ri  zdatetime.__lt__c  ó:   € Ü�eœXÔ&Ø—9‘9˜UÓ# aÑ'Ð'Ü˜E¤4Ô(Ü!Ð!ä�d˜EÕ"r   c                 ó�   — t        |t        «      r| j                  |«      dk\  S t        |t        «      st        S t        | |«       y rP  rÅ  rC  s     r   rl  zdatetime.__ge__k  rÆ  r   c                 ó�   — t        |t        «      r| j                  |«      dkD  S t        |t        «      st        S t        | |«       y rP  rÅ  rC  s     r   rn  zdatetime.__gt__s  rÈ  r   c           
      ó(  — t        |t        «      sJ ‚| j                  }|j                  }d x}}||u rd}n…| j                  «       }|j                  «       }|r^|| j	                  | j
                   ¬«      j                  «       k7  ry||j	                  |j
                   ¬«      j                  «       k7  ry||k(  }|r¦t        | j                  | j                  | j                  | j                  | j                  | j                  | j                  f|j                  |j                  |j                  |j                  |j                  |j                  |j                  f«      S |�|€|ryt        d«      ‚| |z
  }|j                  dk  ry|xr dxs dS )NTr  r,   z(cannot compare naive and aware datetimesr   r   r   )ré   r   r  r’   r›   rþ   r   r‚  rƒ  r„  rþ  rÿ  r   r  rë   r‡   )	r   rD  r  r'  r(  r)  r*  r+  Údiffs	            r   r   zdatetime._cmp{  sc  € Ü˜%¤Ô*Ð*Ð*Ø�|‰|ˆØ�}‰}ˆØÐˆ�à�4‰<Ø‰Là—N‘NÓ$ˆEØ—O‘OÓ%ˆEáØ˜DŸL™L°$·)±)¨m˜LÓ<×FÑFÓHÒHØØ˜EŸM™M°5·:±:¨~˜MÓ>×HÑHÓJÒJØØ  E™>ˆLáÜ˜Ÿ™ T§[¡[°$·)±)ØŸ™ T§\¡\°4·<±<Ø×*Ñ*ð,ð Ÿ™ e§l¡l°E·J±JØŸ™ e§m¡m°U·]±]Ø×+Ñ+ð-ó.ð .ð ˆ=˜E˜MÙØäÐ JÓKÐKà�e‰|ˆØ�9‰9�qŠ=ØØŠz˜Š˜QÐr   c           
      ó*  — t        |t        «      st        S t        | j                  «       | j                  | j
                  | j                  | j                  ¬«      }||z  }t        |j                  d«      \  }}t        |d«      \  }}d|j                  cxk  r	t        k  rgn t'        d«      ‚t        | «      j                  t        j                  |j                  «      t!        ||||j"                  | j$                  ¬«      «      S t'        d«      ‚)zAdd a datetime and a timedelta.rÔ   r  r  r   r³  rÆ  )ré   r   rB  r¢  rþ  rÿ  r   r  rC   rs   r‡   rÇ  rì   r�  r   r–  r   ru   r  r  )r   rD  rê  rû   Úremrü   rý   s          r   rE  zdatetime.__add__   sé   € ä˜%¤Ô+Ü!Ð!Ü˜$Ÿ.™.Ó*Ø $§
¡
Ø"&§,¡,Ø"&§,¡,Ø'+×'8Ñ'8ô	:ˆð
 	�‰ˆÜ˜5Ÿ=™=¨$Ó/‰	ˆˆcÜ  R›‰ˆ�Øˆu�z‰zÔ(œ[Ô(ô
 Ð1Ó2Ð2ô	 ˜“:×%Ñ%¤d×&6Ñ&6°u·z±zÓ&BÜ&*¨4°¸Ø+0×+=Ñ+=Ø26·,±,ô'@óAð Aô Ð1Ó2Ð2r   c                 óN  — t        |t        «      st        |t        «      r| | z   S t        S | j	                  «       }|j	                  «       }| j
                  | j                  dz  z   | j                  dz  z   }|j
                  |j                  dz  z   |j                  dz  z   }t        ||z
  ||z
  | j                  |j                  z
  «      }| j                  |j                  u r|S | j                  «       }|j                  «       }||k(  r|S |�|€t        d«      ‚||z   |z
  S )z6Subtract two datetimes, or a datetime and a timedelta.r  r  z(cannot mix naive and timezone-aware time)ré   r   r   rB  r¢  r   rÿ  rþ  r  r  r’   rë   )	r   rD  rÊ  rË  Úsecs1Úsecs2Úbaser)  r*  s	            r   rH  zdatetime.__sub__µ  s  € ä˜%¤Ô*Ü˜%¤Ô+Ø˜u˜f‘}Ð$Ü!Ð!à—‘Ó ˆØ—‘Ó!ˆØ—‘˜tŸ|™|¨bÑ0Ñ0°4·:±:ÀÑ3DÑDˆØ—‘ §¡°Ñ 2Ñ2°U·[±[À4Ñ5GÑGˆÜ˜ ™Ø ™Ø×*Ñ*¨U×-?Ñ-?Ñ?óAˆð �<‰<˜5Ÿ=™=Ñ(ØˆKØ—‘Ó ˆØ—‘Ó!ˆØ�EŠ>ØˆKØˆ=˜E˜MÜÐFÓGÐGØ�e‰|˜eÑ#Ð#r   c                 óö  — | j                   dk(  rß| j                  r| j                  d¬«      }n| }|j                  «       }|€-t	        |j                  «       d   «      | _         | j                   S t        | j                  | j                  | j                  «      }| j                  dz  | j                  dz  z   | j                  z   }t	        t        ||| j                  «      |z
  «      | _         | j                   S )Nr   r   r  r  r  )r  rþ   r›   r’   rs  rp  r;   r%   r0   r9   rû   rü   rý   r   r�   )r   rŽ  r0  r‡   rs   s        r   rt  zdatetime.__hash__Í  sÉ   € Ø�>‰>˜RÒØ�yŠyØ—L‘L a�LÓ(‘à�Ø—K‘K“MˆEØˆ}Ü!% a§k¡k£m°AÑ&6Ó!7�”ð
 �~‰~Ðô   §	¡	¨4¯:©:°t·x±xÓ@�ØŸ)™) dÑ*¨T¯[©[¸2Ñ-=Ñ=ÀÇÁÑK�Ü!%¤i°°g¸t×?OÑ?OÓ&PÐSXÑ&XÓ!Y�”Ø�~‰~Ðr   c                 ó|  — t        | j                  d«      \  }}t        | j                  d«      \  }}t        |d«      \  }}| j                  }| j                  r
|dkD  r|dz  }t        |||| j                  | j                  | j                  | j                  |||g
«      }| j                  €|fS || j                  fS rO  )rC   r‚  r  rƒ  r  r‡  r„  rþ  rÿ  r   r  )	r   rQ  rØ  rÙ  rR  rS  rT  rg   rU  s	            r   rp  zdatetime._getstateÞ  s³   € Ü˜$Ÿ*™* cÓ*‰ˆˆSÜ˜$×+Ñ+¨SÓ1‰ˆˆSÜ˜#˜sÓ#‰ˆˆSØ�K‰KˆØ�:Š:˜( Qš,Ø�‰HˆAÜ˜3  Q¨¯	©	ØŸ:™: t§|¡|°T·\±\Ø  Sð*ó +ˆ	ð �<‰<ÐØ�<Ðà˜tŸ|™|Ð,Ð,r   c           
      ó  — |�t        |t        «      st        d«      ‚|\
  }}}| _        | _        | _        | _        }}}|dkD  rd| _        |dz
  | _        nd| _        || _        |dz  |z   | _	        |dz  |z  dz  |z  | _
        || _        y )NrW  r  r   rP  r   r×  r°   )ré   rX  rë   r„  rþ  rÿ  r   r  rƒ  r‚  r  r  )	r   rÛ  r   rØ  rÙ  rg   rT  rR  rS  s	            r   rÜ  zdatetime.__setstateí  sš   € ØÐ¤j°¼Ô&GÜÐ2Ó3Ð3à6<ñ	4ˆˆc�1�d”i ¤Ø	Œ�t”| S¨#¨sØˆsŠ7ØˆDŒJØ˜c™'ˆD�KàˆDŒJØˆDŒKØ˜3‘Y ‘_ˆŒ
Ø" a™x¨3Ñ.°1Ñ4¸Ñ;ˆÔØˆ�r   c                 ó<   — | j                   | j                  |«      fS r@  ry  rZ  s     r   r[  zdatetime.__reduce_ex__ü  r\  r   c                 ó$   — | j                  d«      S rø  r^  r5  s    r   rz  zdatetime.__reduce__ÿ  r_  r   )NNr   r   r   r   Nr@  )T)NNNNNNNT)r;  rv   ra  rc  )5r  r   r-  r|  r   r}  r   r  r~  rû   rü   rý   r�   r   rþ   rÞ  r|  r‘  r…  r‡  r‰  r�  rœ  rŸ   rŸ  r~  r£  r§  r›   r±  rµ  r¦  r¯  r/  r3  r¿  r’   r–   rð   rd  rg  ri  rl  rn  r   rE  r  rH  rt  rp  rf  r[  rz  r   r   r   r   r   �  sý  „ ñð
 —‘ §¡Ñ/€IàJKØ&*ð!Ø45ô!ðH ñó ðð ñó ðð ñó ðð ñ!ó ð!ð ñó ðð ñó ðð ñ)ó ð)ðV òAó ðAð ñ	1ó ð	1ð ò(ó ð(ð
 ñ
1ó ð
1ð ò
+ó ð
+ð ñ9ó ð9ò<'ò -òF3ò:ò8ò[ò2ð
 =AØCGð:àô:ò29ó"ò6óò6ò&'ð ñFó ðFò
òòò"ò#ò#ò#ò#ó#òJ3ð& €Hò$ò0ó"-òò:ó%r   r   c                 óR   — d}t        | dd«      }|dz   dz  }||z
  }||kD  r|dz  }|S )Nr@   r   rc   rd   )r;   )r%   ÚTHURSDAYÚfirstdayÚfirstweekdayrÓ  s        r   rá   rá   	  sG   € ð €HÜ˜˜a Ó#€HØ˜q‘L AÑ%€LØ˜\Ñ)€KØ�hÒØ�qÑˆØÐr   c                   óš   — e Zd ZdZ e«       Zefd„Zedd„«       Zd„ Z	d„ Z
d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Z edd¬«      Ze Zed„ «       Zy)r   )Ú_offsetÚ_namec                 ó<  — t        |t        «      st        d«      ‚|| j                  u r|s| j                  S d }nt        |t
        «      st        d«      ‚| j                  |cxk  r| j                  k  st        d«      ‚ t        d«      ‚| j                  ||«      S )Nzoffset must be a timedeltazname must be a stringzYoffset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).)
ré   r   rë   Ú_OmittedrÖ   rê   Ú
_minoffsetÚ
_maxoffsetrz   Ú_create)r   rò   rí   s      r   r  ztimezone.__new__	  sœ   € Ü˜&¤)Ô,ÜÐ8Ó9Ð9Ø�3—<‘<ÑÙØ—w‘w�Ø‰DÜ˜D¤#Ô&ÜÐ3Ó4Ð4Ø�~‰~ Ô9¨3¯>©>Ò9Üð 4ó 5ð 5ð :Üð 4ó 5ð 5ð �{‰{˜6 4Ó(Ð(r   Nc                 óL   — t         j                  | «      }||_        ||_        |S r@  )r   r  rÝ  rÞ  )r   rò   rí   r   s       r   rã  ztimezone._create(	  s#   € ä�~‰~˜cÓ"ˆØˆŒØˆŒ
Øˆr   c                 ód   — | j                   €| j                  fS | j                  | j                   fS )zpickle support)rÞ  rÝ  r5  s    r   rí  ztimezone.__getinitargs__/	  s+   € à�:‰:ÐØ—L‘L�?Ð"Ø—‘˜dŸj™jÐ)Ð)r   c                 ó`   — t        |t        «      r| j                  |j                  k(  S t        S r@  )ré   r   rÝ  rB  rC  s     r   rd  ztimezone.__eq__5	  s%   € Ü�eœXÔ&Ø—<‘< 5§=¡=Ñ0Ð0ÜÐr   c                 ó,   — t        | j                  «      S r@  )rs  rÝ  r5  s    r   rt  ztimezone.__hash__:	  s   € Ü�D—L‘LÓ!Ð!r   c                 ó  — | | j                   u ry| j                  €2t        | «      ›d| j                  j                  ›d| j
                  ›d�S t        | «      ›d| j                  j                  ›d| j
                  ›d| j                  ›d�S )a  Convert to formal string, for repr().

        >>> tz = timezone.utc
        >>> repr(tz)
        'datetime.timezone.utc'
        >>> tz = timezone(timedelta(hours=-5), 'EST')
        >>> repr(tz)
        "datetime.timezone(datetime.timedelta(-1, 68400), 'EST')"
        zdatetime.timezone.utcr)  r*  r,  r+  )rÖ   rÞ  r   r   r-  rÝ  r5  s    r   r/  ztimezone.__repr__=	  sq   € ð �4—8‘8ÑØ*Ø�:‰:ÐÜ"3°DÕ"9Ø"&§.¡.×"=Ó"=Ø"&§,£,ð0ð 0ô #4°DÕ"9Ø"&§.¡.×"=Ó"=Ø"&§,£,°·
³
ð<ð 	<r   c                 ó$   — | j                  d «      S r@  )r–   r5  s    r   r3  ztimezone.__str__Q	  s   € Ø�{‰{˜4Ó Ð r   c                 óT   — t        |t        «      s|€| j                  S t        d«      ‚)Nz8utcoffset() argument must be a datetime instance or None)ré   r   rÝ  rë   rã  s     r   r’   ztimezone.utcoffsetT	  s,   € Ü�bœ(Ô# r zØ—<‘<ÐÜð #ó $ð 	$r   c                 ó¢   — t        |t        «      s|€3| j                  €| j                  | j                  «      S | j                  S t        d«      ‚)Nz5tzname() argument must be a datetime instance or None)ré   r   rÞ  Ú_name_from_offsetrÝ  rë   rã  s     r   r–   ztimezone.tznameZ	  sK   € Ü�bœ(Ô# r zØ�z‰zÐ!Ø×-Ñ-¨d¯l©lÓ;Ð;Ø—:‘:ÐÜð #ó $ð 	$r   c                 ó>   — t        |t        «      s|€y t        d«      ‚)Nz2dst() argument must be a datetime instance or None)ré   r   rë   rã  s     r   rð   ztimezone.dstb	  s%   € Ü�bœ(Ô# r zØÜð #ó $ð 	$r   c                 óˆ   — t        |t        «      r(|j                  | urt        d«      ‚|| j                  z   S t        d«      ‚)Nzfromutc: dt.tzinfo is not selfz6fromutc() argument must be a datetime instance or None)ré   r   r   rz   rÝ  rë   rã  s     r   rë  ztimezone.fromutch	  sK   € Ü�bœ(Ô#Ø�y‰y Ñ$Ü ð "/ó 0ð 0à˜Ÿ™Ñ$Ð$Üð #ó $ð 	$r   rA   r   )rq   ru   c           
      ó0  — | sy| t        d«      k  rd}|  } nd}t        | t        d¬«      «      \  }}t        |t        d¬«      «      \  }}|j                  }|j                  }|rd|› |d›d	|d›d	|d›d
|d›�	S |rd|› |d›d	|d›d	|d›�S d|› |d›d	|d›�S )Nr
   r   r‚   rƒ   r   r„   r…   Ú02dr”   r)  Ú06d)r   rC   rs   ru   )rê  r‹   rq   Úrestrr   rs   ru   s          r   rì  ztimezone._name_from_offsett	  sØ   € áØØ”9˜Q“<ÒØˆDØ�F‰EàˆDÜ˜U¤I°AÔ$6Ó7‰ˆˆtÜ˜t¤Y°qÔ%9Ó:‰ˆ�Ø—,‘,ˆØ×(Ñ(ˆÙØ˜$˜  c˜{¨!¨G°C¨=¸¸'À#¸Ø˜ SÐ)ð+ð ,áØ˜˜˜u S˜k¨¨7°3¨-°q¸À¸ÐFÐFØ�T�F˜5 ˜+ Q w¨s mÐ4Ð4r   r@  )r  r   r-  r}  rž   rà  r  rÞ  rã  rí  rd  rt  r/  r3  r’   r–   rð   rë  r   râ  rá  Ústaticmethodrì  r   r   r   r   r   	  s€   „ Ø"€Iñ ‹x€HØ"*ó )ð òó ðò*òò
"ò<ò(!ò$ò$ò$ò$ñ  °"Ô5€JØ�€Jàñ5ó ñ5r   r   r/  r•  r³  rb  )r”   )Dr|  Ú__all__r   re   Úmathr  rr  Úoperatorr   rõ   r   r   r   r	   rÇ  r.   r4   Údbmr:   r—   r&   r)   r1   r5   r;   rD   rE   rF   rN   r¤  r£  ro   r   rŒ   r©   r­   r¸   rÂ   rÅ   rÏ   rÞ   r½   rî   ró   rö   rÿ   r  r  r  r   rq  rš  Ú
resolutionr   r‹  r   rú  rñ  rÒ  rX  rŒ  r   rá   r   rã  r
   rÖ   r¡  r   r   r   ú<module>rù     s   ðñð(€ó Û Û 
Ý $ò/òð €Ø
€Ø€ò F€à�TÐ Ø€Ø˜!˜"Ðò €CØ×Ñ˜cÔ"Øˆ3�J�Cðð ˆòBò*ò
!òFò
ñ ˜CÓ
 €Ù
˜CÓ
 €Ù
˜AÓ
€ð �ÒÐ Ðð �!�g‘+ ‘/Ò!Ð !Ð!ð �"�u‘*˜q‘.Ò Ð  Ð ò<ò~?€âC€	òIó
*ó*ò&@0òFò6òr!"òH 6Ð ò.ò`,ò^òB1ò
)òò3ò"Pò9ò÷(|2ñ |2ñ|	 ˜*Ó%€	„Ù˜y°¸BÈØ'-ô/€	„á ¨aÔ0€	Ô ÷}2ñ }2ð~	 €á��1�a‹=€„Ù��b˜"Ó€„Ù Ô#€„÷:;ñ :;ôzH�eô Hð6 #Ð ØØ€÷X%ñ X%ðt
 €á��1�a‹=€„Ù��B˜˜FÓ#€„Ù¨Ô+€„ôs	%ˆtô s	%ñl ˜˜1˜aÓ €„Ù˜˜b " b¨"¨b°&Ó9€„Ù¨QÔ/€Ô ò	ôr5ˆvô r5ðh ×%Ñ%¡i°£lÓ3Ð 3€€h„lð
 ×Ñ¡°¸RÔ!@Ð @ÓA€„Ø×Ñ¡	°¸BÔ ?Ó@€„Ù	�$˜˜1 X§\¡\Ô	2�r   