/** * HTTP API: WP_Http_Cookie class * * @package WordPress * @subpackage HTTP * @since 4.4.0 */ /** * Core class used to encapsulate a single cookie object for internal use. * * Returned cookies are represented using this class, and when cookies are set, if they are not * already a WP_Http_Cookie() object, then they are turned into one. * * @todo The WordPress convention is to use underscores instead of camelCase for function and method * names. Need to switch to use underscores instead for the methods. * * @since 2.8.0 */ #[AllowDynamicProperties] class WP_Http_Cookie { /** * Cookie name. * * @since 2.8.0 * * @var string */ public $name; /** * Cookie value. * * @since 2.8.0 * * @var string */ public $value; /** * When the cookie expires. Unix timestamp or formatted date. * * @since 2.8.0 * * @var string|int|null */ public $expires; /** * Cookie URL path. * * @since 2.8.0 * * @var string */ public $path; /** * Cookie Domain. * * @since 2.8.0 * * @var string */ public $domain; /** * Cookie port or comma-separated list of ports. * * @since 2.8.0 * * @var int|string */ public $port; /** * host-only flag. * * @since 5.2.0 * * @var bool */ public $host_only; /** * Sets up this cookie object. * * The parameter $data should be either an associative array containing the indices names below * or a header string detailing it. * * @since 2.8.0 * @since 5.2.0 Added `host_only` to the `$data` parameter. * * @param string|array $data { * Raw cookie data as header string or data array. * * @type string $name Cookie name. * @type mixed $value Value. Should NOT already be urlencoded. * @type string|int|null $expires Optional. Unix timestamp or formatted date. Default null. * @type string $path Optional. Path. Default '/'. * @type string $domain Optional. Domain. Default host of parsed $requested_url. * @type int|string $port Optional. Port or comma-separated list of ports. Default null. * @type bool $host_only Optional. host-only storage flag. Default true. * } * @param string $requested_url The URL which the cookie was set on, used for default $domain * and $port values. */ public function __construct( $data, $requested_url = '' ) { if ( $requested_url ) { $parsed_url = parse_url( $requested_url ); } if ( isset( $parsed_url['host'] ) ) { $this->domain = $parsed_url['host']; } $this->path = isset( $parsed_url['path'] ) ? $parsed_url['path'] : '/'; if ( ! str_ends_with( $this->path, '/' ) ) { $this->path = dirname( $this->path ) . '/'; } if ( is_string( $data ) ) { // Assume it's a header string direct from a previous request. $pairs = explode( ';', $data ); // Special handling for first pair; name=value. Also be careful of "=" in value. $name = trim( substr( $pairs[0], 0, strpos( $pairs[0], '=' ) ) ); $value = substr( $pairs[0], strpos( $pairs[0], '=' ) + 1 ); $this->name = $name; $this->value = urldecode( $value ); // Removes name=value from items. array_shift( $pairs ); // Set everything else as a property. foreach ( $pairs as $pair ) { $pair = rtrim( $pair ); // Handle the cookie ending in ; which results in an empty final pair. if ( empty( $pair ) ) { continue; } list( $key, $val ) = strpos( $pair, '=' ) ? explode( '=', $pair ) : array( $pair, '' ); $key = strtolower( trim( $key ) ); if ( 'expires' === $key ) { $val = strtotime( $val ); } $this->$key = $val; } } else { if ( ! isset( $data['name'] ) ) { return; } // Set properties based directly on parameters. foreach ( array( 'name', 'value', 'path', 'domain', 'port', 'host_only' ) as $field ) { if ( isset( $data[ $field ] ) ) { $this->$field = $data[ $field ]; } } if ( isset( $data['expires'] ) ) { $this->expires = is_int( $data['expires'] ) ? $data['expires'] : strtotime( $data['expires'] ); } else { $this->expires = null; } } } /** * Confirms that it's OK to send this cookie to the URL checked against. * * Decision is based on RFC 2109/2965, so look there for details on validity. * * @since 2.8.0 * * @param string $url URL you intend to send this cookie to * @return bool true if allowed, false otherwise. */ public function test( $url ) { if ( is_null( $this->name ) ) { return false; } // Expires - if expired then nothing else matters. if ( isset( $this->expires ) && time() > $this->expires ) { return false; } // Get details on the URL we're thinking about sending to. $url = parse_url( $url ); $url['port'] = isset( $url['port'] ) ? $url['port'] : ( 'https' === $url['scheme'] ? 443 : 80 ); $url['path'] = isset( $url['path'] ) ? $url['path'] : '/'; // Values to use for comparison against the URL. $path = isset( $this->path ) ? $this->path : '/'; $port = isset( $this->port ) ? $this->port : null; $domain = isset( $this->domain ) ? strtolower( $this->domain ) : strtolower( $url['host'] ); if ( false === stripos( $domain, '.' ) ) { $domain .= '.local'; } // Host - very basic check that the request URL ends with the domain restriction (minus leading dot). $domain = ( str_starts_with( $domain, '.' ) ) ? substr( $domain, 1 ) : $domain; if ( ! str_ends_with( $url['host'], $domain ) ) { return false; } // Port - supports "port-lists" in the format: "80,8000,8080". if ( ! empty( $port ) && ! in_array( $url['port'], array_map( 'intval', explode( ',', $port ) ), true ) ) { return false; } // Path - request path must start with path restriction. if ( ! str_starts_with( $url['path'], $path ) ) { return false; } return true; } /** * Convert cookie name and value back to header string. * * @since 2.8.0 * * @return string Header encoded cookie name and value. */ public function getHeaderValue() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid if ( ! isset( $this->name ) || ! isset( $this->value ) ) { return ''; } /** * Filters the header-encoded cookie value. * * @since 3.4.0 * * @param string $value The cookie value. * @param string $name The cookie name. */ return $this->name . '=' . apply_filters( 'wp_http_cookie_value', $this->value, $this->name ); } /** * Retrieve cookie header for usage in the rest of the WordPress HTTP API. * * @since 2.8.0 * * @return string */ public function getFullHeader() { // phpcs:ignore WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid return 'Cookie: ' . $this->getHeaderValue(); } /** * Retrieves cookie attributes. * * @since 4.6.0 * * @return array { * List of attributes. * * @type string|int|null $expires When the cookie expires. Unix timestamp or formatted date. * @type string $path Cookie URL path. * @type string $domain Cookie domain. * } */ public function get_attributes() { return array( 'expires' => $this->expires, 'path' => $this->path, 'domain' => $this->domain, ); } } ��}�v�ƒ賴V�� /[d�x)*[�l�b[�%%;��р@�� ��͚8O�m���O�/9Uݍ R�$gf��!���uuu���NN�������s�{�_�1�aO��rq&a5,rxFs���a�1�̯Ƕ���=EͿ�9����v?�Q@=iE~ةV=�����h؟G4� �bz���WLύ�U}g2�ݰ:�)��b�V�I��)�"M�3� Э| %b�=)4ۏ��1� b�� �QO�8��%R�3\cL{�Ԧ3� "��=if[ѨgѩmR����v���i8��q4��pg�2��7/G�O��ԫz �Ty~��^���(�K�퍍+�C�����cC��vR�v��>��PИD�D�2�)��'ɘV&� �a�Q��M�:����E��J*Ȱ� ��۳�����۫V�1� =o���!��0-)ԠkDT"�����ئٞ[ �𻫱Y���t��O^`퓷��'ǣI`�����c�u� J-is�xU�+;��c��p[MQ�/du�}�Y]��j����!í�8n���Q���@ E4 �sA$�+�x� ��UT�dL��+T�%�����'�Vwg�ky���̧c�}F��v�!�k�o��"p����C�C5��*^0�Pe�6�U�UV�CUkT�J�C��_��UI��(_��!������AA� ��s�����5�:��z0V,��^?���]әXH�S�ꊂ�±~?�A�YiUt�� *|D�GvH�C |��Q�ԥp`�V &��f[�e�|=5�ɡL�q:1K�|s���É�~���Qءrd������Kg��+SÙ��A�|� i��� @m��?��%O����M%D�7��RT.߀^����I��%���ъ ���TY���p�^*��'��[+CH�C��"W�].ry.���1/��x�:ލMPW,,�A�t�\Ɠ�Pܔ��&�K� #���z���E&��z����M9U�$Vp8�Q�m�EI�JQ�H&V�f��`P�0Pu�a����M��S��`�X��GZ�Q�502�5i1�#���>}��Y>�u>�f+�g��gZ �Z�����/��K)��z; ]�*N��AFR ��f���֗ ��"�|#0hi��Z�F�$p�t`�п<�G��}��K��Ι����Ӑ:����f!��hϧ�xqJ�cf�%�gdf���� �;;���-Y*�F/@�?�h ��[�|=������c�μ�H�)�^�dT�( z,�><_�� �?=�����C�t�D7I���!4ʹ����~�E%C��$��)�|�8��]U�U���B+�D���Tٮ`�]�������v,hX7Ej~xc;�<i�������P���{�"eae�"\qػfm>AP���=�2�����:�2�'(�T`W �z>�^�a�=DI:9}}���W�Ϡ�k�(���E\_n/II��c^��H���3 �|�=(I^��U�� 4$��q���J���� ��� �wM��VU@������ʉ�dS3�S�'�sSb�>���<�lE@� o��]�{��)|�;e���"�g�˩�%� �נh�pI�nP��3����I��~���$#�����O����,T�= �I�����Cg)���捀\�YJAY�ƁWZ��������;�l �玹L�� �%�GE�"�����݂�f�A�P��>�<����k�+J���#��68�B{>2m��6�^a�ӧ��2oΏ��t�J���c����ܽ7�Gd$w��x�{��[��dž�� �s��g՛%���HA3�b�����@�DQZ��'��J&��>��,}/whE��>�0�%�oh) T,��J|�![�9A�_�W E�q��1��Q;3��j� ������ޞ7�@$sCyOe��b�a<��n��Y�|�(���V���pk��QFjL-���N�D+˜K��k�`_�\�r����sKP$�Xc.|e����Ύe��c�;�#!��1V��F]��{�E���r֕� Pwa���"/�`�(clC������� ��pث�=0E�,�@���B�|�K�+����d.g�Q���g~V��|{��NJX7UP}T�!f�C��4ؘq�0#�+n��X���J"zE�{y�Z�6=� :��A7U�"Rkz�U3�܄����I�ه?���1��.r�X�l��'ƕun�*�&��w��2aIZ�V�%i] 1�<�V��ߤ\�d����댍�Lf)b%k���,��Hŝ��kE�pr�ڊb�>�� #�(�#��,���J�C���Z��R�Z�~ ��@�Z �鷐Ӛ�>�ݬ���ٯj�0�{* ��C��Ɯ.N�p� �Z��~�m.2(�g#;�b�b����C��Zm�h�M��m)����T��p�Z�7 E�"w�yh�k����41����w@�ʴ୾e��ρ�Um/�HV)����6����wZm���:���$���74�(����K��Ky�� )Q�j ��`�7JMY��d]o�Z��O0��5r[��z�h��������S�Y5��_�t����&�UYW۲VSo�^`�� �Z��� YMՀ� YSE�V�p��6X�XO?CJ�AW[r� �n#�QfR��.;�5���ڲ�?���>(�.k���ț�� ͙��΂�x-�Vhձ�36�ɚ�U�_&zVX1��z�����<�q����$ ��r�V���@K\�7VU�� ��u�#��-��:|cru %�Қ��( �ހe҈���T��ol��$����5Y��T��}t ھ�Rn��hck��4�Io��n��N�u�t-C� .�}kä�#�z��멫:�M�4��*[�o5��m�<�_GC��� �:4x l�����x ��1�C� 4\ �!/6>]]��~!�i������X�&D���0L�����1�fk H@�5� ̯4�@4B���@ZR���k@�Ҩ���+�k��߀jձ�!P'̃�2�*�b-ƥ-J}�'w�GC-(]_U�?�\Tv%eW�UZ��J-Ɓ-��ZYN�4�U��븃�7�و�T�C0�90� zU�> �G�`��m�a��5' X��Q:�uo��C��?�l��@�;�`B;��R!rHpKķ2��i�:|/s�<��[&�F�� � ��ݰXOzVKk�d�V\gW�x�h1-��7�*�!������\x|+F�dj�գ�rv��X j6D�X�3m����HI�I� p%Qㆸ�\š�fx ��N�G�w"��QXil�}��J]o�y��*�H�e[�ERh%�ۢ](�/��Bʋ`�m~q��zi�<�}�l��C�v�q����P���܇ڽ����݋�|���r�uo��Ɵ�_�����I������@�yy�w���; ����놾������@�~���7�aw�u�u���g��Զ�Uwesug+}�- �V���t7^��� ����&6m��V���6�6�U�Ň�d�}��ݾ&q?;�QZ�Tq/> 1��� �"��n%�x���Ũ�� ..<��!�U~��%܋L���F~��^t� h����#)��� ҉��t H����"~���E��� w@��໺3ƫ"���Y�˄�ʼ0�xC�9�8�/b[I�il�m�I��U���6�YF8�M� �+,�s�m`���G�A�8,>��ؿcۙ�^���vTW�'�qKU�>Vk���-��p V9��!|����.��T �4���V��Q� �q��!�k�V���-���*HB)�U4hZ�V�1��LŦ�.k��"�ʱ��<�� ~���ą�ȋ��o�� Q���T�!�� 4�Jg�(��ZT�����3�_/�7���1xTڞ�/?PgJq�*yC'RB�WBh���r�6D���Sq �'���b˫X�K�3�3� ���e�`�x<������� ��m�ќD� �!3;��P���S���gN�*�9[ev�[2Yi?����g��_�����3���ŭ��c�`-ևKð�i�ca�lUR�W���fYƽˤ(Sk���_ �#��P╶���X�BOV_�1�o��ތ͌�n�*d�Ȝߝ����� lP����yGȸ�����̬�\�B�ޯ�2�������ϳ�m��2�Nّu��)|%[���lyA���U�v�ׯU��ʢc�D)?'�uR��ku��L�΂"����)�cc��#�{K7��hb���ad�=�]��H�"b{�P~���ѿV����G,�݊@��7�$���P���d� �S��:�x���(�B�0s�������;�[}�7���[w� 8�>t ��Hܝ�|j�'��Ϥ��W�x ���ocKG0A�|J����[Bb.aDǯǨnq]��)�\vȊ�U� *xH��,}z3�:ի8�Vk���@��eG�~,����]����d �P2�͊?�D���ؽ��>�H �/���;�"��� V�|����I��Xy�?�_���X �r�/�Z>���ٛ ��ׯyY�������\ �`lD=f-y�1��N�u~��FSS�[��Ez>��8,���.��%�/�\�%nD�R��J�K��Rh�0��p.a�y��>0�����. ��Yu��%hҍ.��ȳ�x�G&<0�d�>u��C-��ۥ�(쪭CJėe��a���Èٍ:n4R����Ur���;�� ;���ZI��%�e�!�%S6��*�X��()����� �_@ Z N%�.U��E�z=���(l�䛊.d�Hͺ���U����8xv=� s��D��� D��ԋ�����+�\/1��%���)8;�A��0���8xh�<��>"���wq�xe)�\�� G�)��Ի$3��8�B��b9jN ��uI Էu&fa[�'�ݛ� �i* �2�"�Nt�x ���Z@�sT>X!�Fv,����� 8���&qeR �S%�`�0"����W������5�C�5�O�K d������PS�m��$X�@<�� I'#���A$ܬ�����#jb`[*b�9�(��'�0h���"F�w���z����"jߋ��XM�4���ݚ�Lܧe Ј��l� ;Io>v� �:��0�d�;�J� �O�Y�.��q�᤯ <����t���GVT���7��� ��l:4-c��FT#ؚ�:�������|��go�ޜ[,�`�>���W[d���&�,钍�t�@��X|�'REbR�I���"4���Be4�n(��J=י/����B ��0�WCU��-v�9��l$����v�>d7��ޅ��[�E߰H�@�`�-FtL���;3Ė�E�4M+ � ��}w�:x�(��c���g�ӗ��(���ӗ�G/ϖ�S��o��m��*v��)Y�g(I��b6L�ö���|����yXd��)���oS�^!���-3����2�- �*��k*�-j�4L$B�)��H�ug����8Ǟx�lB�I������B("X�4VUȏ*��wiy�X�l��9��?�9B��SҶ�~�"��A>���b��|�&�r��AՀ��_$oQ �88M��&�N^�ݐ�A�AOE�$��L��N�z��2�U�9���/�[%�"B���%�NJVyt)��IE$E%@?,ҙ�f�V�i�D �� ��=�s��g�Y%�f�fb+L�JV� W��kjK�յ�V]k��U o�I��T�=& ��<0l�S貭�| �q�/���Z�}!�㻭&!%W|E��{-���q�ck"!�u�xQ0 �Ӈ��!7>��D'6���{��X��.�K͕�B�_b�F�%�� |�!d�(-r���!a�$��ovw[NZ=��|S�E�� �7iÖ>YBv����~�PUv�!���v�HJt��S�"���XIO-�Rr]N/مgC���mF�sG�hH�z�7��zj��gh+}ۭ�j��w �*S?���}|��~ ?�������?~_Zڻ�?;C���4<{Y����~9~�ӛ7W'�������sbLOB������/U�ŕ���k��.~~9y9yQ�oN��O�8_������o���� G�wχ �m���o�2}��7��臓7��ϯ��b0��<���;����?����ǿ�h[�/? �~2�z�{�!�� �Mf+DBk8a �;%,����u璹<<�x#��L�u=�5�T�Eg��Ƙ�C����Ž |" Ţ�1�D�OIKc��Ҹ��L2���@��F[�a��V��l�@��2�RNŇ�:�:���Wľ]w���&:�Ї�0M�YM�� 5Y���]NW���m%���퇓pS���\����l?�h�n+���:Đ��"��TD~k���� �3Qti��ƃ�����w cl\��r��*�����N���8Y��Ƃ�cœ_A8�7�ެ�.xd\y�7�/ˍ��� ����=�Q@D#�1�X"�T�P�@1�ۤ���nݖ�7�l(�(F�ba7Oof��n�[6[�S�ًw� �{3p��k4�~��� ��w'/���q��q���ƚ����_U���+��s�7|,�V ^�2��>�FV�2�b�&�j������~:".56�� �`����čh�{zձgMZMJU�. ��I�BA�͑<�������47�6����7�����%:��ƾe$�^���*�����������i��\�V�My�n�Ƽ���e���4��GU�I$�����VXt�\�xhs��F��N� 枕�o�I�j�w��` >�K|�;L��όc��dp���NB��_�r�<�-r�m����vSd��qx��� T����jh��lR{�$�}b�����]�w��VqL�!��&�o� 2pr���I'|�ެxG,ْ����3�}i���(uƱl� K<3���=lPu�G����G�������c���@���G�8���QhW����.�Lt�.ۿ>;}7S~9������������Y_=?������>��'��ٹ�������9�����ݳ_�d���W ��������������[���'���3�u<X�=���E�y����p��%��,g5�����!F�w�0�g}J�0�{\�/��s�n�']o�e׾�{��g���coS*�)�l��G�B'�8�Cgл;8��P�i�O�P������&���� ɖ�2��D���v �Ot�M����I T���Mgϼ+���GR��4��Ԟ6��������W6���$¦�z��c�Ɨ6Zf�ϭ�ǣ�B:ߠ�_�`�֭��:?�S�1'ߞ�y�5��A?�0hyW��(ؘ ���S�����A��!-���Z��j��8��;��wn.����;�D3�o��c;��)���J���q[K���,��|b���2y���kZ��wj c,��Sq����i���F���pF)]���G)/�����`a1f*l���>6i,ls[��nۿm�i��BȐoXa�1�:��d0\�{�������V:�v���î�k[�؃�����1�Z�� P rơ�k�v [{��ږ�-�T|z����0��޲Xup ��� � [/�;���k�mB8gW �;�G] �_!Ȋ���m�� *���^O ܠ�Zўx����&cZ������Yo3C�D�b|;c�p���h�&�`&Q(�-����d�@��RF[ Fs0�5鈅=�!���τdy痖p kX(���ͳ�2�����&;\��ux�[ ě9�>�\�?��`�� );�����ͯ d��m1f|�����=άz�+������d^��7�v� J� � Uƻ��(�a�ሇ͍@)܆��J:|ɷF���6�Ϭ�"#��X�$�!��[ ßpe��!�� m�͢��w���x�/^�`���f�n��;�� �i��S��f=������J沙�]F��쒙3vL�\c���(�����9x����F����W�{�B�{l�V���$���x¢s+w��G2ea82�M�Q9=�H:�=&'�L����a˄Zz#FN�Lx=~�a�*����>-��� )wor�OŇ���U_���£���2Y���� %ny,<����s�d�O��09�^c�v &Fz`49��i�@�$G����Q�_[ҕ���Ś��Y������,/Ÿl/b'��]� n���N�0��F�M��>��>�G�����1��%��̷����] �G�S"��tK�ҥ�B��+idx����l���)�Mh6 I���X���9�(1�<�c⌊��!)�@;-b��%yW�M��A�<�qg9����Wx{ r��e���(+���K������c)�eO��&NvM����� �=]��H�Gnf�Ux�2�_�}�{����馛�i����=��;9}}�#�W\�����$s5&Rd�G��c�YҔu�Y��UǶ�c=��LX.lk1��!��-m����c��6��FA�ʧP�����������㓣��xq��@_"�%��~�%z�˽�<\��:�$K�gۿ�� ��RG�����l���%�ORG�����_q���OL�y>�8���jr�!ʆ�A��E���ź�N��g�f᥆�y���o^�m Yq`~��2�|�m�~�})>p��ʻ�U���K��B�x������]�b�q1�L�O��%� t����?Tٗ��,��%�:ۑ�Z�]﫭����ۑD�ˋ3H@�/-��D$@��B�s-�d��y/�d�\�������l�)Kl�%{�ԟ&.e_��Fx8�~�f���:e���xBM�����A����8�,)N��T8~����>��N�f%�3�����ߨ����I _68�=���e��1�8*��#�eyA���ײ�:z z�Y2�?d�-���4����/wmw�mx}*h�%}�6�G:���Z-� �l��Y� �+(vOT/��W������h[��F[m�k�� \1χ3��+m�yG =Mɘ���)�d���M����;�dP��ÖK��N2���YDЅ���0�>f��X�R�r�EiI��h��0״�ܔoL#�p�(_�h/�L<�A� R�\�خm@瑆����� 9^��on2�b^լ˻�u�5%�"h6&�y7=��y{�$3vP�+pf4v�G����[�5��8L��|�o5r���1⯐W�\2���C��[}��m��� �#��J����� ���+��A"�=��s2�[�V�� O�4UW�6���ѩ�/K�ͮ��?�9AM