Nikolay Sivov
|
59f7b8899b
|
msxml3: Link dom attribute with parent interface pointer.
|
2011-03-03 17:47:13 +01:00 |
Nikolay Sivov
|
d04fd1d067
|
msxml3: Fail on certain node types in insertBefore() for attributes, remove broken tests.
|
2011-03-03 17:47:12 +01:00 |
Nikolay Sivov
|
a22096c90c
|
msxml3: Add get_output() implementation for processor.
|
2011-03-01 13:21:58 +01:00 |
Nikolay Sivov
|
37ce949745
|
msxml3: Always set out pointer to null on failed QueryInterface.
|
2011-03-01 13:21:58 +01:00 |
Nikolay Sivov
|
0c16c79c71
|
msxml3: Reject xmlns attribute to be added to element.
|
2011-02-28 11:09:07 +01:00 |
Nikolay Sivov
|
4e5075bcc4
|
msxml3/tests: Remove broken test and parameter check.
|
2011-02-28 11:09:04 +01:00 |
Austin English
|
37e6dc0846
|
msxml3/tests: Remove win9x hacks.
|
2011-02-25 11:08:31 +01:00 |
Nikolay Sivov
|
4735c5193f
|
msxml3: Get rid of not longer used internal IXMLDOMNode vtable.
|
2011-02-24 15:49:31 +01:00 |
Nikolay Sivov
|
bf01d1b3d7
|
msxml3: Remove transformNode() forward.
|
2011-02-24 15:49:30 +01:00 |
Nikolay Sivov
|
aac690d4fc
|
msxml3: Remove selectSingleNode() forward.
|
2011-02-24 15:49:29 +01:00 |
Nikolay Sivov
|
004944c81a
|
msxml3: Remove selectNodes() forward.
|
2011-02-24 15:49:29 +01:00 |
Alexandre Julliard
|
a1c8f6df84
|
msxml3: Include the system libxml headers before the Windows headers.
|
2011-02-24 15:49:28 +01:00 |
Michael Stefaniuc
|
16c543a089
|
msxml3: COM cleanup for the IDispatchEx iface.
|
2011-02-24 15:49:27 +01:00 |
Nikolay Sivov
|
d0bff37cb2
|
msxml3: Remove get_text() forward.
|
2011-02-23 18:22:18 +01:00 |
Nikolay Sivov
|
2e5a0dd63f
|
msxml3: Remove get_ownerDocument() forward.
|
2011-02-23 18:22:12 +01:00 |
Nikolay Sivov
|
3d63982f86
|
msxml3: Remove hasChildNodes() forward.
|
2011-02-23 18:22:04 +01:00 |
Nikolay Sivov
|
5775bcde4a
|
msxml3: Remove appendChild() forward.
|
2011-02-23 18:21:57 +01:00 |
Nikolay Sivov
|
1178f7b46e
|
msxml3: Remove forward to removeChild() method for nodes.
|
2011-02-23 18:21:51 +01:00 |
Alistair Leslie-Hughes
|
955685a777
|
msxml3: Add IObjectSafety support to IXMLHTTPRequest.
|
2011-02-22 16:34:46 +01:00 |
Nikolay Sivov
|
a0a464ad81
|
msxml3: Use helper to consistently dump variant parameters.
|
2011-02-22 12:30:37 +01:00 |
Nikolay Sivov
|
26084daa46
|
msxml3: Remove useless parts of schema cleanup helper.
|
2011-02-22 12:29:04 +01:00 |
Nikolay Sivov
|
df08e9b4f6
|
msxml3: Store document event handler for ready state notification.
|
2011-02-22 12:28:25 +01:00 |
Alistair Leslie-Hughes
|
27bb5a0f52
|
msxml3: Add IObjectWithSite support to IXMLHttpRequest.
|
2011-02-18 17:03:01 +01:00 |
Nikolay Sivov
|
edeff310b1
|
msxml3: Null pointer for schema uri should be treated as empty.
|
2011-02-17 17:27:22 +01:00 |
Nikolay Sivov
|
4e079d6b3d
|
msxml3: Initial implementation of transform() method.
|
2011-02-16 16:49:34 +01:00 |
Nikolay Sivov
|
bb47bab7ce
|
msxml3: Store output stream for processor.
|
2011-02-16 16:49:21 +01:00 |
Nikolay Sivov
|
392934af90
|
msxml3: Basic put_input() method for IXSLProcessor.
|
2011-02-16 16:48:51 +01:00 |
Jacek Caban
|
e703763e51
|
msxml3: Silence QueryInterface FIXME.
|
2011-02-16 14:26:27 +01:00 |
Nikolay Sivov
|
8fdf64e882
|
msxml3: Add a stub IXSLProcessor.
|
2011-02-15 16:51:30 +01:00 |
Nikolay Sivov
|
855ca45f29
|
msxml3: Add basic putref_stylesheet() implementation.
|
2011-02-15 16:51:30 +01:00 |
Nikolay Sivov
|
c406b888aa
|
msxml: Add IXSLTemplate stub.
|
2011-02-14 13:33:32 +01:00 |
Austin English
|
cbbb4b8dbf
|
msxml3/tests: Make sure return value is used (LLVM/Clang).
|
2011-02-10 10:28:01 -06:00 |
Austin English
|
fd2c5bb32e
|
msxml3/tests: Remove unneeded assignment (LLVM/Clang).
|
2011-02-08 14:45:54 -06:00 |
Michael Stefaniuc
|
4219fef3f4
|
msxml3: COM cleanup for the IXMLDOMNode iface in unknode.
|
2011-01-24 14:43:26 +01:00 |
Michael Stefaniuc
|
b500bccc60
|
msxml3: COM cleanup for the IXMLDOMNode iface in xmlnode.
|
2011-01-24 14:43:26 +01:00 |
Michael Stefaniuc
|
5fd62154f3
|
msxml3: COM cleanup for the IBindStatusCallback iface.
|
2011-01-24 14:43:24 +01:00 |
Nikolay Sivov
|
3ba78cf101
|
msxml3: Fix interface leak (Valgrind).
|
2011-01-24 12:35:02 +01:00 |
Nikolay Sivov
|
952f0a6af4
|
msxml3: Fix invalid read before allocated block (Valgrind).
|
2011-01-24 12:35:02 +01:00 |
Nikolay Sivov
|
f6ce8b7196
|
msxml3/tests: Fix a lot of leaks in tests (Valgrind).
|
2011-01-17 12:52:19 +01:00 |
Jacek Caban
|
4c6f8989eb
|
msxml3: Fixed memory leak (valgrind).
|
2011-01-14 18:26:19 +01:00 |
Jacek Caban
|
d3f456d146
|
msxml3: Don't forward get_namespaceURI calls to node's IXMLDOMNode iface.
|
2011-01-10 10:41:18 +01:00 |
Jacek Caban
|
730fa1e7f2
|
msxml3: Don't forward get_nodeTypedValue to node's IXMLDOMNode iface.
Its current implementation for XML_ENTITY_REF_NODE can't work and will
always return VT_NULL variant anyways.
|
2011-01-10 10:41:13 +01:00 |
Jacek Caban
|
510567d98a
|
msxml3: Get rid of xmlnode_transformNodeToObject.
|
2011-01-06 18:39:05 +01:00 |
Jacek Caban
|
9a16f796f2
|
msxml3: Don't forward put_nodeTypedValue and put_dataType calls to node IXMLDOMNode iface.
|
2010-12-30 15:02:27 +01:00 |
Michael Stefaniuc
|
e53582fdc1
|
msxml3: Use an iface instead of a vtbl pointer in parse_error_t.
|
2010-12-29 11:59:37 +01:00 |
Michael Stefaniuc
|
2a2bc6a98d
|
msxml3: Use an iface instead of a vtbl pointer in httprequest.
|
2010-12-29 11:59:35 +01:00 |
Michael Stefaniuc
|
13e1997860
|
msxml3: Standardize the COM usage in saxreader.c.
|
2010-12-28 16:35:39 +01:00 |
Michael Stefaniuc
|
e803e6347c
|
msxml3: Standardize the COM usage in xmlelem.c.
|
2010-12-23 13:47:23 +01:00 |
Michael Stefaniuc
|
0c5492aaee
|
msxml3: Use ifaces instead of vtbl pointers in xmldoc.
|
2010-12-23 13:47:22 +01:00 |
Alexandre Julliard
|
c1c92d07d7
|
msxml3: Convert dll registration to the IRegistrar mechanism.
|
2010-12-21 13:56:42 +01:00 |
Alexandre Julliard
|
41d6a92349
|
msxml2: Add an msxml2 library that contains the v2.6 msxml typelib.
|
2010-12-21 13:56:42 +01:00 |
Alexandre Julliard
|
cfa37214b9
|
msxml: Register the v2.0 classes using the IRegistrar mechanism.
|
2010-12-21 13:56:36 +01:00 |
Alexandre Julliard
|
f6b6c7bade
|
include: Correctly define the msxml typelib by directly including xmldom.idl and xmldso.idl.
|
2010-12-21 12:17:11 +01:00 |
Michael Stefaniuc
|
1b11ffaa6b
|
msxml3: Use an iface instead of a vtbl pointer in domfrag.
|
2010-12-16 12:06:51 +01:00 |
Michael Stefaniuc
|
42bdbab6e3
|
msxml3: Use an iface instead of a vtbl pointer in domdoctype.
|
2010-12-16 12:06:51 +01:00 |
Michael Stefaniuc
|
0be2929b03
|
msxml3: Use an iface instead of a vtbl pointer in domimpl.
|
2010-12-16 12:06:51 +01:00 |
Michael Stefaniuc
|
45f1825e72
|
msxml3: Use an iface instead of a vtbl pointer in domcomment.
|
2010-12-16 12:06:51 +01:00 |
Michael Stefaniuc
|
92a93a5c26
|
msxml3: Use an iface instead of a vtbl pointer in dom_pi.
|
2010-12-16 12:06:51 +01:00 |
Michael Stefaniuc
|
8db9985fee
|
msxml3: Use an iface instead of a vtbl pointer in xmlnodelist.
|
2010-12-16 12:06:51 +01:00 |
Michael Stefaniuc
|
25df7aac27
|
msxml3: Use an iface instead of a vtbl pointer in domelem.
|
2010-12-16 12:06:50 +01:00 |
Michael Stefaniuc
|
73b08ed2f0
|
msxml3: Use an iface instead of a vtbl pointer in domtext.
|
2010-12-16 12:06:50 +01:00 |
Michael Stefaniuc
|
ba7c754726
|
msxml3: Use an iface instead of a vtbl pointer in entityref.
|
2010-12-16 12:06:50 +01:00 |
Michael Stefaniuc
|
6a319a3328
|
msxml3: Use an iface instead of a vtbl pointer in domcdata.
|
2010-12-16 12:06:50 +01:00 |
Michael Stefaniuc
|
11b24354ff
|
msxml3: Use ifaces instead of vtbl pointers in xmlnodemap.
|
2010-12-16 12:06:50 +01:00 |
Michael Stefaniuc
|
41ac7a3b5c
|
msxml3: Use an iface instead of a vtbl pointer in domattr.
|
2010-12-16 12:06:50 +01:00 |
Alexandre Julliard
|
4ad97d404d
|
msxml3: Avoid using an initialized variable.
|
2010-12-09 17:46:47 +01:00 |
Michael Stefaniuc
|
4038523b4e
|
msxml3: Use ifaces instead of vtbl pointers in BindStatusCallback.
|
2010-12-09 12:25:50 +01:00 |
Francois Gouget
|
f10c16072e
|
msxml3: Add a trailing '\n' to an ERR() call.
|
2010-12-03 16:08:29 +01:00 |
Alexandre Julliard
|
5f49129e03
|
resources: Define a generic mechanism for adding extra values to the common version block.
|
2010-12-03 14:53:59 +01:00 |
Alexandre Julliard
|
9d9ce29823
|
msxml3: Avoid some uninitialized variable warnings on old gcc.
|
2010-12-01 19:45:34 +01:00 |
Adam Martinson
|
a4b0152c27
|
msxml3/domdoc: Add a ref to the schema cache in copy_properties().
|
2010-12-01 11:09:38 +01:00 |
Austin English
|
baf7a636a9
|
msxml3: Bump version information to SP9.
|
2010-11-29 11:23:12 +01:00 |
Ken Thomases
|
a6b38409be
|
msxml3: Fix building on Leopard.
|
2010-11-29 11:23:03 +01:00 |
Michael Stefaniuc
|
828fff8c8b
|
msxml3: Remove dead code: break after return (Smatch).
|
2010-11-25 11:49:08 +01:00 |
Adam Martinson
|
459c29ba34
|
msxml3: Store the DOMDocument/XMLSchemaCache object version.
|
2010-11-25 11:49:08 +01:00 |
Adam Martinson
|
10e2d26e3f
|
msxml3/schema: Properly handle schema_cache_add() from a URL.
|
2010-11-25 11:49:07 +01:00 |
Adam Martinson
|
54d949fbe8
|
msxml3: Fix a few error messages.
|
2010-11-25 11:49:07 +01:00 |
Adam Martinson
|
2f0e73f896
|
msxml3/tests: Move domdoc.c schema-related tests to schema.c.
|
2010-11-25 11:49:07 +01:00 |
Adam Martinson
|
92bfadef7f
|
msxml3: Add schema parse/validate error callbacks.
|
2010-11-24 12:05:49 +01:00 |
Adam Martinson
|
f3678ec193
|
msxml3: Fix domdoc_getElementsByTagName()/domelem_getElementsByTagName().
|
2010-11-24 12:03:06 +01:00 |
Adam Martinson
|
6f537c4df1
|
msxml3: Implement domtext dt-related functions.
These should always be handled by the parent node.
|
2010-11-24 12:02:35 +01:00 |
Adam Martinson
|
643cbafabc
|
msxml3: Validate node content in domelem_put_dataType().
|
2010-11-24 12:01:49 +01:00 |
Adam Martinson
|
f090ddfe13
|
msxml3: Add BSTR versions of the XDR_DT <-> string functions.
|
2010-11-24 12:01:35 +01:00 |
Adam Martinson
|
c19fa9b04b
|
msxml3: Use the associated schema for domelem_get_dataType().
|
2010-11-24 12:01:13 +01:00 |
Alexandre Julliard
|
d70b3e5929
|
msxml3: Fix incorrect uses of va_list arguments.
|
2010-11-17 14:21:09 +01:00 |
Michael Stefaniuc
|
2b1e03369d
|
msxml3: Remove 'const' from the function return types.
Type qualifiers have only a meaning for lvalues.
|
2010-11-17 14:01:14 +01:00 |
Gerald Pfeifer
|
7fe77b6369
|
msxml3: Remove practically unused variable from XDR_to_XSD_doc.
|
2010-11-16 11:59:14 +01:00 |
Adam Martinson
|
a1d69fcba7
|
msxml3: Add functions to get the dt:dt of a node.
|
2010-11-16 11:59:10 +01:00 |
Adam Martinson
|
4ec6da6ef1
|
msxml3: Add XDR datatypes enum and string table.
|
2010-11-16 11:59:04 +01:00 |
Adam Martinson
|
b7cdaba817
|
msxml3: Move schema cache into the domdoc_properties struct.
|
2010-11-16 11:48:55 +01:00 |
Adam Martinson
|
bc56bbfbb4
|
msxml3: Fix a datatypes.xsd oops.
|
2010-11-16 11:48:43 +01:00 |
Michael Stefaniuc
|
fa4c8c0900
|
msxml3/tests: Remove redundant NULL check before SysFreeString (smatch).
|
2010-11-16 11:43:20 +01:00 |
Paul Vriens
|
dc2306de5a
|
msxml3/tests: Fix some test failures on Win98/WinMe.
|
2010-11-15 13:20:05 +01:00 |
Adam Martinson
|
2c451f869a
|
msxml3: Use built-in urn:schemas-microsoft-com:datatypes schema for validation.
|
2010-11-15 13:19:57 +01:00 |
Adam Martinson
|
5fc439a7f8
|
msxml3: XDR schema support.
|
2010-11-15 13:03:06 +01:00 |
Adam Martinson
|
2a4c07a7e2
|
msxml3/tests: XDR schema tests.
|
2010-11-15 13:02:45 +01:00 |
Adam Martinson
|
89679f904a
|
msxml3: Add urn:schemas-microsoft-com:datatypes schema.
|
2010-11-15 13:02:34 +01:00 |
Adam Martinson
|
82f73c8652
|
msxml3: Add our own xmlFirstElementChild() for older libxml2 versions.
|
2010-11-15 13:01:35 +01:00 |
Adam Martinson
|
865995cf1f
|
msxml3: Store the DLL instance handle.
|
2010-11-15 13:00:12 +01:00 |
Nikolay Sivov
|
5240bae308
|
msxml3: Don't include assert.h where it's not used.
|
2010-11-12 11:39:27 +01:00 |
Nikolay Sivov
|
9ec17a841d
|
msxml3: Fix a ::get_xml() for libxml2 without xmlSaveToBuffer.
|
2010-11-12 11:39:20 +01:00 |
Alexandre Julliard
|
1174beef2a
|
include: Make msxml6.idl a copy of msxml2.idl instead of importing it.
|
2010-11-10 12:08:00 +01:00 |
Alexandre Julliard
|
6c90ebd5e5
|
include: Move coclass definitions to msxml2.idl.
|
2010-11-10 12:07:59 +01:00 |
Adam Martinson
|
7d37e7e6f6
|
msxml3/tests: Tests for node_get_dataType() with XDR schemas.
|
2010-11-09 11:46:34 +01:00 |
Nikolay Sivov
|
84aba12a28
|
msxml3: Dump set node value.
|
2010-11-09 11:45:04 +01:00 |
Nikolay Sivov
|
ec1ab037c8
|
msxml3: Trace DOM document reference counts.
|
2010-11-09 11:44:56 +01:00 |
Nikolay Sivov
|
804c50fb6c
|
msxml3: Use defined error code for no error case.
|
2010-11-09 11:44:53 +01:00 |
Nikolay Sivov
|
99e3873f30
|
msxml3: Fix duplicated declarations after document ::get_xml().
|
2010-11-09 11:44:50 +01:00 |
Jacek Caban
|
8036509c09
|
msxml3: Don't use xmlnode's IXMLDOMNode iface in get_nodeTypeString implementations.
|
2010-11-08 11:56:13 +01:00 |
Nikolay Sivov
|
e9e58f07d2
|
msxml3: Stub IXMLDOMDocumentType support.
|
2010-11-05 11:28:32 +01:00 |
Nikolay Sivov
|
6d48656fb2
|
msxml3: Don't force put_nodeValue return value.
|
2010-11-05 11:25:13 +01:00 |
Nikolay Sivov
|
a353a91f32
|
msxml3: For tested cases use TRACE instead of FIXME.
|
2010-11-05 11:25:08 +01:00 |
Nikolay Sivov
|
8f976c5d53
|
msxml3: Encode special characters while setting attribute content.
|
2010-11-05 11:25:00 +01:00 |
Adam Martinson
|
85ced167bd
|
msxml3: Fix node_get_text() whitespace handling.
|
2010-11-04 11:56:29 +01:00 |
Adam Martinson
|
e95122162a
|
msxml3: Move the whitespace preservation bool into the domdoc_properties struct.
|
2010-11-04 11:56:26 +01:00 |
Adam Martinson
|
e16914963e
|
msxml3: Implement XSLPattern collection methods.
|
2010-11-03 14:56:26 +01:00 |
Adam Martinson
|
42ccbc5132
|
msxml3: Add XSLPattern nodeType() method.
|
2010-11-03 14:50:43 +01:00 |
Adam Martinson
|
8401caae4c
|
msxml3: Use libxml2 macros for XSLPattern method return values.
|
2010-11-03 14:50:36 +01:00 |
Adam Martinson
|
c367215bbc
|
msxml3: Implement domdoc schema validation.
|
2010-11-03 14:44:50 +01:00 |
Francois Gouget
|
b990617a95
|
Assorted spelling fixes.
|
2010-11-02 13:16:57 +01:00 |
Francois Gouget
|
e71dac1ead
|
msxml3/tests: Small spelling fix in a nonexistent resource.
|
2010-11-02 13:16:29 +01:00 |
Francois Gouget
|
3e331731c9
|
msxml3/tests: Add a trailing '\n' to ok() calls.
|
2010-11-02 13:16:24 +01:00 |
Francois Gouget
|
a034694ccd
|
msxml3: Add a trailing '\n' to a FIXME() calls.
|
2010-11-02 13:16:19 +01:00 |
Adam Martinson
|
5c7bcdadcf
|
msxml3: Add error code defines.
|
2010-11-02 12:51:51 +01:00 |
Adam Martinson
|
bf11a93b05
|
msxml3: Add a function to validate a tree against a schema cache.
|
2010-11-02 12:51:01 +01:00 |
Nikolay Sivov
|
678fbc172c
|
msxml3: Hint parser to use UTF-8 if it's specfied as BOM.
|
2010-11-01 12:41:24 +01:00 |
Nikolay Sivov
|
1e998bfc3f
|
msxml3: Get rid of ::get_baseName() forward.
|
2010-11-01 12:39:21 +01:00 |
Nikolay Sivov
|
6556ad57f3
|
msxml3: Get rid of ::get_prefix() forward.
|
2010-11-01 12:39:15 +01:00 |
Nikolay Sivov
|
936d4cf911
|
msxml3: Get rid of ::cloneNode() forward.
|
2010-11-01 12:39:09 +01:00 |
Nikolay Sivov
|
eef194a799
|
msxml3: Implement a trivial case of ::put_nodeTypedValue() for elements.
|
2010-11-01 12:39:02 +01:00 |
Adam Martinson
|
e7d8bbab44
|
msxml3/tests: Add XSLPattern collection method tests.
|
2010-10-29 17:28:14 +02:00 |
Adam Martinson
|
77b7323b4f
|
msxml3: Fix XSLPattern namespace handling.
|
2010-10-29 17:28:11 +02:00 |
Jacek Caban
|
6241b9d652
|
msxml3: Don't use xmlnode's IXMLDOMNode iface in get_xml implementations.
|
2010-10-29 16:31:42 +02:00 |
Nikolay Sivov
|
b1aaa86e14
|
msxml3: Trace backend error even when user error handler is not set.
|
2010-10-29 14:21:48 +02:00 |
Nikolay Sivov
|
2329d2afdd
|
msxml3: Build qualified name using libxml2 helper.
|
2010-10-29 14:21:41 +02:00 |
Nikolay Sivov
|
8f9804ed0b
|
msxml3: Add a helper to check for error handler being set.
|
2010-10-29 14:21:32 +02:00 |
Nikolay Sivov
|
843bd25012
|
msxml3/tests: Some encoding switching tests.
|
2010-10-29 14:21:21 +02:00 |
Adam Martinson
|
35643b73e3
|
msxml3/tests: Add namespace-related XSLPattern tests.
|
2010-10-28 12:38:13 +02:00 |
Adam Martinson
|
fec2199f4f
|
msxml3: libxml2 error/warning callback functions.
|
2010-10-28 12:17:02 +02:00 |
Nikolay Sivov
|
850be4da8c
|
msxml3: Actually try to use IPersistStream if it's available.
|
2010-10-28 11:42:08 +02:00 |
Nikolay Sivov
|
9a3bfce9c0
|
msxml3: Output error message for fatal errors.
|
2010-10-27 11:50:06 +02:00 |
Nikolay Sivov
|
bd7787c12a
|
msxml3: Fix a leak of error message BSTR.
|
2010-10-27 11:50:00 +02:00 |
Nikolay Sivov
|
ecfc3f153c
|
msxml3: Make line endings fix helper faster using BSTR stored length.
|
2010-10-27 11:49:54 +02:00 |
Nikolay Sivov
|
adfd305821
|
msxml3: Handle passed BSTR argument as a WCHAR string in ::createProcessingInstruction().
|
2010-10-26 13:01:41 +02:00 |
Michael Stefaniuc
|
6f0c968a7b
|
msxml3/tests: Remove superfluous NULL check before free (Smatch).
|
2010-10-26 11:55:13 +02:00 |
Michael Stefaniuc
|
63bf86357e
|
msxml3: Remove returns after returns (Smatch).
That's the intent of commit 70edd9a7 .
|
2010-10-26 11:55:07 +02:00 |
Nikolay Sivov
|
21fddfe235
|
msxml3: Use proper naming and types for IObject* interfaces.
|
2010-10-25 14:30:59 +02:00 |
Nikolay Sivov
|
b9956f75a9
|
msxml3: Add ::Unadvise().
|
2010-10-25 14:30:40 +02:00 |
Nikolay Sivov
|
fe3ff2ea9f
|
msxml3: Add ::GetConnectionPointContainer().
|
2010-10-25 14:30:35 +02:00 |
Nikolay Sivov
|
eb23a4df25
|
msxml3: Add ::GetConnectionInterface().
|
2010-10-25 14:30:31 +02:00 |