123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519 |
- #pragma once
- // 下列 ifdef 块是创建使从 DLL 导出更简单的
- // 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DETECTOR_MODEL_DEF_EXPORTS
- // 符号编译的。在使用此 DLL 的
- // 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
- // DETECTOR_MODEL_DEF_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
- // 符号视为是被导出的。
- #define OEM_IF
- #define OEM_NOTIFY
- #define MAX_STRING 1024
- static const char* IMAGE_DEADLINE_TOP = "DeadLineTop";
- static const char* IMAGE_DEADLINE_LEFT = "DeadLineLeft";
- static const char* IMAGE_DEADLINE_RIGHT = "DeadLineRight";
- static const char* IMAGE_DEADLINE_BOTTOM = "DeadLineBottom";
- //typedef enum _Packet_Cmd {
- // PACKET_CMD_NONE = -1,
- // PACKET_CMD_OPEN,
- // PACKET_CMD_CLOSE,
- // PACKET_CMD_GET,
- // PACKET_CMD_UPDATE,
- // PACKET_CMD_ADD,
- // PACKET_CMD_DEL,
- // PACKET_CMD_EXE,
- // PACKET_CMD_DATA,
- // PACKET_CMD_MSG,
- // PACKET_CMD_ONLINE,//设备掉线后重新注册到Root
- // PACKET_CMD_MAX
- //
- //}PACKET_CMD;
- //属性Action
- typedef enum _AttrAction{
- ATTRACTION_GET,
- ATTRACTION_SET,
- ATTRACTION_ADD,
- ATTRACTION_DEL,
- ATTRACTION_UPDATE,
- ATTRACTION_DATA,
- ATTRACTION_MSG,
- ATTRACTION_MAX
- }ATTRACTION;
- //
- //typedef enum _Ret_Status {
- // RET_THREAD_INVALID = -4,//the calling thread is not owner
- // RET_INVALID = -3,//the handle is invalid
- // RET_NOSUPPORT = -2,//device not support
- // RET_TIMEOUT = -1,//超时(无接收命令)
- // RET_FAILED = 0,//执行命令失败
- // RET_PENDING,//设备有接收命令,但无反馈(在一定时间内无反馈情况)
- // RET_SUCCEED,//设备执行命令成功
- // RET_ONGOING,//设备执行命令已经完成,但是没有达成目标.
- // RET_FINISHED,//设备执行命令已经完成,且有达成目标.
- // RET_WARNING
- //}RET_STATUS;
- typedef enum ECOM_FPD_State
- {
- ECOM_FPD_STATE_NOT_INI = 0,
- ECOM_FPD_STATE_ERR,
- ECOM_FPD_STATE_STANDBY,
- ECOM_FPD_STATE_PREPARE,
- ECOM_FPD_STATE_READY,
- ECOM_FPD_STATE_SLEEP,
- ECOM_FPD_STATE_SHUTDOWN,
- ECOM_FPD_STATE_EXIT
- }ECOM_FPD_STATE;
- //------------------------采集命令相关----------------------------------------------------BEGIN
- #define DiosExpireAcqCmd ("ExpireAcqCmd")
- typedef enum _Dios_Expire_Acq_Cmd
- {
- DIOS_EXPIRE_ACQ_ON,
- DIOS_EXPIRE_ACQ_OFF,
- DIOS_EXPIRE_ACQ_MAX
- }EXPIRE_ACQ_CMD;
- //------------------------采集命令相关----------------------------------------------------END
- //------------------------手闸相关----------------------------------------------------BEGIN
- //因为现在没有发生器的模型定义,所以先把手闸相关的定义放到此处
- #define DiosGeneratorSwitch ("GENERATORHSWITCH")
- typedef enum _Dios_Generator_Switch
- {
- GENERATOR_SWITCH_OFF,
- GENERATOR_SWITCH_PREPARE,
- GENERATOR_SWITCH_EXP,
- GENERATOR_SWITCH_MAX
- }GENERATOR_SWITCH;
- //------------------------手闸相关----------------------------------------------------END
- //------------------------Status相关----------------------------------------------------BEGIN
- #define DiosDetectorExpectOp ("DetectorExpectOp")
- typedef enum _Dios_Detector_ExpectOp
- {
- DETECTOR_EXPECT_NONE,
- DETECTOR_EXPECT_ACQ,
- DETECTOR_EXPECT_STOP,
- DETECTOR_EXPECT_MAX
- }DETECTOR_EXPECTOP;
- #define DiosDetectorWorkStatus ("DetectorWorkStatus")
- typedef enum _Dios_Detector_WorkStatus
- {
- DETECTOR_WORK_ACQUIRE,
- DETECTOR_WORK_CALIBRATE,
- DETECTOR_WORK_MAX
- }DETECTOR_WORK_STATUS;
- #define DiosDetectorStatus ("DetectorStatus")
- typedef enum _Dios_Detector_Status
- {
- DETECTOR_STATUS_SHUTDOWN,
- DETECTOR_STATUS_INIT,
- DETECTOR_STATUS_SLEEP,
- DETECTOR_STATUS_WAKEUP,//低能耗,能工作
- DETECTOR_STATUS_STANDBY,//高能耗,能采集
- //DETECTOR_STATUS_ACQ_WAIT,//在STANDBY状态,执行ACQ Action且没到ACQ状态
- DETECTOR_STATUS_ACQ,
- //DETECTOR_STATUS_STANDBY_WAIT,//在ACQ状态,执行StopAcq Action且没到STANDBY状态
- DETECTOR_STATUS_CALIB, //校正状态
- DETECTOR_STATUS_ERROR,
- DETECTOR_STATUS_MAX,
- }DETECTOR_STATUS;
- typedef enum ENUM_SHARE_EVENT_STATE_
- {
- PANEL_CONNECT_ERROR = 0,
- PANEL_ATTACH_START = 1,
- PANEL_CONNECT_OK = 2,
- PANEL_DISCONNECT_SUCCESS = 3,
- PANEL_DISCONNECT_ERROR = 4,
- PANEL_ATTACH_OVER = 5,
- PANEL_ATTACH_FAILED = 6,
- PANEL_ATTACH_NULL = 7,
- PANEL_ATTACH_FAILED_WITH_IMG = 8,
- PANEL_ATTACH_NEWSN = 9,
- PANEL_ATTACH_FAILED_WITHOUT_PERMISSION = 10,
- PANEL_START_STOREDIMAGE = 11,
- PANEL_END_STOREDIMAGE = 12,
- PANEL_EXPORT_AUTONUMOUS_FINISH = 13
- }DETECTOR_SHARE_STATUS;
- #define DiosEcomFPDState ("EcomFPDState")
- #define DiosDetectorAttach ("DetectorAttach")
- #define DiosDetectorAttachedFlag ("FPDAttached")
- #define DiosDetectorConnectStatus ("DetectorConnectStatus")
- typedef enum _Dios_Detector_Connect_Status
- {
- DETECTOR_CONNECT_ERROR = 0,
- DETECTOR_ATTACH_START = 1,
- DETECTOR_CONNECT_OK = 2,
- DETECTOR_DISCONNECT_SUCCESS = 3,
- DETECTOR_DISCONNECT_ERROR = 4,
- DETECTOR_ATTACH_OVER = 5,
- DETECTOR_ATTACH_FAILED = 6,
- DETECTOR_ATTACH_NULL = 7,
- DETECTOR_CONNECT_MAX
- }DETECTOR_CONNECT_STATUS;
- #define DiosDetectorInitialStatus ("DetectorInitialStatus")
- typedef enum _Dios_Detector_Ini_Status
- {
- DETECTOR_INI_START = 0,
- DETECTOR_INI_SUCCESS = 1,
- DETECTOR_INI_FAILED = 2,
- DETECTOR_INI_MAX
- }DETECTOR_INI_STATUS;
- #define DiosDetectorUpdateFWStatus ("DetectorUpdateFWStatus")
- typedef enum _Dios_Detector_UFW_Status
- {
- DETECTOR_UFW_ERROR = 0,
- DETECTOR_UFW_SUCCESS = 1,
- DETECTOR_UFW_START = 2,
- DETECTOR_UFW_ERROR_BATTERY = 3,
- DETECTOR_UFW_ERROR_OMIT = 4,
- DETECTOR_UFW_MAX
- }DETECTOR_UFW_STATUS;
- //------------------------Status相关----------------------------------------------------END
- //------------------------IMAGE相关----------------------------------------------------BEGIN
- typedef enum Image_View_Type
- {
- IMAGE_FULL = 0,
- IMAGE_PREVIEW,
- IMAGE_AEC_PREVIEW,
- IMAGE_CAL
- }IMAGE_VIEW_TYPE;
- #define DiosImageInfo ("ImageInfo")
- #define DiosImageFul ("ImageFull")
- #define DiosImagePrev ("ImagePrev")
- typedef enum Xray_Image_Type
- {
- XRAY_IMAGE_DARK = 0,
- XRAY_IMAGE_XRAYED,
- XRAY_IMAGE_ANY,
- XRAY_IMAGE_MAX
- }XRAY_IMAGE_TYPE;
- //图像类型:IMAGE_VIEW_TYPE
- //图像类型Support:Yes,No
- //用例 : fullimage+yes/no,previmage+yes/no
- #define DiosImageType ("ImageType")
- #define DiosImageViewType ("ImageViewType")
- #define DiosImageViewTypeSupprt ("ImageViewTypeSupprt")
- #define DiosImageHeight ("ImageHeight")
- #define DiosImageWidth ("ImageWidth")
- #define DiosImageBits ("ImageBits")
- #define DiosImageBlockSize ("ImageBlockSize")
- #define DiosImagePixelSpacing ("ImagePixelSpacing")
- #define DiosImageFPDSensitivity ("FPDSensitivity")
- #define DiosImageTargetEXI ("TargetEXI")
- #define DiosImageLeftTrim ("ImageLeftTrim")
- #define DiosImageRightTrim ("ImageRightTrim")
- #define DiosImageTopTrim ("ImageTopTrim")
- #define DiosImageBottomTrim ("ImageBottomTrim")
- #define DiosImageReady ("ImageReady")
- #define DiosImageFetchFlag ("ImageFetchFlag")
- //------------------------AcqMode相关----------------------------------------------------BEGIN
- /*
- 关于AcqModeName:
- 用3个关键字描述,High(Low)Resolution,High(Low)FrameRate,High(Low)Dose.
- 一般情况HighResolution,必跟LowFrameRate,增益可以二选一High(Low)Dose.
- 一般情况LowResolution,跟HighFrameRate,增益LowDose.
- 其他情况,自行脑补...
- 策略上尽量都保持High最好,优先级 HighResolution > LowDose > HighFrameRate
- */
- #define DiosAcqModeName ("AcqModeName")
- //DROC中AcqMode 1-RAD 2-TOMO 3-DDR
- //DMOC中AcqMode 1-RAD 2-AEC Preview
- //DFOC中AcqMode 1-RAD 2- 3-CF 4-PF
- #define DiosAcqMode ("AcqMode") //采集模式
- //------------------------Seq相关----------------------------------------------------BEGIN
- //#define XwindowTitle ("XWINDOW")
- #define DiosXwindowSize ("XwindowSize")
- #define DiosXwindowStatus ("XwindowStatus")
- typedef enum _Xwindow_Status {
- XWINDOW_OFF,
- XWINDOW_ON,
- XWINDOW_MAX
- }XWINDOW_STATUS;
- #define DiosSyncMode ("SyncMode")
- typedef enum _Sync_Mode {
- SYNC_MANUAL = 0,
- SYNC_SOFTWARE = 1,
- SYNC_HARDWARE = 2, //带ECOM同步盒的硬同步
- SYNC_AED = 3,
- SYNC_HARDWARE_DIRECT = 4, //探测器、发生器直连的硬同步
- SYNC_MAX = 5,
- }SYNC_MODE;
- #define DiosHardwareTriggerMode ("HardwareTriggerMode")
- typedef enum _Hardware_Trigger_Mode {
- HW_TRIGGER_NONE = 0,
- HW_TRIGGER_INTERNAL = 1,
- HW_TRIGGER_EXTERNAL = 2,
- HW_TRIGGER_MAX = 3
- }HARDWARE_TRIGGER_MODE;
- #define DiosImageReadingStatus ("ImageReadingStatus") //addbyys20200410 曝光过程中探测器反馈的有图像的状态。
- //目前用于涛影项目,缩短第一二两次曝光的时间间隔
- #define DiosFPDReadyStatus ("FPDReadyStatus") //addbyys20200526 探测器采集Ready的状态。
- //目前用于涛影项目,拼接检查第一帧完毕后发这个消息告知子系统探测器状态
- //------------------------Seq相关----------------------------------------------------END
- #define DiosFrameRate ("FrameRate")
- #define DiosDoseRange ("DoseRange")
- #define DiosSensitivity ("Sensitivity")
- #define AcqModeListTitle ("AcqModeList")
- #define DiosAcqModeIdx ("AcqModeIdx")
- #define DiosLoopCount ("LoopCount")
- typedef enum _TYPE_LOOPCOUNT
- {
- TYPE_LOOP_INFINITE = -1,
- TYPE_LOOP_NONE = 0,
- TYPE_LOOP_ONE = 1,
- TYPE_LOOP_TWO = 2,
- TYPE_LOOP_THREE = 3,
- //...
- }TYPE_LOOPCOUNT;
- #define DiosCorrStrategy ("CorrStrategy")
- /*
- 校正策略:
- 高2位Byte用于FrameCount : 1 --- 16
- 低2位Byte用于FrameType(16BIT) : 0代表Dark,1代表Xray
- 例:
- 低 -------------> 高
- 0x00030004, 0010 0000 ... 1100 0000 ...
-
- FrameCount3,FrameType DDX
- 采集3张,头两张为Dark,第三张为Xray.
- */
- #define DiosFPDCurExamModeKey ("CurExamMode")
- //------------------------AcqMode相关----------------------------------------------------END
- #define DiosBinningX ("BinningX")
- #define DiosBinningY ("BinningY")
- #define DiosZoomX1 ("ZOOMX1")
- #define DiosZoomY1 ("ZOOMY1")
- #define DiosZoomX2 ("ZOOMX2")
- #define DiosZoomY2 ("ZOOMY2")
- //------------------------CalibrationInfo相关----------------------------------------------------BEGIN
- #define DiosGainTitle ("GAIN")
- #define CalibrationInfo2 ("CalibrationInfo")
- #define CalibrationType2 ("CalibrationType")
- #define ValidCorrectionMap ("ValidCorrectionMap")
- #define CorrectionType ("CorrectionType")
- #define CorrectionFlag ("CorrectionFlag")
- #define DarkMapEffectiveTime ("DarkMapEffectiveTime")
- #define XrayMapEffectiveTime ("XrayMapEffectiveTime")
- #define RequestedFrameRate ("RequestedFrameRate")
- #define RequestedDose ("RequestedDose")
- //#define CalibrationStatus ("CalibrationStatus")
- //#define CalibrationFrameFetchFlag ("CalibrationFrameFetchFlag")
- //#define CalibrationProgress ("CalibrationProgress")
- #define AutoDarkCalibrationStatus ("AutoDarkCalibrationStatus")
- typedef enum _Dios_Calibration_Mode
- {
- DIOS_CALIBRATION_MODE_ECOM = 0,
- DIOS_CALIBRATION_MODE_OEM = 1,
- DIOS_CALIBRATION_MODE_MAX
- } DIOS_CALIBRATION_MODE;
- typedef enum _Dios_AutoDarkCalibration_Status {
- DIOS_AUTODARKCALIBRATION_STATUS_START,
- DIOS_AUTODARKCALIBRATION_STATUS_END,
- DIOS_AUTODARKCALIBRATION_STATUS_MAX
- }DIOS_AUTODARKCALIBRATION_STATUS;
- typedef enum _Dios_Calibration_Type {
- DIOS_CALIBRATION_TYPE_NONE,
- DIOS_CALIBRATION_TYPE_DARK,
- DIOS_CALIBRATION_TYPE_XRAY,
- DIOS_CALIBRATION_TYPE_MAX
- }DIOS_CALIBRATION_TYPE;
- typedef enum _Dios_Correction_Type {
- DIOS_CORRECTION_OP_NONE,
- DIOS_CORRECTION_OP_OFFSET,
- DIOS_CORRECTION_OP_GAIN,
- DIOS_CORRECTION_OP_DEFECT = 4,
- DIOS_CORRECTION_OP_GATELINE = 8,
- DIOS_CORRECTION_OP_DARK_NONE = 16,
- DIOS_CORRECTION_OP_DARK_OFFSET = 32,
- DIOS_CORRECTION_OP_DARK_GAIN = 64,
- DIOS_CORRECTION_OP_DARK_DEFECT = 128,
- DIOS_CORRECTION_OP_DARK_GATELINE = 256,
- DIOS_CORRECTION_OP_MAX
- }DIOS_CORRECTION_TYPE;
- typedef enum _Dios_Calibration_Status {
- DIOS_CALIBRATION_STATUS_ERROR,
- DIOS_CALIBRATION_STATUS_STANDBY,
- DIOS_CALIBRATION_STATUS_ACTIVE,
- DIOS_CALIBRATION_STATUS_RUNNING,
- DIOS_CALIBRATION_STATUS_PAUSE,
- DIOS_CALIBRATION_STATUS_PREPARE,
- DIOS_CALIBRATION_STATUS_BESTOPPED,
- DIOS_CALIBRATION_STATUS_MAX
- }DIOS_CALIBRATION_STATUS;
- /*
- 状态变迁:
- --------------------------------------------
- ↓ ↑
- Standby --Active--> (Active) --StartCali--> Running ------> (Pause)
- ↑ ↓
- ----------------------------
- */
- typedef enum _Dios_Calibration_FrameFetch {
- DIOS_CALIBRATION_FRAMEFETCH_NONE,
- DIOS_CALIBRATION_FRAMEFETCH_ONLY,
- DIOS_CALIBRATION_FRAMEFETCH_CONFIRM,
- DIOS_CALIBRATION_FRAMEFETCH_MAX
- }DIOS_CALIBRATION_FRAMEFETCH;
- //------------------------Dios Configuration UI 相关----------------------------------------------------BEGIN
- //--------- Attribute -----------//
- #define DetectorAttribute ("Attribute")
- #define DetectorVender ("DetectorVender")
- #define DetectorModel ("DetectorModel")
- #define DetectorDescription ("Description")
- #define DetectorSerialNumber ("SerialNumber")
- #define WiredIP ("WiredIP")
- #define WirelessIP ("WirelessIP")
- #define LocalIP ("LocalIP")
- #define SyncType ("SyncType")
- #define FPDWorkStation ("WorkStation") //table wall free share
- #define ReConnect ("ReConnect") //从IsConnect改为ReConnect,避免和其它模块定义冲突
- #define ImageFullWidth ("ImageFullWidth")
- #define ImageFullHeight ("ImageFullHeight")
- #define TempMaxLimit ("TempMaxLimit") //温度上限,禁止曝光
- #define TempMinLimit ("TempMinLimit") //温度下限,禁止曝光
- #define TempUpperLimit ("TempUpperLimit") //温度高阈值,警告
- #define TempLowerLimit ("TempLowerLimit") //温度低阈值,警告
- #define TemperatureCalibUpWarn ("TemperatureCalibUpWarn") //校正时温度高阈值,警告
- #define TemperatureCalibLowWarn ("TemperatureCalibLowWarn") //校正时温度低阈值,警告
- #define BatLowerLimit ("BatLowerLimit") //电量低阈值,警告
- #define BatMiniLimit ("BatMiniLimit") //电量下限,禁止曝光
- #define BatLowerLimitInCali ("BatLowerLimitInCali") //校正时电量低阈值,警告
- #define WifiLowerLimit ("WifiLowerLimit")//信号低阈值,警告
- #define WifiMiniLimit ("WifiMiniLimit")//信号下限,禁止曝光
- #define HighPowerTimeout ("HighPowerTimeout") //长时间未曝光休眠
- #define ImageSizeX ("ImageSizeX") //图像有效宽度
- #define ImageSizeY ("ImageSizeY") //图像有效高度
- #define ImageWidth ("ImageWidth") //图像有效宽度
- #define ImageHeight ("ImageHeight") //图像有效高度
- #define WidthOffset ("WidthOffset") //图像左侧裁剪长度
- #define HeightOffset ("HeightOffset") //图像上方裁剪长度
- #define ShowTemperature ("ShowTemperature") //是否显示温度
- #define ShowWifi ("ShowWifi") //是否显示wifi
- #define ShowBattery ("ShowBattery") //是否显示电量
- #define ShowBluetooth ("ShowBluetooth") //是否显示蓝牙
- #define FPDExamMode ("FPDExamMode") //应用检查模式 101、102、201、301、302...
- #define FPDAcqMode ("FPDAcqMode") //探测器的采集模式
- #define FPDModeMatch ("FPDModeMatch") //检查模式和采集模式的对应关系
- #define RawImgWidth ("RawImgWidth")//raw图的宽
- #define RawImgHeight ("RawImgHeight")//raw图的高
- #define OnlyHaveFpd ("OnlyHaveFpd")//环境中是否只有探测器为真实设备 0-否 1-是
- #define SupportDDR ("SupportDDR")//是否支持DDR YES or NO
- #define OperationMode ("OperationMode")//动态探测器ApplicationMode
- #define ExamType ("ExamType")//动态探测器的触发模式 8-外触发 9-内触发
- #define ExiThreshold ("ExiThreshold")//EXI阈值大于该阈值认为图像有效
- #define IsSaveRaw ("IsSaveRaw")//保存图像的级别 0-不保存 1-保存校正前 2-保存校正后 3-都保存
- //--------- AttributeDescription -----------//
- #define AttributeDescription ("Description")
- #define AttributeType ("Type")// "int" "float" "string" ...
- #define AttributeAccess ("Access") // value is "R" or "RW"
- #define AttributeRangeMin ("RangeMin")// pariring RangeMax. 与List互斥
- #define AttributeRangeMax ("RangeMax") // pairing RangeMin. 与List互斥
- #define AttributeList ("List")//("0","ListNum0") ("1","ListNum1") ("2","ListNum2") ("3","ListNum3") ("4","ListNum4")
- #define AttributeRequired ("Required") // value is "TRUE" or "FALSE"
- #define AttributeDefaultValue ("DefaultValue")
- //------------------------Dios Configuration UI 相关----------------------------------------------------END
- //------------------------Dios Other Configuration----------------------------------------BEGIN
- constexpr auto DetectorLogPath = R"(\OEMDrivers\Detector\Conf\Log4CPP.Config.FPD.xml)"; //log的配置文件路径
- //------------------------Dios Other Configuration------------------------------------------END
- //保存过程图
- typedef enum _Dios_SaveRawDataMode
- {
- DIOS_NO_SAVE_RAW,
- DIOS_SAVE_ORIGINAL,
- DIOS_SAVE_AFTER_CROP,
- DIOS_SAVE_AFTER_CALIB,
- DIOS_SAVE_AFTER_GRID_SUPPRESSION, //GridSuppression
- DIOS_SAVE_ALL,
- DIOS_SAVE_MODE_MAX
- } DIOS_SAVE_RAW_DATA_MODE;
- //-------------------------机架相关 临时方案----------------------------------------------------------------
- #define SID ("SID")// Distance Source To Detector
- #define SOD ("SOD")// Distance Source To Patient
- #define AmplificationFactor ("AmplificationFactor")//放大因子 = SID/(SOD-20)
- struct AcqModeInfo
- {
- int nModeID;
- float fFrequency;
- };
|