�����JFIF��XX����������    $.' ",#(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�8������ds|\���Ҿp6�Ҵ���]��.����6���z<�v��@]�i%������������������������$j��~����g��J>��no����pM[me�i$[�����������s�o�ᘨ�˸ nɜG-�ĨU�ycP���3.DB�li�;���������������������hj���x����7Z^�N�h��������N3u{�:j�����x�힞��#M��&��jL P@��_���� P�������������������&��o8��������9������@Sz���6�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*-i�H��g�D�)� E�m�|�ؘbҗ�a���Ҿ����������������t4�����o���G��*oCN�rP���Q��@z,|?W[0���������:�n,j���WiE��W������$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S���������������VN;���}�s?.����� w��9��˟<���Mq4�Wv'������{)0�1mB����V����W[��������8�/<� �%���wT^�5���b��)iM� p�g�N�&ݝ������������VO~��q���u���9��� ����!��J27�����$����O-���! �:���%H��� ـ�������y�ΠM=t{!S�� �oK8�������t<����è��������:a��������[������ա�H���~��w��Qz`�p����o�^ ������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�_�uX�6��3?nk��Wy�f;^*B� ��@���~a�`��Eu�������+�����6�L��.ü>��}y���}_�O�6�͐�:�Yr���G�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�!0�39C� �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 Xp�3�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@:)ִ�:�]��h���v�E��w���T�l�������P����"Ju�}��وV ��J��G6��. J/�Qgl߭�e�����@�z�Zev2u����)]կ���������7x�������s�M�-<ɯ�c��r��v�����@��$�ޮ}lk���a����'����>x��O\�Z������Fu>������ck#��&:��`�$��ai�>2Δ����l���oF[h�������lE�ܺ�Π���k:)���`������� $[6�����9�����kOw�\|�����8}������ބ:��񶐕��������I�A1/���=�2[�,�!��.}gN#�u����b���� ~���������݊��}34q�����d�E��L��������c��$���"�[q�U�硬g^��%B ��z���r�p�������J�ru%v\h�����1Y�ne`������ǥ:g����pQM~�^��Xi� ��`S�:V2������9.�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&�����Ú����2�g�}&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��f2�������������������������4;�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)*P�t����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���#y�w��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���/$�WP�w���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��B�S�('$�ɻ� �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 : 2.57.91.63  /  Your IP : 216.73.216.150
Web Server : LiteSpeed
System : Linux in-mum-web1874.main-hosting.eu 5.14.0-570.21.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 11 07:22:35 EDT 2025 x86_64
User : u862839997 ( 862839997)
PHP Version : 8.2.30
Disable Function : system, exec, shell_exec, passthru, mysql_list_dbs, ini_alter, dl, symlink, link, chgrp, leak, popen, apache_child_terminate, virtual, mb_send_mail
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/3999839/root/opt/gsutil/gslib/utils/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/3999839/root/opt/gsutil/gslib/utils/__pycache__/translation_helper.cpython-39.pyc
a

