[jboss-svn-commits] JBL Code SVN: r36939 - in labs/jbosstm/trunk: ArjunaJTA and 6 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Apr 15 09:31:46 EDT 2011


Author: tomjenkinson
Date: 2011-04-15 09:31:46 -0400 (Fri, 15 Apr 2011)
New Revision: 36939

Added:
   labs/jbosstm/trunk/docs/txbridge_guide/
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/About_This_Guide.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Design_Notes.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Introduction.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Known_Limitations.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridge_Architecture.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.ent
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Using_the_Transaction_Bridge.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/inboundbridging.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/outboundbridging.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/txbridgelogging.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/verboselogging.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/architecture.png
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/bridgeinterposition.png
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/interposition.gif
Removed:
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/About_This_Guide.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Architecture_of_the_recovery_manager.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Configuration_options.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Failure_Recovery_Guide.ent
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Failure_Recovery_Guide.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/How_JBossTS_manages_the_OTS_recovery_protocol.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/XAResourceRecoveryHelper.java
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/XAResourceRecoveryInterface.java
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/jndiDatasource.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/recoveryModuleInterface.java
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/recoveryScanInterface.java
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/xmlDatasource.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/icons/
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig1-crashrecoveryarchitecture.gif
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig2-resourceinitiatedrecovery.gif
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig3-resource-recoverycoordinator.gif
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig4-overview-of-poa.gif
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig5-recoverymanager.gif
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig6-resourceregistration.gif
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/icon.svg
   labs/jbosstm/trunk/txbridge/docs/
Modified:
   labs/jbosstm/trunk/ArjunaJTA/build.xml
   labs/jbosstm/trunk/build-release-pkgs.xml
   labs/jbosstm/trunk/docs/build.xml
   labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/About_This_Guide.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Author_Group.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Book_Info.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Preface.xml
   labs/jbosstm/trunk/docs/txbridge_guide/en-US/Revision_History.xml
Log:
JBTM-836 converted the transaction bridging guide to docbook

Modified: labs/jbosstm/trunk/ArjunaJTA/build.xml
===================================================================
--- labs/jbosstm/trunk/ArjunaJTA/build.xml	2011-04-15 09:30:18 UTC (rev 36938)
+++ labs/jbosstm/trunk/ArjunaJTA/build.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -87,7 +87,9 @@
             <fileset dir="../ArjunaCore" includes="**/*.pdf"/>
         </copy>
 
-        <ant dir="../docs" target="install.common.docs"/>
+        <ant dir="../docs" target="install.common.docs">
+            <property name="dest.dir" value="build"/>
+        </ant>
         <copy todir="${build.dir}/install/${dest.dir}" overwrite="true" flatten="true">
             <fileset dir="../docs" includes="**/*.pdf"/>
         </copy>

Modified: labs/jbosstm/trunk/build-release-pkgs.xml
===================================================================
--- labs/jbosstm/trunk/build-release-pkgs.xml	2011-04-15 09:30:18 UTC (rev 36938)
+++ labs/jbosstm/trunk/build-release-pkgs.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -80,11 +80,11 @@
     <!-- a working directory for the process. Can contain output from previous releases if you like to keep them archived locally. -->
     <property name="workdir" location="/tmp/packaged_builds"/>
     <!-- where to get the source -->
-    <property name="svnbase" value="https://svn.jboss.org/repos/labs/labs/jbosstm/tags"/>
+    <property name="svnbase" value="https://svn.jboss.org/repos/labs/labs/jbosstm"/>
     <!-- The tag as it appears under svnbase -->
-    <property name="tag" value="JBOSSTS_4_14_0_Final"/>
+    <property name="tag" value="trunk"/>
     <!-- The file name base for the user downloadable files. Derive it from the tag -->
-    <property name="filename" value="4.14.0.Final"/>
+    <property name="filename" value="4.15.0.Final.SNAPSHOT"/>
     <!-- the location the JBossTS web site content is copied to -->
     <property name="downloads.dir" value="/home/jhalli/IdeaProjects/jboss/filemgmt.jboss.org/downloads_htdocs/jbosstm/"/>
     <!-- the mvn repo to upload to -->

Modified: labs/jbosstm/trunk/docs/build.xml
===================================================================
--- labs/jbosstm/trunk/docs/build.xml	2011-04-15 09:30:18 UTC (rev 36938)
+++ labs/jbosstm/trunk/docs/build.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -63,6 +63,11 @@
                     <arg value="--langs=en-US"/>
                     <arg value="--formats=pdf,html"/>
                 </exec>
+                <exec dir="txbridge_guide" executable="publican" failonerror="true">
+                    <arg value="build"/>
+                    <arg value="--langs=en-US"/>
+                    <arg value="--formats=pdf,html"/>
+                </exec>
                 <copy todir="${dest.dir}" overwrite="true" flatten="true">
                     <fileset dir="." includes="**/*.pdf" excludes="**/*Release*.pdf"/>
                 </copy>

Modified: labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/About_This_Guide.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/About_This_Guide.xml	2011-04-15 09:30:18 UTC (rev 36938)
+++ labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/About_This_Guide.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
 %BOOK_ENTITIES;
 ]>
 <chapter>

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/About_This_Guide.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/About_This_Guide.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/About_This_Guide.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
-<!ENTITY PRODUCT "JBoss Transactions">
-<!ENTITY BOOKID "Failure_Recovery_Guide">
-<!ENTITY VERSION "4.15">
-<!ENTITY YEAR "2011">
-<!ENTITY HOLDER "JBoss.org">
-<!ENTITY APPSERVER "JBoss Application Server">
-<!-- <!ENTITY APPSERVER "Enterprise Application Platform Server"> -->]>
-<chapter>
-    <title>About This Guide</title>
-    <para>
-    The Failure Recovery Guide contains information on how to use JBossTS.
-  </para>
-    <section>
-        <title>Audience</title>
-        <para>
-      This guide is most relevant to engineers who are responsible for administering JBoss Transactions installations.
-    </para>
-    </section>
-    <section>
-        <title>Prerequisites</title>
-        <para>
-      You should have installed JBossTS.
-    </para>
-    </section>
-</chapter>

