#include <iostream> 
#include<stdio.h> 
using  namespace  std; 
typedef  struct 
{ 
        unsigned  short  Opcode; 
        unsigned  short  Subfield; 
        unsigned  short  DestProcNum; 
        unsigned  short  SenderProcNum; 
        unsigned  short  Length; 
        unsigned  char  RackNum; 
        unsigned  char  SubRackNum; 
        unsigned  char  CardId; 
        unsigned  char  GuiId; //EMS=0, LCT=1, LCT+EMS=2, might be useful in sending trap and responses destination. 
        unsigned  char  MessageType; // Response = 0, Set = 1, Get = 2, Trap =3, if required for different handling based on message type as it was earlier identified that message will be sent to TPN/TPC in case of SET but only to CSCC in case of GET. 
        unsigned  char  MajVersion; // To specify the version of header (structure of header can vary based on version); default value 0. (for future use) 
        unsigned  char  CardType; //DWDM_TPN = 1,DWDM_TPC = 2,DWDM_CSCC = 3,DWDM_WSS= 4,DWDM_AMP = 5/* DWDM Amplifier Card */,DWDM_PROT = 6/* DWDM Protection Card */,DWDM_OCM = 7/* DWDM OCM Card */,DWDM_SUP = 8/* DWDM Supervisory Card */,DWDM_VOIP = 9/* DWDM VOIP Card */ 
        unsigned  char  CardSubType; // For TPN --> TPN_CGM_PMCS = 1/* TPN - 100G MUXPONDER by PMC Sierra */,TPN_XLGM_AMCC = 2/* TPN - 40G MUXPONDER by AMCC */, TPN_XLGM_CORTINA = 3/* TPN - 40G MUXPONDER by CORTINA */ 
        unsigned  char  NeId; 
        unsigned  char  Rsrvd1; 
        unsigned  char  Rsrvd2; 
        unsigned  char  Rsrvd3; 
        unsigned  char  Rsrvd4; 
        unsigned  char  Rsrvd5; 
        unsigned  short  Date; 
        unsigned  short  Month; 
        unsigned  short  Year; 
        unsigned  short  Hour; 
        unsigned  short  Minute; 
        unsigned  short  Second; 
}  gCsccMsgHeader; 
 
typedef  struct 
{ 
	unsigned  char  mRackNum; 
	unsigned  char  mSubRackNum; 
	unsigned  char  mCardId; 
	unsigned  char  mCardType; 
	unsigned  char  mCardSubType; 
	unsigned  char  mIntfType; 
	unsigned  char  mIntfId; 
	unsigned  char  mParamType; 
	unsigned  char  mGuiId; 
} PmConfigInfo; 
/** 
 * @struct PmLibThreshInfo 
 * @brief thresholds per interface 
*/ 
typedef  struct 
{ 
	PmConfigInfo CardIntfInfo; 
	long  long  TimeStamp; 
	unsigned  char  mParamName[ 38 ] ;  //name of parameter 
	float  mParamValue[ 38 ] ;  // value of parameter 
} PmThreshInfo; //after changing struct to char -- size when MAX_CTRS=40 --> 46+(22×(3+8+36×(1+4)))=4248 
 