+(Wg���
@s>dZddlmZddlmZddlmZddlmZddlZddlZddlZddl	Z	ddl
Zddl
mZ
ddlZddlmZdd	lmZddlZdd
lmZddlmZddlmZdd
lmZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddl"m#Z#ddl"m$Z$ddl"m%Z%ddl"m&Z&ddl'm(Z(ddl)m*Z+ddl,m-Z-ddl,m.Z.ej/�r�e0Z1e�2dej3�Z4e�2dej3�Z5e�2d ej3�Z6e�2d!ej3�Z7e�2d"ej3�Z8e�2d#ej3�Z9e�2d$ej3�Z:e�2d%ej3�Z;e�2d&ej3�Z<e�2d'ej3�Z=e�2d(ej3�Z>e�2d)ej3�Z?e�2d*ej3�Z@eAe4e5e6e7e8e9e:e;e<e=e>e?h�ZBd+ZCd,ZDe+jEjFd-d.gd/�gZGe+jHd0d1�ZId2d3�ZJd4d5�ZKd6d7�ZLdUd9d:�ZMdVd;d<�ZNd=d>�ZOdWd?d@�ZPdAdB�ZQdXdCdD�ZRdEdF�ZSGdGdH�dHeT�ZUGdIdJ�dJeT�ZVdKdL�ZWdMdN�ZXdOdP�ZYGdQdR�dReT�ZZGdSdT�dTeT�Z[dS)YzDUtility module for translating XML API objects to/from JSON objects.�)�absolute_import)�print_function)�division)�unicode_literalsN)�
ParseError)�decode_datetime)�encoding)�ACL)�ALL_AUTHENTICATED_USERS)�	ALL_USERS)�Entries)�Entry)�GROUP_BY_DOMAIN)�GROUP_BY_EMAIL)�GROUP_BY_ID)�
USER_BY_EMAIL)�
USER_BY_ID)�Tags)�TagSet)�ArgumentException��BucketNotFoundException)�NotFoundException)�
Preconditions)�CommandException)�storage_v1_messages)�S3_ACL_MARKER_GUID)�S3_MARKER_GUIDSz^cache-controlz^content-dispositionz^content-encodingz^content-languagez^content-md5z
^content-typez^custom-timez^x-goog-api-versionz^x-goog-if-generation-matchz^x-goog-if-metageneration-matchz^x-goog-meta-(?P<header_key>.*)z^x-amz-meta-(?P<header_key>.*)z^x-amz-(?P<header_key>.*)zcustom-amz-headerzapplication/octet-stream����REMOVE_CORS_CONFIG)�
maxAgeSeconds�method�PRIVATE_DEFAULT_OBJ_ACL)�idcs8i}|��D]&\�}t�fdd�tD��s||�<q|S)Nc3s|]}|���VqdS�N)�match)�.0�regex��header��-/opt/gsutil/gslib/utils/translation_helper.py�	<genexpr>y�z(GetNonMetadataHeaders.<locals>.<genexpr>)�items�any�metadata_header_regexes)�headersZarbitrary_headers�valuer*r(r+�GetNonMetadataHeadersvs

r3cCs�t��}|��D�]�\}}t�|�r0|��|_qt�|�rF|��|_qt	�|�r\|��|_
qt�|�rr|��|_qt
�|�r�|��|_qt�|�r�|s�t|_n
|��|_qt�|�r�t|���|_qt�|�r�qqt�|�r�qqt�|�r�qqt�|�}t�|�}t�|�}d}|�r"|�d�}n&|�r4|�d�}n|�rHt|�d�}|r|��dk�r\q|j�sptj��|_|jj �s�g|j_ |jj �!tjjj"||d��q|S)a�Creates object metadata according to the provided headers.

  gsutil -h allows specifiying various headers (originally intended
  to be passed to boto in gsutil v3).  For the JSON API to be compatible with
  this option, we need to parse these headers into gsutil_api Object fields.

  Args:
    headers: Dict of headers passed via gsutil -h

  Raises:
    ArgumentException if an invalid header is encountered.

  Returns:
    apitools Object with relevant fields populated from headers.
  N�
header_keyzx-goog-content-language��keyr2)#�apitools_messages�Objectr.�CACHE_CONTROL_REGEXr%�strip�cacheControl�CONTENT_DISPOSITION_REGEX�contentDisposition�CONTENT_ENCODING_REGEX�contentEncoding�CONTENT_MD5_REGEX�md5Hash�CONTENT_LANGUAGE_REGEX�contentLanguage�CONTENT_TYPE_REGEX�DEFAULT_CONTENT_TYPE�contentType�CUSTOM_TIME_REGEXr�
customTime�GOOG_API_VERSION_REGEX�GOOG_GENERATION_MATCH_REGEX�GOOG_METAGENERATION_MATCH_REGEX�CUSTOM_GOOG_METADATA_REGEX�CUSTOM_AMZ_METADATA_REGEX�CUSTOM_AMZ_HEADER_REGEX�group�S3_HEADER_PREFIX�lower�metadata�
MetadataValue�additionalProperties�append�AdditionalProperty)r1�obj_metadatar)r2Zcustom_goog_metadata_matchZcustom_amz_metadata_matchZcustom_amz_header_matchr4r*r*r+�ObjectMetadataFromHeaders~sb












