����JFIFXX�����    $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222����"��4�� ���,�PG"Z_�4�˷����kjز�Z�,F+��_z�,�© �����zh6�٨�ic�fu���#ډb���_�N�?��wQ���5-�~�I���8����TK<5o�Iv-�����k�_U_�����~b�M��d����Ӝ�U�Hh��?]��E�w��Q���k�{��_}qFW7HTՑ��Y��F�?_�'ϔ��_�Ջt��=||I ��6�έ"�����D���/[�k�9���Y�8ds|\���Ҿp6�Ҵ���]��.����6�z<�v��@]�i%��$j��~�g��J>��no����pM[me�i$[����s�o�ᘨ�˸ nɜG-�ĨU�ycP�3.DB�li�;��hj���x7Z^�N�h������N3u{�:j�x�힞��#M&��jL P@_���� P��&��o8������9�����@Sz6�t7#O�ߋ �s}Yf�T���lmr����Z)'N��k�۞p����w\�Tȯ?�8`�O��i{wﭹW�[�r�� ��Q4F�׊���3m&L�=��h3����z~��#�\�l :�F,j@�� ʱ�wQT����8�"kJO���6�֚l����}���R�>ډK���]��y����&����p�}b��;N�1�m�r$�|��7�>e�@B�TM*-iH��g�D�)� E�m�|�ؘbҗ�a��Ҿ����t4���o���G��*oCN�rP���Q��@z,|?W[0�����:�n,jWiE��W��$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S����VN;�}�s?.����� w�9��˟<���Mq4�Wv'��{)0�1mB��V����W[�����8�/<� �%���wT^�5���b��)iM� pg�N�&ݝ��VO~�q���u���9� ����!��J27����$O-���! �:�%H��� ـ����y�ΠM=t{!S�� oK8������t<����è:a������[�����ա�H���~��w��Qz`�po�^ ����Q��n� �,uu�C�$ ^���,������8�#��:�6��e�|~���!�3�3.�\0��q��o�4`.|� ����y�Q�`~;�d�ׯ,��O�Zw�������`73�v�܋�<���Ȏ�� ـ4k��5�K�a�u�=9Yd��$>x�A�&�� j0� ���vF��� Y�|�y��� ~�6�@c��1vOp�Ig����4��l�OD���L����� R���c���j�_�uX6��3?nk��Wy�f;^*B� ��@�~a�`��Eu������+���6�L��.ü>��}y���}_�O�6�͐�:�YrG�X��kG�����l^w���~㒶sy��Iu�!� W ��X��N�7BV��O��!X�2����wvG�R�f�T#�����t�/?���%8�^�W�aT��G�cL�M���I��(J����1~�8�?aT ���]����AS�E��(��*E}� 2��#I/�׍qz��^t�̔���b�Yz4x���t�){ OH��+(E��A&�N�������XT��o��"�XC��'���)}�J�z�p� ��~5�}�^����+�6����w��c��Q�|Lp�d�H��}�(�.|����k��c4^�"�����Z?ȕ ��a<�L�!039C� �Eu�C�F�Ew�ç ;�n?�*o���B�8�bʝ���'#Rqf���M}7����]����s2tcS{�\icTx;�\��7K���P���ʇ Z O-��~��c>"��?�������P��E��O�8��@�8��G��Q�g�a�Վ���󁶠�䧘��_%#r�>�1�z�a��eb��qcPѵ��n���#L��� =��׀t� L�7�`��V���A{�C:�g���e@�w1 Xp3�c3�ġ����p��M"'-�@n4���fG��B3�DJ�8[Jo�ߐ���gK)ƛ��$���� ���8�3�����+���� �����6�ʻ���� ���S�kI�*KZlT _`���?��K����QK�d����B`�s}�>���`��*�>��,*@J�d�oF*����弝��O}�k��s��]��y�ߘ��c1G�V���<=�7��7����6�q�PT��tXԀ�!9*4�4Tހ3XΛex�46���Y��D ����� �BdemDa����\�_l,��G�/���֌7���Y�](�xTt^%�GE�����4�}bT���ڹ�����;Y)���B�Q��u��>J/J �⮶.�XԄ��j�ݳ�+E��d ��r�5�_D�1 ��o�� �B�x�΢�#���<��W�����8���R6�@g�M�.��� dr�D��>(otU��@x=��~v���2� ӣ�d�oBd��3�eO�6�㣷�����ݜ6��6Y��Qz`��S��{���\P�~z m5{J/L��1������<�e�ͅPu�b�]�ϔ���'������f�b� Zpw��c`"��i���BD@:)ִ�:�]��hv�E�w���T�l��P���"Ju�}��وV J��G6��. J/�Qgl߭�e�����@�z�Zev2u�)]կ�����7x���s�M�-<ɯ�c��r�v�����@��$�ޮ}lk���a���'����>x��O\�ZFu>�����ck#��&:��`�$�ai�>2Δ����l���oF[h��lE�ܺ�Πk:)���`�� $[6�����9�����kOw�\|���8}������ބ:��񶐕��I�A1/�=�2[�,�!��.}gN#�u����b��� ~��݊��}34q����d�E��Lc��$��"�[q�U�硬g^��%B �z���r�pJ�ru%v\h1Y�ne`ǥ:g���pQM~�^�Xi� ��`S�:V29.�P���V�?B�k�� AEvw%�_�9C�Q����wKekPؠ�\�;Io d�{ ߞo�c1eP����\� `����E=���@K<�Y���eڼ�J���w����{av�F�'�M�@/J��+9p���|]�����Iw &`��8���&M�hg��[�{��Xj��%��Ӓ�$��(����ʹN���<>�I���RY���K2�NPlL�ɀ)��&e����B+ь����( � �JTx���_?EZ� }@ 6�U���뙢ط�z��dWI�n` D����噥�[��uV��"�G&Ú����2g�}&m��?ċ�"����Om#��������� ��{�ON��"S�X��Ne��ysQ���@Fn��Vg���dX�~nj�]J�<�K]:��FW��b�������62�=��5f����JKw��bf�X�55��~J �%^����:�-�QIE��P��v�nZum� z � ~ə ���� ���ة����;�f��\v���g�8�1��f24;�V���ǔ�)����9���1\��c��v�/'Ƞ�w�������$�4�R-��t���� e�6�/�ġ �̕Ecy�J���u�B���<�W�ַ~�w[B1L۲�-JS΂�{���΃������A��20�c#��@ 0!1@AP"#2Q`$3V�%45a6�FRUq��� ����^7ׅ,$n�������+��F�`��2X'��0vM��p�L=������5��8������u�p~���.�`r�����\���O��,ư�0oS ��_�M�����l���4�kv\JSd���x���SW�<��Ae�IX����������$I���w�:S���y���›R��9�Q[���,�5�;�@]�%���u�@ *ro�lbI �� ��+���%m:�͇ZV�����u�̉����θau<�fc�.����{�4Ա� �Q����*�Sm��8\ujqs]{kN���)qO�y�_*dJ�b�7���yQqI&9�ԌK!�M}�R�;������S�T���1���i[U�ɵz�]��U)V�S6���3$K{�ߊ<�(� E]Զ[ǼENg�����'�\?#)Dkf��J���o��v���'�%ƞ�&K�u�!��b�35LX�Ϸ��63$K�a�;�9>,R��W��3�3� d�JeTYE.Mϧ��-�o�j3+y��y^�c�������VO�9NV\nd�1 ��!͕_)a�v;����թ�M�lWR1��)El��P;��yوÏ�u 3�k�5Pr6<�⒲l�!˞*��u־�n�!�l:����UNW ��%��Chx8vL'��X�@��*��)���̮��ˍ��� ���D-M�+J�U�kvK����+�x8��cY������?�Ԡ��~3mo��|�u@[XeY�C�\Kp�x8�oC�C�&����N�~3-H���� ��MX�s�u<`���~"WL��$8ξ��3���a�)|:@�m�\���^�`�@ҷ)�5p+��6���p�%i)P M���ngc�����#0Aruz���RL+xSS?���ʮ}()#�t��mˇ!��0}}y����<�e� �-ή�Ԩ��X������ MF���ԙ~l L.3���}�V뽺�v�����멬��Nl�)�2����^�Iq��a��M��qG��T�����c3#������3U�Ǎ���}��לS�|qa��ڃ�+���-��2�f����/��bz��ڐ�� �ݼ[2�ç����k�X�2�* �Z�d���J�G����M*9W���s{��w���T��x��y,�in�O�v��]���n����P�$�JB@=4�OTI�n��e�22a\����q�d���%�$��(���:���: /*�K[PR�fr\nڙdN���F�n�$�4�[�� U�zƶ����� �mʋ���,�ao�u 3�z� �x��Kn����\[��VFmbE;�_U��&V�Gg�]L�۪&#n%�$ɯ�dG���D�TI=�%+AB�Ru#��b4�1�»x�cs�YzڙJG��f��Il��d�eF'T� iA��T���uC�$����Y��H?����[!G`}���ͪ� �纤Hv\������j�Ex�K���!���OiƸ�Yj�+u-<���'q����uN�*�r\��+�]���<�wOZ.fp�ێ��,-*)V?j-kÊ#�`�r��dV����(�ݽBk�����G�ƛk�QmUڗe��Z���f}|����8�8��a���i��3'J�����~G_�^���d�8w������ R�`(�~�.��u���l�s+g�bv���W���lGc}��u���afE~1�Ue������Z�0�8�=e�� f@/�jqEKQQ�J��oN��J���W5~M>$6�Lt�;$ʳ{���^��6�{����v6���ķܰg�V�cnn �~z�x�«�,2�u�?cE+Ș�H؎�%�Za�)���X>uW�Tz�Nyo����s���FQƤ��$��*�&�LLXL)�1�" L��eO��ɟ�9=���:t��Z���c��Ž���Y?�ӭV�wv�~,Y��r�ۗ�|�y��GaF�����C�����.�+� ���v1���fήJ�����]�S��T��B��n5sW}y�$��~z�'�c ��8 ��� ,! �p��VN�S��N�N�q��y8z˱�A��4��*��'������2n<�s���^ǧ˭P�Jޮɏ�U�G�L�J�*#��<�V��t7�8����TĜ>��i}K%,���)[��z�21z ?�N�i�n1?T�I�R#��m-�����������������1����lA�`��fT5+��ܐ�c�q՝��ʐ��,���3�f2U�եmab��#ŠdQ�y>\��)�SLY����w#��.���ʑ�f��� ,"+�w�~�N�'�c�O�3F�������N<���)j��&��,-� �љ���֊�_�zS���TǦ����w�>��?�������n��U仆�V���e�����0���$�C�d���rP �m�׈e�Xm�Vu� �L��.�bֹ��� �[Դaզ���*��\y�8�Է:�Ez\�0�Kq�C b��̘��cө���Q��=0Y��s�N��S.���3.���O�o:���#���v7�[#߫ ��5�܎�L���Er4���9n��COWlG�^��0k�%<���ZB���aB_���������'=��{i�v�l�$�uC���mƎҝ{�c㱼�y]���W�i ��ߧc��m�H� m�"�"�����;Y�ߝ�Z�Ǔ�����:S#��|}�y�,/k�Ld� TA�(�AI$+I3��;Y*���Z��}|��ӧO��d�v��..#:n��f>�>���ȶI�TX��� 8��y����"d�R�|�)0���=���n4��6ⲑ�+��r<�O�܂~zh�z����7ܓ�HH�Ga롏���nCo�>������a ���~]���R���̲c?�6(�q�;5%� |�uj�~z8R=X��I�V=�|{v�Gj\gc��q����z�؋%M�ߍ����1y��#��@f^���^�>N�����#x#۹��6�Y~�?�dfPO��{��P�4��V��u1E1J �*|���%���JN��`eWu�zk M6���q t[�� ��g�G���v��WIG��u_ft����5�j�"�Y�:T��ɐ���*�;� e5���4����q$C��2d�}���� _S�L#m�Yp��O�.�C�;��c����Hi#֩%+) �Ӎ��ƲV���SYź��g |���tj��3�8���r|���V��1#;.SQ�A[���S������#���`n�+���$��$I �P\[�@�s��(�ED�z���P��])8�G#��0B��[ى��X�II�q<��9�~[Z멜�Z�⊔IWU&A>�P~�#��dp<�?����7���c��'~���5 ��+$���lx@�M�dm��n<=e�dyX��?{�|Aef ,|n3�<~z�ƃ�uۧ�����P��Y,�ӥQ�*g�#먙R�\���;T��i,��[9Qi歉����c>]9�� ��"�c��P�� �Md?٥��If�ت�u��k��/����F��9�c*9��Ǎ:�ØF���z�n*�@|I�ށ9����N3{'��[�'ͬ�Ҳ4��#}��!�V� Fu��,�,mTIk���v C�7v���B�6k�T9��1�*l� '~��ƞF��lU��'�M ����][ΩũJ_�{�i�I�n��$���L�� j��O�dx�����kza۪��#�E��Cl����x˘�o�����V���ɞ�ljr��)�/,�߬h�L��#��^��L�ф�,íMƁe�̩�NB�L�����iL����q�}��(��q��6IçJ$�W�E$��:������=#����(�K�B����zђ <��K(�N�۫K�w��^O{!����)�H���>x�������lx�?>Պ�+�>�W���,Ly!_�D���Ō�l���Q�!�[ �S����J��1��Ɛ�Y}��b,+�Lo�x�ɓ)����=�y�oh�@�꥟/��I��ѭ=��P�y9��� �ۍYӘ�e+�p�Jnϱ?V\SO%�(�t� ���=?MR�[Ș�����d�/ ��n�l��B�7j� ��!�;ӥ�/�[-���A�>�dN�sLj ��,ɪv��=1c�.SQ�O3�U���ƀ�ܽ�E����������̻��9G�ϷD�7(�}��Ävӌ\�y�_0[w ���<΍>����a_��[0+�L��F.�޺��f�>oN�T����q;���y\��bՃ��y�jH�<|q-eɏ�_?_9+P���Hp$�����[ux�K w�Mw��N�ی'$Y2�=��q���KB��P��~������Yul:�[<����F1�2�O���5=d����]Y�sw:���Ϯ���E��j,_Q��X��z`H1,#II ��d�wr��P˂@�ZJV����y$�\y�{}��^~���[:N����ߌ�U�������O��d�����ؾe��${p>G��3c���Ė�lʌ�� ת��[��`ϱ�-W����dg�I��ig2��� ��}s ��ؤ(%#sS@���~���3�X�nRG�~\jc3�v��ӍL��M[JB�T��s3}��j�Nʖ��W����;7��ç?=X�F=-�=����q�ߚ���#���='�c��7���ڑW�I(O+=:uxq�������������e2�zi+�kuG�R��������0�&e�n���iT^J����~\jy���p'dtG��s����O��3����9* �b#Ɋ�� p������[Bws�T�>d4�ۧs���nv�n���U���_�~,�v����ƜJ1��s�� �QIz��)�(lv8M���U=�;����56��G���s#�K���MP�=��LvyGd��}�VwWBF�'�à �?MH�U�g2�� ����!�p�7Q��j��ڴ����=��j�u��� Jn�A s���uM������e��Ɔ�Ҕ�!)'��8Ϣ�ٔ��ޝ(��Vp���צ֖d=�IC�J�Ǡ{q������kԭ�߸���i��@K����u�|�p=..�*+����x�����z[Aqġ#s2a�Ɗ���RR�)*HRsi�~�a &f��M��P����-K�L@��Z��Xy�'x�{}��Zm+���:�)�) IJ�-i�u���� ���ܒH��'�L(7�y�GӜq���� j��� 6ߌg1�g�o���,kر���tY�?W,���p���e���f�OQS��!K�۟cҒA�|ս�j�>��=⬒��˧L[�� �߿2JaB~R��u�:��Q�] �0H~���]�7��Ƽ�I���(}��cq '�ήET���q�?f�ab���ӥvr� �)o��-Q��_'����ᴎo��K������;��V���o��%���~OK ����*��b�f:���-ťIR��`B�5!RB@���ï�� �u �̯e\�_U�_������� g�ES��3�������QT��a����x����U<~�c?�*�#]�MW,[8O�a�x��]�1bC|踤�P��lw5V%�)�{t�<��d��5���0i�XSU��m:��Z�┵�i�"��1�^B�-��P�hJ��&)O��*�D��c�W��vM��)����}���P��ܗ-q����\mmζZ-l@�}��a��E�6��F�@��&Sg@���ݚ�M����� ȹ 4����#p�\H����dYDo�H���"��\��..R�B�H�z_�/5˘����6��KhJR��P�mƶi�m���3�,#c�co��q�a)*Pt����R�m�k�7x�D�E�\Y�閣_X�<���~�)���c[[�BP����6�Yq���S��0����%_����;��Àv�~�| VS؇ ��'O0��F0��\���U�-�d@�����7�SJ*z��3n��y��P����O���������m�~�P�3|Y��ʉr#�C�<�G~�.,! ���bqx���h~0=��!ǫ�jy����l�O,�[B��~��|9��ٱ����Xly�#�i�B��g%�S��������tˋ���e���ې��\[d�t)��.+u�|1 ������#�~Oj����hS�%��i.�~X���I�H�m��0n���c�1uE�q��cF�RF�o���7� �O�ꮧ� ���ۛ{��ʛi5�rw?׌#Qn�TW��~?y$��m\�\o����%W� ?=>S�N@�� �Ʈ���R����N�)�r"C�:��:����� �����#��qb��Y�. �6[��2K����2u�Ǧ�HYR��Q�MV��� �G�$��Q+.>�����nNH��q�^��� ����q��mM��V��D�+�-�#*�U�̒ ���p욳��u:�������IB���m���PV@O���r[b= �� ��1U�E��_Nm�yKbN�O���U�}�the�`�|6֮P>�\2�P�V���I�D�i�P�O;�9�r�mAHG�W�S]��J*�_�G��+kP�2����Ka�Z���H�'K�x�W�MZ%�O�YD�Rc+o��?�q��Ghm��d�S�oh�\�D�|:W������UA�Qc yT�q������~^�H��/��#p�CZ���T�I�1�ӏT����4��"�ČZ�����}��`w�#�*,ʹ�� ��0�i��課�Om�*�da��^gJ݅{���l�e9uF#T�ֲ��̲�ٞC"�q���ߍ ոޑ�o#�XZTp����@ o�8��(jd��xw�]�,f���`~�|,s��^����f�1���t��|��m�򸄭/ctr��5s��7�9Q�4�H1꠲BB@l9@���C�����+�wp�xu�£Yc�9��?`@#�o�mH�s2��)�=��2�.�l����jg�9$�Y�S�%*L������R�Y������7Z���,*=�䷘$�������arm�o�ϰ���UW.|�r�uf����IGw�t����Zwo��~5 ��YյhO+=8fF�)�W�7�L9lM�̘·Y���֘YLf�큹�pRF���99.A �"wz��=E\Z���'a� 2��Ǚ�#;�'}�G���*��l��^"q��+2FQ� hj��kŦ��${���ޮ-�T�٭cf�|�3#~�RJ����t��$b�(R��(����r���dx� >U b�&9,>���%E\� Ά�e�$��'�q't��*�א���ެ�b��-|d���SB�O�O��$�R+�H�)�܎�K��1m`;�J�2�Y~9��O�g8=vqD`K[�F)k�[���1m޼c��n���]s�k�z$@��)!I �x՝"v��9=�ZA=`Ɠi �:�E��)`7��vI��}d�YI�_ �o�:ob���o ���3Q��&D&�2=�� �Ά��;>�h����y.*ⅥS������Ӭ�+q&����j|UƧ����}���J0��WW< ۋS�)jQR�j���Ư��rN)�Gű�4Ѷ(�S)Ǣ�8��i��W52���No˓� ۍ%�5brOn�L�;�n��\G����=�^U�dI���8$�&���h��'���+�(������cȁ߫k�l��S^���cƗjԌE�ꭔ��gF���Ȓ��@���}O���*;e�v�WV���YJ\�]X'5��ղ�k�F��b 6R�o՜m��i N�i����>J����?��lPm�U��}>_Z&�KK��q�r��I�D�Չ~�q�3fL�:S�e>���E���-G���{L�6p�e,8��������QI��h��a�Xa��U�A'���ʂ���s�+טIjP�-��y�8ۈZ?J$��W�P� ��R�s�]��|�l(�ԓ��sƊi��o(��S0��Y� 8�T97.�����WiL��c�~�dxc�E|�2!�X�K�Ƙਫ਼�$((�6�~|d9u+�qd�^3�89��Y�6L�.I�����?���iI�q���9�)O/뚅����O���X��X�V��ZF[�یgQ�L��K1���RҖr@v�#��X�l��F���Нy�S�8�7�kF!A��sM���^rkp�jP�DyS$N���q��nxҍ!U�f�!eh�i�2�m���`�Y�I�9r�6� �TF���C}/�y�^���Η���5d�'��9A-��J��>{�_l+�`��A���[�'��յ�ϛ#w:݅�%��X�}�&�PSt�Q�"�-��\縵�/����$Ɨh�Xb�*�y��BS����;W�ջ_mc�����vt?2}1�;qS�d�d~u:2k5�2�R�~�z+|HE!)�Ǟl��7`��0�<�,�2*���Hl-��x�^����'_TV�gZA�'j� ^�2Ϊ��N7t�����?w�� �x1��f��Iz�C-Ȗ��K�^q�;���-W�DvT�7��8�Z�������� hK�(P:��Q- �8�n�Z���܃e貾�<�1�YT<�,�����"�6{/ �?�͟��|1�:�#g��W�>$����d��J��d�B��=��jf[��%rE^��il:��B���x���Sּ�1հ��,�=��*�7 fcG��#q� �eh?��2�7�����,�!7x��6�n�LC�4x��},Geǝ�tC.��vS �F�43��zz\��;QYC,6����~;RYS/6���|2���5���v��T��i����������mlv��������&� �nRh^ejR�LG�f���? �ۉҬܦƩ��|��Ȱ����>3����!v��i�ʯ�>�v��オ�X3e���_1z�Kȗ\<������!�8���V��]��?b�k41�Re��T�q��mz��TiOʦ�Z��Xq���L������q"+���2ۨ��8}�&N7XU7Ap�d�X��~�׿��&4e�o�F��� �H����O���č�c�� 懴�6���͉��+)��v;j��ݷ�� �UV�� i��� j���Y9GdÒJ1��詞�����V?h��l����l�cGs�ځ�������y�Ac�����\V3�? �� ܙg�>qH�S,�E�W�[�㺨�uch�⍸�O�}���a��>�q�6�n6����N6�q������N ! 1AQaq�0@����"2BRb�#Pr���3C`��Scst���$4D���%Td�� ?���N����a��3��m���C���w��������xA�m�q�m���m������$����4n淿t'��C"w��zU=D�\R+w�p+Y�T�&�պ@��ƃ��3ޯ?�Aﶂ��aŘ���@-�����Q�=���9D��ռ�ѻ@��M�V��P��܅�G5�f�Y<�u=,EC)�<�Fy'�"�&�չ�X~f��l�KԆV��?�� �W�N����=(� �;���{�r����ٌ�Y���h{�١������jW����P���Tc�����X�K�r��}���w�R��%��?���E��m�� �Y�q|����\lEE4���r���}�lsI�Y������f�$�=�d�yO����p�����yBj8jU�o�/�S��?�U��*������ˍ�0������u�q�m [�?f����a�� )Q�>����6#������� ?����0UQ����,IX���(6ڵ[�DI�MNލ�c&���υ�j\��X�R|,4��� j������T�hA�e��^���d���b<����n�� �즇�=!���3�^�`j�h�ȓr��jẕ�c�,ٞX����-����a�ﶔ���#�$��]w�O��Ӫ�1y%��L�Y<�wg#�ǝ�̗`�x�xa�t�w��»1���o7o5��>�m뭛C���Uƃߜ}�C���y1Xνm�F8�jI���]����H���ۺиE@I�i;r�8ӭ����V�F�Շ| ��&?�3|x�B�MuS�Ge�=Ӕ�#BE5G�����Y!z��_e��q�р/W>|-�Ci߇�t�1ޯќd�R3�u��g�=0 5��[?�#͏��q�cf���H��{ ?u�=?�?ǯ���}Z��z���hmΔ�BFTW�����<�q�(v� ��!��z���iW]*�J�V�z��gX֧A�q�&��/w���u�gYӘa���; �i=����g:��?2�dž6�ى�k�4�>�Pxs����}������G�9��3 ���)gG�R<>r h�$��'nc�h�P��Bj��J�ҧH� -��N1���N��?��~��}-q!=��_2hc�M��l�vY%UE�@|�v����M2�.Y[|y�"Eï��K�ZF,�ɯ?,q�?v�M 80jx�"�;�9vk�����+ ֧�� �ȺU��?�%�vcV��mA�6��Qg^M����A}�3�nl� QRN�l8�kkn�'�����(��M�7m9و�q���%ޟ���*h$Zk"��$�9��: �?U8�Sl��,,|ɒ��xH(ѷ����Gn�/Q�4�P��G�%��Ա8�N��!� �&�7�;���eKM7�4��9R/%����l�c>�x;������>��C�:�����t��h?aKX�bhe�ᜋ^�$�Iհ �hr7%F$�E��Fd���t��5���+�(M6�t����Ü�UU|zW�=a�Ts�Tg������dqP�Q����b'�m���1{|Y����X�N��b �P~��F^F:����k6�"�j!�� �I�r�`��1&�-$�Bevk:y���#yw��I0��x��=D�4��tU���P�ZH��ڠ底taP��6����b>�xa����Q�#� WeF��ŮNj�p�J* mQ�N����*I�-*�ȩ�F�g�3 �5��V�ʊ�ɮ�a��5F���O@{���NX��?����H�]3��1�Ri_u��������ѕ�� ����0��� F��~��:60�p�͈�S��qX#a�5>���`�o&+�<2�D����: �������ڝ�$�nP���*)�N�|y�Ej�F�5ټ�e���ihy�Z �>���k�bH�a�v��h�-#���!�Po=@k̆IEN��@��}Ll?j�O������߭�ʞ���Q|A07x���wt!xf���I2?Z��<ץ�T���cU�j��]��陎Ltl �}5�ϓ��$�,��O�mˊ�;�@O��jE��j(�ا,��LX���LO���Ц�90�O �.����a��nA���7������j4 ��W��_ٓ���zW�jcB������y՗+EM�)d���N�g6�y1_x��p�$Lv:��9�"z��p���ʙ$��^��JԼ*�ϭ����o���=x�Lj�6�J��u82�A�H�3$�ٕ@�=Vv�]�'�qEz�;I˼��)��=��ɯ���x �/�W(V���p�����$ �m�������u�����񶤑Oqˎ�T����r��㠚x�sr�GC��byp�G��1ߠ�w e�8�$⿄����/�M{*}��W�]˷.�CK\�ުx���/$�WPw���r� |i���&�}�{�X� �>��$-��l���?-z���g����lΆ���(F���h�vS*���b���߲ڡn,|)mrH[���a�3�ר�[1��3o_�U�3�TC�$��(�=�)0�kgP���� ��u�^=��4 �WYCҸ:��vQ�ר�X�à��tk�m,�t*��^�,�}D*� �"(�I��9R����>`�`��[~Q]�#af��i6l��8���6�:,s�s�N6�j"�A4���IuQ��6E,�GnH��zS�HO�uk�5$�I�4��ؤ�Q9�@��C����wp�BGv[]�u�Ov���0I4���\��y�����Q�Ѹ��~>Z��8�T��a��q�ޣ;z��a���/��S��I:�ܫ_�|������>=Z����8:�S��U�I�J��"IY���8%b8���H��:�QO�6�;7�I�S��J��ҌAά3��>c���E+&jf$eC+�z�;��V����� �r���ʺ������my�e���aQ�f&��6�ND��.:��NT�vm�<- u���ǝ\MvZY�N�NT��-A�>jr!S��n�O 1�3�Ns�%�3D@���`������ܟ 1�^c<���� �a�ɽ�̲�Xë#�w�|y�cW�=�9I*H8�p�^(4���՗�k��arOcW�tO�\�ƍR��8����'�K���I�Q�����?5�>[�}��yU�ײ -h��=��% q�ThG�2�)���"ו3]�!kB��*p�FDl�A���,�eEi�H�f�Ps�����5�H:�Փ~�H�0Dت�D�I����h�F3�������c��2���E��9�H��5�zԑ�ʚ�i�X�=:m�xg�hd(�v����׊�9iS��O��d@0ڽ���:�p�5�h-��t�&���X�q�ӕ,��ie�|���7A�2���O%P��E��htj��Y1��w�Ѓ!����  ���� ࢽ��My�7�\�a�@�ţ�J �4�Ȼ�F�@o�̒?4�wx��)��]�P��~�����u�����5�����7X ��9��^ܩ�U;Iꭆ 5 �������eK2�7(�{|��Y׎ �V��\"���Z�1� Z�����}��(�Ǝ"�1S���_�vE30>���p;� ΝD��%x�W�?W?v����o�^V�i�d��r[��/&>�~`�9Wh��y�;���R��� ;;ɮT��?����r$�g1�K����A��C��c��K��l:�'��3 c�ﳯ*"t8�~l��)���m��+U,z��`(�>yJ�?����h>��]��v��ЍG*�{`��;y]��I�T� ;c��NU�fo¾h���/$���|NS���1�S�"�H��V���T���4��uhǜ�]�v;���5�͠x��'C\�SBpl���h}�N����� A�Bx���%��ޭ�l��/����T��w�ʽ]D�=����K���ž�r㻠l4�S�O?=�k �M:� ��c�C�a�#ha���)�ѐxc�s���gP�iG��{+���x���Q���I= �� z��ԫ+ �8"�k�ñ�j=|����c ��y��CF��/��*9ж�h{ �?4�o� ��k�m�Q�N�x��;�Y��4膚�a�w?�6�>e]�����Q�r�:����g�,i"�����ԩA�*M�<�G��b�if��l^M��5� �Ҩ�{����6J��ZJ�����P�*�����Y���ݛu�_4�9�I8�7���������,^ToR���m4�H��?�N�S�ѕw��/S��甍�@�9H�S�T��t�ƻ���ʒU��*{Xs�@����f�����֒Li�K{H�w^���������Ϥm�tq���s� ���ք��f:��o~s��g�r��ט� �S�ѱC�e]�x���a��) ���(b-$(�j>�7q�B?ӕ�F��hV25r[7 Y� }L�R��}����*sg+��x�r�2�U=�*'WS��ZDW]�WǞ�<��叓���{�$�9Ou4��y�90-�1�'*D`�c�^o?(�9��u���ݐ��'PI&� f�Jݮ�������:wS����jfP1F:X �H�9dԯ���˝[�_54 �}*;@�ܨ�� ð�yn�T���?�ןd�#���4rG�ͨ��H�1�|-#���Mr�S3��G�3�����)�.᧏3v�z֑��r����$G"�`j �1t��x0<Ɔ�Wh6�y�6��,œ�Ga��gA����y��b��)��h�D��ß�_�m��ü �gG;��e�v��ݝ�nQ� ��C����-�*��o���y�a��M��I�>�<���]obD��"�:���G�A��-\%LT�8���c�)��+y76���o�Q�#*{�(F�⽕�y����=���rW�\p���۩�c���A���^e6��K������ʐ�cVf5$�'->���ՉN"���F�"�UQ@�f��Gb~��#�&�M=��8�ט�JNu9��D��[̤�s�o�~������ G��9T�tW^g5y$b��Y'��س�Ǵ�=��U-2 #�MC�t(�i� �lj�@Q 5�̣i�*�O����s�x�K�f��}\��M{E�V�{�υ��Ƈ�����);�H����I��fe�Lȣr�2��>��W�I�Ȃ6������i��k�� �5�YOxȺ����>��Y�f5'��|��H+��98pj�n�.O�y�������jY��~��i�w'������l�;�s�2��Y��:'lg�ꥴ)o#'Sa�a�K��Z� �m��}�`169�n���"���x��I ��*+� }F<��cГ���F�P�������ֹ*�PqX�x۩��,� ��N�� �4<-����%����:��7����W���u�`����� $�?�I��&����o��o��`v�>��P��"��l���4��5'�Z�gE���8���?��[�X�7(��.Q�-��*���ތL@̲����v��.5���[��=�t\+�CNܛ��,g�SQnH����}*F�G16���&:�t��4ُ"A��̣��$�b �|����#rs��a�����T�� ]�<�j��BS�('$�ɻ� �wP;�/�n��?�ݜ��x�F��yUn�~mL*-�������Xf�wd^�a�}��f�,=t�׵i�.2/wpN�Ep8�OР���•��R�FJ� 55TZ��T �ɭ�<��]��/�0�r�@�f��V��V����Nz�G��^���7hZi����k��3�,kN�e|�vg�1{9]_i��X5y7� 8e]�U����'�-2,���e"����]ot�I��Y_��n�(JҼ��1�O ]bXc���Nu�No��pS���Q_���_�?i�~�x h5d'�(qw52] ��'ޤ�q��o1�R!���`ywy�A4u���h<קy���\[~�4�\ X�Wt/� 6�����n�F�a8��f���z �3$�t(���q��q�x��^�XWeN'p<-v�!�{�(>ӽDP7��ո0�y)�e$ٕv�Ih'Q�EA�m*�H��RI��=:��� ���4牢) �%_iN�ݧ�l]� �Nt���G��H�L��� ɱ�g<���1V�,�J~�ٹ�"K��Q�� 9�HS�9�?@��k����r�;we݁�]I�!{ �@�G�[�"��`���J:�n]�{�cA�E����V��ʆ���#��U9�6����j�#Y�m\��q�e4h�B�7��C�������d<�?J����1g:ٳ���=Y���D�p�ц� ׈ǔ��1�]26؜oS�'��9�V�FVu�P�h�9�xc�oq�X��p�o�5��Ա5$�9W�V(�[Ak�aY錎qf;�'�[�|���b�6�Ck��)��#a#a˙��8���=äh�4��2��C��4tm^ �n'c���]GQ$[Wҿ��i���vN�{Fu ��1�gx��1┷���N�m��{j-,��x�� Ūm�ЧS�[�s���Gna���䑴�� x�p 8<������97�Q���ϴ�v�aϚG��Rt�Һ׈�f^\r��WH�JU�7Z���y)�vg=����n��4�_)y��D'y�6�]�c�5̪�\� �PF�k����&�c;��cq�$~T�7j ���nç]�<�g ":�to�t}�159�<�/�8������m�b�K#g'I'.W�����6��I/��>v��\�MN��g���m�A�yQL�4u�Lj�j9��#44�t��l^�}L����n��R��!��t��±]��r��h6ٍ>�yҏ�N��fU�� ���� Fm@�8}�/u��jb9������he:A�y�ծw��GpΧh�5����l}�3p468��)U��d��c����;Us/�֔�YX�1�O2��uq�s��`hwg�r~�{ R��mhN��؎*q 42�*th��>�#���E����#��Hv�O����q�}�����6�e��\�,Wk�#���X��b>��p}�դ��3���T5��†��6��[��@�P�y*n��|'f�֧>�lư΂�̺����SU�'*�q�p�_S�����M�� '��c�6�����m�� ySʨ;M��r���Ƌ�m�Kxo,���Gm�P��A�G�:��i��w�9�}M(�^�V��$ǒ�ѽ�9���|���� �a����J�SQ�a���r�B;����}���ٻ֢�2�%U���c�#�g���N�a�ݕ�'�v�[�OY'��3L�3�;,p�]@�S��{ls��X�'���c�jw�k'a�.��}�}&�� �dP�*�bK=ɍ!����;3n�gΊU�ߴmt�'*{,=SzfD� A��ko~�G�aoq�_mi}#�m�������P�Xhύ����mxǍ�΂���巿zf��Q���c���|kc�����?���W��Y�$���_Lv����l߶��c���`?����l�j�ݲˏ!V��6����U�Ђ(A���4y)H���p�Z_�x��>���e��R��$�/�`^'3qˏ�-&Q�=?��CFVR �D�fV�9��{�8g�������n�h�(P"��6�[�D���< E�����~0<@�`�G�6����Hг�cc�� �c�K.5��D��d�B���`?�XQ��2��ٿyqo&+�1^� DW�0�ꊩ���G�#��Q�nL3��c���������/��x ��1�1[y�x�პCW��C�c�UĨ80�m�e�4.{�m��u���I=��f�����0QRls9���f���������9���~f�����Ǩ��a�"@�8���ȁ�Q����#c�ic������G��$���G���r/$W�(��W���V�"��m�7�[m�A�m����bo��D� j����۳� l���^�k�h׽����� ��#� iXn�v��eT�k�a�^Y�4�BN��ĕ��0 !01@Q"2AaPq3BR������?���@4�Q�����T3,���㺠�W�[=JK�Ϟ���2�r^7��vc�:�9 �E�ߴ�w�S#d���Ix��u��:��Hp��9E!�� V 2;73|F��9Y���*ʬ�F��D����u&���y؟��^EA��A��(ɩ���^��GV:ݜDy�`��Jr29ܾ�㝉��[���E;Fzx��YG��U�e�Y�C���� ����v-tx����I�sם�Ę�q��Eb�+P\ :>�i�C'�;�����k|z�رn�y]�#ǿb��Q��������w�����(�r|ӹs��[�D��2v-%��@;�8<a���[\o[ϧw��I!��*0�krs)�[�J9^��ʜ��p1)� "��/_>��o��<1����A�E�y^�C��`�x1'ܣn�p��s`l���fQ��):�l����b>�Me�jH^?�kl3(�z:���1ŠK&?Q�~�{�ٺ�h�y���/�[��V�|6��}�KbX����mn[-��7�5q�94�������dm���c^���h� X��5��<�eޘ>G���-�}�دB�ޟ� ��|�rt�M��V+�]�c?�-#ڛ��^ǂ}���Lkr���O��u�>�-D�ry� D?:ޞ�U��ǜ�7�V��?瓮�"�#���r��չģVR;�n���/_� ؉v�ݶe5d�b9��/O��009�G���5n�W����JpA�*�r9�>�1��.[t���s�F���nQ� V 77R�]�ɫ8����_0<՜�IF�u(v��4��F�k�3��E)��N:��yڮe��P�`�1}�$WS��J�SQ�N�j�ٺ��޵�#l���ј(�5=��5�lǏmoW�v-�1����v,W�mn��߀$x�<����v�j(����c]��@#��1������Ǔ���o'��u+����;G�#�޸��v-lη��/(`i⣍Pm^���ԯ̾9Z��F��������n��1��� ��]�[��)�'������:�֪�W��FC����� �B9،!?���]��V��A�Վ�M��b�w��G F>_DȬ0¤�#�QR�[V��kz���m�w�"��9ZG�7'[��=�Q����j8R?�zf�\a�=��O�U����*oB�A�|G���2�54 �p��.w7� �� ��&������ξxGHp� B%��$g�����t�Џ򤵍z���HN�u�Я�-�'4��0��;_��3 !01"@AQa2Pq#3BR������?��ʩca��en��^��8���<�u#��m*08r��y�N"�<�Ѳ0��@\�p��� �����Kv�D��J8�Fҽ� �f�Y��-m�ybX�NP����}�!*8t(�OqѢ��Q�wW�K��ZD��Δ^e��!� ��B�K��p~�����e*l}z#9ң�k���q#�Ft�o��S�R����-�w�!�S���Ӥß|M�l޶V��!eˈ�8Y���c�ЮM2��tk���� ������J�fS����Ö*i/2�����n]�k�\���|4yX�8��U�P.���Ы[���l��@"�t�<������5�lF���vU�����W��W��;�b�cД^6[#7@vU�xgZv��F�6��Q,K�v��� �+Ъ��n��Ǣ��Ft���8��0��c�@�!�Zq s�v�t�;#](B��-�nῃ~���3g������5�J�%���O������n�kB�ĺ�.r��+���#�N$?�q�/�s�6��p��a����a��J/��M�8��6�ܰ"�*������ɗud"\w���aT(����[��F��U՛����RT�b���n�*��6���O��SJ�.�ij<�v�MT��R\c��5l�sZB>F��<7�;EA��{��E���Ö��1U/�#��d1�a�n.1ě����0�ʾR�h��|�R��Ao�3�m3 ��%�� ���28Q� ��y��φ���H�To�7�lW>����#i`�q���c����a��� �m,B�-j����݋�'mR1Ήt�>��V��p���s�0IbI�C.���1R�ea�����]H�6����������4B>��o��](��$B���m�����a�!=��?�B� K�Ǿ+�Ծ"�n���K��*��+��[T#�{E�J�S����Q�����s�5�:�U�\wĐ�f�3����܆&�)����I���Ԇw��E T�lrTf6Q|R�h:��[K�� �z��c֧�G�C��%\��_�a�84��HcO�bi��ؖV��7H �)*ģK~Xhչ0��4?�0��� �E<���}3���#���u�?�� ��|g�S�6ꊤ�|�I#Hڛ� �ա��w�X��9��7���Ŀ%�SL��y6č��|�F�a 8���b��$�sק�h���b9RAu7�˨p�Č�_\*w��묦��F ����4D~�f����|(�"m���NK��i�S�>�$d7SlA��/�²����SL��|6N�}���S�˯���g��]6��; �#�.��<���q'Q�1|KQ$�����񛩶"�$r�b:���N8�w@��8$�� �AjfG|~�9F ���Y��ʺ��Bwؒ������M:I岎�G��`s�YV5����6��A �b:�W���G�q%l�����F��H���7�������Fsv7��k�� 403WebShell
403Webshell
Server IP : 213.165.242.4  /  Your IP : 216.73.217.62
Web Server : Apache
System : Linux amsngx344.inmotionhosting.com 4.18.0-553.40.1.lve.el8.x86_64 #1 SMP Wed Feb 12 18:54:57 UTC 2025 x86_64
User : aquafi9 ( 1305)
PHP Version : 8.1.34
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /opt/carbon-client/venv/lib64/python3.13/site-packages/arrow/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/carbon-client/venv/lib64/python3.13/site-packages/arrow/__pycache__/arrow.cpython-313.pyc
�

���i����SrSSKrSSKrSSKrSSKJr SSKJr SSKJr SSKJ	r	J
r
 SSKJr SSK
Jr SS	KJr SS
KJrJrJrJrJrJrJrJrJrJrJrJrJr SSKJr  SSK!J"r" SS
K#J$r$J%r%J&r&J'r' SSK(J)r)J*r* SSK+J,r, \\\-4r.\Sr/\Sr0\Sr1"SS5r2\2Rg\Rh5\2l4\2Rg\Rj5\2l5g)z_
Provides the :class:`Arrow <arrow.arrow.Arrow>` class, an enhanced ``datetime``
replacement.

�N��date)�datetime)�time)�	timedelta�timezone��tzinfo)�trunc)�struct_time)
�Any�ClassVar�Final�	Generator�Iterable�List�Literal�Mapping�Optional�Tuple�Union�cast�overload)�tz)�
relativedelta)�	formatter�locales�parser�util)�DEFAULT_LOCALE�DEHUMANIZE_LOCALES)�TimeFrameLiteral)�year�years�month�months�day�days�hour�hours�minute�minutes�second�seconds�microsecond�microseconds�week�weeks�quarter�quarters)�[)�()z(]z[])	�autor-r+r)r'r1r%r3r#c�	�\rSrSr%Sr\Rr\\\	S'\S\	S'\S\	S'/SQr
\\\
\	S'\
VVs/sHoS3PM	 snnr\\\
\	S	'S
r\\\	S'Sr\\\	S
'Sr\\\	S'Sr\\\	S'Sr\\\	S'Sr\\\	S'Sr\\\	S'Sr\\\	S'Sr\\\	S'S\\\\\\\S.r\\\\4\	S'\\	S'S�S!\S"\S#\S$\S%\S&\S'\S(\\S)\S*S 4S+jjr \!S�S(\\"S*S4S,jj5r#\!S�S-j5r$\!S�S.\%\\\
4S(\\S*S4S/jj5r&\!S.\%\\\
4S*S4S0j5r'\!S�S1\S(\\S*S4S2jj5r(\!S�S3\)S(\\S*S4S4jj5r*\!S�S5\
S6\
S(\\S*S4S7jj5r+\!S8\S*S4S9j5r,\!S�S:\-S;\%S\4S<\%S\S 4S=\\S>\\S*\.S?4S@jj5r/S�S:\-SB\SC\0SD\1SE\S*\2SF4SGjjr3S:\-S)\S*S4SHjr4S:\-S)\S*S4SIjr5\!S�S:\-S;\S<\S=\\S>\\SC\0SD\1S*\6\2SF4SJjj5r7\!S�S:\-S;\S<\SK\S=\\SC\0SD\1S*\6\2SF4SLjj5r8S*\
4SMjr9S*\
4SNjr:SO\
S*\
4SPjr;S*\4SQjr<SR\
S*\4SSjr=\>S*\"4STj5r?\>S*\4SUj5r@\>S*\4SVj5rAS*\4SWjrB\>S*\4SXj5rC\>S*\4SYj5rD\>S*\4SZj5rE\>S*\14S[j5rF\>S*\14S\j5rGS�S]jrHS)\S*S4S^jrIS�S_\1S)\S*S4S`jjrJS=\S*S4SajrKSb\L4S6\
Sc\
S*\
4SdjjrMS \LSASe4Sf\%S\S 4Sc\
Sg\1Sh\%\N\\N4S*\
4
SijjrOS�Sj\
Sc\
S*S4SkjjrPS�S;SS<SSC\0S*\14SljjrQS*\)4Smjr)S*\R4SnjrSS*\R4SojrTS=\\"S*\4SpjrUS*\\4SqjrVS*\\4SrjrWS*\X4SsjrYS*\X4StjrZS*\4Sujr[S*\4Svjr\S*\4Swjr]S*\2\\\44Sxjr^S�Sy\
Sz\
S*\
4S{jjr_S*\
4S|jr`S}\
S*\
4S~jraS*\
4SjrbSf\S*S4S�jrcSf\%\\d4S*S4S�jre\fSf\%\\d4S*S4S�j5rg\fSf\%\S4S*\4S�j5rgSf\S*\%\S44S�jrgSf\S*\4S�jrhSf\S*\14S�jriSf\S*\14S�jrjSf\S*\14S�jrkSf\S*\14S�jrlSf\S*\14S�jrmSf\S*\14S�jrn\oS�\\S*\"4S�j5rp\!S�\%S\\\\
4S*\4S�j5rq\!SR\-S*\2\
\
\44S�j5rr\!S<\S>\\S*\2\\44S�j5rs\oS3SS*\14S�j5rtS�rug s snnf)��Arrow�NaAn :class:`Arrow <arrow.arrow.Arrow>` object.