/** 
 * @struct PmLibThreshRes 
 * @brief response for get thresholds for sync & per card sending 
*/ 
typedef  struct 
{ 
	gCsccMsgHeader mHdr; 
	long  long  mStartTime; //sent by EMS [for sync from this time onwards] 
	unsigned  char  mPcktType; //1:start,2:continue,3:end packet 
	unsigned  char  mNoOfValidReports; //number of valid reports in array below 
	PmThreshInfo mThresh[ 22 ] ; 
} PmEmsThreshRes,PmEmsThreshTrap; 
int  main( )  { 
	// your code goes here 
 
	printf ( "size %d" ,sizeof ( PmEmsThreshRes) ) ; 
 
 
	return  0 ; 
} 
 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxzdGRpby5oPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIHN0cnVjdAp7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgT3Bjb2RlOwogICAgICAgIHVuc2lnbmVkIHNob3J0IFN1YmZpZWxkOwogICAgICAgIHVuc2lnbmVkIHNob3J0IERlc3RQcm9jTnVtOwogICAgICAgIHVuc2lnbmVkIHNob3J0IFNlbmRlclByb2NOdW07CiAgICAgICAgdW5zaWduZWQgc2hvcnQgTGVuZ3RoOwogICAgICAgIHVuc2lnbmVkIGNoYXIgUmFja051bTsKICAgICAgICB1bnNpZ25lZCBjaGFyIFN1YlJhY2tOdW07CiAgICAgICAgdW5zaWduZWQgY2hhciBDYXJkSWQ7CiAgICAgICAgdW5zaWduZWQgY2hhciBHdWlJZDsvL0VNUz0wLCBMQ1Q9MSwgTENUK0VNUz0yLCBtaWdodCBiZSB1c2VmdWwgaW4gc2VuZGluZyB0cmFwIGFuZCByZXNwb25zZXMgZGVzdGluYXRpb24uCiAgICAgICAgdW5zaWduZWQgY2hhciBNZXNzYWdlVHlwZTsvLyBSZXNwb25zZSA9IDAsIFNldCA9IDEsIEdldCA9IDIsIFRyYXAgPTMsIGlmIHJlcXVpcmVkIGZvciBkaWZmZXJlbnQgaGFuZGxpbmcgYmFzZWQgb24gbWVzc2FnZSB0eXBlIGFzIGl0IHdhcyBlYXJsaWVyIGlkZW50aWZpZWQgdGhhdCBtZXNzYWdlIHdpbGwgYmUgc2VudCB0byBUUE4vVFBDIGluIGNhc2Ugb2YgU0VUIGJ1dCBvbmx5IHRvIENTQ0MgaW4gY2FzZSBvZiBHRVQuCiAgICAgICAgdW5zaWduZWQgY2hhciBNYWpWZXJzaW9uOy8vIFRvIHNwZWNpZnkgdGhlIHZlcnNpb24gb2YgaGVhZGVyIChzdHJ1Y3R1cmUgb2YgaGVhZGVyIGNhbiB2YXJ5IGJhc2VkIG9uIHZlcnNpb24pOyBkZWZhdWx0IHZhbHVlIDAuIChmb3IgZnV0dXJlIHVzZSkKICAgICAgICB1bnNpZ25lZCBjaGFyIENhcmRUeXBlOy8vRFdETV9UUE4gPSAxLERXRE1fVFBDID0gMixEV0RNX0NTQ0MgPSAzLERXRE1fV1NTPSA0LERXRE1fQU1QID0gNS8qIERXRE0gQW1wbGlmaWVyIENhcmQgKi8sRFdETV9QUk9UID0gNi8qIERXRE0gUHJvdGVjdGlvbiBDYXJkICovLERXRE1fT0NNID0gNy8qIERXRE0gT0NNIENhcmQgKi8sRFdETV9TVVAgPSA4LyogRFdETSBTdXBlcnZpc29yeSBDYXJkICovLERXRE1fVk9JUCA9IDkvKiBEV0RNIFZPSVAgQ2FyZCAqLwogICAgICAgIHVuc2lnbmVkIGNoYXIgQ2FyZFN1YlR5cGU7Ly8gRm9yIFRQTiAtLT4gVFBOX0NHTV9QTUNTID0gMS8qIFRQTiAtIDEwMEcgTVVYUE9OREVSIGJ5IFBNQyBTaWVycmEgKi8sVFBOX1hMR01fQU1DQyA9IDIvKiBUUE4gLSA0MEcgTVVYUE9OREVSIGJ5IEFNQ0MgKi8sIFRQTl9YTEdNX0NPUlRJTkEgPSAzLyogVFBOIC0gNDBHIE1VWFBPTkRFUiBieSBDT1JUSU5BICovCiAgICAgICAgdW5zaWduZWQgY2hhciBOZUlkOwogICAgICAgIHVuc2lnbmVkIGNoYXIgUnNydmQxOwogICAgICAgIHVuc2lnbmVkIGNoYXIgUnNydmQyOwogICAgICAgIHVuc2lnbmVkIGNoYXIgUnNydmQzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgUnNydmQ0OwogICAgICAgIHVuc2lnbmVkIGNoYXIgUnNydmQ1OwogICAgICAgIHVuc2lnbmVkIHNob3J0IERhdGU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgTW9udGg7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgWWVhcjsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBIb3VyOwogICAgICAgIHVuc2lnbmVkIHNob3J0IE1pbnV0ZTsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBTZWNvbmQ7Cn0gZ0NzY2NNc2dIZWFkZXI7Cgp0eXBlZGVmIHN0cnVjdAp7Cgl1bnNpZ25lZCBjaGFyIG1SYWNrTnVtOwoJdW5zaWduZWQgY2hhciBtU3ViUmFja051bTsKCXVuc2lnbmVkIGNoYXIgbUNhcmRJZDsKCXVuc2lnbmVkIGNoYXIgbUNhcmRUeXBlOwoJdW5zaWduZWQgY2hhciBtQ2FyZFN1YlR5cGU7Cgl1bnNpZ25lZCBjaGFyIG1JbnRmVHlwZTsKCXVuc2lnbmVkIGNoYXIgbUludGZJZDsKCXVuc2lnbmVkIGNoYXIgbVBhcmFtVHlwZTsKCXVuc2lnbmVkIGNoYXIgbUd1aUlkOwp9UG1Db25maWdJbmZvOwovKioKICogQHN0cnVjdCBQbUxpYlRocmVzaEluZm8KICogQGJyaWVmIHRocmVzaG9sZHMgcGVyIGludGVyZmFjZQoqLwp0eXBlZGVmIHN0cnVjdAp7CglQbUNvbmZpZ0luZm8gQ2FyZEludGZJbmZvOwoJbG9uZyBsb25nIFRpbWVTdGFtcDsKCXVuc2lnbmVkIGNoYXIgbVBhcmFtTmFtZVszOF07IC8vbmFtZSBvZiBwYXJhbWV0ZXIKCWZsb2F0IG1QYXJhbVZhbHVlWzM4XTsgLy8gdmFsdWUgb2YgcGFyYW1ldGVyCn1QbVRocmVzaEluZm87Ly9hZnRlciBjaGFuZ2luZyBzdHJ1Y3QgdG8gY2hhciAtLSBzaXplIHdoZW4gTUFYX0NUUlM9NDAgLS0+IDQ2KygyMsOXKDMrOCszNsOXKDErNCkpKT00MjQ4CgovKioKICogQHN0cnVjdCBQbUxpYlRocmVzaFJlcwogKiBAYnJpZWYgcmVzcG9uc2UgZm9yIGdldCB0aHJlc2hvbGRzIGZvciBzeW5jICYgcGVyIGNhcmQgc2VuZGluZwoqLwp0eXBlZGVmIHN0cnVjdAp7CglnQ3NjY01zZ0hlYWRlciBtSGRyOwoJbG9uZyBsb25nIG1TdGFydFRpbWU7Ly9zZW50IGJ5IEVNUyBbZm9yIHN5bmMgZnJvbSB0aGlzIHRpbWUgb253YXJkc10KCXVuc2lnbmVkIGNoYXIgbVBja3RUeXBlOy8vMTpzdGFydCwyOmNvbnRpbnVlLDM6ZW5kIHBhY2tldAoJdW5zaWduZWQgY2hhciBtTm9PZlZhbGlkUmVwb3J0czsvL251bWJlciBvZiB2YWxpZCByZXBvcnRzIGluIGFycmF5IGJlbG93CglQbVRocmVzaEluZm8gbVRocmVzaFsyMl07Cn1QbUVtc1RocmVzaFJlcyxQbUVtc1RocmVzaFRyYXA7CmludCBtYWluKCkgewoJLy8geW91ciBjb2RlIGdvZXMgaGVyZQoJCglwcmludGYoInNpemUgJWQiLHNpemVvZihQbUVtc1RocmVzaFJlcykpOwoJCgkKCXJldHVybiAwOwp9