eSg SrSrSSKrSSKrSSKrSSKJr Sr Sr Sr Sr S r/S QrS /rSr\SSHr\R'\5 \\- rM CCS rS rSrSrSr\"S5r\"S5r\"S5r\S:Xde\S\-S-:Xde\S\-S- :XdeSr/SQr/SQrSrSGSjr SHSjr!Sr"Sr#Sr$S r%/S!Qr&S"r'S#r(S$r)S%r*S&r+S'r,S(r-S)r.S*r/"S+S,5r0\0"S-5\0l1\0"S.S/S0S0S1S29\0l2\0"SS39\0l3"S4S55r4\4r5\4"SSS5\4l1\4"SS6S75\4l2\0"SS89\4l3"S9S:5r6"S;S<\75r8\8r9C8\6r:"S=S>5r\r;\"SSS5\l1\"S/S0S0S15\l2\0"SS39\l3"S?S@\45r<\<"SSS5\\>R\0"S55=r@\>lA\>R\0"S/S0SD9*5\>l1\>R\0"S/S0SD95\>l2\<"SESS\>RSF9rBg)IzConcrete date/time and related types. See http://www.iana.org/time-zones/repository/tz-link.html for time zone and DST data sources. ) datedatetimetime timedeltatimezonetzinfoMINYEARMAXYEARUTCN)indexc"X:XaS$X:aS$S$)Nr )xys 1/opt/imh/python3.13/lib/python3.13/_pydatetime.py_cmprs1.A.B.c@URRnUS:XagU$)N _pydatetimer) __class__ __module__)self module_names r_get_class_modulers"..++Km#rri'i۹7) rrrrrrrrrrrcNUS-S:H=(a US-S:g=(d US-S:H$)zyear -> 1 if leap year, else 0.r dr)years r_is_leapr%1s* !8q= AdSjAo@qArc:US- nUS-US--US-- US--$)z2year -> number of days before January 1st of year.rmr!r"r#r)r$rs r_days_before_yearr(5s/ qA S51a4 number of days in that month in that year.r )r%_DAYS_IN_MONTHr$months r_days_in_monthr0:sB   "U" "U"  zhtnn %  rc|SUs=::a S::dS5e S5e[UUS:=(a [U5-$)zCyear, month -> number of days in year preceding first day of month.rr*month must be in 1..12r+)_DAYS_BEFORE_MONTHr%r.s r_days_before_monthr4AsD   555 555  e $ (Dhtn EErcSUs=::a S::dS5e S5e[X5nSUs=::aU::d O SU-5e[U5[X5-U-$)z>year, month, day -> ordinal, considering 01-Jan-0001 as day 1.rr*r2day must be in 1..%d)r0r(r4r$r/daydims r_ymd2ordr:Fsn   555 555   %C ?s?:3c9:? d # t + ,  rieir!c.US-n[U[5upUS-S-n[U[5up0[U[5up@[US5upPX#S-US--U-- nUS:XdUS:XaUS:XdeUS- SS4$US :H=(a US :g=(d US :HnU[ U5:XdeUS -S - n[ UUS :=(a U-nX:a US-nU[ UUS :H=(a U--nX-nSUs=::a[X'5:de eX'US-4$)z@ordinal -> (year, month, day), considering 01-Jan-0001 as day 1.rr#r'r"r!r r*r2r<r+)divmod_DI400Y_DI100Y_DI4Yr%r3r-r0) nn400r$n100n4n1leapyearr/ precedings r_ord2ymdrM_sN.FAQ GD #:>DQ GD 1e EB 1cNEB3Ja " $$D Qw$!)Av vAvr2~Qw2B"H1 H x~ %% % VME"5)UQY-C8DI}  ^E*eqj.EXFF NA  /N4/ // // / ! r) NJanFebMarAprMayJunJulAugSepOctNovDec)NMonTueWedThuFriSatSunc x[XU5S-S-n[X5U-n[R"XX#XEXxU4 5$)N)r:r4_time struct_time) rmdhhmmssdstflagwdaydnums r_build_struct_timernsC Q1  !Q &D a #a 'D   aA24wG HHrcSSSSSS.nUS:Xa U(aSOS nO US :XaUS -nXTnURXX#5$![a [S 5ef=f) Nz{:02d}z {:02d}:{:02d}z{:02d}:{:02d}:{:02d}z{:02d}:{:02d}:{:02d}.{:03d}z{:02d}:{:02d}:{:02d}.{:06d})hoursminutesseconds milliseconds microsecondsautortrrrszUnknown timespec value)formatKeyError ValueError)rhrirjustimespecspecsfmts r _format_timer~sx")55  E6%'>Y ^ # t *ozz"")) 31223s =AcDSnUbURS:aSnU*nOSn[U[SS95upE[U[SS95upVUSX4X4-- nU(dUR(a6US XR4-- nUR(aUS UR-- nU$) Nr -+rrprqz %s%02d%s%02dz%s%02d.%06d)daysrBrrtrr)offsepssignrhrirjs r_format_offsetrs A  88a<D$CDYQ/0Ia01 ^t1 11  S**-- -AWr.. HrcSnSnSnSn/nURnS[U5pX:GaXn U S- n U S:XGasX:GadXn U S- n U S:Xa&UcS[USS5-nURU5 GO@U S:XaIUc,[US5(a[ UR 5S S 9nOS nSU;deURU5 OU S :XavX:apXn U S- n U S:XaIUc,[US5(a[ UR 5S S 9nOS nSU;deURU5 OU"S5 U"U 5 U"U 5 OuU S :XaMUc8S n[US 5(a%UR 5n U bU RSS5nURU5 O"U"S5 U"U 5 OU"S5 OU"U 5 X:aGMS RU5n[R"Xr5$)Nr r%fz%06d microsecondz utcoffsetrr:Ztznamez%%) appendlengetattrhasattrrrrreplacejoinrdstrftime)objectrw timetuplefreplacezreplace colonzreplaceZreplace newformatpushirFchch2rs r_wrap_strftimersHHMHI   D c&kq % Y Q 9uYQ9'#)GF4A1-F$F$$X.3Y'"6;77'5f6F6F6Hb'QH')Hh...$$X.3Yu$iQ#:,4#*6;#?#?4B6CSCSCU[^4_M46M#&m#;;#;%,,]; I H I3Y'#%"6844 & A }+,99S$+?$$X.IHS Hg %h "I >>) //rc US;$)N 0123456789r)cs r_is_ascii_digitrs rc[U5nUS:XagUS:deSnSnUSU:XaWUSU:XaMUS:a [S5eUS:a5USU:Xa,US:Xa [S5eUS :a[US 5(agg gg USU:Xa9SnXA:a[X5(dO US - nXA:aMUS:aU$US -S :Xaggg) NrcrWr!r<zInvalid ISO string rr+r )rryr)dtstr len_dtstrdate_separatorweek_indicatoridxs r"_find_isoformat_datetime_separatorrsE IA~ q==NN Qx>! 8~ %1} !5661}q^!;>$%9::r>oeBi&@&@ 8~ %C/&uz22q/ Qw Qw!|rc[U5S;de[USS5nUSS:HnSU-nXUS-S:XamUS- n[XUS-5nUS- nSn[U5U:a-XUS-S:HU:wa [S5eX2- n[XUS-5n[[ XU55$[XUS-5nUS- nXUS-S:HU:wa [S5eX2- n[XUS-5nXU/$) Nrcrrr r!rrrr+z"Inconsistent use of dash separator)rintrylist_isoweek_to_gregorian)rr$has_sepposweeknodaynor/r8s r_parse_isoformat_daterOs4 u: ## # uQqz?DAh#oG g+C qS  qUsQw'( q u: #'"c)g5 !EFF NC#'*+E)$>??EcAg&' q cAg # %' 1AB B %C!G$%S!!r)ii'rvr"rc.[U5n/SQnSn[SS5HmnX- S:a [S5e[XUS-5X$'US- nXUS-nUS:XaUS:HnU(aUS:a O#W(aUS:wa[SU-5eX6- nMo X1:aXS ;a [S 5eUS- n[ [ [ XS55(d [S 5eX- nUS :aS nOUn[XX8-5US'US :aUS==[US- -ss'U$) N)r r r r r r?r+zIncomplete time componentrrzInvalid time separator: %cz.,zInvalid microsecond componentzNon-digit values in fractionrb)rrangeryrallmapr_FRACTION_CORRECTION) tstrlen_str time_compsrcomp next_charr len_remainderto_parses r_parse_hh_mm_ss_ffrvs@$iGJ Ca  MQ 89 9tA/  qSUO 193&GDAI  yC'9IEF F %( } 9D <= = 1HCs?DJ788 !?@@#MM!(#, 89JqM!|1 !5hqj!AA rc[U5nUS:a [S5eURS5S-=(d/ URS5S-=(d URS5S-nUS:aUSUS- OUn[U5nSnX!:XaUSS:Xa[R nOUS:aXSn[U5S ;a [S 5e[U5n[ S U55(a[R nO4XS- S:XaSOSn[USUSUSUS S 9n [ X-5nURU5 U$)Nr+zIsoformat time too shortrrrrr r)r rr?zMalformed time zone stringc3*# UH oS:Hv M g7f)r Nr).0rs r (_parse_isoformat_time..s(x!Avxsr?rprqrrrt) rryfindrrutcrrr) rrtz_postimestrrtzitzstrtz_compstzsigntds r_parse_isoformat_timers>$iG{344iinq LDIIcNQ$6L$))C.1:LF!'!d9F1HoG#G,J C T"X_ll !W  u: "9: :%e, (x( ( (,,C +s2RF!hqk#+A;Xa[JB6;'Cc rc[Us=::a [::dO [SU35eSUs=:aS:dMO SnUS:Xa.[USS5S-nUS:XdUS:Xa[ U5(aS nU(a[S U35eSUs=:aS :dO [S US 35eUS- S-US- -n[ U5nXe-n[ U5$)NzYear is out of range: r 5Trrcr!r?FzInvalid week: rzInvalid weekday: z (range is [1, 7]))rr ryr:r%_isoweek1mondayrM)r$weekr8 out_of_range first_weekday day_offsetday_1ord_days rrrs d %g %1$899 t=b= 2:%T1a014M"}'9'/~~$ ~dV45 5 s;Q;,SE1CDEE(a37+J D !E G G rcdUb-[U[5(d[S[U5-5egg)Nz4tzinfo.tzname() must return None or string, not '%s') isinstancestr TypeErrortype)names r _check_tznamers:  4 5 5#%)$Z01 1!6rcUS;deUcg[U[5(d[SU<S[U5<S35e[S5*Us=:a[S5:dO [ U<SU<S35eg)N)rdstztzinfo.z'() must return None or timedelta, not ''rz()=zG, must be strictly between -timedelta(hours=24) and timedelta(hours=24))rrrrry)roffsets r_check_utc_offsetrsw ' '' ' ~ fi ( (48$v,HI I aL=6 0IaL 0() ) 1rc4[U5n[U5n[U5n[Us=::a [::dO [S[[4-U5eSUs=::aS::dO [SU5e[ X5nSUs=::aU::dO [SU-U5eXU4$)Nzyear must be in %d..%drr*r2r6)_indexrr ryr0r7s r_check_date_fieldsr s $"c)))!S!!!!1v""" gu % %#(::g#6 Kc'l* **'lG  )K{#s* **(K+u----;3&&&'3''''w0   S\!S!!!!1v&&&$8}u$$$ lE * * !89L$*<$A !G"7G4MD IA LA|,L$*<$A !G"7G4MD IA LA !89L!S!!!!,,,,,1v&&&< 5(((\73  G$ !S!!!!!S!!a1&6w&666&666"c""qB'8'888'888 q6I  F JK K~~c"   rc/nUR(aURSUR-5 UR(aURSUR-5 UR(aURSUR-5 U(dURS5 [ U5<SUR R <SSRU5<S3$) Nzdays=%dz seconds=%dzmicroseconds=%d0.(, ))r rr r rr __qualname__r)rargss r__repr__timedelta.__repr__s :: KK DJJ. / == KK t}}4 5    KK)D,>,>> ? KK /5"nn99"iio/ /rc[URS5up[US5up1SX1U4-nUR(aSnSU"UR5-U-nUR(aUSUR--nU$)Nrz %d:%02d:%02dcFU[U5S:g=(a S=(d S4$)Nrrr)r)rFs rplural!timedelta.__str__..plurals#a&A+-#333rz %d day%s, r)rBr r r )rrirjrhrr1s r__str__timedelta.__str__sv r*B bb\ ) :: 4tzz 22a7A   Gd0000Arc`URS-UR-S-UR-S- $)zTotal seconds in the duration.rr)rrrrtrs r total_secondstimedelta.total_secondss7U"T\\1U:!!"%*+ +rcUR$rr r6s rrtimedelta.dayszzrcUR$rr)r r6s rrrtimedelta.secondss}}rcUR$rt)r r6s rrttimedelta.microsecondss!!!rc[U[5(aR[URUR-URUR-URUR-5$[ $Nrrr r r NotImplementedrothers r__add__timedelta.__add__[ eY ' 'TZZ%++5!]]U^^;!//%2E2EEG Grc[U[5(aR[URUR- URUR- URUR- 5$[ $rErFrHs r__sub__timedelta.__sub__rLrcD[U[5(aU*U-$[$rE)rrrGrHs r__rsub__timedelta.__rsub__s! eY ' '55= rc^[UR*UR*UR*5$rE)rr r r r6s r__neg__timedelta.__neg__s.$**--,,,. .rcU$rErr6s r__pos__timedelta.__pos__ s rc,URS:aU*$U$Nr r;r6s r__abs__timedelta.__abs__s ::>5LKrc@[U[5(a4[URU-URU-UR U-5$[U[ 5(a;UR5nUR5up4[SS[X#-U55$[$rZ) rrrr r r r_to_microsecondsas_integer_ratior rGrrIusecrrs r__mul__timedelta.__mul__s eS ! !TZZ%/!]]U2!//%79 9 eU # #((*D))+DAQ#4TXq#AB BrcZURS-UR-S-UR-$)Nrrr r r r6s rr^timedelta._to_microseconds$s/w'$--77B""# $rc[U[[45(d[$UR 5n[U[5(aX!R 5-$[U[5(a[SSX!-5$grZ)rrrrGr^)rrIras r __floordiv__timedelta.__floordiv__(sj%#y!122! !$$& eY ' '1133 3 eS ! !Q4=1 1 "rc[U[[[45(d[$UR 5n[U[5(aX!R 5- $[U[5(a[SS[ X!55$[U[5(a+UR5up4[SS[ XB-U55$grZ)rrrrrGr^r r_r`s r __truediv__timedelta.__truediv__1s%#ui!899! !$$& eY ' '0022 2 eS ! !Q#4T#AB B eU # #))+DAQ#4QXq#AB B $rc[U[5(a.UR5UR5-n[SSU5$[$rZ)rrr^rG)rrIrs r__mod__timedelta.__mod__=s@ eY ' '%%'%*@*@*BBAQ1% %rc[U[5(a9[UR5UR55up#U[SSU54$[$rZ)rrrBr^rG)rrIrrs r __divmod__timedelta.__divmod__CsL eY ' '$//10024DAi1a(( (rc`[U[5(aURU5S:H$[$rZrrrrGrHs r__eq__timedelta.__eq__L) eY ' '99U#q( (! !rc`[U[5(aURU5S:*$[$rZrtrHs r__le__timedelta.__le__Rrwrc`[U[5(aURU5S:$[$rZrtrHs r__lt__timedelta.__lt__X) eY ' '99U#a' '! !rc`[U[5(aURU5S:$[$rZrtrHs r__ge__timedelta.__ge__^rwrc`[U[5(aURU5S:$[$rZrtrHs r__gt__timedelta.__gt__dr~rc[U[5(de[UR5UR55$rE)rrr _getstaterHs rrtimedelta._cmpjs0%++++DNN$eoo&788rcvURS:Xa[UR55UlUR$)Nrrhashrr6s r__hash__timedelta.__hash__ns+ >>R !$.."23DN~~rcxURS:g=(d% URS:g=(d URS:g$rZrer6s r__bool__timedelta.__bool__ss6 a( "(""a' )rcHURURUR4$rErer6s rrtimedelta._getstatezs DMM4+=+=>>rc:URUR54$rErrr6s r __reduce__timedelta.__reduce__} 011r)r rr r N)r r r r r r r )'__name__rr+__firstlineno____doc__ __slots__rr-r3r7propertyrrrrtrJ__radd__rNrQrTrWr[rb__rmul__r^rhrkrnrqruryr|rrrrrrr__static_attributes__rrrrrBs&BI56:;cJ / + ""H . H$2 C " " " " " 9 )?2rri6errrr)rrprqrrrtrBc@\rSrSrSrSrS&Sjr\S5r\S5r \S5r \S 5r \S 5r S r S rS rSrSr\r\S5r\S5r\S5rSrSrS'Sjr\rSrSrSrSrSrSr Sr!Sr"\"r#Sr$Sr%S r&S!r'S"r(S#r)S$r*S%r+g)(riatConcrete 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_dayrNcUc[U[[45(a[U5S:XarS[ USS5s=::aS::aYO OV[U[5(aUR S5n[RU5nURU5 SUl U$[XU5upn[RU5nXl X$lX4lSUl U$![ a [S5ef=f) z>Constructor. Arguments: year, month, day (required, base 1) r!rr+r?r*latin1znFailed to encode latin1 string when unpickling a date object. pickle.load(data, encoding='latin1') is assumed.r)rbytesrrordencodeUnicodeEncodeErrorryrr_date__setstaterrrrr)rr$r/r8rs rr date.__new__s M teS\ * *s4yA~ T!AY %2 %$$$L;;x0D>>#&D OOD !DNK-d3?S~~c"    !*L$KLLLs CC5c hUc [S5e[R"U5u p#pEpgpn U"X#U5$)z;Construct a date from a POSIX timestamp (like time.time()).z5'NoneType' object cannot be interpreted as an integer)rrd localtime) rtrrfrgrhrirjweekdayjdayrs r fromtimestampdate.fromtimestamps: 9ST T27//!2D/aRWC1|rcN[R"5nURU5$)z"Construct a date from time.time().rdrr)rrs rtoday date.todays  JJL  ##rc0[U5up#nU"X#U5$)zConstruct 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. )rM)rrFrrfrgs r fromordinaldate.fromordinals1+a1|rc[U[5(d [S5e[U5S;a[ SU<35eU"[ U56$![ a [ SU<35ef=f)z2Construct a date from a string in ISO 8601 format.#fromisoformat: argument must be strrInvalid isoformat string: )rrrrryr Exception)r date_strings r fromisoformatdate.fromisoformatsx+s++AB B { : -9+IJ J K-k:; ; K9+IJ J Ks AA(c U"[XU56$)ztConstruct a date from the ISO year, week number and weekday. This is the inverse of the date.isocalendar() function)r)rr$rr8s rfromisocalendardate.fromisocalendars )$c:;;rcS[U5URRURURUR 4-$)zhConvert to formal string, for repr(). >>> d = date(2010, 1, 1) >>> repr(d) 'datetime.date(2010, 1, 1)' z%s.%s(%d, %d, %d))rrr+rrrr6s rr- date.__repr__s@#&7&=&*nn&A&A&*jj&*kk&*ii &11 1rcUR5S-=(d SnS[U[URURUR 4-$)Return ctime() style string.rcz%s %s %2d 00:00:00 %04d) toordinal _DAYNAMES _MONTHNAMESrrrrrs rctime date.ctimesK.."Q&+!( g   $ IItzz,## #rc6[XUR55$)z9 Format using strftime(). Example: "%d/%m/%Y, %H:%M:%S" )rr)rrws rr date.strftimes dDNN,<==rc[U[5(d![S[U5R-5e[ U5S:waUR U5$[U5$Nzmust be str, not %sr rrrrrrrrr}s r __format__date.__format__N#s##1DI4F4FFG G s8q===% %4yrcNSURURUR4-$)zReturn 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)rrrr6s r isoformatdate.isoformats" 4::t{{DII"FFFrcUR$)z year (1-9999))rr6s rr$ date.year+r=rcUR$)z month (1-12))rr6s rr/ date.month0s{{rcUR$)z day (1-31))rr6s rr8date.day5syyrc `[URURURSSSS5$)9Return local time tuple compatible with time.localtime().r r)rnrrrr6s rrdate.timetuple=s*!$**dkk499"#Q2/ /rcX[URURUR5$)zReturn 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:rrrr6s rrdate.toordinalBs  DKK;;rcUc URnUc URnUc URn[U5"XU5$)z;Return a new date with new values for the specified fields.)rrrr)rr$r/r8s rr date.replaceJs= <::D =KKE ;))CDz$s++rc[U[5(a)[U[5(dURU5S:H$[$rZrrrrrGrHs rru date.__eq__X5 eT " ":eX+F+F99U#q( (rc[U[5(a)[U[5(dURU5S:*$[$rZrrHs rry date.__le__]rrc[U[5(a)[U[5(dURU5S:$[$rZrrHs rr| date.__lt__b5 eT " ":eX+F+F99U#a' 'rc[U[5(a)[U[5(dURU5S:$[$rZrrHs rr date.__ge__grrc[U[5(a)[U[5(dURU5S:$[$rZrrHs rr date.__gt__lrrc [U[5(de[U[5(aeURURUR pCnURURUR pvn[ X#U4XVU45$rE)rrrrrrr)rrIrrfrgy2m2d2s rr date._cmpqsk%&&&&eX....**dkk499a[[%,, Q1I|,,rcvURS:Xa[UR55UlUR$)Hash.rrr6s rr date.__hash__xs+ >>R !$.."23DN~~rc[U[5(aVUR5UR-nSUs=:a [::aO O[ U5R U5$[S5e[$)zAdd a date to a timedelta.r result out of range) rrrr _MAXORDINALrrrrG)rrIos rrJ date.__add__sX eY ' ' 5::-A1# #Dz--a00 56 6rc[U[5(aU[UR*5-$[U[5(a-UR 5nUR 5n[X#- 5$[ $)z.Subtract two dates, or a date and a timedelta.)rrrrrrG)rrIdays1days2s rrN date.__sub__s] eY ' ')UZZK00 0 eT " "NN$EOO%EU]+ +rc.UR5S-S-$)z:Return day of the week, where Monday == 0 ... Sunday == 6.rbrcrr6s rr date.weekdays 1$))rc:UR5S-=(d S$)z:Return day of the week, where Monday == 1 ... Sunday == 7.rcrr6s r isoweekdaydate.isoweekdays~~!#(q(rcVURn[U5n[URURUR5n[ X2- S5upEUS:a!US-n[U5n[ X2- S5upEOUS:aU[US-5:aUS- nSn[ XS-US-5$)afReturn 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) rcr r4)rrr:rrrB_IsoCalendarDate)rr$ week1mondayrrr8s r isocalendardate.isocalendarszz%d+ T[[$))<5.2  !8 AID)$/Ku2A6ID# RZQ// 1fc!e44rcx[URS5up[XURUR/54$N)rBrrrr)ryhiylos rrdate._getstates1$**c*c TYY7899rc>Uup#UlUlUS-U-Ulgr)rrr)rstringrrs r __setstatedate.__setstates!+1($+ty3Y_ rc:URUR54$rErr6s rrdate.__reduce__rr)rrrr)NN)NNN),rrr+rrrr classmethodrrrrrr-rrrrr3rr$r/r8rrr __replace__ruryr|rrrrrJrrNrrrrrrrrrrrrs?67ID$$  K K<< 1$#> GG/ <,K     -H* ) 5<:%2rrr*rr:c:\rSrSrSrSrSrSrSrSr Sr Sr g ) rizwAbstract base class for time zone info classes. Subclasses must override the tzname(), utcoffset() and dst() methods. rc[S5e)z%datetime -> string name of time zone.z&tzinfo subclass must override tzname()NotImplementedErrorrdts rr tzinfo.tznames!"JKKrc[S5e)zIdatetime -> timedelta, positive for east of UTC, negative for west of UTCz)tzinfo subclass must override utcoffset()r r"s rrtzinfo.utcoffsets!"MNNrc[S5e)zdatetime -> 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 rr tzinfo.dsts ""GHHrcP[U[5(d [S5eURULa [ S5eUR 5nUc [ S5eUR 5nUc [ S5eX#- nU(a"X- nUR 5nUc [ S5eX-$)z*datetime in UTC -> datetime in local time.z&fromutc() requires a datetime argumentzdt.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)rrrrryrr)rr#dtoffdtdstdeltas rfromutctzinfo.fromutcs"h''DE E 99D 45 5  =&' '  =IJ J   KBFFHE} ";<<zrcv[USS5nU(aU"5nOSnURX R54$)N__getinitargs__r)rr __getstate__)r getinitargsr,s rrtzinfo.__reduce__s8d$5t< =DD&7&7&9::rN) rrr+rrrrrrr-rrrrrrrs*ILOI:;rrcd^\rSrSrU4Sjr\S5r\S5r\S5rSr Sr Sr U=r $) IsoCalendarDatei c&>[TU]XX#45$rE)superr)rr$rrrs rrIsoCalendarDate.__new__sws4$9::rc US$rZrr6s rr$IsoCalendarDate.year Awrc US$)Nrrr6s rrIsoCalendarDate.weekr;rc US$Nr+rr6s rrIsoCalendarDate.weekdayr;rc&[[U544$rE)tupler6s rrIsoCalendarDate.__reduce__sd ~&&rcXURRSUSSUSSUSS3$)Nz(year=r z, week=rz , weekday=r+r*)rrr6s rr-IsoCalendarDate.__repr__#s?>>**+a a DG9AG Hrr) rrr+rrrr$rrrr-r __classcell__)rs@rr5r5 sU;' HHrr5c:\rSrSrSrSrS$SS.Sjjr\S5r\S 5r \S 5r \S 5r \S 5r \S 5r SrSrSrSrSrS%SjrSrSrSrS&Sjr\r\S5rSrSrSrSrSrS'SS.Sjjr \ r!S(Sjr"S r#S!r$S"r%S#r&g))ri,aTime 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 Nrc,[U[[45(a[U5S:Xat[ USS5S-S:a_[U[5(aUR S5n[RU5nURX=(d S5 S Ul U$[XX4U5upp4n[U5 [RU5nXlX'lX7lXGlXWlS Ul XglU$![ a [S5ef=f) zConstructor. Arguments: hour, minute (required) second, microsecond (default to zero) tzinfo (default to None) fold (keyword only, default to zero) rbr rr@rznFailed to encode latin1 string when unpickling a time object. pickle.load(data, encoding='latin1') is assumed.Nr)rrrrrrrryrr_time__setstaterrrrHrIrJrKrLrM)rrrrrrrrs rr time.__new__Es teS\ * *s4yA~ Qq N4 " $$$$L;;x0D>>#&D OOD.D 1DNK2D &t35/f4&!~~c"   '   +*L$KLLLs C==DcUR$z hour (0-23)rHr6s rr time.hourmr=rcUR$z minute (0-59)rIr6s rr time.minuter||rcUR$z second (0-59)rJr6s rr time.secondwr[rcUR$zmicrosecond (0-999999)rKr6s rrtime.microsecond|   rcUR$ztimezone info objectrLr6s rr time.tzinfor[rcUR$rErMr6s rr time.fold zzrc^[U[5(aURUSS9S:H$[$NT) allow_mixedr rrrrGrHs rru time.__eq__s- eT " "99U95: :! !rc`[U[5(aURU5S:*$[$rZrprHs rry time.__le__) eT " "99U#q( (! !rc`[U[5(aURU5S:$[$rZrprHs rr| time.__lt__) eT " "99U#a' '! !rc`[U[5(aURU5S:$[$rZrprHs rr time.__ge__rtrc`[U[5(aURU5S:$[$rZrprHs rr time.__gt__rwrc[U[5(deURnURnS=pVX4LaSnO$UR5nUR5nXV:HnU(ad[ UR UR URUR4UR UR URUR45$UbUcU(ag[S5eUR S-UR -U[SS9-- nUR S-UR -U[SS9-- n [ XRUR4XRUR45$)NTr+z$cannot compare naive and aware timesrrr) rrrLrrrHrIrJrKrr) rrIromytzottzmyoffotoff base_comparemyhhmmothhmms rr time._cmpsC%&&&&||}} <LNN$EOO%E >L T\\4<<**,emmU]]++-. . =EM FGGb4<</%19M2MMr!EMM1E9Q;O4OOV\\4+<+<=]]E,>,>?A ArcURS:XGa1UR(aURSS9nOUnUR5nU(d-[ UR 5S5UlUR$[ [URURS9U- [SS95up4U[SS9-(aS5eU[SS9-nSUs=::aS :a>O O;[ [X4URUR55UlUR$[ X4URUR45UlUR$) rrr rNrprqrrrz whole minuter@) rrrrrrrBrrrrrr)rrtzoffhrfs rr time.__hash__s >>R yyLLaL(KKME!%akkmA&6!7~~idiiMPUU'a02y33C^C3i**;B;%)$qT[[$BRBR*S%TDN~~&*1d>N>N*O%PDN~~rc8UR5n[U5$)z=Return formatted timezone offset (+xx:xx) or an empty string.)rr)rrs r_tzstr time._tzstrsnnc""rcURS:waSURUR4-nO"URS:waSUR-nOSnS[U5URRUR UR U4-nURb#USSS:XdeUSSS UR--S-nUR(aUSSS:XdeUSSS -nU$) %Convert to formal string, for repr().r z, %d, %dz, %drz%s.%s(%d, %d%s)Nrr* , tzinfo=%r , fold=1)) rKrJrrr+rHrIrLrMrrs rr- time.__repr__s    !dllD,=,=>>A \\Q %AA  1$ 7 $ ; ; $ DLL! = = << #RS6S= =#255;A ::RS6S= =#2$Arc[URURURURU5nUR 5nU(aX#- nU$)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~rHrIrJrKr)rr{rrs rrtime.isoformatsE T\\4<<++X 7 [[] GArc[U[5(d [S5eURS5nU"[ U56$![ a [ SU<35ef=f)z>Construct a time from a string in one of the ISO 8601 formats.rTr)rrr removeprefixrrry)r time_strings rrtime.fromisoformat sj+s++AB B "..s3  K-k:; ; K9+IJ J Ks AAc lSSSURURURSSS4 n[XU5$)zkFormat using strftime(). The date part of the timestamp passed to underlying strftime should not be used. ilrr r)rHrIrJr)rrwrs rr time.strftimes; 1aZZt||2 dI66rc[U[5(d![S[U5R-5e[ U5S:waUR U5$[U5$rrrs rrtime.__format__%rrcpURcgURRS5n[SU5 U$)zUReturn the timezone offset as timedelta, positive east of UTC (negative west of UTC).NrrLrrrrs rrtime.utcoffset.4 << ''-+v. rcnURcgURRS5n[U5 U$zReturn 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. NrLrrrrs rr time.tzname72 << ||""4(d rcpURcgURRS5n[SU5 U$aAReturn 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. NrrLrrrs rrtime.dstD4 << !!$'%( rc Uc URnUc URnUc URnUc URnUSLa URnUc UR n[ U5"XX4XVS9$)z;Return a new time with new values for the specified fields.TrN)rrrrrrMr)rrrrrrrs rr time.replaceSsp <99D >[[F >[[F  **K T>[[F <::DDz$VOOrc[URS5up#[US5upBURnUR(a US:aUS- n[ XPR UR XBU/5nURcU4$X`R4$Nrr?)rBrKrHrMrrIrJrL)rprotocolus2us3us1r basestates rrtime._getstatehs$++S1#s# JJ ::(Q, HA1llDLLS*+ << < ||, ,rcUb [U[5(d [S5eUuo0lUlpEnUS:aSUlUS- UlO SUlX0lUS-U-S-U-UlX lg)Nbad tzinfo state argrPrrr r) r _tzinfo_classrrIrJrMrHrKrL)rrrrrrrs rrtime.__setstateusw  j&G&G23 37=4<s s7DJSDJDJJ"ax3.14; rc<URURU54$rErrrs r __reduce_ex__time.__reduce_ex__x 899rc$URS5$r?rr6s rrtime.__reduce__!!!$$r)rMrrHrKrIrJrLr r r r NFru)NNNNTr?)'rrr+rrrrrrrrrrrruryr|rrrrrr-rr3rrrrrrrrrrrQrrrrrrrr,s0,_I%UV%P!!" " " " " A8.# &"G K K 7  HLP%)P"K - :%rrc\rSrSrSr\R rS4SS.Sjjr\S5r \S5r \S 5r \S 5r \S 5r \S 5r\S 5r\S5Sj5r\S5r\S5Sj5r\S5r\S6Sj5r\S5rSrSrSrSrSrSrSrS7SS.Sjjr\rSrS5Sjr Sr!S8Sjr"S r#S!r$\S"5r%S#r&S$r'S%r(S&r)S'r*S(r+S)r,S*r-S9S+jr.S,r/\/r0S-r1S.r2S:S/jr3S0r4S1r5S2r6S3r7g);rizdatetime(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 rNc f[U[[45(a[U5S:XapS[ USS5S-s=::aS::aTO OQ[U[5(a [US5n[RU5n U RX5 S U l U $[XU5upn[XEXgU 5upEpgn [U5 [RU5n XlX*lX:lXJlXZlXjlXzlXlS U l XlU $![ a [ S5ef=f) Nrrr+r?rPr*rzrFailed to encode latin1 string when unpickling a datetime object. pickle.load(data, encoding='latin1') is assumed.r)rrrrrrryrr_datetime__setstaterrrrrrrrHrIrJrKrLrM) rr$r/r8rrrrrrrs rrdatetime.__new__s! teS\ * *s4yB T!AY$ * *$$$L x0D>>#&D OOD (DNK-d3?S2D &t35/f4&!~~c"      '   3*L$KLLLs DD0cUR$rTrUr6s rr datetime.hourr=rcUR$rXrYr6s rrdatetime.minuter[rcUR$r]r^r6s rrdatetime.secondr[rcUR$rarbr6s rrdatetime.microsecondrdrcUR$rfrgr6s rrdatetime.tzinfor[rcUR$rErjr6s rr datetime.foldrlrc [R"U5upA[US-5nUS:a US- nUS-nOUS:a US-nUS- nU(a[RO[R nU"U5u pxpppn[ U S5n U"XxXXXS5nUcU(dSnUU:a&[RRS5(aU$U"UU- 5SS upxppU"XxXXXS5nUU- [SU5- nURS:a7U"UU[SS5--5SS upxppU"XxXXXS5nUU:XaSUl U$UbURU5nU$) rConstruct a datetime from a POSIX timestamp (like time.time()). A timezone info object may be passed in as well. rrrr rNrwinrb)rrrrdgmtimerminsysplatform startswithrrrMr-)rrrrfracrz converterrrfrgrhrirjrrrresultmax_fold_secondsprobe1transprobe2s r_fromtimestampdatetime._fromtimestamps} **Q- 4#:  = FA 'MB !V FA 'MB$'ELLU__ 2;A,/aRWC R[Q1""1 :c )  ## (?(?(F(F "+A0@,@"A"1"E A!qbb5FVOi3C&DDEzzA~&/EYq!_4L0L&Mbq&Q#aRQ1""9V##$FL ^ZZ'F rc@[U5 URXSLU5$)rN)rr)r timestamprs rrdatetime.fromtimestamps# "!!)t^R@@rcZSSKnURS[SS9 URUSS5$)z6Construct a naive UTC datetime from a POSIX timestamp.r Nzdatetime.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)warningswarnDeprecationWarningr)rrrs rutcfromtimestampdatetime.utcfromtimestamps=  J)!"  $ !!!T400rcN[R"5nURX!5$)zBConstruct a datetime from time.time() and optional time zone info.r)rrrs rnow datetime.nows  JJL  ''rcSSKnURS[SS9 [R"5nUR USS5$)z*Construct a UTC datetime from time.time().r Nzdatetime.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+rT)rrrrdrr)rrrs rutcnowdatetime.utcnow sG  =)!"  $ JJL!!!T400rc ^[U[5(d [S5e[U[5(d [S5eUSLa URnU"UR UR URURURURURX2RS9 $)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 instanceTrN) r _date_classr _time_classrr$r/r8rrrrr)rrrrs rcombinedatetime.combine-s$ ,,CD D$ ,,CD D T>[[F499djj$((99dkk4;;8H8H + +rcz[U[5(d [S5e[U5S:a[ SU<35e[ U5nUSUnXS-Sn[ U5nU(a [U5nO/SQnU"XV-6$![a [ SU<35Sef=f![a [ SU<35Sef=f)zBConstruct a datetime from a string in one of the ISO 8601 formats.rrcrr rNr)rrrrryrrr)rrseparator_locationdstrrdate_componentstime_componentss rrdatetime.fromisoformat:s+s++AB B { a 9+IJ J H!CK!P q!34D1 467D3D9O  L"7"= 1O_688 H,[O<>CG H H L 0@BGKL Ls"B* BBB:c UR5nUcSnO U(aSnOSn[URURURUR UR URU5$)rrrr )rrnr$r/r8rrr)rrs rrdatetime.timetupleYsYhhj ;C CC!$))TZZ"&))T[[$++"%' 'rc`^ [SSS5m SnUT - [SS5-nU 4SjnU"U5U- nX$- nU"U5nXb:Xa'XQ*U4UR-nU"U5U- nXH:XaU$O Xe- nXH:wdeX(- nU"U5n X:XaU$Xb:XaU$[[4UR"XW5$)zReturn integer POSIX timestamp.rrr cx>[R"U5SSupp4pV[XX4XV5T- [SS5-$)Nrbr r)rdrrr)urrfrgrhrirjepochs rlocaldatetime._mktime..localks>"'//!"4Ra"8 A!Q1"1E9i1oM Mr)rrrmaxr) rrrrru1t1u2rt2r s @r_mktimedatetime._mktimefsq!$$ E\i1o - N !HqL U 2Y 7(*:;DIIFFBb BAv A6M6 U 2Y 7I 7ISz$))$R,,rcURc!UR5nXRS- -$U[- R 5$)zReturn POSIX timestamp as floatr)rLrr_EPOCHr7rs rrdatetime.timestamps> <<  A''#-- -6M002 2rc UR5nU(aX-nURURURpCnURUR UR pvn[X#XEXgS5$)z4Return UTC time tuple compatible with time.gmtime().r )rr$r/r8rrrrn)rrrrfrgrhrirjs r utctimetupledatetime.utctimetuplesW!  ND))TZZaYY T[[!!rq99rcX[URURUR5$)zReturn the date part.)rrrrr6s rr datetime.datesDJJ TYY77rc[URURURURUR S9$)z'Return the time part, with tzinfo None.rN)rrrrrrr6s rr datetime.times.DIIt{{DKK9I9IPTPYPYZZrc [URURURURUR UR S9$)z'Return the time part, with same tzinfo.rN)rrrrrrLrr6s rtimetzdatetime.timetzs6DIIt{{DKK9I9ILLtyy2 2rc  :Uc URnUc URnUc URnUc URnUc URnUc UR nUc UR nUSLa URnU c URn [U5"XX4XVXxU S9 $)z?Return a new datetime with new values for the specified fields.TrN) r$r/r8rrrrrrr) rr$r/r8rrrrrrs rrdatetime.replaces <99D =JJE ;((C <99D >[[F >[[F  **K T>[[F <99DDz$s&%D: :rcURcTUR5nURSUR- S9R5nX!:waX!:UR:XaUnOU[- [ SS9-n[ R"U5n[USS6nURnURn[[ US9U5$)NrrNr?rb) rrrrrrrdrr tm_gmtofftm_zoner)rtsts2localtmrgmtoffzones r_local_timezonedatetime._local_timezones ;; B,,AdiiK,088:CyH*B-Ia$88B//"%'"1+&"" &1488rcUcUR5nO [U[5(d [S5eURnUc"UR5nUR U5nOBUR U5nUc.UR SS9R5nUR U5nXLaU$X- R US9nUR U5$)Nz)tz argument must be an instance of tzinfor)r.rrrrrr-)rrr}myoffsetrs r astimezonedatetime.astimezones :%%'BB''GH H{{ <'')D~~d+H~~d+H||4|0@@B>>$/ :K''r'2zz#rcUR5S-=(d SnS[U[URURUR UR URUR4-$)rrcz%s %s %2d %02d:%02d:%02d %04d) rrrrrrHrIrJrrs rrdatetime.ctimes_.."Q&+!. g   $ II JJ dll JJ 2 rcSURURURU4-[URUR UR URU5-nUR5n[U5nU(aX5- nU$)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) rrrr~rHrIrJrKrr)rrr{rrrs rrdatetime.isoformatst  4::t{{DIIs"K K $**dllDLL++X77nn C  GArc  URURURURURUR UR /nUSS:XaUS USS:XaUS [U5<SURR<SSR[[U55<S3nURb#USSS:XdeUSSSUR--S-nUR(aUSSS:XdeUSSS -nU$) rrr r'r(r)r*Nrr)rrrrHrIrJrKrrr+rrrrLrM)rLrs rr-datetime.__repr__s ZZdii ZZt||T5F5F H R5A:" R5A:",T2>>6699Sa[1 3 << #RS6S= =#255;A ::RS6S= =#2$Arc URSS9$)zConvert to string, for str(). r)rr6s rr3datetime.__str__&s~~#~&&rc.SSKnURXU5$)zKstring, format -> new datetime parsed from a string (like time.strptime()).r N) _strptime_strptime_datetime)rrrwr@s rstrptimedatetime.strptime*s ++CfEErcpURcgURRU5n[SU5 U$)zTReturn the timezone offset as timedelta positive east of UTC (negative west of UTC).Nrrrs rrdatetime.utcoffset0rrcnURcgURRU5n[U5 U$rrrs rrdatetime.tzname9rrcpURcgURRU5n[SU5 U$rrrs rr datetime.dstFrrc^[U[5(aURUSS9S:H$[$rnrrrrGrHs rrudatetime.__eq__Ws- eX & &99U95: :! !rc`[U[5(aURU5S:*$[$rZrKrHs rrydatetime.__le__]) eX & &99U#q( (! !rc`[U[5(aURU5S:$[$rZrKrHs rr|datetime.__lt__c) eX & &99U#a' '! !rc`[U[5(aURU5S:$[$rZrKrHs rrdatetime.__ge__irOrc`[U[5(aURU5S:$[$rZrKrHs rrdatetime.__gt__orRrc h[U[5(deURnURnS=pVX4LaSnOUR5nUR5nU(a`XPR UR (+S9R5:wagXaR UR (+S9R5:wagXV:HnU(a[ URURURURURURUR4URURURURURURUR45$UbUcU(ag[S5eX- nURS:agU=(a S=(d S$)NTrNr+z(cannot compare naive and aware datetimesr rr)rrrLrrrrrrrrHrIrJrKrr) rrIror}r~rrrdiffs rr datetime._cmpusZ%****||}} <LNN$EOO%ELL$))mL<FFHHMM5::~M>HHJJ >L T[[$))T\\4<<**,ellEJJemmU]]++-. . =EM JKK| 99q=zQrc [U[5(d[$[UR5URUR UR URS9nX!- n[URS5up4[US5upVSURs=:a [::aYO OV[U5R[RUR5[!X5UUR"UR$S95$['S5e)zAdd a datetime and a timedelta.rrrr r1r)rrrGrrHrIrJrKrBrrrrrrrrrrtrLr)rrIr,rremrrs rrJdatetime.__add__s%++! !$..* $ "&,,"&,,'+'8'8 : 5==$/ R uzz ([ (:%%d&6&6uzz&B&*4+0+=+=26,,'@A A122rc`[U[5(d [U[5(aX*-$[$UR 5nUR 5nUR UR S--URS--nUR UR S--URS--n[X#- XE- URUR- 5nURURLaU$UR5nUR5nXx:XaU$UbUc [S5eXh-U- $)z6Subtract two datetimes, or a datetime and a timedelta.rrz(cannot mix naive and timezone-aware time) rrrrGrrJrIrHrKrLrr) rrIrrsecs1secs2baserrs rrNdatetime.__sub__s%**%++f}$! ! ! t||b004::3DD   22U[[45GG**U-?-??A <<5== (K ! >K =EMFG G|e##rcURS:XaUR(aURSS9nOUnUR5nUc-[ UR 5S5UlUR$[ URURUR5nURS-URS--UR-n[ [X4UR5U- 5UlUR$)Nrr rNrr)rrrrrrr:r$r/r8rrrrr)rrrrrrs rrdatetime.__hash__s >>R yyLLaL(KKME}!%akkmA&6!7 ~~  4::txx@))d*T[[2-== K!%it?O?O&PSX&X!Y~~rc |[URS5up#[URS5upE[US5updURnUR(a US:aUS- n[ X#XpR URURURXdU/ 5nURcU4$XR4$r) rBrrKrrMrrrHrIrJrL) rrrrrrrrfrs rrdatetime._getstates$**c*$++S1#s# KK ::(Q, HA3Q ::t||T\\S*+  << < ||, ,rc Ub [U[5(d [S5eUu p4oPlUlUlUlpgnUS:aSUlUS- UlO SUlXPlUS-U-Ul US-U-S-U-Ul X l g)NrrPrrr rr) rrrrrHrIrJrMrrrKrL) rrrrrrfrrrs rrdatetime.__setstates  j&G&G23 36< 41i t|Ss s7DJc'DKDJK3Y_ "ax3.14; rc<URURU54$rErrs rrdatetime.__reduce_ex__rrc$URS5$r?rr6s rrdatetime.__reduce__rr) rrMrrHrKrIrrJrLr)NNr r r r NrE)T)NNNNNNNT)rrurr)8rrr+rrrrrrrrrrrrrrrrrrrrrrrrrr"rrr.r3rrr-r3rBrrrruryr|rrrrJrrNrrrrrrrrrrrs IJK&*!45!H!!))VAA 1 1((  1 1 + +99< ' -F3:8[2 =ACG::2K9"66&'FF   "" " " " " #J3&H$0 " - :%rrcPSn[USS5nUS-S-nX#- nX1:aUS- nU$)Nr?rrbrc)r:)r$THURSDAYfirstday firstweekdayr s rrr sAHa#HqLA%L)Kq rc\rSrSrSr\"5r\4SjrSr\ SSj5r Sr Sr S r S rS rS rS rSrSr\"SSS9r\*r\S5rSrg)ri )_offset_namecH[U[5(d [S5eX RLaU(d UR$SnO [U[ 5(d [S5eUR Us=::aUR::d O [S5eURX5$)Nzoffset must be a timedeltazname must be a stringzYoffset must be a timedelta strictly between -timedelta(hours=24) and timedelta(hours=24).) rrr_Omittedrr _minoffset _maxoffsetry_create)rrrs rrtimezone.__new__ s&),,89 9 << wwDD#&&34 4~~93>>945 5{{6((rc[S5e)Nz7type 'datetime.timezone' is not an acceptable base type)r)rs r__init_subclass__timezone.__init_subclass__! sQRRrNcH[RU5nXlX#lU$rE)rrrqrr)rrrrs rrwtimezone._create$ s~~c"   rcfURc UR4$URUR4$)zpickle supportrrrqr6s rr0timezone.__getinitargs__+ s+ :: LL? " djj))rcj[U[5(aURUR:H$[$rE)rrrqrGrHs rrutimezone.__eq__1 s( eX & &<<5==0 0rc,[UR5$rE)rrqr6s rrtimezone.__hash__6 sDLL!!rc*XRLagURc5[U5<SURR<SUR <S3$[U5<SURR<SUR <SUR<S3$)zConvert 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')" zdatetime.timezone.utcr'r(r*r))rrrrrr+rqr6s rr-timezone.__repr__9 so 88 * :: "3D"9"&.."="="&,,0 0#4D"9"&.."="="&,, < rs  ( $/   FT !" Cc"3JC B* !F  C  C  A  !g+/!!!"u*q.  <~? C I ** &@0F6r!"H6-^,^B1 ) 3"P (|2|2| *% yB'-/  a0 B2B2H  1a= b" #:;:;zHeH6# Z%Z%x  1a= BF #+k %tk %\1a  b"b"b&9 Q/u5vu5n%%il33hl R!@ @A  B ?@ $1X\\ 2r