Implements the ``datetime`` interface, behaving as an aware ``datetime`` while implementing
additional functionality.

:param year: the calendar year.
:param month: the calendar month.
:param day: the calendar day.
:param hour: (optional) the hour. Defaults to 0.
:param minute: (optional) the minute, Defaults to 0.
:param second: (optional) the second, Defaults to 0.
:param microsecond: (optional) the microsecond. Defaults to 0.
:param tzinfo: (optional) A timezone expression.  Defaults to UTC.
:param fold: (optional) 0 or 1, used to disambiguate repeated wall times. Defaults to 0.

.. _tz-expr:

Recognized timezone expressions:

    - A ``tzinfo`` object.
    - A ``str`` describing a timezone, similar to 'US/Pacific', or 'Europe/Berlin'.
    - A ``str`` in ISO 8601 style, as in '+07:00'.
    - A ``str``, one of the following:  'local', 'utc', 'UTC'.

Usage::

    >>> import arrow
    >>> arrow.Arrow(2013, 5, 5, 12, 30, 45)
    <Arrow [2013-05-05T12:30:45+00:00]>

�
resolution�min�max)r#r%r'r)r+r-r/�_ATTRS�s�
_ATTRS_PLURAL��_MONTHS_PER_QUARTER��_MONTHS_PER_YEAR�<�_SECS_PER_MINUTEi�_SECS_PER_HOURi�Q�
_SECS_PER_DAYi�:	�_SECS_PER_WEEKg�DA�_SECS_PER_MONTHgP(^A�_SECS_PER_QUARTERi�3��_SECS_PER_YEARg�?)r-r+r)r'r1r%r3r#�	_SECS_MAP�	_datetimeNr#r%r'r)r+r-r/r
�kwargs�returnc	��Uc[RnO�[U[5(a][	US5(aL[	US5(a;UR
(a*[RRUR
5nO4[U[5(a[RRU5nU	RSS5n
[XX4XVXxU
S9	Ulg)N�localize�zone�foldr�rT)
r�utc�
isinstance�	dt_tzinfo�hasattrrSr�TzinfoParser�parse�str�get�dt_datetimerN)�selfr#r%r'r)r+r-r/r
rOrTs           �C/opt/carbon-client/venv/lib/python3.13/site-packages/arrow/arrow.py�__init__�Arrow.__init__�s����>��\�\�F�
�v�y�)�)���
�+�+����'�'�����(�(�.�.�v�{�{�;�F�
���
$�
$��(�(�.�.�v�6�F��z�z�&�!�$��$���F�K�d�
���c�`�Uc-[R"5R5Rn[R"U5nU"URUR
URURURURURUR[USS5S9	$)aConstructs an :class:`Arrow <arrow.arrow.Arrow>` object, representing "now" in the given
timezone.

:param tzinfo: (optional) a ``tzinfo`` object. Defaults to local time.

Usage::

    >>> arrow.now('Asia/Baku')
    <Arrow [2019-01-24T20:26:31.146412+04:00]>

rTrrU)r^�now�
astimezoner
r#r%r'r)r+r-r/�getattr)�clsr
�dts   r`re�	Arrow.now�s����>� �_�_�&�1�1�3�:�:�F�
�_�_�V�
$����G�G��H�H��F�F��G�G��I�I��I�I��N�N��I�I���V�Q�'�

�
	
rcc��[R"[R5nU"URUR
URURURURURUR[USS5S9	$)z�Constructs an :class:`Arrow <arrow.arrow.Arrow>` object, representing "now" in UTC
time.

Usage::

    >>> arrow.utcnow()
    <Arrow [2019-01-24T16:31:40.651108+00:00]>

rTrrU)
r^rerrVr#r%r'r)r+r-r/r
rg)rhris  r`�utcnow�Arrow.utcnow�sg���_�_�X�\�\�
*����G�G��H�H��F�F��G�G��I�I��I�I��N�N��I�I���V�Q�'�

�
	
rc�	timestampc�^�Uc.[R"5R5RnO4[	U[
5(a[RRU5n[R"U5(d[SU<S35e[R"[U55n[R"X5nU"URUR UR"UR$UR&UR(UR*UR[-USS5S9	$)aConstructs an :class:`Arrow <arrow.arrow.Arrow>` object from a timestamp, converted to
the given timezone.

:param timestamp: an ``int`` or ``float`` timestamp, or a ``str`` that converts to either.
:param tzinfo: (optional) a ``tzinfo`` object.  Defaults to local time.

�The provided timestamp � is invalid.rTrrU)r^rerfr
rWr\rrZr[r�is_timestamp�
ValueError�normalize_timestamp�float�
fromtimestampr#r%r'r)r+r-r/rg)rhrnr
ris    r`rv�Arrow.fromtimestamp�s����>� �_�_�&�1�1�3�:�:�F�
���
$�
$��(�(�.�.�v�6�F�� � ��+�+��6�y�m�<�P�Q�Q��,�,�U�9�-=�>�	�
�
&�
&�y�
9����G�G��H�H��F�F��G�G��I�I��I�I��N�N��I�I���V�Q�'�

�
	
rcc��[R"U5(d[SU<S35e[R"[	U55n[
R"U[R5nU"URURURURURURUR[R[!USS5S9	$)z�Constructs an :class:`Arrow <arrow.arrow.Arrow>` object from a timestamp, in UTC time.

:param timestamp: an ``int`` or ``float`` timestamp, or a ``str`` that converts to either.

rprqrTrrU)rrrrsrtrur^rvrrVr#r%r'r)r+r-r/rg)rhrnris   r`�utcfromtimestamp�Arrow.utcfromtimestamps���� � ��+�+��6�y�m�<�P�Q�Q��,�,�U�9�-=�>�	�
�
&�
&�y�(�,�,�
?����G�G��H�H��F�F��G�G��I�I��I�I��N�N��L�L���V�Q�'�

�
	
rcric��Uc*URc[RnOURnU"URURUR
URURURURU[USS5S9	$)a�Constructs an :class:`Arrow <arrow.arrow.Arrow>` object from a ``datetime`` and
optional replacement timezone.

:param dt: the ``datetime``
:param tzinfo: (optional) A :ref:`timezone expression <tz-expr>`.  Defaults to ``dt``'s
    timezone, or UTC if naive.

Usage::

    >>> dt
    datetime.datetime(2021, 4, 7, 13, 48, tzinfo=tzfile('/usr/share/zoneinfo/US/Pacific'))
    >>> arrow.Arrow.fromdatetime(dt)
    <Arrow [2021-04-07T13:48:00-07:00]>

rTrrU)r
rrVr#r%r'r)r+r-r/rg)rhrir
s   r`�fromdatetime�Arrow.fromdatetime-sr��$�>��y�y� �!����������G�G��H�H��F�F��G�G��I�I��I�I��N�N����V�Q�'�

�
	
rcrc�v�Uc[RnU"URURURUS9$)z�Constructs an :class:`Arrow <arrow.arrow.Arrow>` object from a ``date`` and optional
replacement timezone.  All time values are set to 0.

:param date: the ``date``
:param tzinfo: (optional) A :ref:`timezone expression <tz-expr>`.  Defaults to UTC.

r	)rrVr#r%r')rhrr
s   r`�fromdate�Arrow.fromdateQs/���>��\�\�F��4�9�9�d�j�j�$�(�(�6�B�Brc�date_str�fmtc�
�[R"X5nUcURnU"URURUR
URURURURU[USS5S9	$)a"Constructs an :class:`Arrow <arrow.arrow.Arrow>` object from a date string and format,
in the style of ``datetime.strptime``.  Optionally replaces the parsed timezone.

:param date_str: the date string.
:param fmt: the format string using datetime format codes.
:param tzinfo: (optional) A :ref:`timezone expression <tz-expr>`.  Defaults to the parsed
    timezone if ``fmt`` contains a timezone directive, otherwise UTC.

Usage::

    >>> arrow.Arrow.strptime('20-01-2019 15:49:10', '%d-%m-%Y %H:%M:%S')
    <Arrow [2019-01-20T15:49:10+00:00]>

rTrrU)r^�strptimer
r#r%r'r)r+r-r/rg)rhr�r�r
ris     r`r��Arrow.strptime`so��&�
!�
!�(�
0���>��Y�Y�F���G�G��H�H��F�F��G�G��I�I��I�I��N�N����V�Q�'�

�
	
rc�ordinalc�,�[R"U5 [R"U5nU"URUR
URURURURURUR[USS5S9	$)z�Constructs an :class:`Arrow <arrow.arrow.Arrow>` object corresponding
    to the Gregorian Ordinal.

:param ordinal: an ``int`` corresponding to a Gregorian Ordinal.

Usage::

    >>> arrow.fromordinal(737741)
    <Arrow [2020-11-12T00:00:00+00:00]>

rTrrU)
r�validate_ordinalr^�fromordinalr#r%r'r)r+r-r/r
rg)rhr�ris   r`r��Arrow.fromordinal�ss��	
���g�&�
�
$�
$�W�
-����G�G��H�H��F�F��G�G��I�I��I�I��N�N��I�I���V�Q�'�

�
	
rc�frame�start�endr�limit)r9NNc#�# �URU5upgnURUcUROU5n	URU5R	U	S9nURX55up5URU5R	U	S9nUR
U5n
URnSnSn
X�::a�X�:a�U
S-
n
U
v� URVs/sHn[X�5PM nnU"USU	06R"SSS0Xx0D6n
US	;aU
RU:aSnU(a%URU
5(dU
R	US
9n
X�::aX�:aM�ggggs snf7f)a�Returns an iterator of :class:`Arrow <arrow.arrow.Arrow>` objects, representing
points in time between two inputs.

:param frame: The timeframe.  Can be any ``datetime`` property (day, hour, minute...).
:param start: A datetime expression, the start of the range.
:param end: (optional) A datetime expression, the end of the range.
:param tz: (optional) A :ref:`timezone expression <tz-expr>`.  Defaults to
    ``start``'s timezone, or UTC if ``start`` is naive.
:param limit: (optional) A maximum number of tuples to return.

**NOTE**: The ``end`` or ``limit`` must be provided.  Call with ``end`` alone to
return the entire range.  Call with ``limit`` alone to return a maximum # of results from
the start.  Call with both to cap a range at a maximum # of results.

**NOTE**: ``tz`` internally **replaces** the timezones of both ``start`` and ``end`` before
iterating.  As such, either call with naive objects and ``tz``, or aware objects from the
same timezone and no ``tz``.

Supported frame values: year, quarter, month, week, day, hour, minute, second, microsecond.

Recognized datetime expressions:

    - An :class:`Arrow <arrow.arrow.Arrow>` object.
    - A ``datetime`` object.

Usage::

    >>> start = datetime(2013, 5, 5, 12, 30)
    >>> end = datetime(2013, 5, 5, 17, 15)
    >>> for r in arrow.Arrow.range('hour', start, end):
    ...     print(repr(r))
    ...
    <Arrow [2013-05-05T12:30:00+00:00]>
    <Arrow [2013-05-05T13:30:00+00:00]>
    <Arrow [2013-05-05T14:30:00+00:00]>
    <Arrow [2013-05-05T15:30:00+00:00]>
    <Arrow [2013-05-05T16:30:00+00:00]>

**NOTE**: Unlike Python's ``range``, ``end`` *may* be included in the returned iterator::

    >>> start = datetime(2013, 5, 5, 12, 30)
    >>> end = datetime(2013, 5, 5, 13, 30)
    >>> for r in arrow.Arrow.range('hour', start, end):
    ...     print(repr(r))
    ...
    <Arrow [2013-05-05T12:30:00+00:00]>
    <Arrow [2013-05-05T13:30:00+00:00]>

Nr	Fr�r
�check_imaginaryT)r%r3r#)r'�)�_get_frames�_get_tzinfor
�
_get_datetime�replace�_get_iteration_paramsr|r'r>rg�shift�_is_last_day_of_month)rhr�r�r�rr��_�frame_relative�relative_stepsr
�current�original_day�day_is_clipped�i�f�valuess                r`�range�Arrow.range�sY���v-0�O�O�E�,B�)��>����������D���!�!�%�(�0�0��0�?���.�.�s�:�
������$�,�,�F�,�;���"�"�5�)���y�y����
���n���
��F�A��M�36�:�:�>�:�a�g�g�)�:�F�>��6�1�&�1�7�7�� $��)7�(H��G��4�4����|�9S�!%���c�&?�&?��&H�&H�!�/�/�l�/�;���n���n��n��?�s�CE�E�A+E�
	EF�count�bounds�exact�
week_start)r9r9c�\�[R"U5 URU5upgnUS:XaSUs=::aS::d
O [S5eSn	OUS:XaSn	OUn	Un
U(d�URRU	5nURSUS-nUV
s/sHn
[
X
5PM nn
[S	[U5-
5HnURS5 M UR"US
UR06n
US:Xa<XPR5:�aSOSnU
RUR5U-
*U-
S9n
O&US:Xa U
RURS-
S	-*S
9n
U
R"SSS0XrU-0D6nUSS:XaU
RSS9n
USS:XaURSS9nU
U4$s sn
f)anReturns a tuple of two new :class:`Arrow <arrow.arrow.Arrow>` objects, representing the timespan
of the :class:`Arrow <arrow.arrow.Arrow>` object in a given timeframe.

:param frame: the timeframe.  Can be any ``datetime`` property (day, hour, minute...).
:param count: (optional) the number of frames to span.
:param bounds: (optional) a ``str`` of either '()', '(]', '[)', or '[]' that specifies
    whether to include or exclude the start and end values in the span. '(' excludes
    the start, '[' includes the start, ')' excludes the end, and ']' includes the end.
    If the bounds are not specified, the default bound '[)' is used.
:param exact: (optional) whether to have the start of the timespan begin exactly
    at the time specified by ``start`` and the end of the timespan truncated
    so as not to extend beyond ``end``.
:param week_start: (optional) only used in combination with the week timeframe. Follows isoweekday() where
    Monday is 1 and Sunday is 7.

Supported frame values: year, quarter, month, week, day, hour, minute, second.

Usage::

    >>> arrow.utcnow()
    <Arrow [2013-05-09T03:32:36.186203+00:00]>

    >>> arrow.utcnow().span('hour')
    (<Arrow [2013-05-09T03:00:00+00:00]>, <Arrow [2013-05-09T03:59:59.999999+00:00]>)

    >>> arrow.utcnow().span('day')
    (<Arrow [2013-05-09T00:00:00+00:00]>, <Arrow [2013-05-09T23:59:59.999999+00:00]>)

    >>> arrow.utcnow().span('day', count=2)
    (<Arrow [2013-05-09T00:00:00+00:00]>, <Arrow [2013-05-10T23:59:59.999999+00:00]>)

    >>> arrow.utcnow().span('day', bounds='[]')
    (<Arrow [2013-05-09T00:00:00+00:00]>, <Arrow [2013-05-10T00:00:00+00:00]>)

    >>> arrow.utcnow().span('week')
    (<Arrow [2021-02-22T00:00:00+00:00]>, <Arrow [2021-02-28T23:59:59.999999+00:00]>)

    >>> arrow.utcnow().span('week', week_start=6)
    (<Arrow [2021-02-20T00:00:00+00:00]>, <Arrow [2021-02-26T23:59:59.999999+00:00]>)

r1r��z,week_start argument must be between 1 and 7.r'r3r%NrAr
r)r()r&r�T�(�r0�)���r�)r�validate_boundsr�rsr>�indexrgr��len�append�	__class__r
�
isoweekdayr�r%)r_r�r�r�r�r��frame_absoluter�r��attr�floorr��framesr�r�r��delta�ceils                  r`�span�
Arrow.span�s���d	
���V�$�9=�9I�9I�%�9P�6����V�#��
�'�a�'� �!O�P�P��D�
�y�
(��D�!�D�����K�K�%�%�d�+�E��[�[��5�1�9�-�F�06�7��1�g�d�&��F�7��1�s�6�{�?�+���
�
�a� �,��N�N�F�?�4�;�;�?�E���'�'�/�/�*;�;�������4�?�?�+<�z�+I�)J�U�)R��S���9�,����d�j�j�1�n��-A�+B��C���{�{�
� �
�%3�^�5K�$L�
���!�9����K�K�R�K�0�E��!�9����:�:�2�:�.�D��d�{���18s�F)c�.�UR"U40UD6S$)a�Returns a new :class:`Arrow <arrow.arrow.Arrow>` object, representing the "floor"
of the timespan of the :class:`Arrow <arrow.arrow.Arrow>` object in a given timeframe.
Equivalent to the first element in the 2-tuple returned by
:func:`span <arrow.arrow.Arrow.span>`.

:param frame: the timeframe.  Can be any ``datetime`` property (day, hour, minute...).
:param week_start: (optional) only used in combination with the week timeframe. Follows isoweekday() where
    Monday is 1 and Sunday is 7.

Usage::

    >>> arrow.utcnow().floor('hour')
    <Arrow [2013-05-09T03:00:00+00:00]>

    >>> arrow.utcnow().floor('week', week_start=7)
    <Arrow [2021-02-21T00:00:00+00:00]>

r�r��r_r�rOs   r`r��Arrow.floorV���(�y�y��)�&�)�!�,�,rcc�.�UR"U40UD6S$)a�Returns a new :class:`Arrow <arrow.arrow.Arrow>` object, representing the "ceiling"
of the timespan of the :class:`Arrow <arrow.arrow.Arrow>` object in a given timeframe.
Equivalent to the second element in the 2-tuple returned by
:func:`span <arrow.arrow.Arrow.span>`.

:param frame: the timeframe.  Can be any ``datetime`` property (day, hour, minute...).
:param week_start: (optional) only used in combination with the week timeframe. Follows isoweekday() where
    Monday is 1 and Sunday is 7.

Usage::

    >>> arrow.utcnow().ceil('hour')
    <Arrow [2013-05-09T03:59:59.999999+00:00]>

    >>> arrow.utcnow().ceil('week', week_start=7)
    <Arrow [2021-02-27T23:59:59.999999+00:00]>

r�r�r�s   r`r��
Arrow.ceillr�rcc#��# �URUcUROU5nURX(5RXS9SnURX85nUR	XX4U5n	U(dU	Hn
U
RXUS9v� M U	HOn
U
RXUS9up�X�:�aUnUSS:XaU[SS9-
nX�:Xa gU[SS9-U:Xa gX�4v� MQ g7f)	a�	Returns an iterator of tuples, each :class:`Arrow <arrow.arrow.Arrow>` objects,
representing a series of timespans between two inputs.

:param frame: The timeframe.  Can be any ``datetime`` property (day, hour, minute...).
:param start: A datetime expression, the start of the range.
:param end: (optional) A datetime expression, the end of the range.
:param tz: (optional) A :ref:`timezone expression <tz-expr>`.  Defaults to
    ``start``'s timezone, or UTC if ``start`` is naive.
:param limit: (optional) A maximum number of tuples to return.
:param bounds: (optional) a ``str`` of either '()', '(]', '[)', or '[]' that specifies
    whether to include or exclude the start and end values in each span in the range. '(' excludes
    the start, '[' includes the start, ')' excludes the end, and ']' includes the end.
    If the bounds are not specified, the default bound '[)' is used.
:param exact: (optional) whether to have the first timespan start exactly
    at the time specified by ``start`` and the final span truncated
    so as not to extend beyond ``end``.

**NOTE**: The ``end`` or ``limit`` must be provided.  Call with ``end`` alone to
return the entire range.  Call with ``limit`` alone to return a maximum # of results from
the start.  Call with both to cap a range at a maximum # of results.

**NOTE**: ``tz`` internally **replaces** the timezones of both ``start`` and ``end`` before
iterating.  As such, either call with naive objects and ``tz``, or aware objects from the
same timezone and no ``tz``.

Supported frame values: year, quarter, month, week, day, hour, minute, second, microsecond.

Recognized datetime expressions:

    - An :class:`Arrow <arrow.arrow.Arrow>` object.
    - A ``datetime`` object.

**NOTE**: Unlike Python's ``range``, ``end`` will *always* be included in the returned
iterator of timespans.

Usage:

    >>> start = datetime(2013, 5, 5, 12, 30)
    >>> end = datetime(2013, 5, 5, 17, 15)
    >>> for r in arrow.Arrow.span_range('hour', start, end):
    ...     print(r)
    ...
    (<Arrow [2013-05-05T12:00:00+00:00]>, <Arrow [2013-05-05T12:59:59.999999+00:00]>)
    (<Arrow [2013-05-05T13:00:00+00:00]>, <Arrow [2013-05-05T13:59:59.999999+00:00]>)
    (<Arrow [2013-05-05T14:00:00+00:00]>, <Arrow [2013-05-05T14:59:59.999999+00:00]>)
    (<Arrow [2013-05-05T15:00:00+00:00]>, <Arrow [2013-05-05T15:59:59.999999+00:00]>)
    (<Arrow [2013-05-05T16:00:00+00:00]>, <Arrow [2013-05-05T16:59:59.999999+00:00]>)
    (<Arrow [2013-05-05T17:00:00+00:00]>, <Arrow [2013-05-05T17:59:59.999999+00:00]>)

N)r�r�r�r�r�r�r�r�)r�r
r|r�r�r)
rhr�r�r�rr�r�r�r
�_range�rr�r�s
             r`�
span_range�Arrow.span_range�s����|���������D��� � ��/�4�4�U�4�H��K�����s�+�����5��%�8������f�f�U��f�?�?���A��&�&��U�&�C�K�E��z����!�9��#��M�r�:�:�D��|����B�7�7�3�>���+���s�CC �intervalc#�# �US:a[S5e[URXX5XgS95n[U5up�[	US-
5Hn[U5up�M X�4v� M8![
a M)f=f![
a gf=f7f)anReturns an iterator of tuples, each :class:`Arrow <arrow.arrow.Arrow>` objects,
representing a series of intervals between two inputs.

:param frame: The timeframe.  Can be any ``datetime`` property (day, hour, minute...).
:param start: A datetime expression, the start of the range.
:param end: (optional) A datetime expression, the end of the range.
:param interval: (optional) Time interval for the given time frame.
:param tz: (optional) A timezone expression.  Defaults to UTC.
:param bounds: (optional) a ``str`` of either '()', '(]', '[)', or '[]' that specifies
    whether to include or exclude the start and end values in the intervals. '(' excludes
    the start, '[' includes the start, ')' excludes the end, and ']' includes the end.
    If the bounds are not specified, the default bound '[)' is used.
:param exact: (optional) whether to have the first timespan start exactly
    at the time specified by ``start`` and the final interval truncated
    so as not to extend beyond ``end``.

Supported frame values: year, quarter, month, week, day, hour, minute, second

Recognized datetime expressions:

    - An :class:`Arrow <arrow.arrow.Arrow>` object.
    - A ``datetime`` object.

Recognized timezone expressions:

    - A ``tzinfo`` object.
    - A ``str`` describing a timezone, similar to 'US/Pacific', or 'Europe/Berlin'.
    - A ``str`` in ISO 8601 style, as in '+07:00'.
    - A ``str``, one of the following:  'local', 'utc', 'UTC'.

Usage:

    >>> start = datetime(2013, 5, 5, 12, 30)
    >>> end = datetime(2013, 5, 5, 17, 15)
    >>> for r in arrow.Arrow.interval('hour', start, end, 2):
    ...     print(r)
    ...
    (<Arrow [2013-05-05T12:00:00+00:00]>, <Arrow [2013-05-05T13:59:59.999999+00:00]>)
    (<Arrow [2013-05-05T14:00:00+00:00]>, <Arrow [2013-05-05T15:59:59.999999+00:00]>)
    (<Arrow [2013-05-05T16:00:00+00:00]>, <Arrow [2013-05-05T17:59:59.999999+00:0]>)
r�z%interval has to be a positive integerr�N)rs�iterr��nextr��
StopIteration)rhr�r�r�r�rr�r��	spanRange�
intvlStart�intvlEndr�s            r`r��Arrow.interval�s����h�a�<��D�E�E���N�N�5���N�M�
�	��	
�'+�I��$�
��x�!�|�,�A�!�&*�9�o���8�-�
!�*�*���)�!� �!��!�
��
�sL�-B�A8�
A'�	A8�%B�'
A5�1A8�4A5�5A8�8
B�B�B�Bc�X�SURRSUR5S3$)N�<z [z]>)r��__name__�__str__�r_s r`�__repr__�Arrow.__repr__s)���4�>�>�*�*�+�2�d�l�l�n�-=�R�@�@rcc�6�URR5$�N�rN�	isoformatr�s r`r��
Arrow.__str__s���~�~�'�'�)�)rc�	formatstrc�X�[U5S:�aURU5$[U5$)Nr)r��formatr\)r_r�s  r`�
__format__�Arrow.__format__"s'���y�>�A���;�;�y�)�)��4�y�rcc�6�URR5$r�)rN�__hash__r�s r`r��Arrow.__hash__(s���~�~�&�&�(�(rc�namec�:�US:XaUR5S$US:Xa([URS-
UR-5S-$UR	S5(d[URUS5nUbU$[[[RX55$)Nr1r�r3r�)
�isocalendar�intr%rB�
startswithrgrNr�object�__getattribute__)r_r��values   r`�__getattr__�Arrow.__getattr__-s����6�>��#�#�%�a�(�(��9����
�
�Q��$�*B�*B�B�C�a�G�G����s�#�#�#*�4�>�>�4��#F�E�� ����C��0�0��<�=�=rcc�J�[[URR5$)z�Gets the ``tzinfo`` of the :class:`Arrow <arrow.arrow.Arrow>` object.

Usage::

    >>> arw=arrow.utcnow()
    >>> arw.tzinfo
    tzutc()

)rrXrNr
r�s r`r
�Arrow.tzinfo<s���I�t�~�~�4�4�5�5rcc��UR$)z�Returns a datetime representation of the :class:`Arrow <arrow.arrow.Arrow>` object.

Usage::

    >>> arw=arrow.utcnow()
    >>> arw.datetime
    datetime.datetime(2019, 1, 24, 16, 35, 27, 276649, tzinfo=tzutc())

�rNr�s r`r�Arrow.datetimeKs���~�~�rcc�4�URRSS9$)aReturns a naive datetime representation of the :class:`Arrow <arrow.arrow.Arrow>`
object.

Usage::

    >>> nairobi = arrow.now('Africa/Nairobi')
    >>> nairobi
    <Arrow [2019-01-23T19:27:12.297999+03:00]>
    >>> nairobi.naive
    datetime.datetime(2019, 1, 23, 19, 27, 12, 297999)

Nr	)rNr�r�s r`�naive�Arrow.naiveYs���~�~�%�%�T�%�2�2rcc�6�URR5$)z�Returns a timestamp representation of the :class:`Arrow <arrow.arrow.Arrow>` object, in
UTC time.

Usage::

    >>> arrow.utcnow().timestamp()
    1616882340.256501

)rNrnr�s r`rn�Arrow.timestampj����~�~�'�'�)�)rcc�4�[UR55$)z�Returns an integer timestamp representation of the :class:`Arrow <arrow.arrow.Arrow>` object, in
UTC time.

Usage::

    >>> arrow.utcnow().int_timestamp
    1548260567

)r�rnr�s r`�
int_timestamp�Arrow.int_timestampws���4�>�>�#�$�$rcc�"�UR5$)z�Returns a floating-point timestamp representation of the :class:`Arrow <arrow.arrow.Arrow>`
object, in UTC time.

Usage::

    >>> arrow.utcnow().float_timestamp
    1548260516.830896

)rnr�s r`�float_timestamp�Arrow.float_timestamp�s���~�~��rcc�.�URR$)zLReturns the ``fold`` value of the :class:`Arrow <arrow.arrow.Arrow>` object.)rNrTr�s r`rT�
Arrow.fold�s���~�~�"�"�"rcc�B�[R"UR5$)zrIndicates whether the :class:`Arrow <arrow.arrow.Arrow>` object is a repeated wall time in the current
timezone.

)�dateutil_tz�datetime_ambiguousrNr�s r`�	ambiguous�Arrow.ambiguous�s���-�-�d�n�n�=�=rcc�L�[R"UR5(+$)z`Indicates whether the :class: `Arrow <arrow.arrow.Arrow>` object exists in the current timezone.)r�datetime_existsrNr�s r`�	imaginary�Arrow.imaginary�s���.�.�t�~�~�>�>�>rcc�8�URUR5$)z�Returns a new :class:`Arrow <arrow.arrow.Arrow>` object, cloned from the current one.

Usage:

    >>> arw = arrow.utcnow()
    >>> cloned = arw.clone()

)r|rNr�s r`�clone�Arrow.clone�s��� � ����0�0rcc��0nUR5HEup4X0R;aXBU'MUS;a[SUS35eUS;dM7[SU<S35e URR"S0UD6nURS5nUb UR
U5nUR	US9nURS	5nUbUR	US
9nURU5$)aReturns a new :class:`Arrow <arrow.arrow.Arrow>` object with attributes updated
according to inputs.

Use property names to set their value absolutely::

    >>> import arrow
    >>> arw = arrow.utcnow()
    >>> arw
    <Arrow [2013-05-11T22:27:34.787885+00:00]>
    >>> arw.replace(year=2014, month=6)
    <Arrow [2014-06-11T22:27:34.787885+00:00]>

You can also replace the timezone without conversion, using a
:ref:`timezone expression <tz-expr>`::

    >>> arw.replace(tzinfo=tz.tzlocal())
    <Arrow [2013-05-11T22:27:34.787885-07:00]>

)r1r3zSetting absolute z is not supported.)r
rTzUnknown attribute: �.r
r	rTrUr�)�itemsr>rsrNr�r]r�r|)r_rO�absolute_kwargs�keyr�r�r
rTs        r`r��
Arrow.replace�s���*�� �,�,�.�J�C��k�k�!�',��$��+�+� �#4�S�E�9K�!L�M�M��.�.� �#6�s�g�Q�!?�@�@�
)��.�.�(�(�;�?�;�����H�%�����%�%�f�-�F��o�o�V�o�4�G��z�z�&�!�����o�o�4�o�0�G�� � ��)�)rcr�c��0n/SQnUR5HJupVXPR;dXT;aXcU'MSRURU-5n[SUS35e UR	SS5 US==URSS5UR--
ss'UR[S0UD6-nU(a1[R"U5(d[R"U5nURU5$)	aReturns a new :class:`Arrow <arrow.arrow.Arrow>` object with attributes updated
according to inputs.

Parameters:
check_imaginary (bool): If True (default), will check for and resolve
imaginary times (like during DST transitions). If False, skips this check.


Use pluralized property names to relatively shift their current value:

>>> import arrow
>>> arw = arrow.utcnow()
>>> arw
<Arrow [2013-05-11T22:27:34.787885+00:00]>
>>> arw.shift(years=1, months=-1)
<Arrow [2014-04-11T22:27:34.787885+00:00]>

Day-of-the-week relative shifting can use either Python's weekday numbers
(Monday = 0, Tuesday = 1 .. Sunday = 6) or using dateutil.relativedelta's
day instances (MO, TU .. SU).  When using weekday numbers, the returned
date will always be greater than or equal to the starting date.

Using the above code (which is a Saturday) and asking it to shift to Saturday:

>>> arw.shift(weekday=5)
<Arrow [2013-05-11T22:27:34.787885+00:00]>

While asking for a Monday:

>>> arw.shift(weekday=0)
<Arrow [2013-05-13T22:27:34.787885+00:00]>

)r2r4�weekday�, z>Invalid shift time frame. Please select one of the following: rr&rr4r�)
rr@�joinrs�
setdefault�poprBrNrrr
�resolve_imaginaryr|)	r_r�rO�relative_kwargs�additional_attrsrr��supported_attrr�s	         r`r��Arrow.shift�s���F��;�� �,�,�.�J�C��(�(�(�C�,C�',��$�!%���4�+=�+=�@P�+P�!Q�� �T�Uc�Td�de�f���)�	�"�"�8�Q�/���!����
�A�.��1I�1I�I�	
�!��.�.�=�#C�?�#C�C���;�#>�#>�w�#G�#G�!�3�3�G�<�G�� � ��)�)rcc��[U[5(d[RR	U5nUR
R
U5nURURURURURURURURUR[!USS5S9	$)aoReturns a new :class:`Arrow <arrow.arrow.Arrow>` object, converted
to the target timezone.

:param tz: A :ref:`timezone expression <tz-expr>`.

Usage::

    >>> utc = arrow.utcnow()
    >>> utc
    <Arrow [2013-05-09T03:49:12.311072+00:00]>

    >>> utc.to('US/Pacific')
    <Arrow [2013-05-08T20:49:12.311072-07:00]>

    >>> utc.to(tz.tzlocal())
    <Arrow [2013-05-08T20:49:12.311072-07:00]>

    >>> utc.to('-07:00')
    <Arrow [2013-05-08T20:49:12.311072-07:00]>

    >>> utc.to('local')
    <Arrow [2013-05-08T20:49:12.311072-07:00]>

    >>> utc.to('local').to('utc')
    <Arrow [2013-05-09T03:49:12.311072+00:00]>

rTrrU)rWrXrrZr[rNrfr�r#r%r'r)r+r-r/r
rg)r_rris   r`�to�Arrow.to!s���:�"�i�(�(��$�$�*�*�2�.�B�
�^�^�
&�
&�r�
*���~�~��G�G��H�H��F�F��G�G��I�I��I�I��N�N��I�I���V�Q�'��

�
	
rczYYYY-MM-DD HH:mm:ssZZ�localec�b�[R"U5RURU5$)a%Returns a string representation of the :class:`Arrow <arrow.arrow.Arrow>` object,
formatted according to the provided format string. For a list of formatting values,
see :ref:`supported-tokens`

:param fmt: the format string.
:param locale: the locale to format.

Usage::

    >>> arrow.utcnow().format('YYYY-MM-DD HH:mm:ss ZZ')
    '2013-05-09 03:56:47 -00:00'

    >>> arrow.utcnow().format('X')
    '1368071882'

    >>> arrow.utcnow().format('MMMM DD, YYYY')
    'May 09, 2013'

    >>> arrow.utcnow().format()
    '2013-05-09 03:56:47 -00:00'

)r�DateTimeFormatterr�rN)r_r�r$s   r`r��Arrow.formatQs&��4�*�*�6�2�9�9�$�.�.�#�N�Nrcr7�other�
only_distance�granularityc��^^^^�Un[R"U5nUce[R"[R
5R
[R
S9nURTRR5nO�[U[5(a
URnO�[U[5(aWURc$UR
TRRS9nOIURTRR5nO#[S[U5R<S35e[T[5(a[!T5S:XaTSm[#[%TRU-
R'555nUS:aSOSm[)U5=p�TS:XGa�U
S	:aUR+S
US9$U
TR,:aTU	-nUR+SX�S9$U
TR,S
-:aUR+STUS9$U
TR.:a,T[1U	TR,-S
5-nUR+SX�S9$U
TR.S
-:aUR+STUS9$U
TR2:a,T[1U	TR.-S
5-n
UR+SX�S9$TRU:a[5UTR5O[5TRU5nUR6TR8-UR:-nUR<S:�aUS-
n[?UTR85nU
TR2S
-:aUR+STUS9$U
TR@:a-T[1U	TR2-S
5-nUR+SUUS9$US:�a=U
TRB:a-US:XaUR+STUS9$TU-nUR+SUUS9$U
TR@S
-:aUR+STUS9$U
TRD:a-T[1U	TR@-S
5-nUR+SUUS9$U
TRBS
-:aUR+STUS9$T[1U	TRB-S
5-nUR+SUUS9$[T[F5(Ga,[I[JT5mTS:Xa.T[MU	5-n[)U5S
:aUR+S
US9$O�TS:XaTU	-TR,-nO�TS:XaTU	-TR.-nO�TS:XaTU	-TR2-nOoTS:XaTU	-TR@-nOVTS:XaTU	-TRD-nO=TS:XaTU	-TRN-nO$TS:XaTU	-TRB-nO[QS5e[S[)U55S:waTS-
mUR+TUUS9$T(d[QS5e/mS [LS![JS"[L4UUUU4S#jjn[MU	5nS$nUHnU"UU5nM [!T5[!T5:a[QS5eURUTUS9$![Van[QS%US&U<S'35eSnAff=f)(aQReturns a localized, humanized representation of a relative difference in time.

:param other: (optional) an :class:`Arrow <arrow.arrow.Arrow>` or ``datetime`` object.
    Defaults to now in the current :class:`Arrow <arrow.arrow.Arrow>` object's timezone.
:param locale: (optional) a ``str`` specifying a locale.  Defaults to 'en-us'.
:param only_distance: (optional) returns only time difference eg: "11 seconds" without "in" or "ago" part.
:param granularity: (optional) defines the precision of the output. Set it to strings 'second', 'minute',
                   'hour', 'day', 'week', 'month' or 'year' or a list of any combination of these strings

Usage::

    >>> earlier = arrow.utcnow().shift(hours=-2)
    >>> earlier.humanize()
    '2 hours ago'

    >>> later = earlier.shift(hours=4)
    >>> later.humanize(earlier)
    'in 4 hours'

Nr	z!Invalid 'other' argument of type z4. Argument must be of type None, Arrow, or datetime.r�rr�r7�
re)r)r.�r+r,r)r*�r'r(r%r&r1r2r#r$r-r3z|Invalid level of granularity. Please select between 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter' or 'year'.r?z�Empty granularity list provided. Please select one or more from 'second', 'minute', 'hour', 'day', 'week', 'month', 'quarter', 'year'.�_delta�_framerPc�>�UT;awTU-TRU-nUTRU-n[[U55S:wa&TR[	[
US-5U45 U$TRX45 U$)Nr�r?)rMr�absr�rr")r/r0r�r*r_�sign�
timeframess   ����r`�gather_timeframes�)Arrow.humanize.<locals>.gather_timeframess������,� $�v�
����v�0F� F���$�.�.��"8�8�� ��U��,��1�&�-�-�!%�&6����!E�u� M��
"�M�'�-�-�v�o�>�!�Mrc)r#r3r%r1r'r)r+r-zHumanization of the z0 granularity is not currently translated in the z> locale. Please consider making a contribution to this locale.),r�
get_localer^rerrVr�rfrNr
rWr9�	TypeError�typer��listr�r��round�
total_secondsr2�describerFrGr=rHrr$rDr&r(r<rIrLrJr\rr"rurKrsr�describe_multi�KeyError)r_r(r$r)r*�locale_namerVrir/�delta_second�diffr.r,r*�
calendar_diff�calendar_monthsr(r&r2r$r�r5r�r��er3r4s`   `                    @@r`�humanize�Arrow.humanizems����8���#�#�F�+���=��/�/�(�,�,�/�7�7�x�|�|�7�L�C������� 5� 5�6�B�
��u�
%�
%����B�
��{�
+�
+��|�|�#��]�]�$�.�.�*?�*?�]�@���%�%�d�n�n�&;�&;�<���3�D��K�4H�4H�3K�LE�E��
�
�k�4�(�(�S��-=��-B�%�a�.�K��U�D�N�N�R�/�>�>�@�A�B���a�Z�r�Q��!�&�k�)��X	��f�$��"�9�!�?�?�5�
�?�N�N��$�/�/�/�"�\�1�G�!�?�?�!�7�+����D�1�1�A�5�5�!�?�?�8�T��?�W�W��D�/�/�/�"�S���9N�9N�)N�PQ�%R�R�G�!�?�?�!�7�+����D�/�/�!�3�3�!�?�?�6�4�}�?�U�U��D�.�.�.� �3�|�t�7J�7J�'J�A�#N�N�E�!�?�?�7�E�?�W�W��~�~��*�"�"�d�n�n�5�&�t�~�~�r�:��"�'�'�$�*?�*?�?�-�BV�BV�V� �
!�%�%��*�#�q�(�O�"%�o�t�7L�7L�"M���$�,�,�q�0�0�!�?�?�5�$�m�?�T�T��D�/�/�/��#�l�d�6H�6H�&H�!�"L�L�D�!�?�?�6�4�}�?�U�U�$��)�d�T�5H�5H�.H�&�!�+�%���#�T�� /� ��"&��!7��%���$�f�M� /� ���D�/�/�!�3�3�!�?�?�6�4�}�?�U�U��D�0�0�0� �3�|�t�7J�7J�'J�A�#N�N�E�!�?�?�7�E��?�W�W��D�/�/�!�3�3�!�?�?�6�4�}�?�U�U�!�3�|�t�7J�7J�'J�A�#N�N�E�!�?�?�7�E��?�W�W��K��-�-�"�#3�[�A���(�*� �5��#6�6�E��5�z�A�~�%���u�M��R�R�&� �H�,� �<�/�$�2G�2G�G�E� �F�*� �<�/�$�2E�2E�E�E� �E�)� �<�/�$�2D�2D�D�E� �F�*� �<�/�$�2E�2E�E�E� �G�+� �<�/�$�2F�2F�F�E� �I�-� �<�/�$�2H�2H�H�E� �F�*� �<�/�$�2E�2E�E�E�$�y���
��U��$��)��3�&�K����{�E���W�W�#�$�@���
DF�
�
"�e�
"�=M�
"�RW�
"�
"��l�+��	8��$�E�-�e�U�;�E�$��z�?�S��%5�5�$�y���
�,�,�Z�}�,�U�U���	��&�q�c�)Y�Ze�Yh�iH�H��
��	�s|�%Y�$Y�'#Y�;Y�#Y�+;Y�'B0Y�<Y�,Y�Y�#Y�<<Y�9#Y�,Y�
AY�#C(Y�BY�
Y1�Y,�,Y1�input_stringc��[R"U5nUR5RSS5nU[;a[SUS35eUR
UR5n[R/SQS5n[R/SQS5n[R"S	5nURR5GH:up�[U
[5(aU
nO
U	[!U
50nUR5H�up�[!U
5nUR#S	5n[R"S
U35nUR%U5nU(dMTUR'5nUR%U5nU(d,UR)5(dSO[+[-U55nO[-UR'55nU	S:XaS
Xy'M�[!U	5nU[!U5SS:waSOS-
nUUU'S
UU'M� GM= [/UR5VVs/sHunnU(dMS
PM snn5(d[S5eUR0nUR#S5n[R"SUS35nUR3U5nUR4nUR#S5n[R"SUS35nUR3U5nU(aSnO"U(aSnOUS(aSnO[S5eUR5VVs0sHunnUUU-_M nnnUR6"SSS
0UD6$s snnfs snnf)aReturns a new :class:`Arrow <arrow.arrow.Arrow>` object, that represents
the time difference relative to the attributes of the
:class:`Arrow <arrow.arrow.Arrow>` object.

:param timestring: a ``str`` representing a humanized relative time.
:param locale: (optional) a ``str`` specifying a locale.  Defaults to 'en-us'.

Usage::

        >>> arw = arrow.utcnow()
        >>> arw
        <Arrow [2021-04-20T22:27:34.787885+00:00]>
        >>> earlier = arw.dehumanize("2 days ago")
        >>> earlier
        <Arrow [2021-04-18T22:27:34.787885+00:00]>

        >>> arw = arrow.utcnow()
        >>> arw
        <Arrow [2021-04-20T22:27:34.787885+00:00]>
        >>> later = arw.dehumanize("in a month")
        >>> later
        <Arrow [2021-05-18T22:27:34.787885+00:00]>

r��-z*Dehumanize does not currently support the zN locale, please consider making a contribution to add support for this locale.)r.r,r*r(r2r&r$r)rer.r,r*r(r2r&r$Fz\d+z	(^|\b|\d)r�reTr�r?�z�Input string not valid. Note: Some locales do not support the week granularity in Arrow. If you are attempting to use the week granularity on an unsupported locale, this could be the cause of this error.z.*�^�$z�Invalid input String. String does not contain any relative time information. String should either represent a time in the future or a time in the past. Ex: 'in 5 seconds' or '5 seconds ago'.r�r�)rr7�lowerr�r!rsr|rN�dict�fromkeys�re�compiler4rrWrr\r��search�group�	isnumericr2r��any�future�findall�pastr�)r_rHr$�
locale_obj�normalized_locale_name�current_time�time_object_info�unit_visited�num_pattern�unit�unit_object�strings_to_search�
time_delta�time_string�
search_string�pattern�match�match_string�	num_match�change_value�time_unit_to_change�k�v�
future_string�future_pattern�future_pattern_match�past_string�past_pattern�past_pattern_match�sign_val�time_changess                               r`�
dehumanize�Arrow.dehumanize@sK��6�'�'��/�
�"(����!7�!7��S�!A��!�);�;��<�V�H�ES�T��
��(�(����8�� �=�=�O�QR�
��
�}�}�V��
���j�j��(��",�!6�!6�!<�!<�!>��D��+�w�/�/�$/�!�%)�3�{�+;�$<�!�
,=�+B�+B�+D�'�
� #�K� 0�
� -� 4� 4�V� <�
��*�*�	�-��%A�B�����|�4����$�{�{�}��'�.�.�|�<�	�!�!+�!5�!5�!7�!7��S��Z��=Q�!�$'�y���'8�#9�L��5�=�)-�L�&��'*�$�i�#�#�� 3�4�R�8�C�?�C�b��#�9E� �!4�5�48��0�1�I,E�"?�b�\�%7�%7�%9�?�%9�T�Q��Q�D�%9�?�@�@��E��
�#�)�)�
�%�,�,�T�2�
����q���q�$9�:��-�5�5�l�C�� �o�o��!�(�(��.���z�z�Q�{�m�1�"5�6��)�1�1�,�?����H�
!��H�
�%�
 ��H��9��
�5E�4J�4J�4L�M�4L�D�A�q��8�a�<��4L��M��!�!�G�$�G�,�G�G��E@��@Ns�"M
�4M
�!Mc���[R"U5 [U[5(d[	S[U5<S35e[U[5(d[	S[U5<S35eUSS:HnUSS:HnURnURnURnXvs=:*=(a U:*Os =(a! U=(d Xv:=(a
 U=(d Xh:$)afReturns a boolean denoting whether the :class:`Arrow <arrow.arrow.Arrow>` object is between
the start and end limits.

:param start: an :class:`Arrow <arrow.arrow.Arrow>` object.
:param end: an :class:`Arrow <arrow.arrow.Arrow>` object.
:param bounds: (optional) a ``str`` of either '()', '(]', '[)', or '[]' that specifies
    whether to include or exclude the start and end values in the range. '(' excludes
    the start, '[' includes the start, ')' excludes the end, and ']' includes the end.
    If the bounds are not specified, the default bound '()' is used.

Usage::

    >>> start = arrow.get(datetime(2013, 5, 5, 12, 30, 10))
    >>> end = arrow.get(datetime(2013, 5, 5, 12, 30, 36))
    >>> arrow.get(datetime(2013, 5, 5, 12, 30, 27)).is_between(start, end)
    True

    >>> start = arrow.get(datetime(2013, 5, 5))
    >>> end = arrow.get(datetime(2013, 5, 8))
    >>> arrow.get(datetime(2013, 5, 8)).is_between(start, end, '[]')
    True

    >>> start = arrow.get(datetime(2013, 5, 5))
    >>> end = arrow.get(datetime(2013, 5, 8))
    >>> arrow.get(datetime(2013, 5, 8)).is_between(start, end, '[)')
    False

z)Cannot parse start date argument type of rz'Cannot parse end date argument type of r�[r��])rr�rWr9r8r9r)	r_r�r�r��
include_start�include_end�	target_ts�start_ts�end_tss	         r`�
is_between�Arrow.is_between�s���F	
���V�$��%��'�'��;�D��K�?�!�L��
��#�u�%�%��E�d�5�k�_�TU�V�W�W��q�	�S�(�
��Q�i�3�&���(�(�	��(�(���$�$���
,�
,�f�
,�
4��6�(�"6�
4��2�	� 2�	
rcc�6�URR5$)z�Returns a ``date`` object with the same year, month and day.

Usage::

    >>> arrow.utcnow().date()
    datetime.date(2019, 1, 23)

)rNrr�s r`r�
Arrow.date	����~�~�"�"�$�$rcc�6�URR5$)z�Returns a ``time`` object with the same hour, minute, second, microsecond.

Usage::

    >>> arrow.utcnow().time()
    datetime.time(12, 15, 34, 68352)

)rNrr�s r`r�
Arrow.timer�rcc�6�URR5$)z�Returns a ``time`` object with the same hour, minute, second, microsecond and
tzinfo.

Usage::

    >>> arrow.utcnow().timetz()
    datetime.time(12, 5, 18, 298893, tzinfo=tzutc())

)rN�timetzr�s r`r��Arrow.timetz!s���~�~�$�$�&�&rcc�8�URRU5$)aWReturns a ``datetime`` object, converted to the specified timezone.

:param tz: a ``tzinfo`` object.

Usage::

    >>> pacific=arrow.now('US/Pacific')
    >>> nyc=arrow.now('America/New_York').tzinfo
    >>> pacific.astimezone(nyc)
    datetime.datetime(2019, 1, 20, 10, 24, 22, 328172, tzinfo=tzfile('/usr/share/zoneinfo/America/New_York'))

)rNrf)r_rs  r`rf�Arrow.astimezone.s���~�~�(�(��,�,rcc�6�URR5$)z�Returns a ``timedelta`` object representing the whole number of minutes difference from
UTC time.

Usage::

    >>> arrow.now('US/Pacific').utcoffset()
    datetime.timedelta(-1, 57600)

)rN�	utcoffsetr�s r`r��Arrow.utcoffset>r�rcc�6�URR5$)zpReturns the daylight savings time adjustment.

Usage::

    >>> arrow.utcnow().dst()
    datetime.timedelta(0)

)rN�dstr�s r`r��	Arrow.dstKs���~�~�!�!�#�#rcc�6�URR5$)z�Returns a ``time.struct_time``, in the current timezone.

Usage::

    >>> arrow.utcnow().timetuple()
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=20, tm_hour=15, tm_min=17, tm_sec=8, tm_wday=6, tm_yday=20, tm_isdst=0)

)rN�	timetupler�s r`r��Arrow.timetupleW����~�~�'�'�)�)rcc�6�URR5$)z�Returns a ``time.struct_time``, in UTC time.

Usage::

    >>> arrow.utcnow().utctimetuple()
    time.struct_time(tm_year=2019, tm_mon=1, tm_mday=19, tm_hour=21, tm_min=41, tm_sec=7, tm_wday=5, tm_yday=19, tm_isdst=0)

)rN�utctimetupler�s r`r��Arrow.utctimetuplecs���~�~�*�*�,�,rcc�6�URR5$)znReturns the proleptic Gregorian ordinal of the date.

Usage::

    >>> arrow.utcnow().toordinal()
    737078

)rN�	toordinalr�s r`r��Arrow.toordinalor�rcc�6�URR5$)zcReturns the day of the week as an integer (0-6).

Usage::

    >>> arrow.utcnow().weekday()
    5

)rNrr�s r`r�
Arrow.weekday{s���~�~�%�%�'�'rcc�6�URR5$)zjReturns the ISO day of the week as an integer (1-7).

Usage::

    >>> arrow.utcnow().isoweekday()
    6

)rNr�r�s r`r��Arrow.isoweekday�s���~�~�(�(�*�*rcc�6�URR5$)z~Returns a 3-tuple, (ISO year, ISO week number, ISO weekday).

Usage::

    >>> arrow.utcnow().isocalendar()
    (2019, 3, 6)

)rNr�r�s r`r��Arrow.isocalendar�s���~�~�)�)�+�+rc�sep�timespecc�8�URRX5$)z�Returns an ISO 8601 formatted representation of the date and time.

Usage::

    >>> arrow.utcnow().isoformat()
    '2019-01-19T18:30:52.442118+00:00'

r�)r_r�r�s   r`r��Arrow.isoformat�s���~�~�'�'��6�6rcc�6�URR5$)z�Returns a ctime formatted representation of the date and time.

Usage::

    >>> arrow.utcnow().ctime()
    'Sat Jan 19 18:26:50 2019'

)rN�ctimer�s r`r��Arrow.ctime�s���~�~�#�#�%�%rcr�c�8�URRU5$)z�Formats in the style of ``datetime.strftime``.

:param format: the format string.

Usage::

    >>> arrow.utcnow().strftime('%d-%m-%Y %H:%M:%S')
    '23-01-2019 12:28:17'

)rN�strftime)r_r�s  r`r��Arrow.strftime�s���~�~�&�&�v�.�.rcc�"�UR5$)z�Serializes for the ``for_json`` protocol of simplejson.

Usage::

    >>> arrow.utcnow().for_json()
    '2019-01-19T18:25:36.760079+00:00'

)r�r�s r`�for_json�Arrow.for_json�s���~�~��rcc��[U[[45(a3URURU-URR
5$[$r�)rWrrr|rNr
�NotImplemented�r_r(s  r`�__add__�
Arrow.__add__�s@���e�i��7�8�8��$�$�T�^�^�e�%;�T�^�^�=R�=R�S�S��rcc�$�URU5$r�)r�r�s  r`�__radd__�Arrow.__radd__�s���|�|�E�"�"rcc��gr�r�r�s  r`�__sub__�
Arrow.__sub__����rcc��gr�r�r�s  r`r�r��r�rcc�N�[U[[45(a3URURU-
URR
5$[U[5(aURU-
$[U[5(aURUR-
$[$r�)	rWrrr|rNr
r^r9r�r�s  r`r�r��s|���e�i��7�8�8��$�$�T�^�^�e�%;�T�^�^�=R�=R�S�S�
��{�
+�
+��>�>�E�)�)�
��u�
%�
%��>�>�E�O�O�3�3��rcc�T�[U[5(aXR-
$[$r�)rWr^rNr�r�s  r`�__rsub__�Arrow.__rsub__�s"���e�[�)�)��>�>�)�)��rcc�v�[U[[45(dgURUR	U5:H$)NF)rWr9r^rNr�r�s  r`�__eq__�Arrow.__eq__�s1���%�%��!5�6�6���~�~��!3�!3�E�!:�:�:rcc�f�[U[[45(dgURU5(+$)NT)rWr9r^r�r�s  r`�__ne__�Arrow.__ne__�s)���%�%��!5�6�6���;�;�u�%�%�%rcc��[U[[45(d[$URURU5:�$r��rWr9r^r�rNr�r�s  r`�__gt__�Arrow.__gt__�4���%�%��!5�6�6�!�!��~�~�� 2� 2�5� 9�9�9rcc��[U[[45(d[$URURU5:�$r�r�r�s  r`�__ge__�Arrow.__ge__
�4���%�%��!5�6�6�!�!��~�~��!3�!3�E�!:�:�:rcc��[U[[45(d[$URURU5:$r�r�r�s  r`�__lt__�Arrow.__lt__r�rcc��[U[[45(d[$URURU5:*$r�r�r�s  r`�__le__�Arrow.__le__r�rc�tz_exprc���Uc[R$[U[5(aU$[R
R
U5$![Ra [U<S35ef=f)z1Get normalized tzinfo object from various inputs.z not recognized as a timezone.)	rrVrWrXrrZr[�ParserErrorrs)r�s r`r��Arrow._get_tzinfosl���?��<�<���g�y�)�)��N�
O��*�*�0�0��9�9���%�%�
O� �G�;�.L�!M�N�N�
O�s�A�$A/�exprc��[U[5(aUR$[U[5(aU$[R
"U5(a&[
U5nURU5R$[U<S35e)z0Get datetime object from a specified expression.z+ not recognized as a datetime or timestamp.)	rWr9rr^rrrruryrs)rhr�rns   r`r��Arrow._get_datetime*sq��
�d�E�"�"��=�=� �
��k�
*�
*��K�
�
�
�t�
$�
$��d��I��'�'�	�2�;�;�;���x�'R�S�T�Trcc���XR;aXS3S4$USS:XaUSSUR;aUSSUS4$US;agUS;agS	R/S
Q5n[SUSUS
35e)z�Finds relevant timeframe and steps for use in range and span methods.

Returns a 3 element tuple in the form (frame, plural frame, step), for example ("day", "days", 1)

r?r�r�N)r1r2)r1r2r�)r3r4)r3r&rAr)	zyear(s)zmonth(s)zday(s)zhour(s)z	minute(s)z	second(s)zmicrosecond(s)zweek(s)z
quarter(s)zRange or span over frame z" not supported. Supported frames: r)r>rrs)rhr��	supporteds   r`r��Arrow._get_frames9s����:�:���6���Q�&�&�
�"�X��_��c�r��c�j�j�!8����9�d�A�%�%�
�&�
&�%�
�,�
,�)��	�	�
��I��+�D�6�1S�T]�S^�^_�`��
rcc�p�UcUc[S5eURU4$UcU[R4$X4$)z3Sets default end and limit values for range method.z$One of 'end' or 'limit' is required.)rsr=�sys�maxsize)rhr�r�s   r`r��Arrow._get_iteration_paramsZsF���;��}� �!G�H�H��7�7�E�>�!��}��C�K�K�'�'��:�rcc��[[UR5[R"UR
UR5S:H$)zOReturns a boolean indicating whether the datetime is the last day of the month.r�)rr�r'�calendar�
monthranger#r%rs r`r��Arrow._is_last_day_of_monthhs5���C����"�h�&9�&9�$�)�)�T�Z�Z�&P�QR�&S�S�Srcr�)rrrrNr�)rPr9)NNN)r�r5Fr�)NNr5F)r�Nr5F)T)�en_us)r6)�Tr7)vr��
__module__�__qualname__�__firstlineno__�__doc__r^r;rr�__annotations__r>rrr\r@rBr�rDrFrGrHrIrJrurKrLrMrr"r�TZ_EXPRr
ra�classmethodrXrerlrrvryr|rrr�r��	_T_FRAMESrr��_BOUNDS�boolrr�r�r�rr�r�r�r�r�r�r��propertyr
rr�rnr�rrTrrrr�r�r"r r��_GRANULARITYrFrvr��dt_timerr�rfr�r�rr�r�r�rr�r�r�r�r�r�r�rr�rr�r�r�r�r�r�r�r��staticmethodr�r�r�r�r��__static_attributes__)�.0�as00r`r9r9Ns�
���@'2�&<�&<�J���#�<�	�'�	��	�'�	�� �F�E�$�s�)���9?�&?��1��A�w��&?�M�5��c��#�?�&'���s��'�#%��e�C�j�%�#%��e�C�j�%�!(�N�E�#�J�(� ,�M�5��:�,�!1�N�E�#�J�1�$7�O�U�5�\�7�&=��u�U�|�=�!3�N�E�#�J�3��"���� �$��	:�I�u�W�-�u�4�5�6�	�������$(�
��
��
��	
�
�
��

��
��
���!�
��
�
�
�B�
��)�,�
��
��
�<�
��
�2�%)�"
���e�S��)�"
���!�"
�
�	"
��"
�H�
��s�E�3��)?�
�G�
��
�2�!
�k�!
�8�G�3D�!
�PW�!
��!
�F�C�D�C�(�7�*;�C�w�C��C��BF� 
�� 
�!$� 
�.6�w�.?� 
�	� 
�� 
�D�
�#�
�'�
��
�:�
26� $�#�
T<��T<��W�k�)�*�T<��7�K��-�
.�	T<�

�W��T<���}�
T<�
�&�	'�T<��T<�r����
\��\��\��	\�
�\��
\�
��	 �\�|-�9�-��-��-�,-�)�-�s�-�w�-�,�!%�#���O��O��O��	O�

�W��O���}�
O��O��O�
�%�(�)�	*�O��O�b�� $���C��C��C��	C�
�C�
�W��
C��C��C�
�%�(�)�	*�C��C�NA�#�A�*��*��C��C��)�#�)�

>��
>��
>��6�	�6��6���+�����3�{�3��3� *�5�*��%�s�%��%�� �� �� ��#�c�#��#�
�>�4�>��>��?�4�?��?�
1�,*��,*��,*�\;*�T�;*�C�;*�G�;*�z,
�W�,
��,
�b1��O��O�:=�O�	�O�<48�$�#�?E�Q��W�k�4�/�0�Q��Q��	Q�
�<��l�);�;�<�Q�

�
Q�fIH�s�IH�C�IH�g�IH�b�	8
��8
��8
��	8
�

�8
�x
%�d�
%�
%�g�
%�'��'�-�X�i�0�-�[�-� *�8�I�.�*�
$�X�i�(�
$�
*�;�
*�
-�k�
-�
*�3�
*�
(��
(�
+�C�
+�
,�U�3��S�=�1�
,�
7�S�
7�#�
7�3�
7�
&�s�
&�/�s�/�s�/�
 �#�
 ��S��W��#�e�I�}�$<�=�#�'�#��
�U�9�m�#;�<�
��
��
��
�U�;��#7�8�
�Y�
��
�
�S�
�U�9�g�+=�%>�
��c��i��;�C�;�D�;�&�C�&�D�&�:�C�:�D�:�;�C�;�D�;�:�C�:�D�:�;�C�;�D�;��
O�X�g�.�
O�9�
O��
O��U���+�s�E�3�>�?�U�	�U��U���y��U�3��S�=�-A����@����H�S�M��e�C�QT�H�o�����T�G�T��T��T��[7'@s�Sr9)6r�r�rQr�rrr^rr�rrr
rX�mathrr�typingr
rrrrrrrrrrrr�dateutilrr�dateutil.relativedeltar�arrowrrrr�arrow.constantsr r!�
arrow.localesr"r\r�r�r�r�r9r|r<r=r�rcr`�<module>rs�����	�
��,�$�(�(������� '�0�2�2�>�*�
�	�3��
����
�	�*�(�
)����
��]T�]T�@9
���{���/��	����{���/��	rc

Youez - 2016 - github.com/yon3zu
LinuXploit