<?php

// Start of SPL v.0.2

interface RecursiveIterator extends Iterator, Traversable {

	/**
	 * Returns if an iterator can be created fot the current entry.
	 * @link http://php.net/manual/en/recursiveiterator.haschildren.php
	 * @return bool true if the current entry can be iterated over, otherwise returns false.
	 */
	abstract public function hasChildren () {}

	/**
	 * Returns an iterator for the current entry.
	 * @link http://php.net/manual/en/recursiveiterator.getchildren.php
	 * @return RecursiveIterator An iterator for the current entry.
	 */
	abstract public function getChildren () {}

	abstract public function current () {}

	abstract public function next () {}

	abstract public function key () {}

	abstract public function valid () {}

	abstract public function rewind () {}

}

class RecursiveIteratorIterator implements Iterator, Traversable, OuterIterator {
	const LEAVES_ONLY = 0;
	const SELF_FIRST = 1;
	const CHILD_FIRST = 2;
	const CATCH_GET_CHILD = 16;


	/**
	 * @param iterator Traversable
	 * @param mode[optional]
	 * @param flags[optional]
	 */
	public function __construct (Traversable $iterator, $mode, $flags) {}

	/**
	 * Rewind the iterator to the first element of the top level inner iterator
	 * @link http://php.net/manual/en/recursiveiteratoriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current position is valid
	 * @link http://php.net/manual/en/recursiveiteratoriterator.valid.php
	 * @return bool true if the current position is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Access the current key
	 * @link http://php.net/manual/en/recursiveiteratoriterator.key.php
	 * @return mixed The current key.
	 */
	public function key () {}

	/**
	 * Access the current element value
	 * @link http://php.net/manual/en/recursiveiteratoriterator.current.php
	 * @return mixed The current elements value.
	 */
	public function current () {}

	/**
	 * Move forward to the next element
	 * @link http://php.net/manual/en/recursiveiteratoriterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get the current depth of the recursive iteration
	 * @link http://php.net/manual/en/recursiveiteratoriterator.getdepth.php
	 * @return int The current depth of the recursive iteration.
	 */
	public function getDepth () {}

	/**
	 * The current active sub iterator
	 * @link http://php.net/manual/en/recursiveiteratoriterator.getsubiterator.php
	 * @param level[optional]
	 * @return RecursiveIterator The current active sub iterator.
	 */
	public function getSubIterator ($level) {}

	public function getInnerIterator () {}

	public function beginIteration () {}

	public function endIteration () {}

	public function callHasChildren () {}

	public function callGetChildren () {}

	public function beginChildren () {}

	public function endChildren () {}

	public function nextElement () {}

	/**
	 * @param max_depth[optional]
	 */
	public function setMaxDepth ($max_depth) {}

	public function getMaxDepth () {}

}

interface OuterIterator extends Iterator, Traversable {

	/**
	 * Returns the inner iterator for the current entry.
	 * @link http://php.net/manual/en/outeriterator.getchildren.php
	 * @return Iterator The inner iterator for the current entry.
	 */
	abstract public function getInnerIterator () {}

	abstract public function current () {}

	abstract public function next () {}

	abstract public function key () {}

	abstract public function valid () {}

	abstract public function rewind () {}

}

class IteratorIterator implements Iterator, Traversable, OuterIterator {

	/**
	 * Create an iterator from anything that is traversable
	 * @link http://php.net/manual/en/iteratoriterator.construct.php
	 * @param iterator Traversable
	 */
	public function __construct (Traversable $iterator) {}

	/**
	 * Rewind to the first element
	 * @link http://php.net/manual/en/iteratoriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Checks if the iterator is valid
	 * @link http://php.net/manual/en/iteratoriterator.valid.php
	 * @return bool true if the iterator is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get the key of the current element
	 * @link http://php.net/manual/en/iteratoriterator.key.php
	 * @return void The key of the current element.
	 */
	public function key () {}

	/**
	 * Get the current value
	 * @link http://php.net/manual/en/iteratoriterator.current.php
	 * @return void The value of the current element.
	 */
	public function current () {}

	/**
	 * Forward to the next element
	 * @link http://php.net/manual/en/iteratoriterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get the inner iterator
	 * @link http://php.net/manual/en/iteratoriterator.getinneriterator.php
	 * @return void The inner iterator as passed to IteratorIterator::__construct.
	 */
	public function getInnerIterator () {}

}

class FilterIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator {

	/**
	 * Construct a filterIterator
	 * @link http://php.net/manual/en/filteriterator.construct.php
	 * @param iterator Iterator
	 */
	public function __construct (Iterator $iterator) {}

	/**
	 * Rewind the iterator
	 * @link http://php.net/manual/en/filteriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/filteriterator.valid.php
	 * @return bool true if the current element is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get the current key
	 * @link http://php.net/manual/en/filteriterator.key.php
	 * @return mixed The current key.
	 */
	public function key () {}

	/**
	 * Get the current element value
	 * @link http://php.net/manual/en/filteriterator.current.php
	 * @return mixed The current element value.
	 */
	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/filteriterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get the inner iterator
	 * @link http://php.net/manual/en/filteriterator.getinneriterator.php
	 * @return Iterator The inner iterator.
	 */
	public function getInnerIterator () {}

	/**
	 * Check whether the current element of the iterator is acceptable
	 * @link http://php.net/manual/en/filteriterator.accept.php
	 * @return bool true if the current element is acceptable, otherwise false.
	 */
	abstract public function accept () {}

}

class RecursiveFilterIterator extends FilterIterator implements Iterator, Traversable, OuterIterator, RecursiveIterator {

	/**
	 * Create a RecursiveFilterIterator from a RecursiveIterator
	 * @link http://php.net/manual/en/recursivefilteriterator.construct.php
	 * @param iterator RecursiveIterator
	 */
	public function __construct (RecursiveIterator $iterator) {}

	/**
	 * Check whether the inner iterator's current element has children
	 * @link http://php.net/manual/en/recursivefilteriterator.haschildren.php
	 * @return void true if the inner iterator has children, otherwise false
	 */
	public function hasChildren () {}

	/**
	 * Return the inner iterator's children contained in a RecursiveFilterIterator
	 * @link http://php.net/manual/en/recursivefilteriterator.getchildren.php
	 * @return void a RecursiveFilterIterator containing the inner iterator's children.
	 */
	public function getChildren () {}

	/**
	 * Rewind the iterator
	 * @link http://php.net/manual/en/filteriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/filteriterator.valid.php
	 * @return bool true if the current element is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get the current key
	 * @link http://php.net/manual/en/filteriterator.key.php
	 * @return mixed The current key.
	 */
	public function key () {}

	/**
	 * Get the current element value
	 * @link http://php.net/manual/en/filteriterator.current.php
	 * @return mixed The current element value.
	 */
	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/filteriterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get the inner iterator
	 * @link http://php.net/manual/en/filteriterator.getinneriterator.php
	 * @return Iterator The inner iterator.
	 */
	public function getInnerIterator () {}

	/**
	 * Check whether the current element of the iterator is acceptable
	 * @link http://php.net/manual/en/filteriterator.accept.php
	 * @return bool true if the current element is acceptable, otherwise false.
	 */
	abstract public function accept () {}

}

class ParentIterator extends RecursiveFilterIterator implements RecursiveIterator, OuterIterator, Traversable, Iterator {

	/**
	 * @param iterator RecursiveIterator
	 */
	public function __construct (RecursiveIterator $iterator) {}

	public function accept () {}

	/**
	 * Check whether the inner iterator's current element has children
	 * @link http://php.net/manual/en/recursivefilteriterator.haschildren.php
	 * @return void true if the inner iterator has children, otherwise false
	 */
	public function hasChildren () {}

	/**
	 * Return the inner iterator's children contained in a RecursiveFilterIterator
	 * @link http://php.net/manual/en/recursivefilteriterator.getchildren.php
	 * @return void a RecursiveFilterIterator containing the inner iterator's children.
	 */
	public function getChildren () {}

	/**
	 * Rewind the iterator
	 * @link http://php.net/manual/en/filteriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/filteriterator.valid.php
	 * @return bool true if the current element is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get the current key
	 * @link http://php.net/manual/en/filteriterator.key.php
	 * @return mixed The current key.
	 */
	public function key () {}

	/**
	 * Get the current element value
	 * @link http://php.net/manual/en/filteriterator.current.php
	 * @return mixed The current element value.
	 */
	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/filteriterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get the inner iterator
	 * @link http://php.net/manual/en/filteriterator.getinneriterator.php
	 * @return Iterator The inner iterator.
	 */
	public function getInnerIterator () {}

}

interface Countable  {

	/**
	 * Count elements of an object
	 * @link http://php.net/manual/en/countable.count.php
	 * @return int The custom count as integer.
	 * </p>
	 * <p>
	 * The return value is casted to integer.
	 */
	abstract public function count () {}

}

interface SeekableIterator extends Iterator, Traversable {

	/**
	 * Seeks to a position
	 * @link http://php.net/manual/en/seekableiterator.seek.php
	 * @param position int <p>
	 * The position to seek to.
	 * </p>
	 * @return void 
	 */
	abstract public function seek ($position) {}

	abstract public function current () {}

	abstract public function next () {}

	abstract public function key () {}

	abstract public function valid () {}

	abstract public function rewind () {}

}

class LimitIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator {

	/**
	 * Construct a LimitIterator
	 * @link http://php.net/manual/en/limititerator.construct.php
	 * @param iterator Iterator
	 * @param offset[optional]
	 * @param count[optional]
	 */
	public function __construct (Iterator $iterator, $offset, $count) {}

	/**
	 * Rewind the iterator to the specified starting offset
	 * @link http://php.net/manual/en/limititerator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/limititerator.valid.php
	 * @return bool Returns true on success or false on failure.
	 */
	public function valid () {}

	public function key () {}

	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/limititerator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Seek to the given position
	 * @link http://php.net/manual/en/limititerator.seek.php
	 * @param position int <p>
	 * The position being seeked to.
	 * </p>
	 * @return void 
	 */
	public function seek ($position) {}

	/**
	 * Return the current position
	 * @link http://php.net/manual/en/limititerator.getposition.php
	 * @return int The current position.
	 */
	public function getPosition () {}

	public function getInnerIterator () {}

}

class CachingIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator, ArrayAccess, Countable {
	const CALL_TOSTRING = 1;
	const CATCH_GET_CHILD = 16;
	const TOSTRING_USE_KEY = 2;
	const TOSTRING_USE_CURRENT = 4;
	const TOSTRING_USE_INNER = 8;
	const FULL_CACHE = 256;


	/**
	 * Construct a new CachingIterator object for the iterator.
	 * @link http://php.net/manual/en/cachingiterator.construct.php
	 * @param iterator Iterator
	 * @param flags[optional]
	 */
	public function __construct (Iterator $iterator, $flags) {}

	/**
	 * Rewind the iterator
	 * @link http://php.net/manual/en/cachingiterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/cachingiterator.valid.php
	 * @return void Returns true on success or false on failure.
	 */
	public function valid () {}

	/**
	 * Return the key for the current element
	 * @link http://php.net/manual/en/cachingiterator.key.php
	 * @return void 
	 */
	public function key () {}

	/**
	 * Return the current element
	 * @link http://php.net/manual/en/cachingiterator.current.php
	 * @return void Mixed
	 */
	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/cachingiterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Check whether the inner iterator has a valid next element
	 * @link http://php.net/manual/en/cachingiterator.hasnext.php
	 * @return void Returns true on success or false on failure.
	 */
	public function hasNext () {}

	/**
	 * Return the string representation of the current element
	 * @link http://php.net/manual/en/cachingiterator.tostring.php
	 * @return void The string representation of the current element.
	 */
	public function __toString () {}

	/**
	 * Return the innter iterator
	 * @link http://php.net/manual/en/cachingiterator.getinneriterator.php
	 * @return void an object implementing the Iterator interface.
	 */
	public function getInnerIterator () {}

	/**
	 * Get flags used
	 * @link http://php.net/manual/en/cachingiterator.getflags.php
	 * @return void Description...
	 */
	public function getFlags () {}

	/**
	 * The setFlags purpose
	 * @link http://php.net/manual/en/cachingiterator.setflags.php
	 * @param flags bitmask <p>
	 * Bitmask of the flags to set.
	 * </p>
	 * @return void 
	 */
	public function setFlags ($flags) {}

	/**
	 * The offsetGet purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetget.php
	 * @param index string <p>
	 * Description...
	 * </p>
	 * @return void Description...
	 */
	public function offsetGet ($index) {}

	/**
	 * The offsetSet purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetset.php
	 * @param index string <p>
	 * The index of the element to be set.
	 * </p>
	 * @param newval string <p>
	 * The new value for the index.
	 * </p>
	 * @return void 
	 */
	public function offsetSet ($index, $newval) {}

	/**
	 * The offsetUnset purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetunset.php
	 * @param index string <p>
	 * The index of the element to be unset.
	 * </p>
	 * @return void 
	 */
	public function offsetUnset ($index) {}

	/**
	 * The offsetExists purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetexists.php
	 * @param index string <p>
	 * The index being checked.
	 * </p>
	 * @return void true if an entry referenced by the offset exists, false otherwise.
	 */
	public function offsetExists ($index) {}

	/**
	 * The getCache purpose
	 * @link http://php.net/manual/en/cachingiterator.getcache.php
	 * @return void Description...
	 */
	public function getCache () {}

	/**
	 * The number of elements in the iterator
	 * @link http://php.net/manual/en/cachingiterator.count.php
	 * @return void The count of the elements iterated over.
	 */
	public function count () {}

}

class RecursiveCachingIterator extends CachingIterator implements Countable, ArrayAccess, Iterator, Traversable, OuterIterator, RecursiveIterator {
	const CALL_TOSTRING = 1;
	const CATCH_GET_CHILD = 16;
	const TOSTRING_USE_KEY = 2;
	const TOSTRING_USE_CURRENT = 4;
	const TOSTRING_USE_INNER = 8;
	const FULL_CACHE = 256;


	/**
	 * Construct
	 * @link http://php.net/manual/en/recursivecachingiterator.construct.php
	 * @param iterator Iterator
	 * @param flags[optional]
	 */
	public function __construct (Iterator $iterator, $flags) {}

	/**
	 * Check whether the current element of the inner iterator has children
	 * @link http://php.net/manual/en/recursivecachingiterator.haschildren.php
	 * @return bool true if the inner iterator has children, otherwise false
	 */
	public function hasChildren () {}

	/**
	 * Return the inner iterator's children as a RecursiveCachingIterator
	 * @link http://php.net/manual/en/recursivecachingiterator.getchildren.php
	 * @return RecursiveCachingIterator The inner iterator's children, as a RecursiveCachingIterator.
	 */
	public function getChildren () {}

	/**
	 * Rewind the iterator
	 * @link http://php.net/manual/en/cachingiterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/cachingiterator.valid.php
	 * @return void Returns true on success or false on failure.
	 */
	public function valid () {}

	/**
	 * Return the key for the current element
	 * @link http://php.net/manual/en/cachingiterator.key.php
	 * @return void 
	 */
	public function key () {}

	/**
	 * Return the current element
	 * @link http://php.net/manual/en/cachingiterator.current.php
	 * @return void Mixed
	 */
	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/cachingiterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Check whether the inner iterator has a valid next element
	 * @link http://php.net/manual/en/cachingiterator.hasnext.php
	 * @return void Returns true on success or false on failure.
	 */
	public function hasNext () {}

	/**
	 * Return the string representation of the current element
	 * @link http://php.net/manual/en/cachingiterator.tostring.php
	 * @return void The string representation of the current element.
	 */
	public function __toString () {}

	/**
	 * Return the innter iterator
	 * @link http://php.net/manual/en/cachingiterator.getinneriterator.php
	 * @return void an object implementing the Iterator interface.
	 */
	public function getInnerIterator () {}

	/**
	 * Get flags used
	 * @link http://php.net/manual/en/cachingiterator.getflags.php
	 * @return void Description...
	 */
	public function getFlags () {}

	/**
	 * The setFlags purpose
	 * @link http://php.net/manual/en/cachingiterator.setflags.php
	 * @param flags bitmask <p>
	 * Bitmask of the flags to set.
	 * </p>
	 * @return void 
	 */
	public function setFlags ($flags) {}

	/**
	 * The offsetGet purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetget.php
	 * @param index string <p>
	 * Description...
	 * </p>
	 * @return void Description...
	 */
	public function offsetGet ($index) {}

	/**
	 * The offsetSet purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetset.php
	 * @param index string <p>
	 * The index of the element to be set.
	 * </p>
	 * @param newval string <p>
	 * The new value for the index.
	 * </p>
	 * @return void 
	 */
	public function offsetSet ($index, $newval) {}

	/**
	 * The offsetUnset purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetunset.php
	 * @param index string <p>
	 * The index of the element to be unset.
	 * </p>
	 * @return void 
	 */
	public function offsetUnset ($index) {}

	/**
	 * The offsetExists purpose
	 * @link http://php.net/manual/en/cachingiterator.offsetexists.php
	 * @param index string <p>
	 * The index being checked.
	 * </p>
	 * @return void true if an entry referenced by the offset exists, false otherwise.
	 */
	public function offsetExists ($index) {}

	/**
	 * The getCache purpose
	 * @link http://php.net/manual/en/cachingiterator.getcache.php
	 * @return void Description...
	 */
	public function getCache () {}

	/**
	 * The number of elements in the iterator
	 * @link http://php.net/manual/en/cachingiterator.count.php
	 * @return void The count of the elements iterated over.
	 */
	public function count () {}

}

class NoRewindIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator {

	/**
	 * @param iterator Iterator
	 */
	public function __construct (Iterator $iterator) {}

	/**
	 * Prevents the rewind operation on the inner iterator.
	 * @link http://php.net/manual/en/norewinditerator.haschildren.php
	 * @return void 
	 */
	public function rewind () {}

	public function valid () {}

	public function key () {}

	public function current () {}

	public function next () {}

	public function getInnerIterator () {}

}

class AppendIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator {

	/**
	 * Constructs an AppendIterator
	 * @link http://php.net/manual/en/appenditerator.construct.php
	 */
	public function __construct () {}

	/**
	 * Appends an iterator
	 * @link http://php.net/manual/en/appenditerator.append.php
	 * @param iterator Iterator <p>
	 * The iterator to append.
	 * </p>
	 * @return void 
	 */
	public function append ($iterator) {}

	/**
	 * Rewinds the Iterator
	 * @link http://php.net/manual/en/appenditerator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Checks validity of the current element
	 * @link http://php.net/manual/en/appenditerator.valid.php
	 * @return void Returns true on success or false on failure.
	 */
	public function valid () {}

	/**
	 * Gets the current key
	 * @link http://php.net/manual/en/appenditerator.key.php
	 * @return void The current key if it is valid or &null; otherwise.
	 */
	public function key () {}

	/**
	 * Gets the current value
	 * @link http://php.net/manual/en/appenditerator.current.php
	 * @return void The current value if it is valid or &null; otherwise.
	 */
	public function current () {}

	/**
	 * Moves to the next element
	 * @link http://php.net/manual/en/appenditerator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Gets an inner iterator
	 * @link http://php.net/manual/en/appenditerator.getinneriterator.php
	 * @return void The current inner Iterator.
	 */
	public function getInnerIterator () {}

	/**
	 * Gets an index of iterators
	 * @link http://php.net/manual/en/appenditerator.getiteratorindex.php
	 * @return void The index of iterators.
	 */
	public function getIteratorIndex () {}

	/**
	 * The getArrayIterator method
	 * @link http://php.net/manual/en/appenditerator.getarrayiterator.php
	 * @return void 
	 */
	public function getArrayIterator () {}

}

class InfiniteIterator extends IteratorIterator implements OuterIterator, Traversable, Iterator {

	/**
	 * Constructs an infiniteIterator
	 * @link http://php.net/manual/en/infiniteiterator.construct.php
	 * @param iterator Iterator
	 */
	public function __construct (Iterator $iterator) {}

	/**
	 * Moves the Iterator forward
	 * @link http://php.net/manual/en/infiniteiterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Rewind to the first element
	 * @link http://php.net/manual/en/iteratoriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Checks if the iterator is valid
	 * @link http://php.net/manual/en/iteratoriterator.valid.php
	 * @return bool true if the iterator is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get the key of the current element
	 * @link http://php.net/manual/en/iteratoriterator.key.php
	 * @return void The key of the current element.
	 */
	public function key () {}

	/**
	 * Get the current value
	 * @link http://php.net/manual/en/iteratoriterator.current.php
	 * @return void The value of the current element.
	 */
	public function current () {}

	/**
	 * Get the inner iterator
	 * @link http://php.net/manual/en/iteratoriterator.getinneriterator.php
	 * @return void The inner iterator as passed to IteratorIterator::__construct.
	 */
	public function getInnerIterator () {}

}

class RegexIterator extends FilterIterator implements Iterator, Traversable, OuterIterator {
	const USE_KEY = 1;
	const MATCH = 0;
	const GET_MATCH = 1;
	const ALL_MATCHES = 2;
	const SPLIT = 3;
	const REPLACE = 4;

	public $replacement;


	/**
	 * Creates a new RegexIterator.
	 * @link http://php.net/manual/en/regexiterator.construct.php
	 * @param iterator Iterator
	 * @param regex
	 * @param mode[optional]
	 * @param flags[optional]
	 * @param preg_flags[optional]
	 */
	public function __construct (Iterator $iterator, $regex, $mode, $flags, $preg_flags) {}

	public function accept () {}

	/**
	 * Returns operation mode.
	 * @link http://php.net/manual/en/regexiterator.getmode.php
	 * @return int the operation mode.
	 */
	public function getMode () {}

	/**
	 * Sets the operation mode.
	 * @link http://php.net/manual/en/regexiterator.setmode.php
	 * @param mode int <p>
	 * The operation mode.
	 * </p>
	 * <p>
	 * The available modes are listed below. The actual
	 * meanings of these modes are described in the
	 * predefined constants.
	 * <table>
	 * RegexIterator modes
	 * <tr valign="top">
	 * <td>value</td>
	 * <td>constant</td>
	 * </tr>
	 * <tr valign="top">
	 * <td>0</td>
	 * <td>
	 * RegexIterator::MATCH
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>1</td>
	 * <td>
	 * RegexIterator::GET_MATCH
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>2</td>
	 * <td>
	 * RegexIterator::ALL_MATCHES
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>3</td>
	 * <td>
	 * RegexIterator::SPLIT
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>4</td>
	 * <td>
	 * RegexIterator::REPLACE
	 * </td>
	 * </tr>
	 * </table>
	 * </p>
	 * @return void 
	 */
	public function setMode ($mode) {}

	/**
	 * Returns the special flags.
	 * @link http://php.net/manual/en/regexiterator.getflags.php
	 * @return int the special flags.
	 */
	public function getFlags () {}

	/**
	 * Sets the special flags.
	 * @link http://php.net/manual/en/regexiterator.setflags.php
	 * @param flags int <p>
	 * The special flags. It takes a bitmask of class constants.
	 * </p>
	 * <p>
	 * The available flags are listed below. The actual
	 * meanings of these flags are described in the
	 * predefined constants.
	 * <table>
	 * RegexIterator special flags
	 * <tr valign="top">
	 * <td>value</td>
	 * <td>constant</td>
	 * </tr>
	 * <tr valign="top">
	 * <td>1</td>
	 * <td>
	 * RegexIterator::USE_KEY
	 * </td>
	 * </tr>
	 * </table>
	 * </p>
	 * @return void 
	 */
	public function setFlags ($flags) {}

	/**
	 * Returns the regular expression flags.
	 * @link http://php.net/manual/en/regexiterator.getpregflags.php
	 * @return int the regular expression flags.
	 */
	public function getPregFlags () {}

	/**
	 * Sets the regular expression flags.
	 * @link http://php.net/manual/en/regexiterator.setpregflags.php
	 * @param preg_flags int <p>
	 * The regular expression flags. See RegexIterator::__construct
	 * for an overview of available flags.
	 * </p>
	 * @return void 
	 */
	public function setPregFlags ($preg_flags) {}

	/**
	 * Rewind the iterator
	 * @link http://php.net/manual/en/filteriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/filteriterator.valid.php
	 * @return bool true if the current element is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get the current key
	 * @link http://php.net/manual/en/filteriterator.key.php
	 * @return mixed The current key.
	 */
	public function key () {}

	/**
	 * Get the current element value
	 * @link http://php.net/manual/en/filteriterator.current.php
	 * @return mixed The current element value.
	 */
	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/filteriterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get the inner iterator
	 * @link http://php.net/manual/en/filteriterator.getinneriterator.php
	 * @return Iterator The inner iterator.
	 */
	public function getInnerIterator () {}

}

class RecursiveRegexIterator extends RegexIterator implements OuterIterator, Traversable, Iterator, RecursiveIterator {
	const USE_KEY = 1;
	const MATCH = 0;
	const GET_MATCH = 1;
	const ALL_MATCHES = 2;
	const SPLIT = 3;
	const REPLACE = 4;

	public $replacement;


	/**
	 * Creates a new RecursiveRegexIterator.
	 * @link http://php.net/manual/en/recursiveregexiterator.construct.php
	 * @param iterator RecursiveIterator
	 * @param regex
	 * @param mode[optional]
	 * @param flags[optional]
	 * @param preg_flags[optional]
	 */
	public function __construct (RecursiveIterator $iterator, $regex, $mode, $flags, $preg_flags) {}

	/**
	 * Returns whether an iterator can be obtained for the current entry.
	 * @link http://php.net/manual/en/recursiveregexiterator.haschildren.php
	 * @return bool true if an iterator can be obtained for the current entry, otherwise returns false.
	 */
	public function hasChildren () {}

	/**
	 * Returns an iterator for the current entry.
	 * @link http://php.net/manual/en/recursiveregexiterator.getchildren.php
	 * @return RecursiveRegexIterator An iterator for the current entry, if it can be iterated over by the inner iterator.
	 */
	public function getChildren () {}

	public function accept () {}

	/**
	 * Returns operation mode.
	 * @link http://php.net/manual/en/regexiterator.getmode.php
	 * @return int the operation mode.
	 */
	public function getMode () {}

	/**
	 * Sets the operation mode.
	 * @link http://php.net/manual/en/regexiterator.setmode.php
	 * @param mode int <p>
	 * The operation mode.
	 * </p>
	 * <p>
	 * The available modes are listed below. The actual
	 * meanings of these modes are described in the
	 * predefined constants.
	 * <table>
	 * RegexIterator modes
	 * <tr valign="top">
	 * <td>value</td>
	 * <td>constant</td>
	 * </tr>
	 * <tr valign="top">
	 * <td>0</td>
	 * <td>
	 * RegexIterator::MATCH
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>1</td>
	 * <td>
	 * RegexIterator::GET_MATCH
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>2</td>
	 * <td>
	 * RegexIterator::ALL_MATCHES
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>3</td>
	 * <td>
	 * RegexIterator::SPLIT
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>4</td>
	 * <td>
	 * RegexIterator::REPLACE
	 * </td>
	 * </tr>
	 * </table>
	 * </p>
	 * @return void 
	 */
	public function setMode ($mode) {}

	/**
	 * Returns the special flags.
	 * @link http://php.net/manual/en/regexiterator.getflags.php
	 * @return int the special flags.
	 */
	public function getFlags () {}

	/**
	 * Sets the special flags.
	 * @link http://php.net/manual/en/regexiterator.setflags.php
	 * @param flags int <p>
	 * The special flags. It takes a bitmask of class constants.
	 * </p>
	 * <p>
	 * The available flags are listed below. The actual
	 * meanings of these flags are described in the
	 * predefined constants.
	 * <table>
	 * RegexIterator special flags
	 * <tr valign="top">
	 * <td>value</td>
	 * <td>constant</td>
	 * </tr>
	 * <tr valign="top">
	 * <td>1</td>
	 * <td>
	 * RegexIterator::USE_KEY
	 * </td>
	 * </tr>
	 * </table>
	 * </p>
	 * @return void 
	 */
	public function setFlags ($flags) {}

	/**
	 * Returns the regular expression flags.
	 * @link http://php.net/manual/en/regexiterator.getpregflags.php
	 * @return int the regular expression flags.
	 */
	public function getPregFlags () {}

	/**
	 * Sets the regular expression flags.
	 * @link http://php.net/manual/en/regexiterator.setpregflags.php
	 * @param preg_flags int <p>
	 * The regular expression flags. See RegexIterator::__construct
	 * for an overview of available flags.
	 * </p>
	 * @return void 
	 */
	public function setPregFlags ($preg_flags) {}

	/**
	 * Rewind the iterator
	 * @link http://php.net/manual/en/filteriterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/filteriterator.valid.php
	 * @return bool true if the current element is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get the current key
	 * @link http://php.net/manual/en/filteriterator.key.php
	 * @return mixed The current key.
	 */
	public function key () {}

	/**
	 * Get the current element value
	 * @link http://php.net/manual/en/filteriterator.current.php
	 * @return mixed The current element value.
	 */
	public function current () {}

	/**
	 * Move the iterator forward
	 * @link http://php.net/manual/en/filteriterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get the inner iterator
	 * @link http://php.net/manual/en/filteriterator.getinneriterator.php
	 * @return Iterator The inner iterator.
	 */
	public function getInnerIterator () {}

}

class EmptyIterator implements Iterator, Traversable {

	/**
	 * The rewind() method
	 * @link http://php.net/manual/en/emptyiterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * The valid() method
	 * @link http://php.net/manual/en/emptyiterator.valid.php
	 * @return void false
	 */
	public function valid () {}

	/**
	 * The key() method
	 * @link http://php.net/manual/en/emptyiterator.key.php
	 * @return void 
	 */
	public function key () {}

	/**
	 * The current() method
	 * @link http://php.net/manual/en/emptyiterator.current.php
	 * @return void 
	 */
	public function current () {}

	/**
	 * The next() method
	 * @link http://php.net/manual/en/emptyiterator.next.php
	 * @return void 
	 */
	public function next () {}

}

class ArrayObject implements IteratorAggregate, Traversable, ArrayAccess, Countable {
	const STD_PROP_LIST = 1;
	const ARRAY_AS_PROPS = 2;


	/**
	 * Construct a new array object
	 * @link http://php.net/manual/en/arrayobject.construct.php
	 * @param array
	 */
	public function __construct ($array) {}

	/**
	 * Returns whether the requested index exists
	 * @link http://php.net/manual/en/arrayobject.offsetexists.php
	 * @param index mixed <p>
	 * The index being checked.
	 * </p>
	 * @return bool true if the requested index exists, otherwise false
	 */
	public function offsetExists ($index) {}

	/**
	 * Returns the value at the specified index
	 * @link http://php.net/manual/en/arrayobject.offsetget.php
	 * @param index mixed <p>
	 * The index with the value.
	 * </p>
	 * @return mixed The value at the specified index or false.
	 */
	public function offsetGet ($index) {}

	/**
	 * Sets the value at the specified index to newval
	 * @link http://php.net/manual/en/arrayobject.offsetset.php
	 * @param index mixed <p>
	 * The index being set.
	 * </p>
	 * @param newval mixed <p>
	 * The new value for the index.
	 * </p>
	 * @return void 
	 */
	public function offsetSet ($index, $newval) {}

	/**
	 * Unsets the value at the specified index
	 * @link http://php.net/manual/en/arrayobject.offsetunset.php
	 * @param index mixed <p>
	 * The index being unset.
	 * </p>
	 * @return void 
	 */
	public function offsetUnset ($index) {}

	/**
	 * Appends the value
	 * @link http://php.net/manual/en/arrayobject.append.php
	 * @param value mixed <p>
	 * The value being appended.
	 * </p>
	 * @return void 
	 */
	public function append ($value) {}

	/**
	 * Creates a copy of the ArrayObject.
	 * @link http://php.net/manual/en/arrayobject.getarraycopy.php
	 * @return array a copy of the array. When the ArrayObject refers to an object
	 * an array of the public properties of that object will be returned.
	 */
	public function getArrayCopy () {}

	/**
	 * Get the number of public properties in the ArrayObject
	 * @link http://php.net/manual/en/arrayobject.count.php
	 * @return int The number of public properties in the ArrayObject.
	 * </p>
	 * <p>
	 * When the ArrayObject is constructed from an array all properties are public.
	 */
	public function count () {}

	/**
	 * Gets the behavior flags.
	 * @link http://php.net/manual/en/arrayobject.getflags.php
	 * @return int the behavior flags of the ArrayObject.
	 */
	public function getFlags () {}

	/**
	 * Sets the behavior flags.
	 * @link http://php.net/manual/en/arrayobject.setflags.php
	 * @param flags int <p>
	 * The new ArrayObject behavior.
	 * It takes on either a bitmask, or named constants. Using named
	 * constants is strongly encouraged to ensure compatibility for future
	 * versions.
	 * </p>
	 * <p>
	 * The available behavior flags are listed below. The actual
	 * meanings of these flags are described in the
	 * predefined constants.
	 * <table>
	 * ArrayObject behavior flags
	 * <tr valign="top">
	 * <td>value</td>
	 * <td>constant</td>
	 * </tr>
	 * <tr valign="top">
	 * <td>1</td>
	 * <td>
	 * ArrayObject::STD_PROP_LIST
	 * </td>
	 * </tr>
	 * <tr valign="top">
	 * <td>2</td>
	 * <td>
	 * ArrayObject::ARRAY_AS_PROPS
	 * </td>
	 * </tr>
	 * </table>
	 * </p>
	 * @return void 
	 */
	public function setFlags ($flags) {}

	/**
	 * Sort the entries by value
	 * @link http://php.net/manual/en/arrayobject.asort.php
	 * @return void 
	 */
	public function asort () {}

	/**
	 * Sort the entries by key
	 * @link http://php.net/manual/en/arrayobject.ksort.php
	 * @return void 
	 */
	public function ksort () {}

	/**
	 * Sort the entries with a user-defined comparison function and maintain key association
	 * @link http://php.net/manual/en/arrayobject.uasort.php
	 * @param cmp_function callback <p>
	 * Function cmp_function should accept two
	 * parameters which will be filled by pairs of entries.
	 * The comparison function must return an integer less than, equal
	 * to, or greater than zero if the first argument is considered to
	 * be respectively less than, equal to, or greater than the
	 * second.
	 * </p>
	 * @return void 
	 */
	public function uasort ($cmp_function) {}

	/**
	 * Sort the entries by keys using a user-defined comparison function
	 * @link http://php.net/manual/en/arrayobject.uksort.php
	 * @param cmp_function callback <p>
	 * The callback comparison function.
	 * </p>
	 * <p>
	 * Function cmp_function should accept two
	 * parameters which will be filled by pairs of entry keys.
	 * The comparison function must return an integer less than, equal
	 * to, or greater than zero if the first argument is considered to
	 * be respectively less than, equal to, or greater than the
	 * second.
	 * </p>
	 * @return void 
	 */
	public function uksort ($cmp_function) {}

	/**
	 * Sort entries using a "natural order" algorithm
	 * @link http://php.net/manual/en/arrayobject.natsort.php
	 * @return void 
	 */
	public function natsort () {}

	/**
	 * Sort an array using a case insensitive "natural order" algorithm
	 * @link http://php.net/manual/en/arrayobject.natcasesort.php
	 * @return void 
	 */
	public function natcasesort () {}

	/**
	 * Create a new iterator from an ArrayObject instance
	 * @link http://php.net/manual/en/arrayobject.getiterator.php
	 * @return ArrayIterator An iterator from an ArrayObject.
	 */
	public function getIterator () {}

	/**
	 * Exchange the array for another one.
	 * @link http://php.net/manual/en/arrayobject.exchangearray.php
	 * @param input mixed <p>
	 * The new array or object to exchange with the current array.
	 * </p>
	 * @return array the old array.
	 */
	public function exchangeArray ($input) {}

	/**
	 * Sets the iterator classname for the ArrayObject.
	 * @link http://php.net/manual/en/arrayobject.setiteratorclass.php
	 * @param iterator_class string <p>
	 * The classname of the array iterator to use when iterating over this object.
	 * </p>
	 * @return void 
	 */
	public function setIteratorClass ($iterator_class) {}

	/**
	 * Gets the iterator classname for the ArrayObject.
	 * @link http://php.net/manual/en/arrayobject.getiteratorclass.php
	 * @return int the iterator class name that is used to iterate over this object.
	 */
	public function getIteratorClass () {}

}

class ArrayIterator implements Iterator, Traversable, ArrayAccess, SeekableIterator, Countable {
	const STD_PROP_LIST = 1;
	const ARRAY_AS_PROPS = 2;


	/**
	 * Construct an ArrayIterator
	 * @link http://php.net/manual/en/arrayiterator.construct.php
	 * @param array
	 */
	public function __construct ($array) {}

	/**
	 * Check if offset exists
	 * @link http://php.net/manual/en/arrayiterator.offsetexists.php
	 * @param index string <p>
	 * The offset being checked.
	 * </p>
	 * @return void true if the offset exists, otherwise false
	 */
	public function offsetExists ($index) {}

	/**
	 * @param index
	 */
	public function offsetGet ($index) {}

	/**
	 * @param index
	 * @param newval
	 */
	public function offsetSet ($index, $newval) {}

	/**
	 * @param index
	 */
	public function offsetUnset ($index) {}

	/**
	 * Append an element
	 * @link http://php.net/manual/en/arrayiterator.append.php
	 * @param value string <p>
	 * The value to append.
	 * </p>
	 * @return void 
	 */
	public function append ($value) {}

	/**
	 * Get array copy
	 * @link http://php.net/manual/en/arrayiterator.getarraycopy.php
	 * @return void A copy of the array, or array of public properties
	 * if ArrayIterator refers to an object.
	 */
	public function getArrayCopy () {}

	/**
	 * Count elements
	 * @link http://php.net/manual/en/arrayiterator.count.php
	 * @return void The number.
	 */
	public function count () {}

	/**
	 * Get flags
	 * @link http://php.net/manual/en/arrayiterator.getflags.php
	 * @return void The current flags.
	 */
	public function getFlags () {}

	/**
	 * @param flags
	 */
	public function setFlags ($flags) {}

	/**
	 * Sort array by values
	 * @link http://php.net/manual/en/arrayiterator.asort.php
	 * @return void 
	 */
	public function asort () {}

	/**
	 * Sort array by keys
	 * @link http://php.net/manual/en/arrayiterator.ksort.php
	 * @return void 
	 */
	public function ksort () {}

	/**
	 * @param cmp_function
	 */
	public function uasort ($cmp_function) {}

	/**
	 * @param cmp_function
	 */
	public function uksort ($cmp_function) {}

	/**
	 * Sort an array naturally
	 * @link http://php.net/manual/en/arrayiterator.natsort.php
	 * @return void 
	 */
	public function natsort () {}

	/**
	 * Sort an array naturally, case insensitive
	 * @link http://php.net/manual/en/arrayiterator.natcasesort.php
	 * @return void 
	 */
	public function natcasesort () {}

	/**
	 * Rewind array back to the start
	 * @link http://php.net/manual/en/arrayiterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Return current array entry
	 * @link http://php.net/manual/en/arrayiterator.current.php
	 * @return mixed The current array entry.
	 */
	public function current () {}

	/**
	 * Return current array key
	 * @link http://php.net/manual/en/arrayiterator.key.php
	 * @return mixed The current array key.
	 */
	public function key () {}

	/**
	 * Move to next entry
	 * @link http://php.net/manual/en/arrayiterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Check whether array contains more entries
	 * @link http://php.net/manual/en/arrayiterator.valid.php
	 * @return bool 
	 */
	public function valid () {}

	/**
	 * Seek to position
	 * @link http://php.net/manual/en/arrayiterator.seek.php
	 * @param position int <p>
	 * The position to seek to.
	 * </p>
	 * @return void 
	 */
	public function seek ($position) {}

}

class RecursiveArrayIterator extends ArrayIterator implements SeekableIterator, ArrayAccess, Traversable, Iterator, RecursiveIterator {

	/**
	 * Returns whether current entry is an array or an object.
	 * @link http://php.net/manual/en/recursivearrayiterator.haschildren.php
	 * @return bool true if the current entry is an array or an object,
	 * otherwise false is returned.
	 */
	public function hasChildren () {}

	/**
	 * Returns an iterator for the current entry if it is an <type>array</type> or an <type>object</type>.
	 * @link http://php.net/manual/en/recursivearrayiterator.getchildren.php
	 * @return RecursiveArrayIterator An iterator for the current entry, if it is an array or object.
	 */
	public function getChildren () {}

	/**
	 * Construct an ArrayIterator
	 * @link http://php.net/manual/en/arrayiterator.construct.php
	 * @param array
	 */
	public function __construct ($array) {}

	/**
	 * Check if offset exists
	 * @link http://php.net/manual/en/arrayiterator.offsetexists.php
	 * @param index string <p>
	 * The offset being checked.
	 * </p>
	 * @return void true if the offset exists, otherwise false
	 */
	public function offsetExists ($index) {}

	/**
	 * @param index
	 */
	public function offsetGet ($index) {}

	/**
	 * @param index
	 * @param newval
	 */
	public function offsetSet ($index, $newval) {}

	/**
	 * @param index
	 */
	public function offsetUnset ($index) {}

	/**
	 * Append an element
	 * @link http://php.net/manual/en/arrayiterator.append.php
	 * @param value string <p>
	 * The value to append.
	 * </p>
	 * @return void 
	 */
	public function append ($value) {}

	/**
	 * Get array copy
	 * @link http://php.net/manual/en/arrayiterator.getarraycopy.php
	 * @return void A copy of the array, or array of public properties
	 * if ArrayIterator refers to an object.
	 */
	public function getArrayCopy () {}

	/**
	 * Count elements
	 * @link http://php.net/manual/en/arrayiterator.count.php
	 * @return void The number.
	 */
	public function count () {}

	/**
	 * Get flags
	 * @link http://php.net/manual/en/arrayiterator.getflags.php
	 * @return void The current flags.
	 */
	public function getFlags () {}

	/**
	 * @param flags
	 */
	public function setFlags ($flags) {}

	/**
	 * Sort array by values
	 * @link http://php.net/manual/en/arrayiterator.asort.php
	 * @return void 
	 */
	public function asort () {}

	/**
	 * Sort array by keys
	 * @link http://php.net/manual/en/arrayiterator.ksort.php
	 * @return void 
	 */
	public function ksort () {}

	/**
	 * @param cmp_function
	 */
	public function uasort ($cmp_function) {}

	/**
	 * @param cmp_function
	 */
	public function uksort ($cmp_function) {}

	/**
	 * Sort an array naturally
	 * @link http://php.net/manual/en/arrayiterator.natsort.php
	 * @return void 
	 */
	public function natsort () {}

	/**
	 * Sort an array naturally, case insensitive
	 * @link http://php.net/manual/en/arrayiterator.natcasesort.php
	 * @return void 
	 */
	public function natcasesort () {}

	/**
	 * Rewind array back to the start
	 * @link http://php.net/manual/en/arrayiterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Return current array entry
	 * @link http://php.net/manual/en/arrayiterator.current.php
	 * @return mixed The current array entry.
	 */
	public function current () {}

	/**
	 * Return current array key
	 * @link http://php.net/manual/en/arrayiterator.key.php
	 * @return mixed The current array key.
	 */
	public function key () {}

	/**
	 * Move to next entry
	 * @link http://php.net/manual/en/arrayiterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Check whether array contains more entries
	 * @link http://php.net/manual/en/arrayiterator.valid.php
	 * @return bool 
	 */
	public function valid () {}

	/**
	 * Seek to position
	 * @link http://php.net/manual/en/arrayiterator.seek.php
	 * @param position int <p>
	 * The position to seek to.
	 * </p>
	 * @return void 
	 */
	public function seek ($position) {}

}

class SplFileInfo  {

	/**
	 * Construct a new SplFileInfo object
	 * @link http://php.net/manual/en/splfileinfo.construct.php
	 * @param file_name
	 */
	public function __construct ($file_name) {}

	/**
	 * Gets the path without filename
	 * @link http://php.net/manual/en/splfileinfo.getpath.php
	 * @return string the path to the file.
	 */
	public function getPath () {}

	/**
	 * Gets the filename
	 * @link http://php.net/manual/en/splfileinfo.getfilename.php
	 * @return string The filename.
	 */
	public function getFilename () {}

	/**
	 * Gets the base name of the file
	 * @link http://php.net/manual/en/splfileinfo.getbasename.php
	 * @param suffix string[optional] <p>
	 * Optional suffix to omit from the base name returned.
	 * </p>
	 * @return string the base name without path information.
	 */
	public function getBasename ($suffix = null) {}

	/**
	 * Gets the path to the file
	 * @link http://php.net/manual/en/splfileinfo.getpathname.php
	 * @return string The path to the file.
	 */
	public function getPathname () {}

	/**
	 * Gets file permissions
	 * @link http://php.net/manual/en/splfileinfo.getperms.php
	 * @return int the file permissions.
	 */
	public function getPerms () {}

	/**
	 * Gets the inode for the file
	 * @link http://php.net/manual/en/splfileinfo.getinode.php
	 * @return int the inode number for the filesystem object.
	 */
	public function getInode () {}

	/**
	 * Gets file size
	 * @link http://php.net/manual/en/splfileinfo.getsize.php
	 * @return int The filesize in bytes.
	 */
	public function getSize () {}

	/**
	 * Gets the owner of the file
	 * @link http://php.net/manual/en/splfileinfo.getowner.php
	 * @return int The owner id in numerical format.
	 */
	public function getOwner () {}

	/**
	 * Gets the file group
	 * @link http://php.net/manual/en/splfileinfo.getgroup.php
	 * @return int The group id in numerical format.
	 */
	public function getGroup () {}

	/**
	 * Gets last access time of the file
	 * @link http://php.net/manual/en/splfileinfo.getatime.php
	 * @return int the time the file was last accessed.
	 */
	public function getATime () {}

	/**
	 * Gets the last modified time
	 * @link http://php.net/manual/en/splfileinfo.getmtime.php
	 * @return int the last modified time for the file, in a Unix timestamp.
	 */
	public function getMTime () {}

	/**
	 * Gets the inode change time
	 * @link http://php.net/manual/en/splfileinfo.getctime.php
	 * @return int The last change time, in a Unix timestamp.
	 */
	public function getCTime () {}

	/**
	 * Gets file type
	 * @link http://php.net/manual/en/splfileinfo.gettype.php
	 * @return string A string representing the type of the entry.
	 * May be one of file, link,
	 * or dir
	 */
	public function getType () {}

	/**
	 * Tells if the entry is writable
	 * @link http://php.net/manual/en/splfileinfo.iswritable.php
	 * @return bool true if writable, false otherwise;
	 */
	public function isWritable () {}

	/**
	 * Tells if file is readable
	 * @link http://php.net/manual/en/splfileinfo.isreadable.php
	 * @return bool true if readable, false otherwise.
	 */
	public function isReadable () {}

	/**
	 * Tells if the file is executable
	 * @link http://php.net/manual/en/splfileinfo.isexecutable.php
	 * @return bool true if executable, false otherwise.
	 */
	public function isExecutable () {}

	/**
	 * Tells if the object references a regular file
	 * @link http://php.net/manual/en/splfileinfo.isfile.php
	 * @return bool true if the file exists and is a regular file (not a link), false otherwise.
	 */
	public function isFile () {}

	/**
	 * Tells if the file is a directory
	 * @link http://php.net/manual/en/splfileinfo.isdir.php
	 * @return bool true if a directory, false otherwise.
	 */
	public function isDir () {}

	/**
	 * Tells if the file is a link
	 * @link http://php.net/manual/en/splfileinfo.islink.php
	 * @return bool true if the file is a link, false otherwise.
	 */
	public function isLink () {}

	/**
	 * Gets the target of a link
	 * @link http://php.net/manual/en/splfileinfo.getlinktarget.php
	 * @return string the target of the filesystem link.
	 */
	public function getLinkTarget () {}

	/**
	 * Gets absolute path to file
	 * @link http://php.net/manual/en/splfileinfo.getrealpath.php
	 * @return string the path to the file.
	 */
	public function getRealPath () {}

	/**
	 * Gets an SplFileInfo object for the file
	 * @link http://php.net/manual/en/splfileinfo.getfileinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use. 
	 * </p>
	 * @return SplFileInfo An SplFileInfo object created for the file.
	 */
	public function getFileInfo ($class_name = null) {}

	/**
	 * Gets an SplFileInfo object for the path
	 * @link http://php.net/manual/en/splfileinfo.getpathinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use.
	 * </p>
	 * @return SplFileInfo an SplFileInfo object for the parent path of the file.
	 */
	public function getPathInfo ($class_name = null) {}

	/**
	 * Gets an SplFileObject object for the file
	 * @link http://php.net/manual/en/splfileinfo.openfile.php
	 * @param open_mode string[optional] <p>
	 * The mode for opening the file. See the fopen
	 * documentation for descriptions of possible modes. The default 
	 * is read only.
	 * </p>
	 * @param use_include_path bool[optional] <p>
	 * &parameter.use_include_path;
	 * </p>
	 * @param context resource[optional] <p>
	 * &parameter.context;
	 * </p>
	 * @return SplFileObject The opened file as an SplFileObject object.
	 */
	public function openFile ($open_mode = null, $use_include_path = null, $context = null) {}

	/**
	 * Sets the class name used with <methodname>SplFileInfo::openFile</methodname>
	 * @link http://php.net/manual/en/splfileinfo.setfileclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use when openFile() is called. 
	 * </p>
	 * @return void 
	 */
	public function setFileClass ($class_name = null) {}

	/**
	 * Sets the class used with getFileInfo and getPathInfo
	 * @link http://php.net/manual/en/splfileinfo.setinfoclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use.
	 * </p>
	 * @return void 
	 */
	public function setInfoClass ($class_name = null) {}

	/**
	 * Returns the path to the file as a string
	 * @link http://php.net/manual/en/splfileinfo.tostring.php
	 * @return void the path to the file.
	 */
	public function __toString () {}

}

class DirectoryIterator extends SplFileInfo implements Iterator, Traversable {

	/**
	 * Constructs a new directory iterator from a path
	 * @link http://php.net/manual/en/directoryiterator.construct.php
	 * @param path
	 */
	public function __construct ($path) {}

	/**
	 * Return file name of current DirectoryIterator item.
	 * @link http://php.net/manual/en/directoryiterator.getfilename.php
	 * @return string the file name of the current DirectoryIterator item.
	 */
	public function getFilename () {}

	/**
	 * Get base name of current DirectoryIterator item.
	 * @link http://php.net/manual/en/directoryiterator.getbasename.php
	 * @param suffix string[optional] <p>
	 * If the base name ends in suffix, 
	 * this will be cut.
	 * </p>
	 * @return string The base name of the current DirectoryIterator item.
	 */
	public function getBasename ($suffix = null) {}

	/**
	 * Determine if current DirectoryIterator item is '.' or '..'
	 * @link http://php.net/manual/en/directoryiterator.isdot.php
	 * @return bool true if the entry is . or ..,
	 * otherwise false
	 */
	public function isDot () {}

	/**
	 * Rewind the DirectoryIterator back to the start
	 * @link http://php.net/manual/en/directoryiterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether current DirectoryIterator position is a valid file
	 * @link http://php.net/manual/en/directoryiterator.valid.php
	 * @return bool true if the position is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Return the key for the current DirectoryIterator item
	 * @link http://php.net/manual/en/directoryiterator.key.php
	 * @return string The key for the current DirectoryIterator item.
	 */
	public function key () {}

	/**
	 * Return the current DirectoryIterator item.
	 * @link http://php.net/manual/en/directoryiterator.current.php
	 * @return DirectoryIterator The current DirectoryIterator item.
	 */
	public function current () {}

	/**
	 * Move forward to next DirectoryIterator item
	 * @link http://php.net/manual/en/directoryiterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Get file name as a string
	 * @link http://php.net/manual/en/directoryiterator.tostring.php
	 * @return string the file name of the current DirectoryIterator item.
	 */
	public function __toString () {}

	/**
	 * Gets the path without filename
	 * @link http://php.net/manual/en/splfileinfo.getpath.php
	 * @return string the path to the file.
	 */
	public function getPath () {}

	/**
	 * Gets the path to the file
	 * @link http://php.net/manual/en/splfileinfo.getpathname.php
	 * @return string The path to the file.
	 */
	public function getPathname () {}

	/**
	 * Gets file permissions
	 * @link http://php.net/manual/en/splfileinfo.getperms.php
	 * @return int the file permissions.
	 */
	public function getPerms () {}

	/**
	 * Gets the inode for the file
	 * @link http://php.net/manual/en/splfileinfo.getinode.php
	 * @return int the inode number for the filesystem object.
	 */
	public function getInode () {}

	/**
	 * Gets file size
	 * @link http://php.net/manual/en/splfileinfo.getsize.php
	 * @return int The filesize in bytes.
	 */
	public function getSize () {}

	/**
	 * Gets the owner of the file
	 * @link http://php.net/manual/en/splfileinfo.getowner.php
	 * @return int The owner id in numerical format.
	 */
	public function getOwner () {}

	/**
	 * Gets the file group
	 * @link http://php.net/manual/en/splfileinfo.getgroup.php
	 * @return int The group id in numerical format.
	 */
	public function getGroup () {}

	/**
	 * Gets last access time of the file
	 * @link http://php.net/manual/en/splfileinfo.getatime.php
	 * @return int the time the file was last accessed.
	 */
	public function getATime () {}

	/**
	 * Gets the last modified time
	 * @link http://php.net/manual/en/splfileinfo.getmtime.php
	 * @return int the last modified time for the file, in a Unix timestamp.
	 */
	public function getMTime () {}

	/**
	 * Gets the inode change time
	 * @link http://php.net/manual/en/splfileinfo.getctime.php
	 * @return int The last change time, in a Unix timestamp.
	 */
	public function getCTime () {}

	/**
	 * Gets file type
	 * @link http://php.net/manual/en/splfileinfo.gettype.php
	 * @return string A string representing the type of the entry.
	 * May be one of file, link,
	 * or dir
	 */
	public function getType () {}

	/**
	 * Tells if the entry is writable
	 * @link http://php.net/manual/en/splfileinfo.iswritable.php
	 * @return bool true if writable, false otherwise;
	 */
	public function isWritable () {}

	/**
	 * Tells if file is readable
	 * @link http://php.net/manual/en/splfileinfo.isreadable.php
	 * @return bool true if readable, false otherwise.
	 */
	public function isReadable () {}

	/**
	 * Tells if the file is executable
	 * @link http://php.net/manual/en/splfileinfo.isexecutable.php
	 * @return bool true if executable, false otherwise.
	 */
	public function isExecutable () {}

	/**
	 * Tells if the object references a regular file
	 * @link http://php.net/manual/en/splfileinfo.isfile.php
	 * @return bool true if the file exists and is a regular file (not a link), false otherwise.
	 */
	public function isFile () {}

	/**
	 * Tells if the file is a directory
	 * @link http://php.net/manual/en/splfileinfo.isdir.php
	 * @return bool true if a directory, false otherwise.
	 */
	public function isDir () {}

	/**
	 * Tells if the file is a link
	 * @link http://php.net/manual/en/splfileinfo.islink.php
	 * @return bool true if the file is a link, false otherwise.
	 */
	public function isLink () {}

	/**
	 * Gets the target of a link
	 * @link http://php.net/manual/en/splfileinfo.getlinktarget.php
	 * @return string the target of the filesystem link.
	 */
	public function getLinkTarget () {}

	/**
	 * Gets absolute path to file
	 * @link http://php.net/manual/en/splfileinfo.getrealpath.php
	 * @return string the path to the file.
	 */
	public function getRealPath () {}

	/**
	 * Gets an SplFileInfo object for the file
	 * @link http://php.net/manual/en/splfileinfo.getfileinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use. 
	 * </p>
	 * @return SplFileInfo An SplFileInfo object created for the file.
	 */
	public function getFileInfo ($class_name = null) {}

	/**
	 * Gets an SplFileInfo object for the path
	 * @link http://php.net/manual/en/splfileinfo.getpathinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use.
	 * </p>
	 * @return SplFileInfo an SplFileInfo object for the parent path of the file.
	 */
	public function getPathInfo ($class_name = null) {}

	/**
	 * Gets an SplFileObject object for the file
	 * @link http://php.net/manual/en/splfileinfo.openfile.php
	 * @param open_mode string[optional] <p>
	 * The mode for opening the file. See the fopen
	 * documentation for descriptions of possible modes. The default 
	 * is read only.
	 * </p>
	 * @param use_include_path bool[optional] <p>
	 * &parameter.use_include_path;
	 * </p>
	 * @param context resource[optional] <p>
	 * &parameter.context;
	 * </p>
	 * @return SplFileObject The opened file as an SplFileObject object.
	 */
	public function openFile ($open_mode = null, $use_include_path = null, $context = null) {}

	/**
	 * Sets the class name used with <methodname>SplFileInfo::openFile</methodname>
	 * @link http://php.net/manual/en/splfileinfo.setfileclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use when openFile() is called. 
	 * </p>
	 * @return void 
	 */
	public function setFileClass ($class_name = null) {}

	/**
	 * Sets the class used with getFileInfo and getPathInfo
	 * @link http://php.net/manual/en/splfileinfo.setinfoclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use.
	 * </p>
	 * @return void 
	 */
	public function setInfoClass ($class_name = null) {}

}

class RecursiveDirectoryIterator extends DirectoryIterator implements Traversable, Iterator, RecursiveIterator {
	const CURRENT_MODE_MASK = 240;
	const CURRENT_AS_PATHNAME = 32;
	const CURRENT_AS_FILEINFO = 0;
	const CURRENT_AS_SELF = 16;
	const KEY_MODE_MASK = 3840;
	const KEY_AS_PATHNAME = 0;
	const KEY_AS_FILENAME = 256;
	const NEW_CURRENT_AND_KEY = 256;


	/**
	 * @param path
	 * @param flags[optional]
	 */
	public function __construct ($path, $flags) {}

	/**
	 * Rewind dir back to the start
	 * @link http://php.net/manual/en/recursivedirectoryiterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Move to next entry
	 * @link http://php.net/manual/en/recursivedirectoryiterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Return path and filename of current dir entry
	 * @link http://php.net/manual/en/recursivedirectoryiterator.key.php
	 * @return string The path and filename of the current dir entry.
	 */
	public function key () {}

	public function current () {}

	/**
	 * Returns whether current entry is a directory and not '.' or '..'
	 * @link http://php.net/manual/en/recursivedirectoryiterator.haschildren.php
	 * @param allow_links bool[optional] <p>
	 * </p>
	 * @return bool whether the current entry is a directory, but not '.' or '..'
	 */
	public function hasChildren ($allow_links = null) {}

	/**
	 * Returns an iterator for the current entry if it is a directory
	 * @link http://php.net/manual/en/recursivedirectoryiterator.getchildren.php
	 * @return object An iterator for the current entry, if it is a directory.
	 */
	public function getChildren () {}

	public function getSubPath () {}

	public function getSubPathname () {}

	/**
	 * Return file name of current DirectoryIterator item.
	 * @link http://php.net/manual/en/directoryiterator.getfilename.php
	 * @return string the file name of the current DirectoryIterator item.
	 */
	public function getFilename () {}

	/**
	 * Get base name of current DirectoryIterator item.
	 * @link http://php.net/manual/en/directoryiterator.getbasename.php
	 * @param suffix string[optional] <p>
	 * If the base name ends in suffix, 
	 * this will be cut.
	 * </p>
	 * @return string The base name of the current DirectoryIterator item.
	 */
	public function getBasename ($suffix = null) {}

	/**
	 * Determine if current DirectoryIterator item is '.' or '..'
	 * @link http://php.net/manual/en/directoryiterator.isdot.php
	 * @return bool true if the entry is . or ..,
	 * otherwise false
	 */
	public function isDot () {}

	/**
	 * Check whether current DirectoryIterator position is a valid file
	 * @link http://php.net/manual/en/directoryiterator.valid.php
	 * @return bool true if the position is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Get file name as a string
	 * @link http://php.net/manual/en/directoryiterator.tostring.php
	 * @return string the file name of the current DirectoryIterator item.
	 */
	public function __toString () {}

	/**
	 * Gets the path without filename
	 * @link http://php.net/manual/en/splfileinfo.getpath.php
	 * @return string the path to the file.
	 */
	public function getPath () {}

	/**
	 * Gets the path to the file
	 * @link http://php.net/manual/en/splfileinfo.getpathname.php
	 * @return string The path to the file.
	 */
	public function getPathname () {}

	/**
	 * Gets file permissions
	 * @link http://php.net/manual/en/splfileinfo.getperms.php
	 * @return int the file permissions.
	 */
	public function getPerms () {}

	/**
	 * Gets the inode for the file
	 * @link http://php.net/manual/en/splfileinfo.getinode.php
	 * @return int the inode number for the filesystem object.
	 */
	public function getInode () {}

	/**
	 * Gets file size
	 * @link http://php.net/manual/en/splfileinfo.getsize.php
	 * @return int The filesize in bytes.
	 */
	public function getSize () {}

	/**
	 * Gets the owner of the file
	 * @link http://php.net/manual/en/splfileinfo.getowner.php
	 * @return int The owner id in numerical format.
	 */
	public function getOwner () {}

	/**
	 * Gets the file group
	 * @link http://php.net/manual/en/splfileinfo.getgroup.php
	 * @return int The group id in numerical format.
	 */
	public function getGroup () {}

	/**
	 * Gets last access time of the file
	 * @link http://php.net/manual/en/splfileinfo.getatime.php
	 * @return int the time the file was last accessed.
	 */
	public function getATime () {}

	/**
	 * Gets the last modified time
	 * @link http://php.net/manual/en/splfileinfo.getmtime.php
	 * @return int the last modified time for the file, in a Unix timestamp.
	 */
	public function getMTime () {}

	/**
	 * Gets the inode change time
	 * @link http://php.net/manual/en/splfileinfo.getctime.php
	 * @return int The last change time, in a Unix timestamp.
	 */
	public function getCTime () {}

	/**
	 * Gets file type
	 * @link http://php.net/manual/en/splfileinfo.gettype.php
	 * @return string A string representing the type of the entry.
	 * May be one of file, link,
	 * or dir
	 */
	public function getType () {}

	/**
	 * Tells if the entry is writable
	 * @link http://php.net/manual/en/splfileinfo.iswritable.php
	 * @return bool true if writable, false otherwise;
	 */
	public function isWritable () {}

	/**
	 * Tells if file is readable
	 * @link http://php.net/manual/en/splfileinfo.isreadable.php
	 * @return bool true if readable, false otherwise.
	 */
	public function isReadable () {}

	/**
	 * Tells if the file is executable
	 * @link http://php.net/manual/en/splfileinfo.isexecutable.php
	 * @return bool true if executable, false otherwise.
	 */
	public function isExecutable () {}

	/**
	 * Tells if the object references a regular file
	 * @link http://php.net/manual/en/splfileinfo.isfile.php
	 * @return bool true if the file exists and is a regular file (not a link), false otherwise.
	 */
	public function isFile () {}

	/**
	 * Tells if the file is a directory
	 * @link http://php.net/manual/en/splfileinfo.isdir.php
	 * @return bool true if a directory, false otherwise.
	 */
	public function isDir () {}

	/**
	 * Tells if the file is a link
	 * @link http://php.net/manual/en/splfileinfo.islink.php
	 * @return bool true if the file is a link, false otherwise.
	 */
	public function isLink () {}

	/**
	 * Gets the target of a link
	 * @link http://php.net/manual/en/splfileinfo.getlinktarget.php
	 * @return string the target of the filesystem link.
	 */
	public function getLinkTarget () {}

	/**
	 * Gets absolute path to file
	 * @link http://php.net/manual/en/splfileinfo.getrealpath.php
	 * @return string the path to the file.
	 */
	public function getRealPath () {}

	/**
	 * Gets an SplFileInfo object for the file
	 * @link http://php.net/manual/en/splfileinfo.getfileinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use. 
	 * </p>
	 * @return SplFileInfo An SplFileInfo object created for the file.
	 */
	public function getFileInfo ($class_name = null) {}

	/**
	 * Gets an SplFileInfo object for the path
	 * @link http://php.net/manual/en/splfileinfo.getpathinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use.
	 * </p>
	 * @return SplFileInfo an SplFileInfo object for the parent path of the file.
	 */
	public function getPathInfo ($class_name = null) {}

	/**
	 * Gets an SplFileObject object for the file
	 * @link http://php.net/manual/en/splfileinfo.openfile.php
	 * @param open_mode string[optional] <p>
	 * The mode for opening the file. See the fopen
	 * documentation for descriptions of possible modes. The default 
	 * is read only.
	 * </p>
	 * @param use_include_path bool[optional] <p>
	 * &parameter.use_include_path;
	 * </p>
	 * @param context resource[optional] <p>
	 * &parameter.context;
	 * </p>
	 * @return SplFileObject The opened file as an SplFileObject object.
	 */
	public function openFile ($open_mode = null, $use_include_path = null, $context = null) {}

	/**
	 * Sets the class name used with <methodname>SplFileInfo::openFile</methodname>
	 * @link http://php.net/manual/en/splfileinfo.setfileclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use when openFile() is called. 
	 * </p>
	 * @return void 
	 */
	public function setFileClass ($class_name = null) {}

	/**
	 * Sets the class used with getFileInfo and getPathInfo
	 * @link http://php.net/manual/en/splfileinfo.setinfoclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use.
	 * </p>
	 * @return void 
	 */
	public function setInfoClass ($class_name = null) {}

}

class SplFileObject extends SplFileInfo implements RecursiveIterator, Traversable, Iterator, SeekableIterator {
	const DROP_NEW_LINE = 1;
	const READ_AHEAD = 2;
	const SKIP_EMPTY = 6;
	const READ_CSV = 8;


	/**
	 * Construct a new file object.
	 * @link http://php.net/manual/en/splfileobject.construct.php
	 * @param file_name
	 * @param open_mode[optional]
	 * @param use_include_path[optional]
	 * @param context[optional]
	 */
	public function __construct ($file_name, $open_mode, $use_include_path, $context) {}

	/**
	 * Rewind the file to the first line
	 * @link http://php.net/manual/en/splfileobject.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Reached end of file
	 * @link http://php.net/manual/en/splfileobject.eof.php
	 * @return boolean true if file is at EOF, false otherwise.
	 */
	public function eof () {}

	/**
	 * Not at EOF
	 * @link http://php.net/manual/en/splfileobject.valid.php
	 * @return bool true if not reached EOF, false otherwise.
	 */
	public function valid () {}

	/**
	 * Gets line from file
	 * @link http://php.net/manual/en/splfileobject.fgets.php
	 * @return string a string containing the next line from the file, or false on error.
	 */
	public function fgets () {}

	/**
	 * Gets line from file and parse as CSV fields
	 * @link http://php.net/manual/en/splfileobject.fgetcsv.php
	 * @param delimiter string[optional] <p>
	 * The field delimiter (one character only). Defaults as a comma or the value set using SplFileObject::setCsvControl.
	 * </p>
	 * @param enclosure string[optional] <p>
	 * The field enclosure character (one character only). Defaults as a double quotation mark or the value set using SplFileObject::setCsvControl.
	 * </p>
	 * @param escape string[optional] <p>
	 * The escape character (one character only). Defaults as a backslash (\) or the value set using SplFileObject::setCsvControl.
	 * </p>
	 * @return array an indexed array containing the fields read, or false on error.
	 * </p>
	 * <p>
	 * A blank line in a CSV file will be returned as an array
	 * comprising a single &null; field unless using SplFileInfo::SKIP_EMPTY | SplFileInfo::DROP_NEW_LINE, 
	 * in which case empty lines are skipped.
	 */
	public function fgetcsv ($delimiter = null, $enclosure = null, $escape = null) {}

	/**
	 * Set the delimiter and enclosure character for CSV
	 * @link http://php.net/manual/en/splfileobject.setcsvcontrol.php
	 * @param delimiter string[optional] <p>
	 * The field delimiter (one character only).
	 * </p>
	 * @param enclosure string[optional] <p>
	 * The field enclosure character (one character only).
	 * </p>
	 * @param escape string[optional] <p>
	 * The field escape character (one character only).
	 * </p>
	 * @return void 
	 */
	public function setCsvControl ($delimiter = null, $enclosure = null, $escape = null) {}

	/**
	 * Get the delimiter and enclosure character for CSV
	 * @link http://php.net/manual/en/splfileobject.getcsvcontrol.php
	 * @return array an indexed array containing the delimiter and enclosure character.
	 */
	public function getCsvControl () {}

	/**
	 * Portable file locking
	 * @link http://php.net/manual/en/splfileobject.flock.php
	 * @param operation int <p>
	 * operation is one of the following:
	 * LOCK_SH to acquire a shared lock (reader).
	 * @param wouldblock int[optional] <p>
	 * Set to true if the lock would block (EWOULDBLOCK errno condition).
	 * </p>
	 * @return bool Returns true on success or false on failure.
	 */
	public function flock ($operation, &$wouldblock = null) {}

	/**
	 * Flushes the output to the file
	 * @link http://php.net/manual/en/splfileobject.fflush.php
	 * @return boolean Returns true on success or false on failure.
	 */
	public function fflush () {}

	/**
	 * Return current file position
	 * @link http://php.net/manual/en/splfileobject.ftell.php
	 * @return int the position of the file pointer as an integer, or false on error.
	 */
	public function ftell () {}

	/**
	 * Seek to a position
	 * @link http://php.net/manual/en/splfileobject.fseek.php
	 * @param offset int <p>
	 * The offset. A negative value can be used to move backwards through the file which
	 * is useful when SEEK_END is used as the whence value.
	 * </p>
	 * @param whence int[optional] <p>
	 * whence values are:
	 * SEEK_SET - Set position equal to offset bytes.
	 * SEEK_CUR - Set position to current location plus offset.
	 * SEEK_END - Set position to end-of-file plus offset.
	 * </p>
	 * <p>
	 * If whence is not specified, it is assumed to be SEEK_SET.
	 * </p>
	 * @return int 0 if the seek was successful, -1 otherwise. Note that seeking
	 * past EOF is not considered an error.
	 */
	public function fseek ($offset, $whence = null) {}

	/**
	 * Gets character from file
	 * @link http://php.net/manual/en/splfileobject.fgetc.php
	 * @return string a string containing a single character read from the file or false on EOF.
	 */
	public function fgetc () {}

	/**
	 * Output all remaining data on a file pointer
	 * @link http://php.net/manual/en/splfileobject.fpassthru.php
	 * @return int the number of characters read from handle
	 * and passed through to the output.
	 */
	public function fpassthru () {}

	/**
	 * Gets line from file and strip HTML tags
	 * @link http://php.net/manual/en/splfileobject.fgetss.php
	 * @param allowable_tags string[optional] <p>
	 * You can use the optional third parameter to specify tags which should
	 * not be stripped.
	 * </p>
	 * @return string a string containing the next line of the file with HTML and PHP
	 * code stripped, or false on error.
	 */
	public function fgetss ($allowable_tags = null) {}

	/**
	 * Parses input from file according to a format
	 * @link http://php.net/manual/en/splfileobject.fscanf.php
	 * @param format string <p>
	 * The specified format as described in the sprintf documentation.
	 * </p>
	 * @param _ mixed[optional] 
	 * @return mixed If only two parameters were passed to this method, the values parsed will be
	 * returned as an array. Otherwise, if optional parameters are passed, the
	 * function will return the number of assigned values. The optional
	 * parameters must be passed by reference.
	 */
	public function fscanf ($format, &$_ = null) {}

	/**
	 * Write to file
	 * @link http://php.net/manual/en/splfileobject.fwrite.php
	 * @param str string <p>
	 * The string to be written to the file.
	 * </p>
	 * @param length int[optional] <p>
	 * If the length argument is given, writing will
	 * stop after length bytes have been written or
	 * the end of string is reached, whichever comes
	 * first.
	 * </p>
	 * @return int the number of bytes written, or &null; on error.
	 */
	public function fwrite ($str, $length = null) {}

	/**
	 * Gets information about the file
	 * @link http://php.net/manual/en/splfileobject.fstat.php
	 * @return array an array with the statistics of the file; the format of the array
	 * is described in detail on the stat manual page.
	 */
	public function fstat () {}

	/**
	 * Truncates the file to a given length
	 * @link http://php.net/manual/en/splfileobject.ftruncate.php
	 * @param size int <p>
	 * The size to truncate to.
	 * </p>
	 * <p>
	 * If size is larger than the file it is extended with null bytes.
	 * </p>
	 * <p>
	 * If size is smaller than the file, the extra data will be lost.
	 * </p>
	 * @return bool Returns true on success or false on failure.
	 */
	public function ftruncate ($size) {}

	/**
	 * Retrieve current line of file
	 * @link http://php.net/manual/en/splfileobject.current.php
	 * @return string|array Retrieves the current line of the file. If the SplFileObject::READ_CSV flag is set, this method returns an array containing the current line parsed as CSV data.
	 */
	public function current () {}

	/**
	 * Get line number
	 * @link http://php.net/manual/en/splfileobject.key.php
	 * @return int the current line number.
	 */
	public function key () {}

	/**
	 * Read next line
	 * @link http://php.net/manual/en/splfileobject.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Sets flags for the SplFileObject
	 * @link http://php.net/manual/en/splfileobject.setflags.php
	 * @param flags int <p>
	 * Bit mask of the flags to set. See 
	 * SplFileObject constants 
	 * for the available flags.
	 * </p>
	 * @return void 
	 */
	public function setFlags ($flags) {}

	/**
	 * Gets flags for the SplFileObject
	 * @link http://php.net/manual/en/splfileobject.getflags.php
	 * @return int an integer representing the flags.
	 */
	public function getFlags () {}

	/**
	 * Set maximum line length
	 * @link http://php.net/manual/en/splfileobject.setmaxlinelen.php
	 * @param max_len int <p>
	 * The maximum length of a line.
	 * </p>
	 * @return void 
	 */
	public function setMaxLineLen ($max_len) {}

	/**
	 * Get maximum line length
	 * @link http://php.net/manual/en/splfileobject.getmaxlinelen.php
	 * @return int the maximum line length if one has been set with
	 * SplFileObject::setMaxLineLen, default is 0.
	 */
	public function getMaxLineLen () {}

	/**
	 * SplFileObject does not have children
	 * @link http://php.net/manual/en/splfileobject.haschildren.php
	 * @return bool false
	 */
	public function hasChildren () {}

	/**
	 * No purpose
	 * @link http://php.net/manual/en/splfileobject.getchildren.php
	 * @return void 
	 */
	public function getChildren () {}

	/**
	 * Seek to specified line
	 * @link http://php.net/manual/en/splfileobject.seek.php
	 * @param line_pos int <p>
	 * The zero-based line number to seek to.
	 * </p>
	 * @return void 
	 */
	public function seek ($line_pos) {}

	/**
	 * Alias of <methodname>SplFileObject::fgets</methodname>
	 * @link http://php.net/manual/en/splfileobject.getcurrentline.php
	 */
	public function getCurrentLine () {}

	/**
	 * Alias of <methodname>SplFileObject::current</methodname>
	 * @link http://php.net/manual/en/splfileobject.tostring.php
	 */
	public function __toString () {}

	/**
	 * Gets the path without filename
	 * @link http://php.net/manual/en/splfileinfo.getpath.php
	 * @return string the path to the file.
	 */
	public function getPath () {}

	/**
	 * Gets the filename
	 * @link http://php.net/manual/en/splfileinfo.getfilename.php
	 * @return string The filename.
	 */
	public function getFilename () {}

	/**
	 * Gets the base name of the file
	 * @link http://php.net/manual/en/splfileinfo.getbasename.php
	 * @param suffix string[optional] <p>
	 * Optional suffix to omit from the base name returned.
	 * </p>
	 * @return string the base name without path information.
	 */
	public function getBasename ($suffix = null) {}

	/**
	 * Gets the path to the file
	 * @link http://php.net/manual/en/splfileinfo.getpathname.php
	 * @return string The path to the file.
	 */
	public function getPathname () {}

	/**
	 * Gets file permissions
	 * @link http://php.net/manual/en/splfileinfo.getperms.php
	 * @return int the file permissions.
	 */
	public function getPerms () {}

	/**
	 * Gets the inode for the file
	 * @link http://php.net/manual/en/splfileinfo.getinode.php
	 * @return int the inode number for the filesystem object.
	 */
	public function getInode () {}

	/**
	 * Gets file size
	 * @link http://php.net/manual/en/splfileinfo.getsize.php
	 * @return int The filesize in bytes.
	 */
	public function getSize () {}

	/**
	 * Gets the owner of the file
	 * @link http://php.net/manual/en/splfileinfo.getowner.php
	 * @return int The owner id in numerical format.
	 */
	public function getOwner () {}

	/**
	 * Gets the file group
	 * @link http://php.net/manual/en/splfileinfo.getgroup.php
	 * @return int The group id in numerical format.
	 */
	public function getGroup () {}

	/**
	 * Gets last access time of the file
	 * @link http://php.net/manual/en/splfileinfo.getatime.php
	 * @return int the time the file was last accessed.
	 */
	public function getATime () {}

	/**
	 * Gets the last modified time
	 * @link http://php.net/manual/en/splfileinfo.getmtime.php
	 * @return int the last modified time for the file, in a Unix timestamp.
	 */
	public function getMTime () {}

	/**
	 * Gets the inode change time
	 * @link http://php.net/manual/en/splfileinfo.getctime.php
	 * @return int The last change time, in a Unix timestamp.
	 */
	public function getCTime () {}

	/**
	 * Gets file type
	 * @link http://php.net/manual/en/splfileinfo.gettype.php
	 * @return string A string representing the type of the entry.
	 * May be one of file, link,
	 * or dir
	 */
	public function getType () {}

	/**
	 * Tells if the entry is writable
	 * @link http://php.net/manual/en/splfileinfo.iswritable.php
	 * @return bool true if writable, false otherwise;
	 */
	public function isWritable () {}

	/**
	 * Tells if file is readable
	 * @link http://php.net/manual/en/splfileinfo.isreadable.php
	 * @return bool true if readable, false otherwise.
	 */
	public function isReadable () {}

	/**
	 * Tells if the file is executable
	 * @link http://php.net/manual/en/splfileinfo.isexecutable.php
	 * @return bool true if executable, false otherwise.
	 */
	public function isExecutable () {}

	/**
	 * Tells if the object references a regular file
	 * @link http://php.net/manual/en/splfileinfo.isfile.php
	 * @return bool true if the file exists and is a regular file (not a link), false otherwise.
	 */
	public function isFile () {}

	/**
	 * Tells if the file is a directory
	 * @link http://php.net/manual/en/splfileinfo.isdir.php
	 * @return bool true if a directory, false otherwise.
	 */
	public function isDir () {}

	/**
	 * Tells if the file is a link
	 * @link http://php.net/manual/en/splfileinfo.islink.php
	 * @return bool true if the file is a link, false otherwise.
	 */
	public function isLink () {}

	/**
	 * Gets the target of a link
	 * @link http://php.net/manual/en/splfileinfo.getlinktarget.php
	 * @return string the target of the filesystem link.
	 */
	public function getLinkTarget () {}

	/**
	 * Gets absolute path to file
	 * @link http://php.net/manual/en/splfileinfo.getrealpath.php
	 * @return string the path to the file.
	 */
	public function getRealPath () {}

	/**
	 * Gets an SplFileInfo object for the file
	 * @link http://php.net/manual/en/splfileinfo.getfileinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use. 
	 * </p>
	 * @return SplFileInfo An SplFileInfo object created for the file.
	 */
	public function getFileInfo ($class_name = null) {}

	/**
	 * Gets an SplFileInfo object for the path
	 * @link http://php.net/manual/en/splfileinfo.getpathinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use.
	 * </p>
	 * @return SplFileInfo an SplFileInfo object for the parent path of the file.
	 */
	public function getPathInfo ($class_name = null) {}

	/**
	 * Gets an SplFileObject object for the file
	 * @link http://php.net/manual/en/splfileinfo.openfile.php
	 * @param open_mode string[optional] <p>
	 * The mode for opening the file. See the fopen
	 * documentation for descriptions of possible modes. The default 
	 * is read only.
	 * </p>
	 * @param use_include_path bool[optional] <p>
	 * &parameter.use_include_path;
	 * </p>
	 * @param context resource[optional] <p>
	 * &parameter.context;
	 * </p>
	 * @return SplFileObject The opened file as an SplFileObject object.
	 */
	public function openFile ($open_mode = null, $use_include_path = null, $context = null) {}

	/**
	 * Sets the class name used with <methodname>SplFileInfo::openFile</methodname>
	 * @link http://php.net/manual/en/splfileinfo.setfileclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use when openFile() is called. 
	 * </p>
	 * @return void 
	 */
	public function setFileClass ($class_name = null) {}

	/**
	 * Sets the class used with getFileInfo and getPathInfo
	 * @link http://php.net/manual/en/splfileinfo.setinfoclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use.
	 * </p>
	 * @return void 
	 */
	public function setInfoClass ($class_name = null) {}

}

class SplTempFileObject extends SplFileObject implements SeekableIterator, Iterator, Traversable, RecursiveIterator {
	const DROP_NEW_LINE = 1;
	const READ_AHEAD = 2;
	const SKIP_EMPTY = 6;
	const READ_CSV = 8;


	/**
	 * Construct a new temporary file object
	 * @link http://php.net/manual/en/spltempfileobject.construct.php
	 * @param max_memory[optional]
	 */
	public function __construct ($max_memory) {}

	/**
	 * Rewind the file to the first line
	 * @link http://php.net/manual/en/splfileobject.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Reached end of file
	 * @link http://php.net/manual/en/splfileobject.eof.php
	 * @return boolean true if file is at EOF, false otherwise.
	 */
	public function eof () {}

	/**
	 * Not at EOF
	 * @link http://php.net/manual/en/splfileobject.valid.php
	 * @return bool true if not reached EOF, false otherwise.
	 */
	public function valid () {}

	/**
	 * Gets line from file
	 * @link http://php.net/manual/en/splfileobject.fgets.php
	 * @return string a string containing the next line from the file, or false on error.
	 */
	public function fgets () {}

	/**
	 * Gets line from file and parse as CSV fields
	 * @link http://php.net/manual/en/splfileobject.fgetcsv.php
	 * @param delimiter string[optional] <p>
	 * The field delimiter (one character only). Defaults as a comma or the value set using SplFileObject::setCsvControl.
	 * </p>
	 * @param enclosure string[optional] <p>
	 * The field enclosure character (one character only). Defaults as a double quotation mark or the value set using SplFileObject::setCsvControl.
	 * </p>
	 * @param escape string[optional] <p>
	 * The escape character (one character only). Defaults as a backslash (\) or the value set using SplFileObject::setCsvControl.
	 * </p>
	 * @return array an indexed array containing the fields read, or false on error.
	 * </p>
	 * <p>
	 * A blank line in a CSV file will be returned as an array
	 * comprising a single &null; field unless using SplFileInfo::SKIP_EMPTY | SplFileInfo::DROP_NEW_LINE, 
	 * in which case empty lines are skipped.
	 */
	public function fgetcsv ($delimiter = null, $enclosure = null, $escape = null) {}

	/**
	 * Set the delimiter and enclosure character for CSV
	 * @link http://php.net/manual/en/splfileobject.setcsvcontrol.php
	 * @param delimiter string[optional] <p>
	 * The field delimiter (one character only).
	 * </p>
	 * @param enclosure string[optional] <p>
	 * The field enclosure character (one character only).
	 * </p>
	 * @param escape string[optional] <p>
	 * The field escape character (one character only).
	 * </p>
	 * @return void 
	 */
	public function setCsvControl ($delimiter = null, $enclosure = null, $escape = null) {}

	/**
	 * Get the delimiter and enclosure character for CSV
	 * @link http://php.net/manual/en/splfileobject.getcsvcontrol.php
	 * @return array an indexed array containing the delimiter and enclosure character.
	 */
	public function getCsvControl () {}

	/**
	 * Portable file locking
	 * @link http://php.net/manual/en/splfileobject.flock.php
	 * @param operation int <p>
	 * operation is one of the following:
	 * LOCK_SH to acquire a shared lock (reader).
	 * @param wouldblock int[optional] <p>
	 * Set to true if the lock would block (EWOULDBLOCK errno condition).
	 * </p>
	 * @return bool Returns true on success or false on failure.
	 */
	public function flock ($operation, &$wouldblock = null) {}

	/**
	 * Flushes the output to the file
	 * @link http://php.net/manual/en/splfileobject.fflush.php
	 * @return boolean Returns true on success or false on failure.
	 */
	public function fflush () {}

	/**
	 * Return current file position
	 * @link http://php.net/manual/en/splfileobject.ftell.php
	 * @return int the position of the file pointer as an integer, or false on error.
	 */
	public function ftell () {}

	/**
	 * Seek to a position
	 * @link http://php.net/manual/en/splfileobject.fseek.php
	 * @param offset int <p>
	 * The offset. A negative value can be used to move backwards through the file which
	 * is useful when SEEK_END is used as the whence value.
	 * </p>
	 * @param whence int[optional] <p>
	 * whence values are:
	 * SEEK_SET - Set position equal to offset bytes.
	 * SEEK_CUR - Set position to current location plus offset.
	 * SEEK_END - Set position to end-of-file plus offset.
	 * </p>
	 * <p>
	 * If whence is not specified, it is assumed to be SEEK_SET.
	 * </p>
	 * @return int 0 if the seek was successful, -1 otherwise. Note that seeking
	 * past EOF is not considered an error.
	 */
	public function fseek ($offset, $whence = null) {}

	/**
	 * Gets character from file
	 * @link http://php.net/manual/en/splfileobject.fgetc.php
	 * @return string a string containing a single character read from the file or false on EOF.
	 */
	public function fgetc () {}

	/**
	 * Output all remaining data on a file pointer
	 * @link http://php.net/manual/en/splfileobject.fpassthru.php
	 * @return int the number of characters read from handle
	 * and passed through to the output.
	 */
	public function fpassthru () {}

	/**
	 * Gets line from file and strip HTML tags
	 * @link http://php.net/manual/en/splfileobject.fgetss.php
	 * @param allowable_tags string[optional] <p>
	 * You can use the optional third parameter to specify tags which should
	 * not be stripped.
	 * </p>
	 * @return string a string containing the next line of the file with HTML and PHP
	 * code stripped, or false on error.
	 */
	public function fgetss ($allowable_tags = null) {}

	/**
	 * Parses input from file according to a format
	 * @link http://php.net/manual/en/splfileobject.fscanf.php
	 * @param format string <p>
	 * The specified format as described in the sprintf documentation.
	 * </p>
	 * @param _ mixed[optional] 
	 * @return mixed If only two parameters were passed to this method, the values parsed will be
	 * returned as an array. Otherwise, if optional parameters are passed, the
	 * function will return the number of assigned values. The optional
	 * parameters must be passed by reference.
	 */
	public function fscanf ($format, &$_ = null) {}

	/**
	 * Write to file
	 * @link http://php.net/manual/en/splfileobject.fwrite.php
	 * @param str string <p>
	 * The string to be written to the file.
	 * </p>
	 * @param length int[optional] <p>
	 * If the length argument is given, writing will
	 * stop after length bytes have been written or
	 * the end of string is reached, whichever comes
	 * first.
	 * </p>
	 * @return int the number of bytes written, or &null; on error.
	 */
	public function fwrite ($str, $length = null) {}

	/**
	 * Gets information about the file
	 * @link http://php.net/manual/en/splfileobject.fstat.php
	 * @return array an array with the statistics of the file; the format of the array
	 * is described in detail on the stat manual page.
	 */
	public function fstat () {}

	/**
	 * Truncates the file to a given length
	 * @link http://php.net/manual/en/splfileobject.ftruncate.php
	 * @param size int <p>
	 * The size to truncate to.
	 * </p>
	 * <p>
	 * If size is larger than the file it is extended with null bytes.
	 * </p>
	 * <p>
	 * If size is smaller than the file, the extra data will be lost.
	 * </p>
	 * @return bool Returns true on success or false on failure.
	 */
	public function ftruncate ($size) {}

	/**
	 * Retrieve current line of file
	 * @link http://php.net/manual/en/splfileobject.current.php
	 * @return string|array Retrieves the current line of the file. If the SplFileObject::READ_CSV flag is set, this method returns an array containing the current line parsed as CSV data.
	 */
	public function current () {}

	/**
	 * Get line number
	 * @link http://php.net/manual/en/splfileobject.key.php
	 * @return int the current line number.
	 */
	public function key () {}

	/**
	 * Read next line
	 * @link http://php.net/manual/en/splfileobject.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Sets flags for the SplFileObject
	 * @link http://php.net/manual/en/splfileobject.setflags.php
	 * @param flags int <p>
	 * Bit mask of the flags to set. See 
	 * SplFileObject constants 
	 * for the available flags.
	 * </p>
	 * @return void 
	 */
	public function setFlags ($flags) {}

	/**
	 * Gets flags for the SplFileObject
	 * @link http://php.net/manual/en/splfileobject.getflags.php
	 * @return int an integer representing the flags.
	 */
	public function getFlags () {}

	/**
	 * Set maximum line length
	 * @link http://php.net/manual/en/splfileobject.setmaxlinelen.php
	 * @param max_len int <p>
	 * The maximum length of a line.
	 * </p>
	 * @return void 
	 */
	public function setMaxLineLen ($max_len) {}

	/**
	 * Get maximum line length
	 * @link http://php.net/manual/en/splfileobject.getmaxlinelen.php
	 * @return int the maximum line length if one has been set with
	 * SplFileObject::setMaxLineLen, default is 0.
	 */
	public function getMaxLineLen () {}

	/**
	 * SplFileObject does not have children
	 * @link http://php.net/manual/en/splfileobject.haschildren.php
	 * @return bool false
	 */
	public function hasChildren () {}

	/**
	 * No purpose
	 * @link http://php.net/manual/en/splfileobject.getchildren.php
	 * @return void 
	 */
	public function getChildren () {}

	/**
	 * Seek to specified line
	 * @link http://php.net/manual/en/splfileobject.seek.php
	 * @param line_pos int <p>
	 * The zero-based line number to seek to.
	 * </p>
	 * @return void 
	 */
	public function seek ($line_pos) {}

	/**
	 * Alias of <methodname>SplFileObject::fgets</methodname>
	 * @link http://php.net/manual/en/splfileobject.getcurrentline.php
	 */
	public function getCurrentLine () {}

	/**
	 * Alias of <methodname>SplFileObject::current</methodname>
	 * @link http://php.net/manual/en/splfileobject.tostring.php
	 */
	public function __toString () {}

	/**
	 * Gets the path without filename
	 * @link http://php.net/manual/en/splfileinfo.getpath.php
	 * @return string the path to the file.
	 */
	public function getPath () {}

	/**
	 * Gets the filename
	 * @link http://php.net/manual/en/splfileinfo.getfilename.php
	 * @return string The filename.
	 */
	public function getFilename () {}

	/**
	 * Gets the base name of the file
	 * @link http://php.net/manual/en/splfileinfo.getbasename.php
	 * @param suffix string[optional] <p>
	 * Optional suffix to omit from the base name returned.
	 * </p>
	 * @return string the base name without path information.
	 */
	public function getBasename ($suffix = null) {}

	/**
	 * Gets the path to the file
	 * @link http://php.net/manual/en/splfileinfo.getpathname.php
	 * @return string The path to the file.
	 */
	public function getPathname () {}

	/**
	 * Gets file permissions
	 * @link http://php.net/manual/en/splfileinfo.getperms.php
	 * @return int the file permissions.
	 */
	public function getPerms () {}

	/**
	 * Gets the inode for the file
	 * @link http://php.net/manual/en/splfileinfo.getinode.php
	 * @return int the inode number for the filesystem object.
	 */
	public function getInode () {}

	/**
	 * Gets file size
	 * @link http://php.net/manual/en/splfileinfo.getsize.php
	 * @return int The filesize in bytes.
	 */
	public function getSize () {}

	/**
	 * Gets the owner of the file
	 * @link http://php.net/manual/en/splfileinfo.getowner.php
	 * @return int The owner id in numerical format.
	 */
	public function getOwner () {}

	/**
	 * Gets the file group
	 * @link http://php.net/manual/en/splfileinfo.getgroup.php
	 * @return int The group id in numerical format.
	 */
	public function getGroup () {}

	/**
	 * Gets last access time of the file
	 * @link http://php.net/manual/en/splfileinfo.getatime.php
	 * @return int the time the file was last accessed.
	 */
	public function getATime () {}

	/**
	 * Gets the last modified time
	 * @link http://php.net/manual/en/splfileinfo.getmtime.php
	 * @return int the last modified time for the file, in a Unix timestamp.
	 */
	public function getMTime () {}

	/**
	 * Gets the inode change time
	 * @link http://php.net/manual/en/splfileinfo.getctime.php
	 * @return int The last change time, in a Unix timestamp.
	 */
	public function getCTime () {}

	/**
	 * Gets file type
	 * @link http://php.net/manual/en/splfileinfo.gettype.php
	 * @return string A string representing the type of the entry.
	 * May be one of file, link,
	 * or dir
	 */
	public function getType () {}

	/**
	 * Tells if the entry is writable
	 * @link http://php.net/manual/en/splfileinfo.iswritable.php
	 * @return bool true if writable, false otherwise;
	 */
	public function isWritable () {}

	/**
	 * Tells if file is readable
	 * @link http://php.net/manual/en/splfileinfo.isreadable.php
	 * @return bool true if readable, false otherwise.
	 */
	public function isReadable () {}

	/**
	 * Tells if the file is executable
	 * @link http://php.net/manual/en/splfileinfo.isexecutable.php
	 * @return bool true if executable, false otherwise.
	 */
	public function isExecutable () {}

	/**
	 * Tells if the object references a regular file
	 * @link http://php.net/manual/en/splfileinfo.isfile.php
	 * @return bool true if the file exists and is a regular file (not a link), false otherwise.
	 */
	public function isFile () {}

	/**
	 * Tells if the file is a directory
	 * @link http://php.net/manual/en/splfileinfo.isdir.php
	 * @return bool true if a directory, false otherwise.
	 */
	public function isDir () {}

	/**
	 * Tells if the file is a link
	 * @link http://php.net/manual/en/splfileinfo.islink.php
	 * @return bool true if the file is a link, false otherwise.
	 */
	public function isLink () {}

	/**
	 * Gets the target of a link
	 * @link http://php.net/manual/en/splfileinfo.getlinktarget.php
	 * @return string the target of the filesystem link.
	 */
	public function getLinkTarget () {}

	/**
	 * Gets absolute path to file
	 * @link http://php.net/manual/en/splfileinfo.getrealpath.php
	 * @return string the path to the file.
	 */
	public function getRealPath () {}

	/**
	 * Gets an SplFileInfo object for the file
	 * @link http://php.net/manual/en/splfileinfo.getfileinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use. 
	 * </p>
	 * @return SplFileInfo An SplFileInfo object created for the file.
	 */
	public function getFileInfo ($class_name = null) {}

	/**
	 * Gets an SplFileInfo object for the path
	 * @link http://php.net/manual/en/splfileinfo.getpathinfo.php
	 * @param class_name string[optional] <p>
	 * Name of an SplFileInfo derived class to use.
	 * </p>
	 * @return SplFileInfo an SplFileInfo object for the parent path of the file.
	 */
	public function getPathInfo ($class_name = null) {}

	/**
	 * Gets an SplFileObject object for the file
	 * @link http://php.net/manual/en/splfileinfo.openfile.php
	 * @param open_mode string[optional] <p>
	 * The mode for opening the file. See the fopen
	 * documentation for descriptions of possible modes. The default 
	 * is read only.
	 * </p>
	 * @param use_include_path bool[optional] <p>
	 * &parameter.use_include_path;
	 * </p>
	 * @param context resource[optional] <p>
	 * &parameter.context;
	 * </p>
	 * @return SplFileObject The opened file as an SplFileObject object.
	 */
	public function openFile ($open_mode = null, $use_include_path = null, $context = null) {}

	/**
	 * Sets the class name used with <methodname>SplFileInfo::openFile</methodname>
	 * @link http://php.net/manual/en/splfileinfo.setfileclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use when openFile() is called. 
	 * </p>
	 * @return void 
	 */
	public function setFileClass ($class_name = null) {}

	/**
	 * Sets the class used with getFileInfo and getPathInfo
	 * @link http://php.net/manual/en/splfileinfo.setinfoclass.php
	 * @param class_name string[optional] <p>
	 * The class name to use.
	 * </p>
	 * @return void 
	 */
	public function setInfoClass ($class_name = null) {}

}

class SimpleXMLIterator extends SimpleXMLElement implements Traversable, RecursiveIterator, Iterator, Countable {

	/**
	 * Rewind to the first element
	 * @link http://php.net/manual/en/simplexmliterator.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Check whether the current element is valid
	 * @link http://php.net/manual/en/simplexmliterator.valid.php
	 * @return bool true if the current element is valid, otherwise false
	 */
	public function valid () {}

	/**
	 * Returns the current element
	 * @link http://php.net/manual/en/simplexmliterator.current.php
	 * @return mixed the current element as a SimpleXMLIterator object or &null; on failure.
	 */
	public function current () {}

	/**
	 * Return current key
	 * @link http://php.net/manual/en/simplexmliterator.key.php
	 * @return mixed the XML tag name of the element referenced by the current SimpleXMLIterator object or false
	 */
	public function key () {}

	/**
	 * Move to next element
	 * @link http://php.net/manual/en/simplexmliterator.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Checks whether the current element has sub elements.
	 * @link http://php.net/manual/en/simplexmliterator.haschildren.php
	 * @return bool true if the current element has sub-elements, otherwise false
	 */
	public function hasChildren () {}

	/**
	 * Returns the sub-elements of the current element
	 * @link http://php.net/manual/en/simplexmliterator.getchildren.php
	 * @return object a SimpleXMLIterator object containing
	 * the sub-elements of the current element.
	 */
	public function getChildren () {}

	public function count () {}

	/**
	 * Creates a new SimpleXMLElement object
	 * @link http://php.net/manual/en/simplexmlelement.construct.php
	 */
	final public function __construct () {}

	/**
	 * Return a well-formed XML string based on SimpleXML element
	 * @link http://php.net/manual/en/simplexmlelement.asXML.php
	 * @param filename string[optional] <p>
	 * If specified, the function writes the data to the file rather than
	 * returning it.
	 * </p>
	 * @return mixed If the filename isn't specified, this function
	 * returns a string on success and false on error. If the
	 * parameter is specified, it returns true if the file was written
	 * successfully and false otherwise.
	 */
	public function asXML ($filename = null) {}

	public function saveXML () {}

	/**
	 * Runs XPath query on XML data
	 * @link http://php.net/manual/en/simplexmlelement.xpath.php
	 * @param path string <p>
	 * An XPath path
	 * </p>
	 * @return array an array of SimpleXMLElement objects or false in
	 * case of an error.
	 */
	public function xpath ($path) {}

	/**
	 * Creates a prefix/ns context for the next XPath query
	 * @link http://php.net/manual/en/simplexmlelement.registerXPathNamespace.php
	 * @param prefix string <p>
	 * The namespace prefix to use in the XPath query for the namespace given in 
	 * ns.
	 * </p>
	 * @param ns string <p>
	 * The namespace to use for the XPath query. This must match a namespace in
	 * use by the XML document or the XPath query using 
	 * prefix will not return any results.
	 * </p>
	 * @return bool Returns true on success or false on failure.
	 */
	public function registerXPathNamespace ($prefix, $ns) {}

	/**
	 * Identifies an element's attributes
	 * @link http://php.net/manual/en/simplexmlelement.attributes.php
	 * @param ns string[optional] <p>
	 * An optional namespace for the retrieved attributes
	 * </p>
	 * @param is_prefix bool[optional] <p>
	 * Default to false
	 * </p>
	 * @return SimpleXMLElement 
	 */
	public function attributes ($ns = null, $is_prefix = null) {}

	/**
	 * Finds children of given node
	 * @link http://php.net/manual/en/simplexmlelement.children.php
	 * @param ns string[optional] <p>
	 * </p>
	 * @param is_prefix bool[optional] <p>
	 * Default to false
	 * </p>
	 * @return SimpleXMLElement 
	 */
	public function children ($ns = null, $is_prefix = null) {}

	/**
	 * Returns namespaces used in document
	 * @link http://php.net/manual/en/simplexmlelement.getNamespaces.php
	 * @param recursive bool[optional] <p>
	 * If specified, returns all namespaces used in parent and child nodes. 
	 * Otherwise, returns only namespaces used in root node.
	 * </p>
	 * @return array The getNamespaces method returns an array of 
	 * namespace names with their associated URIs.
	 */
	public function getNamespaces ($recursive = null) {}

	/**
	 * Returns namespaces declared in document
	 * @link http://php.net/manual/en/simplexmlelement.getDocNamespaces.php
	 * @param recursive bool[optional] <p>
	 * If specified, returns all namespaces declared in parent and child nodes. 
	 * Otherwise, returns only namespaces declared in root node.
	 * </p>
	 * @return array The getDocNamespaces method returns an array 
	 * of namespace names with their associated URIs.
	 */
	public function getDocNamespaces ($recursive = null) {}

	/**
	 * Gets the name of the XML element
	 * @link http://php.net/manual/en/simplexmlelement.getName.php
	 * @return string The getName method returns as a string the 
	 * name of the XML tag referenced by the SimpleXMLElement object.
	 */
	public function getName () {}

	/**
	 * Adds a child element to the XML node
	 * @link http://php.net/manual/en/simplexmlelement.addChild.php
	 * @param name string <p>
	 * The name of the child element to add.
	 * </p>
	 * @param value string[optional] <p>
	 * If specified, the value of the child element.
	 * </p>
	 * @param namespace string[optional] <p>
	 * If specified, the namespace to which the child element belongs.
	 * </p>
	 * @return SimpleXMLElement The addChild method returns a SimpleXMLElement
	 * object representing the child added to the XML node.
	 */
	public function addChild ($name, $value = null, $namespace = null) {}

	/**
	 * Adds an attribute to the SimpleXML element
	 * @link http://php.net/manual/en/simplexmlelement.addAttribute.php
	 * @param name string <p>
	 * The name of the attribute to add.
	 * </p>
	 * @param value string <p>
	 * The value of the attribute.
	 * </p>
	 * @param namespace string[optional] <p>
	 * If specified, the namespace to which the attribute belongs.
	 * </p>
	 * @return void 
	 */
	public function addAttribute ($name, $value, $namespace = null) {}

}

class LogicException extends Exception  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class BadFunctionCallException extends LogicException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class BadMethodCallException extends BadFunctionCallException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class DomainException extends LogicException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class InvalidArgumentException extends LogicException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class LengthException extends LogicException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class OutOfRangeException extends LogicException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class RuntimeException extends Exception  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class OutOfBoundsException extends RuntimeException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class OverflowException extends RuntimeException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class RangeException extends RuntimeException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class UnderflowException extends RuntimeException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

class UnexpectedValueException extends RuntimeException  {
	protected $message;
	protected $code;
	protected $file;
	protected $line;


	final private function __clone () {}

	/**
	 * @param message[optional]
	 * @param code[optional]
	 */
	public function __construct ($message, $code) {}

	final public function getMessage () {}

	final public function getCode () {}

	final public function getFile () {}

	final public function getLine () {}

	final public function getTrace () {}

	final public function getTraceAsString () {}

	public function __toString () {}

}

interface SplObserver  {

	/**
	 * @param SplSubject SplSubject
	 */
	abstract public function update (SplSubject $SplSubject) {}

}

interface SplSubject  {

	/**
	 * @param SplObserver SplObserver
	 */
	abstract public function attach (SplObserver $SplObserver) {}

	/**
	 * @param SplObserver SplObserver
	 */
	abstract public function detach (SplObserver $SplObserver) {}

	abstract public function notify () {}

}

class SplObjectStorage implements Countable, Iterator, Traversable, Serializable {

	/**
	 * Adds an object in the storage
	 * @link http://php.net/manual/en/splobjectstorage.attach.php
	 * @param object object <p>
	 * The object to add.
	 * </p>
	 * @param data mixed[optional] <p>
	 * The data to associate with the object. Defaults to &null;.
	 * </p>
	 * @return void 
	 */
	public function attach ($object, $data = null) {}

	/**
	 * Removes an <type>object</type> from the storage
	 * @link http://php.net/manual/en/splobjectstorage.detach.php
	 * @param object object <p>
	 * The object to remove.
	 * </p>
	 * @return void 
	 */
	public function detach ($object) {}

	/**
	 * Checks if the storage contains a specific object
	 * @link http://php.net/manual/en/splobjectstorage.contains.php
	 * @param object object <p>
	 * The object to look for.
	 * </p>
	 * @return boolean true if the object is in the storage, false otherwise.
	 */
	public function contains ($object) {}

	/**
	 * Returns the number of objects in the storage
	 * @link http://php.net/manual/en/splobjectstorage.count.php
	 * @return int The number of objects in the storage.
	 */
	public function count () {}

	/**
	 * Rewind the iterator to the first storage element
	 * @link http://php.net/manual/en/splobjectstorage.rewind.php
	 * @return void 
	 */
	public function rewind () {}

	/**
	 * Returns if the current iterator entry is valid
	 * @link http://php.net/manual/en/splobjectstorage.valid.php
	 * @return boolean true if the iterator entry is valid, false otherwise.
	 */
	public function valid () {}

	/**
	 * Returns the index at which the iterator currently is
	 * @link http://php.net/manual/en/splobjectstorage.key.php
	 * @return int The index corresponding to the position of the iterator.
	 */
	public function key () {}

	/**
	 * Returns the current storage entry
	 * @link http://php.net/manual/en/splobjectstorage.current.php
	 * @return object The object at the current iterator position.
	 */
	public function current () {}

	/**
	 * Move to the next entry
	 * @link http://php.net/manual/en/splobjectstorage.next.php
	 * @return void 
	 */
	public function next () {}

	/**
	 * Unserializes a storage from its string representation
	 * @link http://php.net/manual/en/splobjectstorage.unserialize.php
	 * @param serialized string <p>
	 * The serialized representation of a storage.
	 * </p>
	 * @return void 
	 */
	public function unserialize ($serialized) {}

	/**
	 * Serializes the storage
	 * @link http://php.net/manual/en/splobjectstorage.serialize.php
	 * @return string A string representing the storage.
	 */
	public function serialize () {}

}

/**
 * Return available SPL classes
 * @link http://php.net/manual/en/function.spl-classes.php
 * @return array 
 */
function spl_classes () {}

/**
 * Default implementation for __autoload()
 * @link http://php.net/manual/en/function.spl-autoload.php
 * @param class_name string <p>
 * </p>
 * @param file_extensions string[optional] <p>
 * By default it checks all include paths to
 * contain filenames built up by the lowercase class name appended by the
 * filename extensions .inc and .php. 
 * </p>
 * @return void 
 */
function spl_autoload ($class_name, $file_extensions = null) {}

/**
 * Register and return default file extensions for spl_autoload
 * @link http://php.net/manual/en/function.spl-autoload-extensions.php
 * @param file_extensions string[optional] <p>
 * When calling without an argument, it simply returns the current list
 * of extensions each separated by comma. To modify the list of file
 * extensions, simply invoke the functions with the new list of file
 * extensions to use in a single string with each extensions separated
 * by comma.
 * </p>
 * @return string A comma delimited list of default file extensions for
 * spl_autoload.
 */
function spl_autoload_extensions ($file_extensions = null) {}

/**
 * Register given function as __autoload() implementation
 * @link http://php.net/manual/en/function.spl-autoload-register.php
 * @param autoload_function callback[optional] <p>
 * The autoload function being registered.
 * If no parameter is provided, then the default implementation of
 * spl_autoload will be registered. 
 * </p>
 * @return bool Returns true on success or false on failure.
 */
function spl_autoload_register ($autoload_function = null) {}

/**
 * Unregister given function as __autoload() implementation
 * @link http://php.net/manual/en/function.spl-autoload-unregister.php
 * @param autoload_function mixed <p>
 * The autoload function being unregistered.
 * </p>
 * @return bool Returns true on success or false on failure.
 */
function spl_autoload_unregister ($autoload_function) {}

/**
 * Return all registered __autoload() functions
 * @link http://php.net/manual/en/function.spl-autoload-functions.php
 * @return array An array of all registered __autoload functions.
 * If the autoload stack is not activated then the return value is false.
 * If no function is registered the return value will be an empty array.
 */
function spl_autoload_functions () {}

/**
 * Try all registered __autoload() function to load the requested class
 * @link http://php.net/manual/en/function.spl-autoload-call.php
 * @param class_name string <p>
 * The class name being searched.
 * </p>
 * @return void 
 */
function spl_autoload_call ($class_name) {}

/**
 * Return the parent classes of the given class
 * @link http://php.net/manual/en/function.class-parents.php
 * @param class mixed <p>
 * An object (class instance) or a string (class name).
 * </p>
 * @param autoload bool[optional] <p>
 * Whether to allow this function to load the class automatically through
 * the __autoload magic
 * method. Defaults to true.
 * </p>
 * @return array An array on success, or false on error.
 */
function class_parents ($class, $autoload = null) {}

/**
 * Return the interfaces which are implemented by the given class
 * @link http://php.net/manual/en/function.class-implements.php
 * @param class mixed <p>
 * An object (class instance) or a string (class name).
 * </p>
 * @param autoload bool[optional] <p>
 * Whether to allow this function to load the class automatically through
 * the __autoload magic
 * method. Defaults to true.
 * </p>
 * @return array An array on success, or false on error.
 */
function class_implements ($class, $autoload = null) {}

/**
 * Return hash id for given object
 * @link http://php.net/manual/en/function.spl-object-hash.php
 * @param obj object 
 * @return string A string that is unique for each object and is always the same for
 * the same object.
 */
function spl_object_hash ($obj) {}

/**
 * Copy the iterator into an array
 * @link http://php.net/manual/en/function.iterator-to-array.php
 * @param iterator Traversable <p>
 * The iterator being copied.
 * </p>
 * @param use_keys bool[optional] <p>
 * Whether to use the iterator element keys as index.
 * </p>
 * @return array An array containing the elements of the iterator.
 */
function iterator_to_array ($iterator, $use_keys = null) {}

/**
 * Count the elements in an iterator
 * @link http://php.net/manual/en/function.iterator-count.php
 * @param iterator Traversable <p>
 * The iterator being counted.
 * </p>
 * @return int The number of elements in iterator.
 */
function iterator_count ($iterator) {}

/**
 * Apply a user function to every element of an iterator
 * @link http://php.net/manual/en/function.iterator-apply.php
 * @param iterator Traversable <p>
 * The class to walk through.
 * </p>
 * @param function callback <p>
 * The callback function to call on every element.
 * </p>
 * @param args array[optional] <p>
 * Arguments to pass to the callback function.
 * </p>
 * @return int the iteration count.
 */
function iterator_apply ($iterator, $function, array $args = null) {}

// End of SPL v.0.2
?>