Copied: labs/jbosstm/trunk/docs/txbridge_guide/en-US/About_This_Guide.xml (from rev 36934, labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/About_This_Guide.xml)
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/About_This_Guide.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/About_This_Guide.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<chapter>
+  <title>About This Guide</title>
+  <para>
+    The Transaction Bridging Guide contains information on how to use &PRODUCT;.
+    This guide provides information on how to integrate JTA (XA) and XTS (WS-AT) transactions using
+    the transaction bridge.
+  </para>
+  <section>
+    <title>Audience</title>
+    <para>
+      This guide is most relevant for application developers working in environments that
+      integrate traditional JavaEE transactions usage and transactional Web Services.
+    </para>
+  </section>
+  <section>
+    <title>Prerequisites</title>
+    <para>
+      JBossTS uses the Java programming language and this manual assumes that you are familiar
+      with programming in Java. In addition, a familiarity with the JTA and XTS components of
+      JBossTS is assumed. You should read the relevant Programmer's Guides before tackling this
+      document.
+    </para>
+  </section>
+</chapter>

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Architecture_of_the_recovery_manager.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Architecture_of_the_recovery_manager.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Architecture_of_the_recovery_manager.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,882 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
-]>
-<chapter>
-  <title>Architecture of the Recovery Manager</title>
-  <section>
-    <title>Crash Recovery Overview</title>
-    <para>The main architectural components within Crash Recovery are
-      illustrated in the diagram below:</para>
-    <figure>
-      <title>Recovery Manager Architecture</title>
-      <mediaobject>
-        <imageobject>
-          <imagedata fileref="images/fig1-crashrecoveryarchitecture.gif"
-            format="GIF" />
-        </imageobject>
-      </mediaobject>
-    </figure>
-    <para>The Recovery Manager is a daemon process1 responsible for
-      performing crash recovery. Only one Recovery Manager runs per
-      node. The Object Store provides persistent data storage for
-      transactions to log data. During normal transaction processing
-      each transaction will log persistent data needed for the commit
-      phase to the Object Store. On successfully committing a
-      transaction this data is removed, however if the transaction fails
-      then this data remains within the Object Store.</para>
-    <para>The Recovery Manager functions by:</para>
-    <itemizedlist>
-      <listitem>
-        <para>Periodically scanning the Object Store for transactions
-          that may have failed. Failed transactions are indicated by the
-          presence of log data after a period of time that the
-          transaction would have normally been expected to finish.
-        </para>
-      </listitem>
-      <listitem>
-        <para>Checking with the application process which originated the
-          transaction whether the transaction is still in progress or
-          not.</para>
-      </listitem>
-      <listitem>
-        <para>Recovering the transaction by re-activating the
-          transaction and then replaying phase two of the commit
-          protocol.</para>
-      </listitem>
-    </itemizedlist>
-    <para>
-      The following sections describe the architectural components
-      in more
-      detail.
-  </para>
-  </section>
-  <section>
-    <title>Recovery Manager</title>
-    <para>
-      On initialization the Recovery Manager first loads in
-      configuration information via a properties file. This
-      configuration includes a number of recovery activators and
-      recovery modules, which are then dynamically loaded.
-    </para>
-    <para>
-      The Recovery Manager is not specifically tied to an Object
-      Request
-      Broker or ORB. Hence, the OTS recovery protocol is not
-      implicitly
-      enabled. To enable such protocol, we use the concept of
-      recovery
-      activator, defined with the interface RecoveryActivator,
-      which is
-      used to instantiate a recovery class related to the
-      underlying
-      communication protocol. For instance, when used with
-      OTS, the
-      RecoveryActivitor has the responsibility to create a
-      RecoveryCoordinator object able to respond to the
-      replay_completion operation.
-    </para>
-    <para>
-      All RecoveryActivator instances inherit the same interface.
-      They are
-      loaded via the following recovery extension property:
-    </para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.recoveryActivators"&gt;
-  list_of_class_names
-&lt;entry&gt;</programlisting>
-    </para>
-    <para>
-      For instance the RecoveryActivator provided in the
-      distribution of
-      JTS/OTS, which shall not be commented, is as
-      follow:
-    </para>
-    <para><programlisting>&lt;entry key="RecoveryEnvironmentBean.recoveryActivators"&gt;
-      com.arjuna.ats.internal.jts.orbspecific.recovery.RecoveryEnablement
-&lt;entry&gt;</programlisting>
-    </para>
-    <para>
-      When loaded all RecoveryActivator instances provide the method
-      startRCservice invoked by the Recovery Manager and used to create
-      the appropriate Recovery Component able to receive recovery
-      requests according to a particular transaction protocol. For
-      instance the RecoveryCoordinator defined by the OTS protocol.
-    </para>
-    <para>
-      Each recovery module is used to recover a different type of
-      transaction/resource, however each recovery module inherits the
-      same basic behavior.
-    </para>
-    <para>
-      Recovery consists of two separate passes/phases separated by
-      two timeout
-      periods. The first pass examines the object store for
-      potentially
-      failed transactions; the second pass performs crash
-      recovery on
-      failed transactions. The timeout between the first and
-      second pass
-      is known as the backoff period. The timeout between the
-      end of the
-      second pass and the start of the first pass is the
-      recovery
-      period. The recovery period is larger than the backoff
-      period.
-    </para>
-    <para>
-      The Recovery Manager invokes the first pass upon each recovery
-      module,
-      applies the backoff period timeout, invokes the second pass
-      upon
-      each recovery module and finally applies the recovery period
-      timeout before restarting the first pass again.
-    </para>
-    <para>
-      The recovery modules are loaded via the following recovery
-      extension
-      property:
-    </para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.recoveryExtenstions"&gt;
-   list_of_class_names
-&lt;entry&gt;</programlisting>
-    </para>
-    <para>
-      The backoff period and recovery period are set using the
-      following
-      properties:
-    </para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.recoveryBackoffPeriod"&gt;</programlisting>
-    </para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.periodicRecoveryPeriod"&gt;</programlisting>
-    </para>
-    <para>
-      The following java classes are used to implement the Recovery
-      Manager:
-    </para>
-    <itemizedlist>
-      <listitem>
-        <para>package com.arjuna.ats.arjuna.recovery :</para>
-        <para>RecoveryManager – The daemon process that starts up by
-          instantiating an instance of the RecoveryManagerImple class.
-        </para>
-        <para>RecoveryEnvironment - Properties used by the recovery
-          manager.</para>
-        <para>RecoveryConfiguration - Specifies the name of the Recovery
-          Manager property file.(ie RecoveryManager-properties.xml)
-        </para>
-      </listitem>
-      <listitem>
-        <para>package com.arjuna.ats.internal.ts.arjuna.recovery :
-        </para>
-        <para>RecoveryManagerImple - Creates and starts instances of the
-          RecActivatorLoader, the PeriodicRecovery thread and the
-          ExpiryEntryMonitor thread.</para>
-        <para>RecActivatorLoader - Dynamically loads in the
-          RecoveryActivator specified in the Recovery Manager property
-          file. Each RecoveryActicator is specified as a recovery
-          extension in the properties file </para>
-        <para>PeriodicRecovery - Thread which loads each recovery
-          module, then calls the first pass method for each module,
-          applies the backoff period timeout, calls the second pass
-          method for each module and applies the recovery period
-          timeout. </para>
-        <para>RecoveryClassLoader - Dynamically loads in the recovery
-          modules specified in the Recovery Manager property file. Each
-          module is specified as a recovery extension in the properties
-          file (e.g., com.arjuna.ats.arjuna.recovery.recoveryExtension1=
-          com.arjuna.ats.internal.ts.arjuna.recovery.AtomicActionRecoveryModule).
-        </para>
-      </listitem>
-    </itemizedlist>
-    <note>
-      <para>By default, the recovery manager listens on the first
-        available port on a given machine. If you wish to control the
-        port number that it uses, you can specify this using the
-        com.arjuna.ats.arjuna.recovery.recoveryPort attribute.</para>
-    </note>
-    <section>
-      <title>Managing recovery directly</title>
-      <para>As already mentioned, recovery typically happens at periodic
-        intervals. If you require to drive recovery directly, then there
-        are two options, depending upon how the RecoveryManager has been
-        created.</para>
-    </section>
-    <section>
-      <title>Separate Recovery Manager</title>
-      <para>You can either use the
-        com.arjuna.ats.arjuna.tools.RecoveryMonitor program to send a
-        message to the Recovery Manager instructing it to perform
-        recovery, or you can create an instance of the
-        com.arjuna.ats.arjuna.recovery.RecoveryDriver class to do
-        likewise. There are two types of recovery scan available:</para>
-      <itemizedlist>
-        <listitem>
-          <para>i. ASYNC_SCAN: here a message is sent to the
-            RecoveryManager to instruct it to perform recovery, but the
-            response returns before recovery has completed.</para>
-        </listitem>
-        <listitem>
-          <para>ii. SYNC: here a message is sent to the RecoveryManager
-            to instruct it to perform recovery, and the response occurs
-            only when recovery has completed.</para>
-        </listitem>
-      </itemizedlist>
-    </section>
-    <section>
-      <title>In process Recovery Manager</title>
-      <para>You can invoke the scan operation on the RecoveryManager.
-        This operation returns only when recovery has completed.
-        However, if you wish to have an asynchronous interaction
-        pattern, then the RecoveryScan interface is provided:</para>
-
-      <example>
-        <title>RecoveryScan interface</title>
-        <programlisting role="JAVA" language="Java">
-          <xi:include href="extras/recoveryScanInterface.java"
-          xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" />
-        </programlisting>
-      </example>
-
-      <para>An instance of an object supporting this interface can be
-        passed to the scan operation and its completed method will be
-        called when recovery finishes. The scan operation returns
-        immediately, however.</para>
-    </section>
-    <section>
-      <title>Recovering For Multiple Transaction Coordinators</title>
-      <para>Sometimes a single Recovery Manager can be made responsible
-        for recovering transactions executing on behalf of multiple
-        transaction coordinators. Conversely, due to specific
-        configurations it may be that multiple Recovery Managers share
-        the same Object Store and in which case should not conflict with
-        each other, e.g., roll back transactions that they do not
-        understand. Therefore, when running recovery it is necessary to
-        tell JBossTS which types of transactions it can recover and
-        which transaction identifiers it should ignore.</para>
-      <para>When necessary each transaction identifier that JBossTS
-        creates may have a unique node identifier encoded within it and
-        JBossTS will only recover transactions and states that match a
-        specified node identifier. The node identifier for each JBossTS
-        instance should be set via the
-        com.arjuna.ats.arjuna.nodeIdentifier property. This value must
-        be unique across JBossTS instances. The contents of this should
-        be alphanumeric and not exceed 10 bytes in length. If you do not
-        provide a value, then JBossTS will fabricate one and report the
-        value via the logging infrastructure.</para>
-      <para>How this value is used will depend upon the type of
-        resources being recovered and will be discussed within the
-        relevant sections for the Recovery Modules.</para>
-    </section>
-  </section>
-  <section>
-    <title>Recovery Modules</title>
-    <para>As stated before each recovery module is used to recover a
-      different type of transaction/resource, but each recovery module
-      must implement the following RecoveryModule interface, which
-      defines two methods: periodicWorkFirstPass and
-      periodicWorkSecondPass invoked by the Recovery Manager. </para>
-
-    <example>
-      <title>RecoveryModule interface</title>
-      <programlisting role="JAVA" language="Java">
-        <xi:include href="extras/recoveryModuleInterface.java"
-        xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" />
-      </programlisting>
-    </example>
-    <section>
-      <title>JBossTS Recovery Module Classes</title>
-      <para>JBossTS provides a set of recovery modules that are
-        responsible to manage recovery according to the nature of the
-        participant and its position in a transactional tree. The
-        provided classes (that all implements the RecoveryModule
-        interface) are:</para>
-      <itemizedlist>
-        <listitem>
-          <para>com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule
-          </para>
-          <para>Recovers AtomicAction transactions. </para>
-        </listitem>
-        <listitem>
-          <para>com.arjuna.ats.internal.jts.recovery.transactions.TransactionRecoveryModule
-          </para>
-          <para>Recovers JTS Transactions. This is a generic class from
-            which TopLevel and Server transaction recovery modules
-            inherit, respectively </para>
-        </listitem>
-        <listitem>
-          <para>com.arjuna.ats.internal.jts.recovery.transactions.TopLevelTransactionRecoveryModule
-          </para>
-        </listitem>
-        <listitem>
-          <para>com.arjuna.ats.internal.jts.recovery.transactions.ServerTransactionRecoveryModule
-          </para>
-        </listitem>
-      </itemizedlist>
-    </section>
-  </section>
-  <section>
-    <title>A Recovery Module for XA Resources</title>
-    <para>During recovery, the Transaction Manager needs to be able to
-      communicate to all resource managers that are in use by the
-      applications in the system. For each resource manager, the
-      Transaction Manager uses the XAResource.recover method to retrieve
-      the list of transactions that are currently in a prepared or
-      heuristically completed state. Typically, the system administrator
-      configures all transactional resource factories that are used by
-      the applications deployed on the system. An example of such a
-      resource factory is the JDBC XADataSource object, which is a
-      factory for the JDBC XAConnection objects.</para>
-    <para>Because XAResource objects are not persistent across system
-      failures, the Transaction Manager needs to have some way to
-      acquire the XAResource objects that represent the resource
-      managers which might have participated in the transactions prior
-      to the system failure. For example, a Transaction Manager might,
-      through the use of JNDI lookup mechanism, acquire a connection
-      from each of the transactional resource factories, and then obtain
-      the corresponding XAResource object for each connection. The
-      Transaction Manager then invokes the XAResource.recover method to
-      ask each resource manager to return the transactions that are
-      currently in a prepared or heuristically completed state.</para>
-    <note>
-      <para>When running XA recovery it is necessary to tell JBossTS
-        which types of Xid it can recover. Each Xid that JBossTS creates
-        has a unique node identifier encoded within it and JBossTS will
-        only recover transactions and states that match a specified node
-        identifier. The node identifier to use should be provided to
-        JBossTS via the property JTAEnvironmentBean.xaRecoveryNodes;
-        multiple values may be provided in a list. A value of ‘*’ will
-        force JBossTS to recover (and possibly rollback) all
-        transactions irrespective of their node identifier and should be
-        used with caution. The contents of
-        com.arjuna.ats.jta.xaRecoveryNode should be alphanumeric and
-        match the values of com.arjuna.ats.arjuna.nodeIdentifier.</para>
-    </note>
-    <para>One of the following recovery mechanisms will be used:</para>
-    <itemizedlist>
-      <listitem>
-        <para>If the XAResource is serializable, then the serialized
-          form will be saved during transaction commitment, and used
-          during recovery. It is assumed that the recreated XAResource
-          is valid and can be used to drive recovery on the associated
-          database.
-        </para>
-      </listitem>
-      <listitem>
-        <para>The com.arjuna.ats.jta.recovery.XAResourceRecovery,
-          com.arjuna.ats.jta.recovery.XARecoveryResourceManager and
-          com.arjuna.ats.jta.recovery.XARecoveryResource interfaces are
-          used. These are described in detail later in this document.
-        </para>
-      </listitem>
-    </itemizedlist>
-    <para>To manage recovery, we have seen in the previous chapter that
-      the Recovery Manager triggers a recovery process by calling a set
-      of recovery modules that implements the two methods defined by the
-      RecoveryModule interface. To enable recovery of participants
-      controlled via the XA interface, a specific recovery module named
-      XARecoveryModule is provided. The XARecoveryModule, defined in the
-      packages com.arjuna.ats.internal.jta.recovery.arjunacore and
-      com.arjuna.ats.internal.jta.recovery.jts, handles recovery of XA
-      resources (databases etc.) used in JTA.</para>
-    <note>
-      <para>JBossTS supports two JTA implementations: a purely local
-        version (no distributed transactions) and a version layered on
-        the JTS. Recovery for the former is straightforward. In the
-        following discussion we shall implicitly consider on the JTS
-        implementation.</para>
-    </note>
-    <para>Its behavior consists of two aspects: “transaction-initiated”
-      and “resource-initiated” recovery. Transaction-initiated recovery
-      is possible where the particular transaction branch had progressed
-      far enough for a JTA Resource Record to be written in the
-      ObjectStore.</para>
-    <para>A JTA Resource record contains the information needed to link
-      the transaction, as known to the rest of JBossTS, to the database.
-      Resource-initiated recovery is necessary for branches where a
-      failure occurred after the database had made a persistent record
-      of the transaction, but before the JTA ResourceRecord was
-      persisted. Resource-initiated recovery is also necessary for
-      datasources for which it is not possible to hold information in
-      the JTA Resource record that allows the recreation in the
-      RecoveryManager of the XAConnection/XAResource that was used in
-      the original application.</para>
-    <para>Transaction-initiated recovery is automatic. The
-      XARecoveryModule finds the JTA Resource Record that need recovery,
-      then uses the normal recovery mechanisms to find the status of the
-      transaction it was involved in (i.e., it calls replay_completion
-      on the RecoveryCoordinator for the transaction branch),
-      (re)creates the appropriate XAResource and issues commit or
-      rollback on it as appropriate. The XAResource creation will use
-      the same information, database name, username, password etc., as
-      the original application.</para>
-    <para>Resource-initiated recovery has to be specifically configured,
-      by supplying the Recovery Manager with the appropriate information
-      for it to interrogate all the databases (XADataSources) that have
-      been accessed by any JBossTS application. The access to each
-      XADataSource is handled by a class that implements the
-      com.arjuna.ats.jta.recovery.XAResourceRecovery interface, as
-      illustrated in Figure 4. Instances of classes that implements the
-      XAResourceRecovery interface are dynamically loaded, as controlled
-      by properties with names beginning
-      “com.arjuna.ats.jta.recovery.XAResourceRecovery”.</para>
-    <figure>
-      <title>Resource-initiated recovery and XA Recovery</title>
-      <mediaobject>
-        <imageobject>
-          <imagedata fileref="images/fig2-resourceinitiatedrecovery.gif"
-            format="GIF" />
-        </imageobject>
-      </mediaobject>
-    </figure>
-    <para>The XARecoveryModule will use the XAResourceRecovery
-      implementation to get a XAResource to the target datasource. On
-      each invocation of periodicWorkSecondPass, the recovery module
-      will issue an XAResource.recover request – this will (as described
-      in the XA specification) return a list of the transaction
-      identifiers (Xid’s) that are known to the datasource and are in an
-      indeterminate (in-doubt) state. The list of these in-doubt Xid’s
-      received on successive passes (i.e. periodicWorkSecondPass-es) is
-      compared. Any Xid that appears in both lists, and for which no JTA
-      ResourceRecord was found by the intervening transaction-initiated
-      recovery is assumed to belong to a transaction that was involved
-      in a crash before any JTA ResourceRecord was written, and a
-      rollback is issued for that transaction on the XAResource.</para>
-    <para>This double-scan mechanism is used because it is possible the
-      Xid was obtained from the datasource just as the original
-      application process was about to create the corresponding
-      JTA_ResourceRecord. The interval between the scans should allow
-      time for the record to be written unless the application crashes
-      (and if it does, rollback is the right answer).</para>
-    <para>An XAResourceRecovery implementation class can be written to
-      contain all the information needed to perform recovery to some
-      datasource. Alternatively, a single class can handle multiple
-      datasources. The constructor of the implementation class must have
-      an empty parameter list (because it is loaded dynamically), but
-      the interface includes an initialise method which passes in
-      further information as a string. The content of the string is
-      taken from the property value that provides the class name:
-      everything after the first semi-colon is passed as the value of
-      the string. The use made of this string is determined by the
-      XAResourceRecovery implementation class.</para>
-    <para>For further details on the way to implement a class that
-      implements the interface XAResourceRecovery, read the JDBC chapter
-      of the JTA Programming Guide. An implementation class is provided
-      that supports resource-initiated recovery for any XADataSource.
-      This class could be used as a template to build your own
-      implementation class. </para>
-    <section>
-      <title>Assumed complete</title>
-      <para>If a failure occurs in the transaction environment after the
-        transaction coordinator had told the XAResource to commit but
-        before the transaction log has been updated to remove the
-        participant, then recovery will attempt to replay the commit. In
-        the case of a Serialized XAResource, the response from the
-        XAResource will enable the participant to be removed from the
-        log, which will eventually be deleted when all participants have
-        been committed. However, if the XAResource is not recoverable
-        then it is extremely unlikely that any XAResourceRecovery
-        instance will be able to provide the recovery sub-system with a
-        fresh XAResource to use in order to attempt recovery; in which
-        case recovery will continually fail and the log entry will never
-        be removed.</para>
-      <para>There are two possible solutions to this problem:</para>
-      <itemizedlist>
-        <listitem>
-          <para>Rely on the relevant ExpiryScanner to eventually move
-            the log elsewhere. Manual intervention will then be needed
-            to ensure the log can be safely deleted. If a log entry is
-            moved, suitable warning messages will be output.
-        </para>
-        </listitem>
-        <listitem>
-          <para>Set the com.arjuna.ats.jta.xaAssumeRecoveryComplete to
-            true. This option is checked whenever a new XAResource
-            instance cannot be located from any registered
-            XAResourceRecovery instance. If false (the default),
-            recovery assumes that there is a transient problem with the
-            XAResourceRecovery instances (e.g., not all have been
-            registered with the sub-system) and will attempt recovery
-            periodically. If true then recovery assumes that a previous
-            commit attempt succeeded and this instance can be removed
-            from the log with no further recovery attempts. This option
-            is global, so needs to be used with care since if used
-            incorrectly XAResource instances may remain in an
-            uncommitted state.
-        </para>
-        </listitem>
-      </itemizedlist>
-    </section>
-  </section>
-  <section>
-    <title>Recovering XAConnections</title>
-    <para>When recovering from failures, JBossTS requires the ability to
-      reconnect to databases that were in use prior to the failures in
-      order to resolve any outstanding transactions. Most connection
-      information will be saved by the transaction service during its
-      normal execution, and can be used during recovery to recreate the
-      connection. However, it is possible that not all such information
-      will have been saved prior to a failure (for example, a failure
-      occurs before such information can be saved, but after the
-      database connection is used). In order to recreate those
-      connections it is necessary to provide implementations of the
-      following JBossTS interface
-      com.arjuna.ats.jta.recovery.XAResourceRecovery, one for each
-      database that may be used by an application.</para>
-    <note>
-      <para>if using the transactional JDBC driver provided with
-        JBossTS, then no additional work is necessary in order to ensure
-        that recovery occurs.</para>
-    </note>
-    <para>To inform the recovery system about each of the
-      XAResourceRecovery instances, it is necessary to specify their
-      class names through the
-      JTAEnvironmentBean.xaResourceRecoveryInstances property variable,
-      whose values is a list of space separated strings, each being a
-      classname followed by optional configuration information.</para>
-    <para>JTAEnvironmentBean.xaResourceRecoveryInstances=com.foo.barRecovery
-    </para>
-    <para>Additional information that will be passed to the instance
-      when it is created may be specified after a semicolon:</para>
-    <para>JTAEnvironmentBean.xaResourceRecoveryInstances=com.foo.barRecovery;myData=hello
-    </para>
-    <note>
-      <para>These properties need to go into the JTA section of the
-        property file.</para>
-    </note>
-    <para>Any errors will be reported during recovery.</para>
-    <example>
-      <title>XAResourceRecovery interface</title>
-      <programlisting role="JAVA" language="Java">
-          <xi:include href="extras/XAResourceRecoveryInterface.java"
-        xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" />
-        </programlisting>
-    </example>
-    <para>Each method should return the following information:</para>
-    <itemizedlist>
-      <listitem>
-        <para>initialise: once the instance has been created, any
-          additional information which occurred on the property value
-          (anything found after the first semi-colon) will be passed to
-          the object. The object can then use this information in an
-          implementation specific manner to initialise itself, for
-          example.
-        </para>
-      </listitem>
-      <listitem>
-        <para>hasMoreResources: each XAResourceRecovery implementation
-          may provide multiple XAResource instances. Before any call to
-          getXAResource is made, hasMoreResources is called to determine
-          whether there are any further connections to be obtained. If
-          this returns false, getXAResource will not be called again
-          during this recovery sweep and the instance will not be used
-          further until the next recovery scan. It is up to the
-          implementation to maintain the internal state backing this
-          method and to reset the iteration as required. Failure to do
-          so will mean that the second and subsequent recovery sweeps in
-          the lifetime of the JVM do not attempt recovery.
-        </para>
-      </listitem>
-      <listitem>
-        <para>
-          getXAResource: returns an instance of the XAResource
-          object. How this is created
-          (and how the parameters to its
-          constructors are obtained) is
-          up to the XAResourceRecovery
-          implementation. The parameters to
-          the constructors of this
-          class should be similar to those used
-          when creating the initial
-          driver or data source, and should
-          obviously be sufficient to
-          create new XAResources that can be
-          used to drive recovery.
-        </para>
-      </listitem>
-    </itemizedlist>
-    <note>
-      <para>If you want your XAResourceRecovery instance to be called
-        during each sweep of the recovery manager then you should ensure
-        that once hasMoreResources returns false to indicate the end of
-        work for the current scan it then returns true for the next
-        recovery scan.</para>
-    </note>
-  </section>
-  <section>
-    <title>Alternative to XAResourceRecovery</title>
-    <para>The iterator based approach used by XAResourceRecovery leads
-      to a requirement for implementations to manage state, which makes
-      them more complex than necessary.</para>
-    <para>As an alternative, starting with JBossTS 4.4, users may
-      provide an implementation of the public interface
-    </para>
-    <example>
-      <title>XAResourceRecoveryHelper</title>
-      <programlisting role="JAVA" language="Java">
-          <xi:include href="extras/XAResourceRecoveryHelper.java"
-        xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" />
-        </programlisting>
-    </example>
-    <para>During each recovery sweep the getXAResources method will be
-      called and recovery attempted on each element of the array. For
-      the majority of resource managers it will be necessary to have
-      only one XAResource in the array, as the recover() call on it can
-      return multiple Xids.</para>
-    <para>Unlike XAResourceRecovery instances, which are configured via
-      the xml properties file and instantiated by JBossTS, instances of
-      XAResourceRecoveryHelper and constructed by the application code
-      and registered with JBossTS by calling</para>
-    <para>
-      <programlisting language="Java" role="JAVA">XARecoveryModule.addXAResourceRecoveryHelper(...)</programlisting>
-    </para>
-    <para>The initialize method is not called by JBossTS in the current
-      implementation, but is provided to allow for the addition of
-      further configuration options in later releases.</para>
-    <para>XAResourceRecoveryHelper instances may be deregistered, after
-      which they will no longer be called by the recovery manager.
-      Deregistration may block for a time if a recovery scan is in
-      progress.</para>
-    <para>
-      <programlisting language="Java" role="JAVA">XARecoveryModule.removeXAResourceRecoveryHelper(...)</programlisting>
-    </para>
-    <para>The ability to dynamically add and remove instances of
-      XAResourceRecoveryHelper whilst the system is running makes this
-      approach an attractive option for environments in which e.g.
-      datasources may be deployed or undeployed, such as application
-      servers. Care should be taken with classloading behaviour in such
-      cases.</para>
-  </section>
-  <section>
-    <title>Shipped XAResourceRecovery implementations</title>
-    <para>Recovery of XA datasources can sometimes be implementation
-      dependant, requiring developers to provide their own
-      XAResourceRecovery instances. However, JBossTS ships with several
-      out-of-the-box implementations that may be useful.</para>
-    <note>
-      <para>These XAResourceRecovery instances are primarily intended
-        for when running JBossTS outside of a container such as JBossAS,
-        since they rely upon XADataSources as the primary handle to
-        drive recovery. If you are not running JBossTS stand-alone then
-        you should consult the relevant integration documentation to
-        ensure that the right recovery modules are being used.</para>
-    </note>
-    <itemizedlist>
-      <listitem>
-        <para>
-          <programlisting>com.arjuna.ats.internal.jdbc.recovery.BasicXARecovery</programlisting>
-          : this expects an XML property file to be specified upon
-          creation
-          and from which it will read the configuration
-          properties for the
-          datasource. For example:
-        </para>
-
-        <example>
-          <title>XML datasource</title>
-          <programlisting language="XML" role="XML">
-          <xi:include href="extras/xmlDatasource.xml"
-            xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" />
-        </programlisting>
-        </example>
-      </listitem>
-      <listitem>
-        <para>
-          <programlisting>com.arjuna.ats.internal.jdbc.recovery.JDBCXARecovery</programlisting>
-          : this recovery implementation should work on any datasource
-          that is exposed via JNDI. It expects an XML property file to
-          be specified upon creation and from which it will read the
-          database JNDI name, username and password. For example:
-        </para>
-        <example>
-          <title>JNDI datasource</title>
-          <programlisting language="XML" role="XML">
-          <xi:include href="extras/jndiDatasource.xml"
-            xmlns:xi="http://www.w3.org/2001/XInclude" parse="text" />
-        </programlisting>
-        </example>
-      </listitem>
-    </itemizedlist>
-    <para>Because these classes are XAResourceRecovery instances they
-      are passed any necessary initialization information via the
-      initialise operation. In the case of BasicXARecovery and
-      JDBCXARecovery this should be the location of a property file
-      and
-      is specified in the JBossTS configuration file. For example:
-    </para>
-    <para>
-      <programlisting>com.arjuna.ats.jta.recovery.XAResourceRecoveryJDBC=com.arjuna.ats.internal.jdbc.recovery.JDBCXAResourceRecovery;thePropertyFile</programlisting>
-    </para>
-  </section>
-  <section>
-    <title>TransactionStatusConnectionManager</title>
-    <para>The TransactionStatusConnectionManager object is used by the
-      recovery modules to retrieve the status of transactions and acts
-      like a proxy for TransactionStatusManager objects. It maintains a
-      table of TransactionStatusConnector obects each of which connects
-      to a TransactionStatusManager object in an Application Process.
-    </para>
-    <para>The transactions status is retrieved using the
-      getTransactionStatus methods which take a transaction Uid and if
-      available a transaction type as parameters. The process Uid field
-      in the transactions Uid parameter is used to lookup the target
-      TransactionStatusManagerItem host/port pair in the Object Store.
-      The host/port pair are used to make a TCP connection to the target
-      TransactionStatusManager object by a TransactionStatusConnector
-      object. The TransactionStatusConnector passes the transaction
-      Uid/transaction type to the TransactionStatusManager in order to
-      retrieve the transactions status.</para>
-  </section>
-  <section>
-    <title>Expired Scanner Thread</title>
-    <para>When the Recovery Manager initialises an expiry scanner thread
-      ExpiryEntryMonitor is created which is used to remove long dead
-      items from the ObjectStore. A number of scanner modules are
-      dynamically loaded which remove long dead items for a particular
-      type. </para>
-    <para>Scanner modules are loaded at initialisation and are specified
-      as properties beginning with</para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.expiryScanners"&gt; 
-  list of class names
-&lt;/entry&gt;</programlisting>
-    </para>
-    <para>All the scanner modules are called periodically to scan for
-      dead items by the ExpiryEntryMonitor thread. This period is set
-      with the property:</para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.expiryScanInterval"&gt; 
-  number_of_hours
-&lt;/entry&gt;</programlisting>
-    </para>
-    <para>All scanners inherit the same behaviour from the java
-      interface ExpiryScanner. A scan method is provided by this
-      interface and implemented by all scanner modules, this is the
-      method that gets called by the scanner thread.</para>
-    <para>The ExpiredTransactionStatusManagerScanner removes long dead
-      TransactionStatusManagerItems from the Object Store. These items
-      will remain in the Object Store for a period of time before they
-      are deleted. This time is set by the property:</para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.transactionStatusManagerExpiryTime"&gt; 
-  number_of_hours
-&lt;/entry&gt; (default 12 hours)</programlisting>
-    </para>
-    <para>The AtomicActionExpiryScanner moves transaction logs for
-      AtomicActions that are assumed to have completed. For instance, if
-      a failure occurs after a participant has been told to commit but
-      before the transaction system can update the log, then upon
-      recovery JBossTS recovery will attempt to replay the commit
-      request, which will obviously fail, thus preventing the log from
-      being removed. This is also used when logs cannot be recovered
-      automatically for other reasons, such as being corrupt or zero
-      length. All logs are moved to a location based on the old location
-      appended with /Expired.</para>
-    <note>
-      <para>AtomicActionExpiryScanner is disabled by default. To enable
-        it simply add it to the JBossTS properties file. You do not need
-        to enable it in order to cope with (move) corrupt logs.</para>
-    </note>
-  </section>
-  <section>
-    <title>Application Process</title>
-    <para>This represents the user transactional program. A Local
-      transaction (hash) table, maintained within the running
-      application process keeps trace of the current status of all
-      transactions created by that application process, The Recovery
-      Manager needs access to the transaction tables so that it can
-      determine whether a transaction is still in progress, if so then
-      recovery does not happen.</para>
-    <para>The transaction tables are accessed via the
-      TransactionStatusManager object. On application program
-      initialisation the host/port pair that represents the
-      TransactionStatusManager is written to the Object Store in
-      ‘../Recovery/TransactionStatusManager’ part of the Object Store
-      file hierarchy and identified by the process Uid of the
-      application process.</para>
-    <para>The Recovery Manager uses the
-      TransactionStatusConnectionManager object to retrieve the status
-      of a transaction and a TransactionStatusConnector object is used
-      to make a TCP connection to the TransactionStatusManager.</para>
-  </section>
-  <section>
-    <title>TransactionStatusManager</title>
-    <para>This object acts as an interface for the Recovery Manager to
-      obtain the status of transactions from running JBossTS application
-      processes. One TransactionStatusManager is created per application
-      process by the class com.arjuna.ats.arjuna.coordinator.TxControl.
-      Currently a tcp connection is used for communication between the
-      RecoveryManager and TransactionStatusManager. Any free port is
-      used by the TransactionStatusManager by default, however the port
-      can be fixed with the property:</para>
-    <para>
-      <programlisting>&lt;entry key="RecoveryEnvironmentBean.transactionStatusManagerPort"&gt; 
-  port
-&lt;/entry&gt;</programlisting>
-    </para>
-    <para>On creation the TransactionStatusManager obtains a port which
-      it stores with the host in the Object Store as a
-      TransactionStatusManagerItem. A Listener thread is started which
-      waits for a connection request from a TransactionStatusConnector.
-      When a connection is established a Connection thread is created
-      which runs a Service (AtomicActionStatusService) which accepts a
-      transaction Uid and a transaction type (if available) from a
-      TransactionStatusConnector, the transaction status is obtained
-      from the local thransaction table and returned back to the
-      TransactionStatusConnector</para>
-  </section>
-  <section>
-    <title>Object Store</title>
-    <para>All objects are identified by a unique identifier Uid. One of
-      the values of which is a process id in which the object was
-      created. The Recovery Manager uses the process id to locate
-      transaction status manager items when contacting the originator
-      application process for the transaction status. Therefore, exactly
-      one recovery manager per ObjectStore must run on each nodes and
-      ObjectStores must not be shared by multiple nodes.</para>
-  </section>
-  <section>
-    <title>Socket free operation</title>
-    <para>The use of TCP/IP sockets for TransactionStatusManager and
-      RecoveryManager provides for maximum flexibility in the deployment
-      architecture. It is often desirable to run the RecoveryManager in
-      a separate JVM from the Transaction manager(s) for increased
-      reliability. In such deployments, TCP/IP provides for
-      communication between the RecoveryManager and transaction
-      manager(s), as detailed in the preceding sections. Specifically,
-      each JVM hosting a TransactionManager will run a
-      TransactionStatusManager listener, through which the
-      RecoveryManager can contact it to determine if a transaction is
-      still live or not. The RecoveryManager likewise listens on a
-      socket, through which it can be contacted to perform recovery
-      scans on demand. The presence of a recovery listener is also used
-      as a safety check when starting a RecoveryManager, since at most
-      one should be running for a given ObjectStore.</para>
-    <para>There are some deployment scenarios in which there is only a
-      single TransactionManager accessing the ObjectStore and the
-      RecoveryManager is co-located in the same JVM. For such cases the
-      use of TCP/IP sockets for communication introduces unnecessary
-      runtime overhead. Additionally, if several such distinct processes
-      are needed for e.g. replication or clustering, management of the
-      TCP/IP port allocation can become unwieldy. Therefore it may be
-      desirable to configure for socketless recovery operation.</para>
-    <para>The property
-      CoordinatorEnvironmentBean.transactionStatusManagerEnable can be
-      set to a value of NO to disable the TransactionStatusManager for
-      any given TransactionManager. Note that this must not be done if
-      recovery runs in a separate process, as it may lead to incorrect
-      recovery behavior in such cases. For an in-process recovery
-      manager, the system will use direct access to the
-      ActionStatusService instead.</para>
-    <para>The property RecoveryEnvironmentBean.recoveryListener can
-      likewise be used to disable the TCP/IP socket listener used by the
-      recovery manager. Care must be taken not to inadvertently start
-      multiple recovery managers for the same ObjectStore, as this
-      error, which may lead to significant crash recovery problems,
-      cannot be automatically detected and prevented without the benefit
-      of the socket listener.</para>
-  </section>
-</chapter>
\ No newline at end of file

Modified: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Author_Group.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Author_Group.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Author_Group.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE authorgroup PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
 ]>
 <authorgroup>
   <author>
-    <firstname>Mark</firstname>
-    <surname>Little</surname>
+    <firstname>Jonathan</firstname>
+    <surname>Halliday</surname>
     <affiliation>
       <orgname>Red Hat</orgname>
     </affiliation>
-    <email>mlittle at redhat.com</email>
+    <email>jhalliday at redhat.com</email>
   </author>
 </authorgroup>

Modified: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Book_Info.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Book_Info.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Book_Info.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,20 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE bookinfo PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
 %BOOK_ENTITIES;
 ]>
-<bookinfo id="book-Failure_Recovery_Guide">
-    <title>Failure Recovery Guide</title>
+<bookinfo id="book-Transaction_Bridging_Guide">
+    <title>Transaction Bridging Guide</title>
     <productname>JBoss Transactions</productname>
     <productnumber>4.15.0</productnumber>
     <edition>0</edition>
     <pubsnumber>0</pubsnumber>
-    <abstract>
-        <para>
-        The Failure Recovery Guide contains information on how to use JBoss Transaction Service to develop
-        applications that use transaction technology to manage business processes.
-      </para>
-    </abstract>
     <corpauthor>
         <inlinemediaobject>
             <imageobject>

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Configuration_options.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Configuration_options.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Configuration_options.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
-]>
-<chapter>
-    <title>Configuration Options</title>
-    <section>
-        <title>Recovery Protocol in OTS - Overview</title>
-        <para>JBossTS is highly configurable. For full details of the configuration mechanism used, see the Programmer's Guide.</para>
-        <para>The following table shows the configuration features, with default values shown in italics. More details about each option can be found in the relevant sections of this document.</para>
-        <note>
-            <para>You need to prefix each property in this table with the string com.arjuna.ats.arjuna.recovery. The
-prefix has been removed for formatting reasons, and has been replaced by ...</para>
-        </note>
-        <informaltable>
-            <tgroup cols="3">
-                <thead>
-                    <row>
-                        <entry>Configuration Name</entry>
-                        <entry>Possible Values</entry>
-                        <entry>Description</entry>
-                    </row>
-                </thead>
-                <tbody>
-                    <row>
-                        <entry>
-                            <para>...periodicRecoveryPeriod</para>
-                        </entry>
-                        <entry>
-                            <para>120/any positive integer</para>
-                        </entry>
-                        <entry>
-                            <para>
-              Interval between recovery attempts, in seconds.
-            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>
-                            <para>...recoveryBackoffPeriod</para>
-                        </entry>
-                        <entry>
-                            <para>10/any positive integer</para>
-                        </entry>
-                        <entry>
-                            <para>
-              Interval between first and second recovery passes, in seconds. 
-            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>
-                            <para>...expiryScanInterval</para>
-                        </entry>
-                        <entry>
-                            <para>12/any integer</para>
-                        </entry>
-                        <entry>
-                            <para>
-              Interval between expiry scans, in hours. 0 disables scanning. Negative values postpone the first run.
-            </para>
-                        </entry>
-                    </row>
-                    <row>
-                        <entry>
-                            <para>...transactionStatusManagerExpiryTime</para>
-                        </entry>
-                        <entry>
-                            <para>12/any positive integer</para>
-                        </entry>
-                        <entry>
-                            <para>
-               Interval after which a non-contactable process is considered dead. 0 = never.
-            </para>
-                        </entry>
-                    </row>
-                </tbody>
-            </tgroup>
-        </informaltable>
-    </section>
-</chapter>

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Design_Notes.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/Design_Notes.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Design_Notes.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+]>
+<chapter>
+  <title>Design Notes</title>
+  <section>
+    <title>General Points</title>
+    <para>This section records key design points relating to the bridge implementation. The target
+      audience for this section is software engineers maintaining or extending the transaction
+      bridge implementation. It is unlikely to contain material useful to users, except in so far as
+      they wish to contribute to the project. An in-depth knowledge of JBossTS internals may be
+      required to make sense of some parts of this appendix.</para>
+    <para>The txbridge is written as far as possible as a user application layered on top of the JTA
+      and XTS implementations. It accesses these underlying components through standard or supported
+      APIs as far as possible. For example, XAResource is favored over AbstractRecord, the JCA
+      standard XATerminator is used for driving subordinates and so on. This facilitates modularity
+      and portability.</para>
+    <para>It follows that functionality required by the bridge should first be evaluated for
+      inclusion in one of the underlying modules, as experience has shown it is often also useful
+      for other user applications. For example, improvements to allows subordinate termination code
+      portability between JTA and JTS, and support for subordinate crash recovery have benefited
+      from this approach. The txbridge remains a thin layer on top of this functionality, containing
+      only purpose specific code.</para>
+    <para>The 'loops and diamonds' problem boils down to providing deterministic, bi-directional 1:1
+      mapping between an Xid (which is fixed length) and a WS-AT context (which is unbounded length
+      in the spec, although bounded for instances created by the XTS). Consistent hashing techniques
+      get you so far with independent operation, but the only 100% solution is to have a shared
+      service on the network providing the mapping lookup. Naturally this then becomes a single
+      point of failure as well as a scalability issue. For some scenarios it may be possible to use
+      interceptors to propagate the Xid on the web services call as extra data, instead of trying to
+      reproduce the mapping at the other end. Unfortunately XA does not provide for this kind of
+      extensibility, although CORBA does, leading to the possibility of solving the issue without a
+      centralized approach in mixed JTS+WS-AT environments.</para>
+    <para>Requiring a tx context on all calls is a bit limiting, but JBossWS native lacks a
+      WS-Policy implementation. Things may change with the move to CXF. This is really a wider issue
+      with XTS, not just the bridge.</para>
+  </section>
+  <section>
+    <title>Crash Recovery Considerations</title>
+    <para>As usual with transactions, it's the crash recovery that provides for the most complexity.
+      Recovery for the inbound and outbound sides is handled independently. Because of event
+      ordering between recovery modules (JTA, XTS), it requires two complete cycles to resolve some
+      of these crash recovery situations.</para>
+    <section>
+      <title>Inbound Crash Recovery</title>
+      <para>An inbound transaction involves at least
+        four log writes. Top down (i.e. in reverse order
+        of log creation) these are: The WS-AT coordinator
+        log
+        (assumed here to be XTS, but may be 3rd
+        party), the XTS Participant log in the receiving server, the
+        JCA Subordinate transaction log
+        and at least one XA Resource Manager log (which are 3rd party e.g.
+        Oracle). 
+      </para>
+      <para>There is no separate log created by the txbridge. The XTS Participant log inlines the
+        Serializable
+        BridgeDurableParticipant via its writeObject method. Recorded state includes its
+        identity (the Xid) and
+        the identity of the separately logged JTA subordinate tx (a Uid).
+      </para>
+      <para>XTS is responsible for
+        the top level coordinator log. JBossTS is responsible for the JTA
+        subordinate tx log and 3rd party
+        RMs
+        are each responsible for their own.</para>
+      <para>The following situations may exist at recovery time,
+        according to the point in time at
+        which the crash occurred:</para>
+      <para>RM log only: In this case, the
+        InboundBridgeRecoveryManager's XAResourceOrphanFilter
+        implementation will be invoked via JBossTS XARecoveryModule,
+        will recognize the orphaned Xids
+        by their formatId (which they inherit from the JCA subordinate,
+        which
+        the txbridge previously
+        created with a specially constructed inflowed Xid) and will vote to have
+        the
+        XARecoveryModule
+        roll them back as no corresponding JCA subordinate log exists, so presumed abort applies.
+      </para>
+      <para>RM log and JTA subordinate tx log: The InboundBridgeRecoverytManager's scan of indoubt
+        subordinate JTA transactions identifies the JTA subordinate as being orphaned and rolls it
+        back, which
+        in turn causes the rollback of the RM's XAResource.</para>
+      <para>RM log, JTA subordinate log and XTS
+        Participant log: XTS is responsible for detecting
+        that the Participant is orphaned (by re-sending Prepared
+        to the Coordinator and receiving
+        'unknown tx' back) and initiating rollback under the
+        presumed abort
+        convention.</para>
+      <para>WS-AT coordinator log and all downstream logs: The coordinator re-sends Commit
+        to the
+        Participant and the transaction completes.</para>
+    </section>
+    <section>
+      <title>Outbound Crash Recovery</title>
+      <para>An outbound transaction involves log writes for the JTA parent transaction and the XTS
+        BridgeWrapper coordinator. There is not a separate log created by the txbridge. The JTA tx
+        log inlines the Serializable BridgeXAResource via its writeObject method. Recorded state
+        includes the JTA tx id and bridgeWrapper id String. In addition a Web Service participating
+        in the subordinate transaction will create a log. Assuming it's XTS, the participant side
+        log will inline any Serializable Durable2PCParticipant, effectively forming the RM log.
+      </para>
+      <para>The following situations may exist at recovery time, according to the point in time at
+        which the crash occurred:</para>
+      <para>RM log (i.e. XTS Participant log, inlining Serializable Durable2PCParticipant) only: XTS
+        is responsible for detecting that the Participant is orphaned (its direct parent, the
+        subordinate coordinator, is missing) and rolling it back. The bridge recovery code is not
+        involved – XTS recovery deserializes and drives any app DurableParticipants directly.</para>
+      <para>RM log and XTS subordinate log: The DurableParticipant(s) (i.e. client side) and XTS
+        subordinate coordinator / BridgeWrapper (i.e. server side) and reinstantiated by XTS. The
+        BridgeWrapper, being subordinate to a missing parent, must be identified and explicitly
+        rolledback by the bridge recovery code. The bridge recovery manager is itself a
+        RecoveryModule, thus invoked periodically to perform this task. It identified its own
+        BridgeWrapper instance from amongst all those awaiting recovery by means of an id prefix
+        specific to the txbridge code. See JBTM-725 for further details.</para>
+      <para>RM log, XTS subordinate log and JTA parent log (with inlined BridgeXAResource): Top down
+        recovery by the JTA recovery module drives tx to completion, taking the normal JTA
+        parent->BridgeXAResource->XTS subordinate->DurableParticipant path. Note that if the bridge
+        is the only XAResource in the parent, the JTA must have 1PC commit optimization disabled or
+        it won't write a log for recovery.</para>
+    </section>
+  </section>
+  <section>
+    <title>Test framework</title>
+    <para>The test suite for the txbridge is split along two axis. Firstly, the inbound and outbound
+      sides of the bridge have their own test suites in a parallel code package hierarchy. These are
+      largely mirrors, containing tests which have matching intent but different implementation
+      details. Secondly, the tests are split between those for normal execution and those for crash
+      recovery.</para>
+    <para>The tests use a framework consisting of a basic servlet acting as client (the code
+      pre-dates the availability of XTS lightweight client), a basic web service as server and a set
+      of utility classes implementing the appropriate interfaces
+      (Participant/Synchronization/XAResource). These classes contain the bare minimum of test
+      logic. In order to make the tests as easy to understand and modify as possible, an attempt is
+      made to capture the entirety of the test logic within the junit test function instead of
+      splitting it over the framework classes. To facilitate this, extensive use is made of byteman
+      and its associated dtest library, which provides basic distributed mock-like execution tracing
+      and configuration. You probably need to take a detour and read the dtest docs before
+      proceeding further.</para>
+    <para>The basic tests all follow the same pattern: make a call through the bridge, following
+      different logic paths in each test, and verify that the test resources see the expected method
+      calls. For example, in a test that runs a transaction successfully, expect to see commit
+      called on enlisted resources and rollback not called. For a test that configures the prepare
+      to fail, expect to see rollback called and commit not called. The tests verify behavior in the
+      presence of 'expected' errors e.g. prepare failures, but generally don't cover unexpected
+      failures e.g. exceptions thrown from commit.</para>
+    <para>Test normal execution targets in the tests/build.xml assume the server is started manually
+      with byteman installed and has XTS, txbridge and the test artifacts deployed. Note that it
+      also contains targets that may be called to achieve the last of these steps.</para>
+    <para>The crash rec tests start (and subsequently restart) the server automatically, but assume
+      the that XTS, txbridge and the test artifacts are deployed. To manage the server they need to
+      be provided with JBOSS_HOME and JAVA_HOME values in the build.xml.</para>
+  </section>
+</chapter>
\ No newline at end of file

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Failure_Recovery_Guide.ent
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Failure_Recovery_Guide.ent	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Failure_Recovery_Guide.ent	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,7 +0,0 @@
-<!ENTITY PRODUCT "JBoss Transactions">
-<!ENTITY BOOKID "Failure_Recovery_Guide">
-<!ENTITY VERSION "4.15">
-<!ENTITY YEAR "2011">
-<!ENTITY HOLDER "JBoss.org">
-<!ENTITY APPSERVER "JBoss Application Server">
-<!-- <!ENTITY APPSERVER "Enterprise Application Platform Server"> -->

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Failure_Recovery_Guide.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Failure_Recovery_Guide.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Failure_Recovery_Guide.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
-<!ENTITY PRODUCT "JBoss Transactions">
-<!ENTITY BOOKID "Failure_Recovery_Guide">
-<!ENTITY VERSION "4.15">
-<!ENTITY YEAR "2011">
-<!ENTITY HOLDER "JBoss.org">
-<!ENTITY APPSERVER "JBoss Application Server">
-<!-- <!ENTITY APPSERVER "Enterprise Application Platform Server"> -->]>
-<book>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Book_Info.xml"/>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Preface.xml"/>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Architecture_of_the_recovery_manager.xml"/>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="How_JBossTS_manages_the_OTS_recovery_protocol.xml"/>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Configuration_options.xml"/>
-    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
-    <index/>
-</book>

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/How_JBossTS_manages_the_OTS_recovery_protocol.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/How_JBossTS_manages_the_OTS_recovery_protocol.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/How_JBossTS_manages_the_OTS_recovery_protocol.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,273 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
-]>
-<chapter>
-  <title>How JBossTS manages the OTS Recovery Protocol</title>
-  <section>
-    <title>Recovery Protocol in OTS - Overview</title>
-    <para>To manage recovery in case of failure, the OTS specification has defined a recovery protocol. Transaction’s participants in a doubt status
-      could use the RecoveryCoordinator to determine the status of the transaction. According to that transaction status, those participants can take
-      appropriate decision either by roll backing or committing.</para>
-    <figure>
-      <title>Resource and RecoveryCoordinator relationship</title>
-      <mediaobject>
-        <imageobject>
-          <imagedata fileref="images/fig3-resource-recoverycoordinator.gif" format="GIF" />
-        </imageobject>
-      </mediaobject>
-    </figure>
-    <para>A reference to a RecoveryCoordinator is returned as a result of successfully calling register_resource on the transaction Coordinator. This
-      object, which is implicitly associated with a single Resource, can be used to drive the Resource through recovery procedures in the event of a
-      failure occurring during the transaction.</para>
-  </section>
-  <section>
-    <title>RecoveryCoordinator in JBossTS</title>
-    <para>On each resource registration a RecoveryCoordinator Object is expected to be created and returned to the application that invoked the
-      register_resource operation. Behind each CORBA object there should be an object implementation or Servant object, in POA terms, which performs
-      operations made on a RecoveryCoordinator object. Rather than to create a RecoveryCoordinator object with its associated servant on each
-      register_resource, JBossTS enhances performance by avoiding the creation of servants but it relies on a default RecoveryCoordinator object with
-      it’s associated default servant to manage all replay_completion invocations.</para>
-    <para>In the next sections we first give an overview of the Portable Object Adapter architecture, then we describe how this architecture is used
-      to provide RecoveryCoordinator creation with optimization as explained above.</para>
-    <section>
-      <title>Understanding POA</title>
-      <para>Basically, the Portable Object Adapter, or POA is an object that intercepts a client request and identifies the object that satisfies the
-        client request. The Object is then invoked and the response is returned to the client.</para>
-      <figure>
-        <title>Overview of the POA</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="images/fig4-overview-of-poa.gif" format="GIF" />
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para>The object that performs the client request is referred as a servant, which provides the implementation of the CORBA object requested by
-        the client. A servant provides the implementation for one or more CORBA object references. To retreive a servant, each POA maintains an Active
-        Object Map that maps all objects that have been activated in the POA to a servant. For each incoming request, the POA looks up the object
-        reference in the Active Object Map and tries to find the responsible servant. If none is found, the request is either delegated to a default
-        servant, or a servant manager is invoked to activate or locate an appropriate servant. In addition to the name space for the objects, which
-        are identified by Object Ids, a POA also provides a name space for POAs. A POA is created as a child of an existing POA, which forms a
-        hierarchy starting with the root POA.</para>
-      <para>Each POA has a set of policies that define its characteristics. When creating a new POA, the default set of policies can be used or
-        different values can be assigned that suit the application requirements. The POA specification defines:</para>
-      <itemizedlist>
-        <listitem>
-          <para>Thread policy – Specifies the threading model to be used by the POA. Possible values are:</para>
-          <itemizedlist>
-            <listitem>
-              <para>ORB_CTRL_MODEL – (default) The POA is responsible for assigning requests to threads.</para>
-            </listitem>
-            <listitem>
-              <para>SINGLE_THREAD_MODEL – the POA processes requests sequentially</para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-        <listitem>
-          <para>Lifespan policy - specifies the lifespan of the objects implemented in the POA. The lifespan policy can have the following values:</para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                TRANSIENT (Default) Objects implemented in the POA cannot outlive the process in which they are first created. Once the POA is
-                deactivated, an
-                OBJECT_NOT_EXIST exception occurs when attempting to use any object references generated by the POA. 
-                </para>
-            </listitem>
-            <listitem>
-              <para>
-                PERSISTENT Objects implemented in the POA can outlive the process in which they are first created.
-                </para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-        <listitem>
-          <para>
-            Object ID Uniqueness policy - allows a single servant to be shared by many abstract objects. The Object ID Uniqueness policy can have
-            the following
-            values:</para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                UNIQUE_ID (Default) Activated servants support only one Object ID. 
-                </para>
-            </listitem>
-            <listitem>
-              <para>
-                MULTIPLE_ID Activated servants can have one or more Object IDs. The Object ID must be determined within the method being invoked
-                at run time.
-                </para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-        <listitem>
-          <para>
-            ID Assignment policy - specifies whether object IDs are generated by server applications or by the POA. The ID Assignment policy can
-            have the
-            following values:</para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                USER_ID is for persistent objects, and 
-                </para>
-            </listitem>
-            <listitem>
-              <para>
-                SYSTEM_ID is for transient objects
-                </para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-        <listitem>
-          <para>
-            Servant Retention policy - specifies whether the POA retains active servants in the Active Object Map. The Servant Retention policy
-            can have the
-            following values: 
-                </para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                RETAIN (Default) The POA tracks object activations in the Active Object Map. RETAIN is usually used with ServantActivators or
-                explicit activation
-                methods on POA.
-                </para>
-            </listitem>
-            <listitem>
-              <para>
-                NON_RETAIN The POA does not retain active servants in the Active Object Map. NON_RETAIN is typically used with ServantLocators.
-                </para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-        <listitem>
-          <para>
-            Request Processing policy - specifies how requests are processed by the POA.
-                </para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                USE_ACTIVE_OBJECT_MAP (Default) If the Object ID is not listed in the Active Object Map, an OBJECT_NOT _EXIST exception is
-                returned. The POA must also use the
-                RETAIN policy with this value.
-                </para>
-            </listitem>
-            <listitem>
-              <para>
-                USE_DEFAULT_SERVANT If the Object ID is not listed in the Active Object Map or the NON_RETAIN policy is set, the request is
-                dispatched to the default servant. If
-                no default servant has been registered, an OBJ_ADAPTER exception is returned. The POA must also
-                use the MULTIPLE_ID policy with this
-                value.
-                </para>
-            </listitem>
-            <listitem>
-              <para>
-                USE_SERVANT_MANAGER If the Object ID is not listed in the Active Object Map or the NON_RETAIN policy is set, the servant manager
-                is used to obtain a servant.
-                </para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-        <listitem>
-          <para>
-            Implicit Activation policy - specifies whether the POA supports implicit activation of servants. The Implicit Activation policy can
-            have the following
-            values:
-                </para>
-          <itemizedlist>
-            <listitem>
-              <para>
-                IMPLICIT_ACTIVATION The POA supports implicit activation of servants. Servants can be activated by converting them to an object
-                reference with
-                org.omg.PortableServer.POA.servant_to_reference() or by invoking _this()on the servant. The POA must also use the
-                SYSTEM_ID and RETAIN
-                policies with this value.
-                </para>
-            </listitem>
-            <listitem>
-              <para>
-                NO_IMPLICIT_ACTIVATION (Default) The POA does not support implicit activation of servants.
-                </para>
-            </listitem>
-          </itemizedlist>
-        </listitem>
-      </itemizedlist>
-      <para>
-        It appears that to redirect replay_completion invocations to a default servant we need to create a POA with the Request Processing policy
-        assigned
-        with the value set to USE_DEFAULT_SERVANT. However to reach that default Servant we should first reach the POA that forward the
-        request to the
-        default servant. Indeed, the ORB uses a set of information to retrieve a POA; these information are contained in the object
-        reference used by
-        the client. Among these information there are the IP address and the port number where resides the server and also the POA
-        name. To perform
-        replay_completion invocations, the solution adopted by JBossTS is to provide one Servant, per machine, and located in the
-        RecoveryManager
-        process, a separate process from client or server applications. The next section explains how the indirection to a default
-        Servant located on
-        a separate process is provided for JacORB. 
-  </para>
-    </section>
-  </section>
-  <section>
-    <title>The default RecoveryCoordinator in JacOrb</title>
-    <para>
-      JacORB does not define additional policies to redirect any request on a RecoveryCoordinator object to a default servant located in the
-      Recovery Manager process. However it provides a set of APIs that allows building object references with specific IP address, port number and POA
-      name in order to reach the appropriate default servant. 
-    </para>
-    <section>
-      <title>How Does it work</title>
-      <para>
-        When the Recovery Manager is launched it seeks in the configuration the RecoveryActivator that need be loaded. Once done it invokes the
-        startRCservice
-        method of each loaded instances. As seen in in the previous chapter (Recovery Manager ) the class to load that implements the
-        RecoveryActivator interface is the class RecoveryEnablement. This generic class, located in the package
-        com.arjuna.ats.internal.jts.orbspecific.recovery, hides the nature of the ORB being used by the application (JacORB). The following figure
-        illustrates the behavior of the RecoveryActivator that leads to the creation of the default servant that performs replay_completion
-        invocations requests. 
-    </para>
-      <para>
-        In addition to the creation of the default servant, an object reference to a RecoveryCoordinator object is created and stored in the
-        ObjectStore. As
-        we will see this object reference will be used to obtain its IP address, port number and POA name and assign them to any
-        RecoveryCoordinator
-        object reference created on register_resource.
-    </para>
-      <figure>
-        <title>Recovery Manager</title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="images/fig5-recoverymanager.gif" format="GIF" />
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para>
-        When an application registers a resource with a transaction, a RecoveryCoordinator object reference is expected to be returned. To build
-        that object
-        reference, the Transaction Service uses the RecoveryCoordinator object reference created within the Recovery Manager as a template.
-        The new
-        object reference contains practically the same information to retrieve the default servant (IP address, port number, POA name, etc.),
-        but the
-        Object ID is changed; now, it contains the Transaction ID of the transaction in progress and also the Process ID of the process that is
-        creating the new RecoveryCoordinator object reference, as illustrated in Figure 11.
-</para>
-      <figure>
-        <title>Resource registration and returned RecoveryCoordinator Object reference build from a reference stored in the ObjectStore. </title>
-        <mediaobject>
-          <imageobject>
-            <imagedata fileref="images/fig6-resourceregistration.gif" format="GIF" />
-          </imageobject>
-        </mediaobject>
-      </figure>
-      <para>
-        Since a RecoveryCoordintaor object reference returned to an application contains all information to retrieve the POA then the default
-        servant located
-        in the Recovery Manager, all replay_completion invocation, per machine, are forwarded to the same default RecoveryCoordinator
-        that is able to
-        retreive the Object ID from the incoming request to extract the transaction identifier and the process identifier needed to
-        determine the
-        status of the requested transaction.
-</para>
-    </section>
-  </section>
-</chapter>

