|
@@ -20,15 +20,12 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
/// 大分类
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
- public DataTable GetLargeClassification(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export,string ComputeMode)
|
|
|
+ public DataTable GetLargeClassification(BasicData basicData)
|
|
|
{
|
|
|
- DataTable data = GetDBData(m_mbszclass, m_otsreport_export, ComputeMode);
|
|
|
+ DataTable data = basicData.GetDBData();
|
|
|
List<string> colid = new List<string>();
|
|
|
//获取粒级表
|
|
|
- string path1 = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder +
|
|
|
- m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFile;
|
|
|
- DataSet ds = OTSIncAReportApp.DataOperation.DataAccess.XMLoperate.GetXml(path1);
|
|
|
- string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
|
|
|
+ string sizestr = basicData.GetParticlesizeTable();
|
|
|
for (int i = 0; i < sizestr.Split(',').Length - 1; i++)
|
|
|
{
|
|
|
if (sizestr.Split(',')[i].Length > 0)
|
|
@@ -40,7 +37,6 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]);
|
|
|
colid.Add(d.ToString() + "~MAX");
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
|
|
|
DataTable ls_partsize_dt = new DataTable();
|
|
|
ls_partsize_dt.TableName = "PartSize";
|
|
|
ls_partsize_dt.Columns.Add("c1");
|
|
@@ -114,7 +110,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
//按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
|
|
|
List<string> ClassName = new List<string>();
|
|
|
- DataTable getClass_dt = fielddata.GetAllClass();
|
|
|
+ DataTable getClass_dt = basicData.GetAllClass();
|
|
|
for (int i = 0; i < getClass_dt.Rows.Count; i++)
|
|
|
{
|
|
|
if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid")
|
|
@@ -132,16 +128,13 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
/// 小分类
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
- public DataTable GetSubClassification(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export, string ComputeMode)
|
|
|
+ public DataTable GetSubClassification(BasicData basicData)
|
|
|
{
|
|
|
|
|
|
- DataTable data = GetDBData(m_mbszclass, m_otsreport_export, ComputeMode);
|
|
|
+ DataTable data = basicData.GetDBData();
|
|
|
List<string> colid = new List<string>();
|
|
|
//获取粒级表
|
|
|
- string path1 = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder +
|
|
|
- m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFile;
|
|
|
- DataSet ds = OTSIncAReportApp.DataOperation.DataAccess.XMLoperate.GetXml(path1);
|
|
|
- string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
|
|
|
+ string sizestr = basicData.GetParticlesizeTable();
|
|
|
for (int i = 0; i < sizestr.Split(',').Length - 1; i++)
|
|
|
{
|
|
|
if (sizestr.Split(',')[i].Length > 0)
|
|
@@ -234,18 +227,13 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
/// 分类整合大小分类都有
|
|
|
/// </summary>
|
|
|
/// <returns></returns>
|
|
|
- public List<DataTable> GetClassificationConsolidationTable(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export, string ComputeMode, string a_PartSizeFile)
|
|
|
+ public List<DataTable> GetClassificationConsolidationTable(BasicData basicData)
|
|
|
{
|
|
|
List<DataTable> datas = new List<DataTable>();
|
|
|
-
|
|
|
- DataTable data = GetDBData(m_mbszclass, m_otsreport_export, ComputeMode);
|
|
|
-
|
|
|
+ DataTable data = basicData.GetDBData();
|
|
|
List<string> colid = new List<string>();
|
|
|
//获取粒级表
|
|
|
- string path1 = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder +
|
|
|
- a_PartSizeFile;
|
|
|
- DataSet ds = OTSIncAReportApp.DataOperation.DataAccess.XMLoperate.GetXml(path1);
|
|
|
- string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
|
|
|
+ string sizestr = basicData.GetParticlesizeTable();
|
|
|
|
|
|
for (int i = 0; i < sizestr.Split(',').Length - 1; i++)
|
|
|
{
|
|
@@ -258,8 +246,6 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]);
|
|
|
colid.Add(d.ToString() + "~MAX");
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
|
|
|
-
|
|
|
//------------------------------------------------
|
|
|
DataTable ls_partsize_dt = new DataTable();
|
|
|
ls_partsize_dt.TableName = "PartSize";
|
|
@@ -290,7 +276,6 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
|
|
|
DataTable ls_Particel_dt = new DataTable();
|
|
|
ls_Particel_dt.TableName = "Particel";
|
|
|
-
|
|
|
ls_Particel_dt.Columns.Add("c1", typeof(double));
|
|
|
ls_Particel_dt.Columns.Add("c2", typeof(double));
|
|
|
ls_Particel_dt.Columns.Add("c3", typeof(double));
|
|
@@ -336,7 +321,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
//按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
|
|
|
List<string> ClassName = new List<string>();
|
|
|
- DataTable getClass_dt = fielddata.GetAllClass();
|
|
|
+ DataTable getClass_dt = basicData.GetAllClass();
|
|
|
bool bl = false;
|
|
|
for (int i = 0; i < getClass_dt.Rows.Count; i++)
|
|
|
{
|
|
@@ -352,10 +337,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- //if (getClass_dt.Rows[i]["GroupName"].ToString() != "Default")
|
|
|
- //{
|
|
|
ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
|
|
|
- //}
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -366,62 +348,20 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
datas.Add(data2.Copy());
|
|
|
return datas;
|
|
|
}
|
|
|
- /// <summary>
|
|
|
- /// 判断是否有大分类,有为true
|
|
|
- /// </summary>
|
|
|
- /// <param name="m_otsreport_export"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public bool IsThereAMajorClassification(OTSReport_Export m_otsreport_export)
|
|
|
- {
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
|
|
|
- DataTable getClass_dt = fielddata.GetAllClass();
|
|
|
- List<string> ClassName = new List<string>();
|
|
|
- bool bl = false;
|
|
|
- for (int i = 0; i < getClass_dt.Rows.Count; i++)
|
|
|
- {
|
|
|
- if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid"
|
|
|
- && getClass_dt.Rows[i]["GroupName"].ToString() != "Not Identified")
|
|
|
- if (getClass_dt.Rows[i]["GroupName"].ToString() == "")
|
|
|
- {
|
|
|
- if (!bl)
|
|
|
- {
|
|
|
- ClassName.Add("Default");
|
|
|
- bl = true;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if (getClass_dt.Rows[i]["GroupName"].ToString() != "Default")
|
|
|
- {
|
|
|
- ClassName.Add(getClass_dt.Rows[i]["GroupName"].ToString());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- if (ClassName.Count < 2)
|
|
|
- {
|
|
|
- return false;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
/// <summary>
|
|
|
/// 大分类chart数据
|
|
|
/// </summary>
|
|
|
/// <param name="m_mbszclass"></param>
|
|
|
/// <param name="m_otsreport_export"></param>
|
|
|
/// <returns></returns>
|
|
|
- public DataTable GetChartDataCalss(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export, string ComputeMode)
|
|
|
+ public DataTable GetChartDataCalss(BasicData basicData)
|
|
|
{
|
|
|
- DataTable data = GetDBData(m_mbszclass, m_otsreport_export, ComputeMode);
|
|
|
+ DataTable data =basicData.GetDBData();
|
|
|
List<string> colid = new List<string>();
|
|
|
//获取粒级表
|
|
|
- string path1 = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder +
|
|
|
- m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFile;
|
|
|
- DataSet ds = OTSIncAReportApp.DataOperation.DataAccess.XMLoperate.GetXml(path1);
|
|
|
- string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
|
|
|
+
|
|
|
+ string sizestr = basicData.GetParticlesizeTable();
|
|
|
|
|
|
for (int i = 0; i < sizestr.Split(',').Length - 1; i++)
|
|
|
{
|
|
@@ -434,7 +374,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]);
|
|
|
colid.Add(d.ToString() + "~MAX");
|
|
|
- ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
|
|
|
+ //ParticleData fielddata = new ParticleData(m_otsreport_export.m_ReportApp.m_rstDataMgr.ResultFilesList[m_otsreport_export.m_ReportApp.m_rstDataMgr.getSelectedIndex()].FilePath);
|
|
|
|
|
|
//------------------------------------------------
|
|
|
DataTable ls_partsize_dt = new DataTable();
|
|
@@ -512,7 +452,7 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
//按照list列表进行物质类排序,物质类中的元素分类按照面积的大小进行排序
|
|
|
List<string> ClassName = new List<string>();
|
|
|
- DataTable getClass_dt = fielddata.GetAllClass();
|
|
|
+ DataTable getClass_dt = basicData.GetAllClass();
|
|
|
for (int i = 0; i < getClass_dt.Rows.Count; i++)
|
|
|
{
|
|
|
if (getClass_dt.Rows[i]["GroupName"].ToString() != "NOT_INCLUTION" && getClass_dt.Rows[i]["GroupName"].ToString() != "Invalid")
|
|
@@ -548,111 +488,6 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
return colid_data;
|
|
|
|
|
|
}
|
|
|
- /// <summary>
|
|
|
- /// 小分类chart数据
|
|
|
- /// </summary>
|
|
|
- /// <param name="m_mbszclass"></param>
|
|
|
- /// <param name="m_otsreport_export"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public DataTable GetChartDataSubdivision(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export, string ComputeMode)
|
|
|
- {
|
|
|
- DataTable data = GetDBData(m_mbszclass, m_otsreport_export, ComputeMode);
|
|
|
- List<string> colid = new List<string>();
|
|
|
- string path1 = m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFileFolder +
|
|
|
- m_otsreport_export.m_ReportApp.m_rstDataMgr.m_RptConfigFile.PartSizeFile;
|
|
|
- DataSet ds = OTSIncAReportApp.DataOperation.DataAccess.XMLoperate.GetXml(path1);
|
|
|
- string sizestr = ds.Tables[0].Rows[0]["Sizes"].ToString();
|
|
|
-
|
|
|
- for (int i = 0; i < sizestr.Split(',').Length - 1; i++)
|
|
|
- {
|
|
|
- if (sizestr.Split(',')[i].Length > 0)
|
|
|
- {
|
|
|
- double d1 = Convert.ToDouble(sizestr.Split(',')[i]);
|
|
|
- double d2 = Convert.ToDouble(sizestr.Split(',')[i + 1]);
|
|
|
- colid.Add(d1.ToString() + "~" + d2.ToString());
|
|
|
- }
|
|
|
- }
|
|
|
- double d = Convert.ToDouble(sizestr.Split(',')[sizestr.Split(',').Length - 1]);
|
|
|
- colid.Add(d.ToString() + "~MAX");
|
|
|
- //------------------------------------------------
|
|
|
- DataTable ls_partsize_dt = new DataTable();
|
|
|
- ls_partsize_dt.TableName = "PartSize";
|
|
|
- ls_partsize_dt.Columns.Add("c1");
|
|
|
- ls_partsize_dt.Columns.Add("c2");
|
|
|
- ls_partsize_dt.Columns.Add("c3");
|
|
|
- ls_partsize_dt.Columns.Add("c4");
|
|
|
- ls_partsize_dt.Columns.Add("c5");
|
|
|
- ls_partsize_dt.Columns.Add("c6");
|
|
|
- ls_partsize_dt.Columns.Add("c7");
|
|
|
- ls_partsize_dt.Columns.Add("c8");
|
|
|
- ls_partsize_dt.Columns.Add("c9");
|
|
|
-
|
|
|
- DataRow dr = ls_partsize_dt.NewRow();
|
|
|
- for (int i = 1; i < 10; i++)
|
|
|
- {
|
|
|
- if (colid.Count < i)
|
|
|
- {
|
|
|
- dr["c" + i.ToString()] = "";
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- dr["c" + i.ToString()] = colid[i - 1];
|
|
|
- }
|
|
|
- }
|
|
|
- ls_partsize_dt.Rows.Add(dr);
|
|
|
-
|
|
|
-
|
|
|
- DataTable ls_Particel_dt = new DataTable();
|
|
|
- ls_Particel_dt.TableName = "Particel";
|
|
|
- ls_Particel_dt.Columns.Add("c1", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c2", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c3", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c4", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c5", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c6", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c7", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c8", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("c9", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("Name");
|
|
|
- ls_Particel_dt.Columns.Add("total", typeof(double));
|
|
|
- ls_Particel_dt.Columns.Add("TypeId");
|
|
|
- ls_Particel_dt.Columns.Add("Class");
|
|
|
-
|
|
|
- for (int i = 0; i < data.Rows.Count; i++)
|
|
|
- {
|
|
|
- DataRow dr2 = ls_Particel_dt.NewRow();
|
|
|
- dr2["Name"] = data.Rows[i]["TypeName"].ToString();
|
|
|
- dr2["Class"] = data.Rows[i]["Class"].ToString();
|
|
|
- dr2["TypeId"] = data.Rows[i]["TypeId"].ToString();//获取分类编号
|
|
|
- for (int j = 1; j < 10; j++)
|
|
|
- {
|
|
|
- if (colid.Count >= j)
|
|
|
- {
|
|
|
- dr2["c" + j.ToString()] = Convert.ToDouble(data.Rows[i][colid[j - 1]]);
|
|
|
- }
|
|
|
- }
|
|
|
- if (dr2["Name"].ToString() != "" && dr2["Name"].ToString().IndexOf("number") < 0)
|
|
|
- {
|
|
|
- dr2["total"] = "0"; //求合
|
|
|
- double d_total = 0;
|
|
|
-
|
|
|
- for (int j = 1; j < 10; j++)
|
|
|
- {
|
|
|
- if (colid.Count >= j)
|
|
|
- {
|
|
|
- d_total = d_total + Convert.ToInt64(data.Rows[i][colid[j - 1]]);
|
|
|
- }
|
|
|
- }
|
|
|
- dr2["total"] = d_total.ToString();
|
|
|
- }
|
|
|
- ls_Particel_dt.Rows.Add(dr2);
|
|
|
- }
|
|
|
-
|
|
|
- return ls_Particel_dt;
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
public DataTable ParticleResults(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export, string ComputeMode)
|
|
|
{
|
|
|
DataTable data = GetDBData(m_mbszclass, m_otsreport_export, ComputeMode);
|
|
@@ -765,7 +600,6 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
return ls_Particel_dt;
|
|
|
}
|
|
|
-
|
|
|
public DataTable TypeRange(c_TemplateClass m_mbszclass, OTSReport_Export m_otsreport_export)
|
|
|
{
|
|
|
List<string> colid = new List<string>();
|
|
@@ -939,71 +773,10 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
}
|
|
|
return dataTable;
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- private DataTable GetParticleListForParticlSize(DataTable data, DataTable table)
|
|
|
- {
|
|
|
- DataTable dt_Partick = new DataTable();
|
|
|
- dt_Partick.Columns.Add("TypeId");
|
|
|
- dt_Partick.Columns.Add("TypeName");
|
|
|
- dt_Partick.Columns.Add("TypeColor");
|
|
|
- dt_Partick.Columns.Add("con");
|
|
|
- dt_Partick.Columns.Add("ar");
|
|
|
- dt_Partick.Columns.Add("max");
|
|
|
- dt_Partick.Columns.Add("Area", typeof(double));
|
|
|
- dt_Partick.Columns.Add("GroupName");
|
|
|
- List<string> typeName = new List<string>();
|
|
|
- for (int i = 0; i < data.Rows.Count; i++)
|
|
|
- {
|
|
|
- typeName.Add(data.Rows[i]["TypeId"].ToString());
|
|
|
- }
|
|
|
- typeName = typeName.Distinct().ToList();
|
|
|
-
|
|
|
- for (int i = 0; i < typeName.Count; i++)
|
|
|
- {
|
|
|
- DataTable dt = dt_Partick.Clone();
|
|
|
- for (int j = 0; j < data.Rows.Count; j++)
|
|
|
- {
|
|
|
- if (typeName[i].ToString() == data.Rows[j]["TypeId"].ToString())
|
|
|
- {
|
|
|
- DataRow row = dt.NewRow();
|
|
|
- row["TypeId"] = data.Rows[j]["TypeId"];
|
|
|
- row["TypeName"] = data.Rows[j]["TypeName"];
|
|
|
- row["TypeColor"] = data.Rows[j]["TypeColor"];
|
|
|
- row["Area"] = data.Rows[j]["Area"];
|
|
|
- dt.Rows.Add(row);
|
|
|
- }
|
|
|
- }
|
|
|
- DataRow dr = dt_Partick.NewRow();
|
|
|
- dr["TypeId"] = dt.Rows[0]["TypeId"].ToString();
|
|
|
- dr["TypeName"] = dt.Rows[0]["TypeName"].ToString();
|
|
|
- dr["TypeColor"] = dt.Rows[0]["TypeColor"].ToString();
|
|
|
- dr["con"] = dt.Rows.Count;
|
|
|
- dr["ar"] = dt.Compute("min(Area)", "");
|
|
|
- dr["max"] = dt.Compute("Max(Area)", "");
|
|
|
- dr["Area"] = dt.Compute("SUM(Area)", "");
|
|
|
- dt_Partick.Rows.Add(dr);
|
|
|
- }
|
|
|
- for (int i = 0; i < dt_Partick.Rows.Count; i++)
|
|
|
- {
|
|
|
- for (int j = 0; j < table.Rows.Count; j++)
|
|
|
- {
|
|
|
- if (dt_Partick.Rows[i]["TypeId"].ToString() == table.Rows[j]["TypeId"].ToString())
|
|
|
- {
|
|
|
- dt_Partick.Rows[i]["GroupName"] = table.Rows[j]["GroupName"];
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return dt_Partick;
|
|
|
- }
|
|
|
-
|
|
|
private string getWhere(string max, string min, string col, string partic)
|
|
|
{
|
|
|
return col + ">=" + min + " and " + col + "<" + max + " and TypeId=" + partic;
|
|
|
}
|
|
|
-
|
|
|
private DataTable GetDBData(c_TemplateClass m_mbszclass , OTSReport_Export m_otsreport_export,string ComputeMode)
|
|
|
{
|
|
|
|
|
@@ -1165,7 +938,5 @@ namespace OTSIncAReportApp._1_UI.OTSReportExport.DataIntegration
|
|
|
return datass;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
}
|
|
|
}
|