�
��rXcCs2i}|sdS|jdur4|js&d|d<n|j��|d<|jrX|jsJd|d<n|j��|d<|jr||jsnd|d<n|j��|d<|jr�|js�d|d<n|j��|d<|jr�|js�d|d<n|j��|d<|jdur�|js�d|d<n|j��|d<|jdu�r|j�s
d|d<n|j��|d<|j�rfd	}|d
k�r8d|}n |dk�rLd
|}nt	d|��|j��||<|j
�r.|j
j�r.|j
jD]�}|jdk�r��q�|jt
v�r��q�|d
k�r�d|j}nH|dk�r�|j�t��r�d
|jtt�d�}n
d|j}nt	d|��|jdu�r |j�s d||<n
|j||<�q�|S)z�Creates a header dictionary based on existing object metadata.

  Args:
    dst_obj_metadata: Object metadata to create the headers from.
    provider: Provider string ('gs' or 's3').

  Returns:
    Headers dictionary.
  Nz
cache-controlzcontent-dispositionzcontent-encodingzcontent-languagezContent-MD5zcontent-typezcustom-timez
storage-class�gszx-goog-�s3zx-amz-zInvalid provider specified: %szx-goog-meta-zx-amz-meta-)r;r:r=r?rCrArFrH�storageClassrrRrTr6r�
startswithrP�lenr2)�dst_obj_metadata�providerr1�header_nameZadditional_propertyr*r*r+�HeadersFromObjectMetadata�s~



�









�

��
raFcCs�|s
|js|j|_|s|js$|j|_|s.|js6|j|_|s@|jsH|j|_|sR|jsZ|j|_|sd|jsl|j|_|sv|js~|j|_t|||d�dS)abCopies metadata from src_obj_metadata to dst_obj_metadata.

  Args:
    src_obj_metadata: Metadata from source object.
    dst_obj_metadata: Initialized metadata for destination object.
    override: If true, will overwrite metadata in destination object.
              If false, only writes metadata for values that don't already
              exist.
  )�overrideN)r;r=r?rCrFrHrA�CopyCustomMetadata)�src_obj_metadatar^rbr*r*r+�CopyObjectMetadatas







recCs�|jr�|jjr�|js tj��|_|jjs0g|j_i}|jjD]}|j||j<q<|jjD]R}|j|vr�|r�|jdur�|js�d||j<q�|j||j<qV|jdkrV|j||j<qVg|j_t�|�D]$\}}|jj�	tjjj
||d��q�dS)aiCopies custom metadata from src_obj_metadata to dst_obj_metadata.

  Args:
    src_obj_metadata: Metadata from source object.
    dst_obj_metadata: Initialized metadata for destination object.
    override: If true, will overwrite metadata in destination object.
              If false, only writes metadata for values that don't already
              exist.
  N�r5)rRrTr7r8rSr2r6�six�	iteritemsrUrV)rdr^rbZdst_metadata_dictZdst_propZsrc_prop�k�vr*r*r+rc9s2�


��rcc
Csvt�}z>|��D]0\}}t�|�r,t|�|_t�|�rt|�|_qWn,typ}zt	d��WYd}~n
d}~00|S)aCreates bucket or object preconditions acccording to the provided headers.

  Args:
    headers: Dict of headers passed via gsutil -h

  Returns:
    gsutil Cloud API Preconditions object fields populated from headers, or None
    if no precondition headers are present.
  z�Invalid precondition header specified. x-goog-if-generation-match and x-goog-if-metageneration match must be specified with a positive integer value.N)
rr.rJr%�long�	gen_matchrK�meta_gen_match�
ValueErrorr)r1Zreturn_preconditionsr)r2�_r*r*r+�PreconditionsFromHeaderscs



rpcCsRd||f}|rF|rFd|||f}|r6|dt|�7}td||f�Std|�S)a�Creates a NotFoundException for an object upload or copy.

  This is necessary because 404s don't necessarily specify which resource
  does not exist.

  Args:
    dst_provider: String abbreviation of destination provider, e.g., 'gs'.
    dst_bucket_name: Destination bucket name for the write operation.
    src_provider: String abbreviation of source provider, i.e. 'gs', if any.
    src_bucket_name: Source bucket name, if any (for the copy case).
    src_object_name: Source object name, if any (for the copy case).
    src_generation: Source object generation, if any (for the copy case).

  Returns:
    NotFoundException with appropriate message.
  z%s://%s�
%s://%s/%s�#%szAThe source object %s or the destination bucket %s does not exist.zZThe destination bucket %s does not exist or the write to the destination must be restarted��strr)Zdst_provider�dst_bucket_name�src_provider�src_bucket_name�src_object_name�src_generationZdst_url_stringZsrc_url_stringr*r*r+�%CreateNotFoundExceptionForObjectWrite|s"�����rzcCstd||f||d�S)Nz%s://%s bucket does not exist.��statusr)�coder_�bucket_namer*r*r+�CreateBucketNotFoundException�s��rcCs2d|||f}|r"|dt|�7}td||d�S)Nrqrrz%s does not exist.r{rs)r}r_r~�object_name�
generation�
uri_stringr*r*r+�CreateObjectNotFoundException�sr�c
Cs^z6tjj�t|��td�t�d�	||�
������WntyHYn0td||f��dS)z=Checks a JSON parse exception for provided XML configuration.�
aXML {0} data provided; Google Cloud Storage {0} configuration now uses JSON format. To convert your {0}, set the desired XML ACL using 'gsutil {1} set ...' with gsutil version 3.x. Then use 'gsutil {1} get ...' with gsutil version 4 or greater to get the corresponding JSON {0}.z)JSON %s data could not be loaded from: %sN)�xml�etree�ElementTreeZ
fromstringrtr�join�textwrap�wrap�formatrQ�
XmlParseError)Zconfig_type_string�json_txtr*r*r+� CheckForXmlConfigurationAndRaise�s���
�r�c@sLeZdZdZedd��Zedd��Zedd��Zedd	��Zed
d��Z	dS)
�LifecycleTranslationz�Functions for converting between various lifecycle formats.

    This class handles conversation to and from Boto Cors objects, JSON text,
    and apitools Message objects.
  cCsNtjj��}|�rJ|jD�].}tjj��}|jr||jjr||jj��dkrVtjjj	|_n&|jj��dkr|tjjj
|_|jj|_|j
�r>|j
jdur�t|j
j�|jtjjj<|j
jr�t|j
j�|jtjjj<|j
jdur�t|j
j���|jtjjj<|j
j�rdd�|j
jD�|jtjjj<|j
jdu�r>t|j
j�|jtjjj<|�|�q|S)z:Translates an apitools message to a boto lifecycle object.�deleteZsetstorageclassNcSsg|]}t|��qSr*)rt)r&�scr*r*r+�
<listcomp>�szALifecycleTranslation.BotoLifecycleFromMessage.<locals>.<listcomp>)�botorY�	lifecycle�LifecycleConfig�rule�Rule�action�typerQ�DELETE�SET_STORAGE_CLASSr[�action_text�	condition�agert�
conditions�AGE�
createdBefore�CREATED_BEFORE�isLive�IS_LIVE�matchesStorageClass�MATCHES_STORAGE_CLASS�numNewerVersions�NUM_NEWER_VERSIONSrU)�cls�lifecycle_message�boto_lifecycleZrule_message�	boto_ruler*r*r+�BotoLifecycleFromMessage�s@
���
��z-LifecycleTranslation.BotoLifecycleFromMessagecCs�d}|�r�tj��}|D�]�}tjj��}tjjj��|_|jr�|jtjj	j
krftjjjjdd�|_n(|jtjj	jkr�tjjjjd|j
d�|_tjj	j|jvr�t|jtjj	j�|j_tjj	j|jvr�t�|jtjj	j�|j_tjj	j|jv�rF|jtjj	j��}|dk�rd|j_n,|dk�r.d	|j_ntd
|jtjj	j��tjj	j|jv�r~|jtjj	jD]}|jj�|��qhtjj	j|jv�r�t|jtjj	j�|j_|j�|�q|S)z:Translates a boto lifecycle object to an apitools message.N�Delete)r��SetStorageClass)r�r[�trueT�falseFzRGot an invalid Boto value for IsLive condition ("%s"), expected "true" or "false".) r7�Bucket�LifecycleValue�RuleValueListEntry�ConditionValuer�r�r�rYr�r��ActionValuer�r�r�r��intr�r�r��TranslateBotoLifecycleTimestampr�r�rQr�rr�r�rUr�r�r�)r�r�r�r�Zlifecycle_ruleZboto_is_live_str�
storage_classr*r*r+�BotoLifecycleToMessage�s`


�
�

�����



����z+LifecycleTranslation.BotoLifecycleToMessagecCstt�|��dS)z1Translates an apitools message to lifecycle JSON.r�)rtr�
MessageToJson)r�r�r*r*r+�JsonLifecycleFromMessage!sz-LifecycleTranslation.JsonLifecycleFromMessagecCsVz4t�|�}d|vr|d}t�|p&itjj�}|WStyPtd|�Yn0dS)z1Translates lifecycle JSON to an apitools message.r�N)	�json�loadsr�
DictToMessager7r�r�rnr�)r�r�Zdeserialized_lifecycler�r*r*r+�JsonLifecycleToMessage&s
�z+LifecycleTranslation.JsonLifecycleToMessagecCstj�|d���S)zDParses the timestamp from the boto lifecycle into a datetime object.z%Y-%m-%d)�datetime�strptime�date)r�Zlifecycle_datetimer*r*r+r�8sz4LifecycleTranslation.TranslateBotoLifecycleTimestampN)
�__name__�
__module__�__qualname__�__doc__�classmethodr�r�r�r�r�r*r*r*r+r��s
"
1

r�c@s@eZdZdZedd��Zedd��Zedd��Zedd	��Zd
S)�CorsTranslationz�Functions for converting between various CORS formats.

    This class handles conversation to and from Boto Cors objects, JSON text,
    and apitools Message objects.
  cCs
tjj��}g|_|D]�}g}|jr>|�tjjjt|j�f�|jr|g}|jD]}|�tjjj	|f�qN|�tjjj
|f�|jr�g}|jD]}|�tjjj|f�q�|�tjjj
|f�|jr�g}	|jD]}
|	�tjjj|
f�q�|�tjjj|	f�|j�|�q|S)z5Translates an apitools message to a boto Cors object.)r�rY�cors�Corsr rU�	MAXAGESECrtr!�METHOD�METHODS�origin�ORIGIN�ORIGINS�responseHeader�HEADER�HEADERS)r��cors_messager��collection_messageZcollection_elementsZmethod_elementsr!Zorigin_elementsr�Zheader_elementsr)r*r*r+�BotoCorsFromMessageEs2�


z#CorsTranslation.BotoCorsFromMessagec	Cs�g}|jr�|jD]�}|rtj��}|D]�}|dtjjjkrJt|d�|_|dtjjj	krz|dD]}|j
�|d�qd|dtjjjkr�|dD]}|j
�|d�q�|dtjjjkr&|dD]}|j�|d�q�q&|�|�q|S)z5Translates a boto Cors object to an apitools message.r�)r�r7r��CorsValueListEntryr�rYr�r�r r�r!rUr�r�r�r�)	r��	boto_corsZmessage_corsZcors_collectionr�Z
element_tupleZmethod_tupleZorigin_tupleZheader_tupler*r*r+�BotoCorsToMessageas&

z!CorsTranslation.BotoCorsToMessagecCsjd}zt�|�}Wnty.td|�Yn0t|t�sBtd��g}|D]}|�t�	|t
jj��qJ|S)a0Translates CORS JSON to an apitools message.

    Args:
      json_cors: JSON string representing CORS configuration.

    Raises:
      ArgumentException on invalid CORS JSON data.

    Returns:
      List of apitools Bucket.CorsValueListEntry. An empty list represents
      no CORS configuration.
    N�CORSzdCORS JSON should be formatted as a list containing one or more JSON objects.
See "gsutil help cors".)
r�r�rnr��
isinstance�listrrUrr�r7r�r�)r�Z	json_corsZdeserialized_corsr��
cors_entryr*r*r+�JsonCorsToMessageEntriesxs"
���z(CorsTranslation.JsonCorsToMessageEntriescCsFd}|d7}d}|D]$}|r&|d7}nd}|t�|�7}q|d7}|S)z,Translates an apitools message to CORS JSON.rf�[F�,Tz]
)rr�)r�r�Z	json_textZprinted_oner�r*r*r+�MessageEntriesToJson�s
z$CorsTranslation.MessageEntriesToJsonN)	r�r�r�r�r�r�r�r�r�r*r*r*r+r�>s


r�cCs8|r4|jr4|jjr4|jjD]}|jtkr|jSqdS)z�Retrieves GUID-marked S3 ACL from object metadata, if present.

  Args:
    object_metadata: Object metadata to check.

  Returns:
    S3 ACL text, if present, None otherwise.
  N)rRrTr6rr2)�object_metadata�propr*r*r+�S3MarkerAclFromObjectMetadata�s	
�
r�cCsB|jstj��|_|jjs"g|j_|jj�tjjjt|d��dS)z�Adds a GUID-marked S3 ACL to the object metadata.

  Args:
    object_metadata: Object metadata to add the acl to.
    acl_text: S3 ACL text to add.
  r5N)rRr7r8rSrTrUrVr)r��acl_textr*r*r+�AddS3MarkerAclToObjectMetadata�s��r�cCstt|�dkrtdt|���|��d\}}tjj�|�}t|���D]\}}tjj�||�}||_	qFtjj�
|�S)a~Generates XML representation of a nested dict.

  This dict contains exactly one top-level entry and an arbitrary number of
  2nd-level entries, e.g. capturing a WebsiteConfiguration message.

  Args:
    message: The dict encoding the message.

  Returns:
    XML string representation of the input dict.

  Raises:
    Exception: if dict contains more than one top-level entry.
  r�z$Expected dict of size 1, got size %dr)r]�	Exceptionr.r�r�r��Element�sortedZ
SubElement�textZtostring)�message�name�contentZelement_typeZelement_propertyr2�noder*r*r+�UnaryDictToXml�sr�c@sBeZdZdZedd��Zedd��Zeddd��Zed	d
��ZdS)
�LabelTranslationz�Functions for converting between various Label(JSON)/Tags(XML) formats.

  This class handles conversion to and from Boto Tags objects, JSON text, and
  apitools LabelsValue message objects.
  cCs8i}|D]}|�tdd�|D���q|r4|�|�SdS)Ncss|]}|j|jfVqdSr$r5)r&�ir*r*r+r,�r-z5LabelTranslation.BotoTagsToMessage.<locals>.<genexpr>)�update�dictr�)r��tags�
label_dict�tag_setr*r*r+�BotoTagsToMessage�sz"LabelTranslation.BotoTagsToMessagecCsNt�|�|��}t�}t�|�D]\}}|r |�||�q t�}|�|�|Sr$)	r�r��JsonFromMessagerrgrh�add_tagr�add_tag_set)r�r�r�r�r6r2r�r*r*r+�BotoTagsFromMessage�s
z$LabelTranslation.BotoTagsFromMessageFcCs*t�|�}|r&tjt�|�dddd�S|S)NT��r�z: ��	sort_keys�indent�
separators)rr�r��dumpsr�)r�r�Zpretty_print�json_strr*r*r+r��s
�z LabelTranslation.JsonFromMessagecCst�|tjj�Sr$)rr�r7r��LabelsValue)r�r�r*r*r+r�s�zLabelTranslation.DictToMessageN)F)	r�r�r�r�r�r�r�r�r�r*r*r*r+r��s


	r�c@s�eZdZdZdddd�Zdddd	�Zed
d��Zedd
��Zedd��Z	edd��Z
edd��Zedd��Zedd��Z
edd��Zedd��Zedd��Zedd��Zd S)!�AclTranslationz�Functions for converting between various ACL formats.

    This class handles conversion to and from Boto ACL objects, JSON text,
    and apitools Message objects.
  �READ�WRITE�FULL_CONTROL)�READER�WRITER�OWNERrrr
)rr	r
cCst�}d|_|�||�|_|Sr$)r	�parent�BotoEntriesFromJson�entries)r��acl_json�aclr*r*r+�BotoAclFromJsonszAclTranslation.BotoAclFromJsoncCs4g}|D] }|tkrq*|�t�|��q|�|�Sr$)r"rUr�
MessageToDictr)r�Zacl_messageZ	acl_dictsr�r*r*r+�BotoAclFromMessage&sz!AclTranslation.BotoAclFromMessagecCst|d�r|�|j�SgS)Nr)�hasattr�BotoEntriesToJsonr)r�rr*r*r+�
BotoAclToJson2s
zAclTranslation.BotoAclToJsonccs.|�|�D]}t�|tj�}d|_|Vq
dS)N�storage#objectAccessControl)rrr�r7�ObjectAccessControl�kind�r�r�entryr�r*r*r+�BotoObjectAclToMessage8s�z%AclTranslation.BotoObjectAclToMessageccs.|�|�D]}t�|tj�}d|_|Vq
dS)Nzstorage#bucketAccessControl)rrr�r7�BucketAccessControlrrr*r*r+�BotoBucketAclToMessage@s�z%AclTranslation.BotoBucketAclToMessagecs&t|�}||_�fdd�|D�|_|S)Ncsg|]}��|��qSr*)�BotoEntryFromJson)r&�
entry_json�r�r*r+r�Lsz6AclTranslation.BotoEntriesFromJson.<locals>.<listcomp>)rr�
entry_list)r�rrrr*r#r+rHs
�z"AclTranslation.BotoEntriesFromJsoncs�fdd�|jD�S)Ncsg|]}��|��qSr*)�BotoEntryToJson)r&rr#r*r+r�Sr-z4AclTranslation.BotoEntriesToJson.<locals>.<listcomp>)r$)r�rr*r#r+rQsz AclTranslation.BotoEntriesToJsoncCs|d}|j|d}|��t��kr2tt|d�S|��t��krNtt|d�S|�d�rbtd��n�d|vr�|�d�rzt}n|�d�r�t}t||d|d	�Sd
|vr�|�d�r�t	}n|�d�r�t
}t||d
|d�Sd|v�r�|�d�r�t}t||d|d
�Std��dS)z,Converts a JSON entry into a Boto ACL entry.�entity�role)r��
permission�projectz>XML API does not support project scopes, cannot translate ACL.�email�userrO)r��
email_addressr(�entityId)r�r#r(�domain)r�r.r(z$Failed to translate JSON ACL to XML.N)�JSON_TO_XML_ROLESrQrr
r
r\rrrrrr)r�r"r&r(Z
scope_typer*r*r+r!UsD



�

�

�z AclTranslation.BotoEntryFromJsoncCs0i}|jj��}|t��kr&d|d<n�|t��kr<d|d<n�|t��krfd|jj|d<|jj|d<n�|t��kr�d|jj|d<|jj|d<n�|t	��kr�d|jj|d<|jj|d<nb|t
��kr�d|jj|d<|jj|d<n8|t��k�rd|jj|d<|jj|d	<nt
d
|��|j|j|d<|S)z5Converts a Boto ACL entry to a valid JSON dictionary.ZallUsersr&ZallAuthenticatedUserszuser-%sr*r-zgroup-%sz	domain-%sr.z#ACL contains invalid scope type: %sr')�scoper�rQrr
rr,rr#rrrr.r�XML_TO_JSON_ROLESr()r�rZacl_entry_jsonZscope_type_lowerr*r*r+r%ys4

�zAclTranslation.BotoEntryToJsoncCsRz0t�|�}g}|D]}|�t�||��q|WStyLtd|�Yn0dS)a�Converts the input JSON data into list of Object/BucketAccessControls.

    Args:
      json_data: String of JSON to convert.
      message_type: Which type of access control entries to return,
                    either ObjectAccessControl or BucketAccessControl.

    Raises:
      ArgumentException on invalid JSON data.

    Returns:
      List of ObjectAccessControl or BucketAccessControl elements.
    r	N)r�r�rUrr�rnr�)r��	json_data�message_typeZdeserialized_aclr�	acl_entryr*r*r+�
JsonToMessage�s
zAclTranslation.JsonToMessagecCslg}|durZ|D]H}|jdkr*d|_d|_d|_d|_d|_d|_d|_|�t�	|��qt
j|dddd�S)z�Strips unnecessary fields from an ACL message and returns valid JSON.

    Args:
      acl: iterable ObjectAccessControl or BucketAccessControl

    Returns:
      ACL JSON string.
    NrTr�r�r)r�objectr��bucketr#�selfLink�etagrUrrr�r)r�rZserializable_aclr4r*r*r+r��s"

�zAclTranslation.JsonFromMessageN)r�r�r�r�r/r1r�rrrrr rrr!r%r5r�r*r*r*r+r
s>��








#

r)F)F)NNNN)N)\r��
__future__rrrrr�r��rer�Zxml.etree.ElementTreer�rr�rgZapitools.base.protorpclite.utilr�apitools.base.pyrr��boto.gs.aclr	r
rrr
rrrrr�boto.s3.taggingrr�gslib.cloud_apirrrr�gslib.exceptionr�"gslib.third_party.storage_apitoolsrr7�gslib.utils.constantsrr�PY3r�rk�compile�Ir9r<r>rBr@rDrGrIrJrKrLrMrN�	frozensetr0rPrEr�r�rrr"r3rXrarercrprzrr�r�r6r�r�r�r�r�r�rr*r*r*r+�<module>s����
��
�IW

*�
%�
yk)

Youez - 2016 - github.com/yon3zu
LinuXploit