403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/test/__pycache__/datetimetester.cpython-315.opt-1.pyc
R
>lqj��c��Qs]PHs]PHs]PHs]PHs]PHs]PHs]PHs]PH s]PH$s	]PH(s
]PH,s]PH0s]PH4s
]PH8s]PH<s]PH@s]QHDGs]QHHGsGsGsGsGsGsGsGsGs]QHpGs]QHxGsG s G!s!G"s"]QHxG#s#G$s$]PH�s&]QH�G's'G(s(]QH�G)s)]QH�G*s*]Q	H�G+s+]Q
H�G,s,]QH�G-s-]QH�G.s.G%s%]PH�s/]PH�s0]PH�s2]PH�s4]PH�s5]PH�s6\	On\	Op.s9\:\	Ov]*2Tt,tFDo\	\	U1MJ
	tos<\%Q
]]]]2s=]
QQ-,Qp1s>\?Q2s@\?Q2sAQQ\O�2sCQQ\*2sDQQ\D2sEQQ\E2sFQQ\*2sGQQ\O�2sHQQ\O�2sIQ Q!2sJQ"Q#\)2sKQ$Q%\J\O�2sLQ&Q'\O�2sMQ(Q)\.2sNQ*Q+\J\O�2sOQ,Q-\%2sPQ.Q/\O2sQQ0Q1\Q2sRQ2Q3\+2sSQ4Q5\J\O�2sTQ6Q72sUQ8Q9\T\U\O�2sVQ:Q;\Q\U\O�2sWQ<sX\)]2sY\)]Q=5sZ\)]Q>5s[\)]Q?5s\\%]]]]2s]\%]]
]]2s^Q@QA\*2s_\_QqQBQCQD2s`\_QrQEQFQG2sa\_QsQHQIQJ2sb\_QtQKQLQM2sc\D]QN]2sd\DQuQO]2seQPQQ\O�2sfQRQS\O�2sgQTQU\*2shQVQW\h2si\iQqQXQCQD2sj\iQrQYQFQG2sk\iQsQZQIQJ2sl\iQtQ[QLQM2smQ\Q]\*2snQ^Q_\O�2so\)]]2spQ`sqQaQb\*2srQcQd\O�2ssQeQf\O�2suQgQh\s2sv\O�\0PIQi2QjQk\O�22sxQlQm\O�2syQnsz\{Qo6Xc\O�2P!P!\1cPs0CK�h9h\3cPs2CK�h9h\1cPs5CK�h9h\1cPs6CK�h9httoh)vzTest the datetime module.)�array)	�lt�le�gt�ge�eq�ne�truediv�floordiv�mod)�support)�is_resource_enabled�	ALWAYS_EQ�LARGEST�SMALLEST)�	os_helper�
script_helper)�MINYEAR�MAXYEAR��	timedelta��tzinfo)�time)�timezone)�UTC)�date�datetime�g@A@�abc�inf�nanc�@`�\sQs]NsnQsQsQsQsQsQs	Us
P!)�
TestModulec��[oUOUO]2UOUOQ2P!)��')�datetime_module�assertEqualrr)�selfrs& �(C:\Python315\\Lib\test\datetimetester.py�test_constants�TestModule.test_constantsPs3��"������)�)�1�-�����)�)�4�0�c�P�UO[[O2P!�N)�assertIsrr�utc�r(s&r)�test_utc_alias�TestModule.test_utc_aliasUs���
�
�c�8�<�<�(r,c�x�[[2o[OFDoUOV!2J	P!)z2Test that __all__ only points to valid attributes.)�dirr&�__all__�assertIn)r(�	all_attrs�attrs&  r)�test_all�TestModule.test_allXs(����(�	�#�+�+�D��M�M�$�*�,r,c�@�QUOO7cUOQ2[o[9PIc.Q[U22DjJ	LQ[U222o[	,QN2oUO
V#*
[	,22P!)�_Purez"Only run for Fast C implementationc3��SF �D:oUOQ2%cJUOQ2%cJ5Uw�	J<	P!3h)�__)�
startswith�endswith)�.0�names& r)�	<genexpr>�/TestModule.test_name_cleanup.<locals>.<genexpr>cs2��]���]�T��?�?�4�0��9=���t�9L��D�]�s�A	�A	�A	)rrrr�
datetime_CAPIrrrrr�sys)�	__class__�__name__�skipTestr&�setr5r')r(r�names�alloweds&   r)�test_name_cleanup�TestModule.test_name_cleanup^s����d�n�n�-�-�-��M�M�>�?�"����N�S��]�N���N�S��]�N�N���/�0��	
�����#�b�'�2r,c�<�QUOO7cUOQ2[OoUOUQQ2]2UOU]Q2Q2UOU]]2]2UOUQ]2Q2UOU]Q2Q2UOUQQ2]2UOU]
]2]2UOUQ]2Q2UOU]
Q2Q2UOUQQ2]2UOU]]2]2UOUQ]2Q2UOU]Q2Q2UOUQQ2]2P!)�_Fastz'Only run for Pure Python implementation������������������)rHrIrJ�_pydatetime�_divide_and_roundr')r(�dars& r)�test_divide_and_round� TestModule.test_divide_and_roundjsd���d�n�n�-�-�-��M�M�C�D��+�+������S�"��q�)�����Q���R�(�	
����Q���A�&�����R���R�(�����Q���R�(�����R���a�(�	
����R���Q�'�����S�!��b�)�����R���b�)�����S�"��q�)�����Q���A�&�����R���R�(�����Q���R�(�����R���a�(r,�)rI�
__module__�__qualname__�__firstlineno__r*r2r:rNr[�__static_attributes__�__classdictcell__��
__classdict__s@r)r"r"Ns#����1�
)�+�
3�)�)r,r"c�D`�\sQs]�snQQksQsQsQsQsQs	Us
P!)�FixedOffsetc��[U[2%c
[UQ5o[U[2%c
[UQ5oVmV mV0mP!���minutes)�
isinstance�intr�_FixedOffset__offset�_FixedOffset__name�_FixedOffset__dstoffset�r(�offsetrC�	dstoffsets&&&&r)�__init__�FixedOffset.__init__�s@���f�c�"�"��v�.�F��i��%�%�!�)�4�I��
���$�r,c�8�UOO2!r.)rn�lowerr1s&r)�__repr__�FixedOffset.__repr__�s���{�{� � �"�"r,c��UO!r.)rm�r(�dts&&r)�	utcoffset�FixedOffset.utcoffset�����}�}�r,c��UO!r.)rnrzs&&r)�tzname�FixedOffset.tzname�s���{�{�r,c��UO!r.)rorzs&&r)�dst�FixedOffset.dst�s�����r,)�__dstoffset�__name�__offset��*)rIr^r_r`rsrwr|r�r�rarbrcs@r)rfrf�s#����%�#��� � r,rfc�,`�\sQs]�snQQksQsUsP!)�PicklableFixedOffsetc�4�[OVV#2P!r.)rfrsrps&&&&r)rs�PicklableFixedOffset.__init__�s�����T�4�;r,r])NNN�rIr^r_r`rsrarbrcs@r)r�r��s����<�<r,r�c��\sQs]�sQsQsP!)�PicklableFixedOffsetWithSlotsr])rmrn�spam)rIr^r_r`�	__slots__rar]r,r)r�r��s��D�Ir,r�c�(`�\sQs]�snQsQsUsP!)�_TZInfoc�.�[O2!r.)�random)r(r&s&&r)r|�_TZInfo.utcoffset�s���}�}��r,r]�rIr^r_r`r|rarbrcs@r)r�r��s�����r,r�c�L`�\sQs]�snQsQsQsQsQsQs	Qs
QsUsP!)	�
TestTZInfoc
���[2o[Q]]]] ]]U2oUO[29^tt^2UO	2PPP2P!)%fhP!9h)��)r�r�assertRaises�	TypeErrorr|)r(�tz1�dt1s&  r)�test_refcnt_crash_bug_22044�&TestTZInfo.test_refcnt_crash_bug_22044�sJ���i���t�Q��B��A�q�#�6��
�
�
�y�
)�
)��M�M�O�*�
)�
)�
)�s�A�A'	�A'	c��[2o[OoUO[UO
U2UO[UOU2UO[UOU2P!r.)rr�maxr��NotImplementedErrorr�r|r�)r(�uselessr{s&  r)�test_non_abstractness� TestTZInfo.test_non_abstractness�s[���(��
�\�\�����-�w�~�~�r�B����-�w�/@�/@�"�E����-�w�{�{�B�?r,c��QQ[2oUOU[2U]Q2oUOU[2[O2oUO[UOU2UO[UOU2UO[UOU2P!)c�(`�\sQs]�snQsQsUsP!)�9TestTZInfo.test_subclass_must_override.<locals>.NotEnoughc� �VmV mP!r.)�_NotEnough__offset�_NotEnough__name)r(rqrCs&&&r)rs�BTestTZInfo.test_subclass_must_override.<locals>.NotEnough.__init__�s�� &�
�"�r,)r�r�r�rcs@r)�	NotEnoughr��s����
#�
#r,r��NotByALongShot)
r�assertIsSubclass�assertIsInstancer�nowr�r�r�r|r�)r(r�rr{s&   r)�test_subclass_must_override�&TestTZInfo.test_subclass_must_override�s���	#��	#�	
���i��0�
�q�*�
+�����b�&�)�
�\�\�^�����-�r�y�y�"�=����-�r�|�|�R�@����-�r�v�v�r�:r,c	�x�[]Q2oUOU[2[O2P1FDzoUOUO
U2[]Q52UOUOU2Q2UOUOU2[]*Q52J|	P!)��Threeri)
rfr�rrr�r'r|rr�r�)r(�for{s&  r)�test_normal�TestTZInfo.test_normal�s���
��G�
$�����b�&�)��,�,�.�$�&�B����R�\�\�"�-�y��/C�D����R�Y�Y�r�]�G�4����R�V�V�B�Z��2�)>�?�'r,c��[O[2oUO[U2[2[FDGvq#oUOV2oUO
U2oUO[U2[2JI	P!r.)r�__new__r/�type�pickle_choices�dumps�loads)r(�orig�pickler�	unpickler�proto�green�deriveds&      r)�test_pickling_base�TestTZInfo.test_pickling_base�sc���~�~�f�%���
�
�d�4�j�&�)�)7��%�G���M�M�$�.�E��o�o�e�,�G��M�M�$�w�-��0�*8r,c	��[QQ5o[UQ11[UQ11[U11[UQ111FCDIvq#UUoUO	P2oUOU[2UO[U2U2UOUOP2U2UOUO	P2U2[FD�vqgoUOVH2o	UOU	2o
UOU
[2UO[U
2U2UOU
OP2U2UOU
O	P2U2UOU
Q2J�	CJL	P!)�,ri�cookie�ESTr�����)rr�r�rr�r�rr/r�r'r|r�r�r��assertNotHasAttr)r(rq�otype�argsr��onamer�r�r�r�r�s&          r)�test_pickling_subclass�!TestTZInfo.test_pickling_subclass�sJ���4�(��
!�F�H�#5�6�
*�V�X�,>�?�
��y�!�
����'�	)�K�E�
�$�<�D��K�K��%�E��!�!�$��/��M�M�$�t�*�e�,����T�^�^�D�1�6�:����T�[�[��.��6�-;�^�)��E��
�
�d�2��#�/�/�%�0���%�%�g�v�6��
�
�d�7�m�U�3�� � ��!2�!2�4�!8�&�A�� � �����!5�u�=��%�%�g�v�6�.<�)r,c	��``�[]Q59nnUU1QkQ[2oU2o[Q]]]]UQ5oUOU2oUO	VDO2*
U2P!)r$��hoursc�F:`�\sQs]�snQsU1QksU1QksQsQsUs	P!)�0TestTZInfo.test_issue23600.<locals>.UKSummerTimezbSimple time zone which pretends to always be in summer time, since
that's what shows the failure.
c�
:�R!r.r])r(r{�	DSTOFFSETs&&�r)r|�:TestTZInfo.test_issue23600.<locals>.UKSummerTime.utcoffset�s	��� � r,c�
:�R!r.r])r(r{�DSTDIFFs&&�r)r��4TestTZInfo.test_issue23600.<locals>.UKSummerTime.dst�s����r,c��Q!)�UKSummerTimer]rzs&&r)r��7TestTZInfo.test_issue23600.<locals>.UKSummerTime.tznames��%r,r])
rIr^r_r`�__doc__r|r�r�rarb)rdr�r�s@��r)r�r��s����
�
!�
�
&�
&r,r�r�r)rrr�fromutcr'r|)r(r��tz�u�tr�r�s&    @@r)�test_issue23600�TestTZInfo.test_issue23600�sf���'�a�0�0��)�	&�	&�6�	&��^���T�1�b�"�a��3���J�J�q�M������[�[�]�*�A�.r,r])
rIr^r_r`r�r�r�r�r�r�r�rarbrcs@r)r�r��s/�����@�;�@�	1�7�./�/r,r�c�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsQsQsQsQsQsUsP!)�TestTimeZone�	c��[[QQ5Q2Um[[]Q5'Q2Um[	Q]]2UmP!)�#@r��ACDTr���)rrr�r�r�DTr1s&r)�setUp�TestTimeZone.setUps;���Y�S�1�6�:��	��Y�Q�/�/��7����4��A�&��r,c��UOUO[O[O[O
1FD-oUO
[U2UOP22J/	P!r.)	r�r�rr0�minr�r'�strr��r(r�s& r)�test_str�TestTimeZone.test_strsJ���9�9�d�h�h�����<�<����/�B����S��W�b�i�i��o�6�/r,c��[oUOUO[O[O
[O1FD)o[U2oUOU[U22J+	P!r.)
r&r�r�rr0r�r��reprr'�eval)r(rr��tzreps&   r)�	test_repr�TestTimeZone.test_reprsR��"���9�9�d�h�h�����<�<����/�B���H�E����R��e��-�	/r,c�F�[]];Q5oUO[OO	P2[
2UO[OO	P2U'2UO[OO	P2U2P!)��r�rj)rr'rr0r|�ZEROr�r�)r(�limits& r)�test_class_members�TestTimeZone.test_class_memberssm����B�/��������/�/��5�t�<�������/�/��5��v�>�������/�/��5�u�=r,c	�h�UO[O[[]222UO	[O[[]2Q22UO[O[[]2Q22[]Q5[]Q51FD@o[U2oUO
UOP2[]Q5*]2JB	[]]2[]21FD:oUO[[U2UO[[U'2J<	UO[29^tt^2[P2PPP2UO[29^tt^2[]*2PPP2UO[29^tt^2[[P2PPP2UO[29^tt^2[[]*2PPP2UO[29^tt^2[[QQ2PPP2P!)%fhK�9h)%fhK�9h)%fhK�9h)%fhK�9h)%fhP!9h)�r��microseconds��secondsri�ABC�extra)r/rr0r�assertIsNotr'�assertNotEqualr|r��
ValueErrorr�r)r(�	subminuter��invalids&   r)�test_constructor�TestTimeZone.test_constructor#s����
�
�h�l�l�H�Y�q�\�$:�;�������x�	�!��e�'D�E�������x�	�!��e�'D�E�#��3�Y�q�5I�J�I��)�$�B�������T� 2�Y�q�5I� I�1�M�K�"�!�Q���1��6�G����j�(�G�<����j�(�W�H�=�7��
�
�y�
)�
)�8�D�>�
)�
�
�
�y�
)�
)�8�B�<�
)�
�
�
�y�
)�
)�8�D�$�+?�
)�
�
�
�y�
)�
)�8�D�"�+=�
)�
�
�
�y�
)�
)�8�D�%��+I�
)�
)�	*�
)��
)�
)��
)�
)��
)�
)��
)�
)�
)�sZ�*I�I'�I:�J
�8J �I$	�I$	�'I7	�0I7	�:J
	�J
	�
J	�J	� J1	�)J1	c��UO[O[2UOUO[2P!r.)r�rr0rr�r1s&r)�test_inheritance�TestTimeZone.test_inheritance5s*�����h�l�l�F�3����d�h�h��/r,c��UO[29^tt^2QQ[2oPPP2P!)%fhP!9h)c��\sQsQsQsP!)�5TestTimeZone.test_cannot_subclass.<locals>.MyTimezone�;r]�rIr^r_r`rar]r,r)�
MyTimezoner;s��r,r)r�r�r)r(rs& r)�test_cannot_subclass�!TestTimeZone.test_cannot_subclass9s*��
�
�
�y�
)�
)�,�X�,�*�
)�
)�
)�s�9�A
	�A
	c�L�UOoQFDfoU[*oUOU[U2O	U22UOU'[U'2O	U22Jh	UO[29^tt^2UOO	P2PPP2UO[29^tt^2UOO	]2PPP2P!)%fhKS9h)%fhP!9h)r	)r	g�?�)r��HOURr'rr|r�r�r�)r(�dummy�hrqs&   r)�test_utcoffset�TestTimeZone.test_utcoffset=s��������A���X�F����V�X�f�%5�%?�%?��%F�G����f�W�h��w�&7�&A�&A�%�&H�I��
�
�
�y�
)�
)�4�8�8�+=�+=�b�+A�
)�
�
�
�y�
)�
)�4�8�8�+=�+=�a�+@�
)�
)�*�
)��
)�
)�
)�s$�C?�D�?D	�D	�D#	�D#	c���UO[OOUO22UO[29^tt^2UOOP2PPP2UO[29^tt^2UOO]2PPP2P!)%fhKS9h)%fhP!9h��)�assertIsNonerr0r�r�r�r�r�r1s&r)�test_dst�TestTimeZone.test_dstHs~�����(�,�,�*�*�4�7�7�3�4�
�
�
�y�
)�
)�4�8�8�<�<��+;�
)�
�
�
�y�
)�
)�4�8�8�<�<��?�
)�
)�*�
)��
)�
)�
)�s$�B>�C�>C	�C	�C"	�C"	c
��UOQ[OOP22UOQ[OP22UOQ[[
2OP22UOQ[Q
[*2OP22UOQ[Q[*2OP22UOQ[[PQ52OP22UOQ[Q
[*Q2OP22UOQ[[
Q2OP22UOQ[[]Q	22OP22UOQ
[[]Q	2'2OP22UOQ[[]Q	]22OP22UOQ[[]Q	]2'2OP22UO[29^tt^2UOOP2PPP2UO[29^tt^2UOO]2PPP2P!)%fhKS9h)%fhP!9h)rz	UTC-05:00z	UTC+09:30r�z	UTC-00:01ri�XYZ��zUTC+01:06:40�zUTC-01:06:40zUTC+01:06:40.000001zUTC-01:06:40.000001���)r'rr0r�rrr$rr�r�r�r1s&r)�test_tzname�TestTimeZone.test_tznameNs"��������� 3� 3�D� 9�:������
�
�4� 0�1�������� 5� 5�d� ;�<�����h�r�D�y�&9�&@�&@��&F�G�����h�s�T�z�&:�&A�&A�$�&G�H�����h�y��/D�&E�&L�&L�T�&R�S�������d��E� :� A� A�$� G�H�����8�D�(�#;�#B�#B�4�#H�I�	
�����)�A�t�2D�)E�)L�)L�T�)R�S�����!�9�Q��#5�"5�6�=�=�d�C�	E����.�!�)�A�t�Q�"7�8�?�?��E�	G����.�!�9�Q��a�#8�"8�9�@�@��F�	H��
�
�y�
)�
)�4�8�8�?�?�2�+>�
)�
�
�
�y�
)�
)�4�8�8�?�?�1�+=�
)�
)�*�
)��
)�
)�
)�s$�9K �:K3� K0	�)K0	�3L	�<L	c	���UO[29^tt^2[OO	UO
2PPP2UO[29^tt^2[OO	Q2PPP2UOUO[1FD�oUO
OUQ5oUO	U2oUOV2*
UOU22UOUUO
O[OQ52J�	P!)%fhCK9h)%fhK�9h)Nznot datetimer)
r�rrr0r�r�r�r�r��Eastern�replacer'r|)r(r��utctime�locals&   r)�test_fromutc�TestTimeZone.test_fromutces���
�
�
�z�
*�
*��L�L� � ����)�+�
�
�
�y�
)�
)��L�L� � ��0�*��8�8�T�Y�Y��0�B��g�g�o�o�R�o�0�G��J�J�w�'�E����U�_�b�l�l�5�.A�B����U�!�W�W�_�_�H�L�L�_�A�
C�	1�	+�
*�
*��
)�
)�s#�*E�. E�E	�E	�E/	�(E/	c��UO[[2[[22UO	[[2[[22UO	[Q[*2[Q[*Q22UO[29^tt^2[[2[[26PPP2UO[[2[[2.2UO[[2P6g2UO[[2P6H2[[2oUOU[6H2UOU[6g2UOU[62UOU[6�2UOU[6*2UOU[6�2UOU[62UOU[6�2UOU[6*2UOU[6�2P!)%fhCK�9h)�r�r3)
rrrr$r'r�r�r7�
assertTrue�assertFalser
rrr�s& r)�test_comparison�TestTimeZone.test_comparisonqs}�����H�T�N�H�T�N�;�����$���$��8�����"�t�)�,�h�r�D�y�%�.H�I�
�
�
�y�
)�
)�8�D�>�H�T�N�+J�
)��
�
�h�t�n�x��~�&6�7�������$�.�/�����$��4�/�0�
�d�^������i��(�����y��)�����W��%�����g��&�����g�
�&�����w��'�����h��'�����X�
�&�����x��(�����h��'�*�
)�
)�s�2 I
�
I	�I	c	�
�[]]]2o[O[O[O1FD�oUOUO
U2UOUQ5O
22UOUOU2UOUQ5O22UOUOU2UOUQ5O22J�	P!)r$r)
rrr�r�r0r'r�r8r|r��r(r�r�s&  r)�test_aware_datetime� TestTimeZone.test_aware_datetime�s����Q��1����<�<����x�|�|�<�B����R�Y�Y�q�\��Y�Y�b�Y�1�8�8�:�
<����R�\�\�!�_��Y�Y�b�Y�1�;�;�=�
?����R�V�V�A�Y��Y�Y�b�Y�1�5�5�7�
9�=r,c
��UOUO[O[O1FDEo[
FD7vq#oUO
UOV22oUOVQ2J9	JG	[Oo[
FD7vq#oUO
UOV22oUOVQ2J9	P!r.)r�r�rr�r�r�r�r�r'r0r/)r(r�r�r�r��tz_copys&     r)�test_pickle�TestTimeZone.test_pickle�s����)�)�T�X�X�x�|�|�X�\�\�A�B�-;�^�)��E�#�/�/�'�-�-��*B�C��� � ��-�.<�B��\�\��)7��%�G���o�o�g�m�m�B�&>�?�G��M�M�'�&�*8r,c�@�UOUO[O[O1FD*o[
O
U2oUO
V!2J,	[Oo[
O
U2oUOV!2P!r.)	r�r�rr�r��copyr'r0r/�r(r�rHs&  r)�	test_copy�TestTimeZone.test_copy�se���)�)�T�X�X�x�|�|�X�\�\�A�B��i�i��m�G����W�)�B��\�\���)�)�B�-���
�
�g�"r,c�@�UOUO[O[O1FD*o[
OU2oUOV!2J,	[Oo[
OU2oUOV!2P!r.)
r�r�rr�r�rL�deepcopyr'r0r/rMs&  r)�
test_deepcopy�TestTimeZone.test_deepcopy�sg���)�)�T�X�X�x�|�|�X�\�\�A�B��m�m�B�'�G����W�)�B��\�\���-�-��#���
�
�g�"r,c���[]];Q5[]];];Q5[]];];QQ5,oSOSTt,tFDp"'MJ	to2SFD2oUOQUQ59^tt^2[U2PPP2J4	[]Q5[]]Q5,oSOSTt,tFDp"'MJ	to2SFDXoUOQ	UQ59^tt^2UO	[
29^tt^2[U2PPP2PPP2JZ	P!ttoh)%fhJ�9httoh)%fhK<9h)%fhJ�9h)
rr�r�rjr
�?B�r�rjr
r�good)�	test_type�deltar�)r�r�bad)r�extend�subTestrr�r)r(�time_deltasrZ�bad_time_deltass&   r)�test_offset_boundaries�#TestTimeZone.test_offset_boundaries�s!��
�B��+��B��B�7��B��B�V�L�
��
	����<��u�F��<�=� �E�����e��<�<����=�<�!�
�B���B�Q�/�
��	���O�D�O�5��O�D�E�$�E�����U��;�;��&�&�z�2�2��U�O�3�<�;�%��=�=�<�<�� E�3�2��<�;�;�sM�
D"�.D'	�-
D;�"E	�E
�E	�'D8
�0D8
�E�	E�E	�E$
�E$
c��UO[O[22UO[[	]Q52[22P!)r$r�)rrr0rrr1s&r)�test_comparison_with_tzinfo�(TestTimeZone.test_comparison_with_tzinfo�s6��	
���H�L�L�&�(�3����H�Y�Q�%7�8�&�(�Cr,)r�r�r�)rIr^r_r`r�r�r�rrrr r'r-r4r;rArErIrNrRr`rcrarbrcs@r)r�r�	si����'�
7�
.�>�J�$0�-�A�;�>�.
C�(�*	9�'�#�#�$�2D�Dr,r�c�.`�\sQsQsnQsQsQsUsP!)�HarmlessMixedComparison��c��UO]]]2oUOUQ6H2UOUQ6g2UOQU6H2UOQU6g2UOU]],U,2UO,U]],,2UOU[6H2UOU[6g2UOU[
62UOU[
6�2UOU[
6*2UOU[
6�2UOU[62UOU[6�2UOU[6*2UOU[6�2P!)r$r])�theclassr@r?r7r
rr�r(�mes& r)�test_harmless_mixed_comparison�6HarmlessMixedComparison.test_harmless_mixed_comparison�s2��
�]�]�1�a��
#������r��"�����b��!�����r��"�����b��!��
�
�b�1�b�"�b�/�*��
�
�b�2�q�"�b�/�*�	
����i��(�����y��)�	
����W��%�����g��&�����g�
�&�����w��'�����h��'�����X�
�&�����x��(�����h��'r,c��`�UO]]]2nUO[U1Qk2UO[U1Qk2UO[U1Qk2UO[U1Qk2UO[U1Qk2UO[U1Qk2UO[U1Qk2UO[U1Qk2P!)	r$c�:�RQ6!�Nr]r]�rks�r)�<lambda>�GHarmlessMixedComparison.test_harmful_mixed_comparison.<locals>.<lambda>��	���R�"�Wr,c�:�RQ6*!rpr]rqs�r)rrrs��	���R�2�Xr,c�:�RQ6�!rpr]rqs�r)rrrs�rtr,c�:�RQ6�!rpr]rqs�r)rrrs�rvr,c�:�QR6!rpr]rqs�r)rrrs�rtr,c�:�QR6*!rpr]rqs�r)rrrs�rvr,c�:�QR6�!rpr]rqs�r)rrrs�rtr,c�:�QR6�!rpr]rqs�r)rrrs�rvr,)rir�r�rjs&@r)�test_harmful_mixed_comparison�5HarmlessMixedComparison.test_harmful_mixed_comparison�s����
�]�]�1�a��
#�����)�_�5����)�%5�6����)�_�5����)�%5�6����)�_�5����)�%5�6����)�_�5����)�%5�6r,r])rIr^r_r`rlr}rarbrcs@r)rfrf�s����(�:7�7r,rfc��\sQsQs]sQsP!)�SubclassTimeDelta�r]�rIr^r_r`�sub_varrar]r,r)r�r�����Gr,r�c�
`�\sQsQsn\sQsQsQs\	OQ2sQsQs
QsQ	sQ
sQsQsQ
sQsQsQsQs\	OQ2sQsQsQsQsQsQsQsQs Qs!Qs"Qs#Qs$Us%P!)�
TestTimeDelta�c
�`�UOoUOo[nUR2R]]]]]]]Q52UR]2R]Q52UR]]2R]Q52UR]]]2R]Q52UR]Q5R]Q52UR]Q5R]Q52UR]Q5R]<Q52UR]Q5R]<Q52UR]Q5RQQ	52UR]Q	5RQQ52URQQ5R]Q52URQQ5R]Q52URQQ5R]Q52URQQ5R]Q52URQ
Q5R]Q	52URQ
Q	5R]Q52U[U1Qk2U[U1Qk2U[U1Q
k2U[U1Qk2U[U1Qk2U[U1Qk2U[U1Qk2P!)r	)�weeks�daysr�rjr
�millisecondsr�r�rr
�r�r�ri���r�g����MbP?c�:�RQQ5!)�1r�r]��tds�r)rr�0TestTimeDelta.test_constructor.<locals>.<lambda>#�	���b�s�mr,c�:�RQQ5!)r�r�r]r�s�r)rrr�$s	���b�c�lr,c�:�RQQ5!)r�r�r]r�s�r)rrr�%r�r,c�:�RQQ5!)r�rir]r�s�r)rrr�&�	���b��or,c�:�RQQ5!)r�rr]r�s�r)rrr�'r�r,c�:�RQQ5!)r�r�r]r�s�r)rrr�(�
���b�c�2r,c�:�RQQ5!)r�r
r]r�s�r)rrr�)r�r,g�$I�$I�?gUUUUUU�?g�?)r'r�rr�)r(r�rar�s&  @r)r�TestTimeDelta.test_constructors����
�
�
��
�
�
��
��	�2�4��!�!�1�a��!"��4�	5�
�2�a�5�"�!�*��
�2�a��8�R��]�#�
�2�a��A�;���*�+�
�2�A�;���
�#�
�2�1�:�r��|�$�
�2�A�;��2��'�
�2�a�=�"�R�.�)�
�2�a�=�"�$�/�0�
�2�1��r�t�4�5�	�2�E�?�B�A�J�'�
�2�6�?�B�Q�K�(�
�2�F��R��]�+�
�2�f��r�!�}�-�
�2�e��b�a�0�1�
�2�5�!�2�1�#5�6�	�9�+�,�
�9�*�+�
�9�+�,�
�9�-�.�
�9�-�.�
�9�2�3�
�9�2�3r,c	���UOo[oU]2oU]]<2oU]]Q2oUV4*U*U]]<Q22UV4*
U]Q22UUOU2U]Q22UU'UQ22UU3U]22UU'UPQ22UU'UPQQ22U[U2U2U[U'2U2UU]Q2U2UU]]Q2U2UU]
*U]F22UU]
*]
U*2UU]
*]
U*2UU]
*U]Q22U]
U*U]Q22UU]
*U]Q22UU]
*U]]Q22U]
U*U]]Q22UU]
*U]]Q22UUP*U'2UUQ*U'U*
2UUQ*U'U'*2UUQ*U]<*]*2UUQ*]<U*]*2UUQ*U]]22UQU*U]]22UU]*U]22UU]
*U]]22UUQ*U]]]22UU]
*U]Q22UUQ*U]]Q22UUQ*U]22UUQ*U]]x22UU]*U]22UU]
*U]]22UUQ*U]]]22UU]
*U]Q22UUQ*U]]Q22U]Q5oU]U*Q*]U*2U]U*Q*]U*2UQ]U**]U*2UQ]U**]U*2UQU*Q*QU*2UQU*Q*QU*2UU]Q5Q	*UQ
Q52UU]Q5Q*UQQ52U]U*]*]U*2U]U*]*]U*2UQU*Q
*QU*2UQU*Q
*QU*2U]U*Q*QU*2U]U*Q*QU*2U]U*Q*QU*2U]U*Q*QU*2[	Q]
2FD0oUVv*]*U*[U]*22J2	[	Q]
2FD0oUVv*Q*U*[UQ*22J2	UU]Q5Q*UQQ52UUQQQ2UQQQ2*
U]]]22UUQ]]2UQ]]2*
U]]]22P!)�r��X>�X�'i��6��?r
r翶~�Ϛ�?�@�g�6+1��?i�S	g@�ɚ;�QrV�>B�QiDQrUi��rT�i@�i@�rSr3g�rRg`""K?-�?)r'r�__rsub__�abs�range�round)r(rr��a�b�c�us�is&       r)�test_computations�TestTimeDelta.test_computations+sk��
�
�
��
���q�E���q�"�I���q�!�T�N��
�1�3�q�5�"�Q��D�/�"�
�1�3��1�l�#�$�
�1�:�:�a�=�"�Q��-�.�
�A�2�r�"�v��
�A�2�r�!�u�
�
�A�2�r�"�l�#�$�
�A�2�r�"�k�6�*�+�
�3�q�6�1�
�
�3��r�7�A��
�2�a��>�1��
�2�a��J���#�
�1�R�4��B���
�1�R�4��A���
�1�R�4��A���
�1�R�4��A�s���
�2�a�4��A�s���
�1�R�4��A�s���
�1�R�4��A�q�%��!�
�2�a�4��A�q�%��!�
�1�R�4��A�q�%��!�
�1�R�4�!���
�1�R�4�!��A���
�1�R�4�!��Q�B���
�1�e�9�q��t�R�i� �
�1�e�9�r�!�t�R�i� �
�1�T�6�2�a��8��
�4��6�2�a��8��
�1�a�4��A���
�1�b�5�"�Q��(��
�1�d�7�B�q�!�Q�K� �
�1�b�5�"�Q��/�"�
�1�g�:�r�!�Q�	�*�+�
�1�S�5�"�R�&��
�1�S�5�"�Q��*��
�1�Q�3��1���
�1�R�4��A�q���
�1�T�6�2�a��A�;��
�1�R�4��A�x��!�
�1�W�9�b��A�y�)�*��Q�
��
�A�b�D�C�<��2���
�A�b�D�C�<��2���
�3�!�B�$�<��2���
�3�!�B�$�<��2���
�B�r�E�S�=�"�R�%� �
�B�r�E�S�=�"�R�%� �	�2�a�=�8�#�R�V�%<�=�
�2�a�=�9�$�b�f�&=�>�	�A�b�D�A�:�q��t��
�A�b�D�A�:�q��t��
�B�r�E�S�=�"�R�%� �
�B�r�E�S�=�"�R�%� �
�A�b�D�B�;��2���
�A�b�D�B�;��2���
�A�b�D�D�=�"�R�%� �
�A�b�D�D�=�"�R�%� ��s�B��A����Q���|�U�1�Q�3�Z�(� ��s�B��A����R��"�}�e�A�b�D�k�*� �	�2�a�=�M�*�B�F�,C�D�	�2�i���'�"�Y��v�*F�F�
�a��A�;�	�
�2�i��A���I�q�!�!4�4�
�a��A�;�	r,c�```�[]*2nQ
FDonUO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2Jq	]nUO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[U1Qk2UO[U1Q	k2P!)r�c�:�RR*!r.r]�r�r�s��r)rr�<TestTimeDelta.test_disallowed_computations.<locals>.<lambda>��	����1�r,c�:�RR*
!r.r]r�s��r)rrr��r�r,c�:�RR*!r.r]r�s��r)rrr��r�r,c�:�RR*
!r.r]r�s��r)rrr��r�r,c�:�RR*!r.r]�r��zeros��r)rrr��s	���T�Q�Yr,c�:�RR*!r.r]r�s��r)rrr��s	���Q�$�Yr,c�:�RR*!r.r]r�s��r)rrr��s	���Q��Xr,c�:�RQ*!)�r]�r�s�r)rrr��s	���Q��Wr,c�:�RP*!r*r]r�s�r)rrr��s	���Q��Vr,�r$��?)rr�r��ZeroDivisionError)r(r�r�r�s&@@@r)�test_disallowed_computations�*TestTimeDelta.test_disallowed_computations~s�����b�M���A����i��5����i��5����i��5����i��5�	������)�%6�7����+�->�?����+�-=�>����+�_�=����)�^�4r,c��[]*2oUO[UO[2UO[UO
[2P!r�)rr�r�__mul__�NAN�__truediv__)r(r�s& r)�test_disallowed_special�%TestTimeDelta.test_disallowed_special�s7���b�M�����*�a�i�i��5����*�a�m�m�S�9r,c���]]]q2o[VU2oUOUOU2UOUOU2UOUOU2P!�r$�rr'r�r
r)r(r�r
r�r�s&    r)�test_basic_attributes�#TestTimeDelta.test_basic_attributes�sU���q�"�r��
�t�b�
)��������$�'�������W�-�������"�-r,c
�Z�[QQ5oUOUO2Q2QFD/o[UQ5oUOUO2U2J1	QFD@o[UQ5oUOUO2U[]Q5*2JB	P!)�mr�g8~Arr
)g˟$�@g˟$��r�r	g��.A)���rTi����)rr'�
total_seconds)r(r�r��mss&   r)�test_total_seconds� TestTimeDelta.test_total_seconds�s���
�C�
 ������)�)�+�Z�8�N�M��=�1�B����R�-�-�/��?�O�
!�B���+�B����R�-�-�/��i��6J�1J�K�!r,c	�d�[]dQQQ]QQ5o[]Q5oUOV2P!)�d�r�r�r�rjr
rr
rU�8���rSg��A)rr'�r(�t1�t2s&  r)�test_carries�TestTimeDelta.test_carries�s7��
�C��)�!�!�$9�;���A�
&������ r,c	��[]dQQQ]QQ5o[2oUO[U2[U22U[]Q5*
oU[]1Q5*
oUOV2UO[U2[U22U]-o]V2$UO[U2]2UOV1*]2P!)r�r�r�r�rUr�rSiz
)rr'�hash�len)r(r�r��ds&   r)�test_hash_equality� TestTimeDelta.test_hash_equality�s���
�C��)�!�!�$9�;���[������b��4��8�,�
�i�a� � ��
�i�S�!�!������ �����b��4��8�,�
��G���������Q���#�������"r,c��Qo[Uo[FD9vq4oUOV%2oUOU2oUO	V'2J;	P!)r#)r#�"�8)rr�r�r�r'�r(r�r�r�r�r�r�r�s&       r)�
test_pickling�TestTimeDelta.test_pickling�sL�����$���)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+�*8r,c�``�[]]]2n[]]]2oUORU2UORU6*2UORU6�2UORU6g2UORU62UORU6�2Q	FD�o[UoUORU62UOUR6�2UORU6*2UOUR6�2UORU6g2UOUR6g2UORU6H2UOUR6H2UORU6�2UOUR62UORU6�2UOUR6*2J�	[FCD0nUORR6HP
2UORR6gP	2UORR6HP
2UORR6gP	2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2CJ3	P!)
�c�:�RR6*!r.r]��badargr�s��r)rr�,TestTimeDelta.test_compare.<locals>.<lambda>��	����v�r,c�:�RR6!r.r]r�s��r)rrr���	����f�r,c�:�RR6�!r.r]r�s��r)rrr��r�r,c�:�RR6�!r.r]r�s��r)rrr��r�r,c�:�RR6*!r.r]r�s��r)rrr���	����2�r,c�:�RR6!r.r]r�s��r)rrr���	����"�r,c�:�RR6�!r.r]r�s��r)rrr��rr,c�:�RR6�!r.r]r�s��r)rrr��rr,�)r�r�r�)r��r)r�r�r>)rr'r?r@�
OTHERSTUFFr�r��r(r�r�r�r�s&  @@r)�test_compare�TestTimeDelta.test_compare�sK���
�q�!�Q�
��
�q�!�Q�
������R� �����b��!�����b��!�����r��"�����b��!�����b��!�3�D��D�!�B��O�O�B��G�$��O�O�B��G�$��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%����R�2�X�&����R�2�X�&����R�"�W�%����R�"�W�%����R�2�X�&����R�2�X�&�4�!�j�F����R�6�\�5�1����R�6�\�4�0����V�r�\�5�1����V�r�\�4�0����i�)=�>����i�)<�=����i�)<�=����i�)=�>����i�)=�>����i�)<�=����i�)<�=����i�)=�>�!r,c�Z�[oUOoU[U]22Q2U[UP22Q2U[U]22Q2U[UQ22Q2U[U]]:];Q52Q2U[U]]]Q52Q2U[UQ]]]"Q52Q	2U[U]Q
52Q2U[U]Q52Q
2U[UQ]];];QQ52Q2UQUPQ5'8Q0Q2P!)r$z1 day, 0:00:00z-1 day, 0:00:00z2 days, 0:00:00z-2 days, 0:00:00rUz12:58:59z2:03:04)r�r�rjr
z-210 days, 23:12:34r�z0:00:00.001000r
z0:00:00.000003r�rV�r�r�rjr
rz999999999 days, 23:59:59.999999z-(r��)z
-(1:00:00)rTi��)rr'r�)r(r�rs&  r)r��TestTimeDelta.test_str�s��
��
�
�
��
�3�r�!�u�:�'�(�
�3�r�"�v�;�)�*�
�3�r�!�u�:�(�)�
�3�r�"�v�;�*�+�
�3�r��B��3�4�j�A�
�3�r��1�a�0�1�9�=�
�3�r��2�r�2�>�?� �	"�	�3�r�q�!�"�$4�5�
�3�r�q�!�"�$4�5�
�3�r�y��B�� &�(�)�,�	.�
	�R��"��
� ��"�L�1r,c	�b�QUOO*oUO[UO]22QU*2UO[UO]
]22QU*2UO[UOQ]Q22QU*2UO[UO]<Q52QU*2UO[UO22QU*2UO[UO]dQ52Q	U*2UO[UO]]dQ
52QU*2UO[UO]]dQ52Q
U*2P!)�	datetime.z
%s(days=1)z%s(days=10, seconds=2)�z,%s(days=-10, seconds=2, microseconds=400000)rz%s(seconds=60)z%s(0)r
z%s(microseconds=100))r�rz%s(days=1, microseconds=100)�r
rz%s(seconds=1, microseconds=100)rR�rirIr'r��r(rCs& r)r��TestTimeDelta.test_reprsW���T�]�]�3�3�3������d�m�m�A�.�/�%��,�	.�����d�m�m�B��2�3�1�D�8�	:�����d�m�m�C��F�;�<�G�$�N�	P�����d�m�m�B�m�7�8�)�D�0�	2�����d�m�m�o�.� �4��	)�����d�m�m��m�=�>�/�$�6�	8�����d�m�m���m�E�F�7�$�>�	@�����d�m�m�A�C�m�H�I�:�T�A�	Cr,c���[]Q5oUO[U2Q2[]Q5oUO[U2Q2[]Q5oUO[U2Q2P!)�:Subclasses should have bare names in the repr (gh-107773).r�zSubclassTimeDelta(days=1)rzSubclassTimeDelta(seconds=30)r�zSubclassTimeDelta(days=14))r�r'r��r(r�s& r)�test_repr_subclass� TestTimeDelta.test_repr_subclass#s_��
�A�
&������b��#>�?�
�r�
*������b��#B�C�
�Q�
'������b��#?�@r,c	�~�[Q]];];QQ5[QQ5[Q]Q5[]]]Q51FD�o[U2oUOUQ2UQ*o[U2oUO	V2[UO
UOUO2oUO	V2J�	P!)	r�rVr
r��r�r
�r�r
rr��	NN�6e�)rr��assertStartsWithr�r'r�r
r)r(r��s�td2s&   r)�test_roundtrip�TestTimeDelta.test_roundtrip,s����)�2�r�%'�f�>��*�-��*�a�8��!�Q�Q�?�	A�B��R��A��!�!�!�[�1��"��A��q�'�C����R�%��B�G�G�R�Z�Z����A�C����R�%�Ar,c�>�UO[O[2UO[O[2UO[O[2UO[O[O6�2UO
[O[Q22UO
[O[QQQ22UO
[O[]]]22P!)r�r!r�g~�.A)r�rr�r��
resolutionr?r'r1s&r)�test_resolution_info�"TestTimeDelta.test_resolution_info>s������i�m�m�Y�7����i�m�m�Y�7����i�2�2�I�>����	�
�
�	�
�
�5�6�������	�*�(=�>�������	�)�Y��(N�O�����-�-�y��A�q�/A�Br,c�>�[Oo[OU*oV!*oUO[UO
U2UO[UOU'2[OU*
oV!*
oUO[UOU2UO[UO
U'2UO[Q2[]2oUO[UOQ2UO[UOQ2UO[UOQ2UO[UOQ2UO[UOQ2P!)c�&�[O'!r.)rr�r]r,r)rr�-TestTimeDelta.test_overflow.<locals>.<lambda>Ts
��)�-�-�r,ge��Ag#B����;g�����|�=gr��{�>�ʚ;)
rr(r�r��
OverflowError�__sub__�__add__r�r�r�)r(�tinyr��days&   r)�
test_overflow�TestTimeDelta.test_overflowGs���#�#��
�]�]�T�
!��
�
�����-����T�:����-����d�U�;�
�]�]�T�
!��
�
�����-����T�:����-����d�U�;����-�)?�@���l�����-����e�<����-����c�:����-����%�@����-����%�@����-����%�@r,c��[]2oUO[UO[2UO[UO['2P!r�)rr�r/r��INF)r(r3s& r)�_test_overflow_special�$TestTimeDelta._test_overflow_special]s9����l�����-����c�:����-����s�d�;r,c��[oUOoUUQQ5U]22UUQQ5U]22UUQQ5U]Q52UUQQ5U]Q52UUQQ5U]Q52UUQQ5UPQ52UUQQ5U]Q52UUQQ5UQQ52UUQQ5U]Q52UUQQ5U]Q52UUQQ5UQQ52UUQQ5UQQ52QoU]*oUUQU*Q5U]22UUQU*Q	5U]22UUQU*QU*Q
5U]Q52UUQ
U*Q5U]22UUQU*Q	5U]22UUQ
U*QU*Q
5UPQ52UUQQ5QUQQ5*2UUQQ5UO*QUO*UO*2P!)g�������?r�r�r
r���t��Ar�g�������?r��r�r�r�g-C��6:?g������ٿg-C��6:�g����Mb@?g����Mb@�ga2U0*�C?ga2U0*�C�g�~j�t�X?g�~j�t�X�rTg���Ơ>g���Ơ���?���i|�g������ɿ)rr'r()r(r�r�us_per_hour�
us_per_days&    r)�test_microsecond_rounding�'TestTimeDelta.test_microsecond_roundingcs���
��
�
�
��	�2�8�$�b��e�,�
�2�9�%�r�!�u�-�
�2�8�$�b�a�&8�9�
�2�9�%�r�r�':�;�
�2�8�$�b�a�&8�9�
�2�9�%�r�r�':�;�
�2�8�$�b�a�&8�9�
�2�9�%�r�r�':�;�
�2�i� �"�!�"4�5�
�2�j�!�2�2�#6�7�
�2�f��r�t�4�5�
�2�g���� 6�7��� �2�%�
�
�2�2�j�=�!�2�a�5�)�
�2�B�{�N�#�R��U�+�
�2�2�j�=��;��7���9K�L�
�2�3�z�>�"�B�q�E�*�
�2�C��O�$�b��e�,�
�2�3�z�>��[��9�2�2�;N�O�	�2�3���R�S�%9�!9�:�
�2�3�����.��B�M�M�0A�2�=�=�0P�Qr,c��[PQ5oUOUOUOUO1Q2P!)r$r
)r�r�rVr�rs& r)�test_massive_normalization�(TestTimeDelta.test_massive_normalization�s2��
�B�
'�����"�'�'�2�:�:�r���?�0�	2r,c��UO[]22UO[]]22UO[]]]22UO[]Q52UO[]22P!)r$r
)r?rr@r1s&r)�	test_bool�TestTimeDelta.test_bool�s\�����	�!��%����	�!�Q��(����	�!�Q��*�+����	�q�1�2�����1��&r,c�R`�U1QkQ[2nR]Q5oUO[U2R2UOUO	2]2RPQQ5oUO[U2R2UOUO	2Q2V*oUO[U2[2ROU2oUO[U2R2UOUOUO2UOUOUO2UOUOUO2UO[U2[U22UOUO	2P2P!)c�@:`�\sQsQsn\U1Qk2sQsQsUsP!)�0TestTimeDelta.test_subclass_timedelta.<locals>.T�c�V:�RUOUOUO2!r.r)r��Ts&�r)�from_td�8TestTimeDelta.test_subclass_timedelta.<locals>.T.from_td�s�������"�*�*�b�o�o�>�>r,c��UO]*UOQ**UOQ**o[U2!)�g �@r<)r�r
rr�)r(�sums& r)�as_hours�9TestTimeDelta.test_subclass_timedelta.<locals>.T.as_hours�s?���y�y�2�~��|�|�f�,�-��(�(�6�1�2���S�z�!r,r])	rIr^r_r`�staticmethodrPrUrarb)rdrOs@�r)rOrL�s!����
�
?��
?�
"�
"r,rOr�ri��i��)
rr/r�r'rUrPr�r
rr�)r(r�r��t3�t4rOs&    @r)�test_subclass_timedelta�%TestTimeDelta.test_subclass_timedelta�s$���		"�	�		"��A�Y���
�
�d�2�h��"���������+�
�B��
&���
�
�d�2�h��"���������,�
�W���
�
�d�2�h�	�*�
�Y�Y�r�]���
�
�d�2�h��"�������"�'�'�*�������R�Z�Z�0�������"�/�/�:�����R��#�b�'�*���������+r,c	�~�QQ[2oUQ]]2o[]Q5oQQUQ]]21QQUQ]]21QQ	UQ]]21,oSFDRvqVoUOU29^tt^2UV#2oUOV�2UO	V�2PPP2JT	P!)%fhJi9h)
c��\sQsQsQsP!)�6TestTimeDelta.test_subclass_date.<locals>.DateSubclass�r]rr]r,r)�DateSubclassr^����r,r`��r��addc��V*!r.r]�r�r�s&&r)rr�2TestTimeDelta.test_subclass_date.<locals>.<lambda>�����r,�raddc��V*!r.r]res&&r)rrrf����!�%r,�subc��V*
!r.r]res&&r)rrrf�rgr,)rrr]r'r�)	r(r`�d1r��testsrC�func�expected�acts	&        r)�test_subclass_date� TestTimeDelta.test_subclass_date�s���	�4�	��$��1�
%��
�A�
���&��T�1�a�(@�A�
�'��d�A�q�)A�B�
�&��T�1�a�(@�A�
��%*� �D�����d�#�#��2�l��� � ��/��%�%�c�8�$�#�%*�#�#�#�s�2+B+	�+B<
�4B<
c
��QQ[2oUQ]]]]2o[]]Q5oQQUQ]]]
21QQUQ]]]
21QQ	UQ]]]21,oSFDRvqVoUOU29^tt^2UV#2oUOV�2UO	V�2PPP2JT	P!)%fhJi9h)
c��\sQsQsQsP!)�>TestTimeDelta.test_subclass_datetime.<locals>.DateTimeSubclass��r]rr]r,r)�DateTimeSubclassrv�rar,rxrb)r�rjrcc��V*!r.r]res&&r)rr�6TestTimeDelta.test_subclass_datetime.<locals>.<lambda>�rgr,rhc��V*!r.r]res&&r)rrrz�rjr,rkc��V*
!r.r]res&&r)rrrz�rgr,)rrr]r'r�)	r(rxrmr�rnrCrorprqs	&        r)�test_subclass_datetime�$TestTimeDelta.test_subclass_datetime�s���	�x�	��d�A�q�"�b�
1��
�A�r�
*���&�(8��q�!�R�(H�I�
�'�)9�$��1�b�)I�J�
�&�(8��q�!�R�(H�I�
��%*� �D�����d�#�#��2�l��� � ��/��%�%�c�<�$�#�%*�#�#�#�s�8+B1	�1C
�:C
c��[]]]Q5o[]Q5oUOV*Q2UOV*Q2[]]Q5o[]Q5oUOV*Q2UOV*]2[]2oUO[[V2UO[[
V2P!)r$rUrgó@i��rjr
rig@)rr'r�r�rr	)r(r��second�minute�zerotds&    r)�
test_division�TestTimeDelta.test_division�s����A�r�2�6���1�%�������V�,������d�+��a��,���1�%�������S�)������a�(��1������+�W�a�@����+�X�q�Ar,c�h�[]]Q5o[]Q5oV*oUOU[]Q52[Q]Q5oV*oUOU[]Q52[]2oUO[[V2UO[
[U]
2P!�r�r�rirrT)rr'r�r�r
r�)r(r�r��rr�s&    r)�test_remainder�TestTimeDelta.test_remainder�s����a��,���1�%��
�J������I�b�1�2��b�"�-��
�K������I�b�1�2��1������+�S�!�<����)�S�!�R�0r,c���[]]Q5o[]Q5o[V2vq4UOU]2UOU[]Q52[Q]Q5o[V2vq4UOUQ2UOU[]Q52[]2oUO[[V2UO[
[U]
2P!r�)r�divmodr'r�r�r�)r(r�r��qr�r�s&     r)�test_divmod�TestTimeDelta.test_divmod�s����a��,���1�%���a� �������A������I�b�1�2��b�"�-���a� �������B������I�b�1�2��1������+�V�Q�?����)�V�Q��3r,c	��QoUO[29^tt^2[2U]Q*2*PPP2UO[29^tt^2[2U]Q*2*PPP2QFD}oUO[29^tt^2[2UU2*PPP2UO[29^tt^2[2UU2*PPP2J	P!)%fhK�9h)%fhK�9h)%fhKy9h)%fhJ�9h)c�8`�U1QkQ[2oU2!)c�0:`�\sQsQsnU1QksQsUsP!)�FTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloatic�
:�R!r.r])r(�	bad_ratios&�r)�as_integer_ratio�WTestTimeDelta.test_issue31293.<locals>.get_bad_float.<locals>.BadFloat.as_integer_ratio
s	���$�$r,r])rIr^r_r`r�rarb)rdr�s@�r)�BadFloatr�s����%�%r,r�)�float)r�r�sf r)�
get_bad_float�4TestTimeDelta.test_issue31293.<locals>.get_bad_floats���
%�5�
%��:�r,r�)r]r��r$r�r�)r�r�rr)r(r�r�s&  r)�test_issue31293�TestTimeDelta.test_issue31293s���	��
�
�y�
)�
)��K�-��T�	�2�2�*�
�
�
�y�
)�
)��K�-��T�	�2�2�*�1�I��"�"�:�.�.���m�I�6�6�/��"�"�:�.�.���m�I�6�6�/�.�1�*�
)��
)�
)��/�.��.�.�.�sG�D�&D&�0D9	�-E	�D#	�D#	�&D6	�/D6	�9E	
�E	
�E
�E
c	��```�U1QkQ[2oU1QkQ2nU1QkQ[2nQ
FD�nUORQ59^tt^2[U]2Q5[U]2Q5[U]2Q	5[]2U]2*U]2[]2*[]2U]2*PPP2J�	P![cK�h9h[cK�h9h[[1cK�h9h[[1cK�h9h[cK�h9h[cK|h9h)%fhCJ49h)c�T:`�\sQsQsnU1QksU1QksU1QksU1QksQsUs	P!)�-TestTimeDelta.test_issue31752.<locals>.BadIntic�:�R2!r.r]�r(�other�Prods&&�r)r��5TestTimeDelta.test_issue31752.<locals>.BadInt.__mul__ �
����v�
r,c�:�R2!r.r]r�s&&�r)�__rmul__�6TestTimeDelta.test_issue31752.<locals>.BadInt.__rmul__"r�r,c�:�R2!r.r]r�s&&�r)�__floordiv__�:TestTimeDelta.test_issue31752.<locals>.BadInt.__floordiv__$r�r,c�:�R2!r.r]r�s&&�r)�
__rfloordiv__�;TestTimeDelta.test_issue31752.<locals>.BadInt.__rfloordiv__&r�r,r])
rIr^r_r`r�r�r�r�rarb)rdr�s@�r)�BadIntr�s����
�
�
�
�
r,r�c�<:`�\sQsQsnU1QksU1QksQsUsP!)�+TestTimeDelta.test_issue31752.<locals>.Prodi)c�:�R2!r.r]�r(r��Sums&&�r)r1�3TestTimeDelta.test_issue31752.<locals>.Prod.__add__*�
����u�r,c�:�R2!r.r]r�s&&�r)�__radd__�4TestTimeDelta.test_issue31752.<locals>.Prod.__radd__,r�r,r])rIr^r_r`r1r�rarb)rdr�s@�r)r�r�)s����
�
�
r,r�c�0:`�\sQsQsnU1QksQsUsP!)�*TestTimeDelta.test_issue31752.<locals>.Sumi/c�
:�R!r.r])r(r��divmodresults&&�r)�
__divmod__�5TestTimeDelta.test_issue31752.<locals>.Sum.__divmod__0s	���#�#r,r])rIr^r_r`r�rarb)rdr�s@�r)r�r�/s����
$�
$r,r�)r�r
r�r�)Nr])r	r$r�)r	r�)rlr]rr�r)r(r�r�r�r�s& @@@r)�test_issue31752�TestTimeDelta.test_issue31752sE���	�S�	�	�	�	$�#�	$�;�L����<��8�8���6�!�9�5���F�1�I�.���F�1�I�.���a�L�6�!�9�,���1�I�	�!��,���a�L�F�1�I�-�/9�8�;��
!�����!�����"�:�.�����"�:�.�����!�����!�����19�8�8�s��E	�C)�+C:�>D�D"�*D9�E
�)	C7�3C7�4E	�6C7�7E	�:	D�D�E	�D�E	�D�D�E	�D�E	�"D6�2D6�3E	�5D6�6E	�9	E�E�E	�E�E	�
	E�E�E	�E�E	�E-
�$E-
r])&rIr^r_r`rrirr�r�r�requires_IEEE_754r�r�r�r�r�r�r
r�r�rr%r)r4r8rBrErHrZrrr}r�r�r�r�r�rarbrcs@r)r�r�s������H�!4�FQ�f5�&
���:��:�
.�
L�!�#�(,�&?�P2�0C�&A�&�$C�A�,
���<��<�
R�B2�
'�,�>9�&=�&
B�&
1�4�"7�(1�1r,r�c�:`�\sQsQsnQsQsQsQsQsUs	P!)�TestDateOnlyiSc��[Q]]2o[]]]]]Q5o[UO2oUOU[]22V*oUOVAU*2V!*oUOVAU*2V*
oUOVAU*
2U'o[UO2oUOU[Q22V*oUOVAU*2V!*oUOVAU*2V*
oUOVAU*
2P!)��r
rT)rrr�r')r(r{rZr��dt2s&    r)�test_delta_non_days_ignored�(TestDateOnly.test_delta_non_days_ignoredWs��
�$��1�
���q��1�a�'(�*������$������y��|�,��j������4�i�(��j������4�i�(��j������4�i�(��������$������y��}�-��j������4�i�(��j������4�i�(��j������4�i�(r,c��[Q]]2QQ1[Q]]2QQ1[Q]]2QQ1[Q]]2QQ1[Q]]2Q	Q
1[Q]]2QQ1[Q]]2Q
Q1[Q]]2QQ1[Q]]2QQ1[Q]	]2QQ1[Q]	]2QQ1[Q]	]2QQ1[]]]2QQ1[]c]]2QQ1[]]]2QQ1[Q]	]2QQ1[Q]	]2QQ 1,oSFDovq#oUOV4Q!59^tt^2[OV42oUOV%2UO	[U2[2PPP2Jq	P!)%fhJ�9h)"i�z
1998-02-03�%Y-%m-%d��z
2004-12-02��z
2020-02-29u2004-12�02u
%Y-%m�%du2004�12-02u
%Y�%m-%dz2004-02z%Y-%mz02-2004z%m-%Yz
02/12/2004z%d/%m/%Yz
12/02/2004z%m/%d/%Y��z
24.09.2023z%d.%m.%Yz
24-09-2023z%d-%m-%Yz
2023/09/24z%Y/%m/%dz
0127-02-03z
0099-02-03z
0005-02-03z
2023-W39-1z	%G-W%V-%uz2023-268z%Y-%j��string�format)rr]�strptimer'r/r��r(�inputsrpr�r��gots&     r)�
test_strptime�TestDateOnly.test_strptimets����$��1�
�|�Z�8�
�$��A�
��j�9��$��2�
��j�9��$��A�
� 1�?�C�
�$��A�
� 1�?�C��$��1�
�y�'�2�
�$��1�
�y�'�2��$��A�
��j�9�
�$��A�
��j�9��$��2�
��j�9�
�$��2�
��j�9�
�$��2�
��j�9��#�q�!�_�l�J�7�
�"�a��^�\�:�6�
�!�Q��]�L�*�5��$��2�
��k�:�
�$��2�
�
�G�4�A!
��D)/�$�H�f����V��;�;��m�m�F�3��� � ��/��
�
�d�3�i��.�<�;�)/�;�;�;�s�&AE;	�;F
�F
c
��[OoUO[29^tt^2UQQ2oPPP2[Q]]2o[Q]]2o[Q]]2oQQQU1QQQU1QQQ	U1Q
QQU1Q
QQU1QQQU1,oSFDPvqxq�QU*oUO	UUU	U
Q59^tt^2UV�2oUOV*UQ5PPP2JR	P!)%fhK�9h)%fhJz9h)z01/02/3z%d/%m/%y���%dz1/02/03�%mz01/2/03�%jz2/03z%j/%y�%w�6/04/03�%w/%U/%y�%W�6/4/2003�%u/%W/%Y�%V�%u/%V/%G�test single digit ��reasonr�r��target��msg)rr�r�rr]r')r(r��newdaterm�d2�d3r�r�r�r�r�s&          r)�test_strptime_single_digit�'TestDateOnly.test_strptime_single_digit�s&���=�=��
�
�
�z�
*�
*��y�*�5�G�+��$��1�
��
�$��1�
��
�$��2�
��
�9�z�2�.�
�9�z�2�.�
�6�w�2�.�
�9�z�2�.�
�:�z�2�.�
�:�z�2�.�
��/5�*�F�F�)�F�2�F����V�%+�%+�%+��-�-�#�6�2��� � ��f� �=�-�-�/5�!+�
*��$-�-�-�s#�
C!�7C4	�!C1	�*C1	�4D
�=D
c��UO[29^tt^2[OQQ2PPP2[O
O
2UO[Q29^tt^2[OQQ2PPP2UO[29^tt^2[OQQ2[OQQ2[OQQ	2PPP2P!)%fhK�9h)%fhK�9h)%fhP!9h)
�02-29�%m-%d�.*day of month without a year.*z02-01z%m-%ez20-03-14z%y-%m-%d�
02-29,2024�%m-%d,%Y�%m-%e,%Y)
r�rrr��	_strptime�_regex_cache�clear�assertWarnsRegex�DeprecationWarning�_assertNotWarnsr1s&r)�test_strptime_leap_year�$TestDateOnly.test_strptime_leap_year�s���
�
�
�z�
*�
*��M�M�'�7�+�+�	���$�$�&�
�
"�
"�#5�#E�G�G��M�M�'�7�+�G��
!�
!�"4�
5�
5��M�M�*�j�1��M�M�,�
�3��M�M�,�
�3�6�
5�+�
*��
G�G��6�
5�
5�s6�D�;D�8AD.�D	�D	�D+	�$D+	�.D?	�7D?	r])
rIr^r_r`r�r�r�r�rarbrcs@r)r�r�Ss����)�:'/�R>�8
4�
4r,r�c��\sQsQs]sQsP!)�SubclassDatei�r]r�r]r,r)rr�r�r,rc�X`�\sQsQsn\sQsQsQsQs	Qs
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQsQsQsQsQsQsQsQsQsQs Qs!Qs"Qs#Q s$Q!s%Q"s&Q#s'Q$s(Q%s)Q&s*Q's+Q(s,Q)s-Q*s.Q+s/Q,s0Q-s1Q.s2Q/s3Q0s4Q1s5Q2s6Q3s7Q4s8Q5s9Us:P!)6�TestDatei�c���UOQ]]2oUOUOQ2UOUO]2UOUO]2P!���)rir'�year�monthr3rzs& r)r��TestDate.test_basic_attributes�sP��
�]�]�4��A�
&��������$�'�������1�%��������#r,c�z�UO]]]2UOO21FD�o[U2oUOUQ2UQ*o[	U2oUOV2UOUOUOUO2oUOV2J�	P!�r$rr)	ri�todayr�r"r�r'rr	r3�r(r{r#r�s&   r)r%�TestDate.test_roundtrip�s����=�=��A�q�)��=�=�&�&�(�*�B��R��A��!�!�!�[�1��"��A��q�'�C����R�%��-�-�������2�6�6�:�C����R�%�*r,c��[]]]2oUO[U2Q2[Q]]2oUO[U2Q2[Q]
]
Q5oUO[U2Q2P!)rzSubclassDate(1, 2, 3)r�zSubclassDate(2014, 1, 1)r��r3zSubclassDate(2010, 10, 10))rr'r�rs& r)r�TestDate.test_repr_subclass�sk��
�!�Q��
"������b��#:�;�
�$��1�
%������b��#=�>�
�$���
+������b��#?�@r,c��QFD�vqq4UOVU2oUOVCO22UOOU2oUOV52[	UQ2%fJwUOUO
]2UOUO]2UOUO]2UOUO]2J�	[[[]*]2FD�oUOU]]2oUO2oUOOU2oUOV72U]6�fJ[UOOU]*
2oUOU]*
]]2oUOV72UOUO2U]*
2J�	,QNoQFD�vqiUOU]]2O2o[[]]
2U2FD�vq�U
]6XcU	%c
U]*
o[]U]*2FDhoUOVjU2oUOUO2U2UOV0OOU22U]*
oJj	J�	J�	P!)r$�hour))r$r$r$r$)r$r#�r�)r�r$r$�n)i��r#i��
)r�r�rrrrrrrr))r�T)rF)
rir'�	toordinal�fromordinal�hasattrrr�r��microsecondr�rr�zip)
r(�y�mr��n�fromordrr��dim�isleapr	�maxdayr3s
&            r)�test_ordinal_conversions�!TestDate.test_ordinal_conversions�s*��3�J�A�!�
�
�
�a�A�&�A����Q���
�.��m�m�/�/��2�G����Q�(��w��'�'�� � ����q�1�� � �����3�� � �����3�� � ��!4�!4�a�8�3�&�'�7�1�9�a�0�D��
�
�d�A�q�)�A����
�A����*�*�1�-�B����Q�#��a�x��M�M�-�-�a��c�2���]�]�4��6�2�r�2��� � ��'�� � ������1��5�1�?��7�L�D��
�
�d�A�q�)�3�3�5�A�!$�U�1�b�\�3�!7�
���A�:�&��a�K�F� ��F�1�H�-�C��
�
�d�3�7�A��$�$�Q�[�[�]�A�6��$�$�Q�
�
�(A�(A�!�(D�E���F�A�	.�"8�8r,c�``�UOOnUORORORO2nRO2nRO
R2oUORU2UO[UU1Qk2R[]Q5*oUOUO2R]*2UOVOO
R]*22UOOnUORORORO2nRO2nRO
R2oUORU2UO[UU1Qk2R[]Q5*
oUOUO2R]*
2UOVOO
R]*
22P!)c�6:�ROR]*
2!r��r�r��aords��r)rr�0TestDate.test_extreme_ordinals.<locals>.<lambda>$����a�m�m�D�1�H�.Er,r�c�6:�ROR]*2!r�r*r+s��r)rrr-0r.r,)rir�rr	r3rrr'r�rrr�)r(r�r�r,s& @@r)�test_extreme_ordinals�TestDate.test_extreme_ordinalsse����M�M�����M�M�!�&�&�!�'�'�1�5�5�1���{�{�}��
�M�M�$�������A�����*�&E�F�
�	�q�!�!����������q��1�����M�M�5�5�d�Q�h�?�@��M�M�����M�M�!�&�&�!�'�'�1�5�5�1���{�{�}��
�M�M�$�������A�����*�&E�F�
�	�q�!�!����������q��1�����M�M�5�5�d�Q�h�?�@r,c�
�UO[]]2UO[]]2UO[UO[]*
]]2UO[UO[]*]]2UOQ]]2UOQ]]2UO[UOQ]]2UO[UOQ]
]2UOQ]]2UOQ]]2UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]] 2P!)r$r�r��`	���4�l)rirrr�rr1s&r)�test_bad_constructor_arguments�'TestDate.test_bad_constructor_arguments6s~���
�
�g�q�!�$��
�
�g�q�!�$����*�d�m�m�W�Q�Y��1�E����*�d�m�m�W�Q�Y��1�E��
�
�d�A�q�!��
�
�d�B��"����*�d�m�m�T�1�a�@����*�d�m�m�T�2�q�A��
�
�d�A�r�"��
�
�d�A�r�"��
�
�d�A�r�"����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�a�@����*�d�m�m�T�1�b�Ar,c��UOQ]]2oUOQ]]2oUOV2UO[U2[U22U]-o]V2$UO[U2]2UOV1*]2UOV2*]2UOQ]]2oUOQ]]2oUOV2UO[U2[U22U]-o]V2$UO[U2]2UOV1*]2UOV2*]2P!�r�r4�rir'r�r��r(r��e�dics&   r)r��TestDate.test_hash_equalityLs&���M�M�$��B�'���M�M�$��B�'�����������a��$�q�'�*��!�f���������S��1�%�������#�������#��M�M�$��Q�'���M�M�$��Q�'�����������a��$�q�'�*��!�f���������S��1�%�������#�������#r,c�\	```�UOQ]]2nUOQ]]2oUOQ]]2oRU*
oUOUOQ[[	QQ]22*2UOUO
]2UOUO]2[]2n[]2oUOQ]]2nUORR*UOQ]]22UORR*UOQ]]22UORR*
UOQ]]22UOR'R*UOQ]]22UORU*UOQ]]	22UORU*
UOQ]]22UOR]4U**UOQ]]22UOR]4U**
UOQ]]22UORU*R*
U2UORR*R*
R2UORU*
R*
U'2UORR*
R*
R'2UORRU**
U'2UORRR**
R'2UORRU*
*
U2UORRR*
*
R2UOV"R*
*
R2QFDonUO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2Jq	UO[UU1Qk2UO[UU1Q	k2UO[UU1Q
k2UO[UU1Qk2UO[UU1Qk2UO[U1Q
k2UO[U1Qk2UO[U1Qk2P!)r�r4r�c�:�RR*!r.r]r�s��r)rr�,TestDate.test_computations.<locals>.<lambda>�r�r,c�:�RR*
!r.r]r�s��r)rrrC�r�r,c�:�RR*!r.r]r�s��r)rrrC�r�r,c�:�RR*
!r.r]r�s��r)rrrC�r�r,c�:�RR*
!r.r]�r�r3s��r)rrrC��	���S�1�Wr,c�:�RR*!r.r]rHs��r)rrrC�rIr,c�:�RR*!r.r]rHs��r)rrrC��	���Q��Wr,c�:�RR*!r.r]rHs��r)rrrC��	���S�A�Xr,c�:�RR*!r.r]rHs��r)rrrC��	���Q�#�Xr,c�:�RR*!r.r]r�s�r)rrrC��	���Q��Ur,c�:�RR*!r.r]r�s�r)rrrC��	���Q�!�Vr,c�:�RR*!r.r]r�s�r)rrrC�rRr,�Ar��
rir'r�r�r�r
rrr�r�)r(r�r��diff�weekr�r3r�s&    @@@r)r��TestDate.test_computationsesw����M�M�$��2�&���M�M�$��2�&���M�M�$�q��#����s��������F�S��t�T�1�1E�-F�$F�G�������q�)�����*�*�A�.���l����|���M�M�$��1�%������S��$�-�-��a��";�<�����q��$�-�-��a��";�<�����S��$�-�-��a��";�<����#����4�=�=��q�!�#<�=�����T��4�=�=��q�!�#<�=�����T��4�=�=��q�"�#=�>�����R��W��d�m�m�D�!�Q�&?�@�����R��W��d�m�m�D�!�Q�&?�@����!�d�(�a���.����!�c�'�Q���,����!�d�(�a��$��/����!�c�'�Q����-�����a�$�h��$��/�����a�#�g����-�����a�$�h���.�����a�#�g���,�����#�g���,��A����i��5����i��5����i��5����i��5�	�	
���)�_�5����)�_�5����)�_�5����)�%5�6����)�%5�6����)�]�3����)�^�4����)�]�3r,c��UOOoU[]2[]21FD�oUOOU*oV2*oUO	[
UOU2UO	[
UOU'2UOOU*
oV2*
oUO	[
UOU2UO	[
UOU'2J�	P!r�)	rir(rr�r�r/r0r1r�)r(r2rZr{s&   r)r4�TestDate.test_overflow�s����}�}�'�'���I�a�L�)�A�,�7�E����"�"�U�*�B��K�B����m�R�Z�Z��?����m�R�Z�Z�%��@����"�"�U�*�B��K�B����m�R�Z�Z��?����m�R�Z�Z�%��@�8r,c�,�]PHoQ]	]qCoUOV#U]]]]]P1	2oUOOU2oUO	UO
U2UO	UOU2UO	UOU2P!)r	��)r�mktimeri�
fromtimestampr'rr	r3)r(rrr	r3�tsr�s&      r)�test_fromtimestamp�TestDate.test_fromtimestamp�s���� ��B�S��
�[�[�$�s�A�q�!�Q��2�>�
?���M�M�'�'��+���������&�������%�(��������$r,c�r�QFD.oUO[UOOU2J0	P!��Zb���ti)gZb���t�rf�r�r/rir`�r(�insanes& r)�test_insane_fromtimestamp�"TestDate.test_insane_fromtimestamp��-��
$�F����m�T�]�]�-H�-H�$�
&�$r,c��UO[29^tt^2UOOP2PPP2P!)%fhP!9hr.)r�r�rir`r1s&r)� test_fromtimestamp_with_none_arg�)TestDate.test_fromtimestamp_with_none_arg�s4��
�
�
�y�
)�
)��M�M�'�'��-�*�
)�
)�
)�s�A�A	�A	c�D�]PHo[]2FDdoUOO2oUO2oUOO	U2oV56XcLUO
Q2Jf	WW6wc UO
VS[QQ5Q5P!P!)r	g�������?r�r)rZ)rr�rir
r`�sleep�assertAlmostEqualr)r(rr%r
ra�
todayagains&     r)�
test_today�TestDate.test_today�s�����1�X�E��M�M�'�'�)�E�����B����4�4�R�8�J��"��
�J�J�s�O�!�(�J���"�"�:�)2�3�)?�
#�
A�r,c
�
�[]2FD�oUOUOQ]]U*2O2U2UOUOQ]]U*2O	2U]*2UOUOQ]]U*2O2U2UOUOQ]]U*2O	2U]*2J�	P!)r�rrA)r�r'ri�weekday�
isoweekday)r(r�s& r)�test_weekday�TestDate.test_weekday�s����q��A����T�]�]�4��A�a�C�8�@�@�B�A�F����T�]�]�4��A�a�C�8�C�C�E�q��s�K����T�]�]�4��A�a�C�8�@�@�B�A�F����T�]�]�4��A�a�C�8�C�C�E�q��s�K�
r,c	��,QNo,oSFDlvq4UOUo[]2FDFoU[U2*oUQ*U]*U*1*oUOVx12JH	Jn	SFD�vq�UO	U	QQ59^tt^2UOU	O
2U
2PPP2UO	U	QQ59^tt^2U	O
2oUOUOUOUO1U
2PPP2J�	P!)%fhK}9h)%fhJ�9h)r�:r	r�N�tuple)r��
comparison�fields)))r�r#�)r��4r$))r�r#��r�r$r$))r�r$r>)r�r�r$))��r#�)r�r�r$))r�r#r)r��5r$))r�r$r)r�r$r$)
rir�r�appendr]r'�isocalendarrrYrw)r(�week_mondays�
test_cases�cal_date�iso_date�	base_dater��new_date�new_isor��exp_isor�s&           r)�test_isocalendar�TestDate.test_isocalendar�s��
���
�".��H��
�
�x�0�I��1�X��$�y��|�3��"�3�-�8�A�;��?�*<�<���!�!�8�"5�6��#/�%�J�A�����g��6�6�� � �����'�:�7�����h��7�7��M�M�O��� � �!�&�&�!�&�&�!�)�)�!<�g�F�8�7�%�6�6��8�7�7�s%�!D4	�"AE	�4E
�=E
�E
�E
c��UOQ]]2o[OUO22o[OU2oUO[
U2[2UOUQ2P!)ztTest that the result of datetime.isocalendar() can be pickled.

The result of a round trip should be a plain tuple.
��)r�r$r�)ri�pickler�r�r�r'r�r|)r(r��p�ress&   r)�test_isocalendar_pickling�"TestDate.test_isocalendar_picklings[��

�M�M�$��1�%���L�L�����)���l�l�1�o������c��E�*�����l�+r,c���Qo[[[UO222o,o[	Q2FD�oUOQU*]]2oUOQU*]]2oUO
UO2Q*UO2Q*2UO2]*]56XfJ�UOU2J�	UO
V22P!)aK
              4   32   60   88
              9   37   65   93
             15   43   71   99
             20   48   76
             26   54   82

            105  133  161  189
            111  139  167  195
            116  144  172
            122  150  178
            128  156  184

            201  229  257  285
            207  235  263  291
            212  240  268  296
            218  246  274
            224  252  280

            303  331  359  387
            308  336  364  392
            314  342  370  398
            320  348  376
            325  353  381
        �r�i@�r$NN)	�sorted�maprl�splitr�rir'r�r�)r(�ISO_LONG_YEARS_TABLE�iso_long_years�Lr�r�rms&      r)�test_iso_long_years�TestDate.test_iso_long_years
s��� ��2 ��C�)=�)C�)C�)E� F�G�����s��A��
�
�d�1�f�b�"�-�A����t�A�v�r�2�.�B����Q�]�]�_�R�0�"�.�.�2B�2�2F�G��}�}��q�!�R�'�������	
����+r,c�n�UO]]]2oUOUO2Q2P!)r�z
0002-03-02)rir'�	isoformat�r(r�s& r)�test_isoformat�TestDate.test_isoformat3s*���M�M�!�Q��"����������5r,c�n�UOQ]]2oUOUO2Q2P!)rzSat Mar  2 00:00:00 2002)rir'�ctimer�s& r)�
test_ctime�TestDate.test_ctime7s+���M�M�$��1�%���������$>�?r,c�&�UOQ]]2oUOUOQ2Q2UOUOP2P2UOUOQ2Q2UO[UO2UO[UOQQ2UO[UO]*2UOUOQ2Q2UOUOQ2Q2Q
FDoUOU2J	UOQ	2UOQ
2UOQ
Q5P![
cJ^h9h[cKDh9h)���m:%m d:%d y:%yzm:03 d:02 y:05�one�twor��03�'%z' '%:z' '%Z'�'' '' ''u%y�%m�%f�r���xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx)z%e�%z%#)rir'�strftimer�r�r�UnicodeEncodeError)r(r��fs&  r)�
test_strftime�TestDate.test_strftime;sK���M�M�$��1�%��������$4�5�7G�H�������B���,�������H�-�x�8����)�Q�Z�Z�0����)�Q�Z�Z���>����)�Q�Z�Z��4�	
������D�)�4�0�	
������$5�6�
�C�#�A�
��
�
�1�
�#�	�
�J�J�|�$�
	
�
�
�4��	
�
�
�$�
����
��
��"�	��	�s0�$E0�:F�0	E?�:E?�>E?�	F�F�Fc��UOQ]]2o[OQ2UOUOQ2[OQUO
222UOUOQ2[OQUO
222P![cSO	Q2K�h9h)r�r�z'time module does not support trailing %zm:%m d:%d y:%y %zm:03 d:02 y:05 %)ri�_timer�rrJr'�	timetupler�s& r)�test_strftime_trailing_percent�'TestDate.test_strftime_trailing_percentes���

�M�M�$��1�%��	E��N�N�3��	
������C��%�.�.��a�k�k�m�*L�M����
�J�J�)�*��N�N�-�q�{�{�}�=�	
���	E��M�M�C�D�	E�s�B6�6	C�C�Cc�B�UOQ]	]
2oUOUOP2[U22UO	[
Q29^tt^2UO]{2PPP2QQUO2oUQ]	]
2oUOUOP2Q2QQUO2oUQ]	]
2oUOUOP2[U22QFD�oUOUOU2UO
U22UOUOU2UO
U22UOUOU2Q2J�	P!)%fhCK'9h)���must be str, not intc�(`�\sQsQsnQsQsUsP!)�TestDate.test_format.<locals>.Ai}c��Q!��Ar]r1s&r)�__str__�'TestDate.test_format.<locals>.A.__str__~���r,r]�rIr^r_r`r�rarbrcs@r)r�r�}�����
�
r,r�c�(`�\sQsQsnQsQsUsP!)�TestDate.test_format.<locals>.Bi�c��Q!��Br]�r(�format_specs&&r)r��(TestDate.test_format.<locals>.B.strftime�r�r,r]�rIr^r_r`r�rarbrcs@r)r�r��r�r,r��r�zm:%m d:%d y:%y H:%H M:%M S:%Sz	%z %:z %Z�rir'�
__format__r��assertRaisesRegexr�r��r(r{r�r�r�r��fmts&      r)�test_format�TestDate.test_formatusC��
�]�]�4��B�
'��������r�*�C��G�4�
�
#�
#�I�/E�
F�
F��M�M�#��G�	��
�
�	�
�d�A�r�N��������b�)�3�/�	��
�
�	�
�d�A�r�N��������b�)�3�r�7�3��C�
���R�]�]�3�/����S�1A�B����Q�\�\�#�.����C�0@�A����Q�\�\�#�.��4�
�#G�
F�
F�s�F
�
F	�F	c���[UO[2%c[oL[oUO	UOO
U2UO	UOOU2UO	UOO[2UOUOOUOO
6�2P!r.)
�
issubclassrirrr�r�r�r(rr?)r(�expected_classs& r)r)�TestDate.test_resolution_info�s����d�m�m�X�.�.�%�N�!�N����d�m�m�/�/��@����d�m�m�/�/��@����d�m�m�6�6�	�B�����
�
�)�)�D�M�M�,=�,=�=�>r,c�0�UOOUOO*
oUO]*Q*UO*Q*UO
*o[
]]U2oUOV2UOUOOU*UOO2UOUOOU*
UOO2P!)rS��@B)rir�r�r�r
rrr')r(�bigr!�	justasbigs&   r)�test_extreme_timedelta�TestDate.test_extreme_timedelta�s����m�m���$�-�-�"3�"3�3��
�X�X�b�[��
����
+�W�4�s�7G�7G�G���a��A�&�	�����(�������*�*�S�0�$�-�-�2C�2C�D�������*�*�S�0�$�-�-�2C�2C�Dr,c��[]2FCD1oUOQ]]U*2oUO2oUOUQ]]U*]]]U]U*P1	2UOQ]]U*2oUO2oUOUQ]]U*]]]]U*]*] U*P1	2UOQ]]U*2oUO2oUOUQ]]U*]]]]U*]*]=U*P1	2UOUOQ2UOUO
]2UOUO]U*2UOUO]2UOUO]2UOUO]2UOUO]U*]*2UOUO]=U*2UOUOP2CJ4	P!)r�rA)
r�rir�r'�tm_year�tm_mon�tm_mday�tm_hour�tm_min�tm_sec�tm_wday�tm_yday�tm_isdst)r(r�r�r�s&   r)�test_timetuple�TestDate.test_timetuple�s����q���A��
�
�d�A�q��s�+�A����
�A����Q��q�!�A�#�q�!�Q��1�Q�3�� C�D��
�
�d�A�q��s�+�A����
�A����Q��q�!�A�#�q�!�Q��1��a���A��r� J�K��
�
�d�A�q��s�+�A����
�A����Q��q�!�A�#�q�!�Q��1��a���A��r� J�K����Q�Y�Y��-����Q�X�X�q�)����Q�Y�Y��!��,����Q�Y�Y��*����Q�X�X�q�)����Q�X�X�q�)����Q�Y�Y��1��a��0����Q�Y�Y��1��-����Q�Z�Z��,�-r,c��QoUOUo[FD9vq4oUOV%2oUOU2oUO	V'2J;	UO	UO2UO
]22P!��)r�r�r�rir�r�r�r'�
__reduce__�
__reduce_ex__r�s&       r)r��TestDate.test_pickling�st�����}�}�d�#��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+�*8�	
������*�D�,>�,>�q�,A�Br,c	��,QNoQoUOUoSFD,o[FDoUUQQ5oUOVc2J 	J.	P!)�'cdatetime
date
(S'\x07\xdf\x0b\x1b'
tR.�latin1��encoding)rscdatetime
date
(U�tR.s�cdatetime
date
U��R.)��r��ri�pickle_loadsr'�r(rnr�rp�datar�r�s&      r)�test_compat_unpickle�TestDate.test_compat_unpickle�sN��
��
���=�=�$�'���D�%�����x�8��� � ��3�&�r,c�``�UO]]]2nUO]]]2oUORU2UORU6*2UORU6�2UORU6g2UORU62UORU6�2QFCDoUOUoUORU62UOUR6�2UORU6*2UOUR6�2UORU6g2UOUR6g2UORU6H2UOUR6H2UORU6�2UOUR62UORU6�2UOUR6*2CJ	[FCDnUORR6HP
2UORR6gP	2UORR6HP
2UORR6gP	2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2CJ	P!)	r�c�:�RR6!r.r]r�s��r)rr�'TestDate.test_compare.<locals>.<lambda>�r�r,c�:�RR6�!r.r]r�s��r)rrr�r�r,c�:�RR6�!r.r]r�s��r)rrr�r�r,c�:�RR6*!r.r]r�s��r)rrr�rr,c�:�RR6!r.r]r�s��r)rrr�rr,c�:�RR6�!r.r]r�s��r)rrr�rr,c�:�RR6�!r.r]r�s��r)rrr�rr,r)rir'r?r@rr�r�r	s&  @@r)r
�TestDate.test_compare�sF���
�]�]�1�a��
#��
�]�]�1�a��
#������R� �����b��!�����b��!�����r��"�����b��!�����b��!�3�D�����%�B��O�O�B��G�$��O�O�B��G�$��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%����R�2�X�&����R�2�X�&����R�"�W�%����R�"�W�%����R�2�X�&����R�2�X�&�4�!�j�F����R�6�\�5�1����R�6�\�4�0����V�r�\�5�1����V�r�\�4�0����i�)<�=����i�)<�=����i�)=�>����i�)=�>����i�)<�=����i�)<�=����i�)=�>�!r,c�x``�UOQ]]2nUOR]6HP
2UO]R6HP
2UOR]6gP	2UO]R6gP	2UO[U1Qk2UO[U1Qk2QQ2oU2nUORR6HP
2UORR6HP
2UORR6gP	2UORR6gP	2UO[UU1Qk2UO[UU1Qk2P!)r�c�:�R]6!r�r]��ours�r)rr�-TestDate.test_mixed_compare.<locals>.<lambda>s	���S�1�Wr,c�:�]R6!r�r]rs�r)rrrs	���Q��Wr,c��\sQsQsQsP!)�.TestDate.test_mixed_compare.<locals>.SomeClassir]rr]r,r)�	SomeClassrrar,rc�:�RR6!r.r]�r�theirs��r)rrrs	���S�5�[r,c�:�RR6!r.r]r s��r)rrrs	���U�S�[r,)rir'r�r�)r(rrr!s& @@r)�test_mixed_compare�TestDate.test_mixed_compare�s����m�m�D�!�Q�'��	
������5�)�����c��5�)�������4�(�����c��4�(�	
���)�_�5����)�_�5�	�	����������u�-�����#��u�-�������t�,�����#��t�,����)�%8�9����)�%8�9r,c��UOUOO2UOUOO2P!r.)r?rir�r�r1s&r)rH�TestDate.test_bools.������
�
�)�)�*�����
�
�)�)�*r,c
�l�Q	oSFD�vq4UOV1Q59^tt^2UOU]]2oUQ6Xc	V4*
oUQ6Xc
U]d*Q
oLUQ
oUQ6Xc
UQ*
oUOUOQU02U2PPP2J�	P!)%fhJ�9h)
r$)r�	specifier�G�C�02d�04d�Fz-01-01r�))r$r	)�1r�)�Fr	)�cr	)r�r�)��r	)r�r	)rr	)r]rir'r�)r(r(�datasetr�g_offsetr�rps&&     r)�check_strftime_y2k�TestDate.check_strftime_y2ks���	
��&�N�D����4��=�=��M�M�$��1�-����#��$�D���#�"&�#�+�c�!2�H�"&�s��H� �C�'� �f�-��� � ����a�	�{�O�!<�h�G�>�=�&�=�=�=�s#�B"	�B"	�B"	�'-B"	�"B3
�+B3
c�L�UOQ2UOQ2P!)�Yr)�r4r1s&r)�test_strftime_y2k�TestDate.test_strftime_y2k7s������$�����$r,c�L�UOQ2UOQ2P!)r-r*r8r1s&r)�test_strftime_y2k_c99�TestDate.test_strftime_y2k_c99;s ��	
����$�����$r,c
�^�UOo,QNoUUoUOUO2U2UO[OU2U2Qo[	U2FDivovqgUQ*oVxU$UUo	UOUOQ-Vg-@U	2UO[OU1-Vg-@U	2Jk	UQ]]2oUO[UOQQ5UO[[OUQQ5P!)r$�NNNr�r4�rr�)�rr��r	r��r3rr]�rir'r8rL�	enumerater�r�
r(�clsr��base�changesr�rC�newval�newargsrps
&         r)�test_replace�TestDate.test_replaceAs���m�m�����D�z����������.�������d�+�T�2���"+�7�!3��A�~���1�g�G��A�J��G�}�H����T�\�\�;�T�N�;�X�F����T�\�\�$�A�4�.�A�8�L�"4��4��B������*�d�l�l���>����*�d�l�l�D�t��Dr,c	�`�U1QkQRO2oUQ]]2oQUOQQ51Q[OUQQ51,oSFD�vqEROU29^tt^2RO	[U2U2RO
UOQ2RO
UO]2RO
UO]2PPP2J�	P!)%fhJ�9h)c�0:`�\sQsQsnU1QksQsUsP!)�4TestDate.test_subclass_replace.<locals>.DateSubclassiXc�Z:�ROOU,UN3-U@o]UmU!�r��rir�r�rGr��kwargs�resultr(s&*, �r)r��<TestDate.test_subclass_replace.<locals>.DateSubclass.__new__Y�-������.�.�s�D�T�D�V�D�� ����
r,r]�rIr^r_r`r�rarb�rdr(s@�r)r`rPX�����
�
r,r`���self.replace��r@�copy.replace)
rir8rLr]r/r�r'rr	r)r(r`r{r�rCr�sf     r)�test_subclass_replace�TestDate.test_subclass_replaceWs����	�4�=�=�	��$��1�
%���R�Z�Z�T�Z�2�3�
�T�\�\�"�4�8�9�
�
�
$�I�D����d�#�#��
�
�d�3�i��6�� � ����4�0�� � ����A�.�� � ����A�.�	$�#�$�#�#�#�s�4A0C2	�2D
�;D
c�`�U1QkQRO2oQoROUoUU-Q]-@oROUOU2ROUO]*2ROUO]2ROUO2UO22ROUO
Q2UOUO*]*
2P!)c�::`�\sQsQsn]*sU1QksQsQsUsP!)�&TestDate.test_subclass_date.<locals>.Cinc�:�UO2oUOQ2oROOU,UN3-U@oVEmU!�r�rL�poprir�r�rGr��kws�temprrVr(s&*,   �r)r��.TestDate.test_subclass_date.<locals>.C.__new__q�D����x�x�z������)�����.�.�s�B�T�B�T�B��$���
r,c�J�VO*UO*!r.)rr	�r(�starts&&r)�newmeth�.TestDate.test_subclass_date.<locals>.C.newmethxs���y�y�(�4�:�:�5�5r,r]�	rIr^r_r`�	theAnswerr�rqrarbrZs@�r)r*rdns�����I�
�
6�
6r,r*r�r�r�rU)	rir'rHrtrrrqrr	�r(r*r�r�r�sf    r)rr�TestDate.test_subclass_datels����	6��
�
�	6����m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Y�Y�*>��*B�Cr,c�v`�U1QkQRO2oQoQoQoUUoROVQ2ROUO]2[O
U[
]22O2oQU11QU11QU11,oSFD�vq�V1FD�o
RO[U
2UQ59^tt^2[V�2oUU	oROV�2ROV�2ROUO]2PPP2J�	J�	P!)%fhJ�9h)	c�0:`�\sQsQsnU1QksQsUsP!)�CTestDate.test_subclass_alternate_constructors.<locals>.DateSubclassi�c�Z:�ROOU,UN3-U@o]UmU!rRrSrTs&*, �r)r��KTestDate.test_subclass_alternate_constructors.<locals>.DateSubclass.__new__��-������.�.�s�D�T�D�V�D�� ����
r,r]rYrZs@�r)r`r{������
�
r,r`i�(z
2003-04-14rr`�
fromisoformat��
base_obj_type�constr_nameru)rir�r'rr�combiner�	timestampr]r��getattr)
r(r`r��d_ord�d_isoformat�base_drar�r��constr_args�base_obj�constrr{s
f            r)�$test_subclass_alternate_constructors�-TestDate.test_subclass_alternate_constructors�s7���	�4�=�=�	�����"���t�$�����f�3�������q�)��
�
�f�d�1�g�
.�
8�
8�
:���U�H�%�
�r�e�$�
�{�n�-�
�
�)3�$�K�)�2���\�\��X��.9�"�;�;�$�X�;�F���-�B��)�)�"�;��$�$�R�0��$�$�R�X�X�q�1�;�;�3�)3�;�;�;�s�AD'
�'D8�0D8c���Qo[Uo[FDXvq4oUOV%2oUOU2oUO	V'2UO[
U[22JZ	P!r�)rr�r�r�r'r?rkr�s&       r)�test_pickling_subclass_date�$TestDate.test_pickling_subclass_date�s_�����T�"��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+��O�O�J�w��=�>�	*8r,c
��Qo[UO[2%f
UQ*oQFD@oUO[UOUQ*U*UQ**2JB	[UO[2%cTUO[Q29^tt^2UO[
],[U2*2Q2PPP2[]]
2FD:oUOUQ*[
U,2*UQ**2J<	P!)%fhK]9h)s
1995-03-25:NrN:Nr�N�r�NN�^bad tzinfo state arg$r�)�9��
��)	r�rirr�r�r��bytesr�r�)r(rH�
month_byte�ord_bytes&   r)�test_backdoor_resistance�!TestDate.test_backdoor_resistance�s������$�-�-��2�2���8�D�5�J����i����)-�b��J�)>��b��)I�
K�6��d�m�m�X�.�.��'�'�	�3K�L�L��
�
�e�Q�C�#�d�)�O�4�e�<�M��a���H�
�M�M�$�r�(�U�H�:�%6�6��b��A�B�	%�M�L�s�2-D4�4E	�=E	c�4�[OQ2o,QNoSFD]oUOU29^tt^2UO[U29^tt^2UO
UPPP2PPP2J_	UO
[29^tt^2oUOQ]] 2PPP2UOQ[WO22P!)%fhK|9h)%fhJ�9h)%fhK^9h)z/(year|month|day) must be in \d+\.\.\d+, not \d+r�z6day 32 must be in range 1..31 for month 1 in year 2009))r��
r$)r�r	r$)r�r#r)r	r#r�
�re�compiler]r�rrir�r7r��	exception�r(�patternr��caser�s&    r)�test_valuerror_messages� TestDate.test_valuerror_messages�s����*�*�>�
��
�
��D����d�#�#��+�+�J��@�@��M�M�4�(�A�$�#���
�
�z�
*�
*�c��M�M�$��2�&�+��
�
�N�QT�UX�Ub�Ub�Qc�d�
A�@��$�#�#��
+�
*�sA�C3	�C 
�,C3	�D� C0�)C0�+C3	�3D
�<D
�D	�D	c	�H�,QNoSFD�oUOUoUO2oUOUQ59^tt^2UOOUO22oUO	V52PPP2J�	P!)%fhJ�9h)r$)�dt_str)�r$r$r$)r�r�rv�r6r$r$)r�r�r��r�rr#)r�rr��i�r>r�rir�r]r�r')r(�
base_dates�dt_tupler{r��dt_rts&     r)�test_fromisoformat�TestDate.test_fromisoformat�s{��
�
�#�H�����)�B��\�\�^�F����V��,�,��
�
�3�3�B�L�L�N�C��� � ��+�-�,�#�-�,�,�s�;B	�B!
�B!
c��QUO]]]21QUOQ]]21QUOQ]]21QUOQ]]21QUO]]]21QUOQ]]21Q	UOQ]]21Q
UOQ]]21QUOQ]]21Q
UOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ]]21QUOQ ]]21Q!UOQ ]]21Q"UOQ#]]21,oSFDTvq#UOUQ$59^tt^2UOOU2oUOVC2PPP2JV	P!)%fhJk9h)%�00010101�20000101r��20250102���99991231r%z
0001-01-01z
2000-01-01�
2025-01-02z
9999-12-31�2025W01��z2025-W01�2025W014z
2025-W01-4�2026W01z2026-W01�2026W013z
2026-W01-3�2022W52��z2022-W52�2022W527r�z
2022-W52-7�2015W534rz
2015-W53-4z
2015-W53-5���2020W531r�z
2020-W53-1z
2020-W53-6����	input_str)rir]r�r'�r(�examplesr�rp�actuals&    r)� test_fromisoformat_date_examples�)TestDate.test_fromisoformat_date_examples�s��
����q�!�Q�/�0�
����t�Q��2�3�
����t�Q��2�3�
����t�R��4�5�
�4�=�=��A�q�1�2�
�4�=�=��q�!�4�5�
�4�=�=��q�!�4�5�
�4�=�=��r�2�6�7�
��
�
�d�B��3�4�
����t�R��4�5�
����t�Q��2�3�
�4�=�=��q�!�4�5�
��
�
�d�B��3�4�
����t�R��4�5�
����t�R��4�5�
�4�=�=��r�2�6�7�
��
�
�d�B��3�4�
����t�R��4�5�
����t�Q��2�3�
�4�=�=��q�!�4�5�
����t�R��4�5�
�4�=�=��r�2�6�7�
�4�=�=��q�!�4�5�
����t�R��4�5�
�4�=�=��r�2�6�7�
�4�=�=��q�!�4�5�5
��:$,��I����	��2�2����4�4�Y�?��� � ��2�3�2�$,�2�2�2�s�.-I)	�)I:
�2I:
c��QQUO2oUQ]]2oUOUO22oUOV12P!)c��\sQsQsQsP!)�:TestDate.test_fromisoformat_subclass.<locals>.DateSubclassi"r]rr]r,r)r`r�"rar,r`r�)rir�r�r�)r(r`r{r�s&   r)�test_fromisoformat_subclass�$TestDate.test_fromisoformat_subclass!sF��	�4�=�=�	��$��B�
'���*�*�2�<�<�>�:�����e�2r,c	���,QNoSFDDoUO[29^tt^2UOOU2PPP2JF	P!)%fhJ[9h)r+)r+r1z	009-03-04�	123456789z
200a-12-04z
2009-1a-04z
2009-12-0az
2009-01-32z
2009-02-29z
2019-W53-1z
2020-W54-1z
0000-W25-1z10000-W25-1z
2020-W25-0z
2020-W25-8u٢025-03-092009�02�28)r�rrir��r(�bad_strs�bad_strs&  r)�test_fromisoformat_fails�!TestDate.test_fromisoformat_fails+sJ��
��( �G��"�"�:�.�.��
�
�+�+�G�4�/�.� �.�.�.�s�A	�A$
�A$
c	��QP[OQ2,oSFDDoUO[29^tt^2UOOU2PPP2JF	P!)%fhJ[9h)s
2009-03-01z
2009-03-01��io�StringIOr�r�rir��r(�	bad_types�bad_types&  r)�"test_fromisoformat_fails_typeerror�+TestDate.test_fromisoformat_fails_typeerrorEsV��"�D�"�+�+�l�*C�D�	�!�H��"�"�9�-�-��
�
�+�+�H�5�.�-�"�-�-�-���A(	�(A9
�1A9
c�b�QQQQQQQQ	Q
QQQ
Q[]]1[]]1,oSFDsoUOUQ59^tt^2UOUoUO	2oUOO
UoUO
V52PPP2Ju	P!)%fhJ�9h)r�)�	datecomps)r�rr�)r�r$r�)i�r#r)r�r$r�)r�r#rr�)r6r#r)r�r$r$)r�r#rr�)r�r#rr�)r%r#r)rrr]rir��fromisocalendarr')r(�datesr��dobj�isocal�d_roundtrips&     r)�test_fromisocalendar�TestDate.test_fromisocalendarLs���
�������������
�a��O�
�b�"��
��$�I����	��2�2��}�}�i�0���)�)�+��"�m�m�;�;�V�D��� � ��3�
3�2��2�2�2�s�AB	�B.
�&B.
c�z�,QNoSFDgoUOUQ59^tt^2UO[29^tt^2UOOUPPP2PPP2Ji	,QNoSFDmoUOUQ59^tt^2UO[[
129^tt^2UOOUPPP2PPP2Jo	P!)%fhK�9h)%fhCJ
9h)%fhKF9h)%fhJ�9h)r��r�)
)r�r	r$)r�r�r$)r��6r$)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�rrir�r/)r(�isocalsr�s&  r)�!test_fromisocalendar_value_errors�*TestDate.test_fromisocalendar_value_errorsjs���
���F����V��,�,��&�&�z�2�2��M�M�1�1�6�:�3�-�,��

��
�F����V��,�,��&�&�
�M�'B�C�C��M�M�1�1�6�:�D�-�,��3�2��-�,�,��D�C��-�,�,�s_�D	�C.
� D	�$D)	�<D
�D)	�.C>�7C>�9D	�D
�
D
�D&�D&�!D)	�)D:
�2D:
c��[[Q,o,oQo[]2FDBoSFD8o[U2oUVd*2Vd$UO	[U22J:	JD	SFDgoUO
UQ59^tt^2UO[29^tt^2UOOUPPP2PPP2Ji	P!)%fhK9h)%fhJ�9h)c��P!r.r])�xs&r)rr�;TestDate.test_fromisocalendar_type_errors.<locals>.<lambda>�s��dr,r�)r�r$r$)r�r�r��listr�r|r]r�r�rir�)r(�
err_txformersr�rHr��txformer�err_valr�s&       r)� test_fromisocalendar_type_errors�)TestDate.test_fromisocalendar_type_errors�s������
�
������q��A�)���t�*��%�g�j�1��
����u�W�~�.�*���F����V��,�,��&�&�y�1�1��M�M�1�1�6�:�2�-�,��1�1��-�,�,�s0�C)	�$C
�C)	�C&�C&�!C)	�)C:
�2C:
c��QoUOUOOUQ2UOOUQ22P!)z
2025-10-26�%Fr��r'rir��r(�	test_dates& r)�test_strptime_F_format�TestDate.test_strptime_F_format�s=�� �	�����M�M�"�"�9�d�3��M�M�"�"�9�j�9�	
r,c��QoUOUOOUQ2UOOUQ22P!)z11/28/25z%Dz%m/%d/%yrrs& r)�test_strptime_D_format�TestDate.test_strptime_D_format��=���	�����M�M�"�"�9�d�3��M�M�"�"�9�j�9�	
r,c�b�Q	oQ
oSFD�o,UNPOU2MFDqoUOV4Q59^tt^2UOUOO	QUQUQ0QUQUQ02UOQ]]22PPP2Js	J�	P!)%fhJ�9h)�%n)�format_directive�
whitespace�2026�02r��%Yr�r���)r
z%tz%n%tz%t%n)r+� �	�
��
�)�joinr]r'rir�)r(�format_directives�whitespaces�fd�wss&    r)�test_strptime_n_and_t_format�%TestDate.test_strptime_n_and_t_format�s���8��=��#�B�:��:�R�W�W�[�%9�:���\�\�2�\�E�E��$�$��
�
�.�.�"�2�$�b���B�/� ���B�r�d�"�-���
�
�d�A�q�1��F�E�;�$�E�E�E�s�AB
�B.�&B.r]);rIr^r_r`rrir�r%rr&r0r7r�r�r4rbrjrnrtryr�r�r�r�r�r�r�r�r)r�r�r�r
r
r#rHr4r9r<rLr`rrr�r�r�r�r�r�r�r�r�r�r�r�rr	rrarbrcs@r)rr�s&�����H�$�&�A�-�^A�2B�,$�204�dA�	%�&�.�
A�:L�G�<	,�$,�L6�@�( �T
� 5�:	?�E�-�2C�4�%?�N:�4+�
H�6%�%�E�,/�*D�4*2�X?�C�4e�(,�(!3�F3�5�46�4�<;�8;�.
�
��r,rc��\sQsQs]sQsP!)�SubclassDatetimei�r]r�r]r,r)r"r"�r�r,r"c�
`�\sQsQsn\sQsQsQsQs	Qs
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQsQsQsQs\O8Q2Q2sQs\O8Q2Q2s\O8Q2Q2s \O8Q2Q2s!Qs"\#OH\%OLQ6HQ 2Q!2s'\#OH\%OLQ6HQ 2Q"2s(Q#s)Q$s*Q%s+Q&s,Q's-Q(s.Q)s/Q*s0Q+s1Q,s2Q-s3Q.s4Q/s5Q0s6Q1s7Q2s8\O8Q32Q42s9Q5s:Q6s;Q7s<Q8s=Q9s>Q:s?Q;s@Q<sAQ=sBQ>sCQ?sDQ@sEQAsFQBsGQCsHQDsIQEsJQFsKQGsLQHsMUsNP!)I�TestDateTimei�c��UOQ]]]]2oUOUOQ2UOUO]2UOUO]2UOUO
]2UOUO]2UOUO]2UOUO]2P!r�	rir'rr	r3rr�r�rrzs& r)r��"TestDateTime.test_basic_attributes�s���
�]�]�4��A�r�1�
-��������$�'�������1�%��������#�������"�%�������A�&�������A�&��������+r,c	��UOQ]]]];];Q2oUOUOQ2UOUO]2UOUO]2UOUO
]2UOUO];2UOUO];2UOUOQ2P!)r�@r&rzs& r)�test_basic_attributes_nonzero�*TestDateTime.test_basic_attributes_nonzero�s����]�]�4��A�r�2�r�4�
8��������$�'�������1�%��������#�������"�%�������B�'�������B�'��������.r,c���UO]]]]]]]2UOO21FD�o[U2oUOUQ2UQ*o[	U2oUOV2UOUOUOUOUOUOUOUO2oUOV2J�	P!r)
rir�r�r"r�r'rr	r3rr�r�rrs&   r)r%�TestDateTime.test_roundtrip�s����=�=��A�q�!�Q��1�5��=�=�$�$�&�(�B��R��A��!�!�!�[�1��"��A��q�'�C����R�%��-�-�������2�6�6� "������B�I�I� "���0�C�
���R�%�(r,c���UO]]]]]]]{2oUOUO2Q2UOUOQ2Q2UOUOQ2Q2UOUOQ2Q2UOUOQ2Q2UOUOQ	Q
5Q2UOUOQQ
5Q
2UOUOQQ
5Q2UOUOQQ
5Q2UOUOQQ
5Q2UOUOQQ
5Q2UOUOQQQ5Q2UO[UOQQ
5UO[UOQQ
5UO[U2Q2UO]]]]]]Q[OQ5oUOUOQQ
5Q2UO]]]]]]Q2oUOUOQQ
5Q2UO]]]]]]2oUOUOQQ
5Q2UOUOQQ
5Q2UOUOQQ
5Q2UO]]]2oUOUO2Q2UOUOQ2Q2UOUOQ2Q2UO[U2Q2[[]Q5Q2oUO]]]UQ5oUOUO2Q 2P!)!r$z0001-02-03T04:05:01.000123rOrz0001-02-03 04:05:01.000123�z0001-02-0304:05:01.000123r1u0001-02-03�04:05:01.000123r���timespecz
0001-02-03T04rjz0001-02-03T04:05r
z0001-02-03T04:05:01r�z0001-02-03T04:05:01.000r�auto)�sepr1z0001-02-03 04:05�foo�L@rz0001-02-03T04:05:01.999+00:00z0001-02-03T04:05:01.999z0001-02-03T04:05:01.000000z0002-03-02T00:00:00z0002-03-02 00:00:00r�XXXz0002-03-02T00:00:00+00:00:16)
rir'r�r�rr�rr0rfrrDs&  r)r��TestDateTime.test_isoformat�s9���M�M�!�Q��1�a��C�0���������+G�H�������S�)�+G�H�������S�)�+G�H�������V�,�.M�N�������X�.�:�	<�������g��6��H�������i��8�:L�M�������i��8�:O�P�������n��=�?X�Y�������n��=�?[�\�������f��5�7S�T��������y��A�CU�V����*�a�k�k�E��B����*�a�k�k�H��E�����Q��!=�>��M�M�!�Q��1�a��F�8�<�<�M�H��������n��=�?^�_��M�M�!�Q��1�a��F�3��������n��=�?X�Y��M�M�!�Q��1�a��+��������f��5�7L�M�������n��=�?X�Y�������n��=�?[�\��M�M�!�Q��"���������+@�A�������S�)�+@�A�������S�)�+@�A�����Q��!6�7�
��2�.��
6���M�M�!�Q��"�M�-���������(F�Gr,c��Q[]Q51Q[]Q51Q[]]Q51Q[]] ]Q51Q[]]]	QQ	51,oQQ
[O1Q
[[]221,oSSTTTTt,tFD*vq4QFDvqVVS*[Vd*21MJ 	J,	toooo*
oUOQ]]]]%]	2oQoSFDbvq�UO	U
Q
5oV�*oUOU
Q59^tt^2UO
UO2U2PPP2Jd	P!ttooooh)%fhJ�9h)�05:00r��02:00�06:27r�12:32:30rU�02:04:09.123456r�rW�+00:00r�z2016-04-01T12:37:09r��tzi�r+N�)�-r�)�+r$�rrr0rir8r]r'r�)
r(�	tzoffsets�tzinfosrpr��prefix�sign�dt_base�exp_base�exp_tzr@r{�exps
&            r)�test_isoformat_timezone�$TestDateTime.test_isoformat_timezone	sJ��
�i�a�(�)�
�i�a�(�)�
�i�a��4�5�
���R��D�E�
�	��1�a�V\� ]�^�
�	�
�
�x�|�|�$�
�x�	�!��-�.�
��	� )�
� )��� 5����
���� 3�4� 5�
5� )�
�	
���-�-��a��B��A�6��(��"�K�F������,�B��#�C����#��&�&�� � ������5�'�&�#��
�'�&�&�s�;2D<�
!E	�E
�
E
c	�Z�UOQ]	]
]]]]{2oUOUOP2[U22UO	[
Q29^tt^2UO]{2PPP2QQUO2oUQ]	]
]]]]{2oUOUOP2Q2QQUO2oUQ]	]
]]]]{2oUOUOP2[U22QFD�oUOUOU2UO
U22UOUOU2UO
U22UOUOU2Q2J�	P!)%fhCK/9h)r�r�c�(`�\sQsQsnQsQsUsP!)�#TestDateTime.test_format.<locals>.Ai<	c��Q!r�r]r1s&r)r��+TestDateTime.test_format.<locals>.A.__str__=	r�r,r]r�rcs@r)r�rR<	r�r,r�c�(`�\sQsQsnQsQsUsP!)�#TestDateTime.test_format.<locals>.BiC	c��Q!r�r]r�s&&r)r��,TestDateTime.test_format.<locals>.B.strftimeD	r�r,r]r�rcs@r)r�rVC	r�r,r�r�r�r�s&      r)r��TestDateTime.test_format4	s]��
�]�]�4��B��1�a��
5��������r�*�C��G�4�
�
#�
#�I�/E�
F�
F��M�M�#��G�	��
�
�	�
�d�A�r�1�a��C�(��������b�)�3�/�	��
�
�	�
�d�A�r�1�a��C�(��������b�)�3�r�7�3��C�
���R�]�]�3�/����S�1A�B����Q�\�\�#�.����C�0@�A����Q�\�\�#�.��4�
�#G�
F�
F�s�!F�F*	�"F*	c	�H�]PHoUOQ]]]]]]{2oUOUO2Q2UOQ]]]]]]{2oUOUO2UOUOUO2222P!)r	rzSat Mar  2 18:03:05 2002)rrir'r�r_r�)r(rr�s&  r)�test_more_ctime�TestDateTime.test_more_ctimeQ	s�����M�M�$��1�b�!�Q��4���������$>�?�
�M�M�$��2�r�1�a��5���������D�J�J�t�{�{�1�;�;�=�/I�$J�Kr,c	��UOQ]]]	]]2oUOQ]]]
]]2oUOQ]]]	]]2oUOV2UOV#6�2UO[]]]];];Q2o[	]Q5oV*oUOV!*
U2UOV62P!)rr�r
)rir'r?rr)r(r�r��dt3r�s&    r)�test_tz_independent_comparing�*TestDateTime.test_tz_independent_comparinga	s����m�m�D�!�Q��1�a�0���m�m�D�!�Q��A�q�1���m�m�D�!�Q��1�a�0������"�����	�"��m�m�G�R��R��R��@��
�A�
&���h�������B�'�����	�"r,c
��QQ[2oUOQ]]]]]]U]Q22oUO[UOQ2P!)c�(`�\sQsQsnQsQsUsP!)�DTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfoiu	c�2�QQ[2oUQ2!)c�(`�\sQsQsnQsQsUsP!)�ZTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStriw	c��P!r.r])r(r�s&*r)r8�bTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tzname.<locals>.MyStr.replacex	s��#r,r])rIr^r_r`r8rarbrcs@r)�MyStrrfw	s����$�$r,rirC)r�)r(r{ris&& r)r��KTestDateTime.test_strftime_with_bad_tzname_replace.<locals>.MyTzInfo.tznamev	s��$�C�$��V�}�$r,r])rIr^r_r`r�rarbrcs@r)�MyTzInforcu	s����
%�
%r,rkr�rC�%Z)rfrir�r�r�)r(rkr�s&  r)�%test_strftime_with_bad_tzname_replace�2TestDateTime.test_strftime_with_bad_tzname_replaces	sI��	%�{�	%�
�M�M�$��1�a��A�q�(�1�f�2E�F�����)�Q�Z�Z��6r,c
��UO[]]2UO[]]2UO[UO[]*
]]2UO[UO[]*]]2UOQ]]2UOQ]]2UO[UOQ]]2UO[UOQ]
]2UOQ]]2UOQ]]2UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]]2UO[UOQ]] 2UOQ]]]2UOQ]]]2UO[UOQ]]P2UO[UOQ]]]2UOQ]]]]2UOQ]]]];2UO[UOQ]]]P2UO[UOQ]]]]<2UOQ]]]];]2UOQ]]]];];2UO[UOQ]]]];P2UO[UOQ]]]];]<2UOQ]]]];];]2UOQ]]]];];Q2UO[UOQ]]]];];P2	UO[UOQ]]]];];Q2	UO[UOQ]]PQ	5UO[UOQ]]]Q	5UO[
UOQ]]]];];]P]2P!)
r$r�r�r3r4r5r6rVr���fold)rirrr�rr�r1s&r)r7�+TestDateTime.test_bad_constructor_arguments~	s����
�
�g�q�!�$��
�
�g�q�!�$����*�d�m�m�W�Q�Y��1�E����*�d�m�m�W�Q�Y��1�E��
�
�d�A�q�!��
�
�d�B��"����*�d�m�m�T�1�a�@����*�d�m�m�T�2�q�A��
�
�d�A�r�"��
�
�d�A�r�"��
�
�d�A�r�"����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�b�A����*�d�m�m�T�1�a�@����*�d�m�m�T�1�b�A��
�
�d�A�r�1�%��
�
�d�A�r�2�&����*�d�m�m�T�1�b�"�E����*�d�m�m�T�1�b�"�E��
�
�d�A�r�2�q�)��
�
�d�A�r�2�r�*����*�d�m�m�T�1�b�"�b�I����*�d�m�m�T�1�b�"�b�I��
�
�d�A�r�2�r�1�-��
�
�d�A�r�2�r�2�.����*�d�m�m�T�1�b�"�b�"�M����*�d�m�m�T�1�b�"�b�"�M��
�
�d�A�r�2�r�2�q�1��
�
�d�A�r�2�r�2�v�6����*�d�m�m���2�r�2�r�2�	7����*�d�m�m���2�r�2�r�!�	#�	
���*�d�m�m���2�B�	�	0����*�d�m�m���2�A�	�	/�	
���)�T�]�]���2�r�2�r�1�d�A�	?r,c���UOQ]]]]]2oUOQ]]]]]2oUOV2UO[U2[U22U]-o]V2$UO[U2]2UOV1*]2UOV2*]2UOQ]]]]]2oUOQ]]]]]2oUOV2UO[U2[U22U]-o]V2$UO[U2]2UOV1*]2UOV2*]2P!r:r;r<s&   r)r��TestDateTime.test_hash_equality�	s>���M�M�$��B��B��3���M�M�$��B��B��3�����������a��$�q�'�*��!�f���������S��1�%�������#�������#��M�M�$��Q��Q��3���M�M�$��Q��Q��3�����������a��$�q�'�*��!�f���������S��1�%�������#�������#r,c�H```�UOQ]]2nUOQ]]2oRU*
oUOUOQ[[	QQ]22*2UOUO
]2UOUO]2UOQ]]]]2n[]]Q2o[]Q2o[]2n[]2oUORU*UOQ]]]]22UOUR*UOQ]]]]22UOR]
U**UOQ]]]]22UORU*
UOQ]]]]22UOU'R*UOQ]]]]22UORU*
RU'*2UOR]U**
UOQ]]]]22UORR*UOQ]]]]22UORR*
UOQ]]]]22UORU*UOQ]]	]]22UORU*
UOQ]]]]22UOR]4U**UOQ]]]]22UOR]4U**
UOQ]]]]22UORU*R*
U2UORR*R*
R2UORU*R*
U2UORU*R*
U2UORU*
R*
U'2UORR*
R*
R'2UORU*
R*
U'2UORU*
R*
U'2UORRU**
U'2UORRR**
R'2UORRU**
U'2UORRU**
U'2UORRU*
*
U2UORRR*
*
R2UORRU*
*
U2UORRU*
*
U2UORUR*U*U**UOQ]]
]]]Q22UORUR*U*U**RU*R*U*U*2UORUR*U*U**
UOQ]]]]];Q22UORUR*U*U**
RU*
R*
U*
U*
2QFDonUO[UU1Qk2UO[UU1Qk2UO[UU1Q	k2UO[UU1Q
k2Jq	UO[UU1Qk2UO[UU1Qk2UO[UU1Q
k2UO[UU1Qk2UO[UU1Qk2UO[U1Qk2UO[U1Qk2UO[U1Qk2P!)rrAr�r�r�r4r�c�:�RR*!r.r]r�s��r)rr�0TestDateTime.test_computations.<locals>.<lambda>�	r�r,c�:�RR*
!r.r]r�s��r)rrrw�	r�r,c�:�RR*!r.r]r�s��r)rrrw�	r�r,c�:�RR*
!r.r]r�s��r)rrrw
r�r,c�:�RR*
!r.r]rHs��r)rrrw
rIr,c�:�RR*!r.r]rHs��r)rrrw
rIr,c�:�RR*!r.r]rHs��r)rrrw
rLr,c�:�RR*!r.r]rHs��r)rrrw
rNr,c�:�RR*!r.r]rHs��r)rrrw
rPr,c�:�RR*!r.r]r�s�r)rrrw	
rRr,c�:�RR*!r.r]r�s�r)rrrw

rTr,c�:�RR*!r.r]r�s�r)rrrw
rRr,rVr�rW)	r(r�rX�millisecrrYr�r3r�s	&     @@@r)r��TestDateTime.test_computations�	s�����M�M�$��2�&���M�M�$��2�&����s��������F�S��t�T�1�1E�-F�$F�G�������q�)�����*�*�A�.��M�M�$��1�b�!�,���Q��4�(����D�!����l����|������T��4�=�=��q�!�R��#C�D�������4�=�=��q�!�R��#C�D�����R��W��d�m�m�D�!�Q��1�&E�F�����T��4�=�=��q�!�R��#C�D����$����D�M�M�$��1�b�!�$D�E�����T��1��u�9�-�����R��W��d�m�m�D�!�Q��A�&F�G�����S��$�-�-��a��B��"B�C�����S��$�-�-��a��B��"B�C�����T��4�=�=��q�!�R��#C�D�����T��4�=�=��q�"�b�!�#D�E�����R��W��d�m�m�D�!�Q��A�&F�G�����R��W��d�m�m�D�!�Q��A�&F�G����!�d�(�a���.����!�c�'�Q���,����!�d�(�a���.����!�h�,�!�+�X�6����!�d�(�a��$��/����!�c�'�Q����-����!�d�(�a��$��/����!�h�,�!�+�h�Y�7�����a�$�h��$��/�����a�#�g����-�����a�$�h��$��/�����a�(�l�+�h�Y�7�����a�$�h���.�����a�#�g���,�����a�$�h���.�����a�(�l�+�X�6�����d�S�j�4�/�(�:�;����t�Q��B��1�d�C�	E�����d�S�j�4�/�(�:�;���H��+�t�3�x�?�	A�����d�S�j�4�/�(�:�;����t�Q��B��2�v�F�	H�����d�S�j�4�/�(�:�;���H��+�t�3�x�?�	A��A����i��5����i��5����i��5����i��5�	�	
���)�_�5����)�_�5����)�_�5����)�%5�6����)�%5�6����)�]�3����)�^�4����)�]�3r,c��QoUOUo[FD9vq4oUOV%2oUOU2oUO	V'2J;	UO	UO2UO
]22P!�r��r�r�r��;r$�r�r�s&       r)r��TestDateTime.test_pickling
st��)���}�}�d�#��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+�*8�	
������*�D�,>�,>�q�,A�Br,c	��UOQ]]]]0]%Q2o[[O]*2FD�o[OV2o[O
U2oUO
UOQ2UO
UO]2UO
UO]2J�	P!)r�i��)
rir�r��HIGHEST_PROTOCOLr�r�r'rr	r3)r(r�r�r#r�s&    r)�test_more_pickling�TestDateTime.test_more_pickling
s����M�M�$��1�b�"�b�&�9���6�2�2�Q�6�7�E����Q�&�A����Q��A����Q�V�V�T�*����Q�W�W�a�(����Q�U�U�A�&�8r,c���Qo[Uo[FDXvq4oUOV%2oUOU2oUO	V'2UO[
U[22JZ	P!r�)r"r�r�r�r'r?rkr�s&       r)�test_pickling_subclass_datetime�,TestDateTime.test_pickling_subclass_datetime 
s`��)����&��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+��O�O�J�w�0@�A�B�	*8r,c	��,QNoQoUOUoSFD,o[FDoUUQQ5oUOVc2J 	J.	P!)�@cdatetime
datetime
(S'\x07\xdf\x0b\x1b\x14;\x01\x00\x10\x00'
tR.rr)r�s#cdatetime
datetime
(U
�;tR.s$�cdatetime
datetime
U
�;�R.)rrrr�r�r$r�rrs&      r)r
�!TestDateTime.test_compat_unpickle)
sN��	
��.���=�=�$�'���D�%�����x�8��� � ��3�&�r,c��,QNoUOUoUOUoUOV#2UOV#6*2UOV#6�2UOV#6g2UOV#62UOV#6�2[	[U22FCDoUQ*oV*]*VT$UOUoUOV#62UOV26�2UOV#6*2UOV26�2UOV#6g2UOV26g2UOV#6H2UOV26H2UOV#6�2UOV262UOV#6�2UOV26*2CJ	P!)r�r?)r�rr�r��:�r�)rir'r?r@r�r�)r(r�r�r�r�rKs&     r)�test_more_compare�TestDateTime.test_more_compare;
sm��2��
�]�]�D�
!��
�]�]�D�
!������ ������!������!������"������!������!��s�4�y�!�!�A��1�g�G���1��G�J�����(�B��O�O�B�G�$��O�O�B�G�$��O�O�B�H�%��O�O�B�H�%��O�O�B�H�%��O�O�B�H�%����R�X�&����R�X�&����R�W�%����R�W�%����R�X�&����R�X�&�"r,c���UOUOUO2UOUOUO2UOUO
UO2UOUOUO2UOUOUO2UOUOUO2P!r.)
r'r�rr�r	r�r3r�rr�r�r�r�)r(rpr�s&&&r)�verify_field_equality�"TestDateTime.verify_field_equality\
s�������)�)�3�8�8�4�������#�)�)�4�����)�)�3�7�7�3�����)�)�3�8�8�4�������#�*�*�5�������#�*�*�5r,c��]PHoUO2oUOU2oUOOU2oUO	V42UOO[
OU22oUO	V42UOO[OU22oUO	V42P!�r	)	r�	localtimerir`r��decimal�Decimal�	fractions�Fraction�r(rrarpr�s&    r)rb�TestDateTime.test_fromtimestampd
s����
�Y�Y�[���>�>�"�%���m�m�)�)�"�-���"�"�8�1��m�m�)�)�'�/�/�"�*=�>���"�"�8�1��m�m�)�)�)�*<�*<�R�*@�A���"�"�8�1r,c�f�]PHoUOOUO2Q5P!)r	)r�)rrir`)r(rs& r)�test_fromtimestamp_keyword_arg�+TestDateTime.test_fromtimestamp_keyword_argp
s"���	
�
�
�#�#�d�i�i�k�#�:r,c��]PHoUO2oUOU2oUO[29^tt^2UOOU2oPPP2UO
UW2UO[29^tt^2UOO[OU22oPPP2UO
V42UO[29^tt^2UOO[OU22oPPP2UO
V42P!)%fhK�9h)%fhK�9h)%fhKI9hr�)r�gmtime�assertWarnsr�ri�utcfromtimestampr�r�r�r�r�r�s&    r)�test_utcfromtimestamp�"TestDateTime.test_utcfromtimestampv
s����
�Y�Y�[���;�;�r�?��
�
�
�0�
1�
1��-�-�0�0��4�C�2��"�"�8�S�1�
�
�
�0�
1�
1��-�-�0�0�����1D�E�C�2��"�"�8�1�
�
�
�0�
1�
1��-�-�0�0��1C�1C�B�1G�H�C�2��"�"�8�1�2�
1��2�
1��2�
1�s6�E
�0E�?0E0�
E	�E	�E-	�&E-	�0F	�9F	�EST+05EDT,M3.2.0,M11.1.0c	���UOQ]]2oUOUO2Q2UOQ]]]]]]2oUOUO2Q2UOQ]]]]2oUO]Q5oUOUOO	UO22U[]Q5*
2UOUOO	UO22U[]Q5*2UOQ]]]]2oUOUOO	UO22U2UO]]]2UOQ]]21FD?oUO2oUOUOO	U2U2JA	P![cJSh9h)rg��@r\rpr�i'���6�@)rir'r�r8r`rr/)r(r��t0r�r#s&    r)�test_timestamp_naive�!TestDateTime.test_timestamp_naive�
s����M�M�$��1�%����������0��M�M�$��1�a��A�q�1���������;�	=��]�]�4��B��2�
.��
�Z�Z�Q�Z�
��������4�4�R�\�\�^�D��i�a�0�0�	2�������4�4�R�\�\�^�D��i�a�0�0�	2�
�M�M�$��A�q�"�-��������4�4�Q�[�[�]�C�Q�G��-�-��!�A�&��
�
�d�2�b�(A�B�A�
D��K�K�M��� � ����!<�!<�Q�!?��C�
C��!�
��
�s� G!�!	G0�+G0�/G0c��UOQ]][OQ5oUOUO	2Q2UOQ]]]]]][OQ5oUOUO	2Q2UOQ]]]]]][[QQ5Q2Q5oUOUO	2Q2P!)rrr�r�r�g�7��@r3r�)rirr0r'r�rr�s& r)�test_timestamp_aware�!TestDateTime.test_timestamp_aware�
s����M�M�$��1�X�\�\�M�:����������,��M�M�$��1�a��A�q����M�F���������1�	3��M�M�$��1�a��A�q�!)�)�"�*=�u�!E�
�
G���������9�	;r,zMSK-03c�d`�U1QkoROOU1FCD	oU]2oROUO]2ROUO]2UQ2oUQ	2oROUO];2ROUOQ2UQ
2oROVc2UQ2oROVe2UQ2oROVc2UQ
2oROUO];2ROUOQ2UQ2oROVc2UQ2oROVd2UQ2oROUO]2ROUOQ2UQ2oROUO]2ROUO]2UQ2oROUO]2ROUOQ2CJ	P!)c�:�RO[29^tt^2ROOU-U@ttPPP2!)%fhP!9hr.�r�r�rir��r�rUr(s*,�r)r��@TestDateTime.test_microsecond_rounding.<locals>.utcfromtimestamp�
�;����!�!�"4�5�5��}�}�5�5�t�F�v�F�6�5�5�5���A�A	�A	g���ư>rVg1E��2�>gH�����z>�#g<"2��?g�P���?r;g���ư�g:�0�yE�g1E��2��gH�����z�r?r>)rir`r'r�r)r(r��ftsr�r��	minus_oner�sf      r)rB�&TestDateTime.test_microsecond_rounding�
s����	G��M�M�/�/�$�&�C��q�6�D����T�[�[�!�,����T�-�-�q�1��d�)�C��E�
�I����Y�-�-�r�2����Y�2�2�F�;��E�
�A����Q�%��E�
�A����Q�*��E�
�A����Q�%��G��A����Q�X�X�r�*����Q�]�]�F�3��D�	�A����Q�%��D�	�A����Q�$��J��A����Q�X�X�q�)����Q�]�]�F�3��I��A����Q�X�X�q�)����Q�]�]�A�.��F��A����Q�X�X�q�)����Q�]�]�D�1�C&r,c�`�[OoU1QkoROOU1FCD�oUU]22oRO	UO
]2RO	UO]2UUQ22oUUQ22oRO	UO
];2RO	UOQ2UUQ22oRO	Vt2UUQ22oRO	Vv2UUP2]�*2oRO	UO
];2RO	UOQ2UUQ22oRO	Vt2UUQ22oRO	Vt2UUQ	22oRO	Vu2UUQ
22oRO	Vu2UUQ22oRO	UO
]2RO	UOQ2UUQ22oRO	UO
]2RO	UO]2UUQ
22oRO	UO
]2RO	UO]2UU]2]�*2oRO	UO
]2RO	UOQ2CJ�	P!)c�:�RO[29^tt^2ROOU-U@ttPPP2!)%fhP!9hr.r�r�s*,�r)r��HTestDateTime.test_microsecond_rounding_decimal.<locals>.utcfromtimestamp�
r�r�z	0.000_001z
-0.000_001rVz-0.000_000_1z-0.000_000_9r�z0.000_000_1z0.000_000_5z0.000_000_500_000_000_000_000_1z0.000_000_9z0.999_999_499_999_999_9z0.999_999_5z0.999_999_9r;)r�r�rir`r'r�r)r(�Dr�r�r�r�r�r�sf       r)�!test_microsecond_rounding_decimal�.TestDateTime.test_microsecond_rounding_decimal�
sw����O�O��	G��M�M�/�/�$�&�C��q��t�9�D����T�[�[�!�,����T�-�-�q�1��a��n�%�C��A�l�O�,�I����Y�-�-�r�2����Y�2�2�G�<��A�n�%�&�A����Q�%��A�n�%�&�A����Q�*��A�b�E�$�J��A����Q�X�X�r�*����Q�]�]�F�3��A�m�$�%�A����Q�%��A�m�$�%�A����Q�%��A�7�8�9�A����Q�$��A�m�$�%�A����Q�$��A�/�0�1�A����Q�X�X�q�)����Q�]�]�G�4��A�m�$�%�A����Q�X�X�q�)����Q�]�]�A�.��A�m�$�%�A����Q�X�X�q�)����Q�]�]�A�.��A�a�D��I��A����Q�X�X�q�)����Q�]�]�D�1�M&r,c�`�[OoU1QkoROOU1FCD�oUU]22oRO	UO
]2RO	UO]2UU]Q22oUUPQ22oRO	UO
];2RO	UOQ2UUPQ22oRO	Vt2UUQQ22oRO	Vv2UUP]�22oRO	UO
];2RO	UOQ2UU]Q22oRO	Vt2UU]Q22oRO	Vt2UUQQ22oRO	Vu2UU]	Q22oRO	Vu2UUQQ22oRO	UO
]2RO	UOQ2UUQ	Q22oRO	UO
]2RO	UO]2UUQ
Q22oRO	UO
]2RO	UO]2UU]]�22oRO	UO
]2RO	UOQ2CJ�	P!)
c�:�RO[29^tt^2ROOU-U@ttPPP2!)%fhP!9hr.r�r�s*,�r)r��ITestDateTime.test_microsecond_rounding_fraction.<locals>.utcfromtimestamp	r�r�r�rVi���r�lrTl��_�lv�l�_�i{��r�r;i����)r�r�rir`r'r�r)r(r-r�r�r�r�r�r�sf       r)�"test_microsecond_rounding_fraction�/TestDateTime.test_microsecond_rounding_fractions��������	G��M�M�/�/�$�&�C��q��t�9�D����T�[�[�!�,����T�-�-�q�1��a��9�o�&�C��A�b�)�,�-�I����Y�-�-�r�2����Y�2�2�G�<��A�b�*�%�&�A����Q�%��A�b�*�%�&�A����Q�*��A�b�$�K� �A����Q�X�X�r�*����Q�]�]�F�3��A�a��$�%�A����Q�%��A�a��$�%�A����Q�%��A�m�%:�;�<�A����Q�$��A�a��$�%�A����Q�$��A�+�-C�D�E�A����Q�X�X�q�)����Q�]�]�G�4��A�i��,�-�A����Q�X�X�q�)����Q�]�]�A�.��A�i��,�-�A����Q�X�X�q�)����Q�]�]�A�.��A�a��J��A����Q�X�X�q�)����Q�]�]�D�1�M&r,c�8�UOQ29^tt^2UOOO[O
Q5oUO
2oUOUQ2PPP2UOQ29^tt^2UOOO[O
]Q5oUO
2oUOUQ2PPP2P!)%fhK�9h)%fhP!9h)zminimum UTCrzmaximum UTC�rrg�� �MBl����w#o9)	r]rir�r8rr0r�r'r�)r(�min_dt�min_ts�max_dt�max_tss&    r)�test_timestamp_limits�"TestDateTime.test_timestamp_limits5s���
�\�\�-�
(�
(��]�]�&�&�.�.�h�l�l�.�C�F��%�%�'�F�
���V�\�2�
)��\�\�-�
(�
(��]�]�&�&�.�.�h�l�l�;<�/�>�F��%�%�'�F�
���V�^�4�)�
(�)�
(��)�
(�
(�s%�AC5�AD�5D	�>D	�D	�D	�win32z%Windows doesn't support min timestampc�8�UOOQ2UOO
[
]Q5*oUO2oUOOO]Q5oUOO[
]Q5*
O2[
]];];Q5O2*oQV!1QVC11FDVvqVoUOVVUQ59^tt^2UOOU2oUOV�2PPP2JX	Q	U[
]]Q
5O2*
1QU[
QQ5O2*
1Q
U[
]Q5O2*1QU[
QQ5O2*1,o	S	FDovqVUOVVQ59^tt^2UO[[129^tt^2UOOU2PPP2PPP2Jq	P![[1cSO	Q2CK>h9h)%fhCJ�9h)%fhK\9h)%fhJ�9h)r��Test not valid on this platformr��rr�rU�minimum�maximum�rarp�Too small by a littler=�Too small by a lotr��Too big by a little�Too big by a lot�ra���)rir`�OSErrorr/rJr�rr�r�r8r�r]r'r�r)
r(r�r�r�r��	test_namerarpr�r�s
&         r)�test_fromtimestamp_limits�&TestDateTime.test_fromtimestamp_limitsHs��	=��M�M�'�'�
�3����"�"�Y�A�%6�6���!�!�#�����"�"�*�*�q�*�9���=�=�$�$�y�r�':�:�E�E�G��"�b�"�=�K�K�M�N���F�+��F�+�*
�%�Y�H����i���B�B����4�4�R�8��� � ��2�C�B�	*
�%�f�y�a�r�/J�/X�/X�/Z�&Z�[�
!�6�I�3�,?�,M�,M�,O�#O�P�
"�F�Y�A�->�-L�-L�-N�$N�O�
��)��*=�*K�*K�*M�!M�N�	
�
�(�M�I����i��/�/��&�&�
�M�'B�C�C��M�M�/�/��3�D�0�/�(��;��'�	=��M�M�;�<�	=�� C�B�B��D�C��0�/�/�sY�H7�;-I 	�!$J	�I5
�!J	�7I�I�I� I2
�)I2
�5J�>J�J	�J
�J
c
��UO[29^tt^2UOOQ2PPP2UOOO[OQ5oUO2oUOOO][OQ5oUO2oQV!OPQ51QVCOPQ511FD~vqVoUOVVUQ59^tt^2UO[29^tt^2UOOU2oPPP2UOWU2PPP2J�	QU]*
1QU[!Q	Q
5O#2*
1QU]*1QU[!Q	Q
5O#2*1,o
S
FD�vqVUOVVQ
59^tt^2UO%[&[
129^tt^2UO[29^tt^2UOOU2PPP2PPP2PPP2J�	P![[
1cSO
Q2CKYh9h)%fhCKf9h[[
1c&o	SO
[S	22Po	=	CK�Po	=	hh9h)%fhCK�9h)%fhCJ9h)%fhK�9h)%fhK�9h)%fhCJr9h)r�r�r�rrr�r�r�r�r�r�r�r�r�r�r�)r�r�rir�r�r/rJr�r8rr0r�r�r]r�r'rr�r�r)r(r�r�r�r�r�rarpr��excr�s&          r)�test_utcfromtimestamp_limits�)TestDateTime.test_utcfromtimestamp_limitsps���
�
�
�0�
1�
1�
A��
�
�.�.�z�:�2����"�"�*�*�(�,�,�*�?���!�!�#�����"�"�*�*�q����*�N���!�!�#���F�N�N�$�N�$?�@��F�N�N�$�N�$?�@�*
�%�Y�H����i���B�B��%�%�&8�9�9�0�!%���!?�!?��!C��:�� � ���2�C�B�	*
�%�f�q�j�1�
!�6�I�3�,?�,M�,M�,O�#O�P�
"�F�Q�J�/�
��)��*=�*K�*K�*M�!M�N�	
�
�(�M�I����i��/�/��&�&�
�M�'B�C�C��)�)�*<�=�=��
�
�6�6�r�:�>�D�0�/�(��=�]�+�
A��
�
�?�@�
A��2�
1�
1��($�]�3�0��
�
�c�#�h�/�/��0��:�9�9��C�B�B��(>�=��D�C��0�/�/�s��J�I0�K:	�5K&
�7J-�K:	�4$L5	�L"
�6L�L"
�L5	�0J�J�J�J�J�J*	�"J*	�-K#�=K#�>K�K&
�K#�#K&
�&K7�/K7�1	K:	�:L
�L
�L�L�L"
�"L2�+L2�-L5	�5M
�>M
c�r�QFD.oUO[UOOU2J0	P!rergrhs& r)rj�&TestDateTime.test_insane_fromtimestamp�rlr,c	���QFDToUO[29^tt^2UO[UOO
U2PPP2JV	P!)%fhJk9hre)r�r�r�r/rir�rhs& r)�test_insane_utcfromtimestamp�)TestDateTime.test_insane_utcfromtimestamp�sQ��
$�F��!�!�"4�5�5��!�!�-����1O�1O�"(�*�6�5�$�5�5�5�s�,A	�A0
�(A0
c�>�UOOQ2P!)��������?��������)rir`r1s&r)�!test_negative_float_fromtimestamp�.TestDateTime.test_negative_float_fromtimestamp�s��	
�
�
�#�#�E�*r,c��UO[29^tt^2UOOQ2oPPP2UO	WUOQ]]]];]:Q22P!)%fhK99h)r�i�i�~r�)r�r�rir�r')r(r�s& r)�$test_negative_float_utcfromtimestamp�1TestDateTime.test_negative_float_utcfromtimestamp�s[��
�
�
�0�
1�
1��
�
�.�.�u�5�A�2�����D�M�M�$��B��B��F�K�L�2�
1�s�A,�,A<	�5A<	c	�2�]PHo[]Q5o[]2FD�oUO[29^tt^2UO
O
2oPPP2UO[29^tt^2UO
OUO22oPPP2[WW*
2U6:fJ�L	UO[WW*
2U2P!)%fhK�9h)%fhKe9h�r	r)
rrr�r�r�ri�utcnowr�r��assertLessEqual)r(r�	tolerancer%�from_now�from_timestamps&     r)�test_utcnow�TestDateTime.test_utcnow�s�����a�(�	��1�X�E��!�!�"4�5�5��=�=�/�/�1��6��!�!�"4�5�5�!%���!?�!?��	�	��!L��6��>�H�,�-��:���	
���S��(�!:�;�Y�G�6�5��6�5�s#�C3	�>+D	�3D
�<D
�D
�D
c	�	�QoQo[OUOUU2oUOOV2oUO	V42UO[
U2UO2UO[
U2UO2,QNoSFDuvqUOVQ59^tt^2[OUOV2oUOOV2oUO	V42PPP2Jw	UOOoUO	UQQ2O2][*2UO	UQQ2O2Q[*2UO	UQQ2O2[]]]Q5'2UO	UQQ	2O2][*][**2UO	UQ
Q	2O2]
[*][**'2UO	UQQ	2O2[]]
Q5'2QQ[O'[O]*11FD�vqxU]6cQo	U'o
LQo	So
[U
]<*]<2vq�QO!V�V�2o
UU
Q2oUO	UO2[UQ52UO	UO2U2J�	QQq�UV�2oUO	UO2][*]"[**2UO	UO2Q
2UO	UO#U2U
2UO	UQ
Q2O$P2UO'[(29^tt^2UQQ2PPP2UO'[(29^tt^2UQQ2PPP2UO'[(29^tt^2UQQ2PPP2P!)%fhCJ�9h)%fhK�9h)%fhKi9h)%fhP!9h)z2004-12-01 13:02:47.197z%Y-%m-%d %H:%M:%S.%fr��+0002�%z�-0002�-00:02:01.000003�rjr
r�+01:07�%:z�-10:02�-00:00:01.00001rrrCrD�{}{:02d}{:02d} {}�%z %Zr�	+1234 UTCrl�-2400�-000�z))u2004-12-01�13:02:47.197u%Y-%m-%d�%H:%M:%S.%f)u2004�12-01 13:02:47.197u%Y�%m-%d %H:%M:%S.%f)u2004-12-01 13:02�47.197u%Y-%m-%d %H:%M�%S.%frT�r	r�r	�GMT)r��_strptime_datetime_datetimerir�r'r/r�r]r|�MINUTErr$r�rr�r�r�r�rr�r)r(r�r�rpr�r�r��	tzsecondsr�rIr
r�rj�dtstrr{r�s&               r)r��TestDateTime.test_strptime�s���*��'���8�8�����9?�A���m�m�$�$�V�4������'��
�
�d�8�n�d�m�m�4��
�
�d�3�i����/�
��
%�N�F����V��;�;�$�@�@����AG�Q���m�m�,�,�V�<��� � ��/�	<�;�%��=�=�)�)������'�4�0�:�:�<�a�&�j�I�����'�4�0�:�:�<�b�6�k�J�����'��.�8�8�:�
�q�!�!�
<�<�	
�	
����(�E�2�<�<�>��T��A��J�.�	0�����(�E�2�<�<�>���9�q�6�z�1�2�	4�����"3�U�;�E�E�G�#�A�B�?�?�	A�#-�j�#(�>�>�/�5�<�<��?�!C�"E��I��1�}���$�*����#��#�G�R�K��4�N�E�'�.�.�t�G�L�E��%��)�B����R�\�\�^�Y�y�-I�J����R�Y�Y�[�&�1�"E�!�'�s�
�e�
!����������d��R�&�[�)@�A��������e�,�������S�)�5�1�	
����%��.�5�5�t�<�
�
�
�z�
*�
*�H�W�d�,C�
*�
�
�
�z�
*�
*�H�V�T�,B�
*�
�
�
�z�
*�
*�H�S�$�,?�
*�
*�_<�;�;��Z+�
*��
*�
*��
*�
*�
*�sI�AR	�
R�
R+�/
R>�R
�R
�R(	�!R(	�+R;	�4R;	�>S	�S	c
�r�[Q]]]],]7]2o[]]2FDoUOUQ59^tt^2UOUQ5oUO	Q2oUOUOOUQ2OU2PPP2J�	P!)%fhJ�9h)r^�rz%I %p)	rr�r]r8r�r'rir�r)r(r{r�new_dtr�s&    r)�test_strptime_ampm�TestDateTime.test_strptime_ampms���
�d�A�r�1�b�"�a�
0���!�R�L�D����4��(�(������.������1��� � ����!7�!7���!H�!M�!M�!%�'�	)�(�!�(�(�(�s�AB%	�%B6
�.B6
c
��UOOoUO[29^tt^2UQQ2oPPP2UOQ]]]]]2oUOQ]]]]]2oUOQ]]]]]2oUOQ]]]]]2oQQQU1QQQU1QQQU1Q	Q
QU1QQQU1Q
QQU1QQQU1QQQU1QQQU1QQQU1,
oSFDPvq�q�QU*oUO	UU	U
UQ59^tt^2UV�2oUOV+UQ5PPP2JR	P!)%fhK�9h)%fhJz9h)z01/02/3 04:05:06z%d/%m/%y %H:%M:%Sr�r�z
1/02/03 4:5:6r�z
01/2/03 4:5:6�%Hz01/02/03 4:05:06�%Mz01/02/03 04:5:06�%Sz01/02/03 04:05:6r�z2/03 04am:05:06z%j/%y %I%p:%M:%S�%Iz02/03 4am:05:06r�r�r�r�r�r�r�r�r�r�r�)rir�r�rr]r')r(r�r�r�r�r^�dt4r�r�r�r�r�s&           r)r��'TestDateTime.test_strptime_single_digits����=�=�)�)��
�
�
�z�
*�
*��1�3F�G�G�+��m�m�D�!�Q��1�a�0���m�m�D�!�Q��1�a�0���m�m�D�!�Q��1�a�0���m�m�D�!�R��A�q�1��
�?�$7��=�
�?�$7��=�
�%�':�C�@�
�%�':�C�@�
�%�':�C�@�
�$�&8��=�
�$�&8��=�
�9�j�#�.�
�:�z�3�/�
�:�z�3�/�
��/5�*�F�F�)�F�2�F����V�%+�%+�%+��-�-�#�6�2��� � ��f� �=�-�-�/5�)+�
*��,-�-�-�s#�
D,�D?	�,D<	�5D<	�?E
�E
c�J�UO[29^tt^2UOOQQ2PPP2UO[29^tt^2UOOQQ2PPP2[O
O
2UO[Q29^tt^2UOOQQ2PPP2UO[29^tt^2UOOQQ2PPP2UO[29^tt^2UOOQQ	2PPP2UO[29^tt^2UOOQQ
2PPP2P!)%fhCK|9h)%fhCKN9h)%fhCK9h)%fhK�9h)%fhK�9h)%fhP!9h)r�r�z03-14.159265z%m-%d.%fr�z%m-%e.%fz20-03-14.159265z%y-%m-%d.%fr�r�r�)
r�rrir�r�r�r�r�r�r�r1s&r)r��$TestDateTime.test_strptime_leap_year7sm��
�
�
�z�
*�
*��M�M�"�"�7�G�4�+��
�
�z�
*�
*��M�M�"�"�>�:�>�+�	���$�$�&�
�
"�
"�#5�#E�G�G��M�M�"�"�>�:�>�G��
!�
!�"4�
5�
5��M�M�"�"�#4�m�D�6�
�
!�
!�"4�
5�
5��M�M�"�"�<��<�6�
�
!�
!�"4�
5�
5��M�M�"�"�<��<�6�
5�+�
*�
*��+�
*�
*��G�G�G��6�
5��
5�
5��
5�
5�
5�sk�F/�!G�G�G+�G>�H�/G	�8G	�G	�G	�G(	� G(	�+G;	�4G;	�>H	�H	�H"	�H"	c
� �QFDqoQoQU0oUOQ]]]]*]/2oUOUUUQ59^tt^2UOOV#2oUOVT2PPP2Js	P!)%fhJ�9h)rz2025-04-25 11:42:47z%Y-%m-%d %H:%M:%S%r�)r�r�r�)rz:z�rir]r�r')r(�	directiver�r�r�rVs&     r)�test_strptime_z_empty�"TestDateTime.test_strptime_z_emptyJs���$�I�*�F�)�)��5�F��]�]�4��B��B��;�F����V�%+�%+��-�-����/�/��?��� � ��0�	-�-�	%�-�-�-�s�-A<	�<B

�B

c��UOQ]]]]]!2oUOUO2Q2UOUO2UOUOUO
UOUOUOUO2UO2[UO]]2O2*
]*P1	2UO2oUOUOUO2UOUOUO2UOUOUO
2UOUOUO2UOUO UO2UOUO"UO2UOUO$UO22UOUO&UO2[UO]]2O2*
]*2UOUO(P2P!)r�)	r�r#rr�r�!rrr�)rir'r�rr	r3rr�r�rwrrr�r�r�r�r�r�r�r�r�)r(r��tts&  r)�test_more_timetuple� TestDateTime.test_more_timetupleUs����M�M�$��B��2�r�2���������(M�N���������&�&�!�'�'�1�5�5��&�&�!�(�(�A�H�H��)�)�+��+�+�-�$�q�v�v�q�!�*<�*F�*F�*H�H�1�L��	�	��[�[�]��������Q�V�V�,�������A�G�G�,�������Q�U�U�+�������Q�V�V�,�������A�H�H�-�������A�H�H�-�������Q�Y�Y�[�1�������Q�[�[�]�%)�!�&�&�!�Q�%7�%A�%A�%C�&D�FG�&H�	I�������b�)r,c
��UOQ]]]]]!]/2oUOUOQ2Q2Q	FD�vvq#o[[	]V#Q5'2oUOUQ5oUOUOQ2QU*2UOUOQ2QU*2J�	P!)
r�z%m %d %y %f %S %M %H %jz12 31 04 000047 33 22 06 366)r�r
rrrz-0200r
z-02:00:)))r/�{z	33.000123))r/r	�33)rir'r�rrr8)r(r�r#r�rr�s&     r)�test_more_strftime�TestDateTime.test_more_strftimeks����M�M�$��B��2�r�2�6��������$=�>�$B�	D�F�J�G�Q�Q��9�1�a�I�I�J�B��	�	��	�$�A����Q�Z�Z��-�w��{�;����Q�Z�Z��.�	�A�
�>�	Gr,c	��UOQ]]]]]!]/2oUOQ2oUOQ2oUOUOQ2Q2UOUOQ2QUQU02UOUOQ2UQUQ02UOUOQ2Q2UOUOQ2Q2UOUOQ	2QUQU02UOUOQ
2UQUQ02UOUOQ2UQUQ02UOUOQ2Q2UOUOQ
2UQU02UOUOQ2Q2UOUOQ2UQU02UOUOQ2Q2UOUOQ2Q2UOUOQ2QUQU02UOUOQ2UQUQ02P!)r�z%cz%B�🐍u💻%c🐍%B�💻u%c💻%B🐍����u
�%c�%Bu
%c�%B�u
%c�%B����u
%c��%B�����u%c����%Br/z%c%Bz%c%B��)rir�r')r(r��s1�s2s&   r)�test_strftime_special�"TestDateTime.test_strftime_specialvsK���M�M�$��B��2�r�2�6��
�Z�Z��
��
�Z�Z��
��	
������L�1�<�@�������$>�?�:�b�T�Q[�\^�[_�A`�a�������$>�?�B�4�z�RT�QU�U_�A`�a�������H�-�x�8�������H�-�x�8�������$6�7�6�"��V�B�4�9P�Q�������$6�7�B�4�v�b�T��9P�Q�������$6�7�B�4�v�b�T��9P�Q�������N�3�^�D�������$6�7�B�4�|�B�4�9P�Q�������$>�?�A[�\�������$B�C��t�Kc�df�cg�Eh�i�������D�)�4�0�������I�.�	�:�������J�/�2�b�T��B�4��A�������J�/�B�4�r�"��R��Ar,c	���UOQ]]]]-]Q2oUOUO2[Q]]22UOUO2[]]-]Q22P!)r��)rir'rrrzs& r)�test_extract�TestDateTime.test_extract�s\��
�]�]�4��A�r�2�q�$�
7���������D��q�!�$4�5��������D��R��D�$9�:r,c	��[Q]]2o[]]-]Q2oUOQ]]]]-]Q2oUOOoUV2oUO	VS2UV!Q5oUO	VS2UO	VO22UO	V%O22UO	VTUO2UO222UO[U2UO[VA2UO[VBU2UO[VAU]2UO[VAU]]2UO[UQQ2UO[VAQ2UO[UQU2UV[O2oUOUO[O2UV[OQ5oUOUO[O2[2oUVR2oUO	UO2U2UO	UO2U2P!)rrE)rrrrr)rrrir�r'r�r�rr0r/r)r(r�r�rpr�r{s&     r)�test_combine�TestDateTime.test_combine�s�����q�!�����R��D�!���=�=��q�!�R��Q��=���-�-�'�'��
�Q�]������&�
�!�
$������&�����G�G�I�&�����G�G�I�&�����W�R�W�W�Y����	�:�;����)�W�-����)�W�0����)�W��3����)�W��A�6����)�W��A�q�9����)�W�f�f�=����)�W��8����)�W�f�a�8��Q�8�<�<�
(���
�
�b�i�i����.�
�Q�(�,�,�
/���
�
�b�i�i����.��F��
�R�^���������A�&��������A�&r,c
�^�UOo,QNoUUoUOUO2U2UO[OU2U2Qo[	U2FDivovqgUQ*oVxU$UUo	UOUOQ-Vg-@U	2UO[OU1-Vg-@U	2Jk	UQ]]2oUO[UOQQ5UO[[OUQQ5P!)r$r?r�r4r@)r$r�r�rr>r�r�)rArBrC�rr>�r�r��r�r��rr�r]rDrFs
&         r)rL�TestDateTime.test_replace�s���m�m��$���D�z����������.�������d�+�T�2�'��"+�7�!3��A�~���1�g�G��A�J��G�}�H����T�\�\�;�T�N�;�X�F����T�\�\�$�A�4�.�A�8�L�"4��4��B������*�d�l�l���>����*�d�l�l�D�t��Dr,�EDT4c�T�UOO2o[],Q2oUO[	[Q
Q5Q2Q5oUO
UO2U2UO[UOV"2UO[UOU2UOUQ5[]],Q5*oUO
UOU2U2UO
UOUQ5U2QQ[2oU2oUO[UOU2UO
UOUQ5OU2U2Q	Q
[2oU2oUO[UOU2QQ[2o	U	2o
UOU
Q5oUO[29^tt^2UO2PPP2P!)%fhP!9h)�,�0044r��EDTrr�r�c�.`�\sQsQsnQsQsQsUsP!)�+TestDateTime.test_astimezone.<locals>.Bogusi�c��P!r.r]rzs&&r)r|�5TestDateTime.test_astimezone.<locals>.Bogus.utcoffset����Dr,c��[]2!r�rrzs&&r)r��/TestDateTime.test_astimezone.<locals>.Bogus.dst�s��i��l�2r,r]�rIr^r_r`r|r�rarbrcs@r)�BogusrX�s����0�2�2r,r_c�.`�\sQsQsnQsQsQsUsP!)�/TestDateTime.test_astimezone.<locals>.AlsoBogusi�c��[]2!r�rrzs&&r)r|�9TestDateTime.test_astimezone.<locals>.AlsoBogus.utcoffset�s��I�a�L�%8r,c��P!r.r]rzs&&r)r��3TestDateTime.test_astimezone.<locals>.AlsoBogus.dst����dr,r]r^rcs@r)�	AlsoBogusra�s����8�*�*r,rgc�.`�\sQsQsnQsQsQsUsP!)�,TestDateTime.test_astimezone.<locals>.Brokeni�c��]!r�r]rzs&&r)r|�6TestDateTime.test_astimezone.<locals>.Broken.utcoffset�s��Ar,c��]!r�r]rzs&&r)r��0TestDateTime.test_astimezone.<locals>.Broken.dst����ar,r]r^rcs@r)�Brokenri�s����-�'�'r,rorV)rir�rfr8rrr'�
astimezoner�r�rr)r(r{r��dt_utc�dt_fr_�bogrg�alsobogro�broken�	dt_brokens&           r)�test_astimezone�TestDateTime.test_astimezone�s���
�]�]�
�
�
 ����F�#�����8�I�B�,?��#G��H���������&�1����)�R�]�]�A�9����)�R�]�]�B�7��z�z��z�#�i�a��&D�D��������q�)�4�0�������!��,�d�3�	3�F�	3��g�����*�b�m�m�S�9�������3��/�:�:�1�=�t�D�	+��	+��+�����*�b�m�m�W�=�	(�V�	(�����J�J�f�J�-�	�
�
�
�y�
)�
)�� � �"�*�
)�
)�
)�s�;H�H'	�H'	c�"`�U1QkQRO2oQoROUoUU-Q]-@oROUOU2ROUO]*2ROUO]2ROUO2UO22ROUO
Q2UOUO*UO*]*
2P!)c�::`�\sQsQsn]*sU1QksQsQsUsP!)�.TestDateTime.test_subclass_datetime.<locals>.Ci�c�:�UO2oUOQ2oROOU,UN3-U@oVEmU!rfrgris&*,   �r)r��6TestDateTime.test_subclass_datetime.<locals>.C.__new__�rmr,c�l�VO*UO*UO*!r.)rr	r�ros&&r)rq�6TestDateTime.test_subclass_datetime.<locals>.C.newmeth�s!���y�y�(�4�:�:�5����C�Cr,r]rsrZs@�r)r*r{�s�����I�
�
D�
Dr,r*r)r�rrvr#r��)rU)
rir'rHrtrrrqrr	r�rwsf    r)r}�#TestDateTime.test_subclass_datetime�s����	D��
�
�	D�'���m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Y�Y�*>�*-�*�*�+5�78�+9�	:r,c
�`�U1QkQRO2oQ
oQoQoUUoROVQ2ROUO]2UO	2oQU1U1QU[
O1UO[
O21QU1U1QU1U1QUQ1U1Q	[UQ
*[UQ*1U1,oSFD�vq�o
V1FD�oRO[U2UQ59^tt^2[V�2oUQ6Xc/RO[29^tt^2UU	o
PPP2LUU	o
ROW
U2ROV�2ROU
O]2PPP2J�	J�	P!)%fhKa9h)%fhJ�9h)c�0:`�\sQsQsnU1QksQsUsP!)�TTestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclassi
c�Z:�ROOU,UN3-U@o]UmU!rRrSrTs&*, �r)r��\TestDateTime.test_subclass_alternate_constructors_datetime.<locals>.DateTimeSubclass.__new__
r~r,r]rYrZs@�r)rxr�
rr,rxz2003-04-14T12:30:15.123456gh͏�TM�Ar`r�r�r�z%Y-%m-%dT%H:%M:%S.%fr�:r	r�Nr�r�)r�rrvr#r�r�)rir�r'rr�rr0rprrr]r�r�r�r�)r(rxr�r��utc_tsr�rar�r�r�rpr��constructorr{sf             r)�-test_subclass_alternate_constructors_datetime�:TestDateTime.test_subclass_alternate_constructors_datetime
s����	�t�}�}�	�1��2��"��!�4�(�����f�7�������q�)��
�
�
���r�e�V�,�
�r�8�<�<�0�%�0�0����>�
@�
�&��F�3�
�{�n�f�5�
�+�'=�>��G�
��t�C�y�)�4��b��?�;�V�D�	
�
�3=�.�K�h�-�6���\�\��X��.9�"�;�;�")�(�"@�K�"�&8�8�!�-�-�.@�A�A�!,�k�!:�B�B�A�)�+�6���)�)�"�.>�?��$�$�R�2��$�$�R�X�X�q�1�#;�;�7�3=�B�A��;�;�;�s7�F1
�F1
�5F�=AF1
�F.�'F.�)F1
�1G�:Gc�H`�U1QkQRO2oQQ-1QQ-1QQQ[O-1QQQ[[Q	Q5Q2-1,oSFD�vq4oRO	U29^tt^2[V2oUQ6Xc1RO
[29^tt^2UQ
-U@oPPP2L	UQ
-U@oROWU2ROUO]2PPP2J�	P!)%fhKL9h)%fhJ�9h)c�0:`�\sQsQsnU1QksQsUsP!)�8TestDateTime.test_subclass_now.<locals>.DateTimeSubclassiE
c�Z:�ROOU,UN3-U@o]UmU!rRrSrTs&*, �r)r��@TestDateTime.test_subclass_now.<locals>.DateTimeSubclass.__new__F
r~r,r]rYrZs@�r)rxr�E
rr,rxr�r��now_utcr��	now_fixedr�r�r3r])rirr0rr]r�r�r�r�r'r)r(rxr�rC�	meth_namerUr�r{sf       r)�test_subclass_now�TestDateTime.test_subclass_nowC
s	���	�t�}�}�	��E�2��
�x��$�
���h�l�l�3�4�
�%�$����1D�e�(L�!M�N�	
�
�(2�#�D�V����d�#�#� �!1�=����(��)�)�*<�=�=�#�-�f�-��>�=� �)�&�)�B��%�%�b�*:�;�� � ����1�-�$�#�(2�>�=��$�#�#�s7�5D	�D	�%
C=
�/AD	�=D
�D
�D	�D!
�D!
c	�H�QQUO2oUQ]]2oUQ]]]Q5oQUOQQ5]1QUOQQ5]1Q[OUQQ5]1Q[OUQQ5]1,oSFD|vqVoUOVWQ59^tt^2UO	[U2U2UO
UOQ2UO
UOU2PPP2J~	P!)%fhJ�9h)c��\sQsQsQsP!)�ATestDateTime.test_subclass_replace_fold.<locals>.DateTimeSubclassi`
r]rr]r,r)rxr�`
rar,rxr\rpr]r^r@r_)	rir8rLr]r/r�r'rrq)r(rxr{r�r�rCr�rqs&       r)�test_subclass_replace_fold�'TestDateTime.test_subclass_replace_fold_
s���	�t�}�}�	��d�A�q�
)���t�Q���2���R�Z�Z�T�Z�2�A�6�
�S�[�[�d�[�3�Q�7�
�T�\�\�"�4�8�!�<�
�T�\�\�#�D�9�1�=�	
�
� *�O�D�t����d��.�.��
�
�d�3�i�)9�:�� � ����4�0�� � ����4�0�/�.� *�.�.�.�s�.AD	�D!
�D!
c�:�[OQ2o,QNoSFD]oUOU29^tt^2UO[U29^tt^2UO
UPPP2PPP2J_	UO
[29^tt^2oUOQ]] ]]]2PPP2UOQ[WO22P!)%fhK9h)%fhJ�9h)%fhK^9h)�B(year|month|day|hour|minute|second) must be in \d+\.\.\d+, not \d+r��6day 32 must be in range 1..30 for month 4 in year 2009))r�rr$r#r�Z)r�rr$r#r��-)r�rr$�rr�)r�r�r$rSr	r	)r%r#rrSr	r	r�r�s&    r)r��$TestDateTime.test_valuerror_messagess
s����*�*�
)�
��
�
��D����d�#�#��+�+�J��@�@��M�M�4�(�A�$�#���
�
�z�
*�
*�c��M�M�$��2�r�1�a�0�+��
�
�N�QT�UX�Ub�Ub�Qc�d�
A�@��$�#�#��
+�
*�sA�C6	�C#
�,C6	�D
�#C3�,C3�.C6	�6D
�?D
�
D	�D	c�4�,QNo,QNoQQ,oP[O[[Q	Q52[[]Q52,oSTTTt,tFD/oSFD%oSFDoUO,UNUN3QU-MJ	J'	J1	ooooSFDno	SFDdo
U	O	U
Q5oUOUQ59^tt^2UOO
U2oUOV�2PPP2Jf	Jp	P!ttoooh)%fhJ�9h)
r$rrOr�r�r3�r)r�r�r�r�)�r	r	r	r	)r	r	r	ih�)r	r	r	�G�)r#rr�r�r3)rr0rrir�r]r�r')
r(r��
base_times�
separatorsrG�
date_tuple�
time_tupler@�dtsr{r3rr�s
&            r)�test_fromisoformat_datetime�(TestDateTime.test_fromisoformat_datetime�
s
��
�
�
�
��3�Z�
������I�B�/�0��I�A�.�/�1��
",�#�!+�:�!+�:�!�3��}�}�B�j�B�:�B�c�B�"�C�!+�C�!+�	�#�
�B�!�������-���\�\��\�.�.� �M�M�7�7��>�E��$�$�R�/�/�.�"���#�/�.�.�s�
7C?�-D
�D�Dc��UOQ]]]]]-Q2o[]Q5[]Q5[]]Q5[]] ]Q5[]]]	QQ5,oX"Tt,tFDoPU*MJ	to*
oP[O[[]Q52,oXBTt,tFDo[U2MJ	to*
oSFDtoUO	UQ5oUO2oUO
UQ59^tt^2UOOU2oUOV�2PPP2Jv	P!ttohttoh)%fhJ�9h)	r��pQr�rrUr�rWr��tstr�	rirrr0r8r�r]r�r')	r(�base_dtrFr�rGr@r{rr�s	&        r)�test_fromisoformat_timezone�(TestDateTime.test_fromisoformat_timezone�
s'���-�-��b�"�b�"�b�&�A��
�A��	�� 2��A�r�*��B��B�7��A�q�!�&�I�	
�	�	�2�	�"�b�2�g�g�	�2�2�	������I�A�.�/�1��	�5�9�R�H�R�L�9�5�5���C������,�B��L�L�N�E����5��)�)��
�
�3�3�E�:��� � ��+�*�)�	��3��
6�*�)�)�s�D=�!E�-E	�E
�E
c�<�,QNoSFD{oUOQ]]]];]/Q2oUOUQ5oUOUQ59^tt^2UOOU2oUO	V52PPP2J}	P!)%fhJ�9h)rrbiu�r�r�)	rrO��€uʁuᛇu時r9r1r��r(r�r3r{rr�s&     r)�test_fromisoformat_separators�*TestDateTime.test_fromisoformat_separators�
s���
�
��C����t�Q��B��B��?�B��L�L�S�L�)�E����E��*�*��
�
�3�3�E�:��� � ��+�+�*�	�+�*�*�s�-B
	�
B
�B
c	�8�QQ,oSFDyoUOQ]]]]2oUOUQ5oUOUQ59^tt^2UOOU2oUO	V52PPP2J{	P!)%fhJ�9h)rDrCrbr�r�r�r�s&     r)�test_fromisoformat_ambiguous�)TestDateTime.test_fromisoformat_ambiguous�
s����3�Z�
��C����t�Q��B��3�B��L�L�S�L�)�E����E��*�*��
�
�3�3�E�:��� � ��+�+�*�	�+�*�*�s�
-B	�B
�B
c
��Q	Q
,oP[O[[QQ52[[]Q52[[]]Q52,o,QNo[U2FD�vqESFD�oSFD�oUQ6Xc)QU]*Q**oUQ*U1*oUOU]]U*QU-o	U	OUQ5o
UO
U
Q59^tt^2UOOU
2oUOV�2PPP2J�	J�	J�	P!)%fhJ�9h)
r�r�rr�r�:r	r�Nrr0r�)r�r#rr��r�r�)r�r#rr�r�r�r	r3�r�rjr
r�r�	rr0rrErir�r]r�r')r(�datetime_basesrG�	timespecs�iprar@r��new_microsecondsr{rr�s&           r)�test_fromisoformat_timespecs�)TestDateTime.test_fromisoformat_timespecs�
s��,�'�)�������I�B�/�0��I�A�.�/��I�A�r�:�;�=��
5�	� �	�*�F�B��� .�H��^�+�+/�8�A�;�$�3F�+G�(�#+�C�=�4D�3F�#F������!�Q��V�)=�K�s�K�B��L�L�"�L�5�E����E��2�2� $�
�
� ;� ;�E� B���(�(��3�3�2�!/��+�3�2�2�s�.-D1�1E�:Ec�`�[Oo[[]Q5Q2o[[QhQ5Q2o[[QiQ5Q2o,QUOQ]]]]21MQUOQ]]]]21MQUOQ]]]]21MQ	UOQ]]]]21MQ
UOQ]]]]]21MQUOQ]]]]]21MQUOQ]]]]]Q
21MQUOQ]]]]]Q
21MQUOQ]]]]]Q21MQUOQ]]]]]Q21MQUOQ]]]]]Q21MQUOQ]]]]]Q21MQUOQ]]]]]Q21MQUOQ]]]]]Q21MQUOQ]]]]]-Q21MQUOQ]]]]]-Q21MQUOQ]]]]]Q21MQUOQ]]]]21MQUOQ]]]]21MQUOQ]]]]21MQ UOQ]]]]]21MQ!UOQ]]]]]21MQ"UOQ]]]]]Q
21MQ#UOQ]]]]]Q
21MQ$UOQ]]]]]Q21MQ%UOQ]]]]]Q21MQ&UOQ]]]]]Q21MQ'UOQ]]]]]Q21MQ(UOQ]]]]]Q21MQ)UOQ]]]]]Q21MQ*UOQ+]]21MQ,UOQ+]]]]21MQ-UOQ.]]]]21MQ/UOQ]]]]21MQ0UOQ]]]]21MQ1UOQ2]]]]21MQ3UOQ]]]]21MQ4UOQ2]]]]21MQ5UOQ]]]]21MQ6UOQ]]]]]21MQ7UOQ]]]]21MQ8UOQ]]]]21MQ9UOQ.]]]]];21MQ:UOQ.]]]]];21MQ;UOQ]]]]]21MQ<UOQ]]]]]21MQ=UOQ]]]]]21MQ>UOQ?]]]]]21MQ@UOQ?]]]]]21MQAUOQ]]]]]21MQBUOQ]]]]]Q21MQCUOQ]]]]]21MQDUOQ]]]]]QE21MQFUOQ]]]]21MQGUOQ]]]]21MQHUOQ.]]]]];21MQIUOQ.]]]]];QJ21MQKUOQ2]]]]UQL51MQMUOQ]]]]]UQL51MQNUOQ]]]]]UQL51MQOUOQ]]]]]Q
UQL51MQPUOQQ]]]][[]Q52QL51MQRUOQ]]]]][[]Q52QL51MQSUOQ]]]]][[QjQ52QL51MQTUOQ]]]]]UQL51MQUUOQ]]]]][[]Q52QL51MQVUOQ]]]]][[QjQ52QL51MQWUOQX]]]]]QYUQL51MQZUOQX]]]]]QYUQL51MQ[UOQX]]]]]Q\UQL51MQ]UOQX]]]]]Q\UQL51MQ^UOQ?]
]]]UQL51MQ_UOQ?]
]]]UQL51MQ`UOQ]]]]]Q
UQL51MQaUOQ]]]]]Q[[]
Qb52QL51MQcUOQ]]]]]21MQdUOQ]]]]]21MQeUOQf]]]]]21MoSFDTvqgUO	UQg59^tt^2UOOU2oUO
V�2PPP2JV	P!)%fhJk9h)kr$r��BSTr�rUr�r�z
2025-01-02T03z2025-01-02T03:04z2025-01-02T0304z2025-01-02T03:04:05z2025-01-02T030405z2025-01-02T03:04:05.6i�'	z2025-01-02T03:04:05,6z2025-01-02T03:04:05.678ipX
z2025-01-02T03:04:05.678901�[
z2025-01-02T03:04:05,678901z2025-01-02T030405.678901z2025-01-02T030405,678901z2025-01-02T03:04:05.6789010z2009-04-19T03:15:45.2345r�i�z2009-04-19T03:15:45.1234567r�z2025-01-02T03:04:05,678r��20250102T03z20250102T03:04z20250102T03:04:05�20250102T030405z20250102T03:04:05.6z20250102T03:04:05,6z20250102T03:04:05.678z20250102T03:04:05,678z20250102T03:04:05.678901z20250102T030405.678901z20250102T030405,678901z20250102T030405.6789010�2022W01r��
2022W52520�2022W527520r��
2026W01516�2026W013516�
2025W01503r��2025W014503�
2025W01512�2025W014512�2025W014T121431�2026W013T162100z2026W013 162100�2022W527T202159z2022W527 202159z2025W014 121431�2025W014T030405z2025W014 030405z2020-W53-6T03:04:05r�z2020W537 03:04:05z2025-W01-4T03:04:05z2025-W01-4T03:04:05.678901z2025-W01-4T12:14:31z2025-W01-4T12:14:31.012345i90z2026-W01-3T16:21:00z2026-W01-3T16:21:00.000000z2022-W52-7T20:21:59z2022-W52-7T20:21:59.999999rVz2025-W01003+00rz2025-01-02T03:04:05+00z2025-01-02T03:04:05Zz!2025-01-02003:04:05,6+00:00:00.00z2000-01-01T00+21r�z2025-01-02T03:05:06+0300z2025-01-02T03:05:06-0300z2025-01-02T03:04:05+0000z2025-01-02T03:05:06+03z2025-01-02T03:05:06-03z 2020-01-01T03:05:07.123457-05:00r�iA�z2020-01-01T03:05:07.123457-0500z 2020-06-01T04:05:06.111111-04:00i�z2020-06-01T04:05:06.111111-0400z 2021-10-31T01:30:00.000000+01:00z2021-10-31T01:30:00.000000+0100z2025-01-02T03:04:05,6+000000.00z 2025-01-02T03:04:05,678+00:00:10rz2025-01-02T24:00:00z2025-01-31T24:00:00z2025-12-31T24:00:00rr�r3rVrS)rr0rrir]r�r')	r(rr�r�rUr�r�rpr�s	&        r)�$test_fromisoformat_datetime_examples�1TestDateTime.test_fromisoformat_datetime_examples�
s����l�l���y�q�)�5�1���y�r�*�E�2���y�r�*�E�2��}
�
�4�=�=��q�!�Q��:�;�}
�
�d�m�m�D�!�Q��1�=�>�}
� ����t�Q��1�a�!@�A�}
���
�
�d�A�q�!�Q� ?�@�	}
�
#�D�M�M�$��1�a��A�$F�G�}
�!�$�-�-��a��A�q�!�"D�E�
}
�%�
�]�]�4��A�q�!�Q��
7�
9�}
�%�
�]�]�4��A�q�!�Q��
7�
9�}
�'�
�]�]�4��A�q�!�Q��
7�
9�}
�*�
�]�]�4��A�q�!�Q��
7�
9�}
�*�
�]�]�4��A�q�!�Q��
7�
9�}
�"(�
�]�]�4��A�q�!�Q��
7�
9�#}
�&(�
�]�]�4��A�q�!�Q��
7�
9�'}
�*+�
�]�]�4��A�q�!�Q��
7�
9�+}
�.(�
�]�]�4��B��2�r�6�
:�
<�/}
�2+�
�]�]�4��B��2�r�6�
:�
<�3}
�6'�
�]�]�4��A�q�!�Q��
7�
9�7}
�:����t�Q��1�a�8�9�;}
�<�D�M�M�$��1�a��;�<�=}
�>�t�}�}�T�1�a��A�>�?�?}
�@!�$�-�-��a��A�q�!�"D�E�A}
�B��
�
�d�A�q�!�Q�� B�C�C}
�D#�
�]�]�4��A�q�!�Q��
7�
9�E}
�H#�
�]�]�4��A�q�!�Q��
7�
9�I}
�L%�
�]�]�4��A�q�!�Q��
7�
9�M}
�P%�
�]�]�4��A�q�!�Q��
7�
9�Q}
�T(�
�]�]�4��A�q�!�Q��
7�
9�U}
�X&�
�]�]�4��A�q�!�Q��
7�
9�Y}
�\&�
�]�]�4��A�q�!�Q��
7�
9�]}
�`'�
�]�]�4��A�q�!�Q��
7�
9�a}
�d��
�
�d�A�q�1�2�e}
�f�4�=�=��r�2�r�1�=�>�g}
�h�D�M�M�$��1�b�!�<�=�i}
�j�4�=�=��r�2�r�1�=�>�k}
�l�D�M�M�$��B��A�>�?�m}
�n�4�=�=��r�2�q�!�<�=�o}
�p�D�M�M�$��1�a��;�<�q}
�r�4�=�=��r�2�r�1�=�>�s}
�t�D�M�M�$��1�b�!�<�=�u}
�v��
�
�d�A�q�"�b�"� E�F�w}
�x��
�
�d�B��B�� C�D�y}
�z��
�
�d�B��B�� C�D�{}
�|��
�
�d�A�q�"�b�"� E�F�}}
�~��
�
�d�A�q�"�b�"� E�F�}
�@��
�
�d�A�q�"�b�"� E�F�A}
�B��
�
�d�A�q�!�Q�� B�C�C}
�D��
�
�d�A�q�!�Q�� B�C�E}
�F#�D�M�M�$��1�a��A�$F�G�G}
�H!�$�-�-��a��A�q�!�"D�E�I}
�J#�D�M�M�$��1�a��A�$F�G�K}
�L*�
�]�]�4��A�q�!�Q��
7�
9�M}
�P#�D�M�M�$��1�b�"�b�$I�J�Q}
�R*�
�]�]�4��A�r�2�r�5�
9�
;�S}
�V#�D�M�M�$��B��B�$G�H�W}
�X*�4�=�=��r�2�r�2�+N�O�Y}
�Z#�
�]�]�4��A�r�2�r�
2�
4�[}
�^*�
�]�]�4��A�r�2�r�6�
:�
<�_}
�b�
�]�]�4��R��A�c�]�
:�
<�c}
�f&�
�]�]�4��A�q�!�Q�s�]�
;�
=�g}
�j$�
�]�]�4��A�q�!�Q�s�]�
;�
=�k}
�n1�
�]�]�4��A�q�!�Q��s�]�
C�
E�o}
�r �
�]�]�4��A�q�!�H�Y�R�=P�4Q�]�
R�
T�s}
�v(�
�]�]�4��A�q�!�Q�"*�9�1�+=�">��@�
A�w}
�|(�
�]�]�4��A�q�!�Q�"*�9�2�+>�"?��A�
B�}}
�B(�
�]�]�4��A�q�!�Q�s�]�
;�
=�C}
�F&�
�]�]�4��A�q�!�Q�"*�9�1�+=�">��@�
A�G}
�L&�
�]�]�4��A�q�!�Q�"*�9�2�+>�"?��A�
B�M}
�R0�
�]�]�4��A�q�!�Q��s�]�
C�
E�S}
�V/�
�]�]�4��A�q�!�Q��s�]�
C�
E�W}
�Z0�
�]�]�4��A�q�!�Q��s�]�
C�
E�[}
�^/�
�]�]�4��A�q�!�Q��s�]�
C�
E�_}
�b0�
�]�]�4��R��B�s�]�
;�
=�c}
�f/�
�]�]�4��R��B�s�]�
;�
=�g}
�j/�
�]�]�4��A�q�!�Q��s�]�
C�
E�k}
�n0�
�]�]�4��A�q�!�Q��"*�9�R�+@�"A��C�
D�o}
�t#�D�M�M�$��1�a��A�$F�G�u}
�v#�D�M�M�$��1�a��A�$F�G�w}
�x#�D�M�M�$��1�a��A�$F�G�y}
��~$,��I����	��2�2����4�4�Y�?��� � ��2�3�2�$,�2�2�2�s�!-b	�b-
�%b-
c���,PMQMQMQMQMQMQMQMQMQ	MQ
MQMQMQ
MQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQ MQ!MQ"MQ#MQ$MQ%MQ&MQ'MQ(MQ)MQ*MQ+MQ,MQ-MoSFDgoUOUQ.59^tt^2UO[29^tt^2UOO	U2PPP2PPP2Ji	P!)%fhK9h)%fhJ�9h)/r+r1z
2009.04-19T03z
2009-04.19T03z
2009-04-19T0az2009-04-19T03:1a:45z2009-04-19T03:15:4az2009-04-19T03;15:45z2009-04-19T03:15;45z2009-04-19T03:15:4500:00z 2009-04-19T03:15:45.123456+24:30z 2009-04-19T03:15:45.123456-24:30u2009-04-10ᛇᛇᛇᛇᛇ12:15u2009-04�10T12:15u2009-04-10T12�15z2009-04-19T1z2009-04-19T12:3z2009-04-19T12:30:4z2009-04-19T12:z2009-04-19T12:30:z2009-04-19T12:30:45.z2009-04-19T12:30:45.123456+z2009-04-19T12:30:45.123456-z!2009-04-19T12:30:45.123456-05:00az2009-04-19T12:30:45.123-05:00az2009-04-19T12:30:45-05:00az2009-04-19T24:00:00.000001z2009-04-19T24:00:01.000000z2009-04-19T24:01:00.000000z2009-04-32T24:00:00.000000z2009-13-01T24:00:00.000000z9999-12-31T24:00:00.000000z2009-04-19T12:30Z12:00z2009-04-19T12:30:45:334034z2009-04-19T12:30:45.400 +02:30z2009-04-19T12:30:45.400 z2009-04-19T12:30:45. 400z2009-04-19T12:30:45+00:90:00z2009-04-19T12:30:45+00:00:90z2009-04-19T12:30:45-00:90:00z2009-04-19T12:30:45-00:00:90z	2020-2020z2009-04-19T12:30:45.+05:00z2009-04-19T12:30:45.-05:00z2009-04-19T12:30:45.Zz2009-04-19T12:30:45,+05:00�r��r]r�rrir�r�s&  r)�!test_fromisoformat_fails_datetime�.TestDateTime.test_fromisoformat_fails_datetime�sP��/
��/
��/
�
�/
�
�	/
�

�/
�
"�
/
�
"�/
�
"�/
�
"�/
�
'�/
�
/�/
�
/�/
�
-�/
�
$�/
�
$�/
� 
�!/
�"
�#/
�$
!�%/
�&
�'/
�(
 �)/
�*
#�+/
�,
*�-/
�.
*�//
�0
0�1/
�2
-�3/
�4
)�5/
�6
)�7/
�8
)�9/
�:
)�;/
�<
)�=/
�>
)�?/
�@
)�A/
�B
%�C/
�D
)�E/
�F
-�G/
�H
'�I/
�J
'�K/
�L
+�M/
�N
+�O/
�P
+�Q/
�R
+�S/
�T
�U/
�V
)�W/
�X
)�Y/
�Z
$�[/
�\
)�]/
��b �G����g��.�.��&�&�z�2�2��M�M�/�/��8�3�/�.� �2�2��/�.�.�s0�C#	�C
�:C#	�C �C �C#	�#C4
�,C4
c�Z�[OQ2o,QNoSFDhoUOUQ59^tt^2UO[U29^tt^2UO
O
U2PPP2PPP2Jj	UO[29^tt^2oUO
O
Q2PPP2UOQ[WO22P!)%fhK�9h)%fhJ�9h)%fhK^9h)r�r�z2009-04-32T24:00:00r�)z2009-04-01T12:30:90z2009-04-01T12:90:45z2009-04-01T25:30:45z2009-00-01T24:00:00z2009-13-01T24:00:00z9999-12-31T24:00:00)r�r�r]r�rrir�r�r7r�r�)r(r�r�r�r�s&    r)�,test_fromisoformat_fails_datetime_valueerror�9TestDateTime.test_fromisoformat_fails_datetime_valueerror�s����*�*�
)�
��
�� �G����g��.�.��+�+�J��@�@��M�M�/�/��8�A�/�.� ��
�
�z�
*�
*�c��M�M�'�'�(=�>�+��
�
�N�QT�UX�Ub�Ub�Qc�d�
A�@��/�.�.��
+�
*�sA�D	�C3
�7D	�(D�3D�<D�>D	�D
�D
�D*	�#D*	c���QoUO[[O[	U2229^tt^2UO
O
U2PPP2P!)%fhP!9h)u2018-01-03�01:0113)r�rr��escaper�rir�)r(rs& r)�"test_fromisoformat_fails_surrogate�/TestDateTime.test_fromisoformat_fails_surrogate�sK��*��
�
#�
#�J��	�	�$�u�+�0F�
G�
G��M�M�'�'��.�H�
G�
G�
G�s�A%�%A6	�.A6	c��QoUOOU2oUOUO[O
2P!)z2014-04-19T13:21:13+00:00)rir�r/rrr0)r(r�r{s&  r)�test_fromisoformat_utc�#TestDateTime.test_fromisoformat_utc�s1��,��
�]�]�
(�
(��
0���
�
�b�i�i����.r,c�<�QFD�oUOUQ59^tt^2[[UQ52oUOQ]]]]"]8UQ5oUOO	UO22oUO
UO2[UQ52UO
VC2UOUO[O2PPP2J�	[[]]]QQ52oUOQ]]]]"]8UQ5oUOO	UO22oUO
UO2UOP22UO
VC2QFDioUOUQ59^tt^2UOUOO	U2O[O2PPP2Jk	P!)%fhCJ9h)%fhJ�9h)	r$r
r�rr�rWr�)r$r�rVi���)z2020-06-15T12:34:56+00:00z#2020-06-15T12:34:56+00:00:00.000000z2020-06-15T12:34:56Z)r]rrrir�r�r'r|rrr0r/)r(r�r�r{�rtr�s&     r)�'test_fromisoformat_utc_subsecond_offset�4TestDateTime.test_fromisoformat_utc_subsecond_offset�s���+�B����2��.�.��i�R�8�9���]�]�4��B��B��2�]�F���]�]�0�0�����@��� � �������1K�L�� � ��(�� � ����H�L�L�9�
/�.�+��i�a��R�-3�5�6��
�]�]�4��B��B��2�]�
>��
�]�]�
(�
(�����
8������������d�);�<����� �-�D����4��(�(��
�
�d�m�m�9�9�$�?�F�F�&�l�l�,�)�(�-�/�.�.��$)�(�(�s%�B<G5	�#AH
	�5H
�>H
�
H
�H
c��QQUO2oUQ]]]	]]-Q[[]
]-Q52Q5oUOUO	22oUOV#2UO
V12P!)c��\sQsQsQsP!)�BTestDateTime.test_fromisoformat_subclass.<locals>.DateTimeSubclassi�r]rr]r,r)rxr��rar,rxr�i��rr)rirrr�r�r'r�)r(rxr{r�s&   r)r��(TestDateTime.test_fromisoformat_subclass�sp��	�t�}�}�	��d�B��A�r�2�v�%-�i�b�"�.M�%N�P��!�.�.�r�|�|�~�>������#����e�6r,c��[Q]]2oUO[U2Q2[Q]
]
Q5oUO[U2Q2[Q]
]]Q5oUO[U2Q2P!)rr�z"SubclassDatetime(2014, 1, 1, 0, 0)r�rz$SubclassDatetime(2010, 10, 10, 0, 0)�r�z&SubclassDatetime(2010, 10, 2, 0, 0, 3))r"r'r�rs& r)r�TestDateTime.test_repr_subclasssm��
�d�A�q�
)������b��#G�H�
�d�B�B�
/������b��#I�J�
�d�B��!�
4������b��#K�Lr,c��QoUOUOOUQ2UOOUQ22P!)z15:00:00z%T�%H:%M:%Sr)r(�	test_times& r)�test_strptime_T_format�#TestDateTime.test_strptime_T_formatrr,r])OrIr^r_r`rrir�r*r%r�rNr�r[r_rmr7r�r�r�r�r�r
r�r�rbr�r�r�run_with_tzr�r�rBr�r�r��unittest�skipIfrG�platformr�r�rjr�r�r�rr�rr�r�r,r1r6rBrFrIrLrwr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�rarbrcs@r)r$r$�sC�����H�,�
/�&� *H�X6�<5�:L� #�$	7�3?�j$�.B4�HC�'�C�4�$'�B6�
2�;�
2�"
���3�4�D�5�D�6	;�
����"�&2�#�&2�P
����"�,2�#�,2�\
����"�,2�#�,2�\5�&�_�_�S�\�\�W�,�.U�V�%4�W�%4�N�_�_�S�\�\�W�,�.U�V�(;�W�(;�T&�*�+�
M�
H�"@@�D'� >�D=�&	1�*�,	?�B�6;�
 '�DE�4
���� �#�!�#�@:�632�j.�81�(e�,!0�F,�2,�"	,�4�4G3�R69�pe�0/�/�,�4
7�M�
�
r,r$c�V`�\sQsQsn\s\OQ2Q2sQs	Us
P!)�TestSubclassDateTimeiznot appropriate for subclassesc��P!r.r]r1s&r)r%�#TestSubclassDateTime.test_roundtrips��r,r])rIr^r_r`r"rir��skipr%rarbrcs@r)rrs&�����H�
�]�]�3�4�
�5�
r,rc��\sQsQs]sQsP!)�SubclassTimei r]r�r]r,r)rr r�r,rc��`�\sQsQsn\sQsQsQsQs	Qs
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQsQsQsQsQsQsQsQsQsQs Qs!Qs"Us#P!)�TestTimei#c��UO]]2oUOUO]2UOUO]2UOUO]2UOUO
]2P!)r#�rir'rr�r�rr�s& r)r��TestTime.test_basic_attributes'sb���M�M�"�a� ���������$�������1�%�������1�%��������*r,c��UO]];];Q2oUOUO]2UOUO];2UOUO];2UOUO
Q2P!)r#r)r
r�s& r)r*�&TestTime.test_basic_attributes_nonzero.sh��
�M�M�"�b�"�d�+���������$�������2�&�������2�&��������-r,c�N�UO]]]]2o[U2oUOUQ2UQ*o[U2oUO	V2UOUO
UOUOUO2oUO	V2P!r)	rir�r"r�r'rr�r�r)r(r�r#r�s&   r)r%�TestTime.test_roundtrip7s����M�M�!�Q��1�%��
��G�����a��-�
�b�E��
�!�W��������]�]�1�6�6�1�8�8�Q�X�X��=�=�*������r,c�.``�,Q
NoUOUnUOUoUORU2UORU6*2UORU6�2UORU6g2UORU62UORU6�2[	[U22FCDoUQ*oV*]*VC$UOUoUORU62UOUR6�2UORU6*2UOUR6�2UORU6g2UOUR6g2UORU6H2UOUR6H2UORU6�2UOUR62UORU6�2UOUR6*2CJ"	[FCD0nUORR6HP
2UORR6gP	2UORR6HP
2UORR6gP	2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Q	k2CJ3	P!)r$r?c�:�RR6*!r.r]r�s��r)rr�)TestTime.test_comparing.<locals>.<lambda>hr�r,c�:�RR6!r.r]r�s��r)rrrir�r,c�:�RR6�!r.r]r�s��r)rrrjr�r,c�:�RR6�!r.r]r�s��r)rrrkr�r,c�:�RR6*!r.r]r�s��r)rrrlrr,c�:�RR6!r.r]r�s��r)rrrmrr,c�:�RR6�!r.r]r�s��r)rrrnrr,c�:�RR6�!r.r]r�s��r)rrrorr,�r$r�r�r)	rir'r?r@r�r�rr�r�)r(r�r�r�rKr�r�s&    @@r)�test_comparing�TestTime.test_comparingFsv�����
�]�]�D�
!��
�]�]�D�
!������R� �����b��!�����b��!�����r��"�����b��!�����b��!��s�4�y�!�!�A��1�g�G���1��G�J�����(�B��O�O�B��G�$��O�O�B��G�$��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%��O�O�B�"�H�%����R�2�X�&����R�2�X�&����R�"�W�%����R�"�W�%����R�2�X�&����R�2�X�&�"�"!�j�F����R�6�\�5�1����R�6�\�4�0����V�r�\�5�1����V�r�\�4�0����i�)=�>����i�)<�=����i�)<�=����i�)=�>����i�)=�>����i�)<�=����i�)<�=����i�)=�>�!r,c�`�UO]]2UO]]2UO[UOP]2UO[UO]]2UO]]2UO]];2UO[UO]P2UO[UO]]<2UO]];]2UO]];];2UO[UO]];P2UO[UO]];]<2UO]];];]2UO]];];Q2UO[UO]];];P2UO[UO]];];Q2P!)r	rVr�)rir�rr1s&r)r7�'TestTime.test_bad_constructor_argumentsqsJ���
�
�a����
�
�b�!�����*�d�m�m�R��;����*�d�m�m�R��;��
�
�b�!���
�
�b�"�����*�d�m�m�R��<����*�d�m�m�R��<��
�
�b�"�a� ��
�
�b�"�b�!����*�d�m�m�R��R�@����*�d�m�m�R��R�@��
�
�b�"�b�!�$��
�
�b�"�b�&�)����*�d�m�m�R��R��D����*�d�m�m�R��R��Ir,c��UO]]]2oUO]]]2oUOV2UO[U2[U22U]-o]V2$UO[U2]2UOV1*]2UOV2*]2UO]]]2oUO]]]2oUOV2UO[U2[U22U]-o]V2$UO[U2]2UOV1*]2UOV2*]2P!)rr;r<s&   r)r��TestTime.test_hash_equality�s&���M�M�"�b�"�%���M�M�"�b�"�%�����������a��$�q�'�*��!�f���������S��1�%�������#�������#��M�M�!�a��$���M�M�!�a��$�����������a��$�q�'�*��!�f���������S��1�%�������#�������#r,c�f	�UO]]]]{2oUOUO2Q2UOUO2[U22UO2oUOUO2Q2UOUO2[U22UO]Q5oUOUO2Q2UOUO2[U22UO]
Q5oUOUO2Q2UOUO2[U22UO]dQ5oUOUO2Q2UOUO2[U22UOQQ5oUOUO2Q2UOUO2[U22UOQ	Q5oUOUO2Q
2UOUO2[U22UOQQ5oUOUO2Q2UOUO2[U22UO]]"]8Q
Q5oUOUOQQ5Q2UOUOQQ5Q2UOUOQQ5Q2UOUOQQ5Q2UOUOQQ5Q2UOUOQQ5Q2UO	[
UOQQ5UO	[
UOQQ5UO]]"]8QQ5oUOUOQQ5Q2UO]]"]8]Q5oUOUOQQ5Q2UOUOQQ5Q 2UOUOQQ5Q2P!)!rz04:05:01.000123�00:00:00r�z00:00:00.000001z00:00:00.000010z00:00:00.000100r�z00:00:00.001000r�z00:00:00.010000順z00:00:00.100000r�)rr�r�rr�r0�12rjz12:34r
z12:34:56r�z12:34:56.123rz12:34:56.123456r2�monkeyr1r5z12:34:56.999z12:34:56.000z12:34:56.000000)rir'r�r�r�rr�s& r)r��TestTime.test_isoformat�s����M�M�!�Q��3�'���������(9�:���������A��/��M�M�O���������
�3���������A��/��M�M�a�M�(���������(9�:���������A��/��M�M�b�M�)���������(9�:���������A��/��M�M�c�M�*���������(9�:���������A��/��M�M�d�M�+���������(9�:���������A��/��M�M�e�M�,���������(9�:���������A��/��M�M�f�M�-���������(9�:���������A��/��M�M�r�"�R�V�M�L��������g��6��=�������i��8�'�B�������i��8�*�E�������n��=�~�N�������n��=�?P�Q�������f��5�7H�I����*�a�k�k�H��E����*�a�k�k�H��E��M�M�r�"�R�V�M�L��������n��=�~�N��M�M�r�"�R�Q�M�G��������n��=�~�N�������n��=�?P�Q�������f��5�z�Br,c��Q[]Q51Q[]Q51Q[]]Q51Q[]] ]Q51Q[]]]	QQ	51,oQQ
[O1Q
[[]221,oSSTTTTt,tFD*vq4QFDvqVVS*[Vd*21MJ 	J,	toooo*
oUO]]%]	2oQoSFDbvq�UO	U
Q5oV�*oUOU
Q
59^tt^2UO
UO2U2PPP2Jd	P!ttooooh)%fhJ�9h)r9r�r:r;rr<rUr=r�rWr>z12:37:09rr?rArBrE)
r(rFrGrpr�rHrI�t_baserKrLr@r�rMs
&            r)rN� TestTime.test_isoformat_timezone�sD��
�i�a�(�)�
�i�a�(�)�
�i�a��4�5�
���R��D�E�
�	��1�a�V\� ]�^�
�	�
�
�x�|�|�$�
�x�	�!��-�.�
��	� )�
� )��� 5����
���� 3�4� 5�
5� )�
�	
�����r�2�q�)����"�K�F����c��*�A��#�C����#��&�&�� � ������4�'�&�#��
�'�&�&�s�;2D9�
!E	�E
�
E
c�p�UO]Q5oUO[UO]Q5P!)r$r�)r4)rir�r�r�r�s& r)�test_1653736�TestTime.test_1653736�s+���M�M��M�#�����)�Q�[�[�a��8r,c��UO]]]]2oUOUOQ2Q2UOUOQ2Q2UOQ2UOQQ5P![cK!h9h)r$z%H %M %S %fz01 02 03 000004r�r�u%H�%Mr�r�)rir'r�r�r�s& r)r��TestTime.test_strftime�s���M�M�!�Q��1�%��������M�2�4E�F�������$5�6�
�C�	�
�J�J�|�$�
	
�
�
�$�
���	"�	��	�s�A>�>	B�B�Bc	���UO]]]]2oUOQ2oUOQ2oUOUOQ2Q2UOUOQ2QUQU02UOUOQ2UQUQ02UOUOQ2Q2UOUOQ2Q2UOUOQ	2QUQU02UOUOQ
2UQUQ02UOUOQ2UQUQ02UOUOQ2Q2UOUOQ
2UQU02UOUOQ2Q2UOUOQ2UQU02UOUOQ2Q2UOUOQ2Q2UOUOQ2QUQU02UOUOQ2UQUQ02QFDIvqEUOUQ59^tt^2UOUOU2U2PPP2JK	P!)%fhJ`9h)r$z%I%p%Zz%Xr9u💻%I%p%Z🐍%Xr:u%I%p%Z💻%X🐍r;r<u�%I%p%Z�%Xu%I%p%Z�%X�u%I%p%Z�%X�r=u%I%p%Z��%Xr>u%I%p%Z����%Xr/z
%I%p%Z%Xz
%I%p%Z%X)r+r?))r�1900)z%Gr0)z%C�19)rz
1900-01-01)rir�r'r])r(r�r@rAr+rps&     r)rB�TestTime.test_strftime_specials����M�M�!�Q��1�%��
�Z�Z��
!��
�Z�Z��
��	
������L�1�<�@�������$B�C�z�RT�QU�U_�`b�_c�Ed�e�������$B�C��t�:�VX�UY�Yc�Ed�e�������H�-�x�8�������H�-�x�8�������$:�;�v�b�T��PR�t�=T�U�������$:�;��t�6�"��V�=T�U�������$:�;��t�6�"��V�=T�U�������N�3�^�D�������$:�;��t�<�PR�t�=T�U�������$>�?�A[�\�������$F�G�B�4�Og�hj�gk�Il�m�������D�)�4�0�������I�.�	�:�������N�3�r�"��R��t�_�E�������N�3��t�2�b�T��_�E�$H��I����	��2�2�� � ����I�!6��A�3�2�$H�2�2�2�s�"K	�K
�K
c�H�UO]]]]2oUOUOP2[U22UO	[
Q29^tt^2UO]{2PPP2QQUO2oU]]]]2oUOUOP2Q2QQUO2oU]]]]2oUOUOP2[U22QFD�oUOUOU2UO
U22UOUOU2UO
U22UOUOU2Q2J�	P!)%fhCK)9h)r$r�c�(`�\sQsQsnQsQsUsP!)�TestTime.test_format.<locals>.Ai,c��Q!r�r]r1s&r)r��'TestTime.test_format.<locals>.A.__str__-r�r,r]r�rcs@r)r�r5,r�r,r�c�(`�\sQsQsnQsQsUsP!)�TestTime.test_format.<locals>.Bi3c��Q!r�r]r�s&&r)r��(TestTime.test_format.<locals>.B.strftime4r�r,r]r�rcs@r)r�r93r�r,r�)z%H %M %Sr�)r(r�r�r�r�r�r�s&      r)r��TestTime.test_format$sE���M�M�!�Q��1�%��������b�)�3�q�6�2�
�
#�
#�I�/E�
F�
F�
�L�L���G�	��
�
�	�
�a��A�q�M��������b�)�3�/�	��
�
�	�
�a��A�q�M��������b�)�3�q�6�2��C����Q�\�\�#�.��
�
�3��@����Q�\�\�#�.��
�
�3��@����Q�\�\�#�.��4�	�#G�
F�
F�s�F�F!	�F!	c
���UO[UO]]]]22Q2UO[UO]
]]Q22Q2UO[UO]]]Q22Q2UO[UO]]]]22Q2UO[UO]]]]22Q2P!)r$z01:02:03.000004r2z10:02:03.004000rz00:02:03.400000z12:02:03z23:15:00)r'r�rir1s&r)r��TestTime.test_str?s�������T�]�]�1�a��A�6�7�9J�K�����T�]�]�2�q�!�T�:�;�=N�O�����T�]�]�1�a��F�;�<�>O�P�����T�]�]�2�q�!�Q�7�8�*�E�����T�]�]�2�r�1�a�8�9�:�Fr,c
�J�QUOO*oUO[UO]]]]22QU*2UO[UO]
]]Q22QU*2UO[UO]]]Q22QU*2UO[UO]]]]22QU*2UO[UO]]]]22QU*2P!)rz%s(1, 2, 3, 4)r2z%s(10, 2, 3, 4000)rz%s(0, 2, 3, 400000)z%s(12, 2, 3)z
%s(23, 15)rrs& r)r��TestTime.test_reprFs����T�]�]�3�3�3������d�m�m�A�q�!�Q�7�8�)�D�0�	2�����d�m�m�B��1�d�;�<�-��4�	6�����d�m�m�A�q�!�V�<�=�.��5�	7�����d�m�m�B��1�a�8�9�'�$�.�	0�����d�m�m�B��A�q�9�:�%��,�	.r,c��[]Q5oUO[U2Q2[]]Q5oUO[U2Q2[]]]Q5oUO[U2Q2[]]]Q5oUO[U2Q2[]]]Q5oUO[U2Q	2P!)
rrzSubclassTime(1, 0))rr�zSubclassTime(2, 30))rr�r�zSubclassTime(2, 30, 11))r�r�rqzSubclassTime(0, 30, 11)zSubclassTime(0, 30, 11, fold=1))rr'r�rs& r)r�TestTime.test_repr_subclassSs���
�q�
!������b��#7�8�
�q��
,������b��#8�9�
�q��B�
7������b��#<�=�
��B�Q�
7������b��#<�=�
��B�Q�
7������b��#D�Er,c��UOUOOUO2UOUOOUO2UOUOO[
2UO
UOOUOO6�2P!r.)r�rir�r�r(rr?r1s&r)r)�TestTime.test_resolution_info`s}�����d�m�m�/�/����?����d�m�m�/�/����?����d�m�m�6�6�	�B�����
�
�)�)�D�M�M�,=�,=�=�>r,c��QoUOUo[FD9vq4oUOV%2oUOU2oUO	V'2J;	UO	UO2UO
]22P!�r��r�r�r�r�r�r�s&       r)r��TestTime.test_picklingfst�� ���}�}�d�#��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+�*8�	
������*�D�,>�,>�q�,A�Br,c���Qo[Uo[FDXvq4oUOV%2oUOU2oUO	V'2UO[
U[22JZ	P!rF)rr�r�r�r'r?rkr�s&       r)�test_pickling_subclass_time�$TestTime.test_pickling_subclass_timeos_�� ���T�"��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+��O�O�J�w��=�>�	*8r,c�"�,QNo[U2FDevovq4UOUQ59^tt^2UOUo[FDoUUQQ5oUO	Vu2J 	PPP2Jg	P!)%fhJ|9h)�,cdatetime
time
(S'\x14;\x10\x00\x10\x00'
tR.)r�rr))rMrG)scdatetime
time
(U;tR.rG)s�cdatetime
time
U;�R.rG)s,cdatetime
time
(S'\x14;\x19\x00\x10\x00'
tR.�r�r�r�r�)scdatetime
time
(U;tR.rN)s�cdatetime
time
U;�R.rN)rEr]rirr')r(rnr�r	r�rpr�r�s&       r)r
�TestTime.test_compat_unpicklexsw��

�� )��/�O�A�|�������"�"��=�=�$�/��)�\�E�#�D�8�<�G��$�$�W�7�*�#�"� 0�"�"�"�s�;A=	�=B
�B
c	��UO]
]]/Q2QQ1UO]
]]/Q2QQ1UO]
]]/Q2QQ1,oSFDzvq#oUOV4Q59^tt^2UOOV42oUOV%2UO	[U2UO2PPP2J|	P!)%fhJ�9h)	r�i�z13:02:47.197z%H:%M:%S.%fu13:02�47.197u
%H:%M�%S.%fu13�02:47.197u
%H�%M:%S.%fr�)rir]r�r'r/r�r�s&     r)r��TestTime.test_strptime�s����]�]�2�q�"�f�
-�~�}�M�
�]�]�2�q�"�f�
-�/B�DV�W�
�]�]�2�q�"�f�
-�/B�DV�W�
��
)/�$�H�f����V��;�;��m�m�,�,�V�<��� � ��/��
�
�d�3�i����7�<�;�)/�;�;�;�s�)AC		�	C
�C
c�n�UOOoUOUQQ2O2][*2UOUQQ2O2Q[*2UOUQQ2O2[]]]Q5'2UOUQQ2O2][*][**2UOUQQ2O2]
[*][**'2UOUQQ2O2[]]
Q	5'2QQ[O'[O]*11FD�vq#U]6cQoU'oLQoSo[U]<*]<2vqgQ
OVFVs2oUOUQ59^tt^2UUQ2o	UOU	O2[UQ52UOU	O2U2UO[U	2UO2PPP2J�	QQq�UV�2o	UOU	O2][*]"[**2UOU	O2Q
2UOU	OU
2U2UOUQ
Q2O P2P!)%fhCJ�9h)rrrrrr	r
rrrrrCrDr
r�rrrrlrTrr)rir�r'r|rrr$r�rr�r�r�r]r/r�r�r)r(r�rr�rIr
r�rjr�r�r�s&          r)�test_strptime_tz�TestTime.test_strptime_tz�s����=�=�)�)������'�4�0�:�:�<�a�&�j�I�����'�4�0�:�:�<�b�6�k�J�����'��.�8�8�:�
�q�!�!�
<�<�	
�	
����(�E�2�<�<�>��T��A��J�.�	0�����(�E�2�<�<�>���9�q�6�z�1�2�	4�����"3�U�;�E�E�G�#�A�B�?�?�	A�#-�j�#(�>�>�/�5�<�<��?�!C�"E��I��1�}���$�*����#��#�G�R�K��4�N�E�&�-�-�d�7�K�D����4��(�(��T�7�+��� � �����	�)�0L�M�� � �����V�4��
�
�d�1�g�t�}�}�5�	)�(�"E�" ��c��T�����������T�	�B��K�(?�@��������U�+�������C��$�/�	
����%��.�5�5�t�<�)�(�(�s�/A9L"	�"L4
�+L4
c	�r�QFD�oUO[29^tt^2UOOUQ2PPP2UO[29^tt^2UOOUQ2PPP2J�	P!)%fhKX9h)%fhJ�9h)rrr
)rrrz24:00)r�rrir�)r(�tzstrs& r)�test_strptime_errors�TestTime.test_strptime_errors�st��4�E��"�"�:�.�.��
�
�&�&�u�d�3�/��"�"�:�.�.��
�
�&�&�u�e�4�/�.�5�.�.��.�.�.�s#�B	�'B%	�B"
�B"
�%B6
�.B6
c
�V�UO]]]2oQQQU1QQQU1QQQU1QQ	Q
U1,oSFDcvq4qVQU*oUOUUUUQ59^tt^2UOOVE2oUOVvUQ
5PPP2Je	P!)%fhJz9h)rr!z4:05:06r�r"z04:5:06r#z04:05:6r$z	4am:05:06z
%I%p:%M:%Sr�r�r�r*)r(r�r�r�r�r�r�r�s&       r)r��#TestTime.test_strptime_single_digit�s����M�M�!�Q��"��
�9�
�a�0�
�9�
�a�0�
�9�
�a�0�
�;��a�0�	
��/5�*�F�F�)�F�2�F����V�%+�%+�%+��-�-��-�-�0�0��@��� � ��f� �=�-�-�/5�-�-�-�s�/B	�B(
� B(
c�>�UOoUOU]22UOU]]22UOU]]]22UOU]]]]22UOU]22UOU22P!r�)rir?)r(rGs& r)rH�TestTime.test_bool�su���m�m������A�������A�q�	�"�����A�q�!��%�����A�q�!�Q��(�����A��������r,c
��UOo,QNoUUoUOUO2U2UO[OU2U2Qo[	U2FDivovqgUQ*oVxU$UUo	UOUOQ	-Vg-@U	2UO[OU1-Vg-@U	2Jk	U]2oUO[UO]Q5UO[UOPQ5UO[UO]dQ5UO[UOQQ5UO[[OU]Q5UO[[OUPQ5UO[[OU]dQ5UO[[OUQQ5P!)
r$r?r�r�r�r�r�r)rLrMrNrOr]rDrFs
&         r)rL�TestTime.test_replace�s����m�m�����D�z����������.�������d�+�T�2�'��"+�7�!3��A�~���1�g�G��A�J��G�}�H����T�\�\�;�T�N�;�X�F����T�\�\�$�A�4�.�A�8�L�"4��1�v�����*�d�l�l���<����*�d�l�l�2��>����*�d�l�l�3��?����*�d�l�l���H����*�d�l�l�D�r��B����*�d�l�l�D���D����*�d�l�l�D���E����*�d�l�l�D�g��Nr,c	�`�U1QkQRO2oU]]2oU]]]Q5oQUO]
Q5]1QUO]
Q5]1Q[OU]
Q5]1Q[OU]
Q5]1,oSFD�vqVoROVWQ59^tt^2RO	[U2U2RO
UO]
2RO
UO]2RO
UO]2RO
UOU2PPP2J�	P!)%fhJ�9h)c�0:`�\sQsQsnU1QksQsUsP!)�4TestTime.test_subclass_replace.<locals>.TimeSubclassic�Z:�ROOU,UN3-U@o]UmU!rRrSrTs&*, �r)r��<TestTime.test_subclass_replace.<locals>.TimeSubclass.__new__rXr,r]rYrZs@�r)�TimeSubclassrbr[r,rerpr]rr_)rir8rLr]r/r�r'rr�rrq)r(rer��ctime2r�rCr�rqsf       r)r`�TestTime.test_subclass_replaces!���	�4�=�=�	��R��$���b�"�1�-���U�]�]��]�3�Q�7�
�V�^�^��^�4�a�8�
�T�\�\�%�b�9�1�=�
�T�\�\�&�r�:�A�>�	
�
� *�O�D�t����d��.�.��
�
�d�3�i��6�� � ����2�.�� � ����R�0�� � ����A�.�� � ����4�0�/�.� *�.�.�.�s�0BE
	�
E
�E
c�`�U1QkQRO2oQoROUoUU-Q]-@oROUOU2ROUO]*2ROUO]2ROUO2UO22ROUO
Q2UOUO*]*
2P!)c�::`�\sQsQsn]*sU1QksQsQsUsP!)�&TestTime.test_subclass_time.<locals>.Ci c�:�UO2oUOQ2oROOU,UN3-U@oVEmU!rfrgris&*,   �r)r��.TestTime.test_subclass_time.<locals>.C.__new__#rmr,c�J�VO*UO*!r.�rr�ros&&r)rq�.TestTime.test_subclass_time.<locals>.C.newmeth*����y�y�(�4�;�;�6�6r,r]rsrZs@�r)r*rj ������I�
�
7�
7r,r*r)rr>r�rU)	rir'rHrtrr�rqrr�rwsf    r)�test_subclass_time�TestTime.test_subclass_times����	7��
�
�	7����m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Z�Z�*?�!�*C�Dr,c
�d�QoQQ[]2Q1FD1oUO[UOV!Q**2J3	UO	[Q29^tt^2UO[],[
U2*2Q2PPP2P!)%fhP!9h)z2:59.0r�9�ÿr�r�r�)�chrr�r�rir�r�r�)r(rH�	hour_bytes&  r)r��!TestTime.test_backdoor_resistance8s������c�3�r�7�F�2�I����i����)2�"�X�)=�
?�3��
#�
#�I�/G�
H�
H��M�M�%���c�$�i��0�%�8�I�
H�
H�
H�s�'-B�B/	�'B/	r])$rIr^r_r`rrir�r*r%rr7r�r�rNr+r�rBr�r�r�rr)r�rJr
r�rSrWr�rHrLr`rrr�rarbrcs@r)rr#s������H�+�.�
 �)?�VJ�,$�.2C�h5�<9�

 �B�@5�6G�.�F�?�C�?�8�,8�(=�T5�>�$�O�:1�2E�49�9r,rc�@`�\sQsQsnQsQsQsQsQsQs	Us
P!)�
TZInfoBaseiEc��UOoQQ[2oU]]]U2Q5oU[I9%cQ9%fQoUOUO	2U2[U[I9%cQ9%f]*Q5oUOUO
2U2UOUO2U2P!)c�2`�\sQsQsnQsQs\sQsUsP!)�7TZInfoBase.test_argument_passing.<locals>.introspectiveiJc�0�S9%cQ9%fQ!)�real�noner]rzs&&r)r��>TZInfoBase.test_argument_passing.<locals>.introspective.tznameKs��B�M�M�6�,C�,C�V�%Cr,c�D�[S9%c]*9%fQQ5!)r�ri����rrzs&&r)r|�ATZInfoBase.test_argument_passing.<locals>.introspective.utcoffsetLs�� �2�9�9�"�+;�+;��<�<r,r])	rIr^r_r`r�r|r�rarbrcs@r)�
introspectiver~Js����C�
=��Cr,r�rr�r�rir�)rirrr'r�rr|r�)r(rGr��objrps&    r)�test_argument_passing� TZInfoBase.test_argument_passingGs����m�m��	�F�	��!�Q��-�/�2���$�;�)�)�6�3�3�V���������x�0��c�T�k�&9�&9�c�&?�&?�R�A���������(�3��������H�-r,c	�&�UOoUO[U]]]]Q5QQ[2oUO[U]]]UQ5QQ[2oU2oU]]]UQ5oUOUOU2P!)r$rc�.`�\sQsQsnQsQsQsUsP!)�3TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTryi]c��P!r.r]r1s&r)rs�<TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.__init__^���r,c��P!r.r]rzs&&r)r|�=TZInfoBase.test_bad_tzinfo_classes.<locals>.NiceTry.utcoffset_���Tr,r]�rIr^r_r`rsr|rarbrcs@r)�NiceTryr�]�����$�)�)r,r�c�.`�\sQsQsnQsQsQsUsP!)�5TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTryibc��P!r.r]r1s&r)rs�>TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.__init__cr�r,c��P!r.r]rzs&&r)r|�?TZInfoBase.test_bad_tzinfo_classes.<locals>.BetterTry.utcoffsetdr�r,r]r�rcs@r)�	BetterTryr�br�r,r�)rir�r��objectrr/)r(rGr�r�r�r�s&     r)�test_bad_tzinfo_classes�"TZInfoBase.test_bad_tzinfo_classesYs����m�m�����)�S�!�Q��"��=�	*�f�	*�	
���)�S�!�Q��'��B�	*��	*�
�K����1�a��"���
�
�a�h�h��"r,c
��QQ[2oUOoQFD�vq4U[IcU]]]UU2Q5oLU[IcU]]]]]]UU2Q5oU%c�[	U2o[U]<2vqxQU]69%cQ9%fQVx1*o	[
W[2%cUO2oUO[U2QU	*2J�UO[[W2J�	P!)c�.`�\sQsQsnQsQsQsUsP!)�6TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgyijc�*�[UQ5UmP!rh�rrq)r(rqs&&r)rs�?TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.__init__ks��'��7��r,c��UO!r.�rqrzs&&r)r|�@TZInfoBase.test_utc_offset_out_of_bounds.<locals>.Edgy.utcoffsetms���{�{�"r,r�r�rcs@r)�Edgyr�js����
8�
#�
#r,r�rz%c%02d:%02drCrDz01:02:03))�`���F)�a���T)�T)r�F)rrirrr�r�rk�timetzr'r�r�r)
r(r�rGrq�legitr��aofsr&r �tags
&         r)�test_utc_offset_out_of_bounds�(TZInfoBase.test_utc_offset_out_of_boundsis���	#�6�	#��m�m��-�M�F��d�{���1�a��V��5�������1�a��A�q��f��>����6�{���d�B�'���#�v��z�'9�'9�c�'@�'@�S�!�&G�G���a��*�*����
�A�� � ��Q���c�)9�:��!�!�*�c�1�5�%-r,c	�$�UOoQQ[2oU]]]2U]]]PQ5U]]]U2Q51FD`oUOUO22UOUO	22UOUO22Jb	QQ[2oU]]]U2Q5oUO
UO2[QQ52UO
UO	2[QQ52UO
UO2Q2QQ	[2oU]]]U2Q5oUO[UO2UO[UO2UO[UO
2Q
Q[2oU]]]U2Q5oUO[UO2UO[UO2QQ
[2oU]]]U2Q5oUO
UO2[]=Q52UO
UO	2[QQ52P!)c�4`�\sQsQsnQsQsQsQsUsP!)�*TZInfoBase.test_tzinfo_classes.<locals>.C1i�c��P!r.r]rzs&&r)r|�4TZInfoBase.test_tzinfo_classes.<locals>.C1.utcoffset�r[r,c��P!r.r]rzs&&r)r��.TZInfoBase.test_tzinfo_classes.<locals>.C1.dst�rfr,c��P!r.r]rzs&&r)r��1TZInfoBase.test_tzinfo_classes.<locals>.C1.tzname�s��r,r]�	rIr^r_r`r|r�r�rarbrcs@r)�C1r��s����0�*�-�-r,r�rc�4`�\sQsQsnQsQsQsQsUsP!)�*TZInfoBase.test_tzinfo_classes.<locals>.C3i�c��[QQ5!)r�rir�rrzs&&r)r|�4TZInfoBase.test_tzinfo_classes.<locals>.C3.utcoffset�s��I�e�,D�%Dr,c��[QQ5!)r�rirrzs&&r)r��.TZInfoBase.test_tzinfo_classes.<locals>.C3.dst�s��i��&=�=r,c��Q!��anamer]rzs&&r)r��1TZInfoBase.test_tzinfo_classes.<locals>.C3.tzname�s��r,r]r�rcs@r)�C3r��s����D�=�0�0r,r�r�rir�c�4`�\sQsQsnQsQsQsQsUsP!)�*TZInfoBase.test_tzinfo_classes.<locals>.C4i�c��Q!r�r]rzs&&r)r|�4TZInfoBase.test_tzinfo_classes.<locals>.C4.utcoffset�s��Gr,c��]!rRr]rzs&&r)r��.TZInfoBase.test_tzinfo_classes.<locals>.C4.dst�rnr,c��]!r�r]rzs&&r)r��1TZInfoBase.test_tzinfo_classes.<locals>.C4.tzname�s��r,r]r�rcs@r)�C4r��s����3�'�*�*r,r�c�.`�\sQsQsnQsQsQsUsP!)�*TZInfoBase.test_tzinfo_classes.<locals>.C6i�c��[QQ5!)rSr�i��rrzs&&r)r|�4TZInfoBase.test_tzinfo_classes.<locals>.C6.utcoffset�s��I�C�,@�%@r,c��[]Q5!)rSr�rrzs&&r)r��.TZInfoBase.test_tzinfo_classes.<locals>.C6.dst�s��i�b�&9�9r,r]r^rcs@r)�C6r��s����@�9�9r,r�c�.`�\sQsQsnQsQsQsUsP!)�*TZInfoBase.test_tzinfo_classes.<locals>.C7i�c��[]=Q5!)�=r
rrzs&&r)r|�4TZInfoBase.test_tzinfo_classes.<locals>.C7.utcoffset�s��I�2�,F�%Fr,c��[QQ5!)�Qr
���rrzs&&r)r��.TZInfoBase.test_tzinfo_classes.<locals>.C7.dst�s��i�S�&A�Ar,r]r^rcs@r)�C7r��s����F�A�Ar,r�r
r�r�)rirr,r|r�r�r'rr�r�r)r(rGr�r�r�r�r�r�s&       r)�test_tzinfo_classes�TZInfoBase.test_tzinfo_classes�s����m�m��	.��	.��a��A�,��a��A�d�+��a��A�b�d�+�-�A�
���a�k�k�m�,����a�e�e�g�&����a�h�h�j�)�-�	1��	1�
��1�a���%���������	�%�(@�A��������)�D�"9�:��������W�-�	+��	+�
��1�a���%�����)�Q�[�[�1����)�Q�U�U�+����)�Q�X�X�.�	:��	:�
��1�a���%�����*�a�k�k�2����*�a�e�e�,�	B��	B�
��1�a���%���������	�r�(B�C��������)��"=�>r,c
�T�UOoQQ[2oU]]	]
U2Q5oUO]Q5oUO]	Q5oUO]Q5oVEU1FDmoVEU1FDao[[[
[[[1FD9o	U	Vx2o
U	UOUO2oUOV�2J;	Jc	Jo	U[Ic�UO]U2Q5oUO]	U2Q5oUO]U2Q5oVEU1FDqoVEU1FDeoVx6�Vx6*
o
VtIfVuIcV�IfV�Ic]oL-Xxt9IcUIcLL]oLVvIcPoLUOV�2]oUOV�2Jg	Js	P!P!)c�(`�\sQsQsnQsQsUsP!)�=TZInfoBase.test_aware_compare.<locals>.OperandDependentOffseti�c�j�UO]
6c[UOQ5![];Q5!��
ri�r�rr�s&&r)r|�GTZInfoBase.test_aware_compare.<locals>.OperandDependentOffset.utcoffset��)���8�8�b�=�$�Q�X�X�6�6�%�R�0�0r,r]r�rcs@r)�OperandDependentOffsetr�������
1�
1r,r�rr^�r�r)
rirr8rrrrrrr�r'rr/)r(rGr�rH�d0rmr�r�r�opr�rps&           r)�test_aware_compare�TZInfoBase.test_aware_compare�s����m�m��	1�V�	1��1�a��$:�$<�=��
�\�\��\�
#��
�\�\��\�
#��
�\�\��\�
$�����A��R�Z���b�"�b�"�b�0�B��Q�(�C�!�!�(�(�A�H�H�5�H��$�$�S�3�1� ���d�?����Q�/E�/G��H�B����Q�/E�/G��H�B����R�0F�0H��I�B��R�Z�����A��5�Q�U�+�C���1�7���A�G�#$����2��#$����#%���
�
�a�,�#$���$�$�S�3�$� �	r,r])rIr^r_r`r�r�r�r�r�rarbrcs@r)r{r{Es$����.�$#� 6�8.?�`-4�-4r,r{c�`�\sQsQsn\sQsQsQsQs	Qs
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQsQsUsP!)�
TestTimeTZi�c�>�UO2oUOUO]2UOUO]2UOUO]2UOUO
]2UO
UO2P!r�)rir'rr�r�rr,rr�s& r)�
test_empty�TestTimeTZ.test_empty�so���M�M�O���������#�������1�%�������1�%��������*����!�(�(�#r,c�
``�[Q$Q]2o[]QQ%2o[]<Q]2o[]]/UQ5o[]]/UQ5o[]
]/UQ5o[](Q5n[](UQ5nUOUOU2UOUOU2UOUOU2UO	RO2UOROU2UOUO2[
Q$Q52UOUO2[
]Q52UOUO2[
]<Q52UO	RO22UO[UO
Q2UOUO2Q2UOUO2Q2UOUO2Q2UO	RO22UO[UOQ2UOUO2[
]Q52UOUO2[
Q%Q52UOUO2[
]Q52UO	RO22UO[UOQ2UO[U2[U22UO[U2[U22UO[U2[U22UOVE2UOVF2UOVV2UORR2UO[UU1Q	k2UO[UU1Q
k2UO[U2Q2UO[U2Q2UO[U2Q
2UO[R2Q2UO[R2Q2UOUO2Q2UOUO2Q2UOUO2Q
2UORO2Q2UORO2Q2QoUO[U2UQ*2UO[U2UQ*2UO[U2UQ*2UO[R2UQ*2UO[R2UQ*2UOUO!Q2Q2UOUO!Q2Q2UOUO!Q2Q2[Q&Q2o[]];UQ5oUOUO!Q2Q2QQ[2o	[]]]U	2Q5o
UOU
O!Q 2Q!2UO[U
O Q"2Q#U	mUOU
O!Q"2Q#2P!)'r�r�r�METrr�r�rizno argsc�:�RR6!r.r]�rY�t5s��r)rr�'TestTimeTZ.test_zones.<locals>.<lambda>rtr,c�:�RR6!r.r]r�s��r)rrr�rtr,z07:47:00-05:00z12:47:00+00:00z13:47:00+01:00z00:00:00.000040z00:00:00.000040+00:00z
datetime.timez(7, 47, tzinfo=est)z(12, 47, tzinfo=utc)z(13, 47, tzinfo=met)z
(0, 0, 0, 40)z(0, 0, 0, 40, tzinfo=utc)z%H:%M:%S %%Z=%Z %%z=%z %%:z=%:zz#07:47:00 %Z=EST %z=-0500 %:z=-05:00z%H:%M:%S %Z %z %:zz12:47:00 UTC +0000 +00:00z13:47:00 MET +0100 +01:00z%z %Z %%z%%Zz%H:%M %%Z='%Z' %%z='%z'z"23:59 %Z='%z %Z %%z%%Z' %z='-2359'c�,`�\sQsQsn]*sQsQsUsP!)�(TestTimeTZ.test_zones.<locals>.Badtznamei<c��UO!r.rVrzs&&r)r��/TestTimeTZ.test_zones.<locals>.Badtzname.tzname>s
�����.r,r])rIr^r_r`r�r�rarbrcs@r)�	Badtznamer<s�����B�0�0r,rr�z02:03:04rlr1r�rTr�)rfrr'rr,r|rr�r�r�r�r�rr�r�r�r�r�)
r(�estr0�metr�r�rXr��yuckrr�rYr�s
&          @@r)�
test_zones�TestTimeTZ.test_zones�s2����$��q�)���!�U�B�'���"�e�Q�'��
�1�b��
%��
�"�b��
%��
�"�b��
%��
�b�
!��
�b��
-��������C�(�������C�(�������C�(����"�)�)�$�������C�(���������4�)@�A���������1�)=�>���������2�)>�?����"�,�,�.�)����)�R�\�\�9�=��������e�,��������e�,��������e�,����"�)�)�+�&����)�R�Y�Y�	�:��������9�Q�#7�8��������9�R�#8�9��������9�Q�#7�8����"�&�&�(�#����)�R�V�V�Y�7�����b��4��8�,�����b��4��8�,�����b��4��8�,����� ����� ����� ����B��#����)�_�5����)�_�5�����R��"2�3�����R��"2�3�����R��"2�3�����R��"3�4�����R��"9�:��������)9�:��������)9�:��������)9�:��������):�;��������)@�A�������b��1�'<�#<�=�����b��1�'=�#=�>�����b��1�'=�#=�>�����b��1��#6�7�����b��1�'B�#B�C�������%F�G�%J�	L�������%9�:�<W�X�������%9�:�<W�X��5�.�1��
�"�b��
&��������%>�?�%I�	K�	1��	1�
��A�q���-��������J�/��<����)�Q�Z�Z��6� �	��������D�)�8�4r,c
��UO]]]][QP2Q5oUO]]]][QP2Q5oUO[U2[U22UO]]:]]d[QP2Q5oUO]]0]]d[QP2Q5oUO[U2[U22P!)r	r�ri�i���i���)rirfr'r�r�s&  r)�test_hash_edge_cases�TestTimeTZ.test_hash_edge_casesGs���
�]�]�1�a��A�k�$��.C�]�
D��
�]�]�1�a��A�k�$��.C�]�
D������b��4��8�,�
�]�]�2�r�1�c�+�e�R�2H�]�
I��
�]�]�2�r�1�c�+�e�R�2H�]�
I������b��4��8�,r,c	��QoUOUo[FD9vq4oUOV%2oUOU2oUO	V'2J;	UO	UO2UO
]22[QQ2oUO]]]UQ5o[FD�vq4oUOV%2oUOU2oUO	V'2UOUO[2UO	UO2[QQ52UO	UO2Q2J�	UO	UO2UO
]22P!)r�r�rrirGr�)
rir�r�r�r'r�r�r�r�rr|rr��	r(r�r�r�r�r�r�r��tinfos	&        r)r��TestTimeTZ.test_picklingQsA�� ���}�}�d�#��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+�*8�	
������*�D�,>�,>�q�,A�B�%�T�8�4���}�}�Q��1�U�}�3��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+��!�!�'�.�.�2F�G����W�.�.�0�)�D�2I�J����W�^�^�-�x�8�
*8�	
������*�D�,>�,>�q�,A�Br,c��,QNo[QQ2oUO]]]QUQ5oSFD�o[FD�oUUQQ5oUOVc[	U22UOUO[2UOUO2[QQ52UOUO2Q2J�	J�	P!)	��cdatetime
time
(S'\x05\x06\x07\x01\xe2@'
ctest.datetimetester
PicklableFixedOffset
(tR(dS'_FixedOffset__offset'
cdatetime
timedelta
(I-1
I68400
I0
tRsS'_FixedOffset__dstoffset'
NsS'_FixedOffset__name'
S'cookie'
sbtR.r�r�rrrri)rs�cdatetime
time
(U�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
(J����J0KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.s��cdatetime
time
U�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
J����J0K�RU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieub�R.r�)
r�rirr'r�r�rr|rr�)r(rnrrpr	r�r�s&      r)r
�TestTimeTZ.test_compat_unpicklegs���
��.%�T�8�4���=�=��A�q�&��=�?���D�%�����x�8��� � ��D��J�?��%�%�g�n�n�6J�K�� � ��!2�!2�!4�i��6M�N�� � ����!1�8�<�&�r,c�J�UOoU][QP2Q5oUOU2U][QP2Q5oUOU2U][QP2Q5oUOU2U]];[QP2Q5oUOU2P!)r	r�rr�r�)rirfr?)r(rGr�s&  r)�test_more_bool�TestTimeTZ.test_more_bool�s����m�m����+�d�B�/�0���������+�d�B�/�0���������+�c�2�.�/���������B�{�:�r�:�;������r,c
��UOo[]dQ2o[[QQ5Q2o]]]]U,oUUoUOUO	2U2UO[
OU2U2Q
QQQQU11o[
U2FDivovq�UQ*o
V�U$UU
oUOUOQ-V�-@U2UO[
OU1-V�-@U2Jk	UOUO2Q2UO	PQ5oUOUO2UOUO22[
OUPQ5o
UOU
O2UOU
O22UO	UQ5oUOV^2UOUOUO2[
OV�Q5oUOV_2UOUOUO2U]2oUO[UO]Q5UO[UOPQ5UO[UO]dQ	5UO[UOQ
Q5UO[[
OU]Q5UO[[
OUPQ5UO[[
OU]dQ	5UO[[
OUQ
Q5P!)r��+100ri�-200rr?rrr^r�r�r��8���rLrMrNrOr]�
rirfrr'r8rLrEr�r,rr/r�r�r(rG�z100�zm200r�rHrIr�rCrJrKrp�base2�base22�base3�base32s&               r)rL�TestTimeTZ.test_replace�s����m�m���3��'���I�d�3�V�<���1�a��D�!���D�z����������.�������d�+�T�2�� � �%��e�$�	&��
"+�7�!3��A�~���1�g�G��A�J��G�}�H����T�\�\�;�T�N�;�X�F����T�\�\�$�A�4�.�A�8�L�"4�	
��������/����D��)�����%�,�,�'����%�,�,�.�)����d�4�0�����&�-�-�(����&�-�-�/�*��
�
�T�
�*������%��
�
�d�k�k�5�<�<�0����f�2������&��
�
�d�k�k�6�=�=�1��1�v�����*�d�l�l���<����*�d�l�l�2��>����*�d�l�l�3��?����*�d�l�l���H����*�d�l�l�D�r��B����*�d�l�l�D���D����*�d�l�l�D���E����*�d�l�l�D�g��Nr,c��UO]]]2oUO]]]2oUOV2UOPQ5oUOV2UO[PP2Q5oUOV2UO[]P2Q5oUO	V2QQ[
2oU2oUOUQ5oUOUQ5oUOUO
2[]Q52UOUO
2[]Q52UOV2UOU2Q5oUOV62P!)r$rc�.`�\sQsQsnQsQsQsUsP!)�-TestTimeTZ.test_mixed_compare.<locals>.Variesi�c�*�[]Q5UmP!�rrir�r1s&r)rs�6TestTimeTZ.test_mixed_compare.<locals>.Varies.__init__����'��3��r,c�b�U9O[]Q5*
tmUO!�r$ri�rqrr�s&&r)r|�7TestTimeTZ.test_mixed_compare.<locals>.Varies.utcoffset�������y��3�3���{�{�"r,r�r�rcs@r)�Variesr'������
4�
#�
#r,r1ri)	rir'r8rfrrr|rr?�r(r�r�r1�vs&    r)r#�TestTimeTZ.test_mixed_compare�s7��
�]�]�1�a��
#��
�]�]�1�a��
#������ �
�Z�Z�t�Z�
$������ �
�Z�Z�{�4��4�Z�
5������ �
�Z�Z�{�1�b�1�Z�
2�����B�#�	#�V�	#�
�H��
�Z�Z�q�Z�
!��
�Z�Z�q�Z�
!����������2�)>�?���������2�)>�?����� ��Z�Z�v�x�Z�
(������� r,c�R�[OQ2o,QNoSFD]oUOU29^tt^2UO[U29^tt^2UO
UPPP2PPP2J_	P!)%fhK9h)%fhJ�9h)z?(hour|minute|second|microsecond) must be in \d+\.\.\d+, not \d+))r#rr�iw��)r#rr�r	)r�rr�r	)r#r�r�r	)r�r�r]r�rri)r(r�r�r�s&   r)r��"TestTimeTZ.test_valuerror_messages�su���*�*�N�
��
�
��D����d�#�#��+�+�J��@�@��M�M�4�(�A�$�#��@�@��$�#�#�s/�B	�B
�,B	�B�B�
B	�B&
�B&
c��QQ,oQoQoQ	oQ
oU[[OV#VE22*
oP[O[[]Q52[[]]Q52,oSFDoSFDuoUOUQU-o	U	O2o
UOU
Q59^tt^2UOOU
2oUOV�2PPP2Jw	J�	P!)%fhJ�9h)r	r�rrr�r�)rr�r�rV)r r#r�)r>r)rr�)r	i�r�)r��	itertools�productrr0rrir�r]r�r')r(�
time_examples�hh�mm�ss�usecrG�ttupr@r�r��t_rts&           r)r��TestTimeTZ.test_fromisoformat�s���� �
�
�
��
��
��"����i�/�/���A�B�B�
������I�A�.�/��I�A�r�:�;�=��"�D����M�M�4�4��4���{�{�}���\�\�t�\�,�,��=�=�6�6�t�<�D��$�$�Q�-�-�,�	�"�
-�,�,�s�9-C8
�8D	�D	c��UO]]]-Q2o[]Q5[]Q5[]]Q5[]] ]Q5[]]]	QQ5,oX"Tt,tFDoPU*MJ	to*
oP[O[[]Q52,oXBTt,tFDo[U2MJ	to*
oSFDtoUO	UQ5oUO2oUO
UQ59^tt^2UOOU2oUOV�2PPP2Jv	P!ttohttoh)%fhJ�9h)	r#r�r�rrUr�rWrr�r�)	r(�	base_timerFr�rGr@r�r�rAs	&        r)r��&TestTimeTZ.test_fromisoformat_timezones$���M�M�"�b�"�f�5�	�
�A��	�� 2��A�r�*��B��B�7��A�q�!�&�I�	
�	�	�2�	�"�b�2�g�g�	�2�2�	������I�A�.�/�1��	�5�9�R�H�R�L�9�5�5���C��!�!��!�-�A��;�;�=�D����4��(�(��}�}�2�2�4�8��� � ��)�)�(�	��3��
6�)�(�(�s�D:�D?�?-E	�E
�
E
c
��QQ	,oP[O[[Q
Q52[[]Q52[[]]Q52,o,QNo[U2FD�vqESFD�oSFD�oUQ6Xc%QUP*Q**oU]PU1*oUOU]]U*QU-o	U	OUQ5o
UO
U
Q59^tt^2UOOU
2oUOV�2PPP2J�	J�	J�	P!)%fhJ�9h)r�r�rr�r�rr0r�)r�r�r�r�)r�r�r�r	r3r�r�)r(�
time_basesrGr�r�rar@�t_tupler�r�r�rAs&           r)r��'TestTimeTZ.test_fromisoformat_timespecs*s����
�
�
�����I�B�/�0��I�A�.�/��I�A�r�:�;�=��
5�	� �	�*�F�B���)�G��^�+�+/�7�2�;�$�3F�+G�(�")�!�B�-�3C�2E�"E���
�
���1�r�6�(;�I�S�I�A��;�;��;�3�D����4��0�0�#�}�}�:�:�4�@���(�(��1�1�0� *��+�1�0�0�s�*-D-�-D>�6D>c��,QNoSFDBvq#UOUoUOOU2oUOVT2JD	P!)�
12:30:45.1))rK)r#rr�r#)z12:30:45.12)r#rr�i��)z12:30:45.123)r#rr�ix�)z
12:30:45.1234)r#rr�i�)z12:30:45.12345)r#rr�i:�)z12:30:45.123456�r#rr�r�)z12:30:45.1234567rL)z12:30:45.12345678rL)rir�r')r(�strs�time_str�
time_compsrpr�s&     r)�test_fromisoformat_fractions�'TestTimeTZ.test_fromisoformat_fractionsEsH��	
��%)� �H��}�}�j�1�H��]�]�0�0��:�F����V�.�	%)r,c�^�,QUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQ	UO]]21MQ
UO]]]Q21MQUO]]21MQ
UO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]]21MQUO]];21MQUO]];21MQUO]];];21MQUO]];];21MQUO]];];Q21MQUO]];];Q21MQUO]];];Q21MQUO]];];Q21MQ UO]];];Q!21MQ"UO]];];Q!21MQ#UO]][OQ$51MQ%UO]][OQ$51MQ&UO]][OQ$51MQ'UO]][[]Q(52Q$51MQ)UO]][[]]Q*52Q$51MQ+UO]][[Q0Q(52Q$51MQ,UO]][[Q0Q(52Q$51MQ-UO]][[]];];Q!Q.5'2Q$51MoSFDTvq#UO	UQ/59^tt^2UOOU2oUO
VC2PPP2JV	P!)%fhJk9h)1�0000z00:00�000000r"z000000.0z
00:00:00.0z
000000.000z00:00:00.000z
000000.000000z00:00:00.000000z00:00:00,100000r#�1200z12:00�120000z12:00:00z120000.0z
12:00:00.0z
120000.000z12:00:00.000z
120000.000000z12:00:00.000000�2359z23:59�235959z23:59:59z235959.9i��
z
23:59:59.9z
235959.999r�z23:59:59.999z
235959.999999rVz23:59:59.999999z	00:00:00Zrz
12:00:00+0000z12:00:00+00:00z00:00:00+05r�z00:00:00+05:30rz12:00:00-05:00z
12:00:00-0500z00:00:00,000-23:59:59.999999rWr�r3)rirr0rr]r�r'r�s&    r)� test_fromisoformat_time_examples�+TestTimeTZ.test_fromisoformat_time_examplesWs���-
�
�T�]�]�1�a�(�)�-
�
�d�m�m�A�q�)�*�-
��t�}�}�Q��*�+�-
�����q�!�,�-�	-
�
����q�!�,�-�-
��4�=�=��A�.�/�
-
��4�=�=��A�.�/�-
��T�]�]�1�a�0�1�-
��d�m�m�A�q�1�2�-
���
�
�a�� 3�4�-
���
�
�a��A�v� >�?�-
��T�]�]�2�q�)�*�-
��d�m�m�B��*�+�-
��t�}�}�R��+�,�-
�����r�1�-�.�-
� ����r�1�-�.�!-
�"�4�=�=��Q�/�0�#-
�$�4�=�=��Q�/�0�%-
�&�T�]�]�2�q�1�2�'-
�(�d�m�m�B��2�3�)-
�*��
�
�b�!� 4�5�+-
�,�T�]�]�2�r�*�+�--
�.�d�m�m�B��+�,�/-
�0�t�}�}�R��R�0�1�1-
�2����r�2�r�2�3�3-
�4����r�2�r�6�:�;�5-
�6�4�=�=��R��V�<�=�7-
�8�4�=�=��R��V�<�=�9-
�:�T�]�]�2�r�2�v�>�?�;-
�<�d�m�m�B��B��?�@�=-
�>��
�
�b�"�b�&� A�B�?-
�@�$�-�-��1�X�\�\�-�B�C�A-
�B�d�m�m�B��(�,�,�m�G�H�C-
�D�t�}�}�R��8�<�<�}�H�I�E-
�F�
�]�]�1�a����1C�(D�]�
E�
G�G-
�J�
�]�]�1�a����B�1O�(P�]�
Q�
S�K-
�N�
�]�]�2�q��)�"�2E�)F�]�
G�
I�O-
�R�
�]�]�2�q��)�"�2E�)F�]�
G�
I�S-
�V,�
�]�]�1�a��)�"�b�Z\�kq�2r�1r�(s�]�
t�
v�W-
��^$,��I����	��2�2����4�4�Y�?��� � ��2�3�2�$,�2�2�2�s� -P	�P,
�$P,
c���,PMQMQMQMQMQMQMQMQMQ	MQ
MQMQMQ
MQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQMQ MQ!MQ"MQ#MQ$MQ%MoSFDgoUOUQ&59^tt^2UO[29^tt^2UOO	U2PPP2PPP2Ji	P!)%fhK9h)%fhJ�9h)'r+u12�00z12:z12:30:z	12:30:15.r�z12:3z12:30:1z1a:30:45.334034z12:a0:45.334034z12:30:a5.334034z12:30:45.123456+24:30z12:30:45.123456-24:30u12:30:45z12:30:45.123456az12:30:45.123456789au12:30:45․123456z	12:30:45az
12:30:45.123az12:30:45.123456-z12:30:45.123456+z12:30:45.123456+12:00:30az12.5z12:30,5z12:30:45.123456Z12:00z12:30:45:334034z12:30:45.400 +02:30z
12:30:45.400 z
12:30:45. 400z24:00:00.000001z24:00:01.000000z24:01:00.000000z12:30:45+00:90:00z12:30:45+00:00:90z12:30:45.+05:00z12:30:45.-05:00z
12:30:45.Zz12:30:45,+05:00r�r�r�s&  r)r��#TestTimeTZ.test_fromisoformat_fails�s���(
��(
��(
�
�(
�
�	(
�

�(
�
�
(
�
�(
�
�(
�
�(
�
�(
�
�(
�
$�(
�
$�(
�
�(
�
�(
� 
"�!(
�"
 �#(
�$
�%(
�&
�'(
�(
�)(
�*
�+(
�,
�-(
�.
(�/(
�0
�1(
�2
�3(
�4
$�5(
�6
�7(
�8
"�9(
�:
�;(
�<
�=(
�>
�?(
�@
�A(
�B
�C(
�D
 �E(
�F
 �G(
�H
�I(
�J
�K(
�L
�M(
�N
�O(
��T �G����g��.�.��&�&�z�2�2��M�M�/�/��8�3�/�.� �2�2��/�.�.�s0�2C	�C
�,C	�C�C�
C	�C&
�C&
c	��QP[OQ2,oSFDDoUO[29^tt^2UOOU2PPP2JF	P!)%fhJ[9h)s12:30:45z12:30:45r�r�s&  r)r��-TestTimeTZ.test_fromisoformat_fails_typeerror�sV�� �$����J�(?�@�	�!�H��"�"�9�-�-��
�
�+�+�H�5�.�-�"�-�-�-�r�c���QQUO2oU]]]-Q[OQ5oUOUO	22oUOV#2UO
V12P!)c��\sQsQsQsP!)�<TestTimeTZ.test_fromisoformat_subclass.<locals>.TimeSubclassi�r]rr]r,r)rera�rar,rei�r)rirr0r�r�r'r�)r(re�tsc�tsc_rts&   r)r��&TestTimeTZ.test_fromisoformat_subclass�s\��	�4�=�=�	��2�r�2�v�h�l�l�C���+�+�C�M�M�O�<������%����f�3r,c	� `�U1QkQRO2o]]]Q[QQ]21oROUoUU-Q]-@oROUOU2ROUO]*2ROUO
]2ROUO
2UO
22ROUOQ2UOUO*]*
2P!)c�::`�\sQsQsn]*sU1QksQsQsUsP!)�*TestTimeTZ.test_subclass_timetz.<locals>.Ci�c�:�UO2oUOQ2oROOU,UN3-U@oVEmU!rfrgris&*,   �r)r��2TestTimeTZ.test_subclass_timetz.<locals>.C.__new__�rmr,c�J�VO*UO*!r.rnros&&r)rq�2TestTimeTZ.test_subclass_timetz.<locals>.C.newmeth�rpr,r]rsrZs@�r)r*rg�rqr,r*��r�rr�rU)
rirfr'rHrtrr|rqrr�rwsf    r)�test_subclass_timetz�TestTimeTZ.test_subclass_timetz�s����	7��
�
�	7��!�Q��[��u�a�8�8���m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�Z�Z�*?�!�*C�Dr,r])rIr^r_r`rrir�r	rr�r
rrLr#r�r�r�r�rPrYr�r�r�rmrarbrcs@r)r�r��ss�����H�$�T5�l-�C�, =�D� /O�b!�<
)�.�4*�22�6/�$33�j.9�`6�4�E�Er,r�c�4`�\sQsQsn\sQsQsQsQs	Qs
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQs\O2Q2Q2s\O2Q2Q2s\O2Q2Q2sQsQsQsQs Us!P!)�TestDateTimeTZi�c	��UO]]]]]]]2oUOUO]2UOUO]2UOUO]2UOUO
]2UOUO]2UOUO]2UOUO]2UOUOP2P!r�)
rir'rr	r3rr�r�rrrzs& r)�test_trivial�TestDateTimeTZ.test_trivial�s���
�]�]�1�a��A�q�!�Q�
/��������!�$�������1�%��������#�������!�$�������A�&�������A�&��������+�������D�)r,c
�F``�UO]]][QP2Q5nUO[]]]];];Q[QP2Q5nUORR62UORR6g2UORR6�2UO	RR2UO	RR2UO]]]]];[]P2Q5nUO]]]]]
[]�P2Q5nUO	RR2UO]]]]];[]P2Q5nUORR6�2UO]]]]];[]P2Q5nUORR62UO]]]]];[]P2]Q5nUORR6�2UO]]]]];[]P2]Q5nUORR6�2UOO
nUO
RR2UO	RR2UO[29^tt^2RR6�PPP2QQ[2oUO]]]U2Q5nUO
RR2UO	RR2UO]]]2nUO	RR2QQ	[2oUO]]]U2Q5nUO]]][]P2Q5nUO[UU1Q
k2P!)%fhK�9h)r$r�rrV)rr�r�c�(`�\sQsQsnQsQsUsP!)�4TestDateTimeTZ.test_even_more_compare.<locals>.Naivei+c��P!r.r]rzs&&r)r|�>TestDateTimeTZ.test_even_more_compare.<locals>.Naive.utcoffset,r[r,r]r�rcs@r)�Naiverv+s����0�0r,ryc�(`�\sQsQsnQsQsUsP!)�4TestDateTimeTZ.test_even_more_compare.<locals>.Bogusi7c��[QQ5!)r�rirrzs&&r)r|�>TestDateTimeTZ.test_even_more_compare.<locals>.Bogus.utcoffset8s
�� ��.�.r,r]r�rcs@r)r_r{7s����
/�
/r,r_c�:�RR6H!r.r])r�r�s��r)rr�7TestDateTimeTZ.test_even_more_compare.<locals>.<lambda><s	���b�B�hr,r�)rirfrr?r'r�rr�r�rr)r(ryr_r�r�s&  @@r)�test_even_more_compare�%TestDateTimeTZ.test_even_more_compare�s����
�]�]�1�a��;�t�R�+@�]�
A��
�]�]�7�B��B��B��"-�e�R�"8��:��	
����R�� �����b��!�����R�� �����R� �����R� ��]�]�1�b�"�b�"�[��B�5G�]�
H��
�]�]�1�a��A�r�+�i��2L�]�
M������R� ��]�]�1�b�"�b�"�[��B�5G�]�
H������R�� ��]�]�1�b�"�b�"�[��B�5G�]�
H������R�� ��]�]�1�b�"�b�"�[��B�5G�"#��%������R�� ��]�]�1�b�"�b�"�[��B�5G�'(��*������R�� ��]�]�
�
�����B��#�����R� �
�
�
�y�
)�
)���G�*�	1�F�	1�
�]�]�1�a��5�7�]�
3�����B��#�����R� ��]�]�1�a��
#������R� �	/�F�	/��]�]�1�a��5�7�]�
3��
�]�]�1�a��;�q�"�+=�]�
>�����*�&6�7�+*�
)�s�+L�L 	�L 	c
�P�QoUOUo[FD9vq4oUOV%2oUOU2oUO	V'2J;	UO	UO2UO
]22[QQ2oUOU-QU-@oUO]]][]P]2Q5o[FD�vq4oUOV%2oUOU2oUO	V'2UOUO[2UO	UO2[QQ52UO	UO2Q2J�	UO	UO2UO
]22P!)r�r�rrrir�r�)rir�r�r�r'r�r�r�rfr�rr|rr�rs	&        r)r��TestDateTimeTZ.test_pickling>sb��)���}�}�d�#��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+�*8�	
������*�D�,>�,>�q�,A�B�%�T�8�4���}�}�d�8�x��&7�8���-�-��1�a��A�r�1�0E�-�F��)7��%�G���M�M�$�.�E��o�o�e�,�G����T�+��!�!�'�.�.�2F�G����W�.�.�0�)�D�2I�J����W�^�^�-�x�8�
*8�	
������*�D�,>�,>�q�,A�Br,c��,QNoQo[QQ2oUOU-QU-@oSFD�o[FD�oUUQQ5oUOVt2UO	UO
[2UOUO
2[QQ52UOUO2Q2J�	J�	P!)	��cdatetime
datetime
(S'\x07\xdf\x0b\x1b\x14;\x01\x01\xe2@'
ctest.datetimetester
PicklableFixedOffset
(tR(dS'_FixedOffset__offset'
cdatetime
timedelta
(I-1
I68400
I0
tRsS'_FixedOffset__dstoffset'
NsS'_FixedOffset__name'
S'cookie'
sbtR.r�rrrri)r�s�cdatetime
datetime
(U
�;�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
(J����J0KtRU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieubtR.s��cdatetime
datetime
U
�;�@ctest.datetimetester
PicklableFixedOffset
)R}(U_FixedOffset__offsetcdatetime
timedelta
J����J0K�RU_FixedOffset__dstoffsetNU_FixedOffset__nameUcookieub�R.)rrrr�r�r$r�r�)	r�rirr'r�rr|rr�)r(rnr�rrpr	r�r�s&       r)r
�#TestDateTimeTZ.test_compat_unpickleUs���
��2/��$�T�8�4���=�=�$�<�8�U�*;�<���D�%�����x�8��� � ��3��%�%�g�n�n�6J�K�� � ��!2�!2�!4�i��6M�N�� � ����!1�8�<�&�r,c
�4�UO]]][QP2Q5o[U2UO[]]]];];Q[QP2Q5o[U2UO]]][QP2Q5oUO	[
[U2P!)r$r�rrVr�r�)rirfr�rr�rr�s& r)�test_extreme_hashes�"TestDateTimeTZ.test_extreme_hasheszs���
�M�M�!�Q��+�d�B�*?�M�@���Q���M�M�'�2�r�2�r�2�v�!,�U�B�!7�
�
9���Q��
�M�M�!�Q��+�e�R�*@�M�A�����*�d�A�.r,c	���[QQ2o[]Q2o[]<Q2o[Q]]]]/UQ5o[Q]]]]/UQ5o[Q]]]
]/UQ5oUOUOU2UOUOU2UOUOU2UOUO	2[QQ52UOUO	2[]Q52UOUO	2[]<Q52UOUO
2Q2UOUO
2Q2UOUO
2Q2UO[U2[U22UO[U2[U22UO[U2[U22UOVE2UOVF2UOVV2UO[U2Q2UO[U2Q2UO[U2Q	2Q
oUO[U2UQ*2UO[U2UQ*2UO[U2UQ
*2P!)r�r�rr�rrriz2002-03-19 07:47:00-05:00z2002-03-19 12:47:00+00:00z2002-03-19 13:47:00+01:00zdatetime.datetime(2002, 3, 19, z7, 47, tzinfo=est)z12, 47, tzinfo=utc)z13, 47, tzinfo=met)r�)
rfrr'rr|rr�r�r�r�)r(rr0rr�r�rXr�s&       r)r	�TestDateTimeTZ.test_zones�s5���$��&���!�U�#���"�e�$��
�d�A�r�A�r�#�
6��
�d�A�r�2�r�#�
6��
�d�A�r�2�r�#�
6��������C�(�������C�(�������C�(���������4�)@�A���������1�)=�>���������2�)>�?��������e�,��������e�,��������e�,�����b��4��8�,�����b��4��8�,�����b��4��8�,����� ����� ����� �����R��"=�>�����R��"=�>�����R��"=�>�-������b��1�';�#;�<�����b��1�'<�#<�=�����b��1�'<�#<�=r,c���[]<Q2o[Q]]2o[]]-]QUQ5o[OV#2oUOU[Q]]]]-]QUQ52P!��<r�rrEr)rfrrrr�r')r(rr�r�r{s&    r)rI�TestDateTimeTZ.test_combine�sf���"�e�$����q�!���
�"�b�!�T�#�
.��
�
�
�a�
$������X�d�A�q�"�b�!�T�/2�4�	5r,c�\�[]<Q2oUOQ]]]]-]QUQ5oUOUO2[Q]]22UOUO	2[	]]-]Q22UOUO2[	]]-]QUQ52P!r�)rfrir'rrr�)r(rr{s&  r)rF�TestDateTimeTZ.test_extract�s����"�e�$��
�]�]�4��A�r�2�q�$�s�]�
C���������D��q�!�$4�5��������D��R��D�$9�:��������d�2�r�1�d�3�&G�Hr,c
�"`
```�UOO2n[QQ2oRO2O	UQ5oUOORO
2U2nUOROU2UORO2U2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[U1Qk2UORR*
[]22UORR*
[]22[]]QQ	5n
RR
*nUOROU2R
R*oUOUOU2UORU2RR
*
oUOUOU2UORU2UO[U
U1Q
k2UORR*
R
2[[OQQ2Q
2oRO	UQ5nUOROU2RR*
oRO!2RO!2*
R
*
oUOVg2UO]]][QQ2Q5oUO["]]]];];Q[QQ2Q5o	V�*
o
UOV�OO$UOO&*
[QQ5*2[)[*Q2o[)[*Q2oUO	UQ5U	O	UQ5*
n
UOR
UOO&UOO$*
2P!)�Jz	west 5:30rc�:�RR*
!r.r]�r��nowawares��r)rr�9TestDateTimeTZ.test_tz_aware_arithmetic.<locals>.<lambda>��	���S�8�^r,c�:�RR*
!r.r]r�s��r)rrr���	���X��^r,c�:�RR*!r.r]r�s��r)rrr��r�r,c�:�RR*!r.r]r�s��r)rrr��r�r,c�:�RR*!r.r])r�s�r)rrr��s
���X��-@r,i.)r�rjrc�:�RR*
!r.r])rZ�nowawarepluss��r)rrr��s
���U�\�-Ar,r�r��randomtimezoner�rVr�rir�r�i����r�i>)rir�rfrr8r�rr/rr'r�r�r�rr��	randranger|rr�r�rr$)r(�tz55�	timeaware�
nowawareplus2rX�tzrr�rpr�r��maxdiff�tza�tzbrZr�r�r�s&            @@@@r)�test_tz_aware_arithmetic�'TestDateTimeTZ.test_tz_aware_arithmetic�s!����m�m���!���4��-���H�H�J�&�&�d�&�3�	��=�=�(�(�����Y�?���
�
�h�o�o�t�,�������*�I�6�	
���)�%;�<����)�%;�<�	
���)�%;�<����)�%;�<����)�%@�A�	
����s��I�a�L�1�����H�,�i��l�;���2�D�A���%�'���
�
�h�o�o�t�,���(�
��
�
�m�*�*�D�1�����}�5��e�#���
�
�d�k�k�4�(�����4�(����)�%A�B������0�%�8��&�*�*�5�$�7�9I�J��#�+�+�3�+�7���
�
�l�)�)�3�/���%�� �)�)�+�h�.@�.@�.B�B�U�J������'��m�m�A�q�!�K��e�,D�m�E���m�m�G�R��R��R��#.�u�e�#<��>���)������-�-�"3�"3�d�m�m�6G�6G�"G�"+�F�";�#<�	=��t�S�!���t�S�!�����3��'�#�+�+�S�+�*A�A�������
�
� 1� 1�D�M�M�4E�4E� E�Fr,c�0�UOOoU2o[]*Q2oUU2oUUQ5oUOUOUO2UOUO
2[]*Q52UO[U]2UO[U]Q5UO[VQ5UO[VU2[]Q]2o[[]]:Q5Q]2[[]]:Q5Q21FD�o[]2FD�o[OU2o	UOU	OU2UO[29^tt^2[O2O!UQ5o
PPP2W
O#U2o[%V�*
2[]Q	56fJ�J�	UO'Q
2J�	P!)%fhK`9h)r��42rVrir�rr0r�weirdtzrz0utcnow(), now(tz), or astimezone() may be broken)rir�rfr/rr'r|rr�r�rr�rr�r�r�r8rpr��fail)r(�methrH�off42�another�againr0r�r%r�r��now2s&           r)�test_tzinfo_now�TestDateTimeTZ.test_tzinfo_now�s����}�}� � ���v���B��%���u�+�������
�
�g�n�n�e�l�l�3�����*�*�,�i��.C�D����)�T�2�.����)�T�"��5����)�T��7����)�T�%�8�
�!�U�A�&��#�I�B��$C�Y�PQ�R� ���R�!@�)�L�O�G��q����l�l�7�+���
�
�c�j�j�'�2��%�%�&8�9�9�%�_�_�.�6�6�c�6�B�F�:��(�(��1���s�z�?�Y�r�%:�:��"��	�	�L�M�O�
:�9�s�&H
�H�Hc��]PHoUOOoUO2oUU2o[]*Q2oUV52oUV5Q5oUO	UO
UO
2UO
UO2[]*Q52UO[V#]2UO[V#]Q5UO[V#UQ5UO[V#VU2UO[U2QoUO[29^tt^2[OU2o	PPP2[Q	]'Q5o
[U
Q]2oW	U
*o[OV�2o
UO
V�OPQ52P!)%fhKl9h)
r	r�rVrirr�r.rr�i�)rrir`rfr/rr'r|rr�r�r�r�rr�r8)r(rr�rarHr�r�r�r��utcdatetimer|r�rpr�s&             r)�test_tzinfo_fromtimestamp�(TestDateTimeTZ.test_tzinfo_fromtimestamps_����}�}�*�*��
�Y�Y�[���B�x���B��%���r�/���R�"���
�
�g�n�n�e�l�l�3�����*�*�,�i��.C�D����)�T�r�2����)�T�b��9����)�T�U��;����)�T�u�<����)�T�*��	�
�
�
�0�
1�
1�"�3�3�I�>�K�2��C��4�	�
��D�!�
,����*���$�$�Y�3������;�;�d�;�#;�<�2�
1�s�5F0�0G	�9G	c�&�UOOoUO[29^tt^2U2oPPP2[	]*Q2oUO[V2UO[VQ5P!)%fhKK9h)Nr�r)rir�r�r�rfr�r�)r(r�rHr�s&   r)�test_tzinfo_utcnow�!TestDateTimeTZ.test_tzinfo_utcnow@si���}�}�#�#��
�
�
�0�
1�
1��6�D�2��B��%�����)�T�1����)�T��8�
2�
1�s�B�B	�	B	c	��]PHoUOOoUO2oUO[29^tt^2UU2oPPP2[]*Q2o[O[Q59^tt^2[OQ[Q5UO[V#U2UO[V#UQ5PPP2P!)%fhK�9h)%fhP!9h)r	r�)�category�ignorer)rrir�r�r�rf�warnings�catch_warnings�simplefilterr�r�)r(rr�rarHr�s&     r)�test_tzinfo_utcfromtimestamp�+TestDateTimeTZ.test_tzinfo_utcfromtimestampKs�����}�}�-�-��
�Y�Y�[��
�
�
�0�
1�
1���8�D�2��B��%��
�
$�
$�.@�
A�
A��!�!�(�5G�H����i��5�9����i��%��@�B�
A�2�
1��
B�
A�
A�s%�
	C �
AC3� C0	�)C0	�3D	�<D	c��QQ[2oUOoQFCD'vq4U]]]]
]]](UU2Q5oUO2oUO]UO2UO]UO
2UO]UO2UO]
UO2UO]UO2UO]UO2UO]UO2UO]UO2UOVFO2CJ*	UO[U]]]UQ2Q5O2UOU]]]UQ2Q5O2O]2UOU]]]UQ2Q5O2O]2UO[U]]]UQ2Q5O2UO[U]]]UQ2Q5O2P!)	c�.`�\sQsQsnQsQsQsUsP!)�1TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DSTi]c�X�[U[2%c
[UQ5oVmP!rh�rkrlr�dstvalue�r(r�s&&r)rs�:TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.__init__^����h��,�,�(��:�H� (�
r,c��UO!r.�r�rzs&&r)r��5TestDateTimeTZ.test_tzinfo_timetuple.<locals>.DST.dstb����}�}�$r,r��rIr^r_r`rsr�rarbrcs@r)�DSTr�]s����
)�
%�
%r,r�rr�r�r�))����r$)r/r$)r	r	)Nr�r�r�)rrir�r'r�r�r�r�r�r�r�r�r�r�r�r)r(r�rGr��flagr�r�s&      r)�test_tzinfo_timetuple�$TestDateTimeTZ.test_tzinfo_timetupleZs���	%�&�	%��m�m��C�N�H��A�q�!�R��R��C��M�B�A����
�A����Q��	�	�*����Q����)����Q��	�	�*����R����+����R����*����R����*����Q��	�	�*����Q��	�	�*����T�:�:�.�D�	
���)�S��A�q��S��%B�%L�%L�M�	
����Q�q��3�t�9�5�?�?�A�J�J�A�N�����Q�q��3�u�:�6�@�@�B�K�K�Q�O�	
���*�c�!�A�a��D�	�&B�&L�&L�M����*�c�!�A�a��E�
�&C�&M�&M�Nr,c�p	`�QQ[2nUOoUO[U]]]R]2Q5O2U1QkQR2oQ
FCD�oU]]]]
]]](UQU2Q5oUO2oUO
UOUO2UO
UOUO2UO
UOUO2UO
]UO2UO
]
UO2UO
UOUO 2UO
UO#2UO$2UO
UO'2[)]]]2O'2*
]*UO*2UO
]UO,2CJ�	U]]]]
]]](2oUO2oUO
UPPUO/2PP2UO
]UO,2QQR2oU]]]]
]]](U2Q5oUO2oUO
UPPUO/2PP2UO
]UO,2QQR2oU]]]]
]]](U2Q5oUO[0UO
2UQ	]]
]]]Q
2o[2O4[2O6[2O81FDfoUO;UQ5o	UO
U	O2PPU	O=[2O62O/2PP2Jh	U[>]]]]]%UQ2Q5o
UO[@U
O
2U[B]]]];]%QUQ2Q5oUO[@UO
2UO4O;[3[D2Q5o
UO[@U
O
2UO8O;[3[D'2Q5oUO[@UO
2P!)c�2`�\sQsQsnQQksQsQsUsP!)�-TestDateTimeTZ.test_utctimetuple.<locals>.DSTic�X�[U[2%c
[UQ5oVmP!rhr�r�s&&r)rs�6TestDateTimeTZ.test_utctimetuple.<locals>.DST.__init__�r�r,c��UO!r.r�rzs&&r)r��1TestDateTimeTZ.test_utctimetuple.<locals>.DST.dst�r�r,r�r�r�rcs@r)r�r�s����
)�
%�
%r,r�rc�::`�\sQsQsnQU1QkksQsQsUsP!)�.TestDateTimeTZ.test_utctimetuple.<locals>.UOFSi�c�N:�ROV2[UQ5UmP!rh)rsr�uofs)r(r��dofsr�s&&&�r)rs�7TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.__init__�s������T�(�%�d�3��	r,c��UO!r.�r�rzs&&r)r|�8TestDateTimeTZ.test_utctimetuple.<locals>.UOFS.utcoffset�s���y�y� r,r�r.r�)rdr�s@�r)�UOFSr��s����
4�
!�
!r,r�c�(`�\sQsQsnQsQsUsP!)�.TestDateTimeTZ.test_utctimetuple.<locals>.NOFSi�c��P!r.r]rzs&&r)r|�8TestDateTimeTZ.test_utctimetuple.<locals>.NOFS.utcoffset�s��r,r]r�rcs@r)�NOFSr��s����
�
r,r�c�(`�\sQsQsnQsQsUsP!)�.TestDateTimeTZ.test_utctimetuple.<locals>.BOFSi�c��Q!)r�r]rzs&&r)r|�8TestDateTimeTZ.test_utctimetuple.<locals>.BOFS.utcoffset�s��r,r]r�rcs@r)�BOFSr��s����
�
r,r�r�i+�r�rV)r�r/r	Ni���r�)#rrir�r�r|�utctimetupler'rr�r	r�r3r�r�r�r�r�rwr�rrr�r�r�r�rr�r0r�r8rprr/rr)
r(rGr�r�r�r�r�r�r��dtzr2�huger�s
&           @r)�test_utctimetuple� TestDateTimeTZ.test_utctimetuple~s����	%�&�	%��m�m�����-��a��A�c�!�f�5�?�?�	A�	!�3�	!�)�H��A�q�!�R��R��D��h�4G�H�A���� �A����Q�V�V�Q�Y�Y�/����Q�W�W�a�h�h�/����Q�U�U�A�I�I�.����R����+����R����*����Q�X�X�q�x�x�0����Q�Y�Y�[�!�)�)�4����Q�[�[�]�T�!�Q��]�-D�-D�-F�F��J��Y�Y�
(�
���Q��
�
�+�)�"
��1�a��R��R�(��
�N�N�������3�B������s��!3�4�����A�J�J�'�	�3�	�
��1�a��R��R���7��
�N�N�������3�B������s��!3�4�����A�J�J�'�	�3�	�
��1�a��R��R���7�����)�Q�^�^�4�
��b�"�b�"�b�&�1���<�<����x�|�|�<�B��)�)�2�)�&�C����S�-�-�/���4� �^�^�H�L�L�9�C�C�E�c�r�J�
L�=��7�A�q�!�Q��4��:�>�����-��):�):�;��7�B��B��B��t�E�{�K�����-��):�):�;��w�w���h�v�&6��7�����-��):�):�;��w�w���h��w�&7��8�����-��):�):�;r,c��[]Q2o[]�Q2o[QQ2o[PP2oUOoQoPVV41FCD@oQ
FCD4oU]]]]]];V�Q5o	QS9%cQ9%fP*o
UPI9%cU	O29%fPoV�*oU	O2o
UO	V�Q*U*2UO	V�OQ22UO	U	OQ	2UQ	*U*2UO	U	OQ
2UQ
*U*2UO	[U	2UQ*U*2CJ7	CJC	P!)r	r>z+03:40z-03:51z
0001-02-03rz04:05:59z.987001rO�kuሴri���)r	iy)rfrir�r�r'r�)r(r��plus�minus�unknownrG�datestr�ofsr�r��timestr�ofsstr�tailstr�isos&             r)�test_tzinfo_isoformat�$TestDateTimeTZ.test_tzinfo_isoformat�sM���1�h�'���3��)���D�(�+���d�B�'���m�m������U�3�C�����1�a��A�r�2�:��$��(8�(8�y�(>�(>�B�?���D��7�7�Q�X�X�Z�=�=�2��!�*���k�k�m��� � ���m�g�&=�>�� � ��k�k�#�&6�7�� � ����S�!1�7�S�=�7�3J�K�� � ����X�!6��(�8J�W�8T�U�� � ��Q���3���)@�A� �4r,c
�l�UOo[]dQ2o[[Q
Q5Q2o]]]]]]]U,oUUoUOUO	2U2UO[
OU2U2QQQ
QQQQQU11o[
U2FDivovq�UQ*o
V�U$UU
oUOUOQ-V�-@U2UO[
OU1-V�-@U2Jk	UOUO2Q2UO	PQ5oUOUO2UOUO22[
OUPQ5o
UOU
O2UOU
O22UO	UQ5oUOV^2UOUOUO2[
OV�Q5oUOV_2UOUOUO2UQ]]2oUO[UOQQ	5UO[[
OUQQ	5P!)r�rrirrr?rr�r4r@rrArBrCrLrMrNrOr]rrs&               r)rL�TestDateTimeTZ.test_replace�s9���m�m���3��'���I�d�3�V�<���1�a��A�q�!�T�*���D�z����������.�������d�+�T�2����� � �%��e�$�&��"+�7�!3��A�~���1�g�G��A�J��G�}�H����T�\�\�;�T�N�;�X�F����T�\�\�$�A�4�.�A�8�L�"4�	
��������/����D��)�����%�,�,�'����%�,�,�.�)����d�4�0�����&�-�-�(����&�-�-�/�*��
�
�T�
�*������%��
�
�d�k�k�5�<�<�0����f�2������&��
�
�d�k�k�6�=�=�1��4��B������*�d�l�l���>����*�d�l�l�D�t��Dr,c���[PQ2o[],Q2o[[]Q5'Q2oUOOUQ5oUO	UO
U2UO
[UOU2UOUO
2oUO	UO
U2UOUO2UO22UOUO2UO22UOU2oUO	UO
U2UOUO2[QQ52VDO2*
oVsOU2*
oUOUQ5oUOUO2UO22UOUO2UO22UOUO2UO22UO	UO
UO
2UOVg2P!)N�None�44r��m300rVrr3)rfrrir�r/rr�rrpr'rrr|r8r�)r(�fnone�f44m�fm5hr{r�r�rps&       r)�test_more_astimezone�#TestDateTimeTZ.test_more_astimezones����D�&�)���2�t�$���I�A�.�.��7��
�]�]�
�
�$�
�
'���
�
�b�i�i��&����*�b�m�m�U�;��M�M�"�)�)�$���
�
�a�h�h��%��������2�7�7�9�-��������2�7�7�9�-��m�m�D�!���
�
�c�j�j�$�'��������)�"�*=�>�����&���N�N�2�&�&���#�#�4�#�0���������X�]�]�_�5��������X�]�]�_�5��������x���'8�9��
�
�c�j�j�(�/�/�2�����'r,rc���UOO[O2oUO	UOP2U2UO	UO2U2P!r.)rir�rr0r'rprzs& r)�test_astimezone_default_utc�*TestDateTimeTZ.test_astimezone_default_utc.sI��
�]�]�
�
�x�|�|�
,��������t�,�b�1��������"�-r,r�c	��UOQ]]]][OQ5oUO2oUO	V2UO	UOQ2Q2UOQ]]]][OQ5oUO2oUO	V2UO	UOQ2Q2P!)r\rrz	-0500 ESTz	-0400 EDT)rirr0rpr'r�)r(r{r:s&  r)�test_astimezone_default_eastern�.TestDateTimeTZ.test_astimezone_default_eastern6s���
�]�]�4��Q��2�h�l�l�]�
C���
�
�������#��������0�+�>�
�]�]�4��Q��2�h�l�l�]�
C���
�
�������#��������0�+�>r,c���[Q]]][OQ5oUO2oUO2oUO	UO
UO
2P!)rr)rrr0rpr'r)r(r�r�r#s&   r)�!test_astimezone_default_near_fold�0TestDateTimeTZ.test_astimezone_default_near_foldAsH��
�T�2�q�!�H�L�L�9��
�L�L�N��
�L�L�N��������1�8�8�,r,c�f�UOoQQ[2oU]]	]
]]]
]U2Q5oUO]Q5oUO]	Q5oUO]Q5oVEU1FDOoVEU1FDCoVx*
o	[UOUO*
Q5o
UOV�2JE	JQ	U]]	]
]]]
]2oUO]U2Q5oUO]	U2Q5oUO]U2Q5oVEU1FD�oVEU1FD�oVx*
o	VtIfVuIcV�IfV�Ic
[]2o
LJXxt9IcUIcLL[]2o
L/VvIc[QQ5o
LUO
V�2[]0Q5o
UOV�2J�	J�	P!)c�(`�\sQsQsnQsQsUsP!)�BTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffsetiNc�j�UO]
6c[UOQ5![];Q5!r�r�r�s&&r)r|�LTestDateTimeTZ.test_aware_subtract.<locals>.OperandDependentOffset.utcoffsetOr�r,r]r�rcs@r)r�r	Nr�r,r�rr^rir�i���)rirr8rr�r'r/)r(rGr�rHr�rmr�r�rr�rps&          r)�test_aware_subtract�"TestDateTimeTZ.test_aware_subtractIs����m�m��	1�V�	1��1�a��R��R��4J�4L�M��
�\�\��\�
#��
�\�\��\�
#��
�\�\��\�
$�����A��R�Z���e��$�Q�X�X����-@�A��� � ��/� ���1�a��R��R��,��
�\�\��+A�+C�\�
D��
�\�\��+A�+C�\�
D��
�\�\��,B�,D�\�
E�����A��R�Z���e���G�q�w�Q�W���(��|�H��\�r�\�(��|�H��W�(��;�H��M�M�!�(�(��;�H�� � ��/� �r,c	��[]]]]]]]2o[]]]]]]]2oUOV2UOPQ5oUOV2UO[PP2Q5oUOV2UO[]P2Q5oUO	V2QQ[
2oU2oUOUQ5oUOUQ5oUOUO
2[]Q52UOUO
2[]Q52UOV2UOU2Q5oUOV62P!)r$rc�.`�\sQsQsnQsQsQsUsP!)�1TestDateTimeTZ.test_mixed_compare.<locals>.Variesi�c�*�[]Q5UmP!r)r�r1s&r)rs�:TestDateTimeTZ.test_mixed_compare.<locals>.Varies.__init__�r+r,c�b�U9O[]Q5*
tmUO!r-r.r�s&&r)r|�;TestDateTimeTZ.test_mixed_compare.<locals>.Varies.utcoffset�r0r,r�r�rcs@r)r1r#	�r2r,r1ri)	rr'r8rfrrr|rr?r3s&    r)r#�!TestDateTimeTZ.test_mixed_compareus?��
�a��A�q�!�Q��
*��
�a��A�q�!�Q��
*������ �
�Z�Z�t�Z�
$������ �
�Z�Z�{�4��4�Z�
5������ �
�Z�Z�{�1�b�1�Z�
2�����B�#�	#�V�	#�
�H��
�Z�Z�q�Z�
!��
�Z�Z�q�Z�
!����������2�)>�?���������2�)>�?����� ��Z�Z�v�x�Z�
(������� r,c�&`�U1QkQRO2oQ]]]]]Q[QQ]21oROUoUU-Q]-@oROUOU2ROUO]*2ROUO
]2ROUO
2UO
22ROUOQ2UOUO*]*
2P!)c�::`�\sQsQsn]*sU1QksQsQsUsP!)�2TestDateTimeTZ.test_subclass_datetimetz.<locals>.Ci�c�:�UO2oUOQ2oROOU,UN3-U@oVEmU!rfrgris&*,   �r)r��:TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.__new__�rmr,c�J�VO*UO*!r.)rrros&&r)rq�:TestDateTimeTZ.test_subclass_datetimetz.<locals>.C.newmeth�s���y�y�(�4�9�9�4�4r,r]rsrZs@�r)r*r+	�s�����I�
�
5�
5r,r*rrlr�rr�rU)
rirfr'rHrtrr|rqrrrwsf    r)�test_subclass_datetimetz�'TestDateTimeTZ.test_subclass_datetimetz�s����	5��
�
�	5��R��Q��1�c�;�t�U�A�+F�F���m�m�T�"����&�'�1��&���������*��������+�������A�&��������#�-�-�/�:�������R��#�(�(�S�X�X�*=��*A�Br,r])"rIr^r_r`rrirrr�r�r
r�r	rIrFr�r�r�r�r�r�r�r	rLr	rr�r	r	r	r	r#r0	rarbrcs@r)rprp�s������H�	*�C8�JC�.#=�J/�>�<5�I�?G�B$N�L"=�H	9�
A�"O�HN<�`B�*,E�\(�:
�����.� �.�
���3�4�?�5�?�
���3�4�-�5�-�*0�X!�<C�Cr,rpc�j�]UO2*
oU%cU[U2*
oU!)r�)rwr)r{�
days_to_gos& r)�first_sunday_on_or_afterr4	�s)���R�Z�Z�\�!�J��
�i�
�#�#��
�Ir,rir�r�c�@`�\sQsQsnQsQsQsQsQsQs	Us
P!)�
USTimeZonei�c�N�[UQ5UmV mV0mV@mP!�r��r�	stdoffset�reprname�stdname�dstname�r(r�r;	r<	r=	s&&&&&r)rs�USTimeZone.__init__����"��/��� �
����r,c��UO!r.�r;	r1s&r)rw�USTimeZone.__repr__�r~r,c�b�UOU2%c
UO!UO!r.�r�r=	r<	rzs&&r)r��USTimeZone.tzname��#���8�8�B�<�<��<�<���<�<�r,c�H�UOUOU2*!r.�r:	r�rzs&&r)r|�USTimeZone.utcoffset�����~�~������,�,r,c�<�UdUOe[![[O	UO
Q52o[[O	UO
Q52oV!O	PQ5t96:cU6c[![![!�Nr@r)rrr4	�DSTSTARTr8r�DSTENDr$�r(r{rp�ends&&  r)r��USTimeZone.dst�s}��
�:����*��K�)��)9�)9�r�w�w�)9�)G�H��'�v�~�~�2�7�7�~�'C�D��
�J�J�d�J�+�1�c�1��K�2��K�4�Kr,�r=	r;	r<	r:	�rIr^r_r`rsrwr�r|r�rarbrcs@r)r6	r6	�s#������ �-��r,r6	r7r�rU�Central�CST�CDT�Mountain�MST�MDT�Pacific�PST�PDTr�UTCfakec�|`�\sQsQsn\Q]]]2s\Q]
]]2s\sQsQs	Qs
QsQsQs
Q	sQ
sUsP!)�TestTimezoneConversionsi�rc���UOUO2[2UOUOU2U2UOU2oUOU2oUO	2UO	26Xc�UO
]6XcsUOU[*U2UOUO2[2UOUOU2UOU22LUOV2U[*oUOU2o	UO	2UO	26XctUO
]6XccUOV�O]Q52U[*
oUOU2o	UOV�O]Q52P!UOV�*
[2P!)r�r)r'r�r$rprrrr8)
r(r{r�r0�dston�dstoff�asutc�there_and_back�nexthour_utc�nexthour_tzs
&&&&&&    r)�checkinside�#TestTimezoneConversions.checkinside�st���������4�(�	
������r�*�B�/��
�
�c�"���)�)�"�-���7�7�9��
�
��$����A��
���^�d�2�B�7�
���^�/�/�1�4�8����^�6�6�s�;��]�]�3�/�
1�
���R�0��t�|��"�-�-�b�1��
�7�7�9����
�%�"�'�'�Q�,�
���[�*�*�!�*�*<�=��D� �L�&�1�1�"�5�K����[�*�*�!�*�*<�=����[�-�t�4r,c��UOUO2[2UOUOU2U2UOU2oUOU2oUOV2P!r.)r'r�rrp)r(r{r�r0rd	re	s&&&&  r)�checkoutside�$TestTimezoneConversions.checkoutside0sa���������4�(�	
������r�*�B�/��
�
�c�"���)�)�"�-������,r,c���UOOUQ5oUOOUQ5o[]
Q5[[
[]Q5[]Q51FD}oUO
V1V#U2V5*VE*
1FDoUO
VaV#U2J	UOVAU2V5*
VE*1FDoUOVqU2J	J	P!)rr�rir
)rb	r8rc	r�DAYr$rh	rk	)r(r�r0rb	rc	rZ�during�outsides&&&     r)�convert_between_tz_and_utc�2TestTimezoneConversions.convert_between_tz_and_utc;s����
�
�"�"�"�"�-�����$�$�B�$�/���b�)�����*��Q�/�	1�E�
���U��F�;��-���7��� � ��S��@�8�
���f�#�.� �=�&�.�8���!�!�'�s�3�9�1r,c�@�UO[[2UO[[2UO[[2UO[[2UO[[2UO[[2P!r.)rq	r7�utc_realr[	�utc_faker1s&r)�	test_easy�!TestTimezoneConversions.test_easyQsd���'�'���:��'�'���:��'�'���:��'�'���:�	
�'�'���9��'�'���9r,c�@�UO[]Q5*
o[QQ]2oUOUQ5oUOO]Q5oUO	[
2OPQ5oUO
V42UOO][Q5oUOO]Q5oUO	[
2OPQ5oUO
V42[[1FCD	o[
[1FD�oUO[]Q5*
oV�OP2*oV�OP2*o	U	OUQ5o
QFD�oUOOUQ5oQ	FDZo
UOU
Q5oU
OU
Q5o	U	O	U2oUO
UOPQ5U2J\	U
[*
o
J�	J�	CJ	P!)
rr�z-0900rr�rrr^i��)r	r$r$r��r	rr�)
rb	rrfr8rpr7r'rt	ru	r[	rc	r|r$)r(�fourback�ninewestrpr��sixutcr0r��first_std_hourrd	�	asutcbase�tzhour�expectedbaser��astzs&              r)�test_tricky�#TestTimezoneConversions.test_trickyis����:�:�	�� 2�2���u�g�q�1���#�#�8�#�4���:�:�%�%�1�%�-���!�!�'�*�2�2�$�2�?������'����#�#��8�#�<���:�:�%�%�1�%�-������(�0�0��0�=������'��X�%�C��w�&��!%���y�q�/A�!A���,�,�t�"4�4��&���t�)<�<��"�M�M��M�5�	�*�F�#'�;�;�#6�#6�F�#6�#C�L�"+��#/�#7�#7�v�#7�#F�� )� 1� 1�� 1� @��$�/�/��3���(�(����T��)B�H�M�	#,�
��%�I�+�'�&r,c��QQ[2oUOO2O[Q5oUOU22QQU2oUO
[UO
U22QQU2oUOQ]]2O[Q5oUO
[UO
U22P!)c�.`�\sQsQsnQsQsQsUsP!)�2TestTimezoneConversions.test_bogus_dst.<locals>.oki�c��[!r.�r$rzs&&r)r|�<TestTimezoneConversions.test_bogus_dst.<locals>.ok.utcoffset�s��D�[r,c��[!r.r�	rzs&&r)r��6TestTimezoneConversions.test_bogus_dst.<locals>.ok.dst�s��d�{r,r]r^rcs@r)�okr�	�s����0�*�*r,r�	rc�(`�\sQsQsnQsQsUsP!)�5TestTimezoneConversions.test_bogus_dst.<locals>.notoki�c��P!r.r]rzs&&r)r��9TestTimezoneConversions.test_bogus_dst.<locals>.notok.dst�rfr,r]�rIr^r_r`r�rarbrcs@r)�notokr�	�s����*�*r,r�	c�(`�\sQsQsnQsQsUsP!)�<TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notoki�c�D�UOQ6XcP!]
[*!)r�)rr$rzs&&r)r��@TestTimezoneConversions.test_bogus_dst.<locals>.tricky_notok.dst�s���7�7�d�?���d�7�Nr,r]r�	rcs@r)�tricky_notokr�	�s����
#�
#r,r�	r4)rrir�r8rt	rpr�r)r(r�	r�r�	r�	r{s&     r)�test_bogus_dst�&TestTimezoneConversions.test_bogus_dst�s���	+��	+��m�m���!�)�)��)�:�����r�t��	+�B�	+����*�c�n�n�e�g�>�	#�2�	#��]�]�4��A�
&�
.�
.�h�
.�
?�����*�b�m�m�\�^�Dr,c�l�UO[[O2[O
[Q5oUO[[OU2UO[Q5o[OU2oUOUO[2UO[[OV2UO[[O[O22QQ[2oUQ
QQQ2oUOO][Q5oUOUQ5oQFD�oUOUQ5oU]6XcU[]Q	5*o[OU2o	UOV�2VdO *oUOU2o	UOV�2UO[Q5O#U2o	UOV�2U[$*
oU[$*
oJ�	UO&O][Q5oUOUQ5oQFD�oUOUQ5o[OU2o	UOV�2VdO *oUOU2o	UOV�2UO[Q5O#U2o	UOV�2U[$*
oU[$*
oJ�	P!)
rVrc�(`�\sQsQsnQsQsUsP!)�<TestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZonei�c�(�VO*!r.)r:	rzs&&r)r��DTestTimezoneConversions.test_fromutc.<locals>.FauxUSTimeZone.fromutc�s���N�N�*�*r,r]�rIr^r_r`r�rarbrcs@r)�FauxUSTimeZoner�	�s����
+�
+r,r�	�FEastern�FEST�FEDTry	rr�r3)rr	r$r�rr>)r	r$r$r�r�r)r�r�r7r�rr�rt	rr8r'rrr
r6	rb	rr:	rpr$rc	)
r(r��enowr�	r�	rp�fstart�wallrpr�s
&         r)r;�$TestTimezoneConversions.test_fromutc�sf�����)�W�_�_�5��l�l�h�'�����*�g�o�o�s�;��k�k��k�)�����s�#��������g�.����)�W�_�_�c�?����)�W�_�_�d�j�j�l�C�	+�Z�	+�#�2�z�F�F�C���
�
�"�"��'�"�:�����h��/��%�D��}�}�$�}�/�H��r�z��I�1�-�-���/�/�%�(�C����X�+�� 2� 2�2�H��"�"�6�*�C����X�+��.�.��.�1�<�<�X�F�C����X�+��T�M�E��d�N�F�!&�&���#�#��7�#�;�����h��/��$�D��}�}�$�}�/�H��/�/�%�(�C����X�+�� 2� 2�2�H��"�"�6�*�C����X�+��.�.��.�1�<�<�X�F�C����X�+��T�M�E��d�N�F�%r,r])rIr^r_r`rrb	rc	rirh	rk	rq	rv	r�	r�	r;rarbrcs@r)r`	r`	�sU�����T�1�a��#�E�
�d�B��A�
&�F��H�15�h	-�4�,
:�00&�fE�6:�:r,r`	c�4`�\sQsQsnQsQsQsQsUsP!)�Oddballsi�c�``�[O2o[OU[	22o[UOUOUO2o[UOUOUO]]]2oV1FD�oV$1FD�oVV1Ve11FD�vnnUORR6g2UORR6H2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2UO[UU1Qk2J�	J�	J�	V1V11V$1VB11FD~vnnUORR6H2UORR6g2UORR62UORR6�2UORR6*2UORR6�2J�	V1V!11FD�vnnUOROR2[ 2UORO#R2[ 2UORO%R2[ 2UORO'R2[ 2UORO'R2[ 2UORO)R2[ 2J�	P!)r	c�:�RR6!r.r]�r�rs��r)rr�8Oddballs.test_date_datetime_comparison.<locals>.<lambda>�	����Q�r,c�:�RR6*!r.r]r�	s��r)rrr�	�	����a�r,c�:�RR6�!r.r]r�	s��r)rrr�		r�	r,c�:�RR6�!r.r]r�	s��r)rrr�	
r�	r,)rr
rr�rrrr	r3r"r?r@r�r�r'�__eq__�NotImplemented�__ne__�__lt__�__gt__�__ge__)	r(�as_date�as_datetime�date_sc�datetime_scr�r{r�rs	&      @@r)�test_date_datetime_comparison�&Oddballs.test_date_datetime_comparison�s2����*�*�,���&�&�w���7���w�|�|�W�]�]�G�K�K�H��&�w�|�|�W�]�]�'.�{�{�A�q�!�=���#�A�"�0���G�b�W�,�D�A�q��O�O�A��F�+��$�$�Q�!�V�,��%�%�i��?��%�%�i��@��%�%�i��?��%�%�i��@�
-�1�$��'��'�!�/�!�/�1�D�A�q�
�O�O�A��F�#����Q�!�V�$����Q��U�#����Q��U�#��O�O�A��F�#��O�O�A��F�#�1��*�[�,B�B�D�A�q����Q�X�X�a�[�.�9����Q�X�X�a�[�.�9����Q�X�X�a�[�.�9����Q�X�X�a�[�.�9����Q�X�X�a�[�.�9����Q�X�X�a�[�.�9�
Cr,c	��UO[29^tt^2[O2oPPP2[O
2[
2W[2[2[[221FD0oUO[29^tt^2]UmPPP2J2	P!)%fhK�9h)%fhJZ9hr.)
r�r�rr�rr
rrrrr��AttributeErrorr)r(r�r�s&  r)�test_extra_attributes�Oddballs.test_extra_attributes&s���
�
�
�0�
1�
1��_�_�&�F�2��*�*�,��&���+��(��9�;�'�)�A��"�"�>�2�2����3�2�
)�2�
1��3�2�2�s#�B8�"C	�8C	�C	�C
�C
c
��QQ2oQQ[2oQUQ2[O]
2[OQ2U]
2UQ2Q1FD�oUO[[
U]
]
]
]
]
]
2	UO[[
]
U]
]
]
]
]
2	UO[[
]
]
U]
]
]
]
2	UO[[
]
]
]
U]
]
]
2	UO[[
]
]
]
]
U]
]
2	UO[[
]
]
]
]
]
U]
2	UO[[
]
]
]
]
]
]
U2	J�	P!)c�.`�\sQsQsnQsQsQsUsP!)�-Oddballs.test_check_arg_types.<locals>.Numberi3c��VmP!r.��value)r(r�	s&&r)rs�6Oddballs.test_check_arg_types.<locals>.Number.__init__4s��"�
r,c��UO!r.r�	r1s&r)�__int__�5Oddballs.test_check_arg_types.<locals>.Number.__int__6s���z�z�!r,r�	)rIr^r_r`rsr�	rarbrcs@r)�Numberr�	3s����
#�
"�
"r,r�	c��\sQsQsQsP!)�,Oddballs.test_check_arg_types.<locals>.Floati9r]rr]r,r)�Floatr�	9rar,r�	g$@g������%@z10.9�10)r�r�r�r�r�r)r(r�	r�	�xxs&   r)�test_check_arg_types�Oddballs.test_check_arg_types2s*��	"�	"�	�E�	���t���?�?�2�&�����(?��"�:�v�d�|���B�
���i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N����i��2�r�2�r�2�r�2�N�r,r])	rIr^r_r`r�	r�	r�	rarbrcs@r)r�	r�	�s����+:�Z
�O�Or,r�	c�(`�\sQsQsnQsQsUsP!)�tzinfo2iNc�P�[U[2%f[Q2gUOUIc[	Q2gUO]Q5O
2oUO]Q5O
2oUdUdUO2e[gV#6Xc!V*oUO
2oV#6XcU!V#1FDQoV*oUO
2U6XcUt!UO]Q5oUO
2U6XfJNUt!	[	Q2g)�*datetime in UTC -> datetime in local time.�&fromutc() requires a datetime argument�dt.tzinfo is not selfrpzNo suitable local time found)rkrr�rrr8r|r�)r(r{�off0�off1�ldt�offs&&    r)r��tzinfo2.fromutcPs����"�h�'�'��D�E�E�
�9�9�D� ��4�5�5��z�z�q�z�!�+�+�-���z�z�q�z�!�+�+�-���<�4�<�2�6�6�8�+;����<��)�C��=�=�?�D��|��
��<�C��(�C��}�}��#�%��
��+�+�1�+�%�C��}�}��#�%��
�
 ��7�8�8r,r]r�	rcs@r)r�	r�	Ns����9�9r,r�	c�@`�\sQsQsnQsQsQsQsQsQs	Us
P!)�USTimeZone2ipc�N�[UQ5UmV mV0mV@mP!r8	r9	r>	s&&&&&r)rs�USTimeZone2.__init__rr@	r,c��UO!r.rB	r1s&r)rw�USTimeZone2.__repr__xr~r,c�b�UOU2%c
UO!UO!r.rE	rzs&&r)r��USTimeZone2.tzname{rG	r,c�H�UOUOU2*!r.rI	rzs&&r)r|�USTimeZone2.utcoffset�rK	r,c�>�UdUOe[![[O	UO
Q52o[[O	UO
Q52oUO	PQ5oU[*St96:cU6c	[!X1t96:cU[*6c"LLUO%c[![!X!t96:cU[*6c'L[!UO%c[![![!rM	)	rrr4	rN	r8rrO	r$rqrP	s&&  r)r��USTimeZone2.dst�s���
�:����*��K�)��)9�)9�r�w�w�)9�)G�H��'�v�~�~�2�7�7�~�'C�D��
�Z�Z�t�Z�
$���4�<�2�#��#��K�$��
#��t��
#��7�7�7�4�,��,�
�
'�5�4�<�
'�
�K��7�7�7�4�,��,��Kr,rS	rT	rcs@r)r�	r�	ps#������ �-��r,r�	�Eastern2�Central2�	Mountain2�Pacific2c�F`�\sQsQsnQsQsQsQsQsQs	Qs
UsP!)	�Europe_Vilnius_1941i�c	�D�[Q]]]UQ5[Q]]]UQ5,!��r�rr1s&r)�	_utc_fold�Europe_Vilnius_1941._utc_fold�s,����q�"�b��6���q�"�b��6�8�	8r,c	�D�[Q]]]UQ5[Q]]]UQ5,!r�	r�	r1s&r)�	_loc_fold�Europe_Vilnius_1941._loc_fold�s,����q�"�b��6���q�"�a��5�7�	7r,c���UO2vq#V6c][*!V6c-UO%c][*!][*!][*!)r��r�	r$rq�r(r{�
fold_start�	fold_stops&&  r)r|�Europe_Vilnius_1941.utcoffset��J�� $��� 0��
�
�?��t�8�O�
�>�����A�4�/�/�a�4�/�/��4�x�r,c���UO2vq#V6c][*!V6c-UO%c][*!][*!][*!r�r�	r�	s&&  r)r��Europe_Vilnius_1941.dst�r
r,c�n�UO2vq#V6cQ!V6cQUO*!Q!)�MSK�CEST)r
r
)r�	rqr�	s&&  r)r��Europe_Vilnius_1941.tzname�s0�� $��� 0��
�
�?��
�>�"�2�7�7�+�+�r,c��UOQ6wc[gUO2vq#V6cU][**!V6c%U][**O	]Q5!U][**!)r�	rp)rr�r�	r$r8r�	s&&  r)r��Europe_Vilnius_1941.fromutc�sf���7�7�d�?�%�%� $��� 0��
�
�?���D��=� �
�>���T��M�*�*��*�2�2��A��H�}�r,r])rIr^r_r`r�	r�	r|r�r�r�rarbrcs@r)r�	r�	�s(����8�7�����r,r�	c�x`�\sQsQsnQsQsQsQsQsQs	Qs
\OQ	2Q
2s
\OQ2Q2sQ
s\OQ	2Q2s\OQ2Q2s\OQ	2Q2sQsQsQsQsQsQsQsQsQsQsUsP!)�TestLocalTimeDisambiguationi�c
�b�[2o[Q]]]];];[OQ5oUO	U2oUOUO
Q2Q2UOUO]2UOUO22[Q]]][OQ5oUO	U2oUOUO
Q2Q2UOUO]2UOUO22[Q]]][OQ5oUO	U2oUOUO
Q2Q2UOUO]2UOUO22P!)r�	rz%a %b %d %H:%M:%S %Y %Z%zz!Mon Jun 23 23:59:59 1941 MSK+0300z"Mon Jun 23 23:00:00 1941 CEST+0200z"Tue Jun 24 00:00:00 1941 CEST+0200)r�	rrr0rpr'r�rqr@r�r?)r(�Vilnius�gdtr�	s&   r)�test_vilnius_1941_fromutc�5TestLocalTimeDisambiguation.test_vilnius_1941_fromutc�sE��%�'���t�Q��B��B�x�|�|�D���n�n�W�%��������&A�B�<�	>�������1�%��������#��t�Q��B�x�|�|�<���n�n�W�%��������&A�B�=�	?�������1�%�������	�"��t�Q��B�x�|�|�<���n�n�W�%��������&A�B�=�	?�������1�%�������	�"r,c��[2o[Q]]]];];UQ5oUO[O2oUOUO
Q2Q2[Q]]]];];UQ5oUO[O2oUOUO
Q2Q2[Q]]]];];U]Q5oUO[O2oUOUO
Q2Q2[Q]]]UQ5oUO[O2oUOUO
Q2Q2P!)r�	rz%a %b %d %H:%M:%S %Y %ZzMon Jun 23 19:59:59 1941 UTCzMon Jun 23 20:59:59 1941 UTC)rrqzMon Jun 23 21:59:59 1941 UTCzMon Jun 23 22:00:00 1941 UTC)r�	rrprr0r'r�)r(r
r�	r
s&   r)�test_vilnius_1941_toutc�3TestLocalTimeDisambiguation.test_vilnius_1941_toutcs"��%�'���t�Q��B��B�w�?���n�n�X�\�\�*��������&?�@�7�	9��t�Q��B��B�w�?���n�n�X�\�\�*��������&?�@�7�	9��t�Q��B��B�w�Q�G���n�n�X�\�\�*��������&?�@�7�	9��t�Q��A�g�6���n�n�X�\�\�*��������&?�@�7�	9r,c
�D�[]]Q5o[]]]]Q5oUOUO]2UOUO]2UO	[
29^tt^2[]]]]P]2PPP2P!)%fhP!9h�r	rp)rrr'rqr�r��r(r�r{s&  r)�test_constructors�-TestLocalTimeDisambiguation.test_constructorssw�����O��
�a��A�A�
&���������#�������!�$�
�
�
�y�
)�
)���A�q�!�T�1�%�*�
)�
)�
)�s�3B�B	�B	c���[]]]]Q5oUO2oUOUO]2UO	2oUOUO]2P!�r$rp)rrr'rqr�)r(r{r�s&  r)�test_member�'TestLocalTimeDisambiguation.test_membersP��
�a��A�A�
&���G�G�I���������#��I�I�K���������#r,c
��[]2o[]]]2oUOUO]Q5O]2UOUO]Q5O]2UOUO]Q5O]2UOUO]Q5O]2UO][
Q5oUO][
Q5oUOUOPQ5O]2UOUOPQ5O]2UO
[29^tt^2UO]Q5PPP2UO
[29^tt^2UO]Q5PPP2UO
[29^tt^2UO]]]P]2PPP2UO
[29^tt^2UO]]]]]]]P]2	PPP2P!)%fhK�9h)%fhK�9h)%fhKw9h)%fhP!9h)r	rp)rqrr)	rrr'r8rqr7r�rr�r
s&  r)rL�(TestLocalTimeDisambiguation.test_replace&s�����G��
�a��A�
����������*�/�/��3���������+�0�0�!�4���������*�/�/��3���������+�0�0�!�4�
�I�I�1�W�I�-��
�Z�Z�Q�w�Z�
/��������$��/�4�4�a�8�������4��0�5�5�q�9�
�
�
�z�
*�
*�
�I�I�1�I��+�
�
�
�z�
*�
*��J�J�A�J��+��
�
�y�
)�
)�
�I�I�a��A�t�Q�'�*�
�
�
�y�
)�
)��J�J�q�!�Q��1�a��D�!�4�*�
)�+�
*��
*�
*��*�
)��
)�
)�
)�sH�-H<�%I�I"�I5�<I	�I	�I	�I	�"I2	�+I2	�5J	�>J	c��[]2o[]]]2oUOVO]Q52UOV"O]Q52P!r
)rrr'r8r
s&  r)rA�+TestLocalTimeDisambiguation.test_comparison=sK����G��
�a��A�
������I�I�1�I�-�.�����Z�Z�Q�Z�/�0r,c	��[]2o[]]]2oUO[U2[UO	]Q522UO[U2[UO	]Q522P!r
)rrr'r�r8r
s&  r)�	test_hash�%TestLocalTimeDisambiguation.test_hashCsa����G��
�a��A�
������a��$�q�y�y�a�y�'8�"9�:�����b��4��
�
��
�(:�#;�<r,r�c���Qo[OU2o[OUQ*2oUOUO]2UOUO]2P!)iX�UTr�)rr`r'rq)r(r#�dt0r�s&   r)rb�.TestLocalTimeDisambiguation.test_fromtimestampIsS�����$�$�Q�'���$�$�Q��X�.��������1�%�������1�%r,zAustralia/Lord_Howec��[OQ2o[OQU2Q6wcUOQ2Qo[O
U2o[O
UQ*2oUO
V42UO
UO]2UO
UO]2P!)�����A�%Z%z�	LHST+1030�>Australia/Lord_Howe timezone is not supported on this platformi�U�)r�r�r�rJrr`r'rq)r(�tmr#r�r�s&    r)�test_fromtimestamp_lord_howe�8TestLocalTimeDisambiguation.test_fromtimestamp_lord_howeQs���
�_�_�U�
#���>�>�&�"�%��4��M�M�Z�[�

��
�
#�
#�A�
&��
�
#�
#�A��H�
-������ �������!�$�������!�$r,c�h�UO[O]2O]2P!r�)r'rr`rqr1s&r)�%test_fromtimestamp_low_fold_detection�ATestLocalTimeDisambiguation.test_fromtimestamp_low_fold_detectionas%��	
����/�/��2�7�7��;r,c��[Q]]]]2oUO]Q5oUOUO2Q*UO22P!)r�rpr�)rr8r'r�)r(r&
r�s&  r)�test_timestamp�*TestLocalTimeDisambiguation.test_timestampfsH���t�R��A�r�*���k�k�q�k�!���������4�/�����	*r,c�^�[OQ2o[OQU2Q6wcUOQ2[	Q]]]]-2oUO]Q5O
2oUO]Q5O
2oUOUQ*U2P!)r)
r*
r+
r,
rrpr-
)r�r�r�rJrr8r�r')r(r.
r��s0r@s&    r)�test_timestamp_lord_howe�4TestLocalTimeDisambiguation.test_timestamp_lord_howems���
�_�_�U�
#���>�>�&�"�%��4��M�M�Z�[��T�1�a��B�'��
�Y�Y�A�Y�
�
(�
(�
*��
�Y�Y�A�Y�
�
(�
(�
*������d��B�'r,c��[Q]]]]2oUO]Q5oUO2oUO2oUOUO	2Q2UOUO	2Q2UOU[
*U2UOUO]2UOUO]2P!)r�rprUr�)rr8rpr'r�r$rq)r(r&
r��adt0�adt1s&    r)rw�+TestLocalTimeDisambiguation.test_astimezonews����t�R��A�r�*���k�k�q�k�!���~�~����~�~�����������.���������.�������d�+�������A�&�������A�&r,c�:�[]Q5o[]]]]Q5o[FDsvq4oV1FDeoUOVe2oUO	U2oUOVh2SOU]6c]LUOUO2Jg	Ju	P!r
)rrr�r�r�r'rq)	r(r�r{r�r�r�r�r#rs	&        r)�test_pickle_fold�,TestLocalTimeDisambiguation.test_pickle_fold�s����a�L��
�a��A�A�
&��)7��%�G���W���M�M�!�+���O�O�A�&��� � ��&�� � �u�q�y�!�a�f�f�q�v�v�F�	�*8r,c��[]Q5o[]]]]Q5oUO[U2Q2UO[U2Q2P!)r$rpzdatetime.time(0, 0, fold=1)z(datetime.datetime(1, 1, 1, 0, 0, fold=1))rrr'r�r
s&  r)r��%TestLocalTimeDisambiguation.test_repr�sH���a�L��
�a��A�A�
&������a��"?�@�����b��C�	Er,c��[Q]
]][Q5[O*
o[Q]
]][Q5oUO	UO2[2UO	UO2[2UO	UO]Q5O2[2UO	UO]Q5O2[2QFDpo[Q]
]]U[Q5oUO	UO2[2UO	UO]Q5O2[2Jr	QFDpo[Q]]]U[Q5oUO	UO2[2UO	UO]Q5O2[2Jr	P!)rrrprz	)	rr�	rr(r'r�r$rr8)r(�	dt_summer�	dt_winterr�r{s&    r)r-�$TestLocalTimeDisambiguation.test_dst�s_���T�2�r�1�X�>��AU�AU�U�	��T�2�r�1�X�>�	��������$�/��������$�/�����*�*��*�2�6�6�8�$�?�����*�*��*�2�6�6�8�$�?�"�F��$��B��6�(�C�B����R�V�V�X�t�,����R�Z�Z�Q�Z�/�3�3�5�t�<�"�"�F��$��1�a���A�B����R�V�V�X�t�,����R�Z�Z�Q�Z�/�3�3�5�t�<�"r,c��[Q]
]][Q5[O*
o[Q]
]][Q5oUO	UO2Q[*2UO	UO2Q[*2UO	UO]Q5O2Q[*2UO	UO]Q5O2Q[*2P!)rrrprVr3)rr�	rr(r'r|r$r8)r(rE
rF
s&  r)r'�*TestLocalTimeDisambiguation.test_utcoffset�s����T�2�r�1�X�>��AU�AU�U�	��T�2�r�1�X�>�	�����,�,�.��T�	�:�����,�,�.��T�	�:�����*�*��*�2�<�<�>��T�	�J�����*�*��*�2�<�<�>��T�	�Jr,c	���[Q]
]][Q5[O*
o[Q]
]][Q5o[O	U2o[O	U2oUOV1][**
2UOVB][**
2UOUO]2UOUO]2[Q]
]]][Q5o[O	U2oU[*
o[O	U2oUOVg2UOUO]2UOUO]2[Q]
]]][Q5o[O	U2oUOUOUO1Q2[Q]
]]][Q5o[O	U2oUOUOUO1Q2[Q]]]][Q5o[O	U2oUOUOUO1Q2P!)rr)�r�)rr$)r�r�)
rr�	rr(r�r'r$rqr3r)	r(�u_summer�u_winter�t_summer�t_winterr�r�r�r�s	&        r)r;�(TestLocalTimeDisambiguation.test_fromutc�s����D�"�b�!�H�=�	�@T�@T�T���D�"�b�!�H�=���#�#�H�-���#�#�H�-������a�$�h�#6�7�����a�$�h�#6�7��������*��������*�
�T�2�r�1�b��:��
�
�
�a�
 ��	�T�	��
�
�
�a�
 ������ �������!�$�������!�$��T�2�r�1�b��:�����Q������!�%�%�����(�3��T�2�r�1�b��:�����Q������!�%�%�����'�2�
�T�1�a��A�h�7�����Q������!�%�%�����'�2r,c��[Q]][Q5oUOVO[O
22[Q]][Q5oUOVO[O
22P!)r�r)rr�	r'rprr0r�s& r)�test_mixed_compare_regular�6TestLocalTimeDisambiguation.test_mixed_compare_regular�sX���T�1�a��1������L�L����6�7��T�1�a��1������L�L����6�7r,c	��[Q]
]]]-[Q5oUO[O2oUOV2UOV!2P!�rr�rr�	rprr0r)r(�t_fold�
t_fold_utcs&  r)�test_mixed_compare_fold�3TestLocalTimeDisambiguation.test_mixed_compare_fold�sF���$��B��2�h�?���&�&�x�|�|�4�
����F�/����J�/r,c	��[Q]]]]-[Q5oUO[O2oUOV2UOV!2P!rU
rV
)r(�t_gap�	t_gap_utcs&  r)�test_mixed_compare_gap�2TestLocalTimeDisambiguation.test_mixed_compare_gap�sF����q�!�Q��8�<���$�$�X�\�\�2�	����E�-����I�-r,c	��[Q]][Q5oUO[U2[UO	]Q522[Q]
]]]-[Q5o[Q]]]]-[Q5oUO[U2[UO	]Q522UO[U2[UO	]Q522P!)r�rrpr)rr�	r'r�r8)r(r�rW
r\
s&   r)�test_hash_aware�+TestLocalTimeDisambiguation.test_hash_aware�s����T�1�a��1������a��$�q�y�y�a�y�'8�"9�:��$��B��2�h�?����q�!�Q��8�<������f��t�F�N�N��N�,B�'C�D�����e��d�5�=�=�a�=�+@�&A�Br,r])rIr^r_r`r
r
r
r
rLrAr#
rr�rbr/
r2
r5
r9
rwr@
r�r-r'r;rR
rY
r^
ra
rarbrcs@r)r
r
�s����#�09�.&�$�5�.1�=�
���3�4�&�5�&�
���.�/�
%�0�
%�<�

���3�4�*�5�*�
���.�/�(�0�(�
���3�4�'�5�'�G�E�=�6K�3�B8�0�.�C�Cr,r
c�b�[OU2vq[UP2[V2!r.)r9�tee�nextr)�iterabler�r�s&  r)�pairsrg
�s%���=�=��"�D�A���D�M��q�9�r,c�`�\sQsQsnQsQs\Q2s\Q2s	\Q2s
\Q]]2O2s
QsQ	sQ
sQsQs\QQ
k2s\QQk2sQsQs\QQk2sQsQsQsQsUsP!)�ZoneInfoi�z/usr/share/zoneinfoc�L�VmV mUOV2UmP!)z�

:param ut: array
    Array of transition point timestamps
:param ti: list
    A list of (offset, isdst, abbr) tuples
:return: None
)�ut�ti�invertr)r(rk
rl
s&&&r)rs�ZoneInfo.__init__s�������+�+�b�%��r,c��[QU2[QU21oU%c�U]*]*[*oU]*]99*U*
tt$U]*]99*U*
tt$[][U22FDroU]*U99*V]*
*]*[**
tt$U]*U99*V*]*[**
tt$Jt	U!)r�)r�SECr�r�)rk
rl
rrqr�s&&   r)rm
�ZoneInfo.invert
s����C��n�e�C��n�
-��
���U�1�X��_�F��q�E�!�H���H��q�E�!�H���H��1�c�"�g�&���1��a��B��s�G�A�J�#�-�-���1��a��B�E�!�H��O�+��'��	r,c
��UO]2O2Q6wc[Q2gUO] 2[	Q2oUOU]2[OQ6wcUO2[	Q2oUOV]*2[OQ6wcUO2[	Q2oUOV]*2,o[U]*2FD8oUO[OQUO]222J:	UOU]*2o[U2FD;vovq�o
VzUO]U
2O2o[]U2V�1VV$J=	P,[!U2*o[U2FDvqmV]*V�$J	UV<2oU!)r�TZifznot a zoneinfo filer�r�r�z>lbb)�read�decoder�seekr�fromfilerG�	byteorder�byteswapr�r��struct�unpackrE�findrr�)rG�fileobj�countsrk
�type_indices�ttisr��abbrs�gmtoff�isdst�abbrind�abbrrl
�idxr(s&&             r)rw
�ZoneInfo.fromfiles{���<�<��?�!�!�#�v�-��2�3�3����R���s��������#��=�=�E�!��O�O��
�3�Z��
���G�A�Y�'��=�=�E�!��K�K�M��S�z�����g�a�y�1����v�a�y�!�A��K�K��
�
�f�g�l�l�1�o�>�?�"����V�A�Y�'��,5�T�?�'�A�'��w�����A�w�!7�8�?�?�A�D� ��F�+�U�9�D�G�,;��V�c�"�g�
����-�F�A��I�B�E�.��2�{���r,c���[OOUOU2o[	UQ29^tt^2oUOU2ttPPP2!)%fhP!9h)�rb)�os�pathr�zoneroot�openrw
)rGrCr�
r�s&&  r)�fromname�ZoneInfo.fromname>sC���w�w�|�|�C�L�L�$�/��
�$��
�
���<�<��?��
�
�
�s�A�A-	�%A-	rc��[U[2%f[Q2gUOUIc[	Q2gUO2UO*
Q*UOQ**UO]<**UO*oV O]*6cUO]*o]oL}[OUOU2oUOU]*
UvqcU]*U]**
oU[]V OU]*
**
26�oV]**
oU%cUO]Q5!U!)r�	r�	r�	r�r�rp)rkrr�rrr�EPOCHORDINALrr�r�rk
rl
�bisect�bisect_rightrr8)r(r{r��ttirqr�
�tti_prev�shifts&&      r)r��ZoneInfo.fromutcFs$���"�h�'�'��D�E�E�
�9�9�D� ��4�5�5��l�l�n�t�'8�'8�8�E�A��w�w��~�&��y�y�2�~�&��y�y�!�	�
�w�w�q�z�!��'�'�!�*�C��D��%�%�d�g�g�y�9�C�!�G�G�C��E�#�.�M�H��Q�K�#�a�&�(�E��I�a��W�W�S��U�^�)C�D�D�D�
�!�f�����:�:�1�:�%�%��Ir,c��UO2UO*
Q*UOQ**UO]<**UO*oUO
UO*o[OVC2oUO[]U]*
2*U*!)r�r�)rr�
rr�r�rrqr�
r�
rl
r�)r(r{r�r�rr�
s&&&   r)�_find_ti�ZoneInfo._find_tids����l�l�n�t�'8�'8�8�E�A��w�w��~���y�y�2�~���y�y��	��W�W�R�W�W�
���!�!�"�0���w�w�s�1�c�A�g��'��*�*r,c�(�UOU]2!r��r�
rzs&&r)r|�ZoneInfo.utcoffsetn����}�}�R��#�#r,c�P�UOU]2oU%c[![!r�)r�
rr$)r(r{r�
s&& r)r��ZoneInfo.dstqs!���
�
�b�!�$��
�t�&�$�&r,c�(�UOU]2!)r�r�
rzs&&r)r��ZoneInfo.tznameyr�
r,c#� �Ue
UOo[OOUQ2o[	U2oS9^tt^2SFDPoUO
2oU%fJUOQ2%cJ6UO2]*w�JR	PPP2P![
cP!h9h)%fhP!9h3h)Nzzone.tab�#)	r�
r�
r�
rr�
r��stripr@r�)rG�zonedir�zone_tabr��lines&&   r)�	zonenames�ZoneInfo.zonenames|s�����?��l�l�G��7�7�<�<���4��	��X��A��Q����z�z�|���4����� 4� 4��*�*�,�q�/�)���Q���	��	��
�Q�Q�s]�C�,C�B,�
C�
B>�+B>�B>�"
C�,	B;�6B;�7C�:B;�;C�>C	�C	�		Cc�8�]9o9o9qE[O9qg[9q�[O9q�P9q�[O9q�P9oo[U]]2oUO2FCDoU]*
oUO
U2oUO2FD�vooUU6cJU[6�cYU]*
oUU1V�16�cSoSo
SoU[OU*
1U[OU
*
16c	SoSoSo
JpJrU[6c\U]*
oU'oUU1V�16�cSo	SoSoU[OU*
1U[OU*
16c	SoSoSoJ�J�U]*
oJ�	CJ	V4U1o[QU*2[Q[U21U**2[QU8Q
QU
8QU802[QU8Q
QU8QU
802[QU8Q
QU8QU802[Q	U	8Q
QU8QU802P!)
r	zNumber of zones:       %5dz@Number of transitions: %5d = %d (gaps) + %d (folds) + %d (zeros)zMin gap:         z>16z at z in zMax gap:         zMin fold:        zMax fold:        )
rr�rrr�r�
r�
�transitions�printrT)rG�
start_year�count�	gap_count�
fold_count�zeros_count�min_gap�min_fold�max_gap�max_fold�min_gap_datetime�max_gap_datetime�min_gap_zone�max_gap_zone�min_fold_datetime�max_fold_datetime�
min_fold_zone�
max_fold_zone�stats_since�zonenamer�r{r�
�trans_countss&&                      r)�stats�ZoneInfo.stats�s��78�8��8�	�8�J�&�]�]�*��!�!��.6�l�l�:��&*�*��08���<��(,�,�
�
��z�1�a�0���
�
���H��Q�J�E����h�'�B��^�^�-�	��E���#���4�<���N�I��r�{�g�%@�@�"'��'/��+-�(��x�|�|�b�0�1�W�h�l�l�M]�>]�4^�^�"'��'/��+-�(�_��T�\��!�O�J�"�F�E��r�{�h�%B�B�#(��(0�
�,.�)��x�|�|�b�0�1�X�x�|�|�N_�?_�4`�`�#(��(0�
�,.�)�a�
 �1�$�K�3.�(�:"�{�;��
�*�U�2�3�
�P��L�!�#�l�2�4�	5�
�W�>N�P\�]�^�
�W�>N�P\�]�^�
�X�?P�R_�`�a�
�X�?P�R_�`�ar,c#�� �[[UOUO22FD=vvqvq4U]*U]**
o[[UQ5*U1w�	J?	P!3hr�)rg
rrk
rl
�EPOCH_NAIVEr�r(�_�prev_tir�rl
r�
s&     r)r�
�ZoneInfo.transitions�sT���%*�3�t�w�w����+@�%A�!�L�Q�'�1��q�E�G�A�J�&�E���1�!5�5��=�=�&B�s�A/A1c#�B �[[UOUO22FDkvvqvq4U]*U]**
oU[6fJ.U]*U]*6XfJE[[U2U'U]*U]*1w�	Jm	P!3h)zLFind all folds with the same value of isdst on both sides of the transition.)rg
rrk
rl
r�_utcfromtimestamprr�
s&     r)�nondst_folds�ZoneInfo.nondst_folds�su���%*�3�t�w�w����+@�%A�!�L�Q�'�1��q�E�G�A�J�&�E��t�|��1����� 3�'��!�5��v�w�q�z�2�a�5�P�P�&B�s�AB�B�3,Bc
��]oUO2FDnoUOU2oUO2FDEvqgq�UOU6fU%c	V�6wcJ'U]*
o[	QV4VgV�1*2JG	Jp	P!)r	z%3d) %-30s %s %10s %5s -> %s)r�
r�
r�
rr�
)
rG�	same_abbrr�
r�
r�
r�r{r�
�	prev_abbrr�
s
&&&       r)�print_all_nondst_folds�ZoneInfo.print_all_nondst_folds�sw�����
�
��H����h�'�B�.0�o�o�.?�*��9��7�7�Z�'�9��9J����
���4���9�C�D�E�	/@�(r,c#�l �UO2FDvqU[6fJV'1w�	J	P!3hr.�r�
r�r(r�r�
s&  r)�folds�ZoneInfo.folds�s*����(�(�*�H�A��t�|���i��+�s� 4�
4c#�j �UO2FDvqU[6�fJV1w�	J	P!3hr.r�
r�
s&  r)�gaps�
ZoneInfo.gaps�s(����(�(�*�H�A��t�|��h��+�s� 3�3c#�b �UO2FDvqU%cJUw�	J	P!3hr.)r�
r�
s&  r)�zeros�ZoneInfo.zeros�s$����(�(�*�H�A��5���+�s�/�/)rrl
rk
r.r�)Fr$)rIr^r_r`r�
rsrWrm
�classmethodrw
r�
rrr�
r�r�
r|r�r�r�
r�
r�
r�
r�
r�
r�
r�
rarbrcs@r)ri
ri
�s�����$�H�&��	��	��"��"�H�#��#�
��a��#�-�-�/�L��<+�$�'�$��*��*��-b��-b�`>�
Q��	E��	E� �
�
�r,ri
c�`�\sQsQsnQsQsQsQsQs\	\
OQ22s\
O\\Q2Q	2Q
2sQsUsP!)�ZoneInfoTesti�zAmerica/New_Yorkc�b�[OQ6XcUOQ2[OQ6XcUOQ2[O	UO
2UmP![c/oSOQSO
8QS802Po=P!Po=hh9h)�vxworksz"Skipping zoneinfo tests on VxWorksr�z"Skipping zoneinfo tests on Windowsz	Skipping z: )rGr�rJri
r�
r�
r��FileNotFoundError)r(�errs& r)r��ZoneInfoTest.setUp�sz���<�<�9�$��M�M�>�?��<�<�7�"��M�M�>�?�	D��'�'��
�
�6�D�G�� �	D��M�M�t�}�}�c�B�C�C��	D�s�$A5�5	B.�?B.�#B)�)B.c���UOUOPQ5UO[UO21UOPQ5UO[UO212P!)Nr)r'r8rq�idr)r(r�r�s&&&r)�assertEquivDatetimes�!ZoneInfoTest.assertEquivDatetimes�sR�����!�)�)�4�)�0�!�&�&�"�Q�X�X�,�G��)�)�4�)�0�!�&�&�"�Q�X�X�,�G�	Ir,c��UOoUO2FCD�vq#]U*QU*U[O*
1FCDoV$*oUO	UOUQ52oUO
UO]2UO[OQ5OU2oUOVv2UO2oUO
UOPQ5VX*2UOUO[O2UO[OQ52CJ	[O'U1FDJoV$*oUOUQ5oUO	U2oUO
UO]2JL	CJ�	P!)r	r�r)
r�r�
rr(r�r8r'rqrr0rpr�
r|�	r(r�r{r�
r��udtr�	�adtr|s	&        r)�
test_folds�ZoneInfoTest.test_folds�sO��
�W�W�������I�B��%�i��u��e�i�6J�6J�.J�K���f���j�j����B��!7�8��� � ����1�-��k�k����k�6�A�A�"�E���)�)�#�3��M�M�O�	�� � ����D��!9�3�?�K��)�)�#�.�.����*F�*-�+�+�X�\�\�+�*J�L�L�!�+�+�+�U�3���f���k�k��k�,���j�j��o��� � ����1�-�	4�$r,c�&�UOoUO2FCD�vq#]U*QU*U[O*
1FCDYoV$*oUO	UQ5oUOU2oUO
UO]2UO	[OQ5OU2oUOVv2UO2oUO
UO	PQ5UO	PQ5U*2UOUO	UQ52U*
U*oUOUO	]Q5O2UO	]Q5O2QU*2CJ\	[O'U1FDHoV$*oUOUO	UQ52oUO
UO]2JJ	CJ�	P!)r	r�rrpzAt %s.)r�r�
rr(r8r�r'rqrr0rpr�
r|�
assertLessr�
s	&        r)�	test_gaps�ZoneInfoTest.test_gapss���
�W�W�������I�B��%�i��u��e�i�6J�6J�.J�K���f���k�k��k�,���j�j��o��� � ����1�-��k�k����k�6�A�A�"�E���)�)�#�3��M�M�O�	�� � ����D��!9�3�;�;�d�;�;S�V_�;_�`��j�j����2��!6�7�%�?�!�C���������� 3� =� =� ?� #����� 3� =� =� ?� (�3��0�L�!�+�+�+�U�3���f���j�j����B��!7�8��� � ����1�-�4�!#r,c#� �[O29^tt^2oVQ$[O2Pw�PPP2[O2P!)%fhK'9h[O2h9h3h)�TZ)r�EnvironmentVarGuardr��tzset)rG�
new_tzinfo�envs&& r)�
_change_tz�ZoneInfoTest._change_tz"sR���	��.�.�0�0�C�&�D�	����
��1�

�K�K�M�1�0��

�K�K�M�s9�B
�A3�A �A3�	B
� A0	�)A0	�+A3�3B
�
B
r�
z"time module has no attribute tzsetc�P�QUO7f"UOOQ2%c#UOQUO*2UOoUO	UO29^tt^2UO2FCD�vq#UOQ6�cCL�U[Q]]2*
[*oU[*oQQP]U]*
UQ	*UQ
*1FDyoVF*o[OU2o[OVq2OPQ5o	UOV�2UO2o
UOVz2J{	U]6�fJ�[OU2U]**
oUO2oUO]Q5O2o
UOV�U]**2UOV�U]**
2UO[O 2oUO]Q5O[O 2oUOV�[#]U2*2CJ�	PPP2P!)%fhP!9h)�Riyadh8zright/zSkipping %si�rrrpi���i��i@i�2)r�
r@rJr�r�
r�
rrrp
r`r8r�
r�r'rprr0r)r(r�r�
r�
r8
r>r�r#�sdt�tzdtr@r{�ts0�ts1�utc0�utc1s&               r)�test_system_transitions�$ZoneInfoTest.test_system_transitions-s���
����&��
�
�(�(��2�2��M�M�-�$�-�-�7�8�
�W�W��
�_�_�T�]�]�
+�
+� �n�n�.�.�
���8�8�t�#���H�T�1�a�0�0�S�8���c�\��$�j�"�a��q�&�"�y�.�"�y�.�B�A���A�"�0�0��3�C�#�1�1�!�8�@�@��@�M�D��-�-�c�8�����B��$�$�Q�+�B���6�!�/�/��3�e�a�i�?�B��,�,�.�C��*�*�!�*�,�6�6�8�C��$�$�S�r�A�v�+�6��$�$�S�r�A�v�+�6��=�=����6�D��:�:�1�:�-�8�8����F�D��$�$�T�)�A�r�2B�+B�C�3/�,�
+�
+�
+�s �(J�.CJ�DJ�J%	�J%	rV)rIr^r_r`r�
r�r�
r�
r�
r�
�
contextlib�contextmanagerr�
r��
skipUnlessrr�rrarbrcs@r)r�
r�
�sp����!�H�D�I�.�,.�.�������������w��!E��%D��%Dr,r�
c�4``�\sQsQsnU1QksQsUsU9s!)�ZoneInfoCompleteTestiXc	�J:�,o[Q2%c[O2FDeo[QU*[1-2oV#m[
U2FD3oUOQ2%fJUOUU22J5	Jg	[RU_)U2P!)�tzdatazZoneInfoTest[%s]�test_)rri
r�
r�r�
r�
r5r@r��superrs)r(rnrC�Test�methodrHs&    �r)rs�ZoneInfoCompleteTest.__init__Ys������x�(�(� �*�*�,���.��5����K�� $�
�!�$�i�F��(�(��1�1����T�&�\�2�(�-�	����r,r])rIr^r_r`rsrarb�
__classcell__)rHrds@@r)r
r
Xs����	 �	 r,r
c��\sQsQsQsQsP!)�IranTestiezAsia/Tehranr])rIr^r_r`r�
rar]r,r)rres���Hr,rzneed _testcapi modulec�`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
QsQ
sQsQsQsQsQsQsQsQsQsQsQsUsP!)�CapiTestiic��UOOOQ2%cUOQ2[O
2P!��PurezNot relevant in pure Python)rHrIrArJ�	_testcapi�test_datetime_capir1s&r)r��CapiTest.setUpks8���>�>�"�"�+�+�F�3�3��M�M�7�8�	�$�$�&r,c	��QFD\o[OU2oUOUQ59^tt^2UOU[O
2PPP2J^	P!)%fhJs9h)T)�	use_macro�TF)r�get_timezone_utc_capir]r/rr0)r(r�capi_utcs&  r)�
test_utc_capi�CapiTest.test_utc_capitsS��&�I� �6�6�y�A�H����	��2�2��
�
�h����5�3�2�'�3�2�2�s�!A'	�'A8
�0A8
c��[O2vqo[[Q	Q5Q2o[[Q	Q52oQV1QV$1QV51,oSFD�vqxo	UO	UQ59^tt^2UOV�2[
Q]]UQ5o
[
Q]]U	Q5oUOV�2UOU
O2UO22[
Q]]][OQ5oUOU
O[O2U2PPP2J�	P!)%fhJ�9h)
r>r�r��est_capi�	est_macro�est_macro_nn)rCr�rr3)
r�make_timezones_capirrr]r'rr�r0rp)
r(r%r&r'�	exp_named�exp_unnamed�casesrC�tz_act�tz_expr�r�rqs
&            r)�test_timezones_capi�CapiTest.test_timezones_capi{s��,5�,I�,I�,K�)��\��Y�R�0�%�8�	��y�r�2�3����-�
�)�/�
�\�7�
��%*� �D�&����4��(�(�� � ��0��t�Q��&�9���t�Q��&�9��� � ��*�� � �����s�z�z�|�<�!�$��1�a����E��� � �������!=�v�F�)�(�%*�(�(�(�s�3B<D=	�=E
�E
c��QQ[2o[U1FD�oQFD�oUUoUOV#Q59^tt^2[OU2vqVoUO	VTO
2UO	VdO2UO	VtO2PPP2J�	J�	P!)%fhJ�9h)c��\sQsQsQsP!)�=CapiTest.test_PyDateTime_DELTA_GET.<locals>.TimeDeltaSubclassi�r]rr]r,r)�TimeDeltaSubclassr2�rar,r3�rGr)�rK
�7韆r5)rr]r�PyDateTime_DELTA_GETr'r�r
r)r(r3�klassr�r�r�r
rs&       r)�test_PyDateTime_DELTA_GET�"CapiTest.test_PyDateTime_DELTA_GET�s���	�	�	� �!2�3�E�:���4�L���\�\�e�\�7�7�2;�2P�2P�QR�2S�/�D�<��$�$�T�6�6�2��$�$�W�i�i�8��$�$�\�>�>�B�8�7�;�4�8�7�7���A+C
�C�
Cc��QQ[2o[U1FD�oQFD�oUUoUOV#Q59^tt^2[OU2vqVoUO	VTO
2UO	VdO2UO	VtO2PPP2J�	J�	P!)%fhJ�9h)c��\sQsQsQsP!)�2CapiTest.test_PyDateTime_GET.<locals>.DateSubclassi�r]rr]r,r)r`r?�rar,r`r4))r�r$r�)r\r�r�)rr]r�PyDateTime_GETr'rr	r3)r(r`r9r�r�rr	r3s&       r)�test_PyDateTime_GET�CapiTest.test_PyDateTime_GET�s���	�4�	��L�)�E�5���4�L���\�\�e�\�7�7�'0�'?�'?��'B�$�D���$�$�T�6�6�2��$�$�U�G�G�4��$�$�S�%�%�0�8�7�6�*�8�7�7�r<c�H�QQ[2o[U1FD�oQQ]]]]]7Q[O11FD�oUUoUOV#Q59^tt^2[O
U2vqVqxo	UO
VTO2UO
VdO2UO
VtO2UO
V�O2UOV�O2PPP2J�	J�	P!)%fhJ�9h)c��\sQsQsQsP!)�;CapiTest.test_PyDateTime_DATE_GET.<locals>.DateTimeSubclassi�r]rr]r,r)rxrE�rar,rx��r7r4)rFr�rK
rr#r6r7)
rrr0r]r�PyDateTime_DATE_GETr'rr�r�rr/r)
r(rxr9r�r�rr�r�rrs
&         r)�test_PyDateTime_DATE_GET�!CapiTest.test_PyDateTime_DATE_GET�s���	�x�	�� 0�1�E�9���2�r�2�r�5�"�,�,�(�)���4�L���\�\�e�\�7�7�,5�,I�,I�!�,L�>�D�&�v��$�$�T�6�6�2��$�$�V�X�X�6��$�$�V�X�X�6��$�$�[�-�-�@��M�M�&�(�(�3�8�7�	)�2�
8�7�7�s�B"D
�D!�D!c�B�QQ[2o[U1FD�oQ]]]]
[O11FD�oUUoUOV#Q59^tt^2[O
U2vqVqxo	UO
VTO2UO
VdO2UO
VtO2UO
V�O2UOV�O2PPP2J�	J�	P!)%fhJ�9h)c��\sQsQsQsP!)�7CapiTest.test_PyDateTime_TIME_GET.<locals>.TimeSubclassi�r]rr]r,r)rerL�rar,rer4)r#rr�r�)
rrr0r]r�PyDateTime_TIME_GETr'rr�r�rr/r)
r(rer9r�r�rr�r�rrs
&         r)�test_PyDateTime_TIME_GET�!CapiTest.test_PyDateTime_TIME_GET�s���	�4�	��L�)�E�)��b�"�b�(�,�,�7�9���4�L���\�\�e�\�7�7�.7�.K�.K�A�.N�>�D�&�v��$�$�T�6�6�2��$�$�V�X�X�6��$�$�V�X�X�6��$�$�[�-�-�@��M�M�&�(�(�3�8�7�9�*�8�7�7�s�B"D

�
D�Dc	�H�[O2vqoUOQQ59^tt^2UOU[O
2PPP2UOQQ59^tt^2UOU[O
2PPP2UOQQ59^tt^2UO
U[O
2[	[]Q5P2oUOV42[Q]]UQ5o[Q]]UQ5oUOVV2UOUO2UO22PPP2P!)%fhCK9h)%fhK�9h)%fhP!9h)r)�testnamer�non_utcr�r�r)r�get_timezones_offset_zeror]r/rr0rrr'rr�)r(rrrR�non_utc_expr�r�s&      r)�test_timezones_offset_zero�#CapiTest.test_timezones_offset_zero�s ��'�A�A�C���G�
�\�\�6�\�
*�
*��M�M�$����-�+��\�\�6�\�
*�
*��M�M�$����-�+��\�\�9�\�
-�
-����W�h�l�l�3�"�9�1�#5�r�:�K����W�2��4��A�g�6�C��4��A�k�:�C����S�&����S�Z�Z�\�3�:�:�<�8�.�
-�
+�
*�
*��+�
*��.�
-�
-�s6�!E)�7!E=�:B%F�)E:	�2E:	�=F
	�F
	�F!	�F!	c���QQ[2o[Q]]2oUQ]]2o[Q]]2o[OoUO	UU22UO	UU22UO	UU22UO	UUP	22UOUUP	22UOUUP	22[
2[2]Q[]2[O[]]2,oSFDGoQFD=oUOVxQ59^tt^2UOUVx22PPP2J?	JI	P!)%fhJX9h)c��\sQsQsQsP!)�.CapiTest.test_check_date.<locals>.DateSubclassi�r]rr]r,r)r`rY�rar,r`���
2011-01-01��arg�exactr)
rrr�datetime_check_dater?r@r|r�rrr0rr])	r(r`r��dsr{�is_dater�r]r^s	&        r)�test_check_date�CapiTest.test_check_date�s+��	�4�	�
��q�!���
�$��1�
%��
�d�A�q�
!���/�/��	
�����
�#�������$�������$������4�(�)�	
�����T�*�+������T�*�+������L��!��h�l�l�D��R�L�:���C�&���\�\�c�\�7�7��$�$�W�S�%8�9�8�7�'��7�7�7�s�2E
�E-�%E-c�f�QQ[2o[]]2oU]]2o[OoUOUU22UOUU22UOUUP	22UO	UUP	22[2[
2]Q[]2[O[Q]]2,oSFDGoQFD=oUOVgQ59^tt^2UO	UVg22PPP2J?	JI	P!)%fhJX9h)c��\sQsQsQsP!)�.CapiTest.test_check_time.<locals>.TimeSubclassi	r]rr]r,r)rerf	rar,rer[rZr\r)rr�datetime_check_timer?r@r|r�rrr0rr])r(rer�ra�is_timer�r]r^s&       r)�test_check_time�CapiTest.test_check_times���	�4�	�
��R�L��
�"�b�
!���/�/��	
�����
�#�������$������4�(�)�	
�����T�*�+������L��!��h�l�l�D��q�!�,<�>���C�&���\�\�c�\�7�7��$�$�W�S�%8�9�8�7�'��7�7�7���5D
�D0�(D0c�r�QQ[2o[Q]]]]2oUQ]]]]2o[OoUOUU22UOUU22UOUUP	22UO	UUP	22[2[
2]Q[]2[O[Q]]2,oSFDGoQFD=oUOVgQ59^tt^2UO	UVg22PPP2J?	JI	P!)%fhJX9h)c��\sQsQsQsP!)�6CapiTest.test_check_datetime.<locals>.DateTimeSubclassi#r]rr]r,r)rxrn#rar,rxrZr[r\r)rr�datetime_check_datetimer?r@r|r�rrr0rr])r(rxr{r��is_datetimer�r]r^s&       r)�test_check_datetime�CapiTest.test_check_datetime"s��	�x�	��d�A�q�"�b�
)���t�Q��2�r�2���7�7��	
����B��(�����C�(�)�����B��-�.�	
����S�$�/�0������L��!��h�l�l�D��q�!�,<�>���C�&���\�\�c�\�7�7��$�$�[��%<�=�8�7�'��7�7�7�s�;D%
�%D6�.D6c�f�QQ[2o[]2oU]2o[OoUOUU22UOUU22UOUUP	22UO	UUP	22[2[
2]Q[O[Q]]2[Q]]2,oSFDGoQFD=oUOVgQ59^tt^2UO	UVg22PPP2J?	JI	P!)%fhJX9h)c��\sQsQsQsP!)�4CapiTest.test_check_delta.<locals>.TimeDeltaSubclassi=r]rr]r,r)r3ru=rar,r3r[rZr\r)rr�datetime_check_deltar?r@r|r�rr0rrr])r(r3r��tds�is_timedeltar�r]r^s&       r)�test_check_delta�CapiTest.test_check_delta<s���	�	�	��q�\����"�� �5�5��	
����R�(�)�����S�)�*�����R��.�/�	
����c�4�0�1������L����d�4��A�.���q�!�0D�F���C�&���\�\�c�\�7�7��$�$�\�#�%=�>�8�7�'��7�7�7�rkc���QQ[2o[2oU2o[[QQ52o[OoUOUU22UOUU22UOUU22UOUUP	22UO
UUP	22UO
UUP	22[2[2]Q[Q]]2[Q]]2,oSFDGoQFD=oUOVxQ59^tt^2UO
UVx22PPP2J?	JI	P!)%fhJX9h)c��\sQsQsQsP!)�2CapiTest.test_check_tzinfo.<locals>.TZInfoSubclassiWr]rr]r,r)�TZInfoSubclassr}Wrar,r~r�r[rZr\r3r)rrrr�datetime_check_tzinfor?r@r|r�rrr])	r(r~r@�tzisr��	is_tzinfor�r]r^s	&        r)�test_check_tzinfo�CapiTest.test_check_tzinfoVs#��	�V�	��h�����
�i�b�)�
*���3�3�	�	
���	�#��'����	�"�
�&����	�$��(����	�#�t�,�-�	
����2�t�,�-�����4��.�/������L��T�1�a� �(�4��A�"6�8���C�&���\�\�c�\�7�7��$�$�Y�s�%:�;�8�7�'��7�7�7�s�(E
�E#�E#c
�4�[Q]]2oQFDnoUOUQ59^tt^2[OUUOUO
UO2oUOV12PPP2Jp	P!)%fhJ�9h)rF��macro�FT)rr]r�get_date_fromdaterr	r3r'�r(�exp_dater��
c_api_dates&   r)�test_date_from_date�CapiTest.test_date_from_datessu����a��$�� �E����E��*�*�&�8�8���M�M��N�N��L�L�	"�
�� � ��6�+�*�!�*�*�*���A	B	�B
�B
c��[Q]]]]]7Q2oQFD�oUOUQ59^tt^2[OUUOUO
UOUOUOUOUO2oUOV12PPP2J�	P!)%fhJ�9h)rFr7r�r�)rr]r�get_datetime_fromdateandtimerr	r3rr�r�rr'r�s&   r)�test_datetime_from_dateandtime�'CapiTest.test_datetime_from_dateandtime�s����D�!�R��R��U�;�� �E����E��*�*�&�C�C���M�M��N�N��L�L��M�M��O�O��O�O��(�(�*�
�� � ��6�+�*�!�*�*�*�s�A5B6	�6C
�?C
c�
�[Q]]]]]7Q2oQFD�oQFD�oUOV2Q59^tt^2[OUUOUO
UOUOUOUOUOUO2	oUOVA2UOUOUO2PPP2J�	J�	P!)%fhJ�9h)rFr7�r�rq�r	r$r�)
rr]r�#get_datetime_fromdateandtimeandfoldrr	r3rr�r�rrqr')r(r�rqr�r�s&    r)�%test_datetime_from_dateandtimeandfold�.CapiTest.test_datetime_from_dateandtimeandfold�s����D�!�R��R��U�;���D�$���\�\��\�9�9�!*�!N�!N�� �
�
� ��� ��� �
�
� ��� ��� �,�,� �
�
�	"'�J��$�$�Z�:��$�$�Z�_�_�h�m�m�D�:�9�%��9�9�9�s�B&C1
�1D�:Dc�L�[]]]7Q2oQFDyoUOUQ59^tt^2[OUUOUO
UOUO2oUOV12PPP2J{	P!)%fhJ�9h)rr7r�r�)	rr]r�get_time_fromtimerr�r�rr')r(�exp_timer��
c_api_times&   r)�test_time_from_time�CapiTest.test_time_from_time�s�����B��E�*�� �E����E��*�*�&�8�8���M�M��O�O��O�O��(�(�*�
�� � ��6�+�*�!�*�*�*�s�AB	�B#
�B#
c���[]]]7Q2oQFD�oQFD�oUOV2Q59^tt^2[OUUOUO
UOUOUO2oUOVA2UOUOUO2PPP2J�	J�	P!)%fhJ�9h)rr7r�r�r�)
rr]r�get_time_fromtimeandfoldrr�r�rrqr')r(r�rqr�r�s&    r)�test_time_from_timeandfold�#CapiTest.test_time_from_timeandfold�s�����B��E�*���D�$���\�\��\�9�9�!*�!C�!C�� �
�
� ��� ��� �,�,� �
�
�
"'�J��$�$�Z�:��$�$�Z�_�_�h�m�m�D�:�9�%��9�9�9�s�BC

�
C�Cc
�4�[]]7Q2oQFDnoUOUQ59^tt^2[OUUOUO
UO2oUOV12PPP2Jp	P!)%fhJ�9h)rK
r7r�r�)rr]r�get_delta_fromdsur�r
rr')r(�	exp_deltar��c_api_deltas&   r)�test_delta_from_dsu�CapiTest.test_delta_from_dsu�sy���b�"�e�,�	� �E����E��*�*�'�9�9���N�N��%�%��*�*�	,��� � ��8�+�*�!�*�*�*�r�c�:�[Q]]2O2oQFDcoUOUQ59^tt^2[O[U2U2oUO
U[Q]]22PPP2Je	P!)%fhJz9h)��r�r�)rr�r]r�get_date_fromtimestamprlr'r)r(rar�r�s&   r)�test_date_from_timestamp�!CapiTest.test_date_from_timestamp�su��
�d�A�r�
"�
,�
,�
.�� �E����E��*�*��4�4�S��W�e�D��� � ��D��q�"�$5�6�+�*�!�*�*�*�s�>B		�	B
�B
c��QQQ[[]Q52P	1QQ	Q[[]Q52P	1,o[OoSFDtoQ
FDjoUO	V4Q59^tt^2UvqVo[UQU-o[
UO22o	UV�Vt2o
UOV�2PPP2Jl	Jv	P!)%fhJ�9h)r�r�)r�r�r�r�rr#)r�NF)r�NT�r�rr#rvr)r�NF)r�NTr�)	rrr�get_datetime_fromtimestampr]rrlr�r')r(r+rr�r��dtupr�usetz�dt_origrar�s&          r)�test_datetime_from_timestamp�%CapiTest.test_datetime_from_timestamp�s���(�'�
�H�Y�Q�%7�8�$�?�0�/�
"�H�Y�Q�-?�$@�$�G�

��#�=�=���D�$���\�\�t�\�9�9�*.�'�D�%�&��<�V�<�G��W�.�.�0�1�B�*�2�u�D�E��$�$�W�4�:�9�%��9�9�9�s�,AC
�C�Cc	��[OQ6XcQoLQo[OQ[PIQUQ02o[e+[
OU2oUOU]2P!QFDooUOU29^tt^2[OU2Oo[
OU1-U@oUOU]2PPP2Jq	P!)%fhJ�9h)�ios�AppleFrameworkLoader�ExtensionFileLoaderz
            if a_:
                import _testcapi as module
                module.test_datetime_capi()
            else:
                import importlib.machinery
                import importlib.util
                fullname = '_testcapi_datetime'
                origin = importlib.util.find_spec('_testcapi').origin
                loader = importlib.machinery.a�(fullname, origin)
                spec = importlib.util.spec_from_loader(fullname, loader)
                module = importlib.util.module_from_spec(spec)
                spec.loader.exec_module(module)

            def run(type_checker, obj):
                if not type_checker(obj, True):
                    raise TypeError(f'{type(obj)} is not C API type')

            import _datetime
            run(module.datetime_check_date,     _datetime.date.today())
            run(module.datetime_check_datetime, _datetime.datetime.now())
            run(module.datetime_check_time,     _datetime.time(12, 30))
            run(module.datetime_check_delta,    _datetime.timedelta(1))
            run(module.datetime_check_tzinfo,   _datetime.tzinfo())
        )�isolated�legacy)rGr��textwrap�dedent�
_interpretersr�run_in_subinterpr'r]�
new_config�__dict__�run_in_subinterp_with_config)r(�extension_loader�script�retrC�configs&     r)�test_type_check_in_subinterp�%CapiTest.test_type_check_in_subinterp�s����<�<�5� �5��4�����&���%�&�'.�/?�-?�@	�"�
��2� ��*�*�6�2�C����S�!�$�.���\�\�$�'�'�*�5�5�d�;�D�D�F�!�>�>�v�P��P�C��$�$�S�!�,�(�'�/�'�'�'�s�AC)	�)C:
�2C:
r])rIr^r_r`r�r"r.r:rArHrNrUrbrirqryr�r�r�r�r�r�r�r�r�r�rarbrcs@r)rris|����'�6�G�4C�1�4�&4�$9�,:�8:�4>�4?�4<�:7�7�"E�(7�E�"9�7�5�,)-�)-r,rc�`�\sQsQsnQs\OQ2sQsQs	\O\OQ,Q	N2Q22sQsUs
P!)
�ExtensionModuleTestsic��UOOOQ2%cUOQ2P!P!r)rHrIrArJr1s&r)r��ExtensionModuleTests.setUps/���>�>�"�"�+�+�F�3�3��M�M�7�8�4r,c��UOQ29^tt^2[OQ2o[OQU2PPP2UOQ29^tt^2[OQ2o[OQU2PPP2P!)%fhKa9h)%fhP!9h)�simplez�
                import datetime
                from _ast import Tuple
                f = lambda: None
                Tuple.dims = property(f, f)

                class tzutc(datetime.tzinfo):
                    pass
                �-c�complexa�
                import asyncio
                import datetime
                from typing import Type

                class tzutc(datetime.tzinfo):
                    pass
                _EPOCHTZ = datetime.datetime(1970, 1, 1, tzinfo=tzutc())

                class FakeDateMeta(type):
                    def __instancecheck__(self, obj):
                        return True
                class FakeDate(datetime.date, metaclass=FakeDateMeta):
                    pass
                def pickle_fake_date(datetime_) -> Type[FakeDate]:
                    # A pickle function for FakeDate
                    return FakeDate
                )r]r�r�r�assert_python_ok�r(r�s& r)�test_gh_120161�#ExtensionModuleTests.test_gh_120161"s���
�\�\�(�
#�
#��_�_�&��F�
�*�*�4��8�$��\�\�)�
$�
$��_�_�&��F�$
�*�*�4��8�'%�
$�$�
#��%�
$�
$�s#�.B"�*.B5�"B2	�+B2	�5C	�>C	c�b�[OQ2o[OQU2P!)a}
            import sys
            for i in range(5):
                import _datetime
                assert _datetime.date.max > _datetime.date.min
                assert _datetime.time.max > _datetime.time.min
                assert _datetime.datetime.max > _datetime.datetime.min
                assert _datetime.timedelta.max > _datetime.timedelta.min
                assert _datetime.date.__dict__["min"] is _datetime.date.min
                assert _datetime.date.__dict__["max"] is _datetime.date.max
                assert _datetime.date.__dict__["resolution"] is _datetime.date.resolution
                assert _datetime.time.__dict__["min"] is _datetime.time.min
                assert _datetime.time.__dict__["max"] is _datetime.time.max
                assert _datetime.time.__dict__["resolution"] is _datetime.time.resolution
                assert _datetime.datetime.__dict__["min"] is _datetime.datetime.min
                assert _datetime.datetime.__dict__["max"] is _datetime.datetime.max
                assert _datetime.datetime.__dict__["resolution"] is _datetime.datetime.resolution
                assert _datetime.timedelta.__dict__["min"] is _datetime.timedelta.min
                assert _datetime.timedelta.__dict__["max"] is _datetime.timedelta.max
                assert _datetime.timedelta.__dict__["resolution"] is _datetime.timedelta.resolution
                assert _datetime.timezone.__dict__["min"] is _datetime.timezone.min
                assert _datetime.timezone.__dict__["max"] is _datetime.timezone.max
                assert _datetime.timezone.__dict__["utc"] is _datetime.timezone.utc
                assert isinstance(_datetime.timezone.min, _datetime.tzinfo)
                assert isinstance(_datetime.timezone.max, _datetime.tzinfo)
                assert isinstance(_datetime.timezone.utc, _datetime.tzinfo)
                del sys.modules['_datetime']
            r�)r�r�rr�r�s& r)�test_update_type_cache�+ExtensionModuleTests.test_update_type_cacheEs'�����"���8	�&�&�t�V�4r,c�^�Qo[OQU2vq#oUOU]2UOUQ2UOUQ2QU*o[OQU2vq#oUOU]2UOUQ2UOUQ2P!)aif True:
        from concurrent.futures import InterpreterPoolExecutor

        def func():
            import _datetime
            print('a', end='')

        with InterpreterPoolExecutor() as executor:
            for _ in range(8):
                executor.submit(func)
        r�r,zimport _datetime
saaaaaaaa�rr�r')r(r��rc�outr�
s&    r)�-test_concurrent_initialization_subinterpreter�BExtensionModuleTests.test_concurrent_initialization_subinterpreteres���

��%�5�5�d�F�C��������Q������h�'�����c�"�&��.��$�5�5�d�F�C��������Q������h�'�����c�"r,c��QUQUQ0o[OQU2vqEoUOU]2UOUQ2UOUQ2P!)zNif True:
            import sys, gc
            import _datetime

            a-                          # static C type, survives the module
            del sys.modules['_datetime']
            del _datetime
            sys.modules['_datetime'] = None  # block re-import
            gc.collect()                     # module object is collected

            try:
                z�                       # used to be a segmentation fault
            except ImportError:
                pass
            else:
                raise AssertionError("ImportError not raised")
        r�r,r�)r(�setup�callr�r�r�r�
s&&&    r)�3test_static_datetime_types_outlive_collected_module�HExtensionModuleTests.test_static_datetime_types_outlive_collected_module�sn��
��G����	���"%�5�5�d�F�C��������Q������c�"�����c�"r,r])r�r�))zobj = _datetime.timedeltazobj(seconds=2))z$obj = _datetime.timedelta(seconds=2)zobj.total_seconds())z obj = _datetime.date(2026, 6, 7)zobj.isocalendar())rIr^r_r`r�r�cpython_onlyr�r�r��subTestsr�rarbrcs@r)r�r�se����9�
��� 9�� 9�D5�@#�8
������'�*��
#���#r,r�c�:�UO[22U!r.)�addTestr
)�loader�standard_testsr�s&&&r)�
load_testsr��s�����/�1�2��r,�__main__r]r3rWrUi����i0���)}r�r�
rrLr�r�r�r9r�
r�r�r�rz
rGr�r�r�r�operatorrrrrrrrr	r
�testr�test.supportrr
rrrrrr&rrrrrrrrr�r�ImportErrorr��ModuleNotFoundErrorr�rX�	_datetimer��_loadsrr�r�r�r�
rr�r7r��TestCaser"rfr�r�r�r�r�rfr�r�r�rrr"r$rrrr{r�rpr4	rrr$rn	rN	rO	r6	r7rU	rX	r[	rt	ru	r`	r�	r�	r�	r�	r�	r�	r�	r�	r
rp
rg
ri
r�
�	TestSuiter
rr�rr�r�rI�main)r�s0r)�<module>r�s���
�����	��	�
�
�	�
�
�����C�C�C��J�J�1�"�%������#������
�����
���f�m�m�,�� %�V�%<�%<�q�%@�A�C�A�e��6�5�)�A�C���t�Q��1�a�(���$��r�2�r�
*�
��E�l���E�l��5)��"�"�5)�v �&� �&<�;�<�
E�$8�E��f��^/��"�"�^/�BD�8�$�$�D�J.7�.7�f�	��I	�+�X�->�->�I	�^s4�8�$�$�s4�j�4��l�&��(9�(9�l�d�x��V
�8�V
�r2
�<�
��4��]9�&��(9�(9�]9�D]4�]4�B@E��:�x�'8�'8�@E�J@C�\�:�x�/@�/@�@C�H���|��	�1�	���q����Q����A�q�!�Q���

�!�R��Q�	��(��(�T�b�)�e�U�3���b�)�e�U�3���b�*�e�U�3���b�)�e�U�3���q�%��#���v�y�!�,��}�h�/�/�}�FOO�x� � �OO�n9�f�9�D1�'�1�f
��J���6����J���6����K���6�	���J���6��/�&�/�dOC�(�"3�"3�OC�b��1�o���
c�v�c�LqD�8�$�$�qD�h
 �8�-�-�
 ��|��
����d�"�$;�<�o-�x� � �o-�=�o-�d
A#�8�,�,�A#�H�
�z���M�M�O���}k���I������M������K������I���Csf�1P7�6Q�?Q�Q'�:Q7�7Q�=Q�Q�Q�
Q�Q�Q$�Q$�#Q$�'Q4�-Q4�3Q4

Youez - 2016 - github.com/yon3zu
LinuXploit