...
|
...
|
@@ -438,8 +438,8 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
* s1建筑名称
|
|
|
*/
|
|
|
for (Sort sort : names) {
|
|
|
String zd_name = "no_" + sort.getId();
|
|
|
electricity += electricityLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
//String zd_name = "no_" + sort.getId();
|
|
|
//electricity += electricityLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
/**
|
|
|
* 电价 高 平 底
|
|
|
*/
|
...
|
...
|
@@ -453,6 +453,9 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
end += electrovalence.getNo33();
|
|
|
}*/
|
|
|
}
|
|
|
for (Synthesize_no_2_1 synthesize_no_2_1 : synthesize_no_2_1s) {
|
|
|
electricity += synthesize_no_2_1.getDesignElectricLoadIndex();
|
|
|
}
|
|
|
synthesize_no_3_6.setNo112(tall);
|
|
|
synthesize_no_3_6.setNo113(level);
|
|
|
synthesize_no_3_6.setNo114(end);
|
...
|
...
|
@@ -758,8 +761,11 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
Synthesize_no_2_1 synthesize_no_2_1 = synthesize_no_2_1Service.getById(synthesize_no_2_1s.get(i).getId());
|
|
|
if (!StringUtils.isEmpty(calculateLoad)) {
|
|
|
if (calculateLoad.getNo2().equals(calculateLoad.getNo22())) {
|
|
|
hotLoadAll += hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
heatStorage += synthesize_no_2_1.getHeatArea() * hotLoadDataMapper.queryName(zd_name, dict.getId()) * Double.parseDouble(String.valueOf(jsonObject.get("hotF"))) * synthesize_no_2_1.getHeatDay() / 1000;
|
|
|
for (Synthesize_no_2_1 synthesizeNo21 : synthesize_no_2_1s) {
|
|
|
hotLoadAll += synthesizeNo21.getDesignHeatLoadIndex();
|
|
|
}
|
|
|
//hotLoadAll += hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
heatStorage += synthesize_no_2_1.getHeatArea() *synthesize_no_2_1.getDesignHeatLoadIndex() * Double.parseDouble(String.valueOf(jsonObject.get("hotF"))) * synthesize_no_2_1.getHeatDay() / 1000;
|
|
|
} else {
|
|
|
/**
|
|
|
* 年总需热量(调整值)*1000/(12*130*供热面积*0.7)
|
...
|
...
|
@@ -768,7 +774,10 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
heatStorage += synthesize_no_2_1.getHeatArea() * calculateLoad.getNo22() * 1000 / (12 * 130 * synthesize_no_2_1.getHeatArea() * 0.7) * Double.parseDouble(String.valueOf(jsonObject.get("hotF"))) * synthesize_no_2_1.getHeatDay() / 1000;
|
|
|
}
|
|
|
if (calculateLoad.getNo3().equals(calculateLoad.getNo33())) {
|
|
|
coldLoadAll += coldLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
for (Synthesize_no_2_1 synthesizeNo21 : synthesize_no_2_1s) {
|
|
|
hotLoadAll += synthesizeNo21.getDesignCoolingLoadIndex();
|
|
|
}
|
|
|
//coldLoadAll += coldLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
} else {
|
|
|
/**
|
|
|
* 年总需冷量(调整值)*1000/(8*150*供冷面积*0.75)
|
...
|
...
|
@@ -1116,8 +1125,11 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
Synthesize_no_2_1 synthesize_no_2_1 = synthesize_no_2_1Service.getById(synthesize_no_2_1s.get(i).getId());
|
|
|
if (!StringUtils.isEmpty(calculateLoad)) {
|
|
|
if (calculateLoad.getNo3().equals(calculateLoad.getNo33())) {
|
|
|
coldLoadAll += coldLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
coldStorageCapacity += synthesize_no_2_1.getColdArea() * coldLoadDataMapper.queryName(zd_name, dict.getId()) * Double.parseDouble(String.valueOf(jsonObjectCold.get("coldE"))) * synthesize_no_2_1.getColdDay() / 1000;
|
|
|
for (Synthesize_no_2_1 synthesizeNo21 : synthesize_no_2_1s) {
|
|
|
coldLoadAll += synthesizeNo21.getDesignCoolingLoadIndex();
|
|
|
}
|
|
|
//coldLoadAll += coldLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
coldStorageCapacity += synthesize_no_2_1.getColdArea() * synthesize_no_2_1.getDesignCoolingLoadIndex() * Double.parseDouble(String.valueOf(jsonObjectCold.get("coldE"))) * synthesize_no_2_1.getColdDay() / 1000;
|
|
|
} else {
|
|
|
/**
|
|
|
* 年总需冷量(调整值)*1000/(8*150*供冷面积*0.75)
|
...
|
...
|
@@ -1335,10 +1347,12 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
double level = synthesizeNo26ServiceById.getNo126();
|
|
|
double end = synthesizeNo26ServiceById.getNo127();
|
|
|
double hotWaterDays = 0.0;
|
|
|
double hotWaterQuota = 0.0;
|
|
|
if (!synthesize_no_2_1s.isEmpty()) {
|
|
|
for (Synthesize_no_2_1 synthesize_no_2_1 : synthesize_no_2_1s) {
|
|
|
waterPersonNum += synthesize_no_2_1.getWaterPersonNum();
|
|
|
hotWaterDays += synthesize_no_2_1.getWaterDayNum();
|
|
|
hotWaterQuota += synthesize_no_2_1.getHotWaterQuota();
|
|
|
Sort sort = sortMapper.selectById(synthesize_no_2_1.getBuildingTypeId());
|
|
|
/**
|
|
|
* 电价 高 平 底
|
...
|
...
|
@@ -1352,7 +1366,7 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
* 年总需热水总量=热水定额*人数*365*0.9/1000
|
|
|
* synthesizeNo26ServiceById.getNo50() * waterPersonNum * 365 * 0.9 / 1000
|
|
|
*/
|
|
|
double totalAnnualHotWaterDemand = synthesizeNo26ServiceById.getNo50() * waterPersonNum * hotWaterDays / 1000;
|
|
|
double totalAnnualHotWaterDemand = hotWaterQuota * waterPersonNum * hotWaterDays / 1000;
|
|
|
double totalAnnualTotalHotWaterRequirement = 0.0;
|
|
|
for (CalculateLoad calculateLoad : list1) {
|
|
|
totalAnnualTotalHotWaterRequirement += calculateLoad.getNo44();
|
...
|
...
|
@@ -1363,7 +1377,7 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
* @description 年总需热水热量=365*0.9*热水定额*人数*4.2*(热水目标温度-冷水初始温度)/3600
|
|
|
* 年总需热水热量=供热水天数*热水定额*人数*4.2*(热水目标温度-冷水初始温度)/3600
|
|
|
*/
|
|
|
double annualTotalHotWaterRequirement = hotWaterDays * synthesizeNo26ServiceById.getNo50() * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600;
|
|
|
double annualTotalHotWaterRequirement = hotWaterDays * hotWaterQuota * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600;
|
|
|
synthesize_no_3_6.setNo62(annualTotalHotWaterRequirement);
|
|
|
/**
|
|
|
* 热水系统收益
|
...
|
...
|
@@ -1391,13 +1405,13 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
* @description 集热面积=(热水定额*人数*4.2 * (热水目标温度-冷水初始温度)*太阳能保证率)/((总辐照度*1000/365)*集热器集热效率*(1-热损失系数))
|
|
|
* 集热面积=(热水定额*人数*4.2*(热水目标温度-冷水初始温度)*太阳能保证率)/(年平均太阳辐照量*集热器集热效率*(1-热损失系数))
|
|
|
*/
|
|
|
Double num1 = Double.valueOf(df.format((synthesizeNo26ServiceById.getNo50() * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) * synthesizeNo26ServiceById.getNo54()) / ((synthesizeNo26ServiceById.getNo115() * synthesizeNo26ServiceById.getNo55()) * (1 - synthesizeNo26ServiceById.getNo56()))));
|
|
|
Double num1 = Double.valueOf(df.format((hotWaterQuota * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) * synthesizeNo26ServiceById.getNo54()) / ((synthesizeNo26ServiceById.getNo115() * synthesizeNo26ServiceById.getNo55()) * (1 - synthesizeNo26ServiceById.getNo56()))));
|
|
|
synthesize_no_3_6.setNo22(num1);
|
|
|
no_3_1_1_1Dto.setInstallCapacity(format.apply(new BigDecimal(num1)) + "m²");
|
|
|
/**
|
|
|
* 太阳能集热器总投资=热水定额*人数*集热器单位投资 /1000/10000
|
|
|
*/
|
|
|
Double num2 = Double.valueOf(df.format(synthesizeNo26ServiceById.getNo50() * waterPersonNum * synthesizeNo26ServiceById.getNo58() / 1000 / 10000));
|
|
|
Double num2 = Double.valueOf(df.format(hotWaterQuota * waterPersonNum * synthesizeNo26ServiceById.getNo58() / 1000 / 10000));
|
|
|
synthesize_no_3_6.setNo46(num2);
|
|
|
no_3_1_1_1Dto.setInvestmentEstimation(format.apply(new BigDecimal(num2)));
|
|
|
/**
|
...
|
...
|
@@ -1418,7 +1432,7 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
/**
|
|
|
* 空气源热泵(热水型)容量=热水定额*人数*4.2*(热水目标温度-冷水初始温度)/3600/空气源热泵能效比/0.9/运行时间(kW)
|
|
|
*/
|
|
|
double airSourceHeatPumpCapacity = synthesizeNo26ServiceById.getNo50() * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600 / synthesizeNo26ServiceById.getNo53() / 0.9 / synthesizeNo26ServiceById.getNo57() * Double.parseDouble(String.valueOf(jsonObject.get("hotWaterA"))) / 100;
|
|
|
double airSourceHeatPumpCapacity = hotWaterQuota * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600 / synthesizeNo26ServiceById.getNo53() / 0.9 / synthesizeNo26ServiceById.getNo57() * Double.parseDouble(String.valueOf(jsonObject.get("hotWaterA"))) / 100;
|
|
|
No_3_1_1_1Dto no_3_1_1_1Dto = new No_3_1_1_1Dto();
|
|
|
no_3_1_1_1Dto.setName(array2[12]);
|
|
|
synthesize_no_3_6.setNo23(Double.valueOf(df.format(airSourceHeatPumpCapacity)));
|
...
|
...
|
@@ -1460,7 +1474,7 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
/**
|
|
|
* 地源热泵
|
|
|
*/
|
|
|
double gasBoilerHotWaterType = synthesizeNo26ServiceById.getNo50() * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600 / synthesizeNo26ServiceById.getNo116() / 0.9 / synthesizeNo26ServiceById.getNo57() * Double.parseDouble(String.valueOf(jsonObject.get("hotWaterB"))) / 100;
|
|
|
double gasBoilerHotWaterType = hotWaterQuota * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600 / synthesizeNo26ServiceById.getNo116() / 0.9 / synthesizeNo26ServiceById.getNo57() * Double.parseDouble(String.valueOf(jsonObject.get("hotWaterB"))) / 100;
|
|
|
No_3_1_1_1Dto no_3_1_1_1Dto = new No_3_1_1_1Dto();
|
|
|
no_3_1_1_1Dto.setName(array2[17]);
|
|
|
synthesize_no_3_6.setNo207(Double.valueOf(df.format(gasBoilerHotWaterType)));
|
...
|
...
|
@@ -1506,7 +1520,7 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
/**
|
|
|
* 水源热泵
|
|
|
*/
|
|
|
double electricBoilerCapacity = synthesizeNo26ServiceById.getNo50() * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600 / synthesizeNo26ServiceById.getNo57() / 0.9 / synthesizeNo26ServiceById.getNo119() * Double.parseDouble(String.valueOf(jsonObject.get("hotWaterC"))) / 100;
|
|
|
double electricBoilerCapacity = hotWaterQuota * waterPersonNum * 4.2 * (synthesizeNo26ServiceById.getNo52() - synthesizeNo26ServiceById.getNo51()) / 3600 / synthesizeNo26ServiceById.getNo57() / 0.9 / synthesizeNo26ServiceById.getNo119() * Double.parseDouble(String.valueOf(jsonObject.get("hotWaterC"))) / 100;
|
|
|
No_3_1_1_1Dto no_3_1_1_1Dto = new No_3_1_1_1Dto();
|
|
|
no_3_1_1_1Dto.setName(array2[18]);
|
|
|
synthesize_no_3_6.setNo208(Double.valueOf(df.format(electricBoilerCapacity)));
|
...
|
...
|
@@ -1976,13 +1990,13 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
/**
|
|
|
* 设计电负荷
|
|
|
*/
|
|
|
String zd_name = "no_" + sort.getId();
|
|
|
int electricity = electricityLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
/*String zd_name = "no_" + sort.getId();
|
|
|
int electricity = electricityLoadDataMapper.queryName(zd_name, dict.getId());*/
|
|
|
/**
|
|
|
* 年总需电量
|
|
|
* =10*365*建筑面积面积*设计电负荷*0.8/1000
|
|
|
*/
|
|
|
annualTotalElectricityDemand = synthesizeNo21.getPowerSupplyDays() * synthesizeNo21.getHoursOfPowerSupplyPerDay() * synthesizeNo21.getArchitectureArea() * electricity * 0.8 / 1000;
|
|
|
annualTotalElectricityDemand = synthesizeNo21.getPowerSupplyDays() * synthesizeNo21.getHoursOfPowerSupplyPerDay() * synthesizeNo21.getArchitectureArea() * synthesizeNo21.getDesignElectricLoadIndex() * 0.8 / 1000;
|
|
|
|
|
|
} else if ("2".equals(s)) {
|
|
|
/**
|
...
|
...
|
@@ -1997,19 +2011,20 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
/**
|
|
|
* 散热器 数据库里面的值
|
|
|
*/
|
|
|
hotLoadAll = (double) hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
//hotLoadAll = (double) hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
hotLoadAll = synthesizeNo21.getDesignHeatLoadIndex();
|
|
|
} else if ("2".equals(synthesizeNo21.getHeatEnd())) {
|
|
|
/**
|
|
|
* 地暖
|
|
|
* * 0.9
|
|
|
*/
|
|
|
hotLoadAll = hotLoadDataMapper.queryName(zd_name, dict.getId()) * 0.9;
|
|
|
hotLoadAll = synthesizeNo21.getDesignHeatLoadIndex() * 0.9;
|
|
|
} else if ("3".equals(synthesizeNo21.getHeatEnd())) {
|
|
|
/**
|
|
|
* 等级盘管
|
|
|
* * 2
|
|
|
*/
|
|
|
hotLoadAll = (double) (hotLoadDataMapper.queryName(zd_name, dict.getId()) * 2);
|
|
|
hotLoadAll = synthesizeNo21.getDesignHeatLoadIndex() * 2;
|
|
|
}
|
|
|
Assert.notNull(synthesizeNo21.getHeatDay(), "供热天数为空了");
|
|
|
Integer di = calculatedTemperatureInHeatingRoomMapper.queryName(zd_name, dict.getId());
|
...
|
...
|
@@ -2023,8 +2038,9 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
* @deprecated =10*150*供冷面积*设计冷负荷*0.75/1000
|
|
|
* 年总需热量= 8*供冷天数*供冷面积*设计冷负荷*0.75/1000
|
|
|
*/
|
|
|
String zd_name = "no_" + sort.getId();
|
|
|
int coldLoadAll = coldLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
//String zd_name = "no_" + sort.getId();
|
|
|
//int coldLoadAll = coldLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
Double coldLoadAll = synthesizeNo21.getDesignCoolingLoadIndex();
|
|
|
Assert.notNull(synthesizeNo21.getColdDay(), "供冷天数为空了");
|
|
|
annualTotalCoolingDemand = synthesizeNo21.getCoolingHoursPerDay() * synthesizeNo21.getColdDay() * synthesizeNo21.getColdArea() * coldLoadAll * 0.75 / 1000;
|
|
|
} else if ("4".equals(s)) {
|
...
|
...
|
@@ -2033,8 +2049,9 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
* @deprecated =热水定额*人数*365*0.9/1000
|
|
|
* 年总需热水总量= 热水定额*人数*供热水天数/1000
|
|
|
*/
|
|
|
String zd_name = "no_" + sort.getId();
|
|
|
Double electricity = hotWaterDataMapper.queryName(zd_name, dict.getId());
|
|
|
//String zd_name = "no_" + sort.getId();
|
|
|
Double electricity = synthesizeNo21.getHotWaterQuota();
|
|
|
//Double electricity = hotWaterDataMapper.queryName(zd_name, dict.getId());
|
|
|
Assert.notNull(synthesizeNo21.getWaterDayNum(), "供热水天数为空了");
|
|
|
totalAnnualTotalHotWaterRequirement = electricity * synthesizeNo21.getWaterPersonNum() * synthesizeNo21.getWaterDayNum() / 1000;
|
|
|
}
|
...
|
...
|
@@ -2120,7 +2137,8 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
}
|
|
|
if (!org.springframework.util.StringUtils.isEmpty(calculateLoad)) {
|
|
|
if (calculateLoad.getNo4().equals(calculateLoad.getNo44())) {
|
|
|
electricity += hotWaterDataMapper.queryName(zd_name, cityDict.getId());
|
|
|
//electricity += hotWaterDataMapper.queryName(zd_name, cityDict.getId());
|
|
|
electricity += synthesize_no_2_11.getHotWaterQuota();
|
|
|
} else {
|
|
|
/**
|
|
|
* 年总需热水总量(调整值)*1000/(人数*365*0.9)
|
...
|
...
|
@@ -2179,19 +2197,20 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
/**
|
|
|
* 散热器 数据库里面的值
|
|
|
*/
|
|
|
designHeatLoad += (double) hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
//designHeatLoad += (double) hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
designHeatLoad += synthesize_no_2_1.getDesignHeatLoadIndex();
|
|
|
} else if ("2".equals(synthesize_no_2_1.getHeatEnd())) {
|
|
|
/**
|
|
|
* 地暖
|
|
|
* * 0.9
|
|
|
*/
|
|
|
designHeatLoad += hotLoadDataMapper.queryName(zd_name, dict.getId()) * 0.9;
|
|
|
designHeatLoad += synthesize_no_2_1.getDesignHeatLoadIndex() * 0.9;
|
|
|
} else if ("3".equals(synthesize_no_2_1.getHeatEnd())) {
|
|
|
/**
|
|
|
* 等级盘管
|
|
|
* * 2
|
|
|
*/
|
|
|
designHeatLoad += (double) (hotLoadDataMapper.queryName(zd_name, dict.getId()) * 2);
|
|
|
designHeatLoad += synthesize_no_2_1.getDesignHeatLoadIndex() * 2;
|
|
|
}
|
|
|
}
|
|
|
double v = annualHeatSupply * 1000 / (heatingArea * designHeatLoad) / 130;
|
...
|
...
|
@@ -2219,19 +2238,20 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
/**
|
|
|
* 散热器 数据库里面的值
|
|
|
*/
|
|
|
designCoolingLoad += (double) hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
//designCoolingLoad += (double) hotLoadDataMapper.queryName(zd_name, dict.getId());
|
|
|
designCoolingLoad += synthesize_no_2_1.getDesignHeatLoadIndex();
|
|
|
} else if ("2".equals(synthesize_no_2_1.getHeatEnd())) {
|
|
|
/**
|
|
|
* 地暖
|
|
|
* * 0.9
|
|
|
*/
|
|
|
designCoolingLoad += hotLoadDataMapper.queryName(zd_name, dict.getId()) * 0.9;
|
|
|
designCoolingLoad += synthesize_no_2_1.getDesignHeatLoadIndex() * 0.9;
|
|
|
} else if ("3".equals(synthesize_no_2_1.getHeatEnd())) {
|
|
|
/**
|
|
|
* 等级盘管
|
|
|
* * 2
|
|
|
*/
|
|
|
designCoolingLoad += (double) (hotLoadDataMapper.queryName(zd_name, dict.getId()) * 2);
|
|
|
designCoolingLoad += synthesize_no_2_1.getDesignHeatLoadIndex() * 2;
|
|
|
}
|
|
|
}
|
|
|
double v = annualCoolingCapacity * 1000 / (coolingArea * designCoolingLoad) / 150;
|
...
|
...
|
@@ -2546,7 +2566,7 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
}
|
|
|
EquipmentCapacityDto2 equipmentCapacityVo1 = new EquipmentCapacityDto2();
|
|
|
if (flag) {
|
|
|
equipmentCapacityVo1.setTotal(poweredBy + "kWh");
|
|
|
equipmentCapacityVo1.setTotal(poweredBy + "kW");
|
|
|
} else {
|
|
|
equipmentCapacityVo1.setTotal(format.apply(new BigDecimal(date)) + "kW");
|
|
|
}
|
...
|
...
|
@@ -2788,7 +2808,7 @@ public class ProjectServiceImpl implements ProjectService { |
|
|
date += Double.parseDouble(capacityDto.getData());
|
|
|
}
|
|
|
if (flag) {
|
|
|
equipmentCapacityVo.setTotal(poweredBy + "kWh");
|
|
|
equipmentCapacityVo.setTotal(poweredBy + "kW");
|
|
|
} else {
|
|
|
equipmentCapacityVo.setTotal(df.format(date) + "kW");
|
|
|
}
|
...
|
...
|
|