Copied: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Introduction.xml (from rev 36927, labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Architecture_of_the_recovery_manager.xml)
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/Introduction.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Introduction.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+]>
+<chapter>
+  <title>Introduction</title>
+  <section>
+    <title>Contextual Overview</title>
+    <para>Transactions provide a structuring mechanism for business logic. Use of transactions
+      allows for grouping of data manipulations into constructs with certain properties. Traditional
+      ACID transactions provide for properties of Atomicity, Consistency, Isolation and Durability.
+    </para>
+    <para>In JavaEE applications, transaction support is provided via the Java Transaction API
+      (JTA). The classes and interfaces in the javax.transaction and javax.transaction.xa packages
+      provide a means by which the programmer may manage transaction demarcation (begin, commit,
+      rollback) and, where necessary, interact with the transaction management system (e.g.
+      enlistResource). In many JavaEE applications, further abstractions are provided on top of the
+      JTA. For example, EJB3 @TransactionAttribute annotations may be used for transaction boundary
+      demarcation in preference to explicit calls to the JTA's UserTransaction interface.</para>
+    <para>In distributed applications, the JTA implementation may provide propagation of transaction
+      context and transaction control calls between containers (JVMs) using either a propriety
+      transport or JTS, the Java mapping of the CORBA OTS standard on an RMI/IIOP transport. In
+      JBossTS, both local and distributed (JTS) implementations of the JTA are available.</para>
+    <para>In Web Services applications, ACID transaction management and interoperable context
+      propagation is provided for by the WS-AT standard. JBossTS XTS provides an implementation of
+      both the 1.0 and 1.2 versions of this standard. Bridging is provided only on the more recent
+      version. At the time of writing the standard covers only the web services API and protocol,
+      not the Java API through which the protocol may be driven. Therefore, XTS provides a custom
+      Java API to users, with characteristics broadly similar to the JTA.</para>
+    <para>For applications that combine traditional JavaEE transaction management and Web Service
+      transaction management, it is often desirable to have some mechanism for linking these
+      transaction types, such that a single transaction may span business logic written for either
+      transaction type. Examples include exposing existing JavaEE transactional business logic (e.g.
+      EJBs) as transactional Web Services, or allowing JavaEE transactional components to utilize
+      transactional Web Services.</para>
+  </section>
+  <section>
+    <title>Transaction Bridging</title>
+    <para>We use the term Transaction Bridging to describe the process of linking the JavaEE and Web
+      Services transaction domains. The transaction bridge component (txbridge) of JBossTS provides
+      bi-directional linkage, such that either type of transaction may encompass business logic
+      designed for use with the other type.</para>
+    <para>The technique used by the bridge is a combination of interposition and protocol mapping.
+    </para>
+    <para>Interposition is used in transaction systems to allow a tree of transaction coordinators
+      to be constructed, usually for performance reasons. Interposed coordinators function as
+      transaction managers for nodes below them in the tree, whilst appearing as resources
+      (participants in WS-AT terminology) to the node above them.</para>
+    <para>Within a single transaction domain, interposition may be used to allow remote nodes to
+      minimize the number of network calls necessary at transaction termination. The top level node
+      is known as the root coordinator, whilst interposed coordinators are termed subordinate. This
+      name indicates that they are not autonomously responsible for determining the transaction
+      outcome, but rather are driven by their parent coordinator. Therefore, whilst a top level
+      coordinator exposes only the commit and rollback methods for transaction termination and
+      handles the 2PC internally, the subordinates additionally expose the prepare method to their
+      parent, behaving much like resources during the termination protocol.</para>
+    <figure>
+      <title>Transaction interposition in a distributed JTA environment</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="images/interposition.gif" format="GIF" />
+        </imageobject>
+      </mediaobject>
+    </figure>
+    <para>In the transaction bridge, an interposed coordinator is registered into the existing
+      transaction and performs the additional task of protocol mapping. That is, it appears to its
+      parent coordinator to be a resource of its native transaction type, whilst appearing to its
+      children to be a coordinator of their native transaction type, even though these transaction
+      types differ.</para>
+    <figure>
+      <title>Transactional bridging interposition</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="images/bridgeinterposition.png" format="PNG" />
+        </imageobject>
+      </mediaobject>
+    </figure>
+    <para>The interposed coordinator is responsible for performing mapping between the transaction
+      protocols. There is a strong correspondence between the API and protocol used by the JTA and
+      WS-AT transaction types, which is unsurprising given their common heritage and shared problem
+      domain. However, method signatures, exception types and such do differ. The bridge provides a
+      abstraction layer to mask these distinctions as far as possible.</para>
+    <para>The net result of this is that existing business logic perceives its expected transaction
+      environment, even though the transaction in which it is executing may be subordinate to one of
+      a different type. No changes are necessary to existing transactional applications to allow
+      them to operate in the scope of foreign transactions. This facilitates reuse of existing
+      business logic components in new environments and increases the possibilities for new
+      architectures and interoperability.</para>
+    <para>The Recovery Manager functions by:</para>
+  </section>
+</chapter>
\ No newline at end of file

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Known_Limitations.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/Known_Limitations.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Known_Limitations.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+]>
+<chapter>
+  <title>Known Limitations</title>
+  <para>The current transaction bridge release has the following limitations:</para>
+  <itemizedlist>
+    <listitem>
+      <para>The bridge operates only on WS-AT 1.2, not 1.0, although XTS includes implementations of
+        both versions of WS-AT. Care must therefore be taken to deploy and configure the system
+        correctly.</para>
+    </listitem>
+    <listitem>
+      <para>The bridge provides JAX-WS handlers only, not JAX-RPC, although it is possible to create
+        such if required.</para>
+    </listitem>
+    <listitem>
+      <para>Long running activities that occur during the transaction termination process may cause
+        timeouts in the transaction system, which can in turn cause inconsistent transaction
+        outcomes or incomplete transaction termination. To minimize this problem, it is advised to
+        manually flush data that would otherwise be flushed by Synchronizations during termination,
+        such as hibernate session state.</para>
+    </listitem>
+    <listitem>
+      <para>A transaction context must always be present on the Thread in order for the context
+        processors to operate correctly, as detailed previously in 'Using the Transaction Bridge'.
+      </para>
+    </listitem>
+    <listitem>
+      <para>A subordinate transaction context will be created and registered into the parent
+        transaction unconditionally, which can cause unnecessary overhead in situations where no
+        transactional activity takes place in the scope of the subordinate. Care should be taken to
+        register the bridge handlers only on methods that do require them. In future releases this
+        may be addressed by the use of WS-Policy or lazy initialization techniques.</para>
+    </listitem>
+    <listitem>
+      <para>Transaction mappings are local to BridgeManagers, which are singletons. This means
+        mappings are classloader scoped and not shared across JVMs. This gives rise to issues where
+        transactional resources are accessed indirectly though multiple bridges or transaction
+        context transports, as described in 'Loops and Diamonds'.</para>
+    </listitem>
+    <listitem>
+      <para>Crash recovery is subject to certain timing issues, due to the interaction between
+        recovery of the JTA/XA and XTS sides of the transaction. It may take more than one crash
+        recovery cycle for a bridged transaction to recover fully. Note that recovery of subordinate
+        transactions is dependent on the recovery of their parent, so care must be taken to ensure
+        the correct recovery of any external transaction manager used in that role. The transaction
+        bridge does not currently provide dedicated tooling for the manual resolution of orphaned
+        subordinates, instead relying on the general purpose objectstore maintenance tooling
+        provided by JbossTS.</para>
+    </listitem>
+    <listitem>
+      <para>Note that crash recovery will not behave correctly for outbound bridged transactions if
+        1PC commit optimization is used in the parent JTA transaction. This is not specific to the
+        bridge, but rather is a generic issue with any transaction in which a single resource is an
+        interposed subordinate coordinator. Inbound bridges transactions are unaffected as XTS
+        (WS-AT) does not utilize a 1PC optimization.</para>
+    </listitem>
+  </itemizedlist>
+</chapter>
\ No newline at end of file

Modified: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Preface.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Preface.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Preface.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
 ]>
-<preface id="pref-Failure_Recovery_Guide-Preface">
+<preface id="pref-Transaction_Bridging_Guide-Preface">
     <title>Preface</title>
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Common_Content/Conventions.xml"/>
     <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Feedback.xml">

Modified: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Revision_History.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Revision_History.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Revision_History.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,14 +1,9 @@
 <?xml version="1.0" encoding="utf-8"?>
 <!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
-<!ENTITY % BOOK_ENTITIES SYSTEM "Failure_Recovery_Guide.ent">
-<!ENTITY PRODUCT "JBoss Transactions">
-<!ENTITY BOOKID "Failure_Recovery_Guide">
-<!ENTITY VERSION "4.15">
-<!ENTITY YEAR "2011">
-<!ENTITY HOLDER "JBoss.org">
-<!ENTITY APPSERVER "JBoss Application Server">
-<!-- <!ENTITY APPSERVER "Enterprise Application Platform Server"> -->]>
-<appendix id="appe-Failure_Recovery_Guide-Revision_History">
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<appendix id="appe-Transaction_Bridging_Guide-Revision_History">
     <title>Revision History</title>
     <simpara>
         <revhistory>

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridge_Architecture.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridge_Architecture.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridge_Architecture.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,259 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+]>
+<chapter>
+  <title>Transaction Bridge Architecture</title>
+  <section>
+    <title>Overview</title>
+    <para>The transaction bridge resides in the package org.jboss.jbossts.txbridge and its
+      subpackages.. It consists of two distinct sets of classes, one for bridging in each direction.
+    </para>
+    <para>The process of inflowing a WS-AT transaction context on a Web Service call into the
+      container and converting it to a local JTA transaction context such that existing
+      transactional
+      JavaEE code (e.g. EJBs) may be called within its scope, is termed Inbound
+      Transaction Bridging.
+      When using inbound bridging, a parent WS-AT transaction coordinator has a
+      subordinate JTA
+      coordinator interposed into it via the transaction bridge.</para>
+    <para>The process of outflowing a WS-AT transaction context on a call to a transactional Web
+      Service from a business logic method operating in a JavaEE transaction scope, is termed
+      Outbound
+      Transaction Bridging. When using outbound bridging, a parent JTA transaction
+      coordinator has a
+      subordinate WS-AT coordinator interposed into it via the transaction bridge.
+    </para>
+    <para>For the purpose of understanding this naming convention, it is simplest to view the JTA as
+      being local to the container in which it operates, whilst the Web Service protocol provides
+      for
+      transaction context propagation between servers. This is an accurate representation of the
+      situation that exists where the local JTA version of JBossTS is being used alongside JBossTS
+      XTS
+      in an application server. However, it is an oversimplification of the situation where the
+      JTS
+      option is used. We will return to this case later.</para>
+    <figure>
+      <title>Simplified Bridge Architecture</title>
+      <mediaobject>
+        <imageobject>
+          <imagedata fileref="images/architecture.png" format="PNG" />
+        </imageobject>
+      </mediaobject>
+    </figure>
+  </section>
+  <section>
+    <title>Shared Design Elements</title>
+    <para>The design of the inbound and outbound bridges is conceptually very similar. Each provides
+      the following:</para>
+    <itemizedlist>
+      <listitem>
+        <para>
+          A
+          <emphasis>BridgeManager</emphasis>
+          , essentially a factory singleton, providing a means of managing Bridge and
+          resource/participant instances. The chief role of the BridgeManager is to ensure a
+          distinct mapping of a parent transaction context to a single Bridge and
+          resource/participant instance.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          A
+          <emphasis>Bridge</emphasis>
+          , which provides Thread to transaction context association and disassociation functions
+          for the subordinate transaction. The Bridge is usually called from the Handler, but may
+          optionally be driven directly.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          A
+          <emphasis>Handler</emphasis>
+          , which is registered into the JAX-WS processing pipeline to provide minimally invasive
+          management of Thread to transaction context bindings via the Bridge, an appropriate
+          instance of which it obtains from the BridgeManager. Whilst the bridge provides handlers
+          only for JAX-WS, it's possible to use these as a model for the implementation of JAX-RPC
+          versions if desired.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          A
+          <emphasis>VolatileParticipant</emphasis>
+          and
+          <emphasis>DurableParticipant</emphasis>
+          (in the case of the InboundBridge) or
+          <emphasis>Synchronization</emphasis>
+          and
+          <emphasis>XAResource</emphasis>
+          (in the case of the OutboundBridge) which are enlisted into the parent transaction and
+          wrap the Subordinate transaction coordinator, providing mapping of the transaction
+          termination protocol operations.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          A
+          <emphasis>RecoveryManager</emphasis>
+          , which is responsible for automatically restoring the state of crashed transactions and
+          allowing them to complete correctly.
+        </para>
+      </listitem>
+    </itemizedlist>
+  </section>
+  <section>
+    <title>Inbound Bridging</title>
+    <para>The process flow when using the inbound bridge is as follows:</para>
+    <orderedlist>
+      <listitem>
+        <para>A remote client starts a WS-AT transaction and invokes a transactional Web Service in
+          the scope of that transaction. The inbound WS invocation therefore has SOAP headers
+          containing the WS-AT transaction context. The coordinator used for this transaction is the
+          root coordinator. It may be remote from either or both of the client and the service it is
+          invoking. The client needs access to a WS-AT implementation, but not a JTA or the
+          transaction bridge deployed.</para>
+      </listitem>
+      <listitem>
+        <para>The call arrives at a web service container, which must have JBossTS JTA or JTS, XTS
+          and the transaction bridge deployed. The JAX-WS handler chain for the web service should
+          have both the XTS WS-AT transaction header processor and the inbound bridge handler
+          registered, such that they are invoked in that order.</para>
+      </listitem>
+      <listitem>
+        <para>The transaction header processor takes the WS-AT transaction context from XML, creates
+          a corresponding WS-AT TxContext and associates it to the Thread. The bridge handler calls
+          the InboundBridgeManager to obtain an InboundBridge instance corresponding to the
+          TxContext.</para>
+      </listitem>
+      <listitem>
+        <para>As the BridgeManager is seeing the TxContext for the first time, it creates a new
+          Bridge instance. It also creates a new Bridge VolatileParticipant and DurableParticipant
+          and registers them with the WS-AT transaction coordinator. These Participants wrap a
+          subordinate JTA transaction.</para>
+      </listitem>
+      <listitem>
+        <para>The bridge header processor starts the bridge, which associates the JTA subordinate
+          transaction context to the Thread. At this point the Thread has transaction contexts for
+          both WS-AT and JTA.</para>
+      </listitem>
+      <listitem>
+        <para>The JAX-WS pipeline processing continues, eventually calling whatever business logic
+          is exposed. This may be e.g. an EJB using JSR-181 annotations. The business logic may use
+          the JTA transaction in the normal manner e.g. enlisting Synchronizations and XAResources
+          or performing other transactional activity either directly or though the usual JavaEE
+          abstractions.</para>
+      </listitem>
+      <listitem>
+        <para>On the return path, the bridge header processor disassociates the JTA transaction
+          context from the Thread via the Bridge. The XTS context processor then does likewise for
+          the WS-AT TxContext.</para>
+      </listitem>
+      <listitem>
+        <para>On subsequent web services calls to the same or other web services from the same
+          client, the process is repeated. However, the BridgeManager will, upon seeing the same
+          WS-AT transaction context again, return the existing Bridge instance and not register
+          further Participant instances. This allows substantially better performance than
+          registering one Participant per web service invocation.</para>
+      </listitem>
+      <listitem>
+        <para>Upon transaction termination by the client, the WS-AT transaction coordinator will
+          drive the enlisted bridge Participants through the transaction termination protocol. The
+          Participants maps these calls down to the JTA subtransaction coordinator, which in turn
+          passes them on to any Synchronizations or XAResources enlisted in the transaction. This
+          process is not visible to the business logic, except in so far as it may have registered
+          its own Synchronizations, XAResources or Participants with the transaction.</para>
+      </listitem>
+    </orderedlist>
+  </section>
+  <section>
+    <title>Outbound Bridging</title>
+    <para>The process flow when using the outbound bridge is as follows:</para>
+    <orderedlist>
+      <listitem>
+        <para>A client starts a JTA transaction and invokes a remote transactional Web Service in
+          the scope of that transaction. The client must have JBossTS JTA (or JTS) and XTS deployed,
+          as well as the transaction bridge. The coordinator used for the JTA transaction is the
+          root coordinator. The server hosting the target web service needs a WS-AT transaction
+          implementation but not a JTA or the transaction bridge.</para>
+      </listitem>
+      <listitem>
+        <para>The outbound WS invocation flows though a handler chain that has the outbound
+          transaction bridge handler and XTS header context processor registered, such that they are
+          invoked in that order.</para>
+      </listitem>
+      <listitem>
+        <para>The bridge handler calls the outbound bridge manager to obtain an outbound bridge
+          instance corresponding to the JTA transaction context. As the BridgeManager is seeing the
+          context for the first time, it creates a new Bridge instance. It also creates a
+          Synchronization and XAResource instance to wrap the subordinate WS-AT transaction and
+          registers these with the JTA transaction.</para>
+      </listitem>
+      <listitem>
+        <para>The bridge handler starts the bridge, which associates the subordinate WS-AT
+          transaction context to the Thread. The WS-AT header context processor then serializes this
+          into XML in the headers of the outbound Web Services call.</para>
+      </listitem>
+      <listitem>
+        <para>The receiving Web Service sees a WS-AT context and can work with it in the normal
+          manner, without knowing it is a subordinate context.</para>
+      </listitem>
+      <listitem>
+        <para>On the return path, the bridge handler disassociates the WS-AT TxContext from the
+          Thread via the Bridge.</para>
+      </listitem>
+      <listitem>
+        <para>On subsequent calls to the same or other transactional Web Services in the scope of
+          the same JTA transaction, the process is repeated. However, the BridgeManager will, upon
+          seeing the same JTA transaction context again, return the existing Bridge and not register
+          another Synchronization or XAResource with the parent JTA transaction. This allows
+          substantially better performance than registering once per web service invocation.</para>
+      </listitem>
+      <listitem>
+        <para>Upon transaction termination by the client, the JTA transaction coordinator will drive
+          the enlisted bridge Synchronization and XAResource through the transaction termination
+          protocol. The XAResource maps these calls down to the WS-AT subtransaction coordinator,
+          which in turn passes them on to any Volatile or Durable Participants enlisted in the
+          transaction. This process is not visible to the business logic, except in so far as it may
+          have registered its own Participants, XAResources or Synchronizatons with the transaction.
+        </para>
+      </listitem>
+    </orderedlist>
+  </section>
+  <section>
+    <title>Crash Recovery</title>
+    <para>The bridge includes independent crash recovery systems for the inbound and outbound sides.
+      These are automatically installed and activated as part of the bridge deployment. They rely
+      upon the recovery mechanisms in the JTA and XTS components, which are likewise deployed and
+      activated by default as part of their respective components.</para>
+    <para>It is the responsibility of the application(s) to use suitable XAResources (inbound) or
+      DurableParticipants (outbound). In general the former will be from XA datasources or messaging
+      systems, whilst the latter will be custom implementations. In either case it is important to
+      ensure recovery is correctly configured for the resource manager(s) before using them in
+      production, via the bridge or otherwise. The JBossTS documentation set details crash recovery
+      configuration, as does the application server administration guide. For resource manager
+      specific information e.g. Oracle db permissions settings for recovery connections, please
+      consult the vendor's documentation.</para>
+    <para>A bridged transaction will involve several distinct log writes, potentially on multiple
+      hosts. Resolving the transaction may require more than one crash recovery cycle, due to
+      ordering constrains on the events taking place during recovery. If a transaction fails to
+      recover after all servers have been restored to service for more than two recovery cycles
+      duration, the JBossTS objectstore browser and server logs may be useful for diagnosing the
+      issue. Where a transaction involves multiple bridges the number of recovery cycles required to
+      resolve it may further increase. For systems requiring maximum availability it is therefore
+      not recommended to span a transaction through more than one bridge.</para>
+    <para>
+      Note that the 1PC commit optimization should not be used with outbound bridged
+      transactions in
+      which the subordinate may contain more than one Participant. Even where only
+      one Participant
+      is used, crash recovery logs may not correctly reflect the actual transaction
+      outcome. The 1PC
+      optimization is on be default and may be disabled by setting
+      &lt;property
+      name="commitOnePhase"&gt;false &lt;/property&gt; on CoordinatorEnvironmentBean.
+    </para>
+    <para>See the 'Design Notes' appendix for detailed information on potential crash recovery
+      scenarios and how each is handled.</para>
+  </section>
+</chapter>
\ No newline at end of file

Copied: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.ent (from rev 36927, labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Failure_Recovery_Guide.ent)
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.ent	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.ent	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,7 @@
+<!ENTITY PRODUCT "JBoss Transactions">
+<!ENTITY BOOKID "Transaction_Bridging_Guide">
+<!ENTITY VERSION "4.15">
+<!ENTITY YEAR "2011">
+<!ENTITY HOLDER "JBoss.org">
+<!ENTITY APPSERVER "JBoss Application Server">
+<!-- <!ENTITY APPSERVER "Enterprise Application Platform Server"> -->

Copied: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.xml (from rev 36927, labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/Failure_Recovery_Guide.xml)
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Transaction_Bridging_Guide.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+%BOOK_ENTITIES;
+]>
+<book>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Book_Info.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Preface.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="About_This_Guide.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Introduction.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Transaction_Bridge_Architecture.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Using_the_Transaction_Bridge.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Known_Limitations.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Design_Notes.xml"/>
+    <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="Revision_History.xml"/>
+   <!-- <index /> -->
+</book>

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/Using_the_Transaction_Bridge.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/Using_the_Transaction_Bridge.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/Using_the_Transaction_Bridge.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,223 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+<!ENTITY % BOOK_ENTITIES SYSTEM "Transaction_Bridging_Guide.ent">
+]>
+<chapter>
+  <title>Using the Transaction Bridge</title>
+  <section>
+    <title>Introduction</title>
+    <para>This section describes how to use the transaction bridge in your applications. It is
+      recommended you first read the preceding chapters for a theoretical background in the way the
+      bridge functions.</para>
+  </section>
+  <section>
+    <title>Deployment</title>
+    <para>
+      The txbridge.jar file should be placed in JBossAS server/lt;config&gt;/deploy directory.
+      The server must also be running JBossTS JTA (the default transaction manager) or JTS, and also
+      JBossTS XTS. The versions of all these components must be consistent.
+    </para>
+  </section>
+  <section>
+    <title>Inbound Bridging</title>
+    <para>To use the inbound bridge, register the JAX-WS handler into the handler chain of any Web
+      Service as follows:</para>
+    <example>
+      <title>
+        Registering the
+        <literal>handler</literal>
+        for Inbound Bridging
+      </title>
+      <programlisting role="XML" language="XML">
+      <xi:include href="extras/inboundbridging.xml" xmlns:xi="http://www.w3.org/2001/XInclude"
+        parse="text" />
+      </programlisting>
+    </example>
+    <para>The web service may then operate as though running in the scope of a JTA transaction, as
+      indeed it is. For example, it can call (or indeed simply be) an EJB3 business logic method
+      annotated with @TansactionAttribute(TransactionAttributeType.MANDATORY).</para>
+    <para>Note that the handlers expect a WS-AT transaction context to be present on all inbound
+      invocations. If you wish deploy your service in such a way as to make transactional invocation
+      optional, you must expose it though two different endpoints, one transactional and one not,
+      with the handlers registered only on the former. This limitation may be addressed in future
+      versions.</para>
+  </section>
+  <section>
+    <title>Outbound Bridging</title>
+    <para>To use the outbound bridge, register the JAX-WS handler into the handler chain of any Web
+      Service client application as follows:</para>
+    <example>
+      <title>
+        Registering the
+        <literal>handler</literal>
+        for Outbound Bridging
+      </title>
+      <programlisting role="XML" language="XML">
+      <xi:include href="extras/outboundbridging.xml" xmlns:xi="http://www.w3.org/2001/XInclude"
+        parse="text" />
+      </programlisting>
+    </example>
+    <para>The web service client may then make calls to web service implementations that expect to
+      be invoked in the scope of a WS-AT transaction.</para>
+    <para>Note that the handlers expect a JTA transaction context to be present on the client thread
+      used to make the outbound web service invocation. If the context is not always present,
+      different stubs must be used for the transactional and non-transactional cases and the handler
+      chain registered only on the former. This limitation may be addressed in future versions.
+    </para>
+  </section>
+  <section>
+    <title>Demonstration Application</title>
+    <para>A simple demonstration application is available to show usage of the bridge. It is modeled
+      to some extent on the XTS 'Night Out' demonstrator application, with which readers are assumed
+      to be familiar.</para>
+    <para>Since transactions mostly run without visible effect, the demo is useful mainly as an
+      example of how to utilize the bridge. The bridge implementation does however contain trace
+      level
+      logging for most functions. Used in conjunction with verbose logging from XTS, the
+      transaction
+      manager, the Web Service stack and the EJB container, this can be used to gain a
+      detailed
+      understanding of the flow of events in the system. Alternatively, stepping though the
+      demo using
+      a source debugger can be instructive.</para>
+    <para>
+      To deploy and run the demo application, edit demo/build.xml to ensure the jbossas.home and
+      jbossas.server properties are set correctly, then execute 'ant dist' to build the application
+      artifacts. Start the application server, then deploy the service side of the demo using 'ant
+      deploy-service' Once it has deployed, the client app can be similarly installed using 'ant
+      deploy-client'. Depending on your server configuration, the client will then be accessible
+      from
+      e.g.
+      <ulink url="http://localhost:8080/txbridge-demo-client/">http://localhost:8080/txbridge-demo-client/</ulink>
+    </para>
+    <section>
+      <title>Inbound Bridge</title>
+      <para>The demonstrator exposes a EJB3 SLSB as a transactional web service ('Bistro') via the
+        inbound bridge. Note that the code implementing this service is standard EJB with JSR-181
+        annotations and has no compile time dependency on XTS or the txbridge. The only point of
+        linkage is the usage of the @HandlerChain(file = "jaxws-handlers-server.xml") annotation to
+        reference a xml file containing the XTS and txbridge handlers, as detailed above. Other than
+        this the service side of the application uses only standard JavaEE elements and has no
+        direct knowledge of WS-AT transactions.</para>
+      <para>A client starts a WS-AT transaction and makes an invocation on the web service. The
+        client does not use JTA (XA) transactions. It uses @HandlerChain(file =
+        "jaxws-handlers-client.xml") to register the XTS header context processor, but is otherwise
+        similar to the XTS demo client.</para>
+      <para>
+        In this demo, the inbound bridge converts the WS-AT context to a JTA one and invokes the
+        EJB
+        in that scope. By default the EJB is backed by the hsqldb embedded in JBossAS, for ease
+        of
+        deployment. This database does not support XA, so the resource registered for it uses
+        LRCO.
+        However, this point is not significant to the demo. Curious uses can readily use a true
+        XA
+        database by deploying it into JBossAS via the usual &lt;xa-datasource&gt; in a -ds.xml
+        file, then alter the demo's dd/persistence.xml to reference it.
+      </para>
+    </section>
+    <section>
+      <title>Outbound Bridge</title>
+      <para>The demonstrator client application can also be used to invoke the XTS Night Out demo
+        Restaurant Service via the outbound bridge. Deploy the XTS demo application services, then
+        select the 'JTA' transaction type in the client. In this scenario the client uses a JTA
+        transaction only, whilst the service understands WS-AT type transactions only. Note that the
+        client has its own copy of the service API, annotated with @HandlerChain(file =
+        "jaxws-handlers-client.xml"), which is the only point of linkage with the transaction
+        bridge. Once again neither the client nor server have any compile time dependency on the
+        bridge.</para>
+    </section>
+  </section>
+  <section>
+    <title>Loops and Diamonds</title>
+    <para>In distributed environments that utilize transaction bridging, it is possible to construct
+      arrangements of servers such that a transaction context passes though more than one
+      interposition. These can give rise to some undesirable issues, including locking and
+      performance problems.</para>
+    <para>A simple case would be a loop in which a JTA transaction context is bridged outbound to a
+      WS-AT context, passed though one or more remote servers and inflowed back to the original
+      server through an inbound bridge. This may result in a new subordinate JTA context, rather
+      than reuse of the existing parent context in the original server.</para>
+    <para>This situation has two main observable effects. Firstly, the parent JTA transaction and
+      indirectly subordinate JTA transaction are considered distinct and XAResources may not be
+      shared between them. In most cases this will cause isolation between the transactions, such
+      that they do not share locks or see eachother's changes. This may cause deadlocks in the
+      application. Secondly, performance will be poor relative to reuse of the original context,
+      particularly if the interposition chain becomes long.</para>
+    <para>A similar problem exists where a transaction context is propagated from a single source to
+      a single destination server via two or more separate routes, the abstract paths forming a
+      diamond shape. In such case the intermediate nodes operate independently and will bridge the
+      original context to two separate interposed contexts. To the destination server these will
+      appear unrelated, rather than as representations of the same transaction. Thus instead of
+      recombining into a single shared transaction context at the destination, they will behave as
+      different transactions, giving rise once again to potential deadlock and performance issues.
+    </para>
+    <para>These problems may be partially addressed by having a shared context mapping service
+      available on the network, which each bridge consults when working with a previously unseen
+      transaction context for the first time. Using such a mechanism, bridge instances may identify
+      transactions for which an established mapping already exists and reuse that relationship
+      rather than creating a new one.</para>
+    <para>This shared service model does however cause some issues of its own with regard to
+      performance and availability. It is not currently implemented. Therefore, users are urged to
+      be cautious when constructing distributed applications. Whilst location abstraction is
+      sometimes desirable, is is important to maintain a clear understanding of the deployment
+      relationships between transactional components in the system.</para>
+  </section>
+  <section>
+    <title>Distributed JTA and the JTS</title>
+    <para>The JavaEE transaction engine in JBossTS comes in two varieties. These are the local only
+      JTA, which does not support propagation of transaction context or transaction control calls
+      between JVMs and the JTAX, which provides the JTA API implemented by a JTS engine that does
+      support distributed usage.</para>
+    <para>JBossAS uses the local JTA implementation by default, but can be reconfigured to use the
+      JTS via the JTA API, such that it supports distributed transactions without requiring any
+      changes to business applications.</para>
+    <para>In environments requiring transaction propagation of JTA transactions, it is feasible to
+      use either the JTS or an outbound and inbound bridge pair to achieve this. In the former case
+      the transport is RMI/IIOP for the transaction control and RMI/IIOP or JRMP for the
+      transactional business logic calls. In the latter case the transport is Web Services for both
+      transaction control and business logic.</para>
+    <para>From a transaction management perspective the JTS solution is preferred, due to simplicity
+      (no protocol mapping is needed), maturity (JBossTS JTS was the world's first JTS
+      implementation and has been extensively used and tested in production environments) and
+      performance (binary vs. xml).</para>
+    <para>It is possible to use transactions that propagate context on some calls via JTS and on
+      others via Web Services, such as a client invoking both EJBs via RMI/IIOP and Web services
+      with WS-AT context. In such cases it's possible for a transaction to have multiple
+      representations that the infrastructure cannot determine are related, even if they actually
+      represent different contexts in the same interposition hierarchy. Care must therefore be taken
+      to avoid the problems described previously in 'Loops and Diamonds'.</para>
+  </section>
+  <section>
+    <title>Logging</title>
+    <para>The transaction bridge uses the jboss-logging system. When running inside JBossAS 6,
+      logging is configured via the server's deploy/jboss-logging.xml file. To enable full logging
+      for the transaction bridge, which may be useful for debug purposes, the following should be
+      used:</para>
+    <example>
+      <title>Configuring Transaction Bridge Logging</title>
+      <programlisting role="XML" language="XML">
+      <xi:include href="extras/txbridgelogging.xml" xmlns:xi="http://www.w3.org/2001/XInclude"
+        parse="text" />
+      </programlisting>
+    </example>
+    <para>Note that the transaction bridge is a thin layer on top of the XTS and JTA/JTS components
+      of
+      JBossTS, and that it also interacts with other parts of the application server. To gain a
+      comprehensive understanding of the system's operation, it may be necessary to enable verbose
+      logging for some of these other components also. The JBossTS logging system is discussed in
+      detail in the accompanying documentation set, but for ease of reference the following may be
+      used to enable verbose logging:</para>
+    <example>
+      <title>Configuring verbose logging</title>
+      <programlisting role="XML" language="XML">
+      <xi:include href="extras/verboselogging.xml" xmlns:xi="http://www.w3.org/2001/XInclude"
+        parse="text" />
+      </programlisting>
+    </example>
+    <para>Note also that deployment ordering issues can result in JBossTS components, including the
+      transaction bridge, becoming active before the logging system is fully configured. In such
+      cases a default logging level may apply during startup, resulting in some more detailed debug
+      messages being missed.</para>
+  </section>
+</chapter>
\ No newline at end of file

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/XAResourceRecoveryHelper.java
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/extras/XAResourceRecoveryHelper.java	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/XAResourceRecoveryHelper.java	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,4 +0,0 @@
-public interface com.arjuna.ats.jta.recovery.XAResourceRecoveryHelper	{
-    public boolean initialise(String p) throws Exception;
-    public XAResource[] getXAResources() throws Exception;
-}
\ No newline at end of file

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/XAResourceRecoveryInterface.java
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/extras/XAResourceRecoveryInterface.java	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/XAResourceRecoveryInterface.java	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,7 +0,0 @@
-public interface XAResourceRecovery {
-	public XAResource getXAResource() throws SQLException;
-
-	public boolean initialise(String p);
-
-	public boolean hasMoreResources();
-};
\ No newline at end of file

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/inboundbridging.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/inboundbridging.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/inboundbridging.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,12 @@
+<handler-chain>
+  <protocol-bindings>##SOAP11_HTTP</protocol-bindings>
+  <handler>
+    <handler-name>TransactionBridgeHandler</handler-name>
+    <handler-class>org.jboss.jbossts.txbridge.inbound.JaxWSTxInboundBridgeHandler</handler-class>
+  </handler>
+
+  <handler>
+    <handler-name>WebServicesTxContextHandler</handler-name>
+    <handler-class>com.arjuna.mw.wst11.service.JaxWSHeaderContextProcessor</handler-class>
+  </handler>
+</handler-chain>
\ No newline at end of file

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/jndiDatasource.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/extras/jndiDatasource.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/jndiDatasource.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><
-<properties>
-        <entry key="DatabaseJNDIName">java:ExampleDS</entry>
-        <entry key="UserName">username</entry>
-        <entry key="Password">password</entry>
-</properties>
\ No newline at end of file

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/outboundbridging.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/outboundbridging.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/outboundbridging.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,12 @@
+<handler-chain>
+  <protocol-bindings>##SOAP11_HTTP</protocol-bindings>
+  <handler>
+    <handler-name>TransactionBridgeHandler</handler-name>
+    <handler-class>org.jboss.jbossts.txbridge.outbound.JaxWSTxOutboundBridgeHandler</handler-class>
+  </handler>
+
+  <handler>
+    <handler-name>WebServicesTxContextHandler</handler-name>
+    <handler-class>com.arjuna.mw.wst11.client.JaxWSHeaderContextProcessor</handler-class>
+  </handler>
+</handler-chain>
\ No newline at end of file

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/recoveryModuleInterface.java
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/extras/recoveryModuleInterface.java	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/recoveryModuleInterface.java	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,14 +0,0 @@
-public interface RecoveryModule {
-	/**
-	 * Called by the RecoveryManager at start up, and then
-	 * PERIODIC_RECOVERY_PERIOD seconds after the completion, for all
-	 * RecoveryModules of the second pass
-	 */
-	public void periodicWorkFirstPass();
-
-	/**
-	 * Called by the RecoveryManager RECOVERY_BACKOFF_PERIOD seconds after the
-	 * completion of the first pass
-	 */
-	public void periodicWorkSecondPass();
-}

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/recoveryScanInterface.java
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/extras/recoveryScanInterface.java	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/recoveryScanInterface.java	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,3 +0,0 @@
-public interface RecoveryScan {
-	public void completed();
-}

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/txbridgelogging.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/txbridgelogging.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/txbridgelogging.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,3 @@
+<logger category="org.jboss.jbossts.txbridge">
+  <level name="ALL" />
+</logger> 
\ No newline at end of file

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/verboselogging.xml
===================================================================
--- labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/verboselogging.xml	                        (rev 0)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/verboselogging.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -0,0 +1,3 @@
+<logger category="com.arjuna">
+  <level name="ALL" />
+</logger>
\ No newline at end of file

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/xmlDatasource.xml
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/extras/xmlDatasource.xml	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/extras/xmlDatasource.xml	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"><
-<properties>
-   <entry key="DB_X_DatabaseUser">username</entry>
-   <entry key="DB_X_DatabasePassword">password"</entry>
-   <entry key="DB_X_DatabaseDynamicClass">DynamicClass</entry>
-   <entry key="DB_X_DatabaseURL">theURL</entry>
-</properties>
\ No newline at end of file

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/architecture.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/architecture.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/bridgeinterposition.png
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/bridgeinterposition.png
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig1-crashrecoveryarchitecture.gif
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig2-resourceinitiatedrecovery.gif
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig3-resource-recoverycoordinator.gif
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig4-overview-of-poa.gif
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig5-recoverymanager.gif
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/fig6-resourceregistration.gif
===================================================================
(Binary files differ)

Deleted: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/icon.svg
===================================================================
--- labs/jbosstm/trunk/docs/failure_recovery_guide/en-US/images/icon.svg	2011-04-14 09:26:18 UTC (rev 36927)
+++ labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/icon.svg	2011-04-15 13:31:46 UTC (rev 36939)
@@ -1,3936 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-<svg
-   xmlns:ns="http://ns.adobe.com/AdobeSVGViewerExtensions/3/"
-   xmlns:a="http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://web.resource.org/cc/"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:xlink="http://www.w3.org/1999/xlink"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   version="1.0"
-   width="32"
-   height="32"
-   id="svg3017"
-   sodipodi:version="0.32"
-   inkscape:version="0.44+devel"
-   sodipodi:docname="book.svg"
-   sodipodi:docbase="/home/andy/Desktop">
-  <metadata
-     id="metadata489">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <sodipodi:namedview
-     inkscape:window-height="480"
-     inkscape:window-width="858"
-     inkscape:pageshadow="0"
-     inkscape:pageopacity="0.0"
-     guidetolerance="10.0"
-     gridtolerance="10.0"
-     objecttolerance="10.0"
-     borderopacity="1.0"
-     bordercolor="#666666"
-     pagecolor="#ffffff"
-     id="base"
-     inkscape:zoom="1"
-     inkscape:cx="16"
-     inkscape:cy="15.944056"
-     inkscape:window-x="0"
-     inkscape:window-y="33"
-     inkscape:current-layer="svg3017" />
-  <defs
-     id="defs3019">
-    <linearGradient
-       id="linearGradient2381">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="stop2383" />
-      <stop
-         style="stop-color:white;stop-opacity:0"
-         offset="1"
-         id="stop2385" />
-    </linearGradient>
-    <linearGradient
-       x1="415.73831"
-       y1="11.854"
-       x2="418.13361"
-       y2="18.8104"
-       id="XMLID_1758_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="0"
-         id="stop3903" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="1"
-         id="stop3905" />
-      <a:midPointStop
-         style="stop-color:#CCCCCC"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#CCCCCC"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#F2F2F2"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="500.70749"
-       y1="-13.2441"
-       x2="513.46442"
-       y2="-2.1547"
-       id="XMLID_1757_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0"
-         id="stop3890" />
-      <stop
-         style="stop-color:#96bad6;stop-opacity:1"
-         offset="1"
-         id="stop3892" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#96BAD6"
-         offset="1" />
-    </linearGradient>
-    <clipPath
-       id="XMLID_1755_">
-      <use
-         id="use3874"
-         x="0"
-         y="0"
-         width="744.09448"
-         height="600"
-         xlink:href="#XMLID_343_" />
-    </clipPath>
-    <linearGradient
-       x1="505.62939"
-       y1="-14.9526"
-       x2="527.49402"
-       y2="-0.7536"
-       id="XMLID_1756_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0"
-         id="stop3877" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0.51120001"
-         id="stop3879" />
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0.64609998"
-         id="stop3881" />
-      <stop
-         style="stop-color:#16336e;stop-opacity:1"
-         offset="1"
-         id="stop3883" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5112" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.6461" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#16336E"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="471.0806"
-       y1="201.07761"
-       x2="481.91711"
-       y2="210.4977"
-       id="XMLID_1754_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#6498c1;stop-opacity:1"
-         offset="0.005618"
-         id="stop3863" />
-      <stop
-         style="stop-color:#79a9cc;stop-opacity:1"
-         offset="0.2332"
-         id="stop3865" />
-      <stop
-         style="stop-color:#a4cde2;stop-opacity:1"
-         offset="0.74049997"
-         id="stop3867" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="1"
-         id="stop3869" />
-      <a:midPointStop
-         style="stop-color:#6498C1"
-         offset="5.618000e-003" />
-      <a:midPointStop
-         style="stop-color:#6498C1"
-         offset="0.4438" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="516.57672"
-       y1="-15.769"
-       x2="516.57672"
-       y2="0.84280002"
-       id="XMLID_1753_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0"
-         id="stop3851" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="1"
-         id="stop3853" />
-      <a:midPointStop
-         style="stop-color:#B2B2B2"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#B2B2B2"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#F2F2F2"
-         offset="1" />
-    </linearGradient>
-    <clipPath
-       id="XMLID_1751_">
-      <use
-         id="use3837"
-         x="0"
-         y="0"
-         width="744.09448"
-         height="600"
-         xlink:href="#XMLID_338_" />
-    </clipPath>
-    <linearGradient
-       x1="506.09909"
-       y1="-11.5137"
-       x2="527.99609"
-       y2="2.7063999"
-       id="XMLID_1752_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0"
-         id="stop3840" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0.51120001"
-         id="stop3842" />
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0.64609998"
-         id="stop3844" />
-      <stop
-         style="stop-color:#16336e;stop-opacity:1"
-         offset="1"
-         id="stop3846" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5112" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.6461" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#16336E"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="468.2915"
-       y1="204.7612"
-       x2="479.39871"
-       y2="214.4166"
-       id="XMLID_1750_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0"
-         id="stop3830" />
-      <stop
-         style="stop-color:#96bad6;stop-opacity:1"
-         offset="1"
-         id="stop3832" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#96BAD6"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="502.70749"
-       y1="115.3013"
-       x2="516.39001"
-       y2="127.1953"
-       id="XMLID_1749_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0"
-         id="stop3818" />
-      <stop
-         style="stop-color:#96bad6;stop-opacity:1"
-         offset="1"
-         id="stop3820" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#96BAD6"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="501.0903"
-       y1="-19.2544"
-       x2="531.85413"
-       y2="0.72390002"
-       id="XMLID_1748_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0"
-         id="stop3803" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0.51120001"
-         id="stop3805" />
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0.64609998"
-         id="stop3807" />
-      <stop
-         style="stop-color:#16336e;stop-opacity:1"
-         offset="1"
-         id="stop3809" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5112" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.6461" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#16336E"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="481.23969"
-       y1="212.5742"
-       x2="472.92981"
-       y2="207.4967"
-       id="XMLID_2275_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#f3403f;stop-opacity:1"
-         offset="0"
-         id="stop9947" />
-      <stop
-         style="stop-color:#d02a28;stop-opacity:1"
-         offset="0.37889999"
-         id="stop9949" />
-      <stop
-         style="stop-color:#b21714;stop-opacity:1"
-         offset="0.77649999"
-         id="stop9951" />
-      <stop
-         style="stop-color:#a6100c;stop-opacity:1"
-         offset="1"
-         id="stop9953" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0.4213" />
-      <a:midPointStop
-         style="stop-color:#A6100C"
-         offset="1" />
-    </linearGradient>
-    <clipPath
-       id="XMLID_2273_">
-      <use
-         id="use9933"
-         x="0"
-         y="0"
-         width="744.09448"
-         height="600"
-         xlink:href="#XMLID_960_" />
-    </clipPath>
-    <linearGradient
-       x1="473.7681"
-       y1="209.17529"
-       x2="486.98099"
-       y2="213.2001"
-       id="XMLID_2274_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#f3403f;stop-opacity:1"
-         offset="0"
-         id="stop9936" />
-      <stop
-         style="stop-color:#d02a28;stop-opacity:1"
-         offset="0.37889999"
-         id="stop9938" />
-      <stop
-         style="stop-color:#b21714;stop-opacity:1"
-         offset="0.77649999"
-         id="stop9940" />
-      <stop
-         style="stop-color:#a6100c;stop-opacity:1"
-         offset="1"
-         id="stop9942" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0.4213" />
-      <a:midPointStop
-         style="stop-color:#A6100C"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="478.21341"
-       y1="-131.9297"
-       x2="469.85818"
-       y2="-140.28481"
-       id="XMLID_2272_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
-      <stop
-         style="stop-color:#f3403f;stop-opacity:1"
-         offset="0"
-         id="stop9917" />
-      <stop
-         style="stop-color:#d02a28;stop-opacity:1"
-         offset="0.37889999"
-         id="stop9919" />
-      <stop
-         style="stop-color:#b21714;stop-opacity:1"
-         offset="0.77649999"
-         id="stop9921" />
-      <stop
-         style="stop-color:#a6100c;stop-opacity:1"
-         offset="1"
-         id="stop9923" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0.4213" />
-      <a:midPointStop
-         style="stop-color:#A6100C"
-         offset="1" />
-    </linearGradient>
-    <marker
-       refX="0"
-       refY="0"
-       orient="auto"
-       style="overflow:visible"
-       id="TriangleInM">
-      <path
-         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
-         transform="scale(-0.4,-0.4)"
-         style="fill:#5c5c4f"
-         id="path3197" />
-    </marker>
-    <linearGradient
-       x1="200.7363"
-       y1="100.4028"
-       x2="211.99519"
-       y2="89.143997"
-       id="XMLID_3298_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#bfbfbf;stop-opacity:1"
-         offset="0"
-         id="stop20103" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="1"
-         id="stop20105" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#BFBFBF" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#BFBFBF" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#F2F2F2" />
-    </linearGradient>
-    <linearGradient
-       x1="200.7363"
-       y1="100.4028"
-       x2="211.99519"
-       y2="89.143997"
-       id="linearGradient36592"
-       xlink:href="#XMLID_3298_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
-    <linearGradient
-       x1="181.2925"
-       y1="110.8481"
-       x2="192.6369"
-       y2="99.5037"
-       id="XMLID_3297_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0"
-         id="stop20096" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="stop20098" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#CCCCCC" />
-    </linearGradient>
-    <linearGradient
-       x1="181.2925"
-       y1="110.8481"
-       x2="192.6369"
-       y2="99.5037"
-       id="linearGradient36595"
-       xlink:href="#XMLID_3297_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
-    <linearGradient
-       x1="211.77589"
-       y1="105.7749"
-       x2="212.6619"
-       y2="108.2092"
-       id="XMLID_3296_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#0f6124;stop-opacity:1"
-         offset="0"
-         id="stop20087" />
-      <stop
-         style="stop-color:#219630;stop-opacity:1"
-         offset="1"
-         id="stop20089" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#0F6124" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#0F6124" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#219630" />
-    </linearGradient>
-    <linearGradient
-       x1="211.77589"
-       y1="105.7749"
-       x2="212.6619"
-       y2="108.2092"
-       id="linearGradient36677"
-       xlink:href="#XMLID_3296_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
-    <linearGradient
-       x1="208.9834"
-       y1="116.8296"
-       x2="200.0811"
-       y2="96.834602"
-       id="XMLID_3295_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0"
-         id="stop20076" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0.5"
-         id="stop20078" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="1"
-         id="stop20080" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#FFFFFF" />
-    </linearGradient>
-    <linearGradient
-       x1="208.9834"
-       y1="116.8296"
-       x2="200.0811"
-       y2="96.834602"
-       id="linearGradient36604"
-       xlink:href="#XMLID_3295_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
-    <linearGradient
-       x1="195.5264"
-       y1="97.911102"
-       x2="213.5213"
-       y2="115.9061"
-       id="XMLID_3294_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="0"
-         id="stop20069" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="1"
-         id="stop20071" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#CCCCCC" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#CCCCCC" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#FFFFFF" />
-    </linearGradient>
-    <linearGradient
-       x1="195.5264"
-       y1="97.911102"
-       x2="213.5213"
-       y2="115.9061"
-       id="linearGradient36607"
-       xlink:href="#XMLID_3294_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
-    <linearGradient
-       x1="186.1938"
-       y1="109.1343"
-       x2="206.6881"
-       y2="88.639999"
-       id="XMLID_3293_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0"
-         id="stop20056" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0.16850001"
-         id="stop20058" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0.23029999"
-         id="stop20060" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0.2809"
-         id="stop20062" />
-      <stop
-         style="stop-color:#c2c2c2;stop-opacity:1"
-         offset="0.5"
-         id="stop20064" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="0.1685"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.2303"
-         style="stop-color:#FFFFFF" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#FFFFFF" />
-      <a:midPointStop
-         offset="0.2809"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#C2C2C2" />
-    </linearGradient>
-    <linearGradient
-       x1="186.1938"
-       y1="109.1343"
-       x2="206.6881"
-       y2="88.639999"
-       id="linearGradient36610"
-       xlink:href="#XMLID_3293_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
-    <linearGradient
-       x1="184.8569"
-       y1="112.2676"
-       x2="211.94099"
-       y2="89.541397"
-       id="XMLID_3292_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0"
-         id="stop20043" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0.16850001"
-         id="stop20045" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0.23029999"
-         id="stop20047" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0.2809"
-         id="stop20049" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="stop20051" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="0.1685"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.2303"
-         style="stop-color:#FFFFFF" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#FFFFFF" />
-      <a:midPointStop
-         offset="0.2809"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#CCCCCC" />
-    </linearGradient>
-    <linearGradient
-       x1="184.8569"
-       y1="112.2676"
-       x2="211.94099"
-       y2="89.541397"
-       id="linearGradient36613"
-       xlink:href="#XMLID_3292_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.029078,0,0,1,-183.2624,-79.44655)" />
-    <marker
-       refX="0"
-       refY="0"
-       orient="auto"
-       style="overflow:visible"
-       id="TriangleOutM">
-      <path
-         d="M 5.77,0 L -2.88,5 L -2.88,-5 L 5.77,0 z "
-         transform="scale(0.4,0.4)"
-         style="fill:#5c5c4f;fill-rule:evenodd;stroke-width:1pt;marker-start:none"
-         id="path3238" />
-    </marker>
-    <linearGradient
-       x1="165.3"
-       y1="99.5"
-       x2="165.3"
-       y2="115.9"
-       id="XMLID_3457_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#999;stop-opacity:1"
-         offset="0"
-         id="stop8309" />
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0.30000001"
-         id="stop8311" />
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="1"
-         id="stop8313" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#999999" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#999999" />
-      <a:midPointstop
-         offset="0.3"
-         style="stop-color:#B2B2B2" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#B2B2B2" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#B2B2B2" />
-    </linearGradient>
-    <linearGradient
-       x1="165.3"
-       y1="99.5"
-       x2="165.3"
-       y2="115.9"
-       id="lg1997"
-       xlink:href="#XMLID_3457_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <linearGradient
-       x1="175"
-       y1="99.800003"
-       x2="175"
-       y2="112.5"
-       id="XMLID_3456_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#737373;stop-opacity:1"
-         offset="0"
-         id="stop8300" />
-      <stop
-         style="stop-color:#191919;stop-opacity:1"
-         offset="0.60000002"
-         id="stop8302" />
-      <stop
-         style="stop-color:#191919;stop-opacity:1"
-         offset="1"
-         id="stop8304" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#737373" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#737373" />
-      <a:midPointstop
-         offset="0.6"
-         style="stop-color:#191919" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#191919" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#191919" />
-    </linearGradient>
-    <linearGradient
-       x1="175"
-       y1="99.800003"
-       x2="175"
-       y2="112.5"
-       id="lg2000"
-       xlink:href="#XMLID_3456_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <linearGradient
-       x1="168.8"
-       y1="107.1"
-       x2="164.5"
-       y2="110"
-       id="XMLID_3455_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#666;stop-opacity:1"
-         offset="0"
-         id="stop8291" />
-      <stop
-         style="stop-color:#191919;stop-opacity:1"
-         offset="0.69999999"
-         id="stop8293" />
-      <stop
-         style="stop-color:#191919;stop-opacity:1"
-         offset="1"
-         id="stop8295" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#666666" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#666666" />
-      <a:midPointstop
-         offset="0.7"
-         style="stop-color:#191919" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#191919" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#191919" />
-    </linearGradient>
-    <linearGradient
-       x1="168.8"
-       y1="107.1"
-       x2="164.5"
-       y2="110"
-       id="lg2003"
-       xlink:href="#XMLID_3455_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <linearGradient
-       id="lg63694">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="stop63696" />
-      <stop
-         style="stop-color:white;stop-opacity:0"
-         offset="1"
-         id="stop63698" />
-    </linearGradient>
-    <linearGradient
-       x1="458"
-       y1="483"
-       x2="465.20001"
-       y2="271.39999"
-       id="lg2006"
-       xlink:href="#lg63694"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(6.3e-2,0,0,6.3e-2,-1.3,-9.8)" />
-    <linearGradient
-       x1="176.3"
-       y1="110.1"
-       x2="158.7"
-       y2="105"
-       id="XMLID_3453_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#666;stop-opacity:1"
-         offset="0"
-         id="stop8271" />
-      <stop
-         style="stop-color:#737373;stop-opacity:1"
-         offset="0.2"
-         id="stop8273" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="1"
-         id="stop8275" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#666666" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#666666" />
-      <a:midPointstop
-         offset="0.2"
-         style="stop-color:#737373" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#737373" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#FFFFFF" />
-    </linearGradient>
-    <linearGradient
-       x1="176.3"
-       y1="110.1"
-       x2="158.7"
-       y2="105"
-       id="lg2009"
-       xlink:href="#XMLID_3453_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <linearGradient
-       x1="173.60001"
-       y1="118.9"
-       x2="172.8"
-       y2="128.2"
-       id="XMLID_3449_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#ecb300;stop-opacity:1"
-         offset="0"
-         id="stop8232" />
-      <stop
-         style="stop-color:#fff95e;stop-opacity:1"
-         offset="0.60000002"
-         id="stop8234" />
-      <stop
-         style="stop-color:#ecd600;stop-opacity:1"
-         offset="1"
-         id="stop8236" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.6"
-         style="stop-color:#FFF95E" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFF95E" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#ECD600" />
-    </linearGradient>
-    <linearGradient
-       x1="173.60001"
-       y1="118.9"
-       x2="172.8"
-       y2="128.2"
-       id="lg2016"
-       xlink:href="#XMLID_3449_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <radialGradient
-       cx="284.60001"
-       cy="172.60001"
-       r="6.5"
-       fx="284.60001"
-       fy="172.60001"
-       id="XMLID_3448_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
-      <stop
-         style="stop-color:#ecb300;stop-opacity:1"
-         offset="0"
-         id="stop8219" />
-      <stop
-         style="stop-color:#ecb300;stop-opacity:1"
-         offset="0.30000001"
-         id="stop8221" />
-      <stop
-         style="stop-color:#c96b00;stop-opacity:1"
-         offset="0.89999998"
-         id="stop8223" />
-      <stop
-         style="stop-color:#9a5500;stop-opacity:1"
-         offset="1"
-         id="stop8225" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.3"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.9"
-         style="stop-color:#C96B00" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#C96B00" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#9A5500" />
-    </radialGradient>
-    <radialGradient
-       cx="284.60001"
-       cy="172.60001"
-       r="6.5"
-       fx="284.60001"
-       fy="172.60001"
-       id="rg2020"
-       xlink:href="#XMLID_3448_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.513992,0,0,2.347576,-689.1621,-378.5717)" />
-    <linearGradient
-       x1="158.10001"
-       y1="123"
-       x2="164.2"
-       y2="126.6"
-       id="XMLID_3447_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#ecd600;stop-opacity:1"
-         offset="0"
-         id="stop8204" />
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="0.30000001"
-         id="stop8206" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="1"
-         id="stop8208" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#ECD600" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#ECD600" />
-      <a:midPointstop
-         offset="0.3"
-         style="stop-color:#FFFFB3" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFFFB3" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#FFFFFF" />
-    </linearGradient>
-    <linearGradient
-       x1="158.10001"
-       y1="123"
-       x2="164.2"
-       y2="126.6"
-       id="lg2026"
-       xlink:href="#XMLID_3447_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <radialGradient
-       cx="280.89999"
-       cy="163.7"
-       r="10.1"
-       fx="280.89999"
-       fy="163.7"
-       id="XMLID_3446_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.4,0,0,1.4,-237.3,-126.8)">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="stop8197" />
-      <stop
-         style="stop-color:#fff95e;stop-opacity:1"
-         offset="1"
-         id="stop8199" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#FFFFFF" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFFFFF" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#FFF95E" />
-    </radialGradient>
-    <radialGradient
-       cx="280.89999"
-       cy="163.7"
-       r="10.1"
-       fx="280.89999"
-       fy="163.7"
-       id="rg2029"
-       xlink:href="#XMLID_3446_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.7,0,0,1.7,-457.5,-266.8)" />
-    <linearGradient
-       x1="156.5"
-       y1="122.7"
-       x2="180.10001"
-       y2="122.7"
-       id="XMLID_3445_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#ecb300;stop-opacity:1"
-         offset="0"
-         id="stop8184" />
-      <stop
-         style="stop-color:#ffe900;stop-opacity:1"
-         offset="0.2"
-         id="stop8186" />
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="0.30000001"
-         id="stop8188" />
-      <stop
-         style="stop-color:#ffe900;stop-opacity:1"
-         offset="0.40000001"
-         id="stop8190" />
-      <stop
-         style="stop-color:#d68100;stop-opacity:1"
-         offset="1"
-         id="stop8192" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.2"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="0.3"
-         style="stop-color:#FFFFB3" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFFFB3" />
-      <a:midPointstop
-         offset="0.4"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#D68100" />
-    </linearGradient>
-    <linearGradient
-       x1="156.5"
-       y1="122.7"
-       x2="180.10001"
-       y2="122.7"
-       id="lg2032"
-       xlink:href="#XMLID_3445_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <linearGradient
-       x1="156.39999"
-       y1="115.4"
-       x2="180.10001"
-       y2="115.4"
-       id="XMLID_3444_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#ecb300;stop-opacity:1"
-         offset="0"
-         id="stop8171" />
-      <stop
-         style="stop-color:#ffe900;stop-opacity:1"
-         offset="0.2"
-         id="stop8173" />
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="0.30000001"
-         id="stop8175" />
-      <stop
-         style="stop-color:#ffe900;stop-opacity:1"
-         offset="0.40000001"
-         id="stop8177" />
-      <stop
-         style="stop-color:#d68100;stop-opacity:1"
-         offset="1"
-         id="stop8179" />
-      <a:midPointstop
-         offset="0"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#ECB300" />
-      <a:midPointstop
-         offset="0.2"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="0.3"
-         style="stop-color:#FFFFB3" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFFFB3" />
-      <a:midPointstop
-         offset="0.4"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="0.5"
-         style="stop-color:#FFE900" />
-      <a:midPointstop
-         offset="1"
-         style="stop-color:#D68100" />
-    </linearGradient>
-    <linearGradient
-       x1="156.39999"
-       y1="115.4"
-       x2="180.10001"
-       y2="115.4"
-       id="lg2035"
-       xlink:href="#XMLID_3444_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.2,0,0,1.2,-175.9,-114.6)" />
-    <linearGradient
-       x1="379.70001"
-       y1="167.89999"
-       x2="383.89999"
-       y2="172.89999"
-       id="lg4286_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="s16159" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0.1"
-         id="s16161" />
-      <stop
-         style="stop-color:#737373;stop-opacity:1"
-         offset="1"
-         id="s16163" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.1" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#737373"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="379.60001"
-       y1="167.8"
-       x2="383.79999"
-       y2="172"
-       id="lg6416"
-       xlink:href="#lg4286_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.622156,0.623859,-0.623859,2.62182,-882.9706,-673.7921)" />
-    <linearGradient
-       x1="384.20001"
-       y1="169.8"
-       x2="384.79999"
-       y2="170.39999"
-       id="lg4285_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
-      <stop
-         style="stop-color:#737373;stop-opacity:1"
-         offset="0"
-         id="s16152" />
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="1"
-         id="s16154" />
-      <ns:midPointStop
-         style="stop-color:#737373"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#737373"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#D9D9D9"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="384.20001"
-       y1="169.8"
-       x2="384.79999"
-       y2="170.39999"
-       id="lg6453"
-       xlink:href="#lg4285_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
-    <linearGradient
-       x1="380.5"
-       y1="172.60001"
-       x2="382.79999"
-       y2="173.7"
-       id="lg4284_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.8,0.2,-0.2,0.8,78.8,38.1)">
-      <stop
-         style="stop-color:gray;stop-opacity:1"
-         offset="0"
-         id="s16145" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="1"
-         id="s16147" />
-      <ns:midPointStop
-         style="stop-color:#808080"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#808080"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#E5E5E5"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="380.5"
-       y1="172.60001"
-       x2="382.79999"
-       y2="173.7"
-       id="lg6456"
-       xlink:href="#lg4284_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.6,0.6,-0.6,2.6,-883,-673.8)" />
-    <radialGradient
-       cx="347.29999"
-       cy="244.5"
-       r="5.1999998"
-       fx="347.29999"
-       fy="244.5"
-       id="lg4282_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
-      <stop
-         style="stop-color:#333;stop-opacity:1"
-         offset="0"
-         id="s16135" />
-      <stop
-         style="stop-color:#999;stop-opacity:1"
-         offset="1"
-         id="s16137" />
-      <ns:midPointStop
-         style="stop-color:#333333"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#333333"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#999999"
-         offset="1" />
-    </radialGradient>
-    <linearGradient
-       x1="310.39999"
-       y1="397.70001"
-       x2="310.89999"
-       y2="399.5"
-       id="lg4280_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
-      <stop
-         style="stop-color:#ffcd00;stop-opacity:1"
-         offset="0"
-         id="s16111" />
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="0.60000002"
-         id="s16113" />
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="1"
-         id="s16115" />
-      <ns:midPointStop
-         style="stop-color:#FFCD00"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#FFCD00"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0.6" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="310.39999"
-       y1="397.70001"
-       x2="310.89999"
-       y2="399.5"
-       id="lg6467"
-       xlink:href="#lg4280_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
-    <linearGradient
-       x1="310.89999"
-       y1="395.79999"
-       x2="313.29999"
-       y2="403.10001"
-       id="lg4279_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="0"
-         id="s16100" />
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="0.40000001"
-         id="s16102" />
-      <stop
-         style="stop-color:#ffcd00;stop-opacity:1"
-         offset="0.89999998"
-         id="s16104" />
-      <stop
-         style="stop-color:#ffcd00;stop-opacity:1"
-         offset="1"
-         id="s16106" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0.4" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFCD00"
-         offset="0.9" />
-      <ns:midPointStop
-         style="stop-color:#FFCD00"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFCD00"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="310.89999"
-       y1="395.79999"
-       x2="313.29999"
-       y2="403.10001"
-       id="lg6465"
-       xlink:href="#lg4279_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
-    <linearGradient
-       x1="307.79999"
-       y1="395.20001"
-       x2="313.79999"
-       y2="413.60001"
-       id="lg4278_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.7,-0.7,0.7,0.7,-153.4,180.6)">
-      <stop
-         style="stop-color:#ffffb3;stop-opacity:1"
-         offset="0"
-         id="s16091" />
-      <stop
-         style="stop-color:#fcd72f;stop-opacity:1"
-         offset="0.40000001"
-         id="s16093" />
-      <stop
-         style="stop-color:#ffcd00;stop-opacity:1"
-         offset="1"
-         id="s16095" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#FFFFB3"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FCD72F"
-         offset="0.4" />
-      <ns:midPointStop
-         style="stop-color:#FCD72F"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFCD00"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="306.5"
-       y1="393"
-       x2="309"
-       y2="404"
-       id="lg6400"
-       xlink:href="#lg4278_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.4,-2.4,2.4,2.4,-1663.6,-195)" />
-    <linearGradient
-       x1="352.10001"
-       y1="253.60001"
-       x2="348.5"
-       y2="237.8"
-       id="lg4276_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
-      <stop
-         style="stop-color:#ffff87;stop-opacity:1"
-         offset="0"
-         id="s16077" />
-      <stop
-         style="stop-color:#ffad00;stop-opacity:1"
-         offset="1"
-         id="s16079" />
-      <ns:midPointStop
-         style="stop-color:#FFFF87"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#FFFF87"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFAD00"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="335.60001"
-       y1="354.79999"
-       x2="337.89999"
-       y2="354.79999"
-       id="lg4275_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="s16057" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0.80000001"
-         id="s16059" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="1"
-         id="s16061" />
-      <ns:midPointStop
-         style="stop-color:#D9D9D9"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#D9D9D9"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.8" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="335.60001"
-       y1="354.79999"
-       x2="337.89999"
-       y2="354.79999"
-       id="lg6463"
-       xlink:href="#lg4275_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
-    <linearGradient
-       x1="337.39999"
-       y1="353.10001"
-       x2="339.39999"
-       y2="357.10001"
-       id="lg4274_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="s16048" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0.1"
-         id="s16050" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="s16052" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.1" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#CCCCCC"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="337.39999"
-       y1="353.10001"
-       x2="339.39999"
-       y2="357.10001"
-       id="lg6461"
-       xlink:href="#lg4274_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
-    <linearGradient
-       x1="334.39999"
-       y1="355.5"
-       x2="335.5"
-       y2="356.79999"
-       id="lg4273_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9,-0.5,0.5,0.9,-121.7,105.1)">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="s16041" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="s16043" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="5.6e-003" />
-      <ns:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#CCCCCC"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="334.39999"
-       y1="355.5"
-       x2="335.5"
-       y2="356.79999"
-       id="lg6381"
-       xlink:href="#lg4273_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(2.9,-1.7,1.7,2.9,-1557,-448.7)" />
-    <linearGradient
-       x1="348.39999"
-       y1="247.39999"
-       x2="354.10001"
-       y2="242"
-       id="lg4271_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)">
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="0"
-         id="s16025" />
-      <stop
-         style="stop-color:#9e9e9e;stop-opacity:1"
-         offset="0.40000001"
-         id="s16027" />
-      <stop
-         style="stop-color:black;stop-opacity:1"
-         offset="1"
-         id="s16029" />
-      <ns:midPointStop
-         style="stop-color:#F2F2F2"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#F2F2F2"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#000000"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="351.29999"
-       y1="257.29999"
-       x2="346.29999"
-       y2="235.5"
-       id="lg4270_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#ffff87;stop-opacity:1"
-         offset="0"
-         id="s16007" />
-      <stop
-         style="stop-color:#ffad00;stop-opacity:1"
-         offset="1"
-         id="s16009" />
-      <ns:midPointStop
-         style="stop-color:#FFFF87"
-         offset="0" />
-      <ns:midPointStop
-         style="stop-color:#FFFF87"
-         offset="0.5" />
-      <ns:midPointStop
-         style="stop-color:#FFAD00"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="351.29999"
-       y1="257.29999"
-       x2="346.29999"
-       y2="235.5"
-       id="lg6459"
-       xlink:href="#lg4270_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(3.4,0,0,3.4,-1148,-802)" />
-    <linearGradient
-       x1="43.799999"
-       y1="32.5"
-       x2="63.299999"
-       y2="66.400002"
-       id="XMLID_2708_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="stop75318" />
-      <stop
-         style="stop-color:#fffcea;stop-opacity:1"
-         offset="1"
-         id="stop75320" />
-      <a:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#FFFCEA"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="43.799999"
-       y1="32.5"
-       x2="63.299999"
-       y2="66.400002"
-       id="lg1907"
-       xlink:href="#XMLID_2708_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-29,-22.6)" />
-    <linearGradient
-       x1="52.5"
-       y1="40.400002"
-       x2="58.200001"
-       y2="64"
-       id="XMLID_2707_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#ffdea0;stop-opacity:1"
-         offset="0"
-         id="stop75305" />
-      <stop
-         style="stop-color:#ffd89e;stop-opacity:1"
-         offset="0.30000001"
-         id="stop75307" />
-      <stop
-         style="stop-color:#ffd79e;stop-opacity:1"
-         offset="0.30000001"
-         id="stop75309" />
-      <stop
-         style="stop-color:#dbaf6d;stop-opacity:1"
-         offset="0.69999999"
-         id="stop75311" />
-      <stop
-         style="stop-color:#6f4c24;stop-opacity:1"
-         offset="1"
-         id="stop75313" />
-      <a:midPointStop
-         style="stop-color:#FFDEA0"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#FFDEA0"
-         offset="0.6" />
-      <a:midPointStop
-         style="stop-color:#FFD79E"
-         offset="0.3" />
-      <a:midPointStop
-         style="stop-color:#FFD79E"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#DBAF6D"
-         offset="0.7" />
-      <a:midPointStop
-         style="stop-color:#DBAF6D"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#6F4C24"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="52.5"
-       y1="40.400002"
-       x2="58.200001"
-       y2="64"
-       id="lg1910"
-       xlink:href="#XMLID_2707_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-29,-22.6)" />
-    <linearGradient
-       x1="58"
-       y1="73.199997"
-       x2="44.5"
-       y2="19"
-       id="XMLID_2704_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-29,-22.6)">
-      <stop
-         style="stop-color:#d4a96c;stop-opacity:1"
-         offset="0.5"
-         id="stop75284" />
-      <stop
-         style="stop-color:#dcb273;stop-opacity:1"
-         offset="0.60000002"
-         id="stop75286" />
-      <stop
-         style="stop-color:#f0ca87;stop-opacity:1"
-         offset="0.80000001"
-         id="stop75288" />
-      <stop
-         style="stop-color:#ffdc96;stop-opacity:1"
-         offset="0.69999999"
-         id="stop75290" />
-      <stop
-         style="stop-color:#c18a42;stop-opacity:1"
-         offset="1"
-         id="stop75292" />
-      <a:midPointStop
-         style="stop-color:#D4A96C"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#D4A96C"
-         offset="0.6" />
-      <a:midPointStop
-         style="stop-color:#FFDC96"
-         offset="0.7" />
-      <a:midPointStop
-         style="stop-color:#FFDC96"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#C18A42"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="53.700001"
-       y1="32"
-       x2="53.700001"
-       y2="64.599998"
-       id="XMLID_2703_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#e5c9b0;stop-opacity:1"
-         offset="0"
-         id="stop75268" />
-      <stop
-         style="stop-color:#e5c9b0;stop-opacity:1"
-         offset="0.40000001"
-         id="stop75270" />
-      <stop
-         style="stop-color:#c0aa94;stop-opacity:1"
-         offset="1"
-         id="stop75272" />
-      <a:midPointStop
-         style="stop-color:#E5C9B0"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#E5C9B0"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#E5C9B0"
-         offset="0.4" />
-      <a:midPointStop
-         style="stop-color:#E5C9B0"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#C0AA94"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="53.700001"
-       y1="32"
-       x2="53.700001"
-       y2="64.599998"
-       id="lg1916"
-       xlink:href="#XMLID_2703_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-29,-22.6)" />
-    <linearGradient
-       x1="224.31"
-       y1="19.450001"
-       x2="214.33"
-       y2="11.46"
-       id="XMLID_419_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#404040;stop-opacity:1"
-         offset="0"
-         id="s1903" />
-      <stop
-         style="stop-color:#6d6d6d;stop-opacity:1"
-         offset="0.33000001"
-         id="s1905" />
-      <stop
-         style="stop-color:#e9e9e9;stop-opacity:1"
-         offset="1"
-         id="s1907" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#404040" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#404040" />
-      <a:midPointStop
-         offset="0.33"
-         style="stop-color:#6D6D6D" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#6D6D6D" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#E9E9E9" />
-    </linearGradient>
-    <linearGradient
-       x1="221.84"
-       y1="32.779999"
-       x2="212.2"
-       y2="20.27"
-       id="lg1988"
-       xlink:href="#XMLID_419_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
-    <linearGradient
-       x1="228.35001"
-       y1="33.279999"
-       x2="215.42999"
-       y2="33.279999"
-       id="lg1900"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="s1902" />
-      <stop
-         style="stop-color:white;stop-opacity:0"
-         offset="1"
-         id="s1906" />
-      <a:midPointStop
-         style="stop-color:#575757"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#575757"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#6D6D6D"
-         offset="0.33" />
-      <a:midPointStop
-         style="stop-color:#6D6D6D"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#D3D3D3"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="234.81"
-       y1="33.279999"
-       x2="228.27"
-       y2="33.279999"
-       id="lg1908"
-       xlink:href="#lg1900"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
-    <linearGradient
-       x1="228.35001"
-       y1="33.279999"
-       x2="215.42999"
-       y2="33.279999"
-       id="XMLID_416_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#575757;stop-opacity:1"
-         offset="0"
-         id="s1874" />
-      <stop
-         style="stop-color:#6d6d6d;stop-opacity:1"
-         offset="0.33000001"
-         id="s1876" />
-      <stop
-         style="stop-color:#d3d3d3;stop-opacity:1"
-         offset="1"
-         id="s1878" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#575757" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#575757" />
-      <a:midPointStop
-         offset="0.33"
-         style="stop-color:#6D6D6D" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#6D6D6D" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#D3D3D3" />
-    </linearGradient>
-    <linearGradient
-       x1="228.35001"
-       y1="33.279999"
-       x2="215.42999"
-       y2="33.279999"
-       id="lg1991"
-       xlink:href="#XMLID_416_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.33,0,0,1.31,-274.2,-5.2)" />
-    <radialGradient
-       cx="603.19"
-       cy="230.77"
-       r="1.67"
-       fx="603.19"
-       fy="230.77"
-       id="x5010_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.1,0,0,1.1,-54.33,-75.4)">
-      <stop
-         style="stop-color:#c9ffc9;stop-opacity:1"
-         offset="0"
-         id="stop29201" />
-      <stop
-         style="stop-color:#23a11f;stop-opacity:1"
-         offset="1"
-         id="stop29203" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#C9FFC9" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#C9FFC9" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#23A11F" />
-    </radialGradient>
-    <radialGradient
-       cx="603.19"
-       cy="230.77"
-       r="1.67"
-       fx="603.19"
-       fy="230.77"
-       id="radialGradient5711"
-       xlink:href="#x5010_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.23,0,0,1.23,-709.93,-245.02)" />
-    <linearGradient
-       x1="592.31"
-       y1="162.60001"
-       x2="609.32001"
-       y2="145.59"
-       id="lg5722"
-       xlink:href="#x5003_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
-    <linearGradient
-       x1="601.48999"
-       y1="170.16"
-       x2="613.84003"
-       y2="170.16"
-       id="x5002_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="stop29134" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0.2"
-         id="stop29136" />
-      <stop
-         style="stop-color:#999;stop-opacity:1"
-         offset="1"
-         id="stop29138" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.20"
-         style="stop-color:#FFFFFF" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#FFFFFF" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#999999" />
-    </linearGradient>
-    <linearGradient
-       x1="601.48999"
-       y1="170.16"
-       x2="613.84003"
-       y2="170.16"
-       id="lg5725"
-       xlink:href="#x5002_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
-    <linearGradient
-       x1="592.20001"
-       y1="156.45"
-       x2="609.98999"
-       y2="174.23"
-       id="x5004_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="stop29157" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="1"
-         id="stop29159" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#FFFFFF" />
-    </linearGradient>
-    <linearGradient
-       x1="592.20001"
-       y1="156.45"
-       x2="609.98999"
-       y2="174.23"
-       id="lg5728"
-       xlink:href="#x5004_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
-    <linearGradient
-       x1="592.31"
-       y1="162.60001"
-       x2="609.32001"
-       y2="145.59"
-       id="x5003_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="0"
-         id="stop29143" />
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="1"
-         id="stop29145" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#F2F2F2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#F2F2F2" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#E5E5E5" />
-    </linearGradient>
-    <linearGradient
-       x1="592.31"
-       y1="162.60001"
-       x2="609.32001"
-       y2="145.59"
-       id="lg5732"
-       xlink:href="#x5003_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
-    <linearGradient
-       x1="592.20001"
-       y1="156.45"
-       x2="609.98999"
-       y2="174.24001"
-       id="x5000_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="stop29124" />
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="1"
-         id="stop29126" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#FFFFFF" />
-    </linearGradient>
-    <linearGradient
-       x1="592.20001"
-       y1="156.45"
-       x2="609.98999"
-       y2="174.24001"
-       id="lg5735"
-       xlink:href="#x5000_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.12,0,0,1.12,-649.08,-160.62)" />
-    <linearGradient
-       x1="308.54999"
-       y1="149.89999"
-       x2="299.72"
-       y2="148.83"
-       id="XMLID_2433_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#d6d6d6;stop-opacity:1"
-         offset="0"
-         id="71615" />
-      <stop
-         style="stop-color:#a5a5a5;stop-opacity:1"
-         offset="1"
-         id="71617" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#D6D6D6" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#D6D6D6" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#A5A5A5" />
-    </linearGradient>
-    <linearGradient
-       x1="308.54999"
-       y1="149.89999"
-       x2="299.72"
-       y2="148.83"
-       id="lg1952"
-       xlink:href="#XMLID_2433_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
-    <radialGradient
-       cx="307.39999"
-       cy="121"
-       r="23.35"
-       fx="307.39999"
-       fy="121"
-       id="XMLID_2432_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.98,0,0,0.98,2.88,2.75)">
-      <stop
-         style="stop-color:#d2d2d2;stop-opacity:1"
-         offset="0.19"
-         id="71592" />
-      <stop
-         style="stop-color:#cfcfcf;stop-opacity:1"
-         offset="0.44999999"
-         id="71594" />
-      <stop
-         style="stop-color:#c7c7c7;stop-opacity:1"
-         offset="0.60000002"
-         id="71596" />
-      <stop
-         style="stop-color:#b9b9b9;stop-opacity:1"
-         offset="0.74000001"
-         id="71598" />
-      <stop
-         style="stop-color:#a4a4a4;stop-opacity:1"
-         offset="0.86000001"
-         id="71600" />
-      <stop
-         style="stop-color:#8a8a8a;stop-opacity:1"
-         offset="0.95999998"
-         id="71602" />
-      <stop
-         style="stop-color:gray;stop-opacity:1"
-         offset="1"
-         id="71604" />
-      <a:midPointStop
-         offset="0.19"
-         style="stop-color:#D2D2D2" />
-      <a:midPointStop
-         offset="0.8"
-         style="stop-color:#D2D2D2" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#808080" />
-    </radialGradient>
-    <radialGradient
-       cx="307.39999"
-       cy="121"
-       r="23.35"
-       fx="307.39999"
-       fy="121"
-       id="radialGradient2331"
-       xlink:href="#XMLID_2432_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-276.62,-121.54)" />
-    <linearGradient
-       x1="294.13"
-       y1="127.07"
-       x2="294.13"
-       y2="142.2"
-       id="XMLID_2430_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#b5d8ff;stop-opacity:1"
-         offset="0"
-         id="71582" />
-      <stop
-         style="stop-color:black;stop-opacity:1"
-         offset="1"
-         id="71584" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#B5D8FF" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#B5D8FF" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#000000" />
-    </linearGradient>
-    <linearGradient
-       x1="294.13"
-       y1="127.07"
-       x2="294.13"
-       y2="142.2"
-       id="lg2820"
-       xlink:href="#XMLID_2430_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
-    <linearGradient
-       x1="279.10999"
-       y1="148.03"
-       x2="309.16"
-       y2="148.03"
-       id="XMLID_2429_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#e1e1e1;stop-opacity:1"
-         offset="0"
-         id="71564" />
-      <stop
-         style="stop-color:#e1e1e1;stop-opacity:1"
-         offset="0.25"
-         id="71566" />
-      <stop
-         style="stop-color:#a5a5a5;stop-opacity:1"
-         offset="0.44"
-         id="71568" />
-      <stop
-         style="stop-color:#a5a5a5;stop-opacity:1"
-         offset="1"
-         id="71570" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#E1E1E1" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E1E1E1" />
-      <a:midPointStop
-         offset="0.25"
-         style="stop-color:#E1E1E1" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E1E1E1" />
-      <a:midPointStop
-         offset="0.44"
-         style="stop-color:#A5A5A5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#A5A5A5" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#A5A5A5" />
-    </linearGradient>
-    <linearGradient
-       x1="279.10999"
-       y1="148.03"
-       x2="309.16"
-       y2="148.03"
-       id="lg2818"
-       xlink:href="#XMLID_2429_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.03,0,0,1.03,-279.57,-124.36)" />
-    <radialGradient
-       cx="622.34302"
-       cy="14.449"
-       r="26.496"
-       fx="622.34302"
-       fy="14.449"
-       id="lg3499_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.851,0,0,0.849,69.297,51.658)">
-      <stop
-         style="stop-color:#23468e;stop-opacity:1"
-         offset="0"
-         id="stop10972" />
-      <stop
-         style="stop-color:#012859;stop-opacity:1"
-         offset="1"
-         id="stop10974" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#23468E" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#23468E" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#012859" />
-    </radialGradient>
-    <radialGradient
-       cx="622.34302"
-       cy="14.449"
-       r="26.496"
-       fx="622.34302"
-       fy="14.449"
-       id="rg5791"
-       xlink:href="#lg3499_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.858,0,0,0.857,-511.7,9.02)" />
-    <linearGradient
-       x1="616.112"
-       y1="76.247002"
-       x2="588.14099"
-       y2="60.742001"
-       id="lg3497_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#01326e;stop-opacity:1"
-         offset="0"
-         id="stop10962" />
-      <stop
-         style="stop-color:#012859;stop-opacity:1"
-         offset="1"
-         id="stop10964" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#01326E" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#01326E" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#012859" />
-    </linearGradient>
-    <linearGradient
-       x1="617.698"
-       y1="82.445999"
-       x2="585.95203"
-       y2="54.848999"
-       id="lg3496_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0"
-         id="stop10950" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="stop10952" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#E5E5E5" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#CCCCCC" />
-    </linearGradient>
-    <linearGradient
-       x1="617.698"
-       y1="82.445999"
-       x2="585.95203"
-       y2="54.848999"
-       id="lg5794"
-       xlink:href="#lg3496_"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="601.39001"
-       y1="55.341"
-       x2="588.29199"
-       y2="71.515999"
-       id="lg3495_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="stop10941" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="0.52200001"
-         id="stop10943" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="stop10945" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.522"
-         style="stop-color:#F2F2F2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#F2F2F2" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#CCCCCC" />
-    </linearGradient>
-    <linearGradient
-       x1="601.39001"
-       y1="55.341"
-       x2="588.29199"
-       y2="71.515999"
-       id="lg5771"
-       xlink:href="#lg3495_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.009,0,0,1.009,-581.615,-43.098)" />
-    <linearGradient
-       x1="611.34601"
-       y1="55.279999"
-       x2="590.39001"
-       y2="81.157997"
-       id="lg3494_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="stop10932" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="0.52200001"
-         id="stop10934" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="stop10936" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#D9D9D9" />
-      <a:midPointStop
-         offset="0.522"
-         style="stop-color:#F2F2F2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#F2F2F2" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#CCCCCC" />
-    </linearGradient>
-    <linearGradient
-       x1="611.34601"
-       y1="55.279999"
-       x2="590.39001"
-       y2="81.157997"
-       id="lg5774"
-       xlink:href="#lg3494_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.009,0,0,1.009,-581.616,-43.098)" />
-    <linearGradient
-       x1="798.72998"
-       y1="69.839996"
-       x2="799.04999"
-       y2="70.709999"
-       id="g3302_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#005e00;stop-opacity:1"
-         offset="0"
-         id="s6504" />
-      <stop
-         style="stop-color:#23a11f;stop-opacity:1"
-         offset="1"
-         id="s6506" />
-      <a:midPointstop
-         style="stop-color:#005E00"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#005E00"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#23A11F"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="798.72998"
-       y1="69.839996"
-       x2="799.04999"
-       y2="70.709999"
-       id="lg5851"
-       xlink:href="#g3302_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
-    <linearGradient
-       x1="779.19"
-       y1="122.73"
-       x2="811.69"
-       y2="149.74001"
-       id="g3301_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="0"
-         id="s6483" />
-      <stop
-         style="stop-color:#eee;stop-opacity:1"
-         offset="0.17"
-         id="s6485" />
-      <stop
-         style="stop-color:#e3e3e3;stop-opacity:1"
-         offset="0.34"
-         id="s6487" />
-      <stop
-         style="stop-color:#cfcfcf;stop-opacity:1"
-         offset="0.50999999"
-         id="s6489" />
-      <stop
-         style="stop-color:#b4b4b4;stop-opacity:1"
-         offset="0.67000002"
-         id="s6491" />
-      <stop
-         style="stop-color:#919191;stop-opacity:1"
-         offset="0.83999997"
-         id="s6493" />
-      <stop
-         style="stop-color:#666;stop-opacity:1"
-         offset="1"
-         id="s6495" />
-      <a:midPointstop
-         style="stop-color:#F2F2F2"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#F2F2F2"
-         offset="0.71" />
-      <a:midPointstop
-         style="stop-color:#666666"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="779.19"
-       y1="122.73"
-       x2="811.69"
-       y2="149.74001"
-       id="lg5855"
-       xlink:href="#g3301_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,103.123)" />
-    <clipPath
-       id="g3299_">
-      <use
-         id="use6469"
-         x="0"
-         y="0"
-         width="1005.92"
-         height="376.97"
-         xlink:href="#g101_" />
-    </clipPath>
-    <radialGradient
-       cx="1189.9301"
-       cy="100.05"
-       r="40.400002"
-       fx="1189.9301"
-       fy="100.05"
-       id="g3300_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.34,-8.46e-2,0,0.34,394.16,137.13)">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="s6472" />
-      <stop
-         style="stop-color:white;stop-opacity:0"
-         offset="1"
-         id="s6474" />
-      <a:midPointstop
-         style="stop-color:#FFFFFF"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#000000"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="1199.74"
-       cy="97.150002"
-       r="40.400002"
-       fx="1199.74"
-       fy="97.150002"
-       id="rg5860"
-       xlink:href="#g3300_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.409,-0.107,0,0.429,-451.489,113.149)" />
-    <linearGradient
-       x1="796.38"
-       y1="67.580002"
-       x2="781.28003"
-       y2="58.549999"
-       id="g3298_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#4c8bca;stop-opacity:1"
-         offset="0"
-         id="s6462" />
-      <stop
-         style="stop-color:#b7e9ff;stop-opacity:1"
-         offset="1"
-         id="s6464" />
-      <a:midPointstop
-         style="stop-color:#4C8BCA"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#4C8BCA"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#B7E9FF"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="800.97998"
-       y1="140.72"
-       x2="777.71997"
-       y2="121.76"
-       id="g3297_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,-0.25,0,1,0,129.19)">
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0"
-         id="s6448" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="s6450" />
-      <a:midPointstop
-         style="stop-color:#E5E5E5"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#E5E5E5"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#CCCCCC"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="800.97998"
-       y1="140.72"
-       x2="777.71997"
-       y2="121.76"
-       id="lg5890"
-       xlink:href="#g3297_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,-0.25,0,1,0,129.19)" />
-    <linearGradient
-       x1="790.03998"
-       y1="-16.33"
-       x2="779.84003"
-       y2="-3.73"
-       id="g3296_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(0,70.17)">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="s6439" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="0.51999998"
-         id="s6441" />
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="1"
-         id="s6443" />
-      <a:midPointstop
-         style="stop-color:#D9D9D9"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#D9D9D9"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#F2F2F2"
-         offset="0.52" />
-      <a:midPointstop
-         style="stop-color:#F2F2F2"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#CCCCCC"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="790.03998"
-       y1="-16.33"
-       x2="779.84003"
-       y2="-3.73"
-       id="lg5866"
-       xlink:href="#g3296_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.204,0,0,1.263,-926.036,28.6)" />
-    <linearGradient
-       x1="785.84003"
-       y1="72.989998"
-       x2="785.26001"
-       y2="76.279999"
-       id="g3293_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="s6412" />
-      <stop
-         style="stop-color:#737373;stop-opacity:1"
-         offset="1"
-         id="s6414" />
-      <a:midPointstop
-         style="stop-color:#FFFFFF"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#737373"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="785.84003"
-       y1="72.989998"
-       x2="785.26001"
-       y2="76.279999"
-       id="lg5871"
-       xlink:href="#g3293_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
-    <linearGradient
-       x1="789.37"
-       y1="69.879997"
-       x2="791.03998"
-       y2="77.120003"
-       id="g3292_"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#999;stop-opacity:1"
-         offset="0"
-         id="s6403" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="0.28"
-         id="s6405" />
-      <stop
-         style="stop-color:#666;stop-opacity:1"
-         offset="1"
-         id="s6407" />
-      <a:midPointstop
-         style="stop-color:#999999"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#999999"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#F2F2F2"
-         offset="0.28" />
-      <a:midPointstop
-         style="stop-color:#F2F2F2"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#666666"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="789.37"
-       y1="69.879997"
-       x2="791.03998"
-       y2="77.120003"
-       id="lg5874"
-       xlink:href="#g3292_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.204,0,0,1.263,-926.036,-60.001)" />
-    <linearGradient
-       x1="786.65997"
-       y1="136.12"
-       x2="786.71002"
-       y2="134.33"
-       id="g3290_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1,-0.25,0,1,0,137.29)">
-      <stop
-         style="stop-color:#d9d9d9;stop-opacity:1"
-         offset="0"
-         id="s6380" />
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="1"
-         id="s6382" />
-      <a:midPointstop
-         style="stop-color:#D9D9D9"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#D9D9D9"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#B2B2B2"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="786.65997"
-       y1="136.12"
-       x2="786.71002"
-       y2="134.33"
-       id="lg5878"
-       xlink:href="#g3290_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(1.204,-0.316,0,1.263,-926.036,113.351)" />
-    <radialGradient
-       cx="1458.77"
-       cy="-5.0999999"
-       r="35.130001"
-       fx="1458.77"
-       fy="-5.0999999"
-       id="g3289_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
-      <stop
-         style="stop-color:white;stop-opacity:1"
-         offset="0"
-         id="s6371" />
-      <stop
-         style="stop-color:#999;stop-opacity:1"
-         offset="1"
-         id="s6373" />
-      <a:midPointstop
-         style="stop-color:#FFFFFF"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#FFFFFF"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#999999"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="1458.77"
-       cy="-5.0999999"
-       r="35.130001"
-       fx="1458.77"
-       fy="-5.0999999"
-       id="rg5881"
-       xlink:href="#g3289_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
-    <radialGradient
-       cx="1612.98"
-       cy="-4.4699998"
-       r="36.580002"
-       fx="1612.98"
-       fy="-4.4699998"
-       id="g3288_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.34,0,0,0.36,238.56,86.87)">
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0"
-         id="s6362" />
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0.63999999"
-         id="s6364" />
-      <stop
-         style="stop-color:#737373;stop-opacity:1"
-         offset="1"
-         id="s6366" />
-      <a:midPointstop
-         style="stop-color:#E5E5E5"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#E5E5E5"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#B2B2B2"
-         offset="0.64" />
-      <a:midPointstop
-         style="stop-color:#B2B2B2"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#737373"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="1612.98"
-       cy="-4.4699998"
-       r="36.580002"
-       fx="1612.98"
-       fy="-4.4699998"
-       id="rg5884"
-       xlink:href="#g3288_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.408,0,0,0.448,-638.943,49.495)" />
-    <radialGradient
-       cx="1470.5"
-       cy="-10.21"
-       r="33.290001"
-       fx="1470.5"
-       fy="-10.21"
-       id="g3287_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.42,0,0,0.42,167.09,79.84)">
-      <stop
-         style="stop-color:#e5e5e5;stop-opacity:1"
-         offset="0"
-         id="s6347" />
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0.38999999"
-         id="s6349" />
-      <stop
-         style="stop-color:#b1b1b1;stop-opacity:1"
-         offset="0.75"
-         id="s6351" />
-      <stop
-         style="stop-color:#aaa;stop-opacity:1"
-         offset="0.88"
-         id="s6353" />
-      <stop
-         style="stop-color:#9e9e9e;stop-opacity:1"
-         offset="0.97000003"
-         id="s6355" />
-      <stop
-         style="stop-color:#999;stop-opacity:1"
-         offset="1"
-         id="s6357" />
-      <a:midPointstop
-         style="stop-color:#E5E5E5"
-         offset="0" />
-      <a:midPointstop
-         style="stop-color:#E5E5E5"
-         offset="0.5" />
-      <a:midPointstop
-         style="stop-color:#B2B2B2"
-         offset="0.39" />
-      <a:midPointstop
-         style="stop-color:#B2B2B2"
-         offset="0.87" />
-      <a:midPointstop
-         style="stop-color:#999999"
-         offset="1" />
-    </radialGradient>
-    <radialGradient
-       cx="1470.5"
-       cy="-10.21"
-       r="33.290001"
-       fx="1470.5"
-       fy="-10.21"
-       id="rg5887"
-       xlink:href="#g3287_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.505,0,0,0.53,-724.957,40.636)" />
-    <pattern
-       patternTransform="matrix(0.592927,0,0,0.592927,78,462)"
-       id="cream-spots"
-       height="32"
-       width="32"
-       patternUnits="userSpaceOnUse">
-      <g
-         transform="translate(-365.3146,-513.505)"
-         id="g3047">
-           id=&quot;path2858&quot; /&gt;
-        <path
-   inkscape:label="#path2854"
-   sodipodi:nodetypes="czzzz"
-   style="fill:#e3dcc0"
-   id="path3060"
-   d="M 390.31462,529.50504 C 390.31462,534.47304 386.28262,538.50504 381.31462,538.50504 C 376.34662,538.50504 372.31462,534.47304 372.31462,529.50504 C 372.31462,524.53704 376.34662,520.50504 381.31462,520.50504 C 386.28262,520.50504 390.31462,524.53704 390.31462,529.50504 z " />
-</g>
-    </pattern>
-    <pattern
-       patternTransform="matrix(0.733751,0,0,0.733751,67,367)"
-       id="dark-cream-spots"
-       height="32"
-       width="32"
-       patternUnits="userSpaceOnUse">
-      <g
-         transform="translate(-408.0946,-513.505)"
-         id="dark-cream-spot"
-         inkscape:label="#g3043">
-        <path
-           sodipodi:nodetypes="czzzz"
-           style="fill:#c8c5ac"
-           d="M 433.09458,529.50504 C 433.09458,534.47304 429.06258,538.50504 424.09458,538.50504 C 419.12658,538.50504 415.09458,534.47304 415.09458,529.50504 C 415.09458,524.53704 419.12658,520.50504 424.09458,520.50504 C 429.06258,520.50504 433.09458,524.53704 433.09458,529.50504 z "
-           id="path2953" />
-      </g>
-    </pattern>
-    <pattern
-       patternTransform="matrix(0.375,0,0,0.375,379,400)"
-       id="white-spots"
-       height="32"
-       width="32"
-       patternUnits="userSpaceOnUse">
-      <g
-         transform="translate(-484.3997,-513.505)"
-         id="white-spot"
-         inkscape:label="#g3035">
-        <path
-           style="opacity:0.25;fill:white"
-           id="path3033"
-           d="M 509.39967,529.50504 C 509.39967,534.47304 505.36767,538.50504 500.39967,538.50504 C 495.43167,538.50504 491.39967,534.47304 491.39967,529.50504 C 491.39967,524.53704 495.43167,520.50504 500.39967,520.50504 C 505.36767,520.50504 509.39967,524.53704 509.39967,529.50504 z "
-           sodipodi:nodetypes="czzzz" />
-      </g>
-    </pattern>
-    <pattern
-       patternTransform="matrix(0.455007,0,0,0.455007,-5e-5,1.9e-5)"
-       id="black-spots"
-       height="32"
-       width="32"
-       patternUnits="userSpaceOnUse">
-      <g
-         transform="translate(-448.3997,-513.505)"
-         id="black-spot"
-         inkscape:label="#g3039">
-        <path
-           sodipodi:nodetypes="czzzz"
-           d="M 473.39967,529.50504 C 473.39967,534.47304 469.36767,538.50504 464.39967,538.50504 C 459.43167,538.50504 455.39967,534.47304 455.39967,529.50504 C 455.39967,524.53704 459.43167,520.50504 464.39967,520.50504 C 469.36767,520.50504 473.39967,524.53704 473.39967,529.50504 z "
-           id="path2961"
-           style="opacity:0.25;fill:black" />
-      </g>
-    </pattern>
-    <linearGradient
-       x1="501.0903"
-       y1="-19.2544"
-       x2="531.85413"
-       y2="0.72390002"
-       id="linearGradient17334"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0"
-         id="stop17336" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0.51120001"
-         id="stop17338" />
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0.64609998"
-         id="stop17340" />
-      <stop
-         style="stop-color:#16336e;stop-opacity:1"
-         offset="1"
-         id="stop17342" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#B4DAEA" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#B4DAEA" />
-      <a:midPointStop
-         offset="0.5112"
-         style="stop-color:#B4DAEA" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#B4DAEA" />
-      <a:midPointStop
-         offset="0.6461"
-         style="stop-color:#5387BA" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#5387BA" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#16336E" />
-    </linearGradient>
-    <linearGradient
-       x1="415.73831"
-       y1="11.854"
-       x2="418.13361"
-       y2="18.8104"
-       id="linearGradient17426"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.8362,0.5206,-1.1904,0.992,147.62,-30.9374)">
-      <stop
-         style="stop-color:#ccc;stop-opacity:1"
-         offset="0"
-         id="stop17428" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="1"
-         id="stop17430" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#CCCCCC" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#CCCCCC" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#F2F2F2" />
-    </linearGradient>
-    <linearGradient
-       x1="478.21341"
-       y1="-131.9297"
-       x2="469.85818"
-       y2="-140.28481"
-       id="linearGradient17434"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.5592,0.829,-0.829,0.5592,101.3357,-104.791)">
-      <stop
-         style="stop-color:#f3403f;stop-opacity:1"
-         offset="0"
-         id="stop17436" />
-      <stop
-         style="stop-color:#d02a28;stop-opacity:1"
-         offset="0.37889999"
-         id="stop17438" />
-      <stop
-         style="stop-color:#b21714;stop-opacity:1"
-         offset="0.77649999"
-         id="stop17440" />
-      <stop
-         style="stop-color:#a6100c;stop-opacity:1"
-         offset="1"
-         id="stop17442" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#F3403F" />
-      <a:midPointStop
-         offset="0.4213"
-         style="stop-color:#F3403F" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#A6100C" />
-    </linearGradient>
-    <linearGradient
-       x1="502.70749"
-       y1="115.3013"
-       x2="516.39001"
-       y2="127.1953"
-       id="linearGradient17709"
-       xlink:href="#XMLID_1749_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
-    <linearGradient
-       x1="506.09909"
-       y1="-11.5137"
-       x2="527.99609"
-       y2="2.7063999"
-       id="linearGradient17711"
-       xlink:href="#XMLID_1752_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <linearGradient
-       x1="516.57672"
-       y1="-15.769"
-       x2="516.57672"
-       y2="0.84280002"
-       id="linearGradient17713"
-       xlink:href="#XMLID_1753_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <linearGradient
-       x1="505.62939"
-       y1="-14.9526"
-       x2="527.49402"
-       y2="-0.7536"
-       id="linearGradient17715"
-       xlink:href="#XMLID_1756_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <linearGradient
-       x1="500.70749"
-       y1="-13.2441"
-       x2="513.46442"
-       y2="-2.1547"
-       id="linearGradient17717"
-       xlink:href="#XMLID_1757_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <linearGradient
-       x1="473.7681"
-       y1="209.17529"
-       x2="486.98099"
-       y2="213.2001"
-       id="linearGradient17721"
-       xlink:href="#XMLID_2274_"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="481.23969"
-       y1="212.5742"
-       x2="472.92981"
-       y2="207.4967"
-       id="linearGradient17723"
-       xlink:href="#XMLID_2275_"
-       gradientUnits="userSpaceOnUse" />
-    <linearGradient
-       x1="500.70749"
-       y1="-13.2441"
-       x2="513.46442"
-       y2="-2.1547"
-       id="linearGradient17416"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0"
-         id="stop17418" />
-      <stop
-         style="stop-color:#96bad6;stop-opacity:1"
-         offset="1"
-         id="stop17420" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#96BAD6"
-         offset="1" />
-    </linearGradient>
-    <defs
-       id="defs9929">
-      <path
-         d="M 489.21,209.35 L 485.35,203.63 C 483.63,204.25 473.47,208.93 471.5,210.18 C 470.57,210.77 470.17,211.16 469.72,212.48 C 470.93,212.31 471.72,212.49 473.42,213.04 C 473.26,214.77 473.24,215.74 473.57,218.2 C 474.01,216.88 474.41,216.49 475.34,215.9 C 477.33,214.65 487.49,209.97 489.21,209.35 z "
-         id="XMLID_960_" />
-    </defs>
-    <clipPath
-       id="clipPath17448">
-      <use
-         id="use17450"
-         x="0"
-         y="0"
-         width="744.09448"
-         height="600"
-         xlink:href="#XMLID_960_" />
-    </clipPath>
-    <linearGradient
-       x1="473.7681"
-       y1="209.17529"
-       x2="486.98099"
-       y2="213.2001"
-       id="linearGradient17452"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#f3403f;stop-opacity:1"
-         offset="0"
-         id="stop17454" />
-      <stop
-         style="stop-color:#d02a28;stop-opacity:1"
-         offset="0.37889999"
-         id="stop17456" />
-      <stop
-         style="stop-color:#b21714;stop-opacity:1"
-         offset="0.77649999"
-         id="stop17458" />
-      <stop
-         style="stop-color:#a6100c;stop-opacity:1"
-         offset="1"
-         id="stop17460" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0.4213" />
-      <a:midPointStop
-         style="stop-color:#A6100C"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="481.23969"
-       y1="212.5742"
-       x2="472.92981"
-       y2="207.4967"
-       id="linearGradient17463"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#f3403f;stop-opacity:1"
-         offset="0"
-         id="stop17465" />
-      <stop
-         style="stop-color:#d02a28;stop-opacity:1"
-         offset="0.37889999"
-         id="stop17467" />
-      <stop
-         style="stop-color:#b21714;stop-opacity:1"
-         offset="0.77649999"
-         id="stop17469" />
-      <stop
-         style="stop-color:#a6100c;stop-opacity:1"
-         offset="1"
-         id="stop17471" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#F3403F"
-         offset="0.4213" />
-      <a:midPointStop
-         style="stop-color:#A6100C"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="481.23969"
-       y1="212.5742"
-       x2="472.92981"
-       y2="207.4967"
-       id="linearGradient17807"
-       xlink:href="#XMLID_2275_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-177.1654,35.43307)" />
-    <linearGradient
-       x1="473.7681"
-       y1="209.17529"
-       x2="486.98099"
-       y2="213.2001"
-       id="linearGradient17810"
-       xlink:href="#XMLID_2274_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="translate(-177.1654,35.43307)" />
-    <linearGradient
-       x1="502.70749"
-       y1="115.3013"
-       x2="516.39001"
-       y2="127.1953"
-       id="linearGradient17812"
-       xlink:href="#XMLID_1749_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)" />
-    <linearGradient
-       x1="506.09909"
-       y1="-11.5137"
-       x2="527.99609"
-       y2="2.7063999"
-       id="linearGradient17814"
-       xlink:href="#XMLID_1752_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <linearGradient
-       x1="516.57672"
-       y1="-15.769"
-       x2="516.57672"
-       y2="0.84280002"
-       id="linearGradient17816"
-       xlink:href="#XMLID_1753_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <linearGradient
-       x1="505.62939"
-       y1="-14.9526"
-       x2="527.49402"
-       y2="-0.7536"
-       id="linearGradient17818"
-       xlink:href="#XMLID_1756_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <linearGradient
-       x1="502.70749"
-       y1="115.3013"
-       x2="516.39001"
-       y2="127.1953"
-       id="linearGradient17347"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,11.0227,-35.6159)">
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0"
-         id="stop17349" />
-      <stop
-         style="stop-color:#96bad6;stop-opacity:1"
-         offset="1"
-         id="stop17351" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#5387BA" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#5387BA" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#96BAD6" />
-    </linearGradient>
-    <linearGradient
-       x1="516.57672"
-       y1="-15.769"
-       x2="516.57672"
-       y2="0.84280002"
-       id="linearGradient17379"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b2b2b2;stop-opacity:1"
-         offset="0"
-         id="stop17381" />
-      <stop
-         style="stop-color:#f2f2f2;stop-opacity:1"
-         offset="1"
-         id="stop17383" />
-      <a:midPointStop
-         offset="0"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="0.5"
-         style="stop-color:#B2B2B2" />
-      <a:midPointStop
-         offset="1"
-         style="stop-color:#F2F2F2" />
-    </linearGradient>
-    <linearGradient
-       x1="502.70749"
-       y1="115.3013"
-       x2="516.39001"
-       y2="127.1953"
-       id="linearGradient17862"
-       xlink:href="#XMLID_1749_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.9703,0.2419,-0.2419,0.9703,-166.1427,-0.18283)" />
-    <linearGradient
-       x1="505.62939"
-       y1="-14.9526"
-       x2="527.49402"
-       y2="-0.7536"
-       id="linearGradient17864"
-       xlink:href="#XMLID_1756_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <defs
-       id="defs3859">
-      <polygon
-         points="465.54,213.52 481.94,217.46 482.74,216.71 487.46,198.05 471.08,194.07 470.26,194.83 465.54,213.52 "
-         id="XMLID_343_" />
-    </defs>
-    <linearGradient
-       x1="471.0806"
-       y1="201.07761"
-       x2="481.91711"
-       y2="210.4977"
-       id="linearGradient17389"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#6498c1;stop-opacity:1"
-         offset="0.005618"
-         id="stop17391" />
-      <stop
-         style="stop-color:#79a9cc;stop-opacity:1"
-         offset="0.2332"
-         id="stop17393" />
-      <stop
-         style="stop-color:#a4cde2;stop-opacity:1"
-         offset="0.74049997"
-         id="stop17395" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="1"
-         id="stop17397" />
-      <a:midPointStop
-         style="stop-color:#6498C1"
-         offset="5.618000e-003" />
-      <a:midPointStop
-         style="stop-color:#6498C1"
-         offset="0.4438" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="1" />
-    </linearGradient>
-    <clipPath
-       id="clipPath17400">
-      <use
-         id="use17402"
-         x="0"
-         y="0"
-         width="744.09448"
-         height="600"
-         xlink:href="#XMLID_343_" />
-    </clipPath>
-    <linearGradient
-       x1="505.62939"
-       y1="-14.9526"
-       x2="527.49402"
-       y2="-0.7536"
-       id="linearGradient17404"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0"
-         id="stop17406" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0.51120001"
-         id="stop17408" />
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0.64609998"
-         id="stop17410" />
-      <stop
-         style="stop-color:#16336e;stop-opacity:1"
-         offset="1"
-         id="stop17412" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5112" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.6461" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#16336E"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="506.09909"
-       y1="-11.5137"
-       x2="527.99609"
-       y2="2.7063999"
-       id="linearGradient17882"
-       xlink:href="#XMLID_1752_"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)" />
-    <defs
-       id="defs3826">
-      <polygon
-         points="463.52,216.14 480.56,220.24 481.36,219.5 483.03,202.04 469.05,196.69 468.24,197.45 463.52,216.14 "
-         id="XMLID_338_" />
-    </defs>
-    <linearGradient
-       x1="468.2915"
-       y1="204.7612"
-       x2="479.39871"
-       y2="214.4166"
-       id="linearGradient17357"
-       gradientUnits="userSpaceOnUse">
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0"
-         id="stop17359" />
-      <stop
-         style="stop-color:#96bad6;stop-opacity:1"
-         offset="1"
-         id="stop17361" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#96BAD6"
-         offset="1" />
-    </linearGradient>
-    <clipPath
-       id="clipPath17364">
-      <use
-         id="use17366"
-         x="0"
-         y="0"
-         width="744.09448"
-         height="600"
-         xlink:href="#XMLID_338_" />
-    </clipPath>
-    <linearGradient
-       x1="506.09909"
-       y1="-11.5137"
-       x2="527.99609"
-       y2="2.7063999"
-       id="linearGradient17368"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.6868,0.4269,-0.9821,0.821,111.6149,-5.7901)">
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0"
-         id="stop17370" />
-      <stop
-         style="stop-color:#b4daea;stop-opacity:1"
-         offset="0.51120001"
-         id="stop17372" />
-      <stop
-         style="stop-color:#5387ba;stop-opacity:1"
-         offset="0.64609998"
-         id="stop17374" />
-      <stop
-         style="stop-color:#16336e;stop-opacity:1"
-         offset="1"
-         id="stop17376" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5112" />
-      <a:midPointStop
-         style="stop-color:#B4DAEA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.6461" />
-      <a:midPointStop
-         style="stop-color:#5387BA"
-         offset="0.5" />
-      <a:midPointStop
-         style="stop-color:#16336E"
-         offset="1" />
-    </linearGradient>
-    <linearGradient
-       x1="296.4996"
-       y1="188.81061"
-       x2="317.32471"
-       y2="209.69398"
-       id="linearGradient2387"
-       xlink:href="#linearGradient2381"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
-    <linearGradient
-       x1="296.4996"
-       y1="188.81061"
-       x2="317.32471"
-       y2="209.69398"
-       id="linearGradient5105"
-       xlink:href="#linearGradient2381"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
-    <linearGradient
-       x1="296.4996"
-       y1="188.81061"
-       x2="317.32471"
-       y2="209.69398"
-       id="linearGradient5145"
-       xlink:href="#linearGradient2381"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)" />
-    <linearGradient
-       inkscape:collect="always"
-       xlink:href="#linearGradient2381"
-       id="linearGradient2371"
-       gradientUnits="userSpaceOnUse"
-       gradientTransform="matrix(0.90776,0,0,0.90776,24.35648,49.24131)"
-       x1="296.4996"
-       y1="188.81061"
-       x2="317.32471"
-       y2="209.69398" />
-  </defs>
-  <g
-     transform="matrix(0.437808,-0.437808,0.437808,0.437808,-220.8237,43.55311)"
-     id="g5089">
-    <path
-       d="M 8.4382985,-6.28125 C 7.8309069,-6.28125 4.125,-0.33238729 4.125,1.96875 L 4.125,28.6875 C 4.125,29.533884 4.7068159,29.8125 5.28125,29.8125 L 30.84375,29.8125 C 31.476092,29.8125 31.968751,29.319842 31.96875,28.6875 L 31.96875,23.46875 L 32.25,23.46875 C 32.74684,23.46875 33.156249,23.059339 33.15625,22.5625 L 33.15625,-5.375 C 33.15625,-5.8718398 32.74684,-6.28125 32.25,-6.28125 L 8.4382985,-6.28125 z "
-       transform="translate(282.8327,227.1903)"
-       style="fill:#5c5c4f;stroke:black;stroke-width:3.23021388;stroke-miterlimit:4;stroke-dasharray:none"
-       id="path5091" />
-    <rect
-       width="27.85074"
-       height="29.369793"
-       rx="1.1414107"
-       ry="1.1414107"
-       x="286.96509"
-       y="227.63805"
-       style="fill:#032c87"
-       id="rect5093" />
-    <path
-       d="M 288.43262,225.43675 L 313.67442,225.43675 L 313.67442,254.80655 L 287.29827,254.83069 L 288.43262,225.43675 z "
-       style="fill:white"
-       id="rect5095" />
-    <path
-       d="M 302.44536,251.73726 C 303.83227,259.59643 301.75225,263.02091 301.75225,263.02091 C 303.99609,261.41329 305.71651,259.54397 306.65747,257.28491 C 307.62455,259.47755 308.49041,261.71357 310.9319,263.27432 C 310.9319,263.27432 309.33686,256.07392 309.22047,251.73726 L 302.44536,251.73726 z "
-       style="fill:#a70000;fill-opacity:1;stroke-width:2"
-       id="path5097" />
-    <rect
-       width="25.241802"
-       height="29.736675"
-       rx="0.89682275"
-       ry="0.89682275"
-       x="290.73544"
-       y="220.92249"
-       style="fill:#809cc9"
-       id="rect5099" />
-    <path
-       d="M 576.47347,725.93939 L 582.84431,726.35441 L 583.25121,755.8725 C 581.35919,754.55465 576.39694,752.1117 574.98889,754.19149 L 574.98889,727.42397 C 574.98889,726.60151 575.65101,725.93939 576.47347,725.93939 z "
-       transform="matrix(0.499065,-0.866565,0,1,0,0)"
-       style="fill:#4573b3;fill-opacity:1"
-       id="rect5101" />
-    <path
-       d="M 293.2599,221.89363 L 313.99908,221.89363 C 314.45009,221.89363 314.81318,222.25673 314.81318,222.70774 C 315.02865,229.0361 295.44494,244.47124 292.44579,240.30491 L 292.44579,222.70774 C 292.44579,222.25673 292.80889,221.89363 293.2599,221.89363 z "
-       style="opacity:0.65536726;fill:url(#linearGradient2371);fill-opacity:1"
-       id="path5103" />
-  </g>
-</svg>

Added: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/interposition.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosstm/trunk/docs/txbridge_guide/en-US/images/interposition.gif
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream



More information about the jboss-svn-commits mailing list