using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
|
|
namespace Shared
|
{
|
/// <summary>
|
/// ÓïÑÔÑ¡Ôñ
|
/// </summary>
|
public enum Language
|
{
|
/// <summary>
|
/// ÖÐÎÄ
|
/// </summary>
|
Chinese,
|
/// <summary>
|
/// Ó¢ÎÄ
|
/// </summary>
|
English
|
}
|
/// <summary>
|
/// µ¥Â·µ÷½Ú¿ª¹ØÀàÐÍ
|
/// </summary>
|
public enum ONorOFF
|
{
|
/// <summary>
|
/// È«¿ª 0x64
|
/// </summary>
|
ON = 0x64,
|
/// <summary>
|
/// È«¹Ø 0x00
|
/// </summary>
|
OFF
|
}
|
|
/// <summary>
|
/// ´°Á±×´Ì¬
|
/// </summary>
|
public enum CurtainStatus
|
{
|
/// <summary>
|
/// ¿ª 0x0x
|
/// </summary>
|
Open = 0x01,
|
/// <summary>
|
/// ¹Ø 0x02
|
/// </summary>
|
Close=0x02,
|
/// <summary>
|
/// ͣ 0x00
|
/// </summary>
|
Stop=0x00
|
}
|
|
/// <summary>
|
/// É豸ÀàÐÍ
|
/// </summary>
|
public enum DeviceType
|
{
|
/// <summary>
|
/// ²»Çå³þ
|
/// </summary>
|
UnKown=0x00,
|
/// <summary>
|
/// µ÷¹âµÆ
|
/// </summary>
|
DimmingLight = 0x0001,
|
/// <summary>
|
/// ¿ª¹ØµÆ
|
/// </summary>
|
SwitchLight = 0x0002,
|
/// <summary>
|
/// ´°Á±
|
/// </summary>
|
Curtain = 0x0003,
|
/// <summary>
|
/// µçÊÓ
|
/// </summary>
|
TV = 0x0004,
|
/// <summary>
|
/// ³¡¾°
|
/// </summary>
|
Scene=0x0005,
|
/// <summary>
|
/// ϵÁÐ
|
/// </summary>
|
Series=0x0006,
|
/// <summary>
|
/// ͨÓÿª¹Ø
|
/// </summary>
|
CommonSwitch=0x0007,
|
/// <summary>
|
/// ACÄ£¿é
|
/// </summary>
|
ACHost=0x0008,
|
/// <summary>
|
/// ÉãÏñ»ú
|
/// </summary>
|
Monitor=0x0009,
|
}
|
|
|
/// <summary>
|
/// É豸ÀàÐÍ
|
/// </summary>
|
public enum UIType
|
{
|
/// <summary>
|
/// µ÷¹â¿Ø¼þ = 0x0101
|
/// </summary>
|
Dimming = 0x0101,
|
/// <summary>
|
/// ¿ª¹Ø¿Ø¼þ = 0x0102
|
/// </summary>
|
Switch = 0x0102,
|
/// <summary>
|
/// ´°Á± = 0x0103
|
/// </summary>
|
Curtain = 0x0103,
|
/// <summary>
|
/// ³¡¾°
|
/// </summary>
|
Scene=0x0104,
|
/// <summary>
|
/// ¿Õµ÷
|
/// </summary>
|
ACHost=0x0105,
|
/// <summary>
|
/// ÉãÏñ»ú
|
/// </summary>
|
Monitor=0x0106,
|
}
|
|
/// <summary>
|
/// ²Ù×÷Âë
|
/// </summary>
|
public enum Command
|
{
|
|
/// <summary>
|
/// 0x0000
|
/// ÎÞЧָÁî
|
/// </summary>
|
Invoid = 0x0000,
|
/// <summary>
|
/// 0x000E
|
/// ¶ÁÈ¡±¸×¢ÐÅÏ¢
|
/// </summary>
|
ReadRemark = 0x000E,
|
/// <summary>
|
/// 0x000F
|
/// ¶ÁÈ¡±¸×¢ÐÅÏ¢·´À¡
|
/// </summary>
|
ReadRemarkACK = 0x000F,
|
/// <summary>
|
/// 0x0002
|
/// ³¡¾°¿ØÖÆ
|
/// ÇøÓòºÅ£¨1B£©£¬³¡¾°ºÅ£¨1B£©
|
/// </summary>
|
SetScene = 0x0002,
|
/// <summary>
|
/// 0x0003
|
/// ³¡¾°¿ØÖƻظ´
|
/// ÇøÓòºÅ£¨1B£©£¬³¡¾°ºÅ£¨1B£©£¬»ØÂ·Êý£¨1B£©?ØÂ·¿?Ø×´Ì?§ßÓà n bit λ±íʾ£©n: »ØÂ·¸öÊý £»
|
/// </summary>
|
SetSceneACK = 0x0003,
|
/// <summary>
|
/// 0x001A
|
/// ÐòÁпØÖÆ
|
/// ÇøÓòºÅ£¨1B£©£¬ÐòÁкţ¨1B£©
|
/// </summary>
|
SetSeries = 0x001A,
|
/// <summary>
|
/// 0x001B
|
/// ÐòÁпØÖƻظ´
|
/// ÇøÓòºÅ£¨1B£©£¬ÐòÁкţ¨1B£©
|
/// </summary>
|
SetSeriesACK = 0x001B,
|
/// <summary>
|
/// 0xE01C
|
/// ͨÓÿª¹Ø¿ØÖÆ
|
/// ¿ª¹ØºÅ£¨1B£©£¬¿ª¹Ø×´Ì¬£¨1B£©£¨0XFF£º¿ª£»0£º¹Ø£©
|
/// </summary>
|
SetCommonSwitch = 0xE01C,
|
/// <summary>
|
/// 0xE01D
|
/// ͨÓÿª¹Ø¿ØÖƻظ´
|
/// ¿ª¹ØºÅ£¨1B£©£¬¿ª¹Ø×´Ì¬£¨1B£©£¨1£º¿ª£»0£º¹Ø£©
|
/// </summary>
|
SetCommonACK = 0xE01D,
|
/// <summary>
|
/// 0xE3E0
|
/// ´°Á±¿ØÖÆ
|
/// ´°Á±ºÅ£¨1B£©£¬´°Á±×´Ì¬£¨1B£©£¨0:Í£Ö¹£»1£º¿ª£»2£º±Õ£©
|
/// </summary>
|
SetCurtain = 0xE3E0,
|
/// <summary>
|
/// 0xE3E1
|
/// ´°Á±¿ØÖƻظ´
|
/// ´°Á±ºÅ£¨1B£©£¬´°Á±×´Ì¬£¨1B£©£¨0:Í£Ö¹£»1£º¿ª£»2£º±Õ£©
|
/// </summary>
|
SetCurtainACK = 0xE3E1,
|
/// <summary>
|
/// 0xE3E2
|
/// ´°Á±¿ª¹Ø¶ÁÈ¡
|
/// ´°Á±ºÅ£¨1B£©
|
/// </summary>
|
ReadCurtainStatus = 0xE3E2,
|
/// <summary>
|
/// 0xE3E3
|
/// ´°Á±¿ª¹Ø¶ÁÈ¡»Ø¸´
|
/// ´°Á±ºÅ£¨1B£©£¬´°Á±×´Ì¬£¨1B£©£¨0:Í£Ö¹£»1£º¿ª£»2£º±Õ£©
|
/// </summary>
|
ReadCurtainStatusACK = 0xE3E3,
|
/// <summary>
|
/// 0xE3E4
|
/// ¹ã²¥´°Á±×´Ì¬
|
/// ¸÷´°Á±×´Ì¬£¨ n B£©£¨0:Í£Ö¹£»1£º¿ª£»2£º±Õ£©n£ºÎª´°Á±¸öÊý
|
/// </summary>
|
BroadcastCurtainStatus=0xE3E4,
|
/// <summary>
|
/// 0x0031
|
/// µ÷½Ú¿ØÖÆ
|
/// »ØÂ·ºÅ£¨1B£©£¬¿ª¹ØÁ¿£¨1B£©,0(ʱ¼ä1),0(ʱ¼ä2)
|
/// </summary>
|
SetSingleLight = 0x0031,
|
/// <summary>
|
/// 0x0032
|
/// µ÷½Ú¿ØÖƻظ´
|
/// »ØÂ·ºÅ£¨1B£©£¬0XF8/0XF5(1B) ¿ª¹ØÁ¿£¨1B£©,
|
/// »ØÂ·Êý£¨1B£©£¬»ØÂ·¿ª¹Ø×´Ì¬£¨ Óà n bit λ±íʾ£©
|
/// n: »ØÂ·¸öÊý £»0XF8:³É¹¦£»0XF5£ºÊ§°Ü
|
/// </summary>
|
SetSingleLightACK = 0x0032,
|
/// <summary>
|
/// 0x0033
|
/// µ¥Â·µ÷½Ú¶Áȡ״̬
|
/// </summary>
|
ReadSingleLight = 0x0033,
|
/// <summary>
|
/// 0x0034
|
/// µ¥Â·µ÷½Ú¶Áȡ״̬»Ø¸´
|
/// 1byte£¨»ØÂ·×ÜÊý£©nbyte(ÿ¸ö×Ö½Ú±íʾ¶ÔÓ¦»ØÂ·µÄÁÁ¶È0-100)
|
/// </summary>
|
ReadSingleLightACK = 0x0034,
|
/// <summary>
|
/// 0x2142
|
/// ÃÜÂëÈÏÖ¤
|
/// </summary>
|
SetHotelPassword = 0x2142,
|
/// <summary>
|
/// 0x2143
|
/// ÃÜÂëÈÏÖ¤·µ»Ø
|
/// </summary>
|
SetHotelPasswordACK = 0x2143,
|
/// <summary>
|
/// 0x2077
|
/// ¶ÁÈ¡¾ÆµêÃÅÁå״̬
|
/// ÎÞ¸½¼ÓÊý¾Ý
|
/// </summary>
|
ReadHotelDoorState = 0x2077,
|
/// <summary>
|
/// 0x2078
|
/// ¶ÁÈ¡¾ÆµêÃÅÁå״̬»Ø¸´
|
/// #define _ROOM_DOORBELL_STATUS_READ_ACK 0x2078 //ACK Read doorbell status
|
/// doorbell status(1byte)--1/0(on/off)--bit0(wait)-bit1(disturb)-bit2(clean)-bit3(number)-bit4(bell),bit5(RF)
|
/// Total: 1byte
|
/// </summary>
|
ReadHotelDoorStateACK = 0x2078,
|
/// <summary>
|
/// 0x209B
|
/// ÃÅÁå״̬¹ã²¥
|
/// #define _ROOM_TOUCH_CONTROL_DATA_CMD 0x2142 //CMD Touch Control
|
/// hdlmac(8bytes)
|
/// Control_flag(1byte)---1(Enable)-2(Disable)
|
/// Password(2byte)---(Disable no need these bytes)
|
/// Total: 11bytes
|
/// </summary>
|
BroadcastHotelDoorState = 0x209B,
|
/// <summary>
|
/// 0x2079
|
/// ÃÅÁå״̬¿ØÖÆ
|
///#define _ROOM_DOORBELL_STATUS_SET_CMD 0x2079 //Set doorbell status
|
/// doorbell status(1byte)
|
/// Total: 1byte
|
/// </summary>
|
SetHotelDoorState = 0x2079,
|
/// <summary>
|
/// 0x207A
|
/// ÃÅå×´Ì?ØÖÆ·´À Ì
|
///#define _ROOM_DOORBELL_STATUS_SET_ACK 0x207A //ACK Set doorbell status
|
/// 0xf8/0xf5(1byte)
|
/// same_send_data(1byte)
|
/// Total: 2bytes
|
/// </summary>
|
SetHotelDoorStateACK = 0x207A,
|
/// <summary>
|
/// 0x2057
|
/// ¶ÁÈ¡¾ÆµêËùÓÐ״̬
|
/// hdlma(8bytes)
|
/// </summary>
|
ReadHotelAllState = 0x2057,
|
/// <summary>
|
/// 0x2058
|
/// ¶ÁÈ¡¾ÆµêËùÓÐ״̬»Ø¸´
|
///
|
///#define _ROOM_STATUS_READ_ACK 0x2058 //ACK Read room_states
|
/// hdlmac(8bytes)
|
//***Cancel***// Room_states(1byte)--bit0(check)-bit1(reserved),bit2-5(card type),bit6(stolen alarm)-bit7(help alarm)
|
/// Room_states(1byte)----0(empty),1(On Service),2(reserve),3(chickin),4(Out of Service)---(*new add 2012-10-15*)
|
/// Card_Type(1byte)---6 card type---(*new add 2012-10-15*)
|
/// Current_que_no(1byte)--0-34(set_que)-0xFF(user custom)
|
/// Doorbell_status(1byte)--bit0(wait)-bit1(disturb)-bit2(clean)-bit3(number)-bit4(bell),bit5(RF)
|
/// Alarm_flag(1byte)--bit0(checkout)-bit1(stolen)-bit2(sos)-bit3(door)-bit4(server01)-bit5(server02)-bit6(server03)
|
/// 48loop_level(48bytes)--(0-100)
|
/// Total: 61bytes
|
/// </summary>
|
ReadHotelAllStateACK = 0x2058,
|
/// <summary>
|
/// 0x20D2
|
/// ¾ÆµêÖ÷»úËùÓÐ״̬¹ã²¥
|
/// </summary>
|
BroadcaseHotelAllState = 0x20D2,
|
/// <summary>
|
/// 0x2069
|
/// ´°Á±¿ØÖÆ
|
/// #define _ROOM_CURTAIN_STATUS_SET_ACK 0x206A //ACK Set curtain status
|
/// 0xf8/0xf5(1byte)
|
/// curtain_num(1byte)
|
/// curtain_staus(1byte)
|
/// curtain_Now_staus(1byte)
|
/// Total: 4bytes
|
/// </summary>
|
SetHotelCurtain = 0x2069,
|
/// <summary>
|
/// 0x206A
|
/// ´°Á±¿ØÖƻظ´
|
///#define _ROOM_CURTAIN_STATUS_SET_ACK 0x206A //ACK Set curtain status
|
/// 0xf8/0xf5(1byte)
|
/// curtain_num(1byte)
|
/// curtain_staus(1byte)
|
/// curtain_Now_staus(1byte)
|
/// Total: 4bytes
|
/// </summary>
|
SetHotelCurtainACK = 0x206A,
|
/// <summary>
|
/// 0x2063
|
/// ¶ÁÈ¡¿Õµ÷״̬
|
/// #define _ROOM_AIR_STATUS_READ_CMD 0x2063 //Read air staus
|
/// air No(1byte)--(1-4)
|
/// total: 1byte
|
/// </summary>
|
ReadHotelAC = 0x2063,
|
/// <summary>
|
/// 0x2064
|
/// ¶ÁÈ¡¾ÆµêÖ÷»ú¿Õµ÷״̬»Ø¸´
|
/// #define HOTEL_ROOM_AIR_STATUS_READ_ACK 0x2064 //ACK Read air staus
|
///*air No(1byte)--(1-4)
|
/// air on/off(1byte)--0(off)-1(on)
|
/// air cold temp(1byte)--(0~30"C)/(32~86"H)
|
/// air_control_mode(1byte)--(high 4bit)0(cold)-1(hot)-2(close)-3(auto)---(low 4bit)0(auto)-1(high)-2(middle)-3(low)
|
/// air panel lock flag(1byte)--0(unlock)-1(lock)---##
|
/// air temp(1byte)--(0~40"C)/(32~104"H)
|
/// air hot temp(1byte)--(0~30"C)/(32~86"H)
|
/// air_run_mode(1byte)--same_air_control_mode
|
/// air auto temp(1byte)--(0~30"C)/(32~86"H)
|
/// air_dry_temp(1byte)--(0~30"C)/(32~86"H)
|
/// air_wind_sweep(1byte)--(0~close)/(1~open)
|
/// Total: 11bytes
|
/// </summary>
|
ReadHotelACACK = 0x2064,
|
/// <summary>
|
/// 0x2065
|
/// ¿ØÖƾƵêÖ÷»ú¿Õµ÷
|
/// * #define HOTEL_ROOM_AIR_STATUS_SET_CMD 0x2065 //Set air staus
|
/// air No(1byte)--(1-4)
|
/// air on/off(1byte)--0(off)-1(on)
|
/// air cold temp(1byte)--(0~30"C)/(32~86"H)
|
/// air_control_mode(1byte)--(high 4bit)-0(cold)-1(hot)-2(close)-3(auto)---(low 4bit)-0(auto)-1(high)-2(middle)-3(low)
|
/// air panel lock flag(1byte)--0(unlock)-1(lock)---##
|
/// air hot temp(1byte)--(0~30"C)/(32~86"H)
|
/// air auto temp(1byte)--(0~30"C)/(32~86"H)
|
/// air_dry_temp(1byte)--(0~30"C)/(32~86"H)
|
/// air_wind_sweep(1byte)--(0~close)/(1~open)
|
/// Total: 9bytes
|
/// </summary>
|
SetHotelAC = 0x2065,
|
/// <summary>
|
/// 0x2066
|
/// ¿ØÖƾƵêÖ÷»ú¿Õµ÷»Ø¸´
|
/// #define HOTEL_ROOM_AIR_STATUS_SET_ACK 0x2066 //ACK Set air staus
|
/// 0xf8/0xf5(1byte)
|
/// same_send_data(9bytes)
|
/// Total: 10bytes
|
/// </summary>
|
SetHotelACACK = 0x2066,
|
/// <summary>
|
/// ¶ÁÈ¡¿Õµ÷Ä£¿éÃüÁî
|
/// 1¿Õµ÷ºÅ(1-128)
|
/// 0x1938
|
/// </summary>
|
ReadACMode=0x1938,
|
/// <summary>
|
/// ¶ÁÈ¡¿Õµ÷Ä£¿é»Ø¸´
|
/// 1¿Õµ÷ºÅ(1-128)
|
///2ζÈģʽ(ÉãÊÏCelsius:0£¬»ªÊÏFahrenheit:1)
|
///3»·¾³ÎÂ¶È (ÉãÊÏ0-40£¬»ªÊÏ32-99)
|
///4ÖÆÀä¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///5ÖÆÈÈ¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///6×Ô¶¯¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///7³ýʪ¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///8ģʽ·çËÙʵ¼Ê¹¤×÷״̬, ¸ß4bitģʽ(0 ÖÆÀ䣬1ÖÆÈÈ£¬2ͨ·ç£¬3×Ô¶¯£¬4³ýʪ) µÍ4bit·çËÙ(0 ×Ô¶¯£¬1¸ß·ç£¬2Öз磬3µÍ·ç)
|
///9¿Õµ÷¿ª¹Ø (1¿ª0¹Ø)
|
///10ÉèÖÃģʽ 0 ÖÆÀ䣬1ÖÆÈÈ£¬2ͨ·ç£¬3×Ô¶¯£¬4³ýʪ
|
///11ÉèÖ÷çËÙ 0 ×Ô¶¯£¬1¸ß·ç£¬2Öзç?·ç
|
///12¹¤×÷ģʽ¿ØÖÆÎÂ¶È (ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///13ɨ·çģʽ£º¸ß4bit(ʵ¼Êɨ·ç״̬£º0²»É¨·ç£¬1ɨ·ç)£¬µÍ4bit(ÉèÖÃɨ·çģʽ£º0²»É¨·ç£¬1ɨ·ç)
|
/// 0x1939
|
/// </summary>
|
ReadACModeACK=0x1939,
|
/// <summary>
|
/// ÉèÖÿյ÷Ä£¿éÃüÁî
|
/// 1¿Õµ÷ºÅ(1-128)
|
///2ζÈģʽ(ÉãÊÏCelsius:0£¬»ªÊÏFahrenheit:1)
|
///3»·¾³ÎÂ¶È (ÉãÊÏ0-40£¬»ªÊÏ32-99)
|
///4ÖÆÀä¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///5ÖÆÈÈ¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///6×Ô¶¯¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///7³ýʪ¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///8ģʽ·çËÙʵ¼Ê¹¤×÷״̬, ¸ß4bitģʽ(0 ÖÆÀ䣬1ÖÆÈÈ£¬2ͨ·ç) µÍ4bit·çËÙ(0 ×Ô¶¯£¬1¸ß·ç£¬2Öз磬3µÍ·ç)
|
///9¿Õµ÷¿ª¹Ø (1¿ª0¹Ø)
|
///10ÉèÖÃģʽ 0 ÖÆÀ䣬1ÖÆÈÈ£¬2ͨ·ç£¬3×Ô¶¯£¬4³ýʪ
|
///11ÉèÖ÷çËÙ 0 ×Ô¶¯£¬1¸ß·ç£¬2Öз磬3µÍ·ç
|
///12¹¤×÷ģʽ¿ØÖÆÎÂ¶È (ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///13ɨ·çģʽ£º¸ß4bit(ʵ¼Êɨ·ç״̬£º0²»É¨·ç£¬1ɨ·ç)£¬µÍ4bit(ÉèÖÃɨ·çģʽ£º0²»É¨·ç£¬1ɨ·ç)
|
/// 0x193A
|
/// </summary>
|
SetACMode=0x193A,
|
/// <summary>
|
/// ÉèÖÿյ÷Ä£¿éÃüÁî»Ø¸´
|
/// 1¿Õµ÷ºÅ(1-128)
|
///2ζÈģʽ(ÉãÊÏCelsius:0£¬»ªÊÏFahrenheit:1)
|
///3»·¾³ÎÂ¶È (ÉãÊÏ0-40£¬»ªÊÏ32-99)
|
///4ÖÆÀä¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///5ÖÆÈÈ¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///6×Ô¶¯¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///7³ýʪ¿ØÖÆÎ¶È(ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///8ģʽ·çËÙʵ¼Ê¹¤×÷״̬, ¸ß4bitģʽ(0 ÖÆÀ䣬1ÖÆÈÈ£¬2ͨ·ç£¬3×Ô¶¯£¬4³ýʪ) µÍ4bit·çËÙ(0 ×Ô¶¯£¬1¸ß·ç£¬2Öз磬3µÍ·ç)
|
///9¿Õµ÷¿ª¹Ø (1¿ª0¹Ø)
|
///10ÉèÖÃģʽ 0 ÖÆÀ䣬1ÖÆÈÈ£¬2ͨ·ç£¬3×Ô¶¯£¬4³ýʪ
|
///11ÉèÖ÷çËÙ 0 ×Ô¶¯£¬1¸ß·ç£¬2Öз磬3µÍ·ç
|
///12¹¤×÷ģʽ¿ØÖÆÎÂ¶È (ÉãÊÏ0-30£¬»ªÊÏ32-86)
|
///13ɨ·çģʽ£º¸ß4bit(ʵ¼Êɨ·ç״̬£º0²»É¨·ç£¬1ɨ·ç)£¬µÍ4bit(ÉèÖÃɨ·çģʽ£º0²»É¨·ç£¬1ɨ·ç)
|
/// 0x193B
|
/// </summary>
|
SetACModeACK=0x193B
|
|
}
|
|
/// <summary>
|
/// ·¢ËÍ´ÎÊý
|
/// </summary>
|
public enum SendCount
|
{
|
/// <summary>
|
/// Ò»´Î
|
/// </summary>
|
One = 1,
|
/// <summary>
|
/// ¶þ´Î
|
/// </summary>
|
Two = 2,
|
/// <summary>
|
/// Èý´Î
|
/// </summary>
|
Three = 3
|
}
|
}
|