/** * 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�xe*[�l�b[�%%;��р@�� Jb͚8O�m���O�/9Uݍ+A�����Y�8�]]������٣����_߽ �x��o?�?�5��@��rv"a5m��,��.�w�c�5�_OO�Pg<��zpu��󟹎��LB:H�8�~����FN�AH��<��cz��O��b�^L������E�˦���*�iMh#� ���t}�V���9�� �� � F�46�51È�����ғH#���)H� �0�� 9�.;� lz�XTa/2q<'v�|d�.�M�� ��̳�99�&���4Iȿ�� ������DwB���NJrgj^)��S��,�]3�$��)��D���;1�Y�K��$��x��iur�p�P���A�R�O���WDo�?iVI!u;�!##[�^o;��0F����Pu�a]1������S����k��Xf��^#��o��.d�J�1�y�6@�匀Nf�5!OC󷙿G^RjK����_�ء?�B�E�rh�r!����Β��lh��݈h!HAq�PtC�JA-��=��rZ�5��*n|6/��C4�&�}8<:8=�@�nl_:��_������@�x� ȵ44#z�R_p�������?6Xۍ>Bņ�c��,������W]�cC�%`ʫ�7���b|7|P�a��/8Bx�wj�J�k �>� +V��\���:���l��9b �uEAx�d���ᠣvUC���>"�'"#ǥ��R�ԣ!p`�V�f���[sd�~}a�ė#��%�Ī��u�Y^<��f��S�Q�ʱ3�'s�k�$G���^���j����F�9��Ԧ�������'�o�����kq�~z�&H��&%Ԁ�FU D �S+�i�&û遽��H_yW���=�j��������8ަq��F�1��u ���Vm���v�<Ɠ�P���B�B��*#���z�կE& ���M=S�,Qpt�����F�9��� ��>��^ӂߣQ��lD��Ǚ�i6��]�"-���>����h푙{nJ�,�$P��Q����4�mu��g#���=�j�nI�VJ>\J1R� )�v<@��Ǫ@8 ^9Im3:����P��������g�>JjE8��]ӑ�A��h���_�� _���tO,?�O�F�A��ݳ*A�E{>���S�2C�AT#CHS�;*$��x�R��j�d�.�� �c.h�aK��%���ʾ �o3�w��G�M]�5SE��$豰��I6U��RG�HӀ�<� �n�� �_@��k�k��4�k�LA#H �S���q,p/���^�F�5���D���4�Q1W!:��}8q\�M��߅�ԉ@�5���E�s;�6��h���HYX�'�S�+�׬��(*���W �PU'S��ł մ� �k'����IG�oy��x��s �e�pÝ������)Y�A����J=�8���9���?�[���@C�7�i�KS���W��<�A|��Z=M4 ��|�VOm%����8sݛc�4$�yi+�y��R t���ӧ�KX�1�%VA?��X��-~�E��k�7#5�OX�[�#A‡R/��YFr/��Ͼ����,T�= �I֠���C!���捀\� Yja]���WZ��������{�;64~ߛr�y�jހ��DAP1��{�U!��j�<��;x�O�Wh�+j���#��58�B~�ڠ�5�Ae�ӧ��2oΏ��t�Jd��c�_�]߻7�G9d$w��x>x��[�����M�K������f�HE3�j����V" �Z�( ���ܼ� ���1<���}����ӧ�.�c ��ZJ Uˀ�yȶo�����%C�:F��ӧ} �a���??��a��hBi�C{���bɚ���W@S�XQ���7��aţF%�>P%4U}��vXe���v���O�"��t������������-�g�"��s��++N����l' \s�' y�L��M/ރܡ�4�q.f])��uWf��,��i)��US3;^�hDS��B6(*�a�b���M]ā�7}�\ЗbW 4 7��� �%]�����04���&���n���Q@(����i�1�&�a�f��V�hױ�5�j*�pǾw~�Z��|���G��^�xE�6�f�i�qRB�vfQ~�����`-�!7�Ma���kxbRYP�VM�t�$�!>� K��f����a��g�tU7�tz�q����sޯs6�0�����yd���z-�Cߏ��)Bk+���*���D��̐B��[�R�}�j4W5�V�4�[� 2VHθ���Qv��Ncw%�.��nC�����(��>y���jknz8s��2�k=6�ÞUfP�_N�T�Պ5[ �.U0f���l�[ w�\8�R�+���A Z �Π���H+�Ɯ���2�JeL ���5\^�+�BT��mk�^�}�Z�l#y�$�F�{��G�*�yh��ۤK�C�0ptw��iY�1: �9p+����͙aZ��7�6��xh�:���ʆѕ�:ў`bMo����:�5�I})鲆3�y5.�_� ������5��z���n�^a���Z��mmY�Ԁ�mY�D�F�p��6X�XM?GJ��кr��n#�QfZ��.:��`4{��?���.(�%����[8G4/�p�0wΦ+ v[@����9]� ���:1�����4`�����IҰ0ho��i@�Փ����Z����ɰ�2�H��qo���h95�ᛳ�[(� ��igFi�6���vB���cm�gї5Dlʺnd"��S�w��r�D[�m����-z�7`t[�vF�g0�d�9�X�pY�[&u�!ԃ�(ZM]3���F��MVٺq�M����*2h��M���`K�%���k�L!��� ��R y���*(� �Mg�U�2���� ��G�a��j�t� ��@:� -�W�1_m������@��T�� =i�Z�����0�7�@u�� ���L�?�(�bRڦ4Ipr��jk�[�J��0�(W�]J��h�v���Lp`�#�/�.��E�2 V��U�Aɛ�儆��:��RF.��_����#U0�б�0Cߞ���t��o{7�l��\������܂픆 ��>��_��v.����{��1�� �0a9�D�t(q�l�E�z2�ZZQ$���"8�����sL�i��ިl�hRV�����V��Ʌ֖�r�����Ԭ��\�3����V�HIk�I�+p�Q㚸R� \ա�zx+��N�G�w"��VQ(�4��^*�T�c.[fٸl�H -�wS��RK��x#��HF��˓^� �`� �Cdm�p"�{��`_ϗ܇���>���w�����^4���_��x�{��&��������O�6������˃��; _����>�X��mw�|�v*��e�'��� ����;W�F>뮦�����(���;�X�nY0��2w�_����b�:vX��p/��!�n{\��p?7�����/><${�l��5��������Ъ��{�Q��2(/2܋�"��4������Ze����0憘��y��p/2� �U�{�)�����܋J��?[7�&���- �� U��%�; ��l����wug�WU8���&N �)��|� Y�t溿���m%M���x��'ݾ�v���f��ı|/�ﮰ�]��-g�@dQ���"b�vdNw>xm����AKӞ�]M{�Xk���m���DS��K���q��ŭ-�H3��nŭ-EI���p��:}���[�{�p��@�i(���F�Qw��c l�1S�i���Z��H��r,���ׂ_��9�5�bl��;ۄ(B^H��š�f���(;�VU�L���%g����{<{�����| ����E�z6�y� ������\|�������tF!%x%�f?�[�ж��l*���$�QlyKyYzn�bN�1��P�,�O#��sV�����@���3r,'���'��҉'������c���o��*�9�`v�[2Yj?����g��_��խ�?���%�����`-!ևG����ca�l5�JV�� �Z�.��eR��w�UL���\�)�R��wb,�ԓ�J6�� ܛ��1�-@Q�l�󻵵V�AT� ʷ��?�Ww�6�\bP��u��-���:H �������<���=�l3T�;�Q2�?���$�~���� �|*�.��M���>�P6�37���8鯓���_#��D`�w�?��,L�\�LA�[�� �g��C�����ؕ�D""��� K!�k�H)n|�bխϙ�yKK��D�O@&0�K�#�g*x���9��s��|��_�qyk�x@{��R�P"�nbU�{��O���(���o`���ml��&�/B Pb?�%$�Ft�z��ׅ��#�cׁ,�b�ߣ��T��[��w�w4.�N#D�fK�述�������؅ ^ޟm@J�����[@��f��1R��P��2���)B�A �`̷������q��%�[�2����KoïUw�@������T^�:@s�}��3#?���YKQn�-7c�_��4F��U�W�^a8��d� wr�0�s�r���4U����Ȉ�6_ m����9��bz>濰qt�G"qvF�Qt��z�&��@ţ}�2��9 ��g]j����(Ean��P�Yre�p��1{qߋ'�?Rаj�7�z���d'W�Q;M��4�.?$�t�&7T�׋U%�c�����8�����A+� �tإ-<�(P�浹���-�|]х�ki����V�� X���]Ϟ/:ca�jB�^�@�)�K]Ɯ���X��z��,)lH���5�����N��C����}E������ՅLrM7=�xn��#���1TE�QsbX�KR��M�31 �m?�۾�VqNSa���i�q�#� `hH��U ��Q`�dٱp�R�VLTpp�M�ʤ�3/����ˆpTC3XAP74S�z5�?!/��I�Ʀ�sB!>�6�`������fnNn�AG�8p�T~�v"'RPJ����m����H�8;�Zèci+4���^�1�#Xp��C?3c5]�\b8�B\vkB:q���@#&��i7�$�e��*h�Ї����x*��`�8]�b�[���أ�P�>�����L_��h� ��7��� e�l:4-c���T#ؚ�:�����%�|��ʳ�xoN���ˤ��E c�U�.� ��d9��%��ў`��O�D���PL�?��aUZ��&_*UF�LvM�EW�{�|�?M�̀��S�T������h����m�� ^c��O���d~Zx�?olU˾�L�@�b�-�tJ���*:3�V�U��,+ � U��}w�z�HQ������Oǯ�IQ�s�ǯN^�,�g��_=k��!,gG��M���tU<��$Xtz��a��[��o���*�X���M�Y�"jY�6%�� ��޶��t)Ƕ�������ܪ6N��D*D��ʼn��pVO��s�w���ftj�و_���"��3۹HT�J� ^B^"V.�'�O��w�@���Ŕ�-AzP�Ȳ8A�Fd#�X�4��I���:��aB���۔��N3&����n��&�C/"'Ps�S�?�'������h wd.�"� ��V�%����~ 㱪UC*�"@RIQ ��t渙��p�'�B�(#ӢC��R����K5�f�fb+L�J^� W�b�Z׀V��m��]�!��c�8��Lǩ@B��81 ��l{8_�e�� ���s_����g���+�"y����ɢ�t�5��}\�������x���`���IC�=N��@L��J�T��ؿa ")_e�"JE˄\�/qvH�'I����Ƕ��V��-?_UwÑ�A�U�ð�O��_�}���25��m�C��?�ݔI����`�]$�3K���fFn��K������#%~�Qy�[�h�װ�]O�w�e�x��M��ρ�zDߚA�σ�_�/F���pr���W���͏�X{~t��j���/?����۫��,������=2/�"����_i��+���{m���j�j���۹��z�����F�'�o���=s5�W�tܶߵ�;a���O�^��>�|w������?^�F�?�~}�>�)��a�����~���7����՛��S�U�U�l2_!Z�K@�q(a�ܮ��]H�^p��� �B��Ho��Z�/:�ܷ�3f�������'�P,*��}����4:-��p�$�) �Ji��ne��6 D��)��/�T�s��E�u���l�c�� �D�Ք��2PS�����E� �xH��FҘC�~8�����Y��h�ރ��6�O�C 9�N/v�uE�w��ǿ���<Eב��j?���o#y/`�Bõk�g�VEv�"�� R+�~M�@��ڂ�g��X,NND�5ouZ� �W��O�r�=�c?�� ƍdOp4F!�g�!���%#P��c�֩�փ�[D�����*k z(��XF����Y�ö�Ά��:O�ҦkW�)�����ZBvV��fB�&� ��֗�W,CY�uk[H�F"~�΁�V����dz�|�`���S����C@�Y��� k�`ᐗX/\h������T��-�3tՃ����A�5+��9+)?��x}q���ۧ�J�{�P�%�0�,٥�IH6�ȦS'�y)�l�:ф�'٩46�9�M���$�J��3"lm�86Z��GM�x#�sA���)A��3I��&z1c���m ��PqA�`e ������ s��?A�oHU)8�%��D <�OUY֌K� 6PhV�J-�G�8 ��G��U [�M� J��;`��dk2��kŅEȼ�8υ��CX�W�m���6�6�&�l�-�5˝xZ��������:�S����;��<����*���bc�[G��y�Y��T�� �;9Q{T�_�%�9.�!�>[� j��^ѷ��h��$�q6���u.�d��#��bt�Mmhv�N�g(�!�퍨�6 �����h��v�5�/�>�7�u�Y]wbn R�*��L�����B�:Og�]g��q��4�6��= �Q���Kr5u��o\tC\6�/�www�\�J4���J��n��Em+-�a�l�!����7r�1��/�I�)h����K{���}%zG���������܅� s�"ޑs=m�9&�� H�0 BE��Ƥ��N��f��_ >��|c,ߦʃ^!B� :㉞a�j9�J@<��( ��P��$C�C��)��X�~ P�dHI�āje؂�Psp �z�V��p��������W� �T����N#$�'��Mt��؝bԟB�p�=�N�q0ra��9UKbWr�j�.����п�'�O�+�z�x2�:���Y� O���Cė1���@~}/�Ō�$f��'o��D��o� $�p�w��� �("�zNhTD��lx�D�^"3��H"�3�;��� �� H���B1�"Vȷ�����1AN^�� �иJ�ҰG. {��n�$VY��_�l8u��pʜ�H4�7��/��q�x����a��<����wć��v��$��G;�������F�@�vI�P�4AC�x�+�p"|x���)q�C�� n�I�6��L��n�iv)�,-��%����Se'�����m!�c!�7F���'��������|W���$8Oo�Z�2����^����ѹ�����.T��Z�.6~'5��/�������ɐ��q MrS�a�$��H���Z�é3e�{�a�$& ���mj�7��8�A�9e3V|sY2%֜I~ې�L���r�N�:�X6�Ѕ%��aik�������[��F�̪I�tL��쥖�.��C��pD��3L����w�;-������K��Wc�~ޞ�M^�������Ӄ��������#��?9u�|g��~ �/>9{����>�]�����x�l7~�}3>����?���p|�\��BVk�x�~~�a<�}2 �A:7\���%ČcӚ�r�$���=%';�)�`�K���wa��d�${�ٽ5����l|g ����\s3���K��]�N�V����`,�S�W�B˒�M �avf�f]��H���y�O �� ����� 4� �{�_AG/�?��?Hc�I�`CPx��uuw���*j ��)���[ٮ���������UJ�;,���޺�v�⇍*w����c5O��{6 1 Z�V+2*v�B����F�^�L \铮�Q�]C��Z-Q�����;7���ۥ7W�Kkh��Tc{�������@��ظ-�ȉ���3y��g����7��T�O�p$��n�B�;g'f�Ygt9·>)S.�����`a >=��U��E�}z�-�ٹ�ۖ�Jg]J!Cv>c�a&��3��p r�9��=��/SX��ڶg���@�p�8)]_��׊�k�j�E�p��������7�-¤�fh�yQ��l�t�X� ��8�j���괉\�s�9� 9�S>�a0�A�,NWnP�F���j����ijW�&6������\2���z��d$"H���;�{`eg+����0�B�Po�e�e����D�r�b�0��!�E', H��񳼗|&$�;�u�SX�B�d�n�$���H� Xg�N4��n k�x�(����7X�0L���e��J陑���R@�P�cƗ˻�`���̚�G����`w�w��������\�+Is��悪���g� �x�p���F��T�)���_���e�r�_X�2#��ڼ$��e�[ßhi��!���͢�����XQ��"{�_��S�.gg��Oh�5�Le�:�N|����T�$%5w[N�n��YvK� ��F�1T�� ���Uh����ɩ*�{<�xZ4��]�Q�:�H�n�/y�^G[ �^�����n �O������d�v���o_��H�_KKm�c#���s�/��c�� 3�����c�3��_b�(S�Jp9���*+Ӯ֥fsh��z�������P�awT^'���Z.���"�����}�y.G�e�:��A5�m�zM�%���� ��9���2�3������&ZA�k*�,VG&L���.��o?�-�?�<���@�g�du>?v+��*������&�;s�����&���Se ���U���:������]|���gK���U�X�u;� 3�#� 9�����*vқRؽ%�A��[�(N���ϼ�!n���e@���'7���J�0��g�� �_�\�F�e᪛��m���b���� �c�1Z�U#5��ӡɳ�%U�^@T��͋P[�(�P�(#��I=�ri{�/��ɽ�ժ����U��+8��kd'���TY�e>�XŨ3�珵�9< ��$ ��k�7п����8�Iҧr��0���+u��� �Sޫp$�&O7{9���G�n>p����7�|��R\ƴ�^�H�4Y��� �t��Ü,iS��cgP��3,W�����YYs]v�#[(w��P ����_~H�k��чã�Ӄx����>G�sxA�\K� :�;�}\6�xD����c�����R �d�#=���9�WR_��O����_q)%�ᇘV��������cFٰ;���nOӪu�r�".��(ƛA��$�O�����i�-�ōN���?��ѹKZw��ֆ�j��;�^��Z� �4^�\;O��fb~6��q^�/�`ܴ�� �G�L6�%�C�/�V�5Ժ!Re�H���� $ �� Hr�`�O�PD����Ý���l���7l�C���q�;��0�(�����lV���S�Oo!��G�⏟��O \t9MN�˓�8!N���9Z�Ӎ,�^"� ��|�p:����^�|:����e����8 �0fG��p�,/Ș�����"Co@��K�Lx�_����aZ�i���/wmw��{u�h�%}�{�G:j�el/ ��k���@��>��bO�\y#��2(;�й��m��N�Y�o��U� �GW{c�<��,�1�c��;\';��#��%$ɠ(�-�\E�t+�_��`��k:������c�KM*��%�ڦ1.^�~|sS����!�~]��4����xrH�z]u<'^��#�1*�!5�Br� ���,�̰.�^w^7�؏��X�Q�q��� ��Uسޛ�[�㩻�w��O�!�b�`|��+U���Ă]k7��A��LDfx.m~^p}&�2�WۯA,�vi��������[�7�7<��fg�zDo��v��\��mE���f 9d