diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/OpenSim.Region/Caps.cs | 18 | ||||
-rw-r--r-- | OpenSim/OpenSim.Region/OpenSim.Region.csproj | 58 | ||||
-rw-r--r-- | OpenSim/OpenSim.Region/OpenSim.Region.dll.build | 1 | ||||
-rw-r--r-- | OpenSim/OpenSim.Region/Scenes/Scene.cs | 12 |
4 files changed, 47 insertions, 42 deletions
diff --git a/OpenSim/OpenSim.Region/Caps.cs b/OpenSim/OpenSim.Region/Caps.cs index f3ee628..c86061f 100644 --- a/OpenSim/OpenSim.Region/Caps.cs +++ b/OpenSim/OpenSim.Region/Caps.cs | |||
@@ -10,16 +10,19 @@ namespace OpenSim.Region | |||
10 | { | 10 | { |
11 | private string httpListenerAddress; | 11 | private string httpListenerAddress; |
12 | private uint httpListenPort; | 12 | private uint httpListenPort; |
13 | private string MainPath = "00334-0000/"; | 13 | private string capsObjectPath = "00001-"; |
14 | private string MapLayerPath = "00334-0001/"; | 14 | private string requestPath = "0000/"; |
15 | private string mapLayerPath = "0001/"; | ||
15 | private BaseHttpServer httpListener; | 16 | private BaseHttpServer httpListener; |
16 | // private LLUUID agentID; | 17 | private LLUUID agentID; |
17 | 18 | ||
18 | public Caps(BaseHttpServer httpServer, string httpListen, uint httpPort) | 19 | public Caps(BaseHttpServer httpServer, string httpListen, uint httpPort, string capsPath, LLUUID agent) |
19 | { | 20 | { |
21 | capsObjectPath = capsPath; | ||
20 | httpListener = httpServer; | 22 | httpListener = httpServer; |
21 | httpListenerAddress = httpListen; | 23 | httpListenerAddress = httpListen; |
22 | httpListenPort = httpPort; | 24 | httpListenPort = httpPort; |
25 | agentID = agent; | ||
23 | } | 26 | } |
24 | 27 | ||
25 | /// <summary> | 28 | /// <summary> |
@@ -28,8 +31,8 @@ namespace OpenSim.Region | |||
28 | public void RegisterHandlers() | 31 | public void RegisterHandlers() |
29 | { | 32 | { |
30 | Console.WriteLine("registering CAPS handlers"); | 33 | Console.WriteLine("registering CAPS handlers"); |
31 | httpListener.AddRestHandler("POST", "/CAPS/" + MainPath, CapsRequest); | 34 | httpListener.AddRestHandler("POST", "/CAPS/" +capsObjectPath+ requestPath, CapsRequest); |
32 | httpListener.AddRestHandler("POST", "/CAPS/" + MapLayerPath, MapLayer); | 35 | httpListener.AddRestHandler("POST", "/CAPS/" +capsObjectPath+ mapLayerPath, MapLayer); |
33 | } | 36 | } |
34 | 37 | ||
35 | /// <summary> | 38 | /// <summary> |
@@ -41,6 +44,7 @@ namespace OpenSim.Region | |||
41 | /// <returns></returns> | 44 | /// <returns></returns> |
42 | public string CapsRequest(string request, string path, string param) | 45 | public string CapsRequest(string request, string path, string param) |
43 | { | 46 | { |
47 | //Console.WriteLine("Caps Request " + request); | ||
44 | string result = "<llsd><map>"; | 48 | string result = "<llsd><map>"; |
45 | result += this.GetCapabilities(); | 49 | result += this.GetCapabilities(); |
46 | result += "</map></llsd>"; | 50 | result += "</map></llsd>"; |
@@ -55,7 +59,7 @@ namespace OpenSim.Region | |||
55 | { | 59 | { |
56 | string capURLS=""; | 60 | string capURLS=""; |
57 | 61 | ||
58 | capURLS += "<key>MapLayer</key><string>http://" + httpListenerAddress + ":" + httpListenPort.ToString() + "/CAPS/" + MapLayerPath + "</string>"; | 62 | capURLS += "<key>MapLayer</key><string>http://" + httpListenerAddress + ":" + httpListenPort.ToString() + "/CAPS/" +capsObjectPath+ mapLayerPath + "</string>"; |
59 | 63 | ||
60 | return capURLS; | 64 | return capURLS; |
61 | } | 65 | } |
diff --git a/OpenSim/OpenSim.Region/OpenSim.Region.csproj b/OpenSim/OpenSim.Region/OpenSim.Region.csproj index 2ae7909..d18bf3f 100644 --- a/OpenSim/OpenSim.Region/OpenSim.Region.csproj +++ b/OpenSim/OpenSim.Region/OpenSim.Region.csproj | |||
@@ -1,4 +1,4 @@ | |||
1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | 1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
2 | <PropertyGroup> | 2 | <PropertyGroup> |
3 | <ProjectType>Local</ProjectType> | 3 | <ProjectType>Local</ProjectType> |
4 | <ProductVersion>8.0.50727</ProductVersion> | 4 | <ProductVersion>8.0.50727</ProductVersion> |
@@ -6,8 +6,7 @@ | |||
6 | <ProjectGuid>{196916AF-0000-0000-0000-000000000000}</ProjectGuid> | 6 | <ProjectGuid>{196916AF-0000-0000-0000-000000000000}</ProjectGuid> |
7 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | 7 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
8 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | 8 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
9 | <ApplicationIcon> | 9 | <ApplicationIcon></ApplicationIcon> |
10 | </ApplicationIcon> | ||
11 | <AssemblyKeyContainerName> | 10 | <AssemblyKeyContainerName> |
12 | </AssemblyKeyContainerName> | 11 | </AssemblyKeyContainerName> |
13 | <AssemblyName>OpenSim.Region</AssemblyName> | 12 | <AssemblyName>OpenSim.Region</AssemblyName> |
@@ -16,11 +15,9 @@ | |||
16 | <DefaultTargetSchema>IE50</DefaultTargetSchema> | 15 | <DefaultTargetSchema>IE50</DefaultTargetSchema> |
17 | <DelaySign>false</DelaySign> | 16 | <DelaySign>false</DelaySign> |
18 | <OutputType>Library</OutputType> | 17 | <OutputType>Library</OutputType> |
19 | <AppDesignerFolder> | 18 | <AppDesignerFolder></AppDesignerFolder> |
20 | </AppDesignerFolder> | ||
21 | <RootNamespace>OpenSim.Region</RootNamespace> | 19 | <RootNamespace>OpenSim.Region</RootNamespace> |
22 | <StartupObject> | 20 | <StartupObject></StartupObject> |
23 | </StartupObject> | ||
24 | <FileUpgradeFlags> | 21 | <FileUpgradeFlags> |
25 | </FileUpgradeFlags> | 22 | </FileUpgradeFlags> |
26 | </PropertyGroup> | 23 | </PropertyGroup> |
@@ -31,8 +28,7 @@ | |||
31 | <ConfigurationOverrideFile> | 28 | <ConfigurationOverrideFile> |
32 | </ConfigurationOverrideFile> | 29 | </ConfigurationOverrideFile> |
33 | <DefineConstants>TRACE;DEBUG</DefineConstants> | 30 | <DefineConstants>TRACE;DEBUG</DefineConstants> |
34 | <DocumentationFile> | 31 | <DocumentationFile></DocumentationFile> |
35 | </DocumentationFile> | ||
36 | <DebugSymbols>True</DebugSymbols> | 32 | <DebugSymbols>True</DebugSymbols> |
37 | <FileAlignment>4096</FileAlignment> | 33 | <FileAlignment>4096</FileAlignment> |
38 | <Optimize>False</Optimize> | 34 | <Optimize>False</Optimize> |
@@ -41,8 +37,7 @@ | |||
41 | <RemoveIntegerChecks>False</RemoveIntegerChecks> | 37 | <RemoveIntegerChecks>False</RemoveIntegerChecks> |
42 | <TreatWarningsAsErrors>False</TreatWarningsAsErrors> | 38 | <TreatWarningsAsErrors>False</TreatWarningsAsErrors> |
43 | <WarningLevel>4</WarningLevel> | 39 | <WarningLevel>4</WarningLevel> |
44 | <NoWarn> | 40 | <NoWarn></NoWarn> |
45 | </NoWarn> | ||
46 | </PropertyGroup> | 41 | </PropertyGroup> |
47 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | 42 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
48 | <AllowUnsafeBlocks>False</AllowUnsafeBlocks> | 43 | <AllowUnsafeBlocks>False</AllowUnsafeBlocks> |
@@ -51,8 +46,7 @@ | |||
51 | <ConfigurationOverrideFile> | 46 | <ConfigurationOverrideFile> |
52 | </ConfigurationOverrideFile> | 47 | </ConfigurationOverrideFile> |
53 | <DefineConstants>TRACE</DefineConstants> | 48 | <DefineConstants>TRACE</DefineConstants> |
54 | <DocumentationFile> | 49 | <DocumentationFile></DocumentationFile> |
55 | </DocumentationFile> | ||
56 | <DebugSymbols>False</DebugSymbols> | 50 | <DebugSymbols>False</DebugSymbols> |
57 | <FileAlignment>4096</FileAlignment> | 51 | <FileAlignment>4096</FileAlignment> |
58 | <Optimize>True</Optimize> | 52 | <Optimize>True</Optimize> |
@@ -61,28 +55,26 @@ | |||
61 | <RemoveIntegerChecks>False</RemoveIntegerChecks> | 55 | <RemoveIntegerChecks>False</RemoveIntegerChecks> |
62 | <TreatWarningsAsErrors>False</TreatWarningsAsErrors> | 56 | <TreatWarningsAsErrors>False</TreatWarningsAsErrors> |
63 | <WarningLevel>4</WarningLevel> | 57 | <WarningLevel>4</WarningLevel> |
64 | <NoWarn> | 58 | <NoWarn></NoWarn> |
65 | </NoWarn> | ||
66 | </PropertyGroup> | 59 | </PropertyGroup> |
67 | <ItemGroup> | 60 | <ItemGroup> |
68 | <Reference Include="Axiom.MathLib.dll"> | 61 | <Reference Include="Axiom.MathLib.dll" > |
69 | <HintPath>..\..\bin\Axiom.MathLib.dll</HintPath> | 62 | <HintPath>..\..\bin\Axiom.MathLib.dll</HintPath> |
70 | <Private>False</Private> | 63 | <Private>False</Private> |
71 | </Reference> | 64 | </Reference> |
72 | <Reference Include="Db4objects.Db4o.dll"> | 65 | <Reference Include="Db4objects.Db4o.dll" > |
73 | <HintPath>..\..\bin\Db4objects.Db4o.dll</HintPath> | 66 | <HintPath>..\..\bin\Db4objects.Db4o.dll</HintPath> |
74 | <Private>False</Private> | 67 | <Private>False</Private> |
75 | </Reference> | 68 | </Reference> |
76 | <Reference Include="libsecondlife.dll"> | 69 | <Reference Include="libsecondlife.dll" > |
77 | <HintPath>..\..\bin\libsecondlife.dll</HintPath> | 70 | <HintPath>..\..\bin\libsecondlife.dll</HintPath> |
78 | <Private>False</Private> | 71 | <Private>False</Private> |
79 | </Reference> | 72 | </Reference> |
80 | <Reference Include="System"> | 73 | <Reference Include="System" > |
81 | <HintPath>System.dll</HintPath> | 74 | <HintPath>System.dll</HintPath> |
82 | <Private>False</Private> | 75 | <Private>False</Private> |
83 | </Reference> | 76 | </Reference> |
84 | <Reference Include="System.Data" /> | 77 | <Reference Include="System.Xml" > |
85 | <Reference Include="System.Xml"> | ||
86 | <HintPath>System.Xml.dll</HintPath> | 78 | <HintPath>System.Xml.dll</HintPath> |
87 | <Private>False</Private> | 79 | <Private>False</Private> |
88 | </Reference> | 80 | </Reference> |
@@ -92,59 +84,61 @@ | |||
92 | <Name>OpenGrid.Framework.Communications</Name> | 84 | <Name>OpenGrid.Framework.Communications</Name> |
93 | <Project>{683344D5-0000-0000-0000-000000000000}</Project> | 85 | <Project>{683344D5-0000-0000-0000-000000000000}</Project> |
94 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 86 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
95 | <Private>False</Private> | 87 | <Private>False</Private> |
96 | </ProjectReference> | 88 | </ProjectReference> |
97 | <ProjectReference Include="..\OpenSim.Caches\OpenSim.Caches.csproj"> | 89 | <ProjectReference Include="..\OpenSim.Caches\OpenSim.Caches.csproj"> |
98 | <Name>OpenSim.Caches</Name> | 90 | <Name>OpenSim.Caches</Name> |
99 | <Project>{1938EB12-0000-0000-0000-000000000000}</Project> | 91 | <Project>{1938EB12-0000-0000-0000-000000000000}</Project> |
100 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 92 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
101 | <Private>False</Private> | 93 | <Private>False</Private> |
102 | </ProjectReference> | 94 | </ProjectReference> |
103 | <ProjectReference Include="..\..\Common\OpenSim.Framework\OpenSim.Framework.csproj"> | 95 | <ProjectReference Include="..\..\Common\OpenSim.Framework\OpenSim.Framework.csproj"> |
104 | <Name>OpenSim.Framework</Name> | 96 | <Name>OpenSim.Framework</Name> |
105 | <Project>{8ACA2445-0000-0000-0000-000000000000}</Project> | 97 | <Project>{8ACA2445-0000-0000-0000-000000000000}</Project> |
106 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 98 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
107 | <Private>False</Private> | 99 | <Private>False</Private> |
108 | </ProjectReference> | 100 | </ProjectReference> |
109 | <ProjectReference Include="..\..\Common\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj"> | 101 | <ProjectReference Include="..\..\Common\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj"> |
110 | <Name>OpenSim.Framework.Console</Name> | 102 | <Name>OpenSim.Framework.Console</Name> |
111 | <Project>{A7CD0630-0000-0000-0000-000000000000}</Project> | 103 | <Project>{A7CD0630-0000-0000-0000-000000000000}</Project> |
112 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 104 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
113 | <Private>False</Private> | 105 | <Private>False</Private> |
114 | </ProjectReference> | 106 | </ProjectReference> |
115 | <ProjectReference Include="..\..\Common\OpenSim.GenericConfig\Xml\OpenSim.GenericConfig.Xml.csproj"> | 107 | <ProjectReference Include="..\..\Common\OpenSim.GenericConfig\Xml\OpenSim.GenericConfig.Xml.csproj"> |
116 | <Name>OpenSim.GenericConfig.Xml</Name> | 108 | <Name>OpenSim.GenericConfig.Xml</Name> |
117 | <Project>{E88EF749-0000-0000-0000-000000000000}</Project> | 109 | <Project>{E88EF749-0000-0000-0000-000000000000}</Project> |
118 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 110 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
119 | <Private>False</Private> | 111 | <Private>False</Private> |
120 | </ProjectReference> | 112 | </ProjectReference> |
121 | <ProjectReference Include="..\OpenSim.Physics\Manager\OpenSim.Physics.Manager.csproj"> | 113 | <ProjectReference Include="..\OpenSim.Physics\Manager\OpenSim.Physics.Manager.csproj"> |
122 | <Name>OpenSim.Physics.Manager</Name> | 114 | <Name>OpenSim.Physics.Manager</Name> |
123 | <Project>{8BE16150-0000-0000-0000-000000000000}</Project> | 115 | <Project>{8BE16150-0000-0000-0000-000000000000}</Project> |
124 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 116 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
125 | <Private>False</Private> | 117 | <Private>False</Private> |
126 | </ProjectReference> | 118 | </ProjectReference> |
127 | <ProjectReference Include="..\..\Common\OpenSim.Servers\OpenSim.Servers.csproj"> | 119 | <ProjectReference Include="..\..\Common\OpenSim.Servers\OpenSim.Servers.csproj"> |
128 | <Name>OpenSim.Servers</Name> | 120 | <Name>OpenSim.Servers</Name> |
129 | <Project>{8BB20F0A-0000-0000-0000-000000000000}</Project> | 121 | <Project>{8BB20F0A-0000-0000-0000-000000000000}</Project> |
130 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 122 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
131 | <Private>False</Private> | 123 | <Private>False</Private> |
132 | </ProjectReference> | 124 | </ProjectReference> |
133 | <ProjectReference Include="..\OpenSim.Terrain.BasicTerrain\OpenSim.Terrain.BasicTerrain.csproj"> | 125 | <ProjectReference Include="..\OpenSim.Terrain.BasicTerrain\OpenSim.Terrain.BasicTerrain.csproj"> |
134 | <Name>OpenSim.Terrain.BasicTerrain</Name> | 126 | <Name>OpenSim.Terrain.BasicTerrain</Name> |
135 | <Project>{2270B8FE-0000-0000-0000-000000000000}</Project> | 127 | <Project>{2270B8FE-0000-0000-0000-000000000000}</Project> |
136 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 128 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
137 | <Private>False</Private> | 129 | <Private>False</Private> |
138 | </ProjectReference> | 130 | </ProjectReference> |
139 | <ProjectReference Include="..\..\Common\XmlRpcCS\XMLRPC.csproj"> | 131 | <ProjectReference Include="..\..\Common\XmlRpcCS\XMLRPC.csproj"> |
140 | <Name>XMLRPC</Name> | 132 | <Name>XMLRPC</Name> |
141 | <Project>{8E81D43C-0000-0000-0000-000000000000}</Project> | 133 | <Project>{8E81D43C-0000-0000-0000-000000000000}</Project> |
142 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> | 134 | <Package>{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</Package> |
143 | <Private>False</Private> | 135 | <Private>False</Private> |
144 | </ProjectReference> | 136 | </ProjectReference> |
145 | </ItemGroup> | 137 | </ItemGroup> |
146 | <ItemGroup> | 138 | <ItemGroup> |
147 | <Compile Include="Caps.cs" /> | 139 | <Compile Include="Caps.cs"> |
140 | <SubType>Code</SubType> | ||
141 | </Compile> | ||
148 | <Compile Include="EstateManager.cs"> | 142 | <Compile Include="EstateManager.cs"> |
149 | <SubType>Code</SubType> | 143 | <SubType>Code</SubType> |
150 | </Compile> | 144 | </Compile> |
@@ -210,4 +204,4 @@ | |||
210 | <PostBuildEvent> | 204 | <PostBuildEvent> |
211 | </PostBuildEvent> | 205 | </PostBuildEvent> |
212 | </PropertyGroup> | 206 | </PropertyGroup> |
213 | </Project> \ No newline at end of file | 207 | </Project> |
diff --git a/OpenSim/OpenSim.Region/OpenSim.Region.dll.build b/OpenSim/OpenSim.Region/OpenSim.Region.dll.build index 4a8ca9e..2e1014f 100644 --- a/OpenSim/OpenSim.Region/OpenSim.Region.dll.build +++ b/OpenSim/OpenSim.Region/OpenSim.Region.dll.build | |||
@@ -11,6 +11,7 @@ | |||
11 | <resources prefix="OpenSim.Region" dynamicprefix="true" > | 11 | <resources prefix="OpenSim.Region" dynamicprefix="true" > |
12 | </resources> | 12 | </resources> |
13 | <sources failonempty="true"> | 13 | <sources failonempty="true"> |
14 | <include name="Caps.cs" /> | ||
14 | <include name="EstateManager.cs" /> | 15 | <include name="EstateManager.cs" /> |
15 | <include name="ParcelManager.cs" /> | 16 | <include name="ParcelManager.cs" /> |
16 | <include name="Scenes/Entity.cs" /> | 17 | <include name="Scenes/Entity.cs" /> |
diff --git a/OpenSim/OpenSim.Region/Scenes/Scene.cs b/OpenSim/OpenSim.Region/Scenes/Scene.cs index 14c77c2..07f1d70 100644 --- a/OpenSim/OpenSim.Region/Scenes/Scene.cs +++ b/OpenSim/OpenSim.Region/Scenes/Scene.cs | |||
@@ -69,7 +69,7 @@ namespace OpenSim.Region.Scenes | |||
69 | protected RegionCommsListener regionCommsHost; | 69 | protected RegionCommsListener regionCommsHost; |
70 | protected CommunicationsManager commsManager; | 70 | protected CommunicationsManager commsManager; |
71 | 71 | ||
72 | protected Caps TestCapsHandler; | 72 | protected List<Caps> capsHandlers = new List<Caps>(); |
73 | protected BaseHttpServer httpListener; | 73 | protected BaseHttpServer httpListener; |
74 | 74 | ||
75 | public ParcelManager parcelManager; | 75 | public ParcelManager parcelManager; |
@@ -132,8 +132,7 @@ namespace OpenSim.Region.Scenes | |||
132 | 132 | ||
133 | ScenePresence.LoadAnims(); | 133 | ScenePresence.LoadAnims(); |
134 | this.httpListener = httpServer; | 134 | this.httpListener = httpServer; |
135 | this.TestCapsHandler = new Caps(httpListener, "127.0.0.1" , 9000); | 135 | |
136 | this.TestCapsHandler.RegisterHandlers(); | ||
137 | } | 136 | } |
138 | catch (Exception e) | 137 | catch (Exception e) |
139 | { | 138 | { |
@@ -728,6 +727,13 @@ namespace OpenSim.Region.Scenes | |||
728 | //should just check that its meant for this region | 727 | //should just check that its meant for this region |
729 | if (regionHandle == this.m_regInfo.RegionHandle) | 728 | if (regionHandle == this.m_regInfo.RegionHandle) |
730 | { | 729 | { |
730 | if (agent.CapsPath != "") | ||
731 | { | ||
732 | //Console.WriteLine("new user, so creating caps handler for it"); | ||
733 | Caps cap = new Caps(httpListener, this.m_regInfo.IPListenAddr, 9000, agent.CapsPath, agent.AgentID); | ||
734 | cap.RegisterHandlers(); | ||
735 | this.capsHandlers.Add(cap); | ||
736 | } | ||
731 | this.authenticateHandler.AddNewCircuit(agent.circuitcode, agent); | 737 | this.authenticateHandler.AddNewCircuit(agent.circuitcode, agent); |
732 | } | 738 | } |
733 | } | 739 | } |