From 1212dc6ac68cbe6725dd6460a9c854dcb5e252ab Mon Sep 17 00:00:00 2001 From: Vasco Fernandes Date: Thu, 11 Nov 2010 00:54:25 +0000 Subject: [PATCH 01/13] documentation to github pages --- _sources/data_structures/datastructures.txt | 485 ++++++++++++++++ _sources/dom.txt | 56 ++ _sources/index.txt | 29 + _sources/macros.h.txt | 95 ++++ _sources/querying.txt | 85 +++ _sources/tutorial.txt | 47 ++ _static/basic.css | 509 +++++++++++++++++ _static/doctools.js | 247 ++++++++ _static/file.png | Bin 0 -> 392 bytes _static/jquery.js | 154 +++++ _static/minus.png | Bin 0 -> 199 bytes _static/nature.css | 237 ++++++++ _static/plus.png | Bin 0 -> 199 bytes _static/pygments.css | 54 ++ _static/searchtools.js | 518 +++++++++++++++++ _static/underscore.js | 16 + data_structures/datastructures.html | 600 ++++++++++++++++++++ dom.html | 164 ++++++ genindex.html | 184 ++++++ index.html | 127 +++++ macros.h.html | 198 +++++++ objects.inv | Bin 0 -> 412 bytes querying.html | 189 ++++++ search.html | 95 ++++ searchindex.js | 1 + tutorial.html | 142 +++++ 26 files changed, 4232 insertions(+) create mode 100644 _sources/data_structures/datastructures.txt create mode 100644 _sources/dom.txt create mode 100644 _sources/index.txt create mode 100644 _sources/macros.h.txt create mode 100644 _sources/querying.txt create mode 100644 _sources/tutorial.txt create mode 100644 _static/basic.css create mode 100644 _static/doctools.js create mode 100644 _static/file.png create mode 100644 _static/jquery.js create mode 100644 _static/minus.png create mode 100644 _static/nature.css create mode 100644 _static/plus.png create mode 100644 _static/pygments.css create mode 100644 _static/searchtools.js create mode 100644 _static/underscore.js create mode 100644 data_structures/datastructures.html create mode 100644 dom.html create mode 100644 genindex.html create mode 100644 index.html create mode 100644 macros.h.html create mode 100644 objects.inv create mode 100644 querying.html create mode 100644 search.html create mode 100644 searchindex.js create mode 100644 tutorial.html diff --git a/_sources/data_structures/datastructures.txt b/_sources/data_structures/datastructures.txt new file mode 100644 index 0000000..b995239 --- /dev/null +++ b/_sources/data_structures/datastructures.txt @@ -0,0 +1,485 @@ +.. highlight:: c + +=============== +Data Structures +=============== + +Generic List +------------ + +.. c:type:: generic_list + +Generic array list optimized for fast access. + +List +^^^^ + +Stack +^^^^^ + +Queue +^^^^^ + +Generic Red Black Tree +---------------------- +The file rbtree.c contains the source code for a generic red black tree. This data structure is capable of storing any kind of data and its defined in rbtree.h as: + +.. c:type:: tree_root +.. c:type:: struct sroot + +:: + + typedef struct sroot{ + struct stree_node* root; + void* (*key)(struct stree_node* node); + int64_t (*compare)(void* keyA, void* keyB); + }tree_root; + +There are two things to notice here. First, this is only the root of the tree and points to the first tree_node of the rbtree. Second, it contains two function pointers. The first points to a function, which receives a :c:type:`tree_node` and should return a **pointer** to that node's key. The second is a pointer to a compare function, which compares two keys and should return: + +- A negative integer if the first key is smaller than the second. +- 0 if the keys are the same. +- A positive integer if the first key is bigger than the second. + +These pointers must be provided by the user. Why do we need these pointers? Because the data stored in the rbtree can be anything, but we still need to know how to sort it. Nevertheless, if you wish to use this data structure as a container and don't care how things are sorted, you can always use the method :c:func:`new_simple_rbtree`. + +Each node in an rbtree is called a tree_node and is defined in rbtree.h as: + +.. c:type:: tree_node +.. c:type:: struct stree_node + +:: + + typedef struct stree_node{ + void* node; + + uint8_t color; + + struct stree_node* parent; + struct stree_node* left; + struct stree_node* right; + }tree_node; + +There's not much to say about this structure, the only thing relevant is the field ``node``, which is used to store the actual data. The other fields are used to keep the rbtree intact. + +Finally, there's one more structure, which is defined in rbtree.h as: + +.. c:type:: tree_iterator +.. c:type:: struct siterator + +:: + + typedef struct siterator{ + struct stree_node* current; + }tree_iterator; + +As the name implies, this structure is an iterator to the tree nodes. + +As a final note, remember that we provide functions to destroy our structures, but the actual data must be destroyed by you. Do not use iterators for this purpose. + +Function description +^^^^^^^^^^^^^^^^^^^^ + +.. c:function:: tree_root* new_simple_rbtree() + + This function creates an rbtree, which sorts the data acording to its memory pointer. This function should be used when you just want the rbtree to behave as a container, + but you still need O(log(n)) when accessing the data. Keep in mind that in order to retreive the stored data, you need to know it's memory pointer. + + The return value is a tree_root structure. + +.. c:function:: tree_root* new_rbtree(void* (*key_function_pointer)(struct stree_node* node), int64_t (*compare_function_pointer)(void* keyA, void* keyB)) + + :c:member:`key_function_pointer` A function that should return the address of the node's key. + + :c:member:`compare_function_pointer` A function that should compare two keys and return values as described above. It receives the addresses of each key. + + This function creates an rbtree, which sorts the data according to the given functions. The following example shows how to create an rbtree to store integers. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + +.. c:function:: void* rb_tree_insert(tree_root* root, void* node) + + :c:member:`root` A pointer to the tree root where to insert the data represented by ``node``. + + :c:member:`node` A pointer to the data, which will be inserted in the tree. + + As the name implies this function inserts data into the rbtree. In the eventuality that the inserted value is already in the tree, it will be replaced and a pointer to the older value is returned. This is done so the user can free the space stored by that data. The following example shows how to insert integers in an rbtree. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10, d = 6; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + int older = *((int *) rb_tree_insert(rbtree, &d)); + + //don't free older because it was "alloched" by the compiler. + printf("Found a %d already stored in the tree.\n", older); + + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + +.. c:function:: void* rb_tree_delete(tree_root* root, void* key) + + :c:member:`root` A pointer to the tree root where to delete the data with key pointed by ``key``. + + :c:member:`key` A pointer to the key of the node to be deleted. + + This function deletes a node from an rbtree. If a node with a key equal to the one pointed by ``key`` does not exist, NULL will be return. However, if such a node is found, then a pointer to the data is returned. This is done so the user can free the space used by that data. The following example shows how to use this function on an rbtree that stores integers. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + + int d = 10, stored; + stored = *((int *) rb_tree_delete(rbtree, &d)); + + //don't free stored because it was "alloched" by the compiler. + printf("Found a %d stored in the tree.\n", stored); + + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + + + +.. c:function:: void* search_rbtree(tree_root root, void* key) + + :c:member:`root` The root of the tree where to perform the search. + + :c:member:`key` A pointer to the key of the node to be searched. + + This function searchs an rbtree for a node. It returns NULL if nothing is found, or the data stored in the tree with a key equal to the value pointed by ``key``. The following example shows how to search a tree that stores integers. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + + int d = 10, stored; + stored = *((int *) search_rbtree(*rbtree, &d)); + + printf("Found a %d stored in the tree.\n", stored); + + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + +.. c:function:: void destroy_rbtree(tree_root* root) + + :c:member:`root` A pointer to the tree to be destroyed. + + This function destroys an rbtree. Note that this doesn't free the user stored data. The following example shows how to use this in a tree that stores integers. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + + destroy_rbtree(rbtree); + //We do not need to free the stored data because it was "alloched" by the compiler. + + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + + Notice that running the command + + .. code-block:: bash + + valgrind --show-reachable=yes --leak-check=full ./test + + produces the ouput:: + + ==1188== HEAP SUMMARY: + ==1188== in use at exit: 0 bytes in 0 blocks + ==1188== total heap usage: 4 allocs, 4 frees, 72 bytes allocated + ==1188== + ==1188== All heap blocks were freed -- no leaks are possible + + Which means that there are no memory leaks and you should always use this function to free the space stored by any rbtree you use. + +.. c:function:: tree_iterator* new_tree_iterator(tree_root* root) + + :c:member:`root` A pointer to a tree root, which the iteration will be performed. + + This function creates an iterator to an rbtree. Note that when you create an iterator, you should not insert or delete nodes from the tree before the iteration is over. Otherwise, the behaviour of the program will be unpredictable. It returns pointer to the created iterator. The following example shows how to create an iterator for a tree that stores integers. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + + tree_iterator* it = new_tree_iterator(rbtree); + + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + +.. c:function:: uint8_t tree_iterator_has_next(tree_iterator* it) + + :c:member:`it` A tree iterator created by calling :c:func:`new_tree_iterator`. + + This function returns 1 if there are more elements in the tree to be iterated. The following code shows a simple usage of this function. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + + tree_iterator* it = new_tree_iterator(rbtree); + + if(tree_iterator_has_next(it)) + printf("There are still elements to be iterated.\n"); + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + +.. c:function:: void* tree_iterator_next(tree_iterator* it) + + :c:member:`it` A tree iterator created by calling :c:func:`new_tree_iterator`. + + This functions returns the current element pointed by iterator ``it`` and advances to the next element in the iteration. This function should be used with :c:func:`tree_iterator_has_next`. Note that there is **no** guaranty about the order of iteration. The following code shows how to use it. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + + tree_iterator* it = new_tree_iterator(rbtree); + + while(tree_iterator_has_next(it)){ + int d = *((int *) tree_iterator_next(it)); + printf("%d\n", d); + } + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + +.. c:function:: void destroy_iterator(tree_iterator* it) + + :c:member:`it` A tree iterator created by calling :c:func:`new_tree_iterator`. + + This function frees the iterator pointed by ``it``. The following example shows how to use it. + + Example:: + + #include + #include "rbtree.h" + + void* key_address(tree_node* node){ + return node->node; + } + + int64_t compare_integers(void* keyA, void* keyB){ + return *((int *) keyA) - *((int *) keyB); + } + + int main(){ + tree_root* rbtree = new_rbtree(& key_address, & compare_integers); + int a = 9, b = 6, c = 10; + + rb_tree_insert(rbtree, &a); + rb_tree_insert(rbtree, &b); + rb_tree_insert(rbtree, &c); + + tree_iterator* it = new_tree_iterator(rbtree); + + while(tree_iterator_has_next(it)){ + int d = *((int *) tree_iterator_next(it)); + printf("%d\n", d); + } + destroy_iterator(it); + + destroy_rbtree(rbtree); + return 0; + } + + You may compile it with + + .. code-block:: bash + + gcc -o test -I + + .. code-block:: bash + + valgrind --show-reachable=yes --leak-check=full ./test + + produces the ouput:: + + ==4432== HEAP SUMMARY: + ==4432== in use at exit: 0 bytes in 0 blocks + ==4432== total heap usage: 5 allocs, 5 frees, 76 bytes allocated + ==4432== + ==4432== All heap blocks were freed -- no leaks are possible + + Which means that there are no memory leaks and you should always use this function when iterating. diff --git a/_sources/dom.txt b/_sources/dom.txt new file mode 100644 index 0000000..6d9a5d3 --- /dev/null +++ b/_sources/dom.txt @@ -0,0 +1,56 @@ +===================== +Document Object Model +===================== + +.. c:type:: dom_node + + Abstract representation of an xml node. + +DOM +--- + +After the parsing of the xml is done, a DOM structure is created and +can be accessed through a global variable denominated "document". +Bear in mind that this variable is dependent of the current parser. +In other words, if the parser module changes, then the variable name +may also change. + +The DOM structure is a tree, where each node is an xml element. Since +the input xml has already been validated we know it has only one root +, so the document variable will point to a single node in the dom +tree, the root node (This can be accessed through document->root). + +The dom structure provides flexible and extendable xml document +handling. It has the capability to add, remove and modify elements in +the xml. The next section will explain in deeper detail the DOM +module functions. + +DOM functions +------------- + +To create a dom structure, the function new_document should be +called. If the input xml has the form: + +.. code-block:: xml + + + + ... + + +And you wish to store the , you can do this by +creating a dom_node with the name "xml" and attribute "version". This +dom_node must be passed to the function new_document. This is done to +keep the dom structure simpler and with only one root. As we said +before, this implementation makes the assumption that the xml has +already been validated. + +Although we provide in the header file the structures dom_node and +doc, thus exposing their implementation, we highly recommend that you +use the proper access functions to obtain each field. If we change +the structures, we will not change the functions' signature, only +their implementation if needed. By using the access methods, you +won't need to change any code done. For the same reason, we recommend +that you use the proper setter functions to store the values in each +node. + diff --git a/_sources/index.txt b/_sources/index.txt new file mode 100644 index 0000000..ba3a62d --- /dev/null +++ b/_sources/index.txt @@ -0,0 +1,29 @@ +.. libxmlquery documentation master file, created by + sphinx-quickstart on Fri Nov 5 15:13:45 2010. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +.. highlight:: c + +libxmlquery documentation +========================= + +**libxmlquery** is a colection of C functions to help **parse**, **create** and +**query** xml documents. + +If you're new to **libxmlquery** start by reading the +:doc:`Tutorial `. + +.. toctree:: + :maxdepth: 2 + + tutorial + dom + querying + data_structures/datastructures + macros.h + shell + bindings + +You may also find specific object documentation in the :ref:`genindex`. + diff --git a/_sources/macros.h.txt b/_sources/macros.h.txt new file mode 100644 index 0000000..fff1dd9 --- /dev/null +++ b/_sources/macros.h.txt @@ -0,0 +1,95 @@ +.. highlight:: c + +============== +Special Macros +============== + +The file macros.h contains macros used all over our project. These macros were made to ease our pain in coding some things. This page describes and shows how to use them + +alloc +----- + +This section describes the macro + +.. c:macro:: alloc + +Ever get tired of calling malloc and check if the return address is a valid address, and if not print an error message and exit? The :c:macro:`alloc` macro can do all of this for you. It depends on the function :c:func:`__alloc`: + +.. c:function:: static inline void* __alloc(void* x) + +It is defined as:: + + #define alloc(type, how_many) \ + (type *) __alloc(malloc(how_many * sizeof(type))); + + static inline void* __alloc(void* x){ + if(x) + return x; + log(F,"malloc failed."); + exit(1); + return 0; + } + +The key to this macro resides in the :c:func:`__alloc` function. It receives the address returned by :c:func:`malloc` and checks if it is valid. If not, then a :c:macro:`log` message is printed and :c:func:`exit` function is called. The following example shows how to use this function to allocate an array of 100 characters:: + + #include + #include "macros.h" + + int main(){ + char* buffer = alloc(char, 100); + return 0; + } + +You may compile it with + + .. code-block:: bash + + gcc -o test -I + +Notice that you won't even have to bother with casting it to the right type. + +log +--- + +This section describes the macro + +.. c:macro:: log + +Ever filled your code with :c:func:`printf` functions to debug it? And when you're done with it needed to erase them? The :c:macro:`log` adds proper debug messages and doesn't need to be removed when the code is functional. Let's look at its definition:: + + #ifdef DEBUG + #include + #define log(level, format, ...) \ + do{ \ + fprintf(stderr, "%s %s:%d: ", level, __FILE__, __LINE__); \ + fprintf(stderr, format, ## __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + }while(0) + #else + #define log(level, str, ...) + #endif + + #define I "INFO" + #define W "WARNNING" + #define E "ERROR" + #define F "FATAL ERROR" + +First note the macros for I, W, E, F at the bottom. These are merely alias for the level of severity, you may use any other. The :c:macro:`log` macro prints messages to the ``stderr`` and is able to format strings according to :c:func:`printf` format options. Consider this example:: + + #include "macros.h" + + int main(){ + log(I, "Printing info\n"); + return 0; + } + +If we compile and run this example with the option :command:`-DDEBUG` we'll get the following output + + .. code-block:: bash + + Printing info + +If such option is not passed to the compiler, them no output will be shown. This happens because the macro is not created. What this means is that you can actually fill the code with logging messages and debug it, and when you're done just compile it without :command:`-DDEBUG` . The result is a binary file that doesn't contain code related to debug messages, thus is smaller than the debug version. However, if you need to debug it again, you can always recompile it with the debug flag. + +Notice that file name and line number are printed as well, which helps you pin-point the location of the print and check what may have been the cause of the problem. + diff --git a/_sources/querying.txt b/_sources/querying.txt new file mode 100644 index 0000000..75ce33c --- /dev/null +++ b/_sources/querying.txt @@ -0,0 +1,85 @@ +.. highlight:: c + +======== +Querying +======== + +Querying xml nodes to provide quick *random* access to inner nodes is +implemented through `CSS3 selectors `_. + +.. note:: + `CSS `_ stands for + cascading style sheets, it is primarily used for styling (x)html documents + as method to separate content from presentation. + +The CSS3 selectors specification is a `W3C `_ proposed +recomendation widely implemented by most modern browsers, it has also been used, +in its current and earlier forms (CSS and CSS2), by web developers for over 13 +years. + +The W3C recomendation does not tie CSS rules to the presentation of of (x)html +documents, in fact it does define it as a query language capable of selecting +xml/html nodes. With the rise in popularity of AJAX technologies several +javascript libraries became widely used, these libraries (most notabily +`JQuery `_) first proposed the utilization of CSS rules +not only for presentation but also to help manipulation and transversion of the +DOM. + +This library embraces CSS rules as a better/simpler alternative to manual +transversion as well as other W3C recomendations such as +`XPath `_ and +`XQuery `_. + + +Selectors +--------- + +The function `xmlquery_query` is defined to help filter and match nodes in the +:doc:`DOM tree `: + +.. c:function:: generic_list* xmlquery_query(const char* pattern, dom_node* root) + + +.. c:function:: dom_node* xmlquery_query_one(const char* pattern, dom_node* root) + + This is a helper function designed to facilitate selection of single nodes. + Selects the first node returned by a given query, it is equivalent to the + following code:: + + dom_node* single = NULL; + generic_list* l = xmlquery_query(patterm, root) + if((l != NULL && l->count > 0) + single = (dom_node*) get_element_at(l, 0); + + +Introduction +^^^^^^^^^^^^ + +Node selection is implemented as a **pattern string** to be matched against a +:doc:`DOM tree `. The pattern string matches some number of nodes that are +then returned as a flat list. + +A pattern example: + +.. code-block:: css + + foo + +this simple pattern matches all nodes named `foo`. Upon matching the DOM tree +with this pattern, a reference to every node named `foo` would be returned. +Independent of their position in the tree. Returned references may be +manipulated, rearanged or deleted. + + +Pattern strings match dom nodes in three different realms, according to the node +name (as we've seen), according to the node attributes and according to +*pseudo-filters*, a special kind of selectors aware of the node context. + +.. code-block:: css + + foo[attr='bar']:only-child + +A more complex selector, this selector will match nodes with the name *foo*, +with an attribute named *attr* with the value *bar*, and the node must also be +the *only child* of its parent node. + diff --git a/_sources/tutorial.txt b/_sources/tutorial.txt new file mode 100644 index 0000000..afd702b --- /dev/null +++ b/_sources/tutorial.txt @@ -0,0 +1,47 @@ +.. highlight:: c + +======== +Tutorial +======== + +The following code shows how to use the library to rename a node in a xml file:: + + #include + #include + #include + #include + + dom_node* node = xmlquery_parsefile("test.xml"); + node_list* q_result = xmlquery_query("@hi[foo=bar]"); + dom_node* n_result = xmlquery_pop_node(q_result); + xmlquery_set_node_name(n_result, "bye"); + + printf("%s\n", xmlquery_dom_node_to_string(node, XML); + +if ``test.xml`` contains: + +.. code-block:: xml + + + + + + +the resulting output would change the node: + +.. code-block:: xml + + + +to: + +.. code-block:: xml + + + + +this code will read an xml file in ``test.xml`` into our abstract representation +of the DOM (\ **D**\ ocument **O**\ bject **M**\ odel) tree:: + + dom_node* node = xmlquery_parsefile("test.xml"); + diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 0000000..69f30d4 --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,509 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +.align-left { + text-align: left; +} + +.align-center { + clear: both; + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 0000000..eeea95e --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for all documentation. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/_static/jquery.js b/_static/jquery.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 0000000..652b761 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,54 @@ +.c { color: #999988; font-style: italic } /* Comment */ +.k { font-weight: bold } /* Keyword */ +.o { font-weight: bold } /* Operator */ +.cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.cp { color: #999999; font-weight: bold } /* Comment.preproc */ +.c1 { color: #999988; font-style: italic } /* Comment.Single */ +.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #aa0000 } /* Generic.Error */ +.gh { color: #999999 } /* Generic.Heading */ +.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.go { color: #111 } /* Generic.Output */ +.gp { color: #555555 } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #aaaaaa } /* Generic.Subheading */ +.gt { color: #aa0000 } /* Generic.Traceback */ +.kc { font-weight: bold } /* Keyword.Constant */ +.kd { font-weight: bold } /* Keyword.Declaration */ +.kp { font-weight: bold } /* Keyword.Pseudo */ +.kr { font-weight: bold } /* Keyword.Reserved */ +.kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.m { color: #009999 } /* Literal.Number */ +.s { color: #bb8844 } /* Literal.String */ +.na { color: #008080 } /* Name.Attribute */ +.nb { color: #999999 } /* Name.Builtin */ +.nc { color: #445588; font-weight: bold } /* Name.Class */ +.no { color: #ff99ff } /* Name.Constant */ +.ni { color: #800080 } /* Name.Entity */ +.ne { color: #990000; font-weight: bold } /* Name.Exception */ +.nf { color: #990000; font-weight: bold } /* Name.Function */ +.nn { color: #555555 } /* Name.Namespace */ +.nt { color: #000080 } /* Name.Tag */ +.nv { color: purple } /* Name.Variable */ +.ow { font-weight: bold } /* Operator.Word */ +.mf { color: #009999 } /* Literal.Number.Float */ +.mh { color: #009999 } /* Literal.Number.Hex */ +.mi { color: #009999 } /* Literal.Number.Integer */ +.mo { color: #009999 } /* Literal.Number.Oct */ +.sb { color: #bb8844 } /* Literal.String.Backtick */ +.sc { color: #bb8844 } /* Literal.String.Char */ +.sd { color: #bb8844 } /* Literal.String.Doc */ +.s2 { color: #bb8844 } /* Literal.String.Double */ +.se { color: #bb8844 } /* Literal.String.Escape */ +.sh { color: #bb8844 } /* Literal.String.Heredoc */ +.si { color: #bb8844 } /* Literal.String.Interpol */ +.sx { color: #bb8844 } /* Literal.String.Other */ +.sr { color: #808000 } /* Literal.String.Regex */ +.s1 { color: #bb8844 } /* Literal.String.Single */ +.ss { color: #bb8844 } /* Literal.String.Symbol */ +.bp { color: #999999 } /* Name.Builtin.Pseudo */ +.vc { color: #ff99ff } /* Name.Variable.Class */ +.vg { color: #ff99ff } /* Name.Variable.Global */ +.vi { color: #ff99ff } /* Name.Variable.Instance */ +.il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 0000000..5cbfe00 --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,518 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $(' @@ -149,8 +149,8 @@

Table Of Contents

Previous topic

-

Tutorial

+

Shell

Next topic

Document Object Model

@@ -186,7 +186,7 @@

Navigation

next |
  • - previous |
  • libxmlquery v0.1.4 documentation »
  • diff --git a/searchindex.js b/searchindex.js index cffb058..05b2c4f 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{"":{dequeue:[3,0,1],new_element_node:[2,0,1],new_queue:[3,0,1],remove_element_at:[3,0,1],prepend_element:[3,0,1],get_children:[2,0,1],siterator:[3,1,1],new_stack:[3,0,1],parse_xml:[5,0,1],enqueue:[3,0,1],set_value:[2,0,1],list:[3,1,1],get_name:[2,0,1],sdoc:[2,1,1],search_rbtree:[3,0,1],get_element_pos:[3,0,1],set_element_with_type_at:[3,0,1],parse_string:[5,0,1],get_element_at:[3,0,1],new_text_node:[2,0,1],duplicate_generic_list:[3,0,1],set_xml_declaration:[2,0,1],"__alloc":[4,0,1],remove_node:[2,0,1],pop_stack:[3,0,1],insert_element_at:[3,0,1],generic_list_get_count:[3,0,1],rb_tree_insert:[3,0,1],delete_attribute:[2,0,1],new_generic_list_iterator:[3,0,1],prepend_child:[2,0,1],new_cdata:[2,0,1],remove_element:[3,0,1],peek_element_type_at:[3,0,1],set_element_at:[3,0,1],xmlquery_query:[1,0,1],generic_list_s:[3,1,1],get_descendants:[2,0,1],push_stack:[3,0,1],set_namespace:[2,0,1],get_namespace:[2,0,1],remove_all:[3,0,1],destroy_generic_list:[3,0,1],tree_iterator_next:[3,0,1],tree_iterator_has_next:[3,0,1],new_generic_list:[3,0,1],parse_file:[5,0,1],set_parent:[2,0,1],new_document:[2,0,1],get_child_at:[2,0,1],remove_duplicates:[3,0,1],get_attribute_by_name:[2,0,1],new_rbtree:[3,0,1],add_element_with_type:[3,0,1],add_element:[3,0,1],get_doc_root:[2,0,1],new_attribute:[2,0,1],merge_lists:[3,0,1],append_children:[2,0,1],stree_node:[3,1,1],rb_tree_delete:[3,0,1],xmlquery_query_one:[1,0,1],tree_root:[3,1,1],parse_xml_from_string:[5,0,1],add_attribute:[2,0,1],get_element_and_type_at:[3,0,1],peek_stack_type:[3,0,1],node_type:[2,1,1],append_element:[3,0,1],insert_element_with_type_at:[3,0,1],enqueue_with_type:[3,0,1],destroy_rbtree:[3,0,1],push_stack_type:[3,0,1],destroy_generic_list_iterator:[3,0,1],new_simple_rbtree:[3,0,1],get_xml_declaration:[2,0,1],get_elements_by_name:[2,0,1],get_value:[2,0,1],tree_node:[3,1,1],destroy_iterator:[3,0,1],generic_list_iterator_has_next:[3,0,1],destroy_dom_node:[2,0,1],get_text_nodes:[2,0,1],dom_node:[2,1,1],snode:[2,1,1],tree_iterator:[3,1,1],generic_list_is_empty:[3,0,1],sroot:[3,1,1],new_tree_iterator:[3,0,1],set_name:[2,0,1],append_child:[2,0,1],list_bucket:[3,1,1],peek_queue_type:[3,0,1],doc:[2,1,1],set_doc_root:[2,0,1],sorted_insert_element_with_type:[3,0,1],generic_list_iterator_next:[3,0,1],destroy_dom_tree:[2,0,1]}},terms:{all:[4,1,2,3,5,6],code:[3,4,6,1,5],queri:[5,0,6,1],global:[5,2],xmlquery_query_on:1,follow:[4,1,2,3,5,6],children:2,whose:2,"const":[3,5,1],uint8_t:3,program:[3,5,6],becam:1,sens:3,fatal:4,above_source_fil:[3,4,5,2],sourc:3,everi:[3,6,1],string:[5,4,1],fals:[3,6],"void":[3,4,6,5,2],rise:1,util:1,retriev:6,relev:3,level:4,new_rbtre:3,list:[3,0,6,1,2],iter:3,"try":6,item:6,stderr:4,small:3,freed:3,impli:3,smaller:[3,4],search_rbtre:3,colect:0,htm:6,eas:4,yacc:5,second:[3,2],design:1,pass:[3,4,2],append:[3,2],even:[3,4],index:[0,2],what:4,compar:3,defin:[3,4,1,5,2],neg:3,section:[3,4,5],node_to_str:[5,6],abl:[4,6],current:[3,5,1,2],delet:[3,1,2],version:[4,6,2],get_element_po:3,"new":[3,0,2],insert_element_at:3,ever:4,method:[3,1],generic_list_iter:[3,6],remove_dupl:3,full:3,parse_xml_from_str:5,append_el:3,gener:[3,0],here:3,behaviour:3,let:[3,4,6,2],free:[3,5,6,2],address:[3,4],ver:2,modifi:2,sinc:2,valu:[3,1,2],search:[3,6,2],aug:6,ahead:6,add_el:3,technolog:1,prepend_child:2,queue:3,behav:3,chang:[6,2],ddebug:[5,4],sorted_insert_element_with_typ:3,appli:3,transit:3,filenam:5,prepend_el:3,printf:[3,4,6,5],set_element_with_type_at:3,total:3,select:1,kei:[3,4],node_typ:2,from:[3,5,6,1,2],describ:[3,4],would:1,memori:[3,5,2],two:[3,5,6,2],next:[3,5],call:[3,4,2],recommend:[5,2],text_nod:[6,2],black:[3,0],type:[3,4,2],more:[3,1],reachabl:3,flat:1,get_nam:2,relat:4,notic:[3,4,2],warn:4,flag:4,parse_fil:5,worri:3,set_valu:[6,2],hold:3,must:[3,6,1],dictat:3,word:2,get_doc_root:[5,6,2],attr_nam:2,alia:[3,4],peek_stack_typ:3,can:[3,4,5,2],learn:6,fprintf:4,purpos:3,root:[3,5,1,2],tree_root:3,control:2,xml_declar:2,capciti:3,tag:2,caution:2,want:[3,6,2],serial:[5,6],type1:3,occur:5,type2:3,read_fil:6,alwai:[3,4],gcc:[3,4,6,5,2],multipl:3,divid:5,anoth:[3,5],compare_function_point:3,how:[3,4,6,5],simpl:[3,6,1,2],parse_xml:[5,6],css:1,map:5,generic_list_is_empti:3,earlier:1,get_xml_declar:2,befor:[3,6],embrac:1,mai:[0,1,2,3,4,5],end:[3,5,6,2],associ:2,grow:3,alloc:[3,0,4],list_bucket:3,stdio:[3,4,6,5],correspond:2,element:[3,6,2],caus:4,recompil:[5,4],generic_list_iterator_next:[3,6],order:[3,2],includ:[3,4,6,5,2],help:[0,1,4],ouput:3,rearang:1,over:[3,4,1],becaus:[3,4,5,2],through:[5,6,1,2],"__va_args__":4,still:3,pointer:[3,2],entiti:2,typedef:[3,2],xml_file:[5,2],get_valu:2,better:1,html:1,main:[3,4,6,5,2],flex:5,them:4,"return":[4,1,2,3,5,6],thei:3,handl:2,safe:5,initi:3,facilit:1,front:5,retreiv:3,now:6,bigger:3,introduct:1,generic_list_:[3,2],document:[5,0,6,1,2],grammar:5,name:[3,4,1,5,2],anyth:3,separ:1,each:[3,2],debug:4,found:[3,2],mean:[3,4],compil:[3,4,6,5,2],domain:6,replac:3,new_docu:2,stringli:5,realli:[6,2],notabili:1,"static":4,year:1,our:[3,4,6,5],happen:[3,4,2],special:[0,1,4],out:[3,6],variabl:[5,2],shown:[4,6],space:[3,2],get_descend:2,your:[5,4],content:[6,1],print:4,pop_stack:3,occurr:3,red:[3,0],rb_tree_insert:3,xmlquery_queri:1,after:2,destroy_generic_list_iter:[3,6],advanc:3,manipul:[6,1],given:[3,1,2],argv:6,nth:2,reason:5,base:3,"byte":3,argc:6,acord:3,unpredict:3,care:3,symetr:3,thread:5,lexer:5,keep:[3,2],filter:1,thing:[3,4,6,2],isn:2,onto:[3,5],first:[3,4,1,2],feed:6,directli:2,arrai:[3,4],independ:1,number:[3,4,1],yourself:2,datastructur:3,alreadi:[3,2],done:[3,4,5,2],stdlib:3,destroy_generic_list:3,tree_iterator_has_next:3,new_simple_rbtre:3,differ:[3,1,2],sheet:1,data:[3,0,2],capac:3,messag:[5,4],stack:[3,6],checker:2,source_fil:6,query_runn:6,"final":[3,2],store:[3,5,2],too:2,option:4,namespac:2,pubdat:6,copi:5,selector:[0,1],pars:[5,0,6,2],cdata:2,enqueu:3,exactli:[3,6,2],than:[3,4],rss:6,wide:1,kind:[3,1,2],third:3,new_element_nod:2,provid:[3,1,2],new_queu:3,remov:[3,4,2],tree:[3,0,6,1,2],structur:[3,0,5,2],charact:[4,6],project:4,compare_integ:3,were:[3,4],posit:[3,1],int16_t:3,other:[3,4,1,2],browser:1,"function":[0,1,2,3,4,5],sai:3,get_namespac:2,modern:1,mind:[3,2],argument:[3,6,2],have:[3,4,6,5,2],need:[3,4,5],seen:1,seem:3,"null":[3,5,6,1,2],realm:1,equival:1,destroi:[3,2],note:[3,4,1],also:[3,0,1,2],exampl:[4,1,2,3,5,6],tree_iter:3,take:3,which:[3,4,6,5,2],conclud:6,generic_list_iterator_has_next:[3,6],command:3,noth:[3,2],singl:[3,5,1,2],begin:[3,6],pain:4,"enum":2,though:3,buffer:4,object:[3,0,2],most:1,why:3,append_child:2,don:3,dom:[0,6,1,2],doc:[5,6,2],doe:[3,1,2],declar:[5,2],clean:[6,2],left:3,"__alloc":4,fact:1,someattribut:5,pope:3,show:[3,4,6,5],text:2,random:[3,1],rbtree:3,tree_nod:3,detroi:3,find:0,remove_element_at:3,enqueue_with_typ:3,xml:[5,0,6,1,2],access:[3,5,1,2],onli:[3,1,2],locat:[3,4,5],pretti:6,new_tree_iter:3,explain:5,someel:5,suppos:2,folder:[3,4,5,2],destroy_iter:3,new_stack:3,set_par:2,count:[3,1],get:[3,4,6],"__file__":4,bear:2,lxq_document:[5,2],report:5,xmlstring:5,bar:1,sdoc:2,contain:[3,4,2],dequeu:3,where:[3,4,5,2],bother:4,desced:2,summari:3,set:[3,2],see:[3,6],stree_nod:3,result:[5,4,6],fail:[3,4],get_elements_by_nam:2,awar:[5,1,2],flexibl:2,libxmlqueri:[5,0,6],parent:[3,1,2],pattern:1,patterm:1,siter:3,won:4,generic_list_get_count:3,attribut:[1,2],altern:1,accord:[3,4,1],str:[5,4],extend:2,javascript:1,style:1,entir:2,remove_el:3,tue:6,new_text_nod:2,both:3,set_element_at:3,howev:[3,4,6],prite:5,valgrind:3,against:1,tutori:[0,6],context:1,mani:5,com:6,get_attribute_by_nam:2,push_stack:3,point:[3,4,2],color:3,int32_t:3,push_stack_typ:3,pop:3,header:[5,6],peek_element_type_at:3,remove_nod:2,path:[3,4,6,5,2],alloch:3,duplic:3,creat:[3,0,6,2,4],coupl:5,three:[3,1],empti:3,whom:2,much:3,new_generic_list:3,reflex:3,recomend:1,new_cdata:2,ani:[3,4,6,5,2],doesn:[3,4,2],child:[1,2],quick:1,careful:2,present:[3,1],input:[3,5,2],"char":[5,4,6,1,2],ident:3,look:[3,4,2],properti:3,cast:4,"while":[3,4,6],abov:[3,6],error:[5,4],invoc:3,malloc:[3,4],helper:1,new_attribut:2,equal:3,eras:4,insert_element_with_type_at:3,get_text_nod:2,sever:[4,1],develop:1,parse_queri:5,perform:3,same:[3,6,2],binari:4,complex:1,descend:2,eventu:3,key_address:3,http:6,optim:3,upon:1,snode:2,capabl:[3,6,1,2],jqueri:1,user:3,destroy_dom_nod:2,remove_al:3,keya:3,implement:[3,5,1],peek_queue_typ:3,travers:2,kept:[3,4,5,2],lib:5,bewar:3,older:3,nevertheless:3,macro:[0,4],thu:4,well:[4,1],know:[3,2],without:[3,4,5],delete_attribut:2,thi:[4,1,2,3,5,6],endif:4,ispermalink:6,model:[0,2],propos:1,just:[3,4],obtain:3,rest:2,ifdef:4,languag:1,web:1,keyb:3,struct:[3,2],extra:5,get_children:2,add:[3,4,6,2],cleanup:6,realloc:3,els:4,modul:[5,0,2],match:1,css3:1,css2:1,lxq_selected_el:5,format:4,read:0,beggin:2,parse_dom:[5,2],mon:6,tire:4,lastbuildd:6,insert:[3,2],xqueri:1,resid:4,helpful:6,specif:[0,1],should:[3,5,2],manual:1,integ:3,add_attribut:2,necessari:3,channel:6,transvers:1,popular:1,output:[4,6],resiz:3,page:4,depend:[4,2],www:6,right:[3,4],old:[3,6],lxq_parser:[5,6,2],some:[5,4,1],back:3,enumer:2,guaranti:3,proper:4,sizeof:[3,4],intact:[3,2],get_element_at:[3,1],librari:1,duplicate_generic_list:3,guid:6,bottom:4,leak:[3,2],definit:[3,4,2],exit:[3,4,5],foo:1,refer:1,peek:3,set_nam:2,run:[3,4,6],set_xml_declar:2,cascad:1,usag:[3,6],global_docu:6,how_mani:4,although:3,simpler:1,about:3,actual:[3,4,2],append_children:2,generic_list:1,destroy_rbtre:3,stand:1,act:3,ajax:1,produc:3,block:3,primarili:1,encod:6,set_namespac:2,been:[4,1,2],tree_iterator_next:3,parse_str:5,mere:4,merg:[3,5],w3c:1,log:[3,0,4],wai:2,aren:3,get_desced:2,fast:3,start:[3,0],inner:1,xpath:1,get_child_at:[6,2],head:[3,2],rb_tree_delet:3,form:1,forc:5,dom_nod:[6,1,2],link:6,heap:3,add_element_with_typ:3,line:4,inlin:4,"true":3,denomin:2,info:4,made:4,utf:6,attr:1,consist:3,possibl:[3,5],wish:3,bucket:3,below:[6,2],otherwis:[3,2],problem:4,sort:3,featur:[3,6],pin:4,"int":[3,4,6,5,2],descript:[3,0,6,5,2],parser:[5,0,2],get_element_and_type_at:3,"__line__":4,repres:[3,2],strongli:5,exist:3,file:[3,4,6,5,2],int64_t:3,check:[3,4,6],fill:[3,4],again:4,titl:6,when:[3,4,2],prepend:[3,2],field:[3,2],valid:[4,2],rememb:3,test:[3,4,6,5,2],tie:1,you:[0,2,3,4,5,6],node:[3,6,1,2],new_generic_list_iter:[3,6],destroy_dom_tre:[5,6,2],consid:[3,4,2],merge_list:3,sroot:[3,2],stai:3,receiv:[3,4],cdata_text:2,set_doc_root:2,pseudo:1,rule:1,obj:3,time:5,push:3,key_function_point:3},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Document Object Model","Data Structures","Special Macros","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","dom","data_structures/datastructures","macros.h","parser/parser","tutorial/tutorial"]}) \ No newline at end of file +Search.setIndex({objects:{"":{dequeue:[4,0,1],new_element_node:[2,0,1],new_queue:[4,0,1],remove_element_at:[4,0,1],prepend_element:[4,0,1],get_children:[2,0,1],siterator:[4,1,1],new_stack:[4,0,1],parse_xml:[6,0,1],enqueue:[4,0,1],set_value:[2,0,1],list:[4,1,1],get_name:[2,0,1],sdoc:[2,1,1],search_rbtree:[4,0,1],get_element_pos:[4,0,1],set_element_with_type_at:[4,0,1],parse_string:[6,0,1],get_element_at:[4,0,1],new_text_node:[2,0,1],duplicate_generic_list:[4,0,1],set_xml_declaration:[2,0,1],"__alloc":[5,0,1],remove_node:[2,0,1],pop_stack:[4,0,1],insert_element_at:[4,0,1],generic_list_get_count:[4,0,1],rb_tree_insert:[4,0,1],delete_attribute:[2,0,1],new_generic_list_iterator:[4,0,1],prepend_child:[2,0,1],new_cdata:[2,0,1],remove_element:[4,0,1],peek_element_type_at:[4,0,1],set_element_at:[4,0,1],xmlquery_query:[1,0,1],generic_list_s:[4,1,1],get_descendants:[2,0,1],push_stack:[4,0,1],set_namespace:[2,0,1],get_namespace:[2,0,1],remove_all:[4,0,1],destroy_generic_list:[4,0,1],tree_iterator_next:[4,0,1],tree_iterator_has_next:[4,0,1],node_to_string:[2,0,1],new_generic_list:[4,0,1],parse_file:[6,0,1],set_parent:[2,0,1],new_document:[2,0,1],get_child_at:[2,0,1],remove_duplicates:[4,0,1],get_attribute_by_name:[2,0,1],new_rbtree:[4,0,1],add_element_with_type:[4,0,1],add_element:[4,0,1],get_doc_root:[2,0,1],new_attribute:[2,0,1],merge_lists:[4,0,1],append_children:[2,0,1],stree_node:[4,1,1],rb_tree_delete:[4,0,1],xmlquery_query_one:[1,0,1],tree_root:[4,1,1],parse_xml_from_string:[6,0,1],add_attribute:[2,0,1],get_element_and_type_at:[4,0,1],peek_stack_type:[4,0,1],node_type:[2,1,1],append_element:[4,0,1],insert_element_with_type_at:[4,0,1],enqueue_with_type:[4,0,1],destroy_rbtree:[4,0,1],push_stack_type:[4,0,1],destroy_generic_list_iterator:[4,0,1],new_simple_rbtree:[4,0,1],get_xml_declaration:[2,0,1],get_elements_by_name:[2,0,1],get_value:[2,0,1],tree_node:[4,1,1],destroy_iterator:[4,0,1],generic_list_iterator_has_next:[4,0,1],destroy_dom_node:[2,0,1],get_text_nodes:[2,0,1],dom_node:[2,1,1],snode:[2,1,1],tree_iterator:[4,1,1],generic_list_is_empty:[4,0,1],sroot:[4,1,1],new_tree_iterator:[4,0,1],set_name:[2,0,1],append_child:[2,0,1],list_bucket:[4,1,1],peek_queue_type:[4,0,1],doc:[2,1,1],set_doc_root:[2,0,1],sorted_insert_element_with_type:[4,0,1],generic_list_iterator_next:[4,0,1],destroy_dom_tree:[2,0,1]}},terms:{all:[5,1,2,4,6,7],code:[4,5,7,1,6],queri:[6,0,7,1,3],global:[6,2],xmlquery_query_on:1,follow:[5,1,2,4,6,7],children:2,whose:2,"const":[4,6,1],uint8_t:4,mmmmmmm:3,program:[4,6,7,3],becam:1,sens:4,fatal:5,above_source_fil:[4,5,6,2],sourc:4,everi:[4,7,1],string:[6,5,1,2],fals:[4,7],"void":[4,5,7,6,2],rise:1,eeee:3,variable_nam:3,veri:3,retriev:7,relev:4,level:5,new_rbtre:4,list:[4,0,7,1,2],iter:4,"try":7,item:[7,3],stderr:5,small:4,freed:4,impli:4,smaller:[4,5],search_rbtre:4,colect:0,htm:7,eas:5,yacc:6,second:[4,2],design:1,pass:[4,5,2],append:[4,2],even:[4,5],index:[0,2],what:[5,3],compar:4,defin:[4,5,1,6,2],neg:4,section:[4,5,6,2],node_to_str:[6,7,2],abl:[5,7],access:[4,6,1,2],delet:[4,1,2],version:[5,7,2],get_element_po:4,"new":[4,0,2],insert_element_at:4,ever:5,method:[4,1],generic_list_iter:[4,7],remove_dupl:4,full:4,parse_xml_from_str:6,append_el:4,gener:[4,0,3],here:[4,3],behaviour:4,let:[4,5,7,2],free:[4,6,7,2],address:[4,5],ver:2,modifi:2,sinc:2,valu:[4,1,2],search:[4,7,2],aug:7,ahead:7,add_el:4,technolog:1,prepend_child:2,queue:4,behav:4,chang:[7,2],ddebug:[6,5],binary_fil:3,sorted_insert_element_with_typ:4,appli:4,transit:4,filenam:6,prepend_el:4,printf:[4,5,7,6,2],set_element_with_type_at:4,total:4,select:1,kei:[4,5],node_typ:2,from:[1,2,3,4,6,7],describ:[4,5],would:[3,1],memori:[4,6,2],two:[4,6,7,2],next:[4,6],qqqq:3,call:[4,5,3,2],recommend:[6,2],text_nod:[7,2],black:[4,0],type:[4,5,3,2],more:[4,1],sort:4,flat:1,desir:2,get_nam:2,relat:5,notic:[4,5,2],warn:5,flag:5,parse_fil:6,worri:4,set_valu:[7,2],hold:4,iii:3,must:[4,7,1,2],dictat:4,word:2,get_doc_root:[6,7,2],attr_nam:2,alia:[4,5],peek_stack_typ:4,can:[4,5,3,6,2],learn:7,fprintf:5,purpos:[4,3],root:[4,6,1,2],tree_root:4,control:2,prompt:3,xml_declar:2,capciti:4,tag:2,caution:2,want:[4,7,2],serial:[6,0,7,2],type1:4,occur:6,type2:4,read_fil:7,alwai:[4,5],gcc:[4,5,7,6,2],end:[4,6,7,2],divid:6,anoth:[4,6,2],compare_function_point:4,how:[5,2,3,4,6,7],simpl:[4,3,7,1,2],parse_xml:[6,7,2],css:1,map:6,generic_list_is_empti:4,earlier:1,get_xml_declar:2,befor:[4,7],embrac:1,mai:[0,1,2,4,5,6],multipl:4,associ:2,grow:4,demonstr:3,util:1,alloc:[4,0,5],list_bucket:4,stdio:[4,5,7,6,2],correspond:2,element:[4,7,2],caus:5,recompil:[6,5],generic_list_iterator_next:[4,7],order:[4,2],includ:[4,5,7,6,2],help:[0,1,3,5],ouput:4,rearang:1,over:[4,5,1],becaus:[4,5,6,2],through:[6,7,1,2],"__va_args__":5,still:4,pointer:[4,2],entiti:2,typedef:[4,2],xml_file:[6,2],get_valu:2,better:1,yaml:2,html:1,main:[4,5,7,6,2],flex:6,them:[5,3],"return":[5,1,2,4,6,7],thei:4,handl:2,encod:7,safe:6,initi:4,facilit:1,front:6,retreiv:4,now:7,bigger:4,introduct:1,generic_list_:[4,2],document:[0,1,2,3,6,7],grammar:6,name:[4,5,1,6,2],anyth:4,separ:1,each:[4,2],debug:5,found:[4,2],mean:[4,5],compil:[0,2,3,4,5,6,7],domain:7,replac:4,new_docu:2,stringli:6,realli:[7,2],notabili:1,"static":5,year:1,our:[4,5,7,3,6],happen:[4,5,2],special:[0,1,5],out:[4,7],variabl:[6,3,2],shown:[5,7],space:[4,2],get_descend:2,yyi:3,your:[6,5],content:[7,1],print:[5,3,2],pop_stack:4,occurr:4,red:[4,0],rb_tree_insert:4,xmlquery_queri:1,after:[3,2],destroy_generic_list_iter:[4,7],advanc:4,manipul:[7,1],given:[4,3,1,2],argv:[7,2],mmm:3,nth:2,reason:6,base:4,"byte":4,argc:[7,2],acord:4,unpredict:4,care:4,symetr:4,thread:6,lexer:6,keep:[4,2],filter:1,thing:[4,5,7,2],isn:2,onto:[4,6,2],first:[4,5,1,2],feed:7,directli:2,arrai:[4,5],independ:1,number:[4,5,1],yourself:2,datastructur:4,alreadi:[4,2],done:[4,5,6,2],stdlib:4,destroy_generic_list:4,tree_iterator_has_next:4,new_simple_rbtre:4,differ:[4,1,2],sheet:1,data:[4,0,2],interact:[0,3],capac:4,messag:[6,5,3],stack:[4,7],checker:2,source_fil:7,query_runn:7,conveni:3,"final":[4,2],store:[4,6,3,2],too:2,shell:[0,3],option:5,namespac:2,pubdat:7,copi:6,selector:[0,1],part:2,pars:[6,0,7,2],cdata:2,enqueu:4,exactli:[4,7,2],than:[4,5],rss:[7,3],wide:1,kind:[4,1,2],third:4,new_element_nod:2,provid:[4,1,2],new_queu:4,remov:[4,5,2],tree:[4,0,7,1,2],structur:[4,0,6,2],charact:[5,7],project:5,compare_integ:4,were:[4,5],posit:[4,1],int16_t:4,other:[4,5,1,2],markup:2,browser:1,"function":[0,1,2,4,5,6],sai:4,get_namespac:2,modern:1,query_express:3,argument:[4,7,3,2],realm:1,have:[4,5,7,6,2],need:[4,5,3,6],seen:1,seem:4,"null":[4,6,7,1,2],engin:3,equival:1,uuuuuu:3,destroi:[4,2],note:[4,5,1],also:[4,0,1,2],without:[4,5,3,6],tree_iter:4,take:4,which:[5,2,3,4,6,7],conclud:7,generic_list_iterator_has_next:[4,7],command:[4,3],noth:[4,2],singl:[4,6,1,2],serializarion:2,begin:[4,7,3],pain:5,"enum":2,though:4,buffer:5,object:[4,0,2],most:[3,1],why:4,print_xml:3,append_child:2,don:4,file_to_load:3,dom:[0,7,1,2],doc:[6,7,3,2],doe:[4,1,2],declar:[6,2],clean:[7,2],left:4,"__alloc":5,fact:1,someattribut:6,pope:4,show:[5,2,3,4,6,7],text:2,random:[4,1],rbtree:4,tree_nod:4,detroi:4,find:0,remove_element_at:4,enqueue_with_typ:4,xml:[0,1,2,3,6,7],current:[4,6,1,2],onli:[4,1,2],locat:[4,5,6],pretti:7,new_tree_iter:4,explain:[6,2],someel:6,suppos:2,folder:[4,5,6,2],destroy_iter:4,new_stack:4,set_par:2,count:[4,1],get:[4,5,7],"__file__":5,bear:2,lxq_document:[6,2],report:6,banner:3,xmlstring:6,bar:1,sdoc:2,deduc:3,contain:[4,5,2],dequeu:4,where:[4,5,6,2],bother:5,desced:2,summari:4,set:[4,2],see:[4,7,3],stree_nod:4,result:[6,5,7],fail:[4,5],get_elements_by_nam:2,awar:[6,1,2],flexibl:2,libxmlqueri:[6,0,7],parent:[4,1,2],pattern:1,patterm:1,siter:4,won:5,simplest:3,generic_list_get_count:4,attribut:[1,2],altern:1,accord:[4,5,1],str:[6,5],extend:2,javascript:[1,2],style:1,entir:2,remove_el:4,tue:7,new_text_nod:2,both:4,set_element_at:4,howev:[4,5,7],prite:6,equal:4,against:1,tutori:[0,7],context:1,mani:6,com:7,get_attribute_by_nam:2,load:3,push_stack:4,point:[4,5,2],color:4,int32_t:4,push_stack_typ:4,pop:4,header:[6,7],peek_element_type_at:4,remove_nod:2,path:[4,5,7,6,2],typic:3,alloch:4,duplic:4,quit:3,creat:[0,2,3,4,5,7],coupl:6,rrrr:3,three:[4,1,2],empti:4,whom:2,json:2,much:4,new_generic_list:4,reflex:4,recomend:1,new_cdata:2,mind:[4,2],xxx:3,ani:[5,2,3,4,6,7],llll:3,doesn:[4,5,2],child:[1,2],quick:1,careful:2,present:[4,3,1],input:[4,6,2],"char":[6,5,7,1,2],ident:4,look:[4,5,2],properti:4,cast:5,"while":[4,5,7],ain:2,abov:[4,7],error:[6,5],invoc:4,malloc:[4,5],helper:1,applic:3,new_attribut:2,valgrind:4,eras:5,insert_element_with_type_at:4,get_text_nod:2,sever:[5,1],develop:[3,1],parse_queri:6,perform:4,make:3,same:[4,7,2],binari:[5,3],complex:1,descend:2,key_address:4,http:7,optim:4,upon:1,snode:2,capabl:[4,7,1,2],jqueri:1,user:4,destroy_dom_nod:2,keyb:4,keya:4,implement:[4,3,1,6],peek_queue_typ:4,travers:2,kept:[4,5,6,2],lib:6,bewar:4,older:4,nevertheless:4,macro:[0,5],thu:5,well:[5,1],know:[4,2],exampl:[5,1,2,3,4,6,7],delete_attribut:2,thi:[5,1,2,3,4,6,7],endif:5,ispermalink:7,model:[0,2],propos:1,just:[4,5,3],obtain:4,rest:2,gdb:3,ifdef:5,languag:[1,2],web:1,struct:[4,2],easi:3,extra:6,get_children:2,add:[4,5,7,2],cleanup:7,realloc:4,els:5,modul:[6,0,2],match:1,css3:1,css2:1,lxq_selected_el:6,format:[5,3,2],read:0,beggin:2,parse_dom:[6,2],mon:7,tire:5,lastbuildd:7,insert:[4,2],xqueri:1,resid:5,helpful:7,specif:[0,1],should:[4,6,2],serialization_typ:2,manual:1,integ:4,add_attribut:2,necessari:4,channel:7,transvers:1,popular:1,output:[5,7,2],resiz:4,page:5,depend:[5,2],www:7,right:[4,5],old:[4,7],lxq_parser:[6,7,2],some:[6,5,1,2],back:4,enumer:2,guaranti:4,proper:5,sizeof:[4,5],intact:[4,2],get_element_at:[4,1],librari:1,remove_al:4,guid:7,bottom:5,leak:[4,2],definit:[4,5,2],exit:[4,5,3,6],foo:1,refer:1,peek:4,set_nam:2,run:[4,0,7,3,5],set_xml_declar:2,cascad:1,usag:[4,7,3],global_docu:7,how_mani:5,although:4,eventu:4,"throw":2,simpler:1,about:4,actual:[4,5,2],append_children:2,generic_list:1,destroy_rbtre:4,stand:1,act:4,ajax:1,produc:4,block:4,primarili:1,eeeee:3,bbb:3,set_namespac:2,been:[5,1,2],tree_iterator_next:4,parse_str:6,mere:5,merg:[4,6],w3c:1,log:[4,0,5],wai:2,aren:4,support:[3,2],get_desced:2,fast:4,start:[4,0],interfac:3,inner:1,xpath:1,get_child_at:[7,2],head:[4,2],rb_tree_delet:4,form:1,forc:6,dom_nod:[7,1,2],link:7,heap:4,add_element_with_typ:4,line:5,inlin:5,"true":4,denomin:2,info:5,notat:2,made:5,utf:7,attr:1,consist:4,possibl:[4,6],wish:4,bucket:4,below:[7,2],otherwis:[4,2],problem:5,reachabl:4,featur:[4,7,3],pin:5,"int":[4,5,7,6,2],descript:[4,0,7,6,2],parser:[6,0,2],get_element_and_type_at:4,"__line__":5,repres:[4,2],strongli:6,exist:[4,3],file:[5,2,3,4,6,7],int64_t:4,check:[4,5,7],fill:[4,5],again:5,titl:[7,3],when:[4,5,2],prepend:[4,2],field:[4,2],valid:[5,2],rememb:4,test:[5,2,3,4,6,7],tie:1,you:[0,2,3,4,5,6,7],node:[4,3,7,1,2],new_generic_list_iter:[4,7],duplicate_generic_list:4,destroy_dom_tre:[6,7,2],consid:[4,5,2],merge_list:4,sroot:[4,2],stai:4,receiv:[4,5],cdata_text:2,set_doc_root:2,pseudo:1,rule:1,obj:4,time:6,push:4,key_function_point:4},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Document Object Model","Shell","Data Structures","Special Macros","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","dom","applications/shell","data_structures/datastructures","macros.h","parser/parser","tutorial/tutorial"]}) \ No newline at end of file diff --git a/tutorial/tutorial.html b/tutorial/tutorial.html index 71b3cce..8de6e49 100644 --- a/tutorial/tutorial.html +++ b/tutorial/tutorial.html @@ -22,7 +22,7 @@ - + @@ -33,7 +33,7 @@

    Navigation

    index
  • - next |
  • Previous topic

    libxmlquery documentation

    Next topic

    -

    Parser Module

    +

    Shell

    This Page

    You may also find specific object documentation in the Index.

    diff --git a/lxq_sources/_sources/index.txt b/lxq_sources/_sources/index.txt new file mode 100644 index 0000000..3b0527c --- /dev/null +++ b/lxq_sources/_sources/index.txt @@ -0,0 +1,30 @@ +.. libxmlquery documentation master file, created by + sphinx-quickstart on Fri Nov 5 15:13:45 2010. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +.. highlight:: c + +libxmlquery documentation +========================= + +**libxmlquery** is a colection of C functions to help **parse**, **create** and +**query** xml documents. + +If you are new to **libxmlquery** start by reading the +:doc:`Tutorial `. + +.. toctree:: + :maxdepth: 2 + + tutorial/tutorial + parser/parser + dom + querying + data_structures/datastructures + macros.h + bindings + applications/shell + +You may also find specific object documentation in the :ref:`genindex`. + diff --git a/lxq_sources/_sources/querying.txt b/lxq_sources/_sources/querying.txt new file mode 100644 index 0000000..a78943d --- /dev/null +++ b/lxq_sources/_sources/querying.txt @@ -0,0 +1,102 @@ +.. highlight:: c + +======== +Querying +======== + +Querying xml nodes to provide quick *random* access to inner nodes is +implemented through `CSS3 selectors `_. + +.. note:: + `CSS `_ stands for + cascading style sheets, it is primarily used for styling (x)html documents + as method to separate content from presentation. + +The CSS3 selectors specification is a `W3C `_ proposed +recomendation widely implemented by most modern browsers, it has also been used, +in its current and earlier forms (CSS and CSS2), by web developers for over 13 +years. + +The W3C recomendation does not tie CSS rules to the presentation of of (x)html +documents, in fact it does define it as a query language capable of selecting +xml/html nodes. With the rise in popularity of AJAX technologies several +javascript libraries became widely used, these libraries (most notabily +`JQuery `_) first proposed the utilization of CSS rules +not only for presentation but also to help manipulation and transversion of the +DOM. + +This library embraces CSS rules as a better/simpler alternative to manual +transversion as well as other W3C recomendations such as +`XPath `_ and +`XQuery `_. + + +Selectors +--------- + +The function `xmlquery_query` is defined to help filter and match nodes in the +:doc:`DOM tree `: + +.. c:function:: generic_list* xmlquery_query(const char* pattern, dom_node* root) + + :c:member:`pattern` Query pattern to apply to XML document. + + :c:member:`root` A root of a DOM tree where to begin the query. + + This function applies a query to a given DOM tree and returns a list of elements. + +Introduction +^^^^^^^^^^^^ + +Node selection is implemented as a **pattern string** to be matched against a +:doc:`DOM tree `. The pattern string matches some number of nodes that are +then returned as a flat list. + +A pattern example: + +.. code-block:: css + + foo + +this simple pattern matches all nodes named `foo`. Upon matching the DOM tree +with this pattern, a reference to every node named `foo` would be returned. +Independent of their position in the tree. Returned references may be +manipulated, rearanged or deleted. + + +Pattern strings match dom nodes in three different realms, according to the node +name (as we've seen), according to the node attributes and according to +*pseudo-filters*, a special kind of selectors aware of the node context. + +.. code-block:: css + + foo[attr='bar']:only-child + +A more complex selector, this selector will match nodes with the name *foo*, +with an attribute named *attr* with the value *bar*, and the node must also be +the *only child* of its parent node. + + +Custom pseudo-filters +^^^^^^^^^^^^^^^^^^^^^ + +We've created some new features. We added the possibility of making *custom pseudo-filters*. +*Custom pseudo-filters* provide a way for the user to define their own filters, which can be +chained with other query operators. + +To create a *custom pseudo-filter* you just need to define a function with the one of the following signatures:: + + int simple_filter(dom_node* node); + int complex_filter(dom_node* node, list* args); + +The first one creates a filter that doesn't take any arguments. If you want to design a filter that takes arguments, you must use the second signature. + +After defining your filter you need to register them. You do this by calling:: + +.. c:function:: void register_simple_custom_filter(const char* name, int (*filter)(dom_node* node)) + +.. c:function:: void register_custom_filter(const char* name, int (*filter)(dom_node* node, list* args)) + +The first function registers a simple filter, while the second registers a complex one. + +When you're done with this you can call your filters just like a CSS3 *pseudo-filter*. diff --git a/lxq_static/_static/basic.css b/lxq_static/_static/basic.css new file mode 100644 index 0000000..69f30d4 --- /dev/null +++ b/lxq_static/_static/basic.css @@ -0,0 +1,509 @@ +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +img { + border: 0; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +.align-left { + text-align: left; +} + +.align-center { + clear: both; + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.refcount { + color: #060; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} diff --git a/lxq_static/_static/doctools.js b/lxq_static/_static/doctools.js new file mode 100644 index 0000000..eeea95e --- /dev/null +++ b/lxq_static/_static/doctools.js @@ -0,0 +1,247 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for all documentation. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +} + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * small function to check if an array contains + * a given item. + */ +jQuery.contains = function(arr, item) { + for (var i = 0; i < arr.length; i++) { + if (arr[i] == item) + return true; + } + return false; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('
  • ') + .appendTo($('.sidebar .this-page-menu')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('.sidebar .this-page-menu li.highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/lxq_static/_static/file.png b/lxq_static/_static/file.png new file mode 100644 index 0000000000000000000000000000000000000000..d18082e397e7e54f20721af768c4c2983258f1b4 GIT binary patch literal 392 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b z3=G`DAk4@xYmNj^kiEpy*OmP$HyOL$D9)yc9|lc|nKf<9@eUiWd>3GuTC!a5vdfWYEazjncPj5ZQX%+1 zt8B*4=d)!cdDz4wr^#OMYfqGz$1LDFF>|#>*O?AGil(WEs?wLLy{Gj2J_@opDm%`dlax3yA*@*N$G&*ukFv>P8+2CBWO(qz zD0k1@kN>hhb1_6`&wrCswzINE(evt-5C1B^STi2@PmdKI;Vst0PQB6!2kdN literal 0 HcmV?d00001 diff --git a/lxq_static/_static/jquery.js b/lxq_static/_static/jquery.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/lxq_static/_static/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
    a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

    ";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
    ";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
    ","
    "];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
    ").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
    "; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/lxq_static/_static/minus.png b/lxq_static/_static/minus.png new file mode 100644 index 0000000000000000000000000000000000000000..da1c5620d10c047525a467a425abe9ff5269cfc2 GIT binary patch literal 199 zcmeAS@N?(olHy`uVBq!ia0vp^+#t-s1SHkYJtzcHoCO|{#XvD(5N2eUHAey{$X?>< z>&kweokM_|(Po{+Q=kw>iEBiObAE1aYF-J$w=>iB1I2R$WLpMkF=>bh=@O1TaS?83{1OVknK< z>&kweokM`jkU7Va11Q8%;u=xnoS&PUnpeW`?aZ|OK(QcC7sn8Z%gHvy&v=;Q4jejg zV8NnAO`-4Z@2~&zopr02WF_WB>pF literal 0 HcmV?d00001 diff --git a/lxq_static/_static/pygments.css b/lxq_static/_static/pygments.css new file mode 100644 index 0000000..652b761 --- /dev/null +++ b/lxq_static/_static/pygments.css @@ -0,0 +1,54 @@ +.c { color: #999988; font-style: italic } /* Comment */ +.k { font-weight: bold } /* Keyword */ +.o { font-weight: bold } /* Operator */ +.cm { color: #999988; font-style: italic } /* Comment.Multiline */ +.cp { color: #999999; font-weight: bold } /* Comment.preproc */ +.c1 { color: #999988; font-style: italic } /* Comment.Single */ +.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */ +.ge { font-style: italic } /* Generic.Emph */ +.gr { color: #aa0000 } /* Generic.Error */ +.gh { color: #999999 } /* Generic.Heading */ +.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */ +.go { color: #111 } /* Generic.Output */ +.gp { color: #555555 } /* Generic.Prompt */ +.gs { font-weight: bold } /* Generic.Strong */ +.gu { color: #aaaaaa } /* Generic.Subheading */ +.gt { color: #aa0000 } /* Generic.Traceback */ +.kc { font-weight: bold } /* Keyword.Constant */ +.kd { font-weight: bold } /* Keyword.Declaration */ +.kp { font-weight: bold } /* Keyword.Pseudo */ +.kr { font-weight: bold } /* Keyword.Reserved */ +.kt { color: #445588; font-weight: bold } /* Keyword.Type */ +.m { color: #009999 } /* Literal.Number */ +.s { color: #bb8844 } /* Literal.String */ +.na { color: #008080 } /* Name.Attribute */ +.nb { color: #999999 } /* Name.Builtin */ +.nc { color: #445588; font-weight: bold } /* Name.Class */ +.no { color: #ff99ff } /* Name.Constant */ +.ni { color: #800080 } /* Name.Entity */ +.ne { color: #990000; font-weight: bold } /* Name.Exception */ +.nf { color: #990000; font-weight: bold } /* Name.Function */ +.nn { color: #555555 } /* Name.Namespace */ +.nt { color: #000080 } /* Name.Tag */ +.nv { color: purple } /* Name.Variable */ +.ow { font-weight: bold } /* Operator.Word */ +.mf { color: #009999 } /* Literal.Number.Float */ +.mh { color: #009999 } /* Literal.Number.Hex */ +.mi { color: #009999 } /* Literal.Number.Integer */ +.mo { color: #009999 } /* Literal.Number.Oct */ +.sb { color: #bb8844 } /* Literal.String.Backtick */ +.sc { color: #bb8844 } /* Literal.String.Char */ +.sd { color: #bb8844 } /* Literal.String.Doc */ +.s2 { color: #bb8844 } /* Literal.String.Double */ +.se { color: #bb8844 } /* Literal.String.Escape */ +.sh { color: #bb8844 } /* Literal.String.Heredoc */ +.si { color: #bb8844 } /* Literal.String.Interpol */ +.sx { color: #bb8844 } /* Literal.String.Other */ +.sr { color: #808000 } /* Literal.String.Regex */ +.s1 { color: #bb8844 } /* Literal.String.Single */ +.ss { color: #bb8844 } /* Literal.String.Symbol */ +.bp { color: #999999 } /* Name.Builtin.Pseudo */ +.vc { color: #ff99ff } /* Name.Variable.Class */ +.vg { color: #ff99ff } /* Name.Variable.Global */ +.vi { color: #ff99ff } /* Name.Variable.Instance */ +.il { color: #009999 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/lxq_static/_static/searchtools.js b/lxq_static/_static/searchtools.js new file mode 100644 index 0000000..5cbfe00 --- /dev/null +++ b/lxq_static/_static/searchtools.js @@ -0,0 +1,518 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2010 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words, hlwords is the list of normal, unstemmed + * words. the first one is used to find the occurance, the + * latter for highlighting it. + */ + +jQuery.makeSearchSummary = function(text, keywords, hlwords) { + var textLower = text.toLowerCase(); + var start = 0; + $.each(keywords, function() { + var i = textLower.indexOf(this.toLowerCase()); + if (i > -1) + start = i; + }); + start = Math.max(start - 120, 0); + var excerpt = ((start > 0) ? '...' : '') + + $.trim(text.substr(start, 240)) + + ((start + 240 - text.length) ? '...' : ''); + var rv = $('
    ').text(excerpt); + $.each(hlwords, function() { + rv = rv.highlightText(this, 'highlighted'); + }); + return rv; +} + +/** + * Porter Stemmer + */ +var PorterStemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, success: null, + dataType: "script", cache: true}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (var i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

    ' + _('Searching') + '

    ').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

    ').appendTo(this.out); + this.output = $(' @@ -146,11 +142,8 @@

    Table Of Contents

    Previous topic

    -

    Tutorial

    -

    Next topic

    -

    Parser Module

    +

    Special Macros

    This Page

    diff --git a/genindex.html b/genindex.html index 9b7dc0c..36b1e9e 100644 --- a/genindex.html +++ b/genindex.html @@ -199,6 +199,7 @@

    R

    rb_tree_delete (C function)
    rb_tree_insert (C function)
    register_custom_filter (C function)
    +
    register_simple_custom_filter (C function)
    remove_all (C function)
    diff --git a/lxq_sources/index.txt b/lxq_sources/index.txt index 86c711f..3b0527c 100644 --- a/lxq_sources/index.txt +++ b/lxq_sources/index.txt @@ -12,20 +12,19 @@ libxmlquery documentation **query** xml documents. If you are new to **libxmlquery** start by reading the -:doc:`Tutorial `. +:doc:`Tutorial `. .. toctree:: :maxdepth: 2 tutorial/tutorial - applications/shell parser/parser dom querying data_structures/datastructures macros.h - shell bindings + applications/shell You may also find specific object documentation in the :ref:`genindex`. diff --git a/lxq_sources/querying.txt b/lxq_sources/querying.txt index 75ce33c..5920c4c 100644 --- a/lxq_sources/querying.txt +++ b/lxq_sources/querying.txt @@ -39,18 +39,11 @@ The function `xmlquery_query` is defined to help filter and match nodes in the .. c:function:: generic_list* xmlquery_query(const char* pattern, dom_node* root) + :c:member:`pattern` Query pattern to apply to XML document. -.. c:function:: dom_node* xmlquery_query_one(const char* pattern, dom_node* root) - - This is a helper function designed to facilitate selection of single nodes. - Selects the first node returned by a given query, it is equivalent to the - following code:: - - dom_node* single = NULL; - generic_list* l = xmlquery_query(patterm, root) - if((l != NULL && l->count > 0) - single = (dom_node*) get_element_at(l, 0); + :c:member:`root` A root of a DOM tree where to begin the query. + This function applies a query to a given DOM tree and returns a list of elements. Introduction ^^^^^^^^^^^^ @@ -83,3 +76,27 @@ A more complex selector, this selector will match nodes with the name *foo*, with an attribute named *attr* with the value *bar*, and the node must also be the *only child* of its parent node. + +Custom pseudo-filters +^^^^^^^^^^^^^^^^^^^^^ + +We've created some new features. We added the possibility of making *custom pseudo-filters*. +*Custom pseudo-filters* provide a way for the user to define their own filters, which can be +chained with other query operators. + +To create a *custom pseudo-filter* you just need to define a function with the one of the following signatures:: + + int simple_filter(dom_node* node); + int complex_filter(dom_node* node, list* args); + +The first one creates a filter that doesn't take any arguments. If you want to design a filter that takes arguments, you must use the second signature. + +After defining your filter you need to register them. You do this by calling: + +.. c:function:: void register_simple_custom_filter(const char* name, int (*filter)(dom_node* node)) + +.. c:function:: void register_custom_filter(const char* name, int (*filter)(dom_node* node, list* args)) + +The first function registers a simple filter, while the second registers a complex one. + +When you're done with this you can call your filters just like a CSS3 *pseudo-filter*. diff --git a/macros.h.html b/macros.h.html index 77f5327..eed17f8 100644 --- a/macros.h.html +++ b/macros.h.html @@ -22,6 +22,7 @@ + @@ -31,6 +32,9 @@

    Navigation

  • index
  • +
  • + next |
  • previous |
  • @@ -156,6 +160,9 @@

    Table Of Contents

    Previous topic

    Data Structures

    +

    Next topic

    +

    Shell

    This Page

    • Navigation
    • index
    • +
    • + next |
    • previous |
    • diff --git a/objects.inv b/objects.inv index 4c087c08e73ffe265d880b6e0069f9c3e6f3699d..075f63335383282a5d2065ef8c9f99c773a2ebdb 100644 GIT binary patch delta 806 zcmV+>1KIqT2cZX$h=12K$Tfe^LxBSQ0D>kbvJfsRm&E@245=lOtw=J*mjt3lLvoh) z-dJ1N7zwA!2l=A-0aW$)T(##%-M{#C3|jrD{#Y3mRKL^GLk(u(qhYoGqBHftojA@7 zyS3izUuW=_*YF_We}o8?czKORgvOfcxsp6^=7WnOLwE{0LO!MXcNvY+!$9M zxOgkPC3ha!NvrwidD%U6|Guoj5c1+N7VliewbZM|hudS2qHMTcbL^!R6UVbxxx|?} z1P4%_=AqtN>wn9fr0v;I2+Y7KP*RF-8dLAe>h$!b-IB^M;E}g_TgFy3f(KxTN8lR4 z`ji(I6jm;iAQZ=_rLVu=nK7|f@nsk;!3)d>H^HxUQS?Vj z8~L6se9OgJvDG{6`phG`l-574+Vh2!tzU#Oz6wOG7zFc^Wz{w8hEg6(9K@mD!%IgXvyDGms zCWJX_xAL}!TQs;Da?KUyVnt!*R_evUjkq{4Y{!y>PVU2WU@?tm{-gIjQOEDS;)is$p z@wJHQEAM8?sYD7-Bjg$AHk=C;VHxV@Y5w981f{(at+ kl^@ALH-609r%Swb0VMm52=3Wj_i3yJ(3{@p6W>opq2Z^FRR910 delta 797 zcmV+&1LFLl2bc$th<{f%$Tfe^LxBSQfB{WTWWiiiE=m0N8EUg+E0Rp=Vnft$$l2b! zkusvv0zV7q#j9jTl*Qqts4oZAz4&$VO8zMR7!f2EzvI$ViF#&JzuN6+MIAEBPgB8m ztrPp#3jAdyJ_-CEFkr!7--718GP-yv1oI4>w}Ja$(LKlK>wjabf9Svmi>52BYfQ%j1SFnpwV@~TO3ut#qZ z)5F~7TWwsre}8%|e?cn>`%<}!3eNCa@@F0kj=i+$5*eA=f>*nJZh+_lpOwrvtbZ<_|97KWZk6_JDF-yJt$K%x>`45Y z(YaE!#O&d3`v5XZZ?^%k%MC+w2AcF<&2!{zOfnfme>1XlZJ>%i8m7)A&N$LF`ypWA z-GmIK@Y=D59H6TGC6TzM0e3T+-x!fWn-{!1?t?3zdf*uN8B^L&#Pt^7G9YE)lh7t= b;TDYbDBwHn-m{qYDWn;Y8{6{*?;$Vi$195< diff --git a/parser/parser.html b/parser/parser.html index 14fbb17..2d853d0 100644 --- a/parser/parser.html +++ b/parser/parser.html @@ -23,7 +23,7 @@ - +
    @@ -149,8 +149,8 @@

    Table Of Contents

    Previous topic

    -

    Shell

    +

    Tutorial

    Next topic

    Document Object Model

    @@ -186,7 +186,7 @@

    Navigation

    next |
  • - previous |
  • libxmlquery v0.1.4 documentation »
  • diff --git a/querying.html b/querying.html index 2b7f1e2..9cbe1b0 100644 --- a/querying.html +++ b/querying.html @@ -119,9 +119,11 @@

    Custom pseudo-filters

    The first one creates a filter that doesn’t take any arguments. If you want to design a filter that takes arguments, you must use the second signature.

    After defining your filter you need to register them. You do this by calling:

    -
    .. c:function:: void register_simple_custom_filter(const char* name, int (*filter)(dom_node* node))
    -
    -
    +
    +
    +void register_simple_custom_filter(const char* name, int (*filter)(dom_node* node))
    +
    +
    void register_custom_filter(const char* name, int (*filter)(dom_node* node, list* args))
    diff --git a/searchindex.js b/searchindex.js index 60fbfdf..89794cd 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{"":{dequeue:[5,0,1],new_element_node:[3,0,1],new_queue:[5,0,1],remove_element_at:[5,0,1],prepend_element:[5,0,1],get_children:[3,0,1],siterator:[5,1,1],new_stack:[5,0,1],parse_xml:[6,0,1],enqueue:[5,0,1],set_value:[3,0,1],list:[5,1,1],get_name:[3,0,1],sdoc:[3,1,1],search_rbtree:[5,0,1],get_element_pos:[5,0,1],tree_iterator_next:[5,0,1],parse_string:[6,0,1],get_element_at:[5,0,1],new_text_node:[3,0,1],duplicate_generic_list:[5,0,1],set_xml_declaration:[3,0,1],"__alloc":[2,0,1],register_custom_filter:[1,0,1],remove_node:[3,0,1],pop_stack:[5,0,1],insert_element_at:[5,0,1],generic_list_get_count:[5,0,1],rb_tree_insert:[5,0,1],delete_attribute:[3,0,1],new_generic_list_iterator:[5,0,1],prepend_child:[3,0,1],new_cdata:[3,0,1],remove_element:[5,0,1],peek_element_type_at:[5,0,1],set_element_at:[5,0,1],xmlquery_query:[1,0,1],generic_list_s:[5,1,1],get_descendants:[3,0,1],push_stack:[5,0,1],set_namespace:[3,0,1],get_namespace:[3,0,1],remove_all:[5,0,1],destroy_generic_list:[5,0,1],set_element_with_type_at:[5,0,1],tree_iterator_has_next:[5,0,1],node_to_string:[3,0,1],new_generic_list:[5,0,1],parse_file:[6,0,1],set_parent:[3,0,1],new_document:[3,0,1],get_child_at:[3,0,1],remove_duplicates:[5,0,1],get_attribute_by_name:[3,0,1],new_rbtree:[5,0,1],add_element_with_type:[5,0,1],add_element:[5,0,1],get_doc_root:[3,0,1],new_attribute:[3,0,1],merge_lists:[5,0,1],doc:[3,1,1],stree_node:[5,1,1],rb_tree_delete:[5,0,1],tree_root:[5,1,1],parse_xml_from_string:[6,0,1],add_attribute:[3,0,1],get_element_and_type_at:[5,0,1],peek_stack_type:[5,0,1],node_type:[3,1,1],append_element:[5,0,1],insert_element_with_type_at:[5,0,1],enqueue_with_type:[5,0,1],destroy_rbtree:[5,0,1],push_stack_type:[5,0,1],destroy_generic_list_iterator:[5,0,1],new_simple_rbtree:[5,0,1],get_xml_declaration:[3,0,1],get_elements_by_name:[3,0,1],get_value:[3,0,1],tree_node:[5,1,1],destroy_iterator:[5,0,1],generic_list_iterator_has_next:[5,0,1],destroy_dom_node:[3,0,1],get_text_nodes:[3,0,1],dom_node:[3,1,1],snode:[3,1,1],tree_iterator:[5,1,1],generic_list_is_empty:[5,0,1],sroot:[5,1,1],new_tree_iterator:[5,0,1],set_name:[3,0,1],append_child:[3,0,1],list_bucket:[5,1,1],peek_queue_type:[5,0,1],append_children:[3,0,1],set_doc_root:[3,0,1],sorted_insert_element_with_type:[5,0,1],generic_list_iterator_next:[5,0,1],destroy_dom_tree:[3,0,1]}},terms:{all:[2,1,3,5,6,7],code:[5,2,7,6],chain:1,queri:[6,0,7,1,4],global:[6,3],xmlquery_query_on:[],follow:[2,1,3,5,6,7],children:3,extra:6,whose:3,"const":[5,6,1],uint8_t:5,mmmmmmm:4,program:[5,6,7,4],becam:1,sens:5,fatal:2,above_source_fil:[5,2,6,3],sourc:5,everi:[5,7,1],string:[6,2,1,3],fals:[5,7],"void":[2,1,3,5,6,7],rise:1,eeee:4,variable_nam:4,veri:4,retriev:7,relev:5,level:2,new_rbtre:5,list:[5,0,7,1,3],iter:5,"try":7,item:[7,4],stderr:2,small:5,refer:1,impli:5,smaller:[5,2],search_rbtre:5,colect:0,register_custom_filt:1,htm:7,yacc:6,second:[5,1,3],design:1,pass:[5,2,3],append:[5,3],even:[5,2],index:[0,3],what:[2,4],compar:5,cast:2,neg:5,section:[5,2,6,3],node_to_str:[6,7,3],abl:[2,7],access:[5,6,1,3],delet:[5,1,3],version:[2,7,3],get_element_po:5,"new":[5,0,1,3],insert_element_at:5,ever:2,method:[5,1],generic_list_iter:[5,7],remove_dupl:5,full:5,parse_xml_from_str:6,append_el:5,gener:[5,0,4],here:[5,4],behaviour:5,let:[5,2,7,3],free:[5,6,7,3],address:[5,2],ver:3,modifi:3,sinc:3,valu:[5,1,3],search:[5,7,3],aug:7,ahead:7,add_el:5,technolog:1,reason:6,queue:5,behav:5,chang:[7,3],ddebug:[6,2],binary_fil:4,sorted_insert_element_with_typ:5,appli:[5,1],transit:5,filenam:6,prepend_el:5,printf:[5,2,7,6,3],set_element_with_type_at:5,text_nod:[7,3],select:1,node_typ:3,from:[1,3,4,5,6,7],describ:[5,2],would:[4,1],memori:[5,6,3],regist:1,two:[5,6,7,3],next:[5,6],qqqq:4,call:[5,4,1,2,3],recommend:[6,3],suppos:3,type:[5,2,4,3],more:[5,1],sort:5,flat:1,desir:3,get_nam:3,relat:2,line:2,problem:2,notic:[5,2,3],warn:2,flag:2,parse_fil:6,new_attribut:3,set_valu:[7,3],hold:5,iii:4,must:[5,7,1,3],dictat:5,word:3,get_doc_root:[6,7,3],attr_nam:3,alia:[5,2],peek_stack_typ:5,can:[2,1,3,4,5,6],learn:7,fprintf:2,purpos:[5,4],root:[5,6,1,3],tree_root:5,control:3,prompt:4,tag:3,caution:3,want:[5,7,1,3],serial:[6,0,7,3],type1:5,occur:6,type2:5,read_fil:7,alwai:[5,2],gcc:[5,2,7,6,3],end:[5,6,7,3],divid:6,anoth:[5,6,3],compare_function_point:5,how:[2,3,4,5,6,7],simpl:[5,4,7,1,3],parse_xml:[6,7,3],css:1,map:6,generic_list_is_empti:5,after:[4,1,3],get_xml_declar:3,befor:[5,7],embrac:1,mai:[0,1,2,3,5,6],multipl:5,data:[5,0,3],grow:5,demonstr:4,util:1,alloc:[5,0,2],third:5,stdio:[5,2,7,6,3],correspond:3,element:[5,7,1,3],caus:2,recompil:[6,2],generic_list_iterator_next:[5,7],order:[5,3],oper:1,help:[0,1,4,2],ouput:5,rearang:1,over:[5,2,1],becaus:[5,2,6,3],through:[6,7,1,3],"__va_args__":2,still:5,pointer:[5,3],entiti:3,typedef:[5,3],xml_file:[6,3],get_valu:3,better:1,yaml:3,complex:1,complex_filt:1,main:[5,2,7,6,3],flex:6,them:[4,1,2],"return":[2,1,3,5,6,7],thei:5,handl:3,encod:7,safe:6,initi:5,facilit:[],front:6,bar:1,now:7,bigger:5,introduct:1,generic_list_:[5,3],key_address:5,grammar:6,name:[5,2,1,6,3],anyth:5,separ:1,each:[5,3],debug:2,found:[5,3],mean:[5,2],compil:[0,2,3,4,5,6,7],domain:7,replac:5,new_docu:3,stringli:6,realli:[7,3],notabili:1,"static":2,year:1,our:[5,2,7,4,6],happen:[5,2,3],special:[0,1,2],out:[5,7],variabl:[6,4,3],shown:[2,7],space:[5,3],get_descend:3,parse_str:6,mere:2,content:[7,1],print:[2,4,3],pop_stack:5,occurr:5,red:[5,0],rb_tree_insert:5,xmlquery_queri:1,earlier:1,destroy_generic_list_iter:[5,7],advanc:5,manipul:[7,1],differ:[5,1,3],argv:[7,3],mmm:4,nth:3,prepend_child:3,base:5,"byte":5,argc:[7,3],acord:5,unpredict:5,care:5,symetr:5,thread:6,lexer:6,keep:[5,3],filter:1,thing:[5,2,7,3],isn:3,onto:[5,6,3],first:[5,2,1,3],feed:7,directli:3,arrai:[5,2],independ:1,number:[5,2,1],yourself:3,datastructur:5,alreadi:[5,3],done:[5,2,1,6,3],stdlib:5,destroy_generic_list:5,tree_iterator_has_next:5,new_simple_rbtre:5,given:[5,4,1,3],sheet:1,associ:3,interact:[0,4],capac:5,messag:[6,2,4],checker:3,source_fil:7,query_runn:7,conveni:4,"final":[5,3],store:[5,6,4,3],too:3,shell:[0,4],option:2,namespac:3,pubdat:7,copi:6,selector:[0,1],part:3,pars:[6,0,7,3],cdata:3,enqueu:5,exactli:[5,7,3],than:[5,2],rss:[7,4],wide:1,kind:[5,1,3],list_bucket:5,new_element_nod:3,provid:[5,1,3],new_queu:5,remov:[5,2,3],tree:[5,0,7,1,3],structur:[5,0,6,3],charact:[2,7],project:2,compare_integ:5,were:[5,2],posit:[5,1],stree_nod:5,thu:2,browser:1,xpath:1,sai:5,get_namespac:3,modern:1,query_express:4,argument:[5,4,7,1,3],have:[5,2,7,6,3],need:[5,4,1,6,2],seen:1,seem:5,"null":[5,6,7,3],engin:4,equival:[],uuuuuu:4,destroi:[5,3],note:[5,2,1],also:[5,0,1,3],exampl:[2,1,3,4,5,6,7],tree_iter:5,take:[5,1],which:[2,1,3,4,5,6,7],generic_list_iterator_has_next:[5,7],delete_attribut:3,dom_nod:[7,1,3],singl:[5,6,3],serializarion:3,begin:[5,4,7,1],pain:2,though:5,buffer:2,object:[5,0,3],most:[4,1],why:5,print_xml:4,append_child:3,don:5,file_to_load:4,dom:[0,7,1,3],doc:[6,7,4,3],doe:[5,1,3],declar:[6,3],clean:[7,3],propos:1,"__alloc":2,fact:1,someattribut:6,pope:5,show:[2,3,4,5,6,7],text:3,random:[5,1],rbtree:5,tree_nod:5,detroi:5,find:0,remove_element_at:5,enqueue_with_typ:5,xml:[0,1,3,4,6,7],current:[5,6,1,3],onli:[5,1,3],locat:[5,2,6],pretti:7,new_tree_iter:5,explain:[6,3],someel:6,black:[5,0],folder:[5,2,6,3],destroy_iter:5,new_stack:5,info:2,get:[5,2,7],"__file__":2,bear:3,lxq_document:[6,3],report:6,banner:4,attr:1,retreiv:5,mon:7,sdoc:3,deduc:4,contain:[5,2,3],attribut:[1,3],where:[5,2,1,6,3],bother:2,desced:3,summari:5,set:[5,3],see:[5,7,4],int16_t:5,result:[6,2,7],arg:1,fail:[5,2],get_elements_by_nam:3,extend:3,awar:[6,1,3],flexibl:3,libxmlqueri:[6,0,7],parent:[5,1,3],pattern:1,patterm:[],siter:5,won:2,simplest:4,generic_list_get_count:5,dequeu:5,altern:1,signatur:1,accord:[5,2,1],str:[6,2],kei:[5,2],javascript:[1,3],style:1,entir:3,remove_el:5,tue:7,new_text_nod:3,both:5,set_element_at:5,howev:[5,2,7],prite:6,equal:5,against:1,tutori:[0,7],context:1,mani:6,com:7,get_attribute_by_nam:3,load:4,push_stack:5,set_par:3,color:5,int32_t:5,push_stack_typ:5,pop:5,header:[6,7],remove_nod:3,path:[5,2,7,6,3],typic:4,alloch:5,duplic:5,quit:4,pin:2,coupl:6,rrrr:4,three:[5,1,3],empti:5,whom:3,json:3,much:5,new_generic_list:5,reflex:5,recomend:1,new_cdata:3,mind:[5,3],xxx:4,ani:[2,1,3,4,5,6,7],llll:4,"__line__":2,child:[1,3],quick:1,careful:3,present:[5,4,1],strongli:6,ident:5,look:[5,2,3],properti:5,defin:[5,2,1,6,3],"while":[5,2,7,1],ain:3,abov:[5,7],error:[6,2],exist:[5,4],invoc:5,cleanup:7,malloc:[5,2],helper:[],css2:1,worri:5,valgrind:5,eras:2,insert_element_with_type_at:5,get_text_nod:3,sever:[2,1],develop:[4,1],parse_queri:6,perform:5,make:[4,1],same:[5,7,3],binari:[2,4],html:1,descend:3,document:[0,1,3,4,6,7],http:7,optim:5,upon:1,snode:3,capabl:[5,7,1,3],jqueri:1,user:[5,1],destroy_dom_nod:3,realm:1,keya:5,stack:[5,7],peek_queue_typ:5,travers:3,kept:[5,2,6,3],lib:6,bewar:5,older:5,nevertheless:5,macro:[0,2],markup:3,well:[2,1],without:[5,2,4,6],command:[5,4],thi:[2,1,3,4,5,6,7],endif:2,ispermalink:7,model:[0,3],left:5,just:[5,4,1,2],obtain:5,rest:3,gdb:4,ifdef:2,languag:[1,3],web:1,keyb:5,struct:[5,3],easi:4,point:[5,2,3],get_children:3,add:[5,2,7,3],valid:[2,3],inner:1,realloc:5,input:[5,6,3],modul:[6,0,3],match:1,css3:1,applic:4,lxq_selected_el:6,format:[2,4,3],read:0,xqueri:1,parse_dom:[6,3],know:[5,3],guid:7,tire:2,lastbuildd:7,like:1,insert:[5,3],beggin:3,resid:2,helpful:7,specif:[0,1],should:[5,6,3],serialization_typ:3,manual:1,integ:5,noth:[5,3],necessari:5,channel:7,cascad:1,popular:1,output:[2,7,3],resiz:5,page:2,depend:[2,3],www:7,right:[5,2],old:[5,7],transvers:1,lxq_parser:[6,7,3],some:[6,2,1,3],back:5,enumer:3,guaranti:5,proper:2,sizeof:[5,2],add_attribut:3,get_element_at:5,librari:1,remove_al:5,total:5,bottom:2,xml_declar:3,definit:[5,2,3],exit:[5,2,4,6],foo:1,freed:5,peek:5,set_nam:3,run:[5,0,7,4,2],set_xml_declar:3,"enum":3,usag:[5,7,4],els:2,register_simple_custom_filt:1,global_docu:7,how_mani:2,although:5,eventu:5,"throw":3,simpler:1,about:5,actual:[5,2,3],peek_element_type_at:5,generic_list:1,destroy_rbtre:5,stand:1,act:5,ajax:1,produc:5,block:5,simple_filt:1,own:1,primarili:1,eeeee:4,bbb:4,append_children:3,set_namespac:3,been:[2,1,3],tree_iterator_next:5,yyi:4,your:[6,2,1],merg:[5,6],w3c:1,log:[5,0,2],wai:[1,3],aren:5,support:[4,3],get_desced:3,fast:5,custom:1,start:[5,0],interfac:4,includ:[5,2,7,6,3],"function":[0,1,2,3,5,6],get_child_at:[7,3],head:[5,3],rb_tree_delet:5,form:1,forc:6,conclud:7,link:7,heap:5,add_element_with_typ:5,eas:2,inlin:2,"true":5,denomin:3,count:5,notat:3,made:2,utf:7,xmlstring:6,consist:5,possibl:[5,6,1],wish:5,bucket:5,below:[7,3],otherwis:[5,3],capciti:5,reachabl:5,featur:[5,4,7,1],creat:[0,1,2,3,4,5,7],"int":[2,1,3,5,6,7],pseudo:1,parser:[6,0,3],get_element_and_type_at:5,doesn:[5,2,1,3],repres:[5,3],"char":[6,2,7,1,3],implement:[5,4,1,6],file:[2,3,4,5,6,7],int64_t:5,check:[5,2,7],fill:[5,2],again:2,intact:[5,3],titl:[7,4],when:[5,2,1,3],prepend:[5,3],field:[5,3],other:[5,2,1,3],rememb:5,test:[2,3,4,5,6,7],tie:1,you:[0,1,2,3,4,5,6,7],node:[5,4,7,1,3],new_generic_list_iter:[5,7],time:6,duplicate_generic_list:5,destroy_dom_tre:[6,7,3],consid:[5,2,3],merge_list:5,sroot:[5,3],stai:5,receiv:[5,2],cdata_text:3,set_doc_root:3,descript:[5,0,7,6,3],rule:1,obj:5,leak:[5,3],push:5,key_function_point:5},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Special Macros","Document Object Model","Shell","Data Structures","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","macros.h","dom","applications/shell","data_structures/datastructures","parser/parser","tutorial/tutorial"]}) \ No newline at end of file +Search.setIndex({objects:{"":{dequeue:[4,0,1],new_element_node:[2,0,1],new_queue:[4,0,1],remove_element_at:[4,0,1],prepend_element:[4,0,1],get_children:[2,0,1],siterator:[4,1,1],new_stack:[4,0,1],parse_xml:[6,0,1],enqueue:[4,0,1],set_value:[2,0,1],list:[4,1,1],get_name:[2,0,1],sdoc:[2,1,1],search_rbtree:[4,0,1],get_element_pos:[4,0,1],set_element_with_type_at:[4,0,1],parse_string:[6,0,1],get_element_at:[4,0,1],new_text_node:[2,0,1],duplicate_generic_list:[4,0,1],set_xml_declaration:[2,0,1],"__alloc":[5,0,1],register_custom_filter:[1,0,1],remove_node:[2,0,1],pop_stack:[4,0,1],insert_element_at:[4,0,1],generic_list_get_count:[4,0,1],rb_tree_insert:[4,0,1],delete_attribute:[2,0,1],new_generic_list_iterator:[4,0,1],prepend_child:[2,0,1],new_cdata:[2,0,1],remove_element:[4,0,1],peek_element_type_at:[4,0,1],set_element_at:[4,0,1],xmlquery_query:[1,0,1],generic_list_s:[4,1,1],get_descendants:[2,0,1],push_stack:[4,0,1],set_namespace:[2,0,1],get_namespace:[2,0,1],remove_all:[4,0,1],destroy_generic_list:[4,0,1],tree_iterator_next:[4,0,1],tree_iterator_has_next:[4,0,1],node_to_string:[2,0,1],new_generic_list:[4,0,1],parse_file:[6,0,1],set_parent:[2,0,1],new_document:[2,0,1],get_child_at:[2,0,1],remove_duplicates:[4,0,1],get_attribute_by_name:[2,0,1],new_rbtree:[4,0,1],add_element_with_type:[4,0,1],add_element:[4,0,1],get_doc_root:[2,0,1],new_attribute:[2,0,1],merge_lists:[4,0,1],append_children:[2,0,1],stree_node:[4,1,1],rb_tree_delete:[4,0,1],tree_root:[4,1,1],parse_xml_from_string:[6,0,1],add_attribute:[2,0,1],get_element_and_type_at:[4,0,1],peek_stack_type:[4,0,1],node_type:[2,1,1],append_element:[4,0,1],insert_element_with_type_at:[4,0,1],enqueue_with_type:[4,0,1],register_simple_custom_filter:[1,0,1],destroy_rbtree:[4,0,1],push_stack_type:[4,0,1],destroy_generic_list_iterator:[4,0,1],new_simple_rbtree:[4,0,1],get_xml_declaration:[2,0,1],get_elements_by_name:[2,0,1],get_value:[2,0,1],tree_node:[4,1,1],destroy_iterator:[4,0,1],generic_list_iterator_has_next:[4,0,1],destroy_dom_node:[2,0,1],get_text_nodes:[2,0,1],dom_node:[2,1,1],snode:[2,1,1],tree_iterator:[4,1,1],generic_list_is_empty:[4,0,1],sroot:[4,1,1],new_tree_iterator:[4,0,1],set_name:[2,0,1],append_child:[2,0,1],list_bucket:[4,1,1],peek_queue_type:[4,0,1],doc:[2,1,1],set_doc_root:[2,0,1],sorted_insert_element_with_type:[4,0,1],generic_list_iterator_next:[4,0,1],destroy_dom_tree:[2,0,1]}},terms:{all:[5,1,2,4,6,7],code:[4,5,7,6],chain:1,queri:[6,0,7,1,3],global:[6,2],follow:[5,1,2,4,6,7],children:2,whose:2,"const":[4,6,1],uint8_t:4,mmmmmmm:3,program:[4,6,7,3],becam:1,sens:4,fatal:5,above_source_fil:[4,5,6,2],sourc:4,everi:[4,7,1],string:[6,5,1,2],fals:[4,7],"void":[5,1,2,4,6,7],rise:1,eeee:3,variable_nam:3,veri:3,retriev:7,relev:4,level:5,new_rbtre:4,list:[4,0,7,1,2],iter:4,"try":7,item:[7,3],stderr:5,small:4,freed:4,impli:4,smaller:[4,5],search_rbtre:4,colect:0,register_custom_filt:1,htm:7,eas:5,yacc:6,second:[4,1,2],design:1,pass:[4,5,2],append:[4,2],even:[4,5],index:[0,2],what:[5,3],compar:4,defin:[4,5,1,6,2],neg:4,section:[4,5,6,2],node_to_str:[6,7,2],abl:[5,7],access:[4,6,1,2],delet:[4,1,2],version:[5,7,2],get_element_po:4,"new":[4,0,1,2],insert_element_at:4,ever:5,method:[4,1],generic_list_iter:[4,7],remove_dupl:4,full:4,parse_xml_from_str:6,append_el:4,gener:[4,0,3],here:[4,3],behaviour:4,let:[4,5,7,2],free:[4,6,7,2],address:[4,5],ver:2,modifi:2,sinc:2,valu:[4,1,2],search:[4,7,2],aug:7,ahead:7,add_el:4,technolog:1,prepend_child:2,queue:4,behav:4,chang:[7,2],ddebug:[6,5],binary_fil:3,sorted_insert_element_with_typ:4,appli:[4,1],transit:4,filenam:6,prepend_el:4,printf:[4,5,7,6,2],set_element_with_type_at:4,total:4,select:1,kei:[4,5],node_typ:2,from:[1,2,3,4,6,7],describ:[4,5],would:[3,1],memori:[4,6,2],regist:1,two:[4,6,7,2],next:[4,6],qqqq:3,call:[4,5,1,3,2],recommend:[6,2],text_nod:[7,2],black:[4,0],type:[4,5,3,2],more:[4,1],sort:4,flat:1,desir:2,get_nam:2,relat:5,notic:[4,5,2],warn:5,flag:5,parse_fil:6,worri:4,set_valu:[7,2],hold:4,iii:3,must:[4,7,1,2],dictat:4,word:2,get_doc_root:[6,7,2],attr_nam:2,alia:[4,5],peek_stack_typ:4,can:[5,1,2,3,4,6],learn:7,fprintf:5,purpos:[4,3],root:[4,6,1,2],tree_root:4,control:2,prompt:3,xml_declar:2,capciti:4,tag:2,caution:2,want:[4,7,1,2],serial:[6,0,7,2],type1:4,occur:6,type2:4,read_fil:7,alwai:[4,5],gcc:[4,5,7,6,2],end:[4,6,7,2],divid:6,anoth:[4,6,2],compare_function_point:4,how:[5,2,3,4,6,7],simpl:[4,3,7,1,2],parse_xml:[6,7,2],css:1,map:6,generic_list_is_empti:4,earlier:1,get_xml_declar:2,befor:[4,7],embrac:1,mai:[0,1,2,4,5,6],multipl:4,associ:2,grow:4,demonstr:3,util:1,alloc:[4,0,5],list_bucket:4,stdio:[4,5,7,6,2],correspond:2,element:[4,7,1,2],caus:5,recompil:[6,5],generic_list_iterator_next:[4,7],order:[4,2],includ:[4,5,7,6,2],feed:7,help:[0,1,3,5],ouput:4,rearang:1,over:[4,5,1],becaus:[4,5,6,2],through:[6,7,1,2],"__va_args__":5,still:4,pointer:[4,2],entiti:2,typedef:[4,2],xml_file:[6,2],get_valu:2,better:1,yaml:2,html:1,complex_filt:1,main:[4,5,7,6,2],flex:6,them:[5,1,3],"return":[5,1,2,4,6,7],thei:4,handl:2,encod:7,safe:6,initi:4,front:6,retreiv:4,now:7,bigger:4,introduct:1,generic_list_:[4,2],document:[0,1,2,3,6,7],grammar:6,name:[4,5,1,6,2],anyth:4,separ:1,each:[4,2],debug:5,found:[4,2],mean:[4,5],compil:[0,2,3,4,5,6,7],domain:7,replac:4,new_docu:2,stringli:6,realli:[7,2],notabili:1,"static":5,year:1,our:[4,5,7,3,6],happen:[4,5,2],special:[0,1,5],out:[4,7],variabl:[6,3,2],shown:[5,7],space:[4,2],get_descend:2,yyi:3,your:[6,5,1],content:[7,1],print:[5,3,2],pop_stack:4,occurr:4,red:[4,0],rb_tree_insert:4,xmlquery_queri:1,after:[3,1,2],destroy_generic_list_iter:[4,7],advanc:4,manipul:[7,1],given:[4,3,1,2],argv:[7,2],mmm:3,nth:2,reason:6,base:4,"byte":4,argc:[7,2],acord:4,unpredict:4,care:4,symetr:4,thread:6,lexer:6,keep:[4,2],filter:1,thing:[4,5,7,2],isn:2,duplicate_generic_list:4,onto:[4,6,2],first:[4,5,1,2],oper:1,directli:2,arrai:[4,5],independ:1,number:[4,5,1],yourself:2,datastructur:4,alreadi:[4,2],done:[4,5,1,6,2],stdlib:4,destroy_generic_list:4,tree_iterator_has_next:4,new_simple_rbtre:4,differ:[4,1,2],sheet:1,data:[4,0,2],interact:[0,3],capac:4,messag:[6,5,3],stack:[4,7],checker:2,source_fil:7,query_runn:7,conveni:3,"final":[4,2],store:[4,6,3,2],too:2,shell:[0,3],option:5,namespac:2,pubdat:7,copi:6,selector:[0,1],part:2,pars:[6,0,7,2],cdata:2,enqueu:4,exactli:[4,7,2],than:[4,5],rss:[7,3],wide:1,kind:[4,1,2],third:4,new_element_nod:2,provid:[4,1,2],new_queu:4,remov:[4,5,2],tree:[4,0,7,1,2],structur:[4,0,6,2],charact:[5,7],project:5,compare_integ:4,were:[4,5],posit:[4,1],int16_t:4,other:[4,5,1,2],markup:2,browser:1,"function":[0,1,2,4,5,6],sai:4,get_namespac:2,modern:1,query_express:3,argument:[4,3,7,1,2],realm:1,have:[4,5,7,6,2],need:[4,5,1,3,6],seen:1,seem:4,"null":[4,6,7,2],engin:3,lib:6,uuuuuu:3,destroi:[4,2],note:[4,5,1],also:[4,0,1,2],without:[4,5,3,6],tree_iter:4,take:[4,1],which:[5,1,2,3,4,6,7],conclud:7,generic_list_iterator_has_next:[4,7],command:[4,3],noth:[4,2],singl:[4,6,2],serializarion:2,begin:[4,3,7,1],pain:5,"enum":2,though:4,buffer:5,object:[4,0,2],most:[3,1],why:4,print_xml:3,append_child:2,don:4,file_to_load:3,dom:[0,7,1,2],doc:[6,7,3,2],doe:[4,1,2],declar:[6,2],clean:[7,2],left:4,"__alloc":5,fact:1,someattribut:6,pope:4,show:[5,2,3,4,6,7],text:2,random:[4,1],rbtree:4,tree_nod:4,detroi:4,find:0,remove_element_at:4,enqueue_with_typ:4,xml:[0,1,2,3,6,7],current:[4,6,1,2],onli:[4,1,2],locat:[4,5,6],pretti:7,new_tree_iter:4,explain:[6,2],someel:6,suppos:2,folder:[4,5,6,2],destroy_iter:4,new_stack:4,set_par:2,count:4,get:[4,5,7],"__file__":5,bear:2,lxq_document:[6,2],report:6,banner:3,xmlstring:6,bar:1,sdoc:2,deduc:3,contain:[4,5,2],dequeu:4,where:[4,5,1,6,2],bother:5,desced:2,summari:4,set:[4,2],see:[4,7,3],stree_nod:4,result:[6,5,7],arg:1,fail:[4,5],get_elements_by_nam:2,awar:[6,1,2],flexibl:2,libxmlqueri:[6,0,7],parent:[4,1,2],pattern:1,siter:4,won:5,simplest:3,generic_list_get_count:4,attribut:[1,2],altern:1,signatur:1,accord:[4,5,1],str:[6,5],extend:2,javascript:[1,2],style:1,entir:2,remove_el:4,tue:7,new_text_nod:2,both:4,set_element_at:4,howev:[4,5,7],prite:6,equal:4,against:1,tutori:[0,7],context:1,mani:6,com:7,get_attribute_by_nam:2,load:3,push_stack:4,point:[4,5,2],color:4,int32_t:4,push_stack_typ:4,pop:4,header:[6,7],peek_element_type_at:4,remove_nod:2,path:[4,5,7,6,2],typic:3,alloch:4,duplic:4,quit:3,creat:[0,1,2,3,4,5,7],coupl:6,rrrr:3,three:[4,1,2],empti:4,whom:2,json:2,much:4,new_generic_list:4,reflex:4,recomend:1,new_cdata:2,mind:[4,2],xxx:3,ani:[5,1,2,3,4,6,7],llll:3,doesn:[4,5,1,2],child:[1,2],quick:1,careful:2,present:[4,3,1],input:[4,6,2],"char":[6,5,7,1,2],ident:4,look:[4,5,2],properti:4,cast:5,"while":[4,5,7,1],ain:2,abov:[4,7],error:[6,5],invoc:4,malloc:[4,5],applic:3,new_attribut:2,valgrind:4,eras:5,insert_element_with_type_at:4,get_text_nod:2,sever:[5,1],develop:[3,1],parse_queri:6,perform:4,make:[3,1],same:[4,7,2],binari:[5,3],complex:1,descend:2,key_address:4,http:7,optim:4,upon:1,snode:2,capabl:[4,7,1,2],jqueri:1,user:[4,1],destroy_dom_nod:2,keyb:4,keya:4,implement:[4,3,1,6],peek_queue_typ:4,travers:2,kept:[4,5,6,2],bewar:4,older:4,nevertheless:4,macro:[0,5],thu:5,well:[5,1],know:[4,2],exampl:[5,1,2,3,4,6,7],delete_attribut:2,thi:[5,1,2,3,4,6,7],endif:5,ispermalink:7,model:[0,2],propos:1,just:[4,5,1,3],obtain:4,rest:2,gdb:3,ifdef:5,languag:[1,2],web:1,struct:[4,2],easi:3,extra:6,get_children:2,add:[4,5,7,2],cleanup:7,realloc:4,els:5,modul:[6,0,2],match:1,css3:1,css2:1,lxq_selected_el:6,format:[5,3,2],read:0,beggin:2,parse_dom:[6,2],mon:7,tire:5,lastbuildd:7,like:1,insert:[4,2],xqueri:1,resid:5,helpful:7,specif:[0,1],should:[4,6,2],serialization_typ:2,manual:1,integ:4,add_attribut:2,necessari:4,channel:7,transvers:1,popular:1,output:[5,7,2],resiz:4,page:5,depend:[5,2],www:7,right:[4,5],old:[4,7],lxq_parser:[6,7,2],some:[6,5,1,2],back:4,enumer:2,guaranti:4,proper:5,sizeof:[4,5],intact:[4,2],get_element_at:4,librari:1,remove_al:4,guid:7,bottom:5,leak:[4,2],definit:[4,5,2],exit:[4,5,3,6],foo:1,refer:1,peek:4,set_nam:2,run:[4,0,7,3,5],set_xml_declar:2,cascad:1,usag:[4,7,3],global_docu:7,how_mani:5,although:4,eventu:4,"throw":2,simpler:1,about:4,actual:[4,5,2],append_children:2,generic_list:1,destroy_rbtre:4,stand:1,act:4,ajax:1,produc:4,block:4,simple_filt:1,own:1,primarili:1,eeeee:3,bbb:3,set_namespac:2,been:[5,1,2],tree_iterator_next:4,parse_str:6,mere:5,merg:[4,6],w3c:1,log:[4,0,5],wai:[1,2],aren:4,support:[3,2],get_desced:2,fast:4,custom:1,start:[4,0],interfac:3,inner:1,xpath:1,get_child_at:[7,2],head:[4,2],rb_tree_delet:4,form:1,forc:6,dom_nod:[7,1,2],link:7,heap:4,add_element_with_typ:4,line:5,inlin:5,"true":4,denomin:2,info:5,notat:2,made:5,utf:7,attr:1,consist:4,possibl:[4,6,1],wish:4,bucket:4,below:[7,2],otherwis:[4,2],problem:5,reachabl:4,featur:[4,3,7,1],pin:5,"int":[5,1,2,4,6,7],descript:[4,0,7,6,2],parser:[6,0,2],get_element_and_type_at:4,"__line__":5,repres:[4,2],strongli:6,exist:[4,3],file:[5,2,3,4,6,7],int64_t:4,check:[4,5,7],fill:[4,5],again:5,titl:[7,3],when:[4,5,1,2],prepend:[4,2],field:[4,2],valid:[5,2],rememb:4,test:[5,2,3,4,6,7],tie:1,you:[0,1,2,3,4,5,6,7],node:[4,3,7,1,2],new_generic_list_iter:[4,7],register_simple_custom_filt:1,destroy_dom_tre:[6,7,2],consid:[4,5,2],merge_list:4,sroot:[4,2],stai:4,receiv:[4,5],cdata_text:2,set_doc_root:2,pseudo:1,rule:1,obj:4,time:6,push:4,key_function_point:4},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Document Object Model","Shell","Data Structures","Special Macros","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","dom","applications/shell","data_structures/datastructures","macros.h","parser/parser","tutorial/tutorial"]}) \ No newline at end of file diff --git a/tutorial/tutorial.html b/tutorial/tutorial.html index 8de6e49..71b3cce 100644 --- a/tutorial/tutorial.html +++ b/tutorial/tutorial.html @@ -22,7 +22,7 @@ - + @@ -33,7 +33,7 @@

    Navigation

    index
  • - next |
  • Previous topic
  • libxmlquery documentation

    Next topic

    -

    Shell

    +

    Parser Module

    This Page

    -
    -void append_element(list* l, void* obj, int16_t type)
    +
    +void append_element_with_type(list* l, void* obj, int16_t type)

    l List where to append the element.

    obj New element to store in the list.

    type The type of the new element.

    @@ -186,8 +186,8 @@

    Function description

    -
    -void prepend_element(list* l, void* obj, int16_t type)
    +
    +void prepend_element_with_type(list* l, void* obj, int16_t type)

    l List where to prepend the element.

    obj New element to store in the list.

    type The type of the new element.

    @@ -200,7 +200,7 @@

    Function description

    l List where to add the element.

    obj New element to store in the list.

    type The type of the new element.

    -

    This function adds an element to a list. It differs from prepend_element() and append_element() in the sense that the user doesn’t need to know +

    This function adds an element to a list. It differs from prepend_element() and append_element() in the sense that the user doesn’t need to know Where the element will be added.

    @@ -221,8 +221,8 @@

    Function description
    -
    -void* get_element_and_type_at(const list* l, int32_t pos, int16_t* type)
    +
    +void* get_element_with_type_at(const list* l, int32_t pos, int16_t* type)

    l List from where to get the element.

    pos The element’s position.

    type An address to store the elements type.

    diff --git a/genindex.html b/genindex.html index 36b1e9e..d542560 100644 --- a/genindex.html +++ b/genindex.html @@ -63,7 +63,7 @@

    A

    append_child (C function)
    append_children (C function)
    -
    append_element (C function)
    +
    append_element_with_type (C function)
    @@ -111,9 +111,9 @@

    G

    get_doc_root (C function)
    -
    get_element_and_type_at (C function)
    get_element_at (C function)
    get_element_pos (C function)
    +
    get_element_with_type_at (C function)
    get_elements_by_name (C function)
    get_name (C function)
    get_namespace (C function)
    @@ -187,7 +187,7 @@

    P

    peek_stack_type (C function)
    pop_stack (C function)
    prepend_child (C function)
    -
    prepend_element (C function)
    +
    prepend_element_with_type (C function)
    push_stack (C function)
    push_stack_type (C function)
    diff --git a/lxq_sources/data_structures/datastructures.txt b/lxq_sources/data_structures/datastructures.txt index e17a276..77a120d 100644 --- a/lxq_sources/data_structures/datastructures.txt +++ b/lxq_sources/data_structures/datastructures.txt @@ -132,7 +132,7 @@ Function description This function inserts an element into a list in sorted order, according to the function pointer passed as an argument. -.. c:function:: void append_element(list* l, void* obj, int16_t type) +.. c:function:: void append_element_with_type(list* l, void* obj, int16_t type) :c:member:`l` List where to append the element. @@ -142,7 +142,7 @@ Function description This function inserts an element at the end of the list. -.. c:function:: void prepend_element(list* l, void* obj, int16_t type) +.. c:function:: void prepend_element_with_type(list* l, void* obj, int16_t type) :c:member:`l` List where to prepend the element. @@ -179,7 +179,7 @@ Function description This function returns the element stored at the given position. -.. c:function:: void* get_element_and_type_at(const list* l, int32_t pos, int16_t* type) +.. c:function:: void* get_element_with_type_at(const list* l, int32_t pos, int16_t* type) :c:member:`l` List from where to get the element. diff --git a/objects.inv b/objects.inv index 075f63335383282a5d2065ef8c9f99c773a2ebdb..28a067a404528d7715969658229724e80d5408fa 100644 GIT binary patch delta 824 zcmV-81IPTK2dM{;et%1D<1h@}_Y?+Zwwf@29wz+*N*>UW| zwH?Wu7M3NNBKh7UqpfU=gwM*Od{O)Ws(O5`+S8-%U;H|vRzIpgRt5#t@3{0(gPA#W zUhPkGTRm_mj?<0ZTEFdIx8X0Z;X%Ux00AoT@*0f5#+vH6l7AdI^XP)W;J`n{=gVVf zA);F>l*~e(K_0LrxxxE ziAOHp@*Hfr^T0l}njTNf?y38C*$t*3q@H5&&Q(~-nrb}WAA=ZW!}XG3FRd6Ep1exc z$=m@Qz zL#rCW5g5@CxJIzPY%+_Is-H;^ic{3$>F>YH7*{G4(rAa~!dWsoCXbpN0>?z~Xf=Cn z6g^E(5s=)8qI*L*E0=F=TY~qlLU-V`OW;`|IU7u-Eq~s&VC3M^M}tR}aGGUJk{zlH zj#RscfNK&lxyXoxb1>r|T_o}S5*76sp5vnEl87HzI6sx9OkV-shKNT;vMa&w0DJ;q zf&)u`*KjgPna@)T30_dHxIw>!wcw8>VDr5$`Id{NLaaCL>oZRrl#2~owWpnE^9Hcl z`JbxRk$?LF<*Ik}EJBr`omIj`E-8^+k_*@*x-kp1cFO|So>B7?^zyc$Q@xGVObHGW z?DMlUP&7N7*4nptiIN75%iRQKWGeseln~~uUCY}R71Q8qNHv$4i-pcO0rN_(?re!W zJucvdK1_Fhewb_6tD_F=j!rh_cT3!pgeGw)D1WAoU%KOS8MtcK$_cHX;7UO-bhy6J zt%Ca+-Lnjp0Qw@$MZMy!9u_u%X&mojQgXfeuCZjKd42<#)*A-#0_2~gS{BIJoD}v3 zXV2)SYhzZ7(J+fH^@t-|a{xXM1v`n)q*KaieaAud40Ma9%nmS*m(z@Yb%}z`dLc3W zSTVUajipc=f_Q@*m5CbA5o$q0F>-X}XToirgSQSrvhTEGPdx5}#TlL)-{%VuPfwyd C)tY$# delta 816 zcmV-01JC@a2cZX$et*es+b|Hl=PLxX*EGmAf6zmL0{sAjCMU8GE-IJA{`(B6C6cX3 zGRKz$qDDh}nVZ%@3q}rp%AC{?m^d~{Ixs6Y_DulC zgLP;V&Mn*+S0A`|E4(Fl9@t5%`R94rJ$3)SticfS;xQKQT*bB2tHy`hW00b3xL$MY zr4$Ec;Rzu%cLu2e39iG}9ES#&u?j~WjIj)~}l)$FxV z_%#0to4}nhx>uO9arxG^lwNHNrj4GeY2aA~C>u-h&3_$OSGM_RWj-Wc2g zTg)&!{scD(5T6lxV_T7&tk}$1r|>)gZ)18BR2Apg-=U?kwQ`}e{CBGZW@+(d7%ssJ z%m+8YuXR!MM@k#{o-KUK#agk|JMH?+Bf6BKZ8(UE%sCnaEH z!7j4WYJZ1QC=j6=b`fBT8?IgV?d8c(L`1!AHY&dBxGxmVNQb^$c#Ocw4(BZylrBLL zI$X-@3M0EJzdI&`IcvA_wuf6ZxEgZJ73N|^Vdhrq#lelZI52F-l7vp~!*t{J<9xtg z9jc)lRAtKVp19A{Cz3G`u7F5~UKgVxF_Rm{2Fh{WHs?H~bECuXjw?1SlG!N(gQ?x;t~X Date: Wed, 1 Dec 2010 18:16:24 +0000 Subject: [PATCH 12/13] Auto-commit by make gh_pages target --- lxq_sources/macros.h.txt | 2 +- lxq_sources/querying.txt | 43 +++++++++++++++++++++++++----- lxq_sources/tutorial/tutorial.txt | 14 +++++----- macros.h.html | 2 +- objects.inv | Bin 937 -> 931 bytes querying.html | 42 ++++++++++++++++++++++++----- searchindex.js | 2 +- tutorial/tutorial.html | 13 ++++----- 8 files changed, 90 insertions(+), 28 deletions(-) diff --git a/lxq_sources/macros.h.txt b/lxq_sources/macros.h.txt index fff1dd9..cbcbf56 100644 --- a/lxq_sources/macros.h.txt +++ b/lxq_sources/macros.h.txt @@ -79,7 +79,7 @@ First note the macros for I, W, E, F at the bottom. These are merely alias for t #include "macros.h" int main(){ - log(I, "Printing info\n"); + log(I, "Printing info"); return 0; } diff --git a/lxq_sources/querying.txt b/lxq_sources/querying.txt index 5920c4c..9987c06 100644 --- a/lxq_sources/querying.txt +++ b/lxq_sources/querying.txt @@ -77,14 +77,14 @@ with an attribute named *attr* with the value *bar*, and the node must also be the *only child* of its parent node. -Custom pseudo-filters -^^^^^^^^^^^^^^^^^^^^^ +Custom filters +^^^^^^^^^^^^^^ -We've created some new features. We added the possibility of making *custom pseudo-filters*. -*Custom pseudo-filters* provide a way for the user to define their own filters, which can be +We've created some new features. We added the possibility of making *custom filters*. +*Custom filters* provide a way for the user to define their own filters, which can be chained with other query operators. -To create a *custom pseudo-filter* you just need to define a function with the one of the following signatures:: +To create a *custom filter* you just need to define a function with the one of the following signatures:: int simple_filter(dom_node* node); int complex_filter(dom_node* node, list* args); @@ -99,4 +99,35 @@ After defining your filter you need to register them. You do this by calling: The first function registers a simple filter, while the second registers a complex one. -When you're done with this you can call your filters just like a CSS3 *pseudo-filter*. +When you're done with this you can call your filters just like a CSS3 *filter*. + +When your program finishes, we should call:: + + void destroy_custom_filters() + +Custom operators +^^^^^^^^^^^^^^^^ + +Another feature we've added is the possibility to create your own operators. + +Like custom filters, custom operators need to be registered in order to be used:: + + void register_simple_custom_operator(const char* name, list* (*operator)(list* nodes)); + +The first argument is the name of the operator. This name will be used to call the operator. You can call your operator with an exclamation point. For example, if we register the operator *second* we can call it with "!second". + +The second argument is a pointer to a function that applies the operator. This function must be defined and provided by the user. + +We already provide two custom operators that we call extended operators. They have the following mean: + +- first - Returns the first occurrence of an element. If you write "device!first" it will return the first device element. + +- text-children - Returns the text below an element. If you write "device!text-children" it will return all the text nodes directly below elements with tag device. + +However, in order to use them you need to call:: + + register_extended_operators() + +and when you're done you should call:: + + destroy_custom_operators() diff --git a/lxq_sources/tutorial/tutorial.txt b/lxq_sources/tutorial/tutorial.txt index aabfdbe..6ab1423 100644 --- a/lxq_sources/tutorial/tutorial.txt +++ b/lxq_sources/tutorial/tutorial.txt @@ -95,11 +95,11 @@ Go ahead and run it with .. code-block:: bash - ./a.out "@/ti..e/" + ./a.out "@title/" -It will search the document for all elements that begin with "ti", have any two characters following it and end with "e". +It will search the document for all elements named "title". -However, we're able to see the output. Lets add that feature:: +However, we aren't able to see the output. Lets add that feature:: #include #include "node.h" @@ -143,11 +143,11 @@ However, we're able to see the output. Lets add that feature:: return 0; } -Try it with the same query as before and then try to retrieve the element "title" for the "item" title with: +Try it with the same query as before and then try to retrieve the element "title" for the "item" with: .. code-block:: bash - ./a.out "@/i.../>/ti..e/" + ./a.out "@item>title" Ok we're able to retrieve any thing from our RSS Feed. But now, we want to change the title of the element "item" to "no-title". Let's do it:: @@ -193,4 +193,6 @@ Ok we're able to retrieve any thing from our RSS Feed. But now, we want to chang return 0; } -This concludes the tutorial. We've shown how to parse, query and manipulate XML documents. +Notice that we've removed the capabillity of using the arguments passed to the program. To run this example you just need to run the program without arguments. + +This concludes the tutorial. We've shown how to parse, query and manipulate XML documents. The rest of the documentation explains how to add new features such as custom filters, custom operators and regular expressions. diff --git a/macros.h.html b/macros.h.html index eed17f8..66468bc 100644 --- a/macros.h.html +++ b/macros.h.html @@ -126,7 +126,7 @@

    log
    #include "macros.h"
     
     int main(){
    - log(I, "Printing info\n");
    + log(I, "Printing info");
      return 0;
     }
     
    diff --git a/objects.inv b/objects.inv index 28a067a404528d7715969658229724e80d5408fa..f2c74458954e0d68cd0e27a93c418756318e604d 100644 GIT binary patch delta 818 zcmV-21I_%Y2crj&et*qw;~)^e_bDvxUb9uNeShMyvmxJtI{5n}FepG)ncLJ*4Vd<#`HM8lu z+VAK@5vXCOsbII(i~Z{a{?ZzrIQ)0upkl9YPBGhPRlQW4T7OE=8po_NfY0Ii_Sk9p zSsk7fd=L;IL0O_Szt^JWRJ7nE15&@ka2U0DYHF~Aof^RnsKjNlv0$jx#>?1C3maX6 zma=o+1zTzm$fp$3?Qz*WcYil&Pz5eU?~8XTTqJ zXbohVM%xw?AAhptqp>FvkIGJ(tEyIGzPBIllby$1n)o-3s#j&o*oNFgLuy<2T!cDz zt!NmvKs-HxX&C9#DAR2o4TJ*|)I&1t{{Cb_s1Px+MiP=TqrJ*8nbiJ5U-J^Kj=PO2Hi%!Xq`}hQ!|` zKuw~Id1ZzJG9NaoET)3%@Kl0I>ocyZ3?7*)bvU`LP<=K4? zJtv9+kHTY(RwLvYf7F3Q$x%-Eb4dHOg0gyeGjvdZ?BC& zSIi4|qIcWI
    3RycyrLZD@W&yw}7b7SmWJN`ESU;gu6yKLnP7VrYu7 zk*$Djz45gml>q!!qzkN=tBi#mWSrf@29wz+*N*>UW| zwH?Wu7M3NNBKh7UqpfU=gwM*Od{O)Ws(O5`+S8-%U;H|vRzIpgRt5#t@3{0(gPA#W zUhPkGTRm_mj?<0ZTEFdIx8X0Z;X%Ux00AoT@*0f5#+vH6l7AdI^XP)W;J`n{=gVVf zA);F>l*~e(K_0LrxxxE ziAOHp@*Hfr^T0l}njTNf?y38C*$t*3q@H5&&Q(~-nrb}WAA=ZW!}XG3FRd6Ep1exc z$=m@Qz zL#rCW5g5@CxJIzPY%+_Is-H;^ic{3$>F>YH7*{G4(rAa~!dWsoCXbpN0>?z~Xf=Cn z6g^E(5s=)8qI*L*E0=F=TY~qlLU-V`OW;`|IU7u-Eq~s&VC3M^M}tR}aGGUJk{zlH zj#RscfNK&lxyXoxb1>r|T_o}S5*76sp5vnEl87HzI6sx9OkV-shKNT;vMa&w0DJ;q zf&)u`*KjgPna@)T30_dHxIw>!wcw8>VDr5$`Id{NLaaCL>oZRrl#2~owWpnE^9Hcl z`JbxRk$?LF<*Ik}EJBr`omIj`E-8^+k_*@*x-kp1cFO|So>B7?^zyc$Q@xGVObHGW z?DMlUP&7N7*4nptiIN75%iRQKWGeseln~~uUCY}R71Q8qNHv$4i-pcO0rN_(?re!W zJucvdK1_Fhewb_6tD_F=j!rh_cT3!pgeGw)D1WAoU%KOS8MtcK$_cHX;7UO-bhy6J zt%Ca+-Lnjp0Qw@$MZMy!9u_u%X&mojQgXfeuCZjKd42<#)*A-#0_2~gS{BIJoD}v3 zXV2)SYhzZ7(J+fH^@t-|a{xXM1v`n)q*KaieaAud40Ma9%nmS*m(z@Yb%}z`dLc3W zSTVUajipc=f_Q@*m5CbA5o$q0F>-X}XToirgSQSrvhTEGPdx5}#TlL)-{%VuPfwyk CMVfm6 diff --git a/querying.html b/querying.html index 9cbe1b0..7b3b672 100644 --- a/querying.html +++ b/querying.html @@ -107,12 +107,12 @@

    Introduction -

    Custom pseudo-filters

    -

    We’ve created some new features. We added the possibility of making custom pseudo-filters. -Custom pseudo-filters provide a way for the user to define their own filters, which can be +

    +

    Custom filters

    +

    We’ve created some new features. We added the possibility of making custom filters. +Custom filters provide a way for the user to define their own filters, which can be chained with other query operators.

    -

    To create a custom pseudo-filter you just need to define a function with the one of the following signatures:

    +

    To create a custom filter you just need to define a function with the one of the following signatures:

    +
    +

    Custom operators

    +

    Another feature we’ve added is the possibility to create your own operators.

    +

    Like custom filters, custom operators need to be registered in order to be used:

    +
    void register_simple_custom_operator(const char* name, list* (*operator)(list* nodes));
    +
    +
    +

    The first argument is the name of the operator. This name will be used to call the operator. You can call your operator with an exclamation point. For example, if we register the operator second we can call it with ”!second”.

    +

    The second argument is a pointer to a function that applies the operator. This function must be defined and provided by the user.

    +

    We already provide two custom operators that we call extended operators. They have the following mean:

    +
      +
    • first - Returns the first occurrence of an element. If you write “device!first” it will return the first device element.
    • +
    • text-children - Returns the text below an element. If you write “device!text-children” it will return all the text nodes directly below elements with tag device.
    • +
    +

    However, in order to use them you need to call:

    +
    register_extended_operators()
    +
    +
    +

    and when you’re done you should call:

    +
    destroy_custom_operators()
    +
    +
    @@ -146,7 +173,8 @@

    Table Of Contents

  • Querying diff --git a/searchindex.js b/searchindex.js index 05791c2..ce064b5 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{"":{dequeue:[4,0,1],new_element_node:[2,0,1],new_queue:[4,0,1],remove_element_at:[4,0,1],get_children:[2,0,1],siterator:[4,1,1],new_stack:[4,0,1],parse_xml:[6,0,1],enqueue:[4,0,1],set_value:[2,0,1],list:[4,1,1],get_name:[2,0,1],sdoc:[2,1,1],search_rbtree:[4,0,1],append_element_with_type:[4,0,1],get_element_pos:[4,0,1],set_element_with_type_at:[4,0,1],parse_string:[6,0,1],get_element_at:[4,0,1],new_text_node:[2,0,1],duplicate_generic_list:[4,0,1],set_xml_declaration:[2,0,1],"__alloc":[5,0,1],register_custom_filter:[1,0,1],remove_node:[2,0,1],pop_stack:[4,0,1],insert_element_at:[4,0,1],generic_list_get_count:[4,0,1],rb_tree_insert:[4,0,1],delete_attribute:[2,0,1],new_generic_list_iterator:[4,0,1],prepend_child:[2,0,1],prepend_element_with_type:[4,0,1],new_cdata:[2,0,1],remove_element:[4,0,1],peek_element_type_at:[4,0,1],set_element_at:[4,0,1],xmlquery_query:[1,0,1],generic_list_s:[4,1,1],get_descendants:[2,0,1],push_stack:[4,0,1],set_namespace:[2,0,1],get_namespace:[2,0,1],remove_all:[4,0,1],destroy_generic_list:[4,0,1],tree_iterator_next:[4,0,1],tree_iterator_has_next:[4,0,1],get_element_with_type_at:[4,0,1],node_to_string:[2,0,1],new_generic_list:[4,0,1],parse_file:[6,0,1],set_parent:[2,0,1],new_document:[2,0,1],get_child_at:[2,0,1],remove_duplicates:[4,0,1],get_attribute_by_name:[2,0,1],new_rbtree:[4,0,1],add_element_with_type:[4,0,1],add_element:[4,0,1],get_doc_root:[2,0,1],new_attribute:[2,0,1],merge_lists:[4,0,1],append_children:[2,0,1],stree_node:[4,1,1],rb_tree_delete:[4,0,1],tree_root:[4,1,1],parse_xml_from_string:[6,0,1],add_attribute:[2,0,1],peek_stack_type:[4,0,1],node_type:[2,1,1],insert_element_with_type_at:[4,0,1],enqueue_with_type:[4,0,1],register_simple_custom_filter:[1,0,1],destroy_rbtree:[4,0,1],push_stack_type:[4,0,1],destroy_generic_list_iterator:[4,0,1],new_simple_rbtree:[4,0,1],get_xml_declaration:[2,0,1],get_elements_by_name:[2,0,1],get_value:[2,0,1],tree_node:[4,1,1],destroy_iterator:[4,0,1],generic_list_iterator_has_next:[4,0,1],destroy_dom_node:[2,0,1],get_text_nodes:[2,0,1],dom_node:[2,1,1],snode:[2,1,1],tree_iterator:[4,1,1],generic_list_is_empty:[4,0,1],sroot:[4,1,1],new_tree_iterator:[4,0,1],set_name:[2,0,1],append_child:[2,0,1],list_bucket:[4,1,1],peek_queue_type:[4,0,1],doc:[2,1,1],set_doc_root:[2,0,1],sorted_insert_element_with_type:[4,0,1],generic_list_iterator_next:[4,0,1],destroy_dom_tree:[2,0,1]}},terms:{all:[5,1,2,4,6,7],code:[4,5,7,6],chain:1,queri:[6,0,7,1,3],global:[6,2],follow:[5,1,2,4,6,7],children:2,whose:2,"const":[4,6,1],uint8_t:4,mmmmmmm:3,program:[4,6,7,3],becam:1,sens:4,fatal:5,above_source_fil:[4,5,6,2],sourc:4,everi:[4,7,1],string:[6,5,1,2],fals:[4,7],"void":[5,1,2,4,6,7],rise:1,eeee:3,variable_nam:3,veri:3,retriev:7,relev:4,level:5,new_rbtre:4,list:[4,0,7,1,2],iter:4,"try":7,item:[7,3],stderr:5,small:4,freed:4,impli:4,smaller:[4,5],search_rbtre:4,colect:0,register_custom_filt:1,htm:7,eas:5,yacc:6,second:[4,1,2],design:1,pass:[4,5,2],append:[4,2],even:[4,5],index:[0,2],what:[5,3],compar:4,defin:[4,5,1,6,2],neg:4,section:[4,5,6,2],node_to_str:[6,7,2],abl:[5,7],access:[4,6,1,2],delet:[4,1,2],version:[5,7,2],get_element_po:4,"new":[4,0,1,2],insert_element_at:4,ever:5,method:[4,1],generic_list_iter:[4,7],remove_dupl:4,full:4,parse_xml_from_str:6,append_el:4,gener:[4,0,3],here:[4,3],behaviour:4,let:[4,5,7,2],free:[4,6,7,2],address:[4,5],ver:2,modifi:2,sinc:2,valu:[4,1,2],search:[4,7,2],aug:7,ahead:7,add_el:4,technolog:1,prepend_child:2,queue:4,behav:4,chang:[7,2],ddebug:[6,5],append_element_with_typ:4,binary_fil:3,sorted_insert_element_with_typ:4,appli:[4,1],transit:4,filenam:6,prepend_el:4,printf:[4,5,7,6,2],set_element_with_type_at:4,total:4,select:1,kei:[4,5],node_typ:2,from:[1,2,3,4,6,7],describ:[4,5],would:[3,1],memori:[4,6,2],regist:1,two:[4,6,7,2],next:[4,6],qqqq:3,call:[4,5,1,3,2],recommend:[6,2],text_nod:[7,2],black:[4,0],type:[4,5,3,2],more:[4,1],sort:4,flat:1,desir:2,get_nam:2,relat:5,notic:[4,5,2],warn:5,flag:5,parse_fil:6,worri:4,set_valu:[7,2],hold:4,iii:3,must:[4,7,1,2],dictat:4,word:2,get_doc_root:[6,7,2],attr_nam:2,alia:[4,5],peek_stack_typ:4,can:[5,1,2,3,4,6],learn:7,fprintf:5,purpos:[4,3],root:[4,6,1,2],tree_root:4,control:2,prompt:3,xml_declar:2,capciti:4,tag:2,caution:2,want:[4,7,1,2],serial:[6,0,7,2],type1:4,occur:6,type2:4,read_fil:7,alwai:[4,5],gcc:[4,5,7,6,2],end:[4,6,7,2],divid:6,anoth:[4,6,2],compare_function_point:4,how:[5,2,3,4,6,7],simpl:[4,3,7,1,2],parse_xml:[6,7,2],css:1,map:6,generic_list_is_empti:4,earlier:1,get_xml_declar:2,befor:[4,7],embrac:1,mai:[0,1,2,4,5,6],multipl:4,associ:2,grow:4,demonstr:3,util:1,alloc:[4,0,5],list_bucket:4,stdio:[4,5,7,6,2],correspond:2,element:[4,7,1,2],caus:5,recompil:[6,5],generic_list_iterator_next:[4,7],order:[4,2],includ:[4,5,7,6,2],feed:7,help:[0,1,3,5],ouput:4,rearang:1,over:[4,5,1],becaus:[4,5,6,2],through:[6,7,1,2],"__va_args__":5,still:4,pointer:[4,2],entiti:2,typedef:[4,2],xml_file:[6,2],get_valu:2,better:1,yaml:2,html:1,complex_filt:1,main:[4,5,7,6,2],flex:6,them:[5,1,3],"return":[5,1,2,4,6,7],thei:4,handl:2,encod:7,safe:6,initi:4,front:6,retreiv:4,now:7,bigger:4,introduct:1,generic_list_:[4,2],document:[0,1,2,3,6,7],grammar:6,name:[4,5,1,6,2],anyth:4,separ:1,each:[4,2],debug:5,found:[4,2],mean:[4,5],compil:[0,2,3,4,5,6,7],domain:7,replac:4,new_docu:2,stringli:6,realli:[7,2],notabili:1,"static":5,year:1,our:[4,5,7,3,6],happen:[4,5,2],special:[0,1,5],out:[4,7],variabl:[6,3,2],shown:[5,7],space:[4,2],get_descend:2,yyi:3,your:[6,5,1],content:[7,1],print:[5,3,2],pop_stack:4,occurr:4,red:[4,0],rb_tree_insert:4,xmlquery_queri:1,after:[3,1,2],destroy_generic_list_iter:[4,7],advanc:4,manipul:[7,1],given:[4,3,1,2],argv:[7,2],mmm:3,nth:2,reason:6,base:4,"byte":4,argc:[7,2],acord:4,unpredict:4,care:4,symetr:4,thread:6,lexer:6,keep:[4,2],filter:1,thing:[4,5,7,2],isn:2,duplicate_generic_list:4,onto:[4,6,2],first:[4,5,1,2],oper:1,directli:2,arrai:[4,5],independ:1,number:[4,5,1],yourself:2,datastructur:4,alreadi:[4,2],done:[4,5,1,6,2],stdlib:4,destroy_generic_list:4,tree_iterator_has_next:4,new_simple_rbtre:4,differ:[4,1,2],sheet:1,data:[4,0,2],interact:[0,3],capac:4,messag:[6,5,3],stack:[4,7],checker:2,source_fil:7,query_runn:7,conveni:3,"final":[4,2],store:[4,6,3,2],too:2,shell:[0,3],option:5,namespac:2,pubdat:7,copi:6,selector:[0,1],part:2,pars:[6,0,7,2],cdata:2,enqueu:4,exactli:[4,7,2],than:[4,5],rss:[7,3],wide:1,kind:[4,1,2],third:4,new_element_nod:2,provid:[4,1,2],new_queu:4,remov:[4,5,2],tree:[4,0,7,1,2],structur:[4,0,6,2],charact:[5,7],project:5,compare_integ:4,were:[4,5],posit:[4,1],int16_t:4,other:[4,5,1,2],markup:2,browser:1,"function":[0,1,2,4,5,6],sai:4,get_namespac:2,modern:1,query_express:3,argument:[4,3,7,1,2],realm:1,have:[4,5,7,6,2],need:[4,5,1,3,6],seen:1,seem:4,"null":[4,6,7,2],engin:3,lib:6,uuuuuu:3,destroi:[4,2],note:[4,5,1],also:[4,0,1,2],without:[4,5,3,6],tree_iter:4,take:[4,1],which:[5,1,2,3,4,6,7],conclud:7,generic_list_iterator_has_next:[4,7],command:[4,3],noth:[4,2],singl:[4,6,2],serializarion:2,begin:[4,3,7,1],pain:5,"enum":2,though:4,buffer:5,object:[4,0,2],most:[3,1],why:4,print_xml:3,append_child:2,don:4,file_to_load:3,dom:[0,7,1,2],doc:[6,7,3,2],doe:[4,1,2],declar:[6,2],clean:[7,2],left:4,"__alloc":5,fact:1,someattribut:6,pope:4,show:[5,2,3,4,6,7],text:2,random:[4,1],rbtree:4,tree_nod:4,detroi:4,find:0,remove_element_at:4,enqueue_with_typ:4,xml:[0,1,2,3,6,7],current:[4,6,1,2],onli:[4,1,2],locat:[4,5,6],pretti:7,new_tree_iter:4,explain:[6,2],someel:6,suppos:2,folder:[4,5,6,2],destroy_iter:4,new_stack:4,set_par:2,count:4,get:[4,5,7],"__file__":5,bear:2,lxq_document:[6,2],report:6,banner:3,xmlstring:6,bar:1,sdoc:2,deduc:3,contain:[4,5,2],dequeu:4,where:[4,5,1,6,2],bother:5,desced:2,summari:4,set:[4,2],see:[4,7,3],stree_nod:4,result:[6,5,7],arg:1,fail:[4,5],get_elements_by_nam:2,awar:[6,1,2],flexibl:2,libxmlqueri:[6,0,7],parent:[4,1,2],pattern:1,siter:4,won:5,simplest:3,generic_list_get_count:4,attribut:[1,2],altern:1,signatur:1,accord:[4,5,1],str:[6,5],extend:2,javascript:[1,2],style:1,entir:2,remove_el:4,tue:7,new_text_nod:2,both:4,set_element_at:4,howev:[4,5,7],prite:6,equal:4,against:1,tutori:[0,7],context:1,mani:6,com:7,get_attribute_by_nam:2,load:3,push_stack:4,point:[4,5,2],color:4,int32_t:4,push_stack_typ:4,pop:4,header:[6,7],peek_element_type_at:4,remove_nod:2,path:[4,5,7,6,2],typic:3,alloch:4,duplic:4,quit:3,creat:[0,1,2,3,4,5,7],coupl:6,rrrr:3,three:[4,1,2],empti:4,whom:2,json:2,much:4,new_generic_list:4,reflex:4,recomend:1,new_cdata:2,mind:[4,2],xxx:3,ani:[5,1,2,3,4,6,7],llll:3,doesn:[4,5,1,2],child:[1,2],quick:1,careful:2,present:[4,3,1],input:[4,6,2],"char":[6,5,7,1,2],ident:4,look:[4,5,2],properti:4,cast:5,"while":[4,5,7,1],ain:2,abov:[4,7],error:[6,5],invoc:4,malloc:[4,5],applic:3,new_attribut:2,valgrind:4,eras:5,insert_element_with_type_at:4,get_text_nod:2,sever:[5,1],develop:[3,1],parse_queri:6,perform:4,make:[3,1],same:[4,7,2],binari:[5,3],complex:1,descend:2,key_address:4,http:7,optim:4,upon:1,snode:2,capabl:[4,7,1,2],jqueri:1,user:[4,1],destroy_dom_nod:2,keyb:4,keya:4,implement:[4,3,1,6],peek_queue_typ:4,travers:2,kept:[4,5,6,2],bewar:4,older:4,nevertheless:4,macro:[0,5],thu:5,well:[5,1],know:[4,2],exampl:[5,1,2,3,4,6,7],delete_attribut:2,thi:[5,1,2,3,4,6,7],endif:5,ispermalink:7,model:[0,2],propos:1,just:[4,5,1,3],obtain:4,rest:2,gdb:3,ifdef:5,languag:[1,2],web:1,struct:[4,2],easi:3,extra:6,get_children:2,add:[4,5,7,2],cleanup:7,realloc:4,els:5,modul:[6,0,2],match:1,css3:1,css2:1,lxq_selected_el:6,format:[5,3,2],read:0,beggin:2,parse_dom:[6,2],mon:7,tire:5,lastbuildd:7,like:1,insert:[4,2],xqueri:1,resid:5,helpful:7,specif:[0,1],should:[4,6,2],serialization_typ:2,manual:1,integ:4,add_attribut:2,necessari:4,channel:7,transvers:1,popular:1,output:[5,7,2],resiz:4,page:5,depend:[5,2],www:7,right:[4,5],old:[4,7],lxq_parser:[6,7,2],some:[6,5,1,2],back:4,enumer:2,guaranti:4,proper:5,sizeof:[4,5],intact:[4,2],get_element_at:4,librari:1,remove_al:4,guid:7,bottom:5,leak:[4,2],definit:[4,5,2],exit:[4,5,3,6],foo:1,refer:1,peek:4,set_nam:2,run:[4,0,7,3,5],set_xml_declar:2,cascad:1,usag:[4,7,3],global_docu:7,how_mani:5,although:4,eventu:4,"throw":2,simpler:1,about:4,actual:[4,5,2],append_children:2,generic_list:1,destroy_rbtre:4,stand:1,act:4,ajax:1,produc:4,block:4,simple_filt:1,own:1,primarili:1,eeeee:3,bbb:3,set_namespac:2,been:[5,1,2],tree_iterator_next:4,parse_str:6,mere:5,merg:[4,6],w3c:1,get_element_with_type_at:4,wai:[1,2],aren:4,support:[3,2],get_desced:2,fast:4,custom:1,start:[4,0],interfac:3,inner:1,xpath:1,get_child_at:[7,2],head:[4,2],rb_tree_delet:4,form:1,forc:6,dom_nod:[7,1,2],link:7,heap:4,add_element_with_typ:4,line:5,inlin:5,"true":4,denomin:2,info:5,notat:2,made:5,utf:7,attr:1,consist:4,possibl:[4,6,1],wish:4,bucket:4,below:[7,2],otherwis:[4,2],problem:5,prepend_element_with_typ:4,reachabl:4,featur:[4,3,7,1],pin:5,"int":[5,1,2,4,6,7],descript:[4,0,7,6,2],parser:[6,0,2],"__line__":5,repres:[4,2],strongli:6,exist:[4,3],file:[5,2,3,4,6,7],int64_t:4,check:[4,5,7],fill:[4,5],again:5,titl:[7,3],when:[4,5,1,2],prepend:[4,2],field:[4,2],valid:[5,2],rememb:4,test:[5,2,3,4,6,7],tie:1,you:[0,1,2,3,4,5,6,7],node:[4,3,7,1,2],new_generic_list_iter:[4,7],register_simple_custom_filt:1,destroy_dom_tre:[6,7,2],log:[4,0,5],consid:[4,5,2],merge_list:4,sroot:[4,2],stai:4,receiv:[4,5],cdata_text:2,set_doc_root:2,pseudo:1,rule:1,obj:4,time:6,push:4,key_function_point:4},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Document Object Model","Shell","Data Structures","Special Macros","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","dom","applications/shell","data_structures/datastructures","macros.h","parser/parser","tutorial/tutorial"]}) \ No newline at end of file +Search.setIndex({objects:{"":{dequeue:[5,0,1],new_element_node:[3,0,1],new_queue:[5,0,1],remove_element_at:[5,0,1],get_children:[3,0,1],siterator:[5,1,1],new_stack:[5,0,1],parse_xml:[6,0,1],enqueue:[5,0,1],set_value:[3,0,1],list:[5,1,1],get_name:[3,0,1],sdoc:[3,1,1],search_rbtree:[5,0,1],rb_tree_insert:[5,0,1],get_element_pos:[5,0,1],tree_iterator_next:[5,0,1],parse_string:[6,0,1],get_element_at:[5,0,1],new_text_node:[3,0,1],duplicate_generic_list:[5,0,1],set_xml_declaration:[3,0,1],"__alloc":[2,0,1],register_custom_filter:[1,0,1],remove_node:[3,0,1],pop_stack:[5,0,1],insert_element_at:[5,0,1],generic_list_get_count:[5,0,1],append_element_with_type:[5,0,1],delete_attribute:[3,0,1],new_generic_list_iterator:[5,0,1],prepend_child:[3,0,1],snode:[3,1,1],new_cdata:[3,0,1],remove_element:[5,0,1],peek_element_type_at:[5,0,1],set_element_at:[5,0,1],xmlquery_query:[1,0,1],generic_list_s:[5,1,1],get_descendants:[3,0,1],push_stack:[5,0,1],set_namespace:[3,0,1],get_namespace:[3,0,1],remove_all:[5,0,1],destroy_generic_list:[5,0,1],set_element_with_type_at:[5,0,1],tree_iterator_has_next:[5,0,1],get_element_with_type_at:[5,0,1],node_to_string:[3,0,1],new_generic_list:[5,0,1],parse_file:[6,0,1],set_parent:[3,0,1],new_document:[3,0,1],get_child_at:[3,0,1],remove_duplicates:[5,0,1],get_attribute_by_name:[3,0,1],new_rbtree:[5,0,1],add_element_with_type:[5,0,1],add_element:[5,0,1],get_doc_root:[3,0,1],new_attribute:[3,0,1],merge_lists:[5,0,1],doc:[3,1,1],stree_node:[5,1,1],rb_tree_delete:[5,0,1],tree_root:[5,1,1],parse_xml_from_string:[6,0,1],add_attribute:[3,0,1],peek_stack_type:[5,0,1],node_type:[3,1,1],insert_element_with_type_at:[5,0,1],enqueue_with_type:[5,0,1],register_simple_custom_filter:[1,0,1],destroy_rbtree:[5,0,1],push_stack_type:[5,0,1],destroy_generic_list_iterator:[5,0,1],new_simple_rbtree:[5,0,1],get_xml_declaration:[3,0,1],get_elements_by_name:[3,0,1],get_value:[3,0,1],tree_node:[5,1,1],destroy_iterator:[5,0,1],generic_list_iterator_has_next:[5,0,1],destroy_dom_node:[3,0,1],get_text_nodes:[3,0,1],dom_node:[3,1,1],prepend_element_with_type:[5,0,1],tree_iterator:[5,1,1],generic_list_is_empty:[5,0,1],sroot:[5,1,1],new_tree_iterator:[5,0,1],set_name:[3,0,1],append_child:[3,0,1],list_bucket:[5,1,1],peek_queue_type:[5,0,1],append_children:[3,0,1],set_doc_root:[3,0,1],sorted_insert_element_with_type:[5,0,1],generic_list_iterator_next:[5,0,1],destroy_dom_tree:[3,0,1]}},terms:{all:[2,1,3,5,6,7],code:[5,2,7,6],chain:1,queri:[6,0,7,1,4],global:[6,3],follow:[5,2,1,6,3],children:[1,3],whose:3,"const":[5,6,1],uint8_t:5,mmmmmmm:4,program:[5,4,7,1,6],becam:1,sens:5,fatal:2,above_source_fil:[5,2,6,3],sourc:5,everi:[5,7,1],string:[6,2,1,3],fals:[5,7],"void":[2,1,3,5,6,7],rise:1,eeee:4,variable_nam:4,veri:4,retriev:7,relev:5,level:2,new_rbtre:5,list:[5,0,7,1,3],iter:5,"try":7,item:[7,4],stderr:2,small:5,freed:5,impli:5,smaller:[5,2],search_rbtre:5,colect:0,register_custom_filt:1,htm:7,eas:2,yacc:6,second:[5,1,3],design:1,pass:[5,2,7,3],append:[5,3],even:[5,2],index:[0,3],what:[2,4],compar:5,defin:[5,2,1,6,3],neg:5,section:[5,2,6,3],node_to_str:[6,7,3],abl:[2,7],access:[5,6,1,3],delet:[5,1,3],version:[2,7,3],get_element_po:5,"new":[5,0,7,1,3],insert_element_at:5,ever:2,method:[5,1],generic_list_iter:[5,7],remove_dupl:5,full:5,parse_xml_from_str:6,append_el:5,gener:[5,0,4],here:[5,4],behaviour:5,let:[5,2,7,3],free:[5,6,7,3],address:[5,2],ver:3,modifi:3,sinc:3,valu:[5,1,3],search:[5,7,3],aug:7,ahead:7,add_el:5,technolog:1,prepend_child:3,queue:5,behav:5,chang:[7,3],ddebug:[6,2],append_element_with_typ:5,binary_fil:4,sorted_insert_element_with_typ:5,appli:[5,1],transit:5,filenam:6,prepend_el:5,printf:[5,2,7,6,3],set_element_with_type_at:5,total:5,select:1,kei:[5,2],node_typ:3,from:[1,3,4,5,6,7],describ:[5,2],would:[4,1],memori:[5,6,3],regist:1,two:[5,6,1,3],next:[5,6],qqqq:4,call:[5,4,1,2,3],recommend:[6,3],text_nod:[7,3],black:[5,0],type:[5,2,4,3],more:[5,1],sort:5,flat:1,desir:3,get_nam:3,relat:2,notic:[5,2,7,3],warn:2,flag:2,parse_fil:6,worri:5,set_valu:[7,3],hold:5,iii:4,must:[5,7,1,3],dictat:5,word:3,get_doc_root:[6,7,3],destroy_custom_filt:1,attr_nam:3,alia:[5,2],peek_stack_typ:5,can:[2,1,3,4,5,6],learn:7,fprintf:2,purpos:[5,4],root:[5,6,1,3],tree_root:5,control:3,prompt:4,xml_declar:3,capciti:5,tag:[1,3],caution:3,want:[5,7,1,3],serial:[6,0,7,3],type1:5,occur:6,type2:5,read_fil:7,alwai:[5,2],gcc:[5,2,7,6,3],end:[5,6,3],divid:6,anoth:[5,6,1,3],compare_function_point:5,capabil:7,write:1,how:[2,3,4,5,6,7],simpl:[5,4,7,1,3],parse_xml:[6,7,3],css:1,map:6,generic_list_is_empti:5,earlier:1,get_xml_declar:3,befor:[5,7],embrac:1,mai:[0,1,2,3,5,6],multipl:5,associ:3,grow:5,demonstr:4,util:1,alloc:[5,0,2],list_bucket:5,stdio:[5,2,7,6,3],correspond:3,element:[5,7,1,3],caus:2,recompil:[6,2],generic_list_iterator_next:[5,7],order:[5,1,3],includ:[5,2,7,6,3],feed:7,help:[0,1,4,2],ouput:5,rearang:1,over:[5,2,1],becaus:[5,2,6,3],through:[6,7,1,3],"__va_args__":2,still:5,pointer:[5,1,3],entiti:3,typedef:[5,3],xml_file:[6,3],get_valu:3,better:1,yaml:3,html:1,complex_filt:1,main:[5,2,7,6,3],flex:6,them:[4,1,2],"return":[2,1,3,5,6,7],thei:[5,1],handl:3,encod:7,safe:6,initi:5,front:6,retreiv:5,now:7,bigger:5,introduct:1,generic_list_:[5,3],document:[0,1,3,4,6,7],grammar:6,name:[2,1,3,5,6,7],anyth:5,separ:1,each:[5,3],debug:2,found:[5,3],mean:[5,2,1],compil:[0,2,3,4,5,6,7],domain:7,destroy_custom_oper:1,replac:5,new_docu:3,stringli:6,realli:[7,3],notabili:1,"static":2,year:1,our:[5,2,7,4,6],happen:[5,2,3],special:[0,1,2],out:[5,7],variabl:[6,4,3],shown:[2,7],space:[5,3],get_descend:3,yyi:4,your:[6,2,1],content:[7,1],print:[2,4,3],pop_stack:5,occurr:[5,1],red:[5,0],rb_tree_insert:5,xmlquery_queri:1,after:[4,1,3],destroy_generic_list_iter:[5,7],advanc:5,manipul:[7,1],given:[5,4,1,3],argv:[7,3],mmm:4,nth:3,reason:6,base:5,"byte":5,argc:[7,3],acord:5,unpredict:5,care:5,symetr:5,thread:6,lexer:6,keep:[5,3],filter:[7,1],thing:[5,2,7,3],isn:3,duplicate_generic_list:5,onto:[5,6,3],first:[5,2,1,3],oper:[7,1],directli:[1,3],arrai:[5,2],independ:1,number:[5,2,1],yourself:3,datastructur:5,alreadi:[5,1,3],done:[5,2,1,6,3],stdlib:5,destroy_generic_list:5,tree_iterator_has_next:5,new_simple_rbtre:5,differ:[5,1,3],sheet:1,data:[5,0,3],interact:[0,4],capac:5,messag:[6,2,4],stack:[5,7],checker:3,source_fil:7,query_runn:7,conveni:4,"final":[5,3],store:[5,6,4,3],too:3,shell:[0,4],option:2,namespac:3,pubdat:7,copi:6,selector:[0,1],part:3,pars:[6,0,7,3],cdata:3,enqueu:5,exactli:[5,7,3],than:[5,2],rss:[7,4],wide:1,kind:[5,1,3],third:5,new_element_nod:3,provid:[5,1,3],new_queu:5,remov:[5,2,7,3],tree:[5,0,7,1,3],structur:[5,0,6,3],charact:2,project:2,compare_integ:5,were:[5,2],posit:[5,1],int16_t:5,other:[5,2,1,3],markup:3,browser:1,"function":[0,1,2,3,5,6],sai:5,get_namespac:3,modern:1,query_express:4,argument:[5,4,7,1,3],realm:1,have:[2,1,3,5,6,7],need:[2,1,4,5,6,7],seen:1,seem:5,"null":[5,6,7,3],engin:4,lib:6,uuuuuu:4,destroi:[5,3],note:[5,2,1],also:[5,0,1,3],without:[5,2,7,4,6],tree_iter:5,take:[5,1],which:[2,1,3,4,5,6,7],conclud:7,generic_list_iterator_has_next:[5,7],command:[5,4],noth:[5,3],singl:[5,6,3],serializarion:3,begin:[5,4,7,1],pain:2,"enum":3,though:5,buffer:2,object:[5,0,3],most:[4,1],regular:7,why:5,print_xml:4,append_child:3,don:5,file_to_load:4,dom:[0,7,1,3],doc:[6,7,4,3],doe:[5,1,3],declar:[6,3],clean:[7,3],left:5,"__alloc":2,fact:1,someattribut:6,pope:5,show:[2,3,4,5,6,7],text:[1,3],random:[5,1],rbtree:5,tree_nod:5,detroi:5,find:0,remove_element_at:5,enqueue_with_typ:5,xml:[0,1,3,4,6,7],current:[5,6,1,3],onli:[5,1,3],locat:[5,2,6],pretti:7,new_tree_iter:5,explain:[6,7,3],someel:6,suppos:3,folder:[5,2,6,3],destroy_iter:5,new_stack:5,set_par:3,count:5,get:[5,2,7],"__file__":2,express:7,bear:3,lxq_document:[6,3],register_extended_oper:1,report:6,banner:4,xmlstring:6,bar:1,sdoc:3,deduc:4,contain:[5,2,3],dequeu:5,where:[5,2,1,6,3],bother:2,desced:3,summari:5,set:[5,3],see:[5,7,4],stree_nod:5,result:[6,2,7],arg:1,fail:[5,2],get_elements_by_nam:3,awar:[6,1,3],flexibl:3,libxmlqueri:[6,0,7],parent:[5,1,3],pattern:1,siter:5,won:2,simplest:4,generic_list_get_count:5,attribut:[1,3],altern:1,signatur:1,accord:[5,2,1],str:[6,2],extend:[1,3],javascript:[1,3],style:1,entir:3,remove_el:5,exclam:1,tue:7,new_text_nod:3,both:5,set_element_at:5,howev:[5,2,7,1],prite:6,equal:5,against:1,tutori:[0,7],context:1,mani:6,com:7,get_attribute_by_nam:3,load:4,push_stack:5,point:[5,2,1,3],color:5,int32_t:5,push_stack_typ:5,pop:5,header:[6,7],peek_element_type_at:5,remove_nod:3,path:[5,2,7,6,3],typic:4,alloch:5,duplic:5,quit:4,creat:[0,1,2,3,4,5,7],coupl:6,rrrr:4,three:[5,1,3],empti:5,whom:3,json:3,much:5,new_generic_list:5,reflex:5,recomend:1,new_cdata:3,mind:[5,3],xxx:4,ani:[2,1,3,4,5,6,7],llll:4,doesn:[5,2,1,3],child:[1,3],quick:1,careful:3,present:[5,4,1],input:[5,6,3],"char":[6,2,7,1,3],ident:5,look:[5,2,3],properti:5,cast:2,"while":[5,2,7,1],ain:3,abov:[5,7],error:[6,2],invoc:5,malloc:[5,2],applic:4,new_attribut:3,valgrind:5,eras:2,insert_element_with_type_at:5,get_text_nod:3,sever:[2,1],develop:[4,1],parse_queri:6,perform:5,make:[4,1],same:[5,7,3],binari:[2,4],complex:1,descend:3,key_address:5,finish:1,http:7,optim:5,register_simple_custom_oper:1,upon:1,snode:3,capabl:[5,7,1,3],jqueri:1,user:[5,1],destroy_dom_nod:3,keyb:5,keya:5,implement:[5,4,1,6],peek_queue_typ:5,travers:3,kept:[5,2,6,3],bewar:5,older:5,nevertheless:5,macro:[0,2],thu:2,well:[2,1],know:[5,3],exampl:[2,1,3,4,5,6,7],delete_attribut:3,thi:[2,1,3,4,5,6,7],endif:2,ispermalink:7,model:[0,3],propos:1,just:[5,4,7,1,2],obtain:5,rest:[7,3],gdb:4,ifdef:2,languag:[1,3],web:1,struct:[5,3],easi:4,extra:6,get_children:3,add:[5,2,7,3],cleanup:7,realloc:5,els:2,modul:[6,0,3],match:1,css3:1,css2:1,lxq_selected_el:6,format:[2,4,3],read:0,beggin:3,parse_dom:[6,3],mon:7,tire:2,lastbuildd:7,like:1,insert:[5,3],xqueri:1,resid:2,helpful:7,specif:[0,1],should:[5,6,1,3],serialization_typ:3,manual:1,integ:5,add_attribut:3,necessari:5,channel:7,transvers:1,popular:1,output:[2,7,3],resiz:5,page:2,depend:[2,3],www:7,right:[5,2],old:[5,7],lxq_parser:[6,7,3],some:[6,2,1,3],back:5,enumer:3,guaranti:5,proper:2,sizeof:[5,2],intact:[5,3],get_element_at:5,librari:1,remove_al:5,guid:7,bottom:2,leak:[5,3],definit:[5,2,3],exit:[5,2,4,6],foo:1,refer:1,peek:5,set_nam:3,run:[5,0,7,4,2],set_xml_declar:3,cascad:1,usag:[5,7,4],global_docu:7,how_mani:2,although:5,eventu:5,"throw":3,simpler:1,about:5,actual:[5,2,3],append_children:3,generic_list:1,destroy_rbtre:5,stand:1,act:5,ajax:1,produc:5,block:5,simple_filt:1,own:1,primarili:1,devic:1,eeeee:4,bbb:4,set_namespac:3,been:[2,1,3],tree_iterator_next:5,parse_str:6,mere:2,merg:[5,6],w3c:1,get_element_with_type_at:5,wai:[1,3],aren:[5,7],support:[4,3],get_desced:3,fast:5,custom:[7,1],start:[5,0],interfac:4,inner:1,xpath:1,get_child_at:[7,3],head:[5,3],rb_tree_delet:5,form:1,forc:6,dom_nod:[7,1,3],link:7,heap:5,add_element_with_typ:5,line:2,inlin:2,"true":5,denomin:3,info:2,notat:3,made:2,utf:7,attr:1,consist:5,possibl:[5,6,1],wish:5,bucket:5,below:[7,1,3],otherwis:[5,3],problem:2,prepend_element_with_typ:5,reachabl:5,featur:[5,4,7,1],pin:2,"int":[2,1,3,5,6,7],descript:[5,0,7,6,3],parser:[6,0,3],"__line__":2,repres:[5,3],strongli:6,exist:[5,4],file:[2,3,4,5,6,7],int64_t:5,check:[5,2,7],fill:[5,2],again:2,titl:[7,4],when:[5,2,1,3],prepend:[5,3],field:[5,3],valid:[2,3],rememb:5,test:[2,3,4,5,6,7],tie:1,you:[0,1,2,3,4,5,6,7],node:[5,4,7,1,3],new_generic_list_iter:[5,7],register_simple_custom_filt:1,destroy_dom_tre:[6,7,3],log:[5,0,2],consid:[5,2,3],merge_list:5,sroot:[5,3],stai:5,receiv:[5,2],cdata_text:3,set_doc_root:3,pseudo:1,rule:1,obj:5,time:6,push:5,key_function_point:5},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Special Macros","Document Object Model","Shell","Data Structures","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","macros.h","dom","applications/shell","data_structures/datastructures","parser/parser","tutorial/tutorial"]}) \ No newline at end of file diff --git a/tutorial/tutorial.html b/tutorial/tutorial.html index 71b3cce..b50b963 100644 --- a/tutorial/tutorial.html +++ b/tutorial/tutorial.html @@ -136,12 +136,12 @@

    Tutorial -

    This concludes the tutorial. We’ve shown how to parse, query and manipulate XML documents.

    +

    Notice that we’ve removed the capabillity of using the arguments passed to the program. To run this example you just need to run the program without arguments.

    +

    This concludes the tutorial. We’ve shown how to parse, query and manipulate XML documents. The rest of the documentation explains how to add new features such as custom filters, custom operators and regular expressions.

    From 782a9e9149f33f8374d04c51c3a6760be9bb5b70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frederico=20Gon=C3=A7alves?= Date: Thu, 2 Dec 2010 02:28:19 +0000 Subject: [PATCH 13/13] Auto-commit by make gh_pages target --- dom.html | 56 ++++++++++++++++++++++++-------------------- genindex.html | 4 ++-- lxq_sources/dom.txt | 41 ++++++++++++++++---------------- objects.inv | Bin 931 -> 930 bytes searchindex.js | 2 +- 5 files changed, 53 insertions(+), 50 deletions(-) diff --git a/dom.html b/dom.html index af099f3..8006d82 100644 --- a/dom.html +++ b/dom.html @@ -77,17 +77,17 @@

    Data types
    typedef struct snode{
    -  enum node_type type;
    + enum node_type type;
    + struct snode* parent;
    + union{
    +    struct sroot* attributes;
    +    char* value;
    + };
     
    -  char* namespace;
    -  char* name;
    -  char* value;
    + char* name;
    + char* namespace;
     
    -  struct sroot* attributes;
    -
    -  struct snode* parent;
    -
    -  struct generic_list_s* children;
    + struct generic_list_s* children;
     }dom_node;
     
    @@ -117,13 +117,17 @@

    Data typessdoc
    -

    Finally, a document is a structure that points to two dom nodes - The root of the dom tree and the root of the xml declaration tree. Lets look at its definition.

    -
    typedef struct sdoc{
    -  struct snode* root;
    -  struct snode* xml_declaration;
    -}doc;
    -
    -
    +

    Finally, a document is a structure that points to two dom nodes - The root of the dom tree and a list of xml declarations. Lets look at its definition.

    +
    +
    ::
    +
    +
    typedef struct sdoc{
    +
    struct snode* root; +list* xml_declarations;
    +
    +

    }doc;

    +
    +

    Suppose we have the following xml file

    <?xml version="1.0" ?>
     <x>
    @@ -131,7 +135,7 @@ 

    Data types</x>

    -

    When this xml is parsed, a doc is created with the field xml_declaration pointing to a tree that parsed ‘<?xml version=”1.0” ?>’ and the root field pointing to a tree that parsed the rest of the document.

    +

    When this xml is parsed, a doc is created with the field xml_declaration pointing to a list that corresponds to ‘<?xml version=”1.0” ?>’ and the root field pointing to a tree that corresponds to the rest of the document.

    Function description

    @@ -168,11 +172,11 @@

    Function description
    -
    -dom_node* set_xml_declaration(doc* document, struct snode* vers)
    -

    doc The document whose xml declaration will be set.

    -

    vers The xml declaration to set.

    -

    This function sets the xml declaration of the given document. If the document already contained an xml declaration, a pointer to it will be returned. Otherwise, NULL is returned.

    +
    +dom_node* set_xml_declarations(doc* document, list declarations)
    +

    doc The document whose xml declarations will be set.

    +

    declarations The xml declarations to set.

    +

    This function sets the xml declarations of the given document. If the document already contained xml declarations, a pointer to that list will be returned. Otherwise, NULL is returned.

    @@ -205,10 +209,10 @@

    Function description

    -
    -dom_node* get_xml_declaration(doc* document)
    -

    document The document from which the xml declaration tree will be returned.

    -

    This functions returns the dom node at the root of the xml declaration tree, or NULL if there isn’t any.

    +
    +list* get_xml_declarations(doc* document)
    +

    document The document from which the xml declarations list will be returned.

    +

    This functions returns the list of the xml declarations, or NULL if there isn’t any.

    diff --git a/genindex.html b/genindex.html index d542560..e00f04a 100644 --- a/genindex.html +++ b/genindex.html @@ -119,7 +119,7 @@

    G

    get_namespace (C function)
    get_text_nodes (C function)
    get_value (C function)
    -
    get_xml_declaration (C function)
    +
    get_xml_declarations (C function)
    @@ -224,7 +224,7 @@

    S

    set_value (C function)
    -
    set_xml_declaration (C function)
    +
    set_xml_declarations (C function)
    siterator (C type)
    snode (C type)
    sorted_insert_element_with_type (C function)
    diff --git a/lxq_sources/dom.txt b/lxq_sources/dom.txt index a5387b8..dd5848e 100644 --- a/lxq_sources/dom.txt +++ b/lxq_sources/dom.txt @@ -32,17 +32,17 @@ The structure definition for a dom node is in the file node.h. :: typedef struct snode{ - enum node_type type; + enum node_type type; + struct snode* parent; + union{ + struct sroot* attributes; + char* value; + }; - char* namespace; - char* name; - char* value; + char* name; + char* namespace; - struct sroot* attributes; - - struct snode* parent; - - struct generic_list_s* children; + struct generic_list_s* children; }dom_node; This structure is used to store any kind of entity in an xml file. It can be an element, attribute, cdata or text node. In order to control these different kind of entities, the :c:type:`dom_node` has an enumerate field. This field is called :c:type:`node_type` . @@ -63,13 +63,12 @@ Each enum represents a different kind of xml entity. .. c:type:: doc .. c:type:: struct sdoc -Finally, a document is a structure that points to two dom nodes - The root of the dom tree and the root of the xml declaration tree. Lets look at its definition. +Finally, a document is a structure that points to two dom nodes - The root of the dom tree and a list of xml declarations. Lets look at its definition. :: - typedef struct sdoc{ - struct snode* root; - struct snode* xml_declaration; + struct snode* root; + list* xml_declarations; }doc; Suppose we have the following xml file @@ -81,7 +80,7 @@ Suppose we have the following xml file ... -When this xml is parsed, a :c:type:`doc` is created with the field ``xml_declaration`` pointing to a tree that parsed '' and the ``root`` field pointing to a tree that parsed the rest of the document. +When this xml is parsed, a :c:type:`doc` is created with the field ``xml_declaration`` pointing to a list that corresponds to '' and the ``root`` field pointing to a tree that corresponds to the rest of the document. Function description ^^^^^^^^^^^^^^^^^^^^ @@ -117,13 +116,13 @@ Function description This function sets the root of the given document. If the document already contained a root, a pointer to it will be returned. Otherwise, NULL is returned. -.. c:function:: dom_node* set_xml_declaration(doc* document, struct snode* vers) +.. c:function:: dom_node* set_xml_declarations(doc* document, list declarations) - :c:member:`doc` The document whose xml declaration will be set. + :c:member:`doc` The document whose xml declarations will be set. - :c:member:`vers` The xml declaration to set. + :c:member:`declarations` The xml declarations to set. - This function sets the xml declaration of the given document. If the document already contained an xml declaration, a pointer to it will be returned. Otherwise, NULL is returned. + This function sets the xml declarations of the given document. If the document already contained xml declarations, a pointer to that list will be returned. Otherwise, NULL is returned. .. c:function:: void set_parent(dom_node* node, dom_node* parent) @@ -151,11 +150,11 @@ Function description This functions returns the value of the given node, or NULL if the node doesn't contain any. -.. c:function:: dom_node* get_xml_declaration(doc* document) +.. c:function:: list* get_xml_declarations(doc* document) - :c:member:`document` The document from which the xml declaration tree will be returned. + :c:member:`document` The document from which the xml declarations list will be returned. - This functions returns the dom node at the root of the xml declaration tree, or NULL if there isn't any. + This functions returns the list of the xml declarations, or NULL if there isn't any. .. c:function:: dom_node* get_doc_root(doc* document) diff --git a/objects.inv b/objects.inv index f2c74458954e0d68cd0e27a93c418756318e604d..37a47c135898a8bd36d318dfb75ea6589bfe636b 100644 GIT binary patch delta 816 zcmV-01JC@U2cid%e}9hKAP~OqQ&?)R>1wb020c`&)CWKWCXTiIxD4zjZ(qQUV<#@Q z!IwmaVPO8g`9NykC=QnjEq@pE2%^v3h#(J?ooxpEe!wZMM4jfeM{p1w0jaJoL#i^wPt$%UMIs^C`zVDx%mhaW! zMZp&V0TPrYO7ll8T24g^b}}IKCk&fWo2RA*OW3&)+<;0P78?tOT5Y_Hy|%E?C1@%8 z$U9(54Fb7HFeDPtRQHw~$6;j&oj+_j=% z)B^GF1g2r6Pos=I386y7R2eOnlo{=X#_&-4Ex-`w&}vCejqqR7RlZcr)%)uSR2Ix> zbz4%=jq-u8J0REHl_bKLb}CbsIg(IYq&r%k4(<)IA%B5=4j!Fdg8s?zN9dZ9`vzil zM;uSZt(V&g1%eeUOeVIRcBxGB06vB@7l8!sQ1iYM#kwK!cd4KzQO3N+!2y{M8&wul z!F6~psY>iy6t4-oID}#h`Z+K`J(78mWLF8jH+Gd0qJI$KsarmGzp1yK>486%!)JeKEG@Z# za$_S~0o$1Ot=*Nt$DINcSTWak3;Ah$0qA^EV&14{;tDXXSKQ_ckmBa2GS|#{xsY4j zPUbCLy2%9}4Hwu{&5d-;zEC9QCbTJs0gpX|1Y~QknG`n delta 817 zcmV-11J3-S2crj&e}8V{AP~OyDJ<q zgD;7Uhk^O|zL~MqyipuJE42Jo&?AWI@KUvxgX~}YI$0@xRDU#g0;=C(>8S=av+26p z@90Dks9~q6V7Jzb{p$q&(i)yP{CD7>Vy|ybG23WWy;Pi9N`KHA$E-7e&*Ay@*lGD$ z9i9|?5D*|iS)w$**P`WAwBRHIQoqA+7`1t7YOsWz8o>>y#AUIuV5rr`%h*c`8(o5y zvUA=ATWS!Z7R1ujMJi+3tqDr%xZyWI!D%ZkdBV&s~Q6i;5o>?G!B z4P=@|+ZGfbvVY~Hu_qFb%1)ZAs#asZw;%44oyT38_&1HJS7plBhTKC#YFqeRggSSv zXc)CXJUxMF80pg}(`_CNgaZ@QLo)3C{$xU^5HYbv5|T2by~;6})c!(X2y#FlaOWaQ!5tXFBQ@fN#NQ=A zO`?o>WrhPXA2zBirh@D6RDw$E3mUeRrE<4kDc48dlT|L9{Hng}z^@&$dxR0?*?kW^ zCyE8S>VI8JW#DUK^=z?B5>H8G_7w$I)#Z>`e(e$e_c!zXl9Oq%p}BqZ)lBjYRT}f7 zH1Ih&UY0t(U_?<*$9E&=k*a*#eL#rOdMR#eN}dE$L(DlW>UY;nHW8?O53`YPuZ=)g z%nNv;ciYC}htY_<8Q-*RXnsSy*Tf+f(^w`-Dt~|En{NBucyrg`l@nY)1eStgXo|6s zt$=O4@wFh80Q^>@3#^!{jD;O!oaj5Bl$cjb5Lb|Ey<(OxK>pRMWsaPUNnx*W zy_vUkX)+5w8phXDw>Z)@`+XwuZqf$jbhKj+ApzOiOJ>WON3wCozcZqsVNQ5?T(cIw vKq`@=V`s=I8G+C{b}XQj#Fwg7Z2)Rxfs^lue@`&&1Ed*}8{6{*$Q)0i_SBm; diff --git a/searchindex.js b/searchindex.js index ce064b5..7ab9768 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({objects:{"":{dequeue:[5,0,1],new_element_node:[3,0,1],new_queue:[5,0,1],remove_element_at:[5,0,1],get_children:[3,0,1],siterator:[5,1,1],new_stack:[5,0,1],parse_xml:[6,0,1],enqueue:[5,0,1],set_value:[3,0,1],list:[5,1,1],get_name:[3,0,1],sdoc:[3,1,1],search_rbtree:[5,0,1],rb_tree_insert:[5,0,1],get_element_pos:[5,0,1],tree_iterator_next:[5,0,1],parse_string:[6,0,1],get_element_at:[5,0,1],new_text_node:[3,0,1],duplicate_generic_list:[5,0,1],set_xml_declaration:[3,0,1],"__alloc":[2,0,1],register_custom_filter:[1,0,1],remove_node:[3,0,1],pop_stack:[5,0,1],insert_element_at:[5,0,1],generic_list_get_count:[5,0,1],append_element_with_type:[5,0,1],delete_attribute:[3,0,1],new_generic_list_iterator:[5,0,1],prepend_child:[3,0,1],snode:[3,1,1],new_cdata:[3,0,1],remove_element:[5,0,1],peek_element_type_at:[5,0,1],set_element_at:[5,0,1],xmlquery_query:[1,0,1],generic_list_s:[5,1,1],get_descendants:[3,0,1],push_stack:[5,0,1],set_namespace:[3,0,1],get_namespace:[3,0,1],remove_all:[5,0,1],destroy_generic_list:[5,0,1],set_element_with_type_at:[5,0,1],tree_iterator_has_next:[5,0,1],get_element_with_type_at:[5,0,1],node_to_string:[3,0,1],new_generic_list:[5,0,1],parse_file:[6,0,1],set_parent:[3,0,1],new_document:[3,0,1],get_child_at:[3,0,1],remove_duplicates:[5,0,1],get_attribute_by_name:[3,0,1],new_rbtree:[5,0,1],add_element_with_type:[5,0,1],add_element:[5,0,1],get_doc_root:[3,0,1],new_attribute:[3,0,1],merge_lists:[5,0,1],doc:[3,1,1],stree_node:[5,1,1],rb_tree_delete:[5,0,1],tree_root:[5,1,1],parse_xml_from_string:[6,0,1],add_attribute:[3,0,1],peek_stack_type:[5,0,1],node_type:[3,1,1],insert_element_with_type_at:[5,0,1],enqueue_with_type:[5,0,1],register_simple_custom_filter:[1,0,1],destroy_rbtree:[5,0,1],push_stack_type:[5,0,1],destroy_generic_list_iterator:[5,0,1],new_simple_rbtree:[5,0,1],get_xml_declaration:[3,0,1],get_elements_by_name:[3,0,1],get_value:[3,0,1],tree_node:[5,1,1],destroy_iterator:[5,0,1],generic_list_iterator_has_next:[5,0,1],destroy_dom_node:[3,0,1],get_text_nodes:[3,0,1],dom_node:[3,1,1],prepend_element_with_type:[5,0,1],tree_iterator:[5,1,1],generic_list_is_empty:[5,0,1],sroot:[5,1,1],new_tree_iterator:[5,0,1],set_name:[3,0,1],append_child:[3,0,1],list_bucket:[5,1,1],peek_queue_type:[5,0,1],append_children:[3,0,1],set_doc_root:[3,0,1],sorted_insert_element_with_type:[5,0,1],generic_list_iterator_next:[5,0,1],destroy_dom_tree:[3,0,1]}},terms:{all:[2,1,3,5,6,7],code:[5,2,7,6],chain:1,queri:[6,0,7,1,4],global:[6,3],follow:[5,2,1,6,3],children:[1,3],whose:3,"const":[5,6,1],uint8_t:5,mmmmmmm:4,program:[5,4,7,1,6],becam:1,sens:5,fatal:2,above_source_fil:[5,2,6,3],sourc:5,everi:[5,7,1],string:[6,2,1,3],fals:[5,7],"void":[2,1,3,5,6,7],rise:1,eeee:4,variable_nam:4,veri:4,retriev:7,relev:5,level:2,new_rbtre:5,list:[5,0,7,1,3],iter:5,"try":7,item:[7,4],stderr:2,small:5,freed:5,impli:5,smaller:[5,2],search_rbtre:5,colect:0,register_custom_filt:1,htm:7,eas:2,yacc:6,second:[5,1,3],design:1,pass:[5,2,7,3],append:[5,3],even:[5,2],index:[0,3],what:[2,4],compar:5,defin:[5,2,1,6,3],neg:5,section:[5,2,6,3],node_to_str:[6,7,3],abl:[2,7],access:[5,6,1,3],delet:[5,1,3],version:[2,7,3],get_element_po:5,"new":[5,0,7,1,3],insert_element_at:5,ever:2,method:[5,1],generic_list_iter:[5,7],remove_dupl:5,full:5,parse_xml_from_str:6,append_el:5,gener:[5,0,4],here:[5,4],behaviour:5,let:[5,2,7,3],free:[5,6,7,3],address:[5,2],ver:3,modifi:3,sinc:3,valu:[5,1,3],search:[5,7,3],aug:7,ahead:7,add_el:5,technolog:1,prepend_child:3,queue:5,behav:5,chang:[7,3],ddebug:[6,2],append_element_with_typ:5,binary_fil:4,sorted_insert_element_with_typ:5,appli:[5,1],transit:5,filenam:6,prepend_el:5,printf:[5,2,7,6,3],set_element_with_type_at:5,total:5,select:1,kei:[5,2],node_typ:3,from:[1,3,4,5,6,7],describ:[5,2],would:[4,1],memori:[5,6,3],regist:1,two:[5,6,1,3],next:[5,6],qqqq:4,call:[5,4,1,2,3],recommend:[6,3],text_nod:[7,3],black:[5,0],type:[5,2,4,3],more:[5,1],sort:5,flat:1,desir:3,get_nam:3,relat:2,notic:[5,2,7,3],warn:2,flag:2,parse_fil:6,worri:5,set_valu:[7,3],hold:5,iii:4,must:[5,7,1,3],dictat:5,word:3,get_doc_root:[6,7,3],destroy_custom_filt:1,attr_nam:3,alia:[5,2],peek_stack_typ:5,can:[2,1,3,4,5,6],learn:7,fprintf:2,purpos:[5,4],root:[5,6,1,3],tree_root:5,control:3,prompt:4,xml_declar:3,capciti:5,tag:[1,3],caution:3,want:[5,7,1,3],serial:[6,0,7,3],type1:5,occur:6,type2:5,read_fil:7,alwai:[5,2],gcc:[5,2,7,6,3],end:[5,6,3],divid:6,anoth:[5,6,1,3],compare_function_point:5,capabil:7,write:1,how:[2,3,4,5,6,7],simpl:[5,4,7,1,3],parse_xml:[6,7,3],css:1,map:6,generic_list_is_empti:5,earlier:1,get_xml_declar:3,befor:[5,7],embrac:1,mai:[0,1,2,3,5,6],multipl:5,associ:3,grow:5,demonstr:4,util:1,alloc:[5,0,2],list_bucket:5,stdio:[5,2,7,6,3],correspond:3,element:[5,7,1,3],caus:2,recompil:[6,2],generic_list_iterator_next:[5,7],order:[5,1,3],includ:[5,2,7,6,3],feed:7,help:[0,1,4,2],ouput:5,rearang:1,over:[5,2,1],becaus:[5,2,6,3],through:[6,7,1,3],"__va_args__":2,still:5,pointer:[5,1,3],entiti:3,typedef:[5,3],xml_file:[6,3],get_valu:3,better:1,yaml:3,html:1,complex_filt:1,main:[5,2,7,6,3],flex:6,them:[4,1,2],"return":[2,1,3,5,6,7],thei:[5,1],handl:3,encod:7,safe:6,initi:5,front:6,retreiv:5,now:7,bigger:5,introduct:1,generic_list_:[5,3],document:[0,1,3,4,6,7],grammar:6,name:[2,1,3,5,6,7],anyth:5,separ:1,each:[5,3],debug:2,found:[5,3],mean:[5,2,1],compil:[0,2,3,4,5,6,7],domain:7,destroy_custom_oper:1,replac:5,new_docu:3,stringli:6,realli:[7,3],notabili:1,"static":2,year:1,our:[5,2,7,4,6],happen:[5,2,3],special:[0,1,2],out:[5,7],variabl:[6,4,3],shown:[2,7],space:[5,3],get_descend:3,yyi:4,your:[6,2,1],content:[7,1],print:[2,4,3],pop_stack:5,occurr:[5,1],red:[5,0],rb_tree_insert:5,xmlquery_queri:1,after:[4,1,3],destroy_generic_list_iter:[5,7],advanc:5,manipul:[7,1],given:[5,4,1,3],argv:[7,3],mmm:4,nth:3,reason:6,base:5,"byte":5,argc:[7,3],acord:5,unpredict:5,care:5,symetr:5,thread:6,lexer:6,keep:[5,3],filter:[7,1],thing:[5,2,7,3],isn:3,duplicate_generic_list:5,onto:[5,6,3],first:[5,2,1,3],oper:[7,1],directli:[1,3],arrai:[5,2],independ:1,number:[5,2,1],yourself:3,datastructur:5,alreadi:[5,1,3],done:[5,2,1,6,3],stdlib:5,destroy_generic_list:5,tree_iterator_has_next:5,new_simple_rbtre:5,differ:[5,1,3],sheet:1,data:[5,0,3],interact:[0,4],capac:5,messag:[6,2,4],stack:[5,7],checker:3,source_fil:7,query_runn:7,conveni:4,"final":[5,3],store:[5,6,4,3],too:3,shell:[0,4],option:2,namespac:3,pubdat:7,copi:6,selector:[0,1],part:3,pars:[6,0,7,3],cdata:3,enqueu:5,exactli:[5,7,3],than:[5,2],rss:[7,4],wide:1,kind:[5,1,3],third:5,new_element_nod:3,provid:[5,1,3],new_queu:5,remov:[5,2,7,3],tree:[5,0,7,1,3],structur:[5,0,6,3],charact:2,project:2,compare_integ:5,were:[5,2],posit:[5,1],int16_t:5,other:[5,2,1,3],markup:3,browser:1,"function":[0,1,2,3,5,6],sai:5,get_namespac:3,modern:1,query_express:4,argument:[5,4,7,1,3],realm:1,have:[2,1,3,5,6,7],need:[2,1,4,5,6,7],seen:1,seem:5,"null":[5,6,7,3],engin:4,lib:6,uuuuuu:4,destroi:[5,3],note:[5,2,1],also:[5,0,1,3],without:[5,2,7,4,6],tree_iter:5,take:[5,1],which:[2,1,3,4,5,6,7],conclud:7,generic_list_iterator_has_next:[5,7],command:[5,4],noth:[5,3],singl:[5,6,3],serializarion:3,begin:[5,4,7,1],pain:2,"enum":3,though:5,buffer:2,object:[5,0,3],most:[4,1],regular:7,why:5,print_xml:4,append_child:3,don:5,file_to_load:4,dom:[0,7,1,3],doc:[6,7,4,3],doe:[5,1,3],declar:[6,3],clean:[7,3],left:5,"__alloc":2,fact:1,someattribut:6,pope:5,show:[2,3,4,5,6,7],text:[1,3],random:[5,1],rbtree:5,tree_nod:5,detroi:5,find:0,remove_element_at:5,enqueue_with_typ:5,xml:[0,1,3,4,6,7],current:[5,6,1,3],onli:[5,1,3],locat:[5,2,6],pretti:7,new_tree_iter:5,explain:[6,7,3],someel:6,suppos:3,folder:[5,2,6,3],destroy_iter:5,new_stack:5,set_par:3,count:5,get:[5,2,7],"__file__":2,express:7,bear:3,lxq_document:[6,3],register_extended_oper:1,report:6,banner:4,xmlstring:6,bar:1,sdoc:3,deduc:4,contain:[5,2,3],dequeu:5,where:[5,2,1,6,3],bother:2,desced:3,summari:5,set:[5,3],see:[5,7,4],stree_nod:5,result:[6,2,7],arg:1,fail:[5,2],get_elements_by_nam:3,awar:[6,1,3],flexibl:3,libxmlqueri:[6,0,7],parent:[5,1,3],pattern:1,siter:5,won:2,simplest:4,generic_list_get_count:5,attribut:[1,3],altern:1,signatur:1,accord:[5,2,1],str:[6,2],extend:[1,3],javascript:[1,3],style:1,entir:3,remove_el:5,exclam:1,tue:7,new_text_nod:3,both:5,set_element_at:5,howev:[5,2,7,1],prite:6,equal:5,against:1,tutori:[0,7],context:1,mani:6,com:7,get_attribute_by_nam:3,load:4,push_stack:5,point:[5,2,1,3],color:5,int32_t:5,push_stack_typ:5,pop:5,header:[6,7],peek_element_type_at:5,remove_nod:3,path:[5,2,7,6,3],typic:4,alloch:5,duplic:5,quit:4,creat:[0,1,2,3,4,5,7],coupl:6,rrrr:4,three:[5,1,3],empti:5,whom:3,json:3,much:5,new_generic_list:5,reflex:5,recomend:1,new_cdata:3,mind:[5,3],xxx:4,ani:[2,1,3,4,5,6,7],llll:4,doesn:[5,2,1,3],child:[1,3],quick:1,careful:3,present:[5,4,1],input:[5,6,3],"char":[6,2,7,1,3],ident:5,look:[5,2,3],properti:5,cast:2,"while":[5,2,7,1],ain:3,abov:[5,7],error:[6,2],invoc:5,malloc:[5,2],applic:4,new_attribut:3,valgrind:5,eras:2,insert_element_with_type_at:5,get_text_nod:3,sever:[2,1],develop:[4,1],parse_queri:6,perform:5,make:[4,1],same:[5,7,3],binari:[2,4],complex:1,descend:3,key_address:5,finish:1,http:7,optim:5,register_simple_custom_oper:1,upon:1,snode:3,capabl:[5,7,1,3],jqueri:1,user:[5,1],destroy_dom_nod:3,keyb:5,keya:5,implement:[5,4,1,6],peek_queue_typ:5,travers:3,kept:[5,2,6,3],bewar:5,older:5,nevertheless:5,macro:[0,2],thu:2,well:[2,1],know:[5,3],exampl:[2,1,3,4,5,6,7],delete_attribut:3,thi:[2,1,3,4,5,6,7],endif:2,ispermalink:7,model:[0,3],propos:1,just:[5,4,7,1,2],obtain:5,rest:[7,3],gdb:4,ifdef:2,languag:[1,3],web:1,struct:[5,3],easi:4,extra:6,get_children:3,add:[5,2,7,3],cleanup:7,realloc:5,els:2,modul:[6,0,3],match:1,css3:1,css2:1,lxq_selected_el:6,format:[2,4,3],read:0,beggin:3,parse_dom:[6,3],mon:7,tire:2,lastbuildd:7,like:1,insert:[5,3],xqueri:1,resid:2,helpful:7,specif:[0,1],should:[5,6,1,3],serialization_typ:3,manual:1,integ:5,add_attribut:3,necessari:5,channel:7,transvers:1,popular:1,output:[2,7,3],resiz:5,page:2,depend:[2,3],www:7,right:[5,2],old:[5,7],lxq_parser:[6,7,3],some:[6,2,1,3],back:5,enumer:3,guaranti:5,proper:2,sizeof:[5,2],intact:[5,3],get_element_at:5,librari:1,remove_al:5,guid:7,bottom:2,leak:[5,3],definit:[5,2,3],exit:[5,2,4,6],foo:1,refer:1,peek:5,set_nam:3,run:[5,0,7,4,2],set_xml_declar:3,cascad:1,usag:[5,7,4],global_docu:7,how_mani:2,although:5,eventu:5,"throw":3,simpler:1,about:5,actual:[5,2,3],append_children:3,generic_list:1,destroy_rbtre:5,stand:1,act:5,ajax:1,produc:5,block:5,simple_filt:1,own:1,primarili:1,devic:1,eeeee:4,bbb:4,set_namespac:3,been:[2,1,3],tree_iterator_next:5,parse_str:6,mere:2,merg:[5,6],w3c:1,get_element_with_type_at:5,wai:[1,3],aren:[5,7],support:[4,3],get_desced:3,fast:5,custom:[7,1],start:[5,0],interfac:4,inner:1,xpath:1,get_child_at:[7,3],head:[5,3],rb_tree_delet:5,form:1,forc:6,dom_nod:[7,1,3],link:7,heap:5,add_element_with_typ:5,line:2,inlin:2,"true":5,denomin:3,info:2,notat:3,made:2,utf:7,attr:1,consist:5,possibl:[5,6,1],wish:5,bucket:5,below:[7,1,3],otherwis:[5,3],problem:2,prepend_element_with_typ:5,reachabl:5,featur:[5,4,7,1],pin:2,"int":[2,1,3,5,6,7],descript:[5,0,7,6,3],parser:[6,0,3],"__line__":2,repres:[5,3],strongli:6,exist:[5,4],file:[2,3,4,5,6,7],int64_t:5,check:[5,2,7],fill:[5,2],again:2,titl:[7,4],when:[5,2,1,3],prepend:[5,3],field:[5,3],valid:[2,3],rememb:5,test:[2,3,4,5,6,7],tie:1,you:[0,1,2,3,4,5,6,7],node:[5,4,7,1,3],new_generic_list_iter:[5,7],register_simple_custom_filt:1,destroy_dom_tre:[6,7,3],log:[5,0,2],consid:[5,2,3],merge_list:5,sroot:[5,3],stai:5,receiv:[5,2],cdata_text:3,set_doc_root:3,pseudo:1,rule:1,obj:5,time:6,push:5,key_function_point:5},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Special Macros","Document Object Model","Shell","Data Structures","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","macros.h","dom","applications/shell","data_structures/datastructures","parser/parser","tutorial/tutorial"]}) \ No newline at end of file +Search.setIndex({objects:{"":{dequeue:[5,0,1],new_element_node:[3,0,1],new_queue:[5,0,1],remove_element_at:[5,0,1],get_children:[3,0,1],siterator:[5,1,1],new_stack:[5,0,1],parse_xml:[6,0,1],enqueue:[5,0,1],set_value:[3,0,1],list:[5,1,1],get_name:[3,0,1],sdoc:[3,1,1],search_rbtree:[5,0,1],rb_tree_insert:[5,0,1],get_element_pos:[5,0,1],tree_iterator_next:[5,0,1],parse_string:[6,0,1],get_element_at:[5,0,1],new_text_node:[3,0,1],duplicate_generic_list:[5,0,1],"__alloc":[2,0,1],register_custom_filter:[1,0,1],remove_node:[3,0,1],pop_stack:[5,0,1],insert_element_at:[5,0,1],generic_list_get_count:[5,0,1],append_element_with_type:[5,0,1],delete_attribute:[3,0,1],new_generic_list_iterator:[5,0,1],prepend_child:[3,0,1],snode:[3,1,1],new_cdata:[3,0,1],remove_element:[5,0,1],peek_element_type_at:[5,0,1],set_element_at:[5,0,1],xmlquery_query:[1,0,1],generic_list_s:[5,1,1],get_descendants:[3,0,1],push_stack:[5,0,1],set_namespace:[3,0,1],get_namespace:[3,0,1],remove_all:[5,0,1],destroy_generic_list:[5,0,1],set_element_with_type_at:[5,0,1],tree_iterator_has_next:[5,0,1],get_element_with_type_at:[5,0,1],node_to_string:[3,0,1],new_generic_list:[5,0,1],parse_file:[6,0,1],set_parent:[3,0,1],new_document:[3,0,1],get_child_at:[3,0,1],remove_duplicates:[5,0,1],get_attribute_by_name:[3,0,1],new_rbtree:[5,0,1],add_element_with_type:[5,0,1],add_element:[5,0,1],get_doc_root:[3,0,1],new_attribute:[3,0,1],merge_lists:[5,0,1],doc:[3,1,1],stree_node:[5,1,1],rb_tree_delete:[5,0,1],tree_root:[5,1,1],parse_xml_from_string:[6,0,1],add_attribute:[3,0,1],set_xml_declarations:[3,0,1],peek_stack_type:[5,0,1],node_type:[3,1,1],get_xml_declarations:[3,0,1],insert_element_with_type_at:[5,0,1],enqueue_with_type:[5,0,1],register_simple_custom_filter:[1,0,1],destroy_rbtree:[5,0,1],push_stack_type:[5,0,1],destroy_generic_list_iterator:[5,0,1],new_simple_rbtree:[5,0,1],get_elements_by_name:[3,0,1],get_value:[3,0,1],tree_node:[5,1,1],destroy_iterator:[5,0,1],generic_list_iterator_has_next:[5,0,1],destroy_dom_node:[3,0,1],get_text_nodes:[3,0,1],dom_node:[3,1,1],prepend_element_with_type:[5,0,1],tree_iterator:[5,1,1],generic_list_is_empty:[5,0,1],sroot:[5,1,1],new_tree_iterator:[5,0,1],set_name:[3,0,1],append_child:[3,0,1],list_bucket:[5,1,1],peek_queue_type:[5,0,1],append_children:[3,0,1],set_doc_root:[3,0,1],sorted_insert_element_with_type:[5,0,1],generic_list_iterator_next:[5,0,1],destroy_dom_tree:[3,0,1]}},terms:{all:[2,1,3,5,6,7],code:[5,2,7,6],chain:1,queri:[6,0,7,1,4],global:[6,3],follow:[5,2,1,6,3],children:[1,3],whose:3,"const":[5,6,1],uint8_t:5,mmmmmmm:4,program:[5,4,7,1,6],becam:1,sens:5,fatal:2,above_source_fil:[5,2,6,3],sourc:5,everi:[5,7,1],string:[6,2,1,3],fals:[5,7],"void":[2,1,3,5,6,7],rise:1,eeee:4,variable_nam:4,veri:4,retriev:7,relev:5,level:2,new_rbtre:5,list:[5,0,7,1,3],iter:5,"try":7,item:[7,4],stderr:2,small:5,freed:5,impli:5,smaller:[5,2],search_rbtre:5,colect:0,register_custom_filt:1,htm:7,eas:2,yacc:6,second:[5,1,3],design:1,pass:[5,2,7,3],append:[5,3],even:[5,2],index:[0,3],what:[2,4],compar:5,defin:[5,2,1,6,3],neg:5,section:[5,2,6,3],node_to_str:[6,7,3],abl:[2,7],access:[5,6,1,3],delet:[5,1,3],version:[2,7,3],get_element_po:5,"new":[5,0,7,1,3],insert_element_at:5,ever:2,method:[5,1],generic_list_iter:[5,7],remove_dupl:5,full:5,parse_xml_from_str:6,append_el:5,gener:[5,0,4],here:[5,4],behaviour:5,let:[5,2,7,3],free:[5,6,7,3],address:[5,2],path:[5,2,7,6,3],modifi:3,sinc:3,valu:[5,1,3],search:[5,7,3],aug:7,ahead:7,add_el:5,technolog:1,prepend_child:3,queue:5,behav:5,chang:[7,3],ddebug:[6,2],append_element_with_typ:5,binary_fil:4,sorted_insert_element_with_typ:5,appli:[5,1],transit:5,filenam:6,prepend_el:5,printf:[5,2,7,6,3],set_element_with_type_at:5,total:5,select:1,kei:[5,2],node_typ:3,from:[1,3,4,5,6,7],describ:[5,2],would:[4,1],memori:[5,6,3],regist:1,two:[5,6,1,3],next:[5,6],qqqq:4,call:[5,4,1,2,3],recommend:[6,3],text_nod:[7,3],black:[5,0],type:[5,2,4,3],more:[5,1],sort:5,flat:1,desir:3,get_nam:3,relat:2,notic:[5,2,7,3],warn:2,flag:2,parse_fil:6,worri:5,set_valu:[7,3],hold:5,iii:4,must:[5,7,1,3],dictat:5,word:3,get_doc_root:[6,7,3],destroy_custom_filt:1,attr_nam:3,alia:[5,2],peek_stack_typ:5,can:[2,1,3,4,5,6],learn:7,fprintf:2,purpos:[5,4],root:[5,6,1,3],tree_root:5,control:3,prompt:4,xml_declar:3,capciti:5,tag:[1,3],caution:3,want:[5,7,1,3],serial:[6,0,7,3],type1:5,occur:6,type2:5,read_fil:7,alwai:[5,2],gcc:[5,2,7,6,3],end:[5,6,3],divid:6,anoth:[5,6,1,3],compare_function_point:5,capabil:7,write:1,how:[2,3,4,5,6,7],simpl:[5,4,7,1,3],parse_xml:[6,7,3],css:1,map:6,generic_list_is_empti:5,earlier:1,get_xml_declar:3,befor:[5,7],embrac:1,mai:[0,1,2,3,5,6],multipl:5,associ:3,grow:5,demonstr:4,util:1,alloc:[5,0,2],list_bucket:5,stdio:[5,2,7,6,3],correspond:3,element:[5,7,1,3],caus:2,recompil:[6,2],generic_list_iterator_next:[5,7],order:[5,1,3],includ:[5,2,7,6,3],feed:7,help:[0,1,4,2],ouput:5,rearang:1,over:[5,2,1],becaus:[5,2,6,3],through:[6,7,1,3],"__va_args__":2,still:5,pointer:[5,1,3],entiti:3,typedef:[5,3],xml_file:[6,3],get_valu:3,better:1,yaml:3,html:1,complex_filt:1,main:[5,2,7,6,3],flex:6,them:[4,1,2],"return":[2,1,3,5,6,7],thei:[5,1],handl:3,encod:7,safe:6,initi:5,front:6,retreiv:5,now:7,bigger:5,introduct:1,generic_list_:[5,3],document:[0,1,3,4,6,7],grammar:6,name:[2,1,3,5,6,7],anyth:5,separ:1,each:[5,3],debug:2,found:[5,3],mean:[5,2,1],compil:[0,2,3,4,5,6,7],domain:7,destroy_custom_oper:1,replac:5,new_docu:3,stringli:6,realli:[7,3],notabili:1,"static":2,year:1,our:[5,2,7,4,6],happen:[5,2,3],special:[0,1,2],out:[5,7],variabl:[6,4,3],shown:[2,7],space:[5,3],get_descend:3,yyi:4,your:[6,2,1],content:[7,1],print:[2,4,3],pop_stack:5,occurr:[5,1],red:[5,0],rb_tree_insert:5,xmlquery_queri:1,after:[4,1,3],destroy_generic_list_iter:[5,7],advanc:5,manipul:[7,1],given:[5,4,1,3],argv:[7,3],mmm:4,nth:3,reason:6,base:5,"byte":5,argc:[7,3],acord:5,unpredict:5,care:5,symetr:5,thread:6,lexer:6,keep:[5,3],filter:[7,1],thing:[5,2,7,3],isn:3,duplicate_generic_list:5,onto:[5,6,3],first:[5,2,1,3],oper:[7,1],directli:[1,3],arrai:[5,2],independ:1,number:[5,2,1],yourself:3,datastructur:5,alreadi:[5,1,3],done:[5,2,1,6,3],stdlib:5,destroy_generic_list:5,tree_iterator_has_next:5,new_simple_rbtre:5,differ:[5,1,3],sheet:1,data:[5,0,3],interact:[0,4],capac:5,messag:[6,2,4],stack:[5,7],checker:3,source_fil:7,query_runn:7,conveni:4,"final":[5,3],store:[5,6,4,3],too:3,shell:[0,4],option:2,namespac:3,pubdat:7,copi:6,selector:[0,1],part:3,pars:[6,0,7,3],cdata:3,enqueu:5,exactli:[5,7,3],than:[5,2],rss:[7,4],wide:1,kind:[5,1,3],third:5,new_element_nod:3,provid:[5,1,3],new_queu:5,remov:[5,2,7,3],tree:[5,0,7,1,3],structur:[5,0,6,3],charact:2,project:2,compare_integ:5,were:[5,2],posit:[5,1],int16_t:5,other:[5,2,1,3],markup:3,browser:1,"function":[0,1,2,3,5,6],sai:5,get_namespac:3,modern:1,query_express:4,argument:[5,4,7,1,3],realm:1,have:[2,1,3,5,6,7],need:[2,1,4,5,6,7],seen:1,seem:5,"null":[5,6,7,3],engin:4,lib:6,uuuuuu:4,destroi:[5,3],note:[5,2,1],also:[5,0,1,3],without:[5,2,7,4,6],tree_iter:5,take:[5,1],which:[2,1,3,4,5,6,7],conclud:7,generic_list_iterator_has_next:[5,7],command:[5,4],noth:[5,3],singl:[5,6,3],serializarion:3,begin:[5,4,7,1],pain:2,"enum":3,though:5,buffer:2,object:[5,0,3],most:[4,1],regular:7,why:5,print_xml:4,append_child:3,don:5,file_to_load:4,dom:[0,7,1,3],doc:[6,7,4,3],doe:[5,1,3],declar:[6,3],clean:[7,3],left:5,"__alloc":2,fact:1,someattribut:6,pope:5,show:[2,3,4,5,6,7],text:[1,3],random:[5,1],rbtree:5,tree_nod:5,detroi:5,find:0,remove_element_at:5,enqueue_with_typ:5,xml:[0,1,3,4,6,7],current:[5,6,1,3],onli:[5,1,3],locat:[5,2,6],pretti:7,new_tree_iter:5,explain:[6,7,3],someel:6,suppos:3,folder:[5,2,6,3],destroy_iter:5,new_stack:5,set_par:3,count:5,get:[5,2,7],"__file__":2,express:7,bear:3,lxq_document:[6,3],register_extended_oper:1,report:6,banner:4,xmlstring:6,bar:1,sdoc:3,deduc:4,contain:[5,2,3],dequeu:5,where:[5,2,1,6,3],bother:2,desced:3,summari:5,set:[5,3],see:[5,7,4],stree_nod:5,result:[6,2,7],arg:1,fail:[5,2],get_elements_by_nam:3,awar:[6,1,3],flexibl:3,libxmlqueri:[6,0,7],parent:[5,1,3],pattern:1,siter:5,won:2,simplest:4,generic_list_get_count:5,attribut:[1,3],altern:1,signatur:1,accord:[5,2,1],str:[6,2],extend:[1,3],javascript:[1,3],style:1,entir:3,remove_el:5,exclam:1,tue:7,new_text_nod:3,both:5,set_element_at:5,howev:[5,2,7,1],prite:6,equal:5,against:1,tutori:[0,7],context:1,mani:6,com:7,get_attribute_by_nam:3,load:4,push_stack:5,point:[5,2,1,3],color:5,int32_t:5,push_stack_typ:5,pop:5,header:[6,7],peek_element_type_at:5,remove_nod:3,typic:4,alloch:5,duplic:5,quit:4,creat:[0,1,2,3,4,5,7],coupl:6,union:3,rrrr:4,three:[5,1,3],empti:5,whom:3,json:3,much:5,new_generic_list:5,reflex:5,recomend:1,new_cdata:3,mind:[5,3],xxx:4,ani:[2,1,3,4,5,6,7],llll:4,doesn:[5,2,1,3],child:[1,3],quick:1,careful:3,present:[5,4,1],input:[5,6,3],"char":[6,2,7,1,3],ident:5,look:[5,2,3],properti:5,cast:2,"while":[5,2,7,1],ain:3,abov:[5,7],error:[6,2],invoc:5,malloc:[5,2],applic:4,new_attribut:3,valgrind:5,eras:2,insert_element_with_type_at:5,get_text_nod:3,sever:[2,1],develop:[4,1],parse_queri:6,perform:5,make:[4,1],same:[5,7,3],binari:[2,4],complex:1,descend:3,key_address:5,finish:1,http:7,optim:5,register_simple_custom_oper:1,upon:1,snode:3,capabl:[5,7,1,3],jqueri:1,user:[5,1],destroy_dom_nod:3,keyb:5,keya:5,implement:[5,4,1,6],peek_queue_typ:5,travers:3,kept:[5,2,6,3],bewar:5,older:5,nevertheless:5,macro:[0,2],thu:2,well:[2,1],know:[5,3],exampl:[2,1,3,4,5,6,7],delete_attribut:3,thi:[2,1,3,4,5,6,7],endif:2,ispermalink:7,model:[0,3],propos:1,just:[5,4,7,1,2],obtain:5,rest:[7,3],gdb:4,ifdef:2,languag:[1,3],web:1,struct:[5,3],easi:4,extra:6,get_children:3,add:[5,2,7,3],cleanup:7,realloc:5,els:2,modul:[6,0,3],match:1,css3:1,css2:1,lxq_selected_el:6,format:[2,4,3],read:0,beggin:3,parse_dom:[6,3],mon:7,tire:2,lastbuildd:7,like:1,insert:[5,3],xqueri:1,resid:2,helpful:7,specif:[0,1],should:[5,6,1,3],serialization_typ:3,manual:1,integ:5,add_attribut:3,necessari:5,channel:7,transvers:1,popular:1,output:[2,7,3],resiz:5,page:2,depend:[2,3],www:7,right:[5,2],old:[5,7],lxq_parser:[6,7,3],some:[6,2,1,3],back:5,enumer:3,guaranti:5,proper:2,sizeof:[5,2],intact:[5,3],get_element_at:5,librari:1,remove_al:5,guid:7,bottom:2,leak:[5,3],definit:[5,2,3],exit:[5,2,4,6],foo:1,refer:1,peek:5,set_nam:3,run:[5,0,7,4,2],set_xml_declar:3,cascad:1,usag:[5,7,4],global_docu:7,how_mani:2,although:5,eventu:5,"throw":3,simpler:1,about:5,actual:[5,2,3],append_children:3,generic_list:1,destroy_rbtre:5,stand:1,act:5,ajax:1,produc:5,block:5,simple_filt:1,own:1,primarili:1,devic:1,eeeee:4,bbb:4,set_namespac:3,been:[2,1,3],tree_iterator_next:5,parse_str:6,mere:2,merg:[5,6],w3c:1,get_element_with_type_at:5,wai:[1,3],aren:[5,7],support:[4,3],get_desced:3,fast:5,custom:[7,1],start:[5,0],interfac:4,inner:1,xpath:1,get_child_at:[7,3],head:[5,3],rb_tree_delet:5,form:1,forc:6,dom_nod:[7,1,3],link:7,heap:5,add_element_with_typ:5,line:2,inlin:2,"true":5,denomin:3,info:2,notat:3,made:2,utf:7,attr:1,consist:5,possibl:[5,6,1],wish:5,bucket:5,below:[7,1,3],otherwis:[5,3],problem:2,prepend_element_with_typ:5,reachabl:5,featur:[5,4,7,1],pin:2,"int":[2,1,3,5,6,7],descript:[5,0,7,6,3],parser:[6,0,3],"__line__":2,repres:[5,3],strongli:6,exist:[5,4],file:[2,3,4,5,6,7],int64_t:5,check:[5,2,7],fill:[5,2],again:2,titl:[7,4],when:[5,2,1,3],prepend:[5,3],field:[5,3],valid:[2,3],rememb:5,test:[2,3,4,5,6,7],tie:1,you:[0,1,2,3,4,5,6,7],node:[5,4,7,1,3],new_generic_list_iter:[5,7],register_simple_custom_filt:1,destroy_dom_tre:[6,7,3],log:[5,0,2],consid:[5,2,3],merge_list:5,sroot:[5,3],stai:5,receiv:[5,2],cdata_text:3,set_doc_root:3,pseudo:1,rule:1,obj:5,time:6,push:5,key_function_point:5},objtypes:{"0":"c:function","1":"c:type"},titles:["libxmlquery documentation","Querying","Special Macros","Document Object Model","Shell","Data Structures","Parser Module","Tutorial"],objnames:{"0":"C function","1":"C type"},filenames:["index","querying","macros.h","dom","applications/shell","data_structures/datastructures","parser/parser","tutorial/tutorial"]}) \ No newline at end of file