packages feed

fixhs-0.1: src/Data/FIX/Spec/FIX44.hs

module Data.FIX.Spec.FIX44 ( fix44 ) where
import qualified Data.ByteString.Char8 as C
import qualified Data.LookupTable as LT ( new, insert )
import Data.FIX.Message
import Data.FIX.Parser
import Data.Functor ( (<$>) )
import Data.FIX.Arbitrary 
import Test.QuickCheck ( arbitrary )


tAccount :: FIXTag
tAccount = FIXTag 
   { tName = "Account"
   , tnum = 1
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAdvId :: FIXTag
tAdvId = FIXTag 
   { tName = "AdvId"
   , tnum = 2
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAdvRefID :: FIXTag
tAdvRefID = FIXTag 
   { tName = "AdvRefID"
   , tnum = 3
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAdvSide :: FIXTag
tAdvSide = FIXTag 
   { tName = "AdvSide"
   , tnum = 4
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tAdvTransType :: FIXTag
tAdvTransType = FIXTag 
   { tName = "AdvTransType"
   , tnum = 5
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAvgPx :: FIXTag
tAvgPx = FIXTag 
   { tName = "AvgPx"
   , tnum = 6
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBeginSeqNo :: FIXTag
tBeginSeqNo = FIXTag 
   { tName = "BeginSeqNo"
   , tnum = 7
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tClOrdID :: FIXTag
tClOrdID = FIXTag 
   { tName = "ClOrdID"
   , tnum = 11
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCommission :: FIXTag
tCommission = FIXTag 
   { tName = "Commission"
   , tnum = 12
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCommType :: FIXTag
tCommType = FIXTag 
   { tName = "CommType"
   , tnum = 13
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tCumQty :: FIXTag
tCumQty = FIXTag 
   { tName = "CumQty"
   , tnum = 14
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCurrency :: FIXTag
tCurrency = FIXTag 
   { tName = "Currency"
   , tnum = 15
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tEndSeqNo :: FIXTag
tEndSeqNo = FIXTag 
   { tName = "EndSeqNo"
   , tnum = 16
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tExecID :: FIXTag
tExecID = FIXTag 
   { tName = "ExecID"
   , tnum = 17
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tExecInst :: FIXTag
tExecInst = FIXTag 
   { tName = "ExecInst"
   , tnum = 18
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tExecRefID :: FIXTag
tExecRefID = FIXTag 
   { tName = "ExecRefID"
   , tnum = 19
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tExecTransType :: FIXTag
tExecTransType = FIXTag 
   { tName = "ExecTransType"
   , tnum = 20
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tHandlInst :: FIXTag
tHandlInst = FIXTag 
   { tName = "HandlInst"
   , tnum = 21
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSecurityIDSource :: FIXTag
tSecurityIDSource = FIXTag 
   { tName = "SecurityIDSource"
   , tnum = 22
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tIOIID :: FIXTag
tIOIID = FIXTag 
   { tName = "IOIID"
   , tnum = 23
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tIOIOthSvc :: FIXTag
tIOIOthSvc = FIXTag 
   { tName = "IOIOthSvc"
   , tnum = 24
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tIOIQltyInd :: FIXTag
tIOIQltyInd = FIXTag 
   { tName = "IOIQltyInd"
   , tnum = 25
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tIOIRefID :: FIXTag
tIOIRefID = FIXTag 
   { tName = "IOIRefID"
   , tnum = 26
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tIOIQty :: FIXTag
tIOIQty = FIXTag 
   { tName = "IOIQty"
   , tnum = 27
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tIOITransType :: FIXTag
tIOITransType = FIXTag 
   { tName = "IOITransType"
   , tnum = 28
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tLastCapacity :: FIXTag
tLastCapacity = FIXTag 
   { tName = "LastCapacity"
   , tnum = 29
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tLastMkt :: FIXTag
tLastMkt = FIXTag 
   { tName = "LastMkt"
   , tnum = 30
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLastPx :: FIXTag
tLastPx = FIXTag 
   { tName = "LastPx"
   , tnum = 31
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLastQty :: FIXTag
tLastQty = FIXTag 
   { tName = "LastQty"
   , tnum = 32
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoLinesOfText :: FIXTag
tNoLinesOfText = FIXTag 
   { tName = "NoLinesOfText"
   , tnum = 33
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMsgSeqNum :: FIXTag
tMsgSeqNum = FIXTag 
   { tName = "MsgSeqNum"
   , tnum = 34
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNewSeqNo :: FIXTag
tNewSeqNo = FIXTag 
   { tName = "NewSeqNo"
   , tnum = 36
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrderID :: FIXTag
tOrderID = FIXTag 
   { tName = "OrderID"
   , tnum = 37
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOrderQty :: FIXTag
tOrderQty = FIXTag 
   { tName = "OrderQty"
   , tnum = 38
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOrdStatus :: FIXTag
tOrdStatus = FIXTag 
   { tName = "OrdStatus"
   , tnum = 39
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tOrdType :: FIXTag
tOrdType = FIXTag 
   { tName = "OrdType"
   , tnum = 40
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tOrigClOrdID :: FIXTag
tOrigClOrdID = FIXTag 
   { tName = "OrigClOrdID"
   , tnum = 41
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOrigTime :: FIXTag
tOrigTime = FIXTag 
   { tName = "OrigTime"
   , tnum = 42
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tPossDupFlag :: FIXTag
tPossDupFlag = FIXTag 
   { tName = "PossDupFlag"
   , tnum = 43
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tPrice :: FIXTag
tPrice = FIXTag 
   { tName = "Price"
   , tnum = 44
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tRefSeqNum :: FIXTag
tRefSeqNum = FIXTag 
   { tName = "RefSeqNum"
   , tnum = 45
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRelatdSym :: FIXTag
tRelatdSym = FIXTag 
   { tName = "RelatdSym"
   , tnum = 46
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRule80A :: FIXTag
tRule80A = FIXTag 
   { tName = "Rule80A"
   , tnum = 47
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSecurityID :: FIXTag
tSecurityID = FIXTag 
   { tName = "SecurityID"
   , tnum = 48
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSenderCompID :: FIXTag
tSenderCompID = FIXTag 
   { tName = "SenderCompID"
   , tnum = 49
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSenderSubID :: FIXTag
tSenderSubID = FIXTag 
   { tName = "SenderSubID"
   , tnum = 50
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSendingDate :: FIXTag
tSendingDate = FIXTag 
   { tName = "SendingDate"
   , tnum = 51
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tSendingTime :: FIXTag
tSendingTime = FIXTag 
   { tName = "SendingTime"
   , tnum = 52
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tQuantity :: FIXTag
tQuantity = FIXTag 
   { tName = "Quantity"
   , tnum = 53
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSide :: FIXTag
tSide = FIXTag 
   { tName = "Side"
   , tnum = 54
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSymbol :: FIXTag
tSymbol = FIXTag 
   { tName = "Symbol"
   , tnum = 55
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTargetCompID :: FIXTag
tTargetCompID = FIXTag 
   { tName = "TargetCompID"
   , tnum = 56
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTargetSubID :: FIXTag
tTargetSubID = FIXTag 
   { tName = "TargetSubID"
   , tnum = 57
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tText :: FIXTag
tText = FIXTag 
   { tName = "Text"
   , tnum = 58
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTimeInForce :: FIXTag
tTimeInForce = FIXTag 
   { tName = "TimeInForce"
   , tnum = 59
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tTransactTime :: FIXTag
tTransactTime = FIXTag 
   { tName = "TransactTime"
   , tnum = 60
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tUrgency :: FIXTag
tUrgency = FIXTag 
   { tName = "Urgency"
   , tnum = 61
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tValidUntilTime :: FIXTag
tValidUntilTime = FIXTag 
   { tName = "ValidUntilTime"
   , tnum = 62
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tSettlType :: FIXTag
tSettlType = FIXTag 
   { tName = "SettlType"
   , tnum = 63
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSettlDate :: FIXTag
tSettlDate = FIXTag 
   { tName = "SettlDate"
   , tnum = 64
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tSymbolSfx :: FIXTag
tSymbolSfx = FIXTag 
   { tName = "SymbolSfx"
   , tnum = 65
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tListID :: FIXTag
tListID = FIXTag 
   { tName = "ListID"
   , tnum = 66
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tListSeqNo :: FIXTag
tListSeqNo = FIXTag 
   { tName = "ListSeqNo"
   , tnum = 67
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTotNoOrders :: FIXTag
tTotNoOrders = FIXTag 
   { tName = "TotNoOrders"
   , tnum = 68
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tListExecInst :: FIXTag
tListExecInst = FIXTag 
   { tName = "ListExecInst"
   , tnum = 69
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocID :: FIXTag
tAllocID = FIXTag 
   { tName = "AllocID"
   , tnum = 70
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocTransType :: FIXTag
tAllocTransType = FIXTag 
   { tName = "AllocTransType"
   , tnum = 71
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tRefAllocID :: FIXTag
tRefAllocID = FIXTag 
   { tName = "RefAllocID"
   , tnum = 72
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoOrders :: FIXTag
tNoOrders = FIXTag 
   { tName = "NoOrders"
   , tnum = 73
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAvgPxPrecision :: FIXTag
tAvgPxPrecision = FIXTag 
   { tName = "AvgPxPrecision"
   , tnum = 74
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeDate :: FIXTag
tTradeDate = FIXTag 
   { tName = "TradeDate"
   , tnum = 75
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tExecBroker :: FIXTag
tExecBroker = FIXTag 
   { tName = "ExecBroker"
   , tnum = 76
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPositionEffect :: FIXTag
tPositionEffect = FIXTag 
   { tName = "PositionEffect"
   , tnum = 77
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNoAllocs :: FIXTag
tNoAllocs = FIXTag 
   { tName = "NoAllocs"
   , tnum = 78
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAllocAccount :: FIXTag
tAllocAccount = FIXTag 
   { tName = "AllocAccount"
   , tnum = 79
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocQty :: FIXTag
tAllocQty = FIXTag 
   { tName = "AllocQty"
   , tnum = 80
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tProcessCode :: FIXTag
tProcessCode = FIXTag 
   { tName = "ProcessCode"
   , tnum = 81
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNoRpts :: FIXTag
tNoRpts = FIXTag 
   { tName = "NoRpts"
   , tnum = 82
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRptSeq :: FIXTag
tRptSeq = FIXTag 
   { tName = "RptSeq"
   , tnum = 83
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCxlQty :: FIXTag
tCxlQty = FIXTag 
   { tName = "CxlQty"
   , tnum = 84
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoDlvyInst :: FIXTag
tNoDlvyInst = FIXTag 
   { tName = "NoDlvyInst"
   , tnum = 85
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDlvyInst :: FIXTag
tDlvyInst = FIXTag 
   { tName = "DlvyInst"
   , tnum = 86
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocStatus :: FIXTag
tAllocStatus = FIXTag 
   { tName = "AllocStatus"
   , tnum = 87
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAllocRejCode :: FIXTag
tAllocRejCode = FIXTag 
   { tName = "AllocRejCode"
   , tnum = 88
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSignature :: FIXTag
tSignature = FIXTag 
   { tName = "Signature"
   , tnum = 89
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tSecureDataLen :: FIXTag
tSecureDataLen = FIXTag 
   { tName = "SecureDataLen"
   , tnum = 90
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecureData :: FIXTag
tSecureData = FIXTag 
   { tName = "SecureData"
   , tnum = 91
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tBrokerOfCredit :: FIXTag
tBrokerOfCredit = FIXTag 
   { tName = "BrokerOfCredit"
   , tnum = 92
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSignatureLength :: FIXTag
tSignatureLength = FIXTag 
   { tName = "SignatureLength"
   , tnum = 93
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEmailType :: FIXTag
tEmailType = FIXTag 
   { tName = "EmailType"
   , tnum = 94
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tRawDataLength :: FIXTag
tRawDataLength = FIXTag 
   { tName = "RawDataLength"
   , tnum = 95
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRawData :: FIXTag
tRawData = FIXTag 
   { tName = "RawData"
   , tnum = 96
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tPossResend :: FIXTag
tPossResend = FIXTag 
   { tName = "PossResend"
   , tnum = 97
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tEncryptMethod :: FIXTag
tEncryptMethod = FIXTag 
   { tName = "EncryptMethod"
   , tnum = 98
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tStopPx :: FIXTag
tStopPx = FIXTag 
   { tName = "StopPx"
   , tnum = 99
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tExDestination :: FIXTag
tExDestination = FIXTag 
   { tName = "ExDestination"
   , tnum = 100
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCxlRejReason :: FIXTag
tCxlRejReason = FIXTag 
   { tName = "CxlRejReason"
   , tnum = 102
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrdRejReason :: FIXTag
tOrdRejReason = FIXTag 
   { tName = "OrdRejReason"
   , tnum = 103
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tIOIQualifier :: FIXTag
tIOIQualifier = FIXTag 
   { tName = "IOIQualifier"
   , tnum = 104
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tWaveNo :: FIXTag
tWaveNo = FIXTag 
   { tName = "WaveNo"
   , tnum = 105
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tIssuer :: FIXTag
tIssuer = FIXTag 
   { tName = "Issuer"
   , tnum = 106
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecurityDesc :: FIXTag
tSecurityDesc = FIXTag 
   { tName = "SecurityDesc"
   , tnum = 107
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tHeartBtInt :: FIXTag
tHeartBtInt = FIXTag 
   { tName = "HeartBtInt"
   , tnum = 108
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tClientID :: FIXTag
tClientID = FIXTag 
   { tName = "ClientID"
   , tnum = 109
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMinQty :: FIXTag
tMinQty = FIXTag 
   { tName = "MinQty"
   , tnum = 110
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMaxFloor :: FIXTag
tMaxFloor = FIXTag 
   { tName = "MaxFloor"
   , tnum = 111
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tTestReqID :: FIXTag
tTestReqID = FIXTag 
   { tName = "TestReqID"
   , tnum = 112
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tReportToExch :: FIXTag
tReportToExch = FIXTag 
   { tName = "ReportToExch"
   , tnum = 113
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tLocateReqd :: FIXTag
tLocateReqd = FIXTag 
   { tName = "LocateReqd"
   , tnum = 114
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tOnBehalfOfCompID :: FIXTag
tOnBehalfOfCompID = FIXTag 
   { tName = "OnBehalfOfCompID"
   , tnum = 115
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOnBehalfOfSubID :: FIXTag
tOnBehalfOfSubID = FIXTag 
   { tName = "OnBehalfOfSubID"
   , tnum = 116
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tQuoteID :: FIXTag
tQuoteID = FIXTag 
   { tName = "QuoteID"
   , tnum = 117
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNetMoney :: FIXTag
tNetMoney = FIXTag 
   { tName = "NetMoney"
   , tnum = 118
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlCurrAmt :: FIXTag
tSettlCurrAmt = FIXTag 
   { tName = "SettlCurrAmt"
   , tnum = 119
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlCurrency :: FIXTag
tSettlCurrency = FIXTag 
   { tName = "SettlCurrency"
   , tnum = 120
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tForexReq :: FIXTag
tForexReq = FIXTag 
   { tName = "ForexReq"
   , tnum = 121
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tOrigSendingTime :: FIXTag
tOrigSendingTime = FIXTag 
   { tName = "OrigSendingTime"
   , tnum = 122
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tGapFillFlag :: FIXTag
tGapFillFlag = FIXTag 
   { tName = "GapFillFlag"
   , tnum = 123
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tNoExecs :: FIXTag
tNoExecs = FIXTag 
   { tName = "NoExecs"
   , tnum = 124
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCxlType :: FIXTag
tCxlType = FIXTag 
   { tName = "CxlType"
   , tnum = 125
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tExpireTime :: FIXTag
tExpireTime = FIXTag 
   { tName = "ExpireTime"
   , tnum = 126
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tDKReason :: FIXTag
tDKReason = FIXTag 
   { tName = "DKReason"
   , tnum = 127
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tDeliverToCompID :: FIXTag
tDeliverToCompID = FIXTag 
   { tName = "DeliverToCompID"
   , tnum = 128
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDeliverToSubID :: FIXTag
tDeliverToSubID = FIXTag 
   { tName = "DeliverToSubID"
   , tnum = 129
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tIOINaturalFlag :: FIXTag
tIOINaturalFlag = FIXTag 
   { tName = "IOINaturalFlag"
   , tnum = 130
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tQuoteReqID :: FIXTag
tQuoteReqID = FIXTag 
   { tName = "QuoteReqID"
   , tnum = 131
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tBidPx :: FIXTag
tBidPx = FIXTag 
   { tName = "BidPx"
   , tnum = 132
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOfferPx :: FIXTag
tOfferPx = FIXTag 
   { tName = "OfferPx"
   , tnum = 133
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBidSize :: FIXTag
tBidSize = FIXTag 
   { tName = "BidSize"
   , tnum = 134
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOfferSize :: FIXTag
tOfferSize = FIXTag 
   { tName = "OfferSize"
   , tnum = 135
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoMiscFees :: FIXTag
tNoMiscFees = FIXTag 
   { tName = "NoMiscFees"
   , tnum = 136
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMiscFeeAmt :: FIXTag
tMiscFeeAmt = FIXTag 
   { tName = "MiscFeeAmt"
   , tnum = 137
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMiscFeeCurr :: FIXTag
tMiscFeeCurr = FIXTag 
   { tName = "MiscFeeCurr"
   , tnum = 138
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMiscFeeType :: FIXTag
tMiscFeeType = FIXTag 
   { tName = "MiscFeeType"
   , tnum = 139
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tPrevClosePx :: FIXTag
tPrevClosePx = FIXTag 
   { tName = "PrevClosePx"
   , tnum = 140
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tResetSeqNumFlag :: FIXTag
tResetSeqNumFlag = FIXTag 
   { tName = "ResetSeqNumFlag"
   , tnum = 141
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tSenderLocationID :: FIXTag
tSenderLocationID = FIXTag 
   { tName = "SenderLocationID"
   , tnum = 142
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTargetLocationID :: FIXTag
tTargetLocationID = FIXTag 
   { tName = "TargetLocationID"
   , tnum = 143
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOnBehalfOfLocationID :: FIXTag
tOnBehalfOfLocationID = FIXTag 
   { tName = "OnBehalfOfLocationID"
   , tnum = 144
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDeliverToLocationID :: FIXTag
tDeliverToLocationID = FIXTag 
   { tName = "DeliverToLocationID"
   , tnum = 145
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoRelatedSym :: FIXTag
tNoRelatedSym = FIXTag 
   { tName = "NoRelatedSym"
   , tnum = 146
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSubject :: FIXTag
tSubject = FIXTag 
   { tName = "Subject"
   , tnum = 147
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tHeadline :: FIXTag
tHeadline = FIXTag 
   { tName = "Headline"
   , tnum = 148
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tURLLink :: FIXTag
tURLLink = FIXTag 
   { tName = "URLLink"
   , tnum = 149
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tExecType :: FIXTag
tExecType = FIXTag 
   { tName = "ExecType"
   , tnum = 150
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tLeavesQty :: FIXTag
tLeavesQty = FIXTag 
   { tName = "LeavesQty"
   , tnum = 151
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCashOrderQty :: FIXTag
tCashOrderQty = FIXTag 
   { tName = "CashOrderQty"
   , tnum = 152
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAllocAvgPx :: FIXTag
tAllocAvgPx = FIXTag 
   { tName = "AllocAvgPx"
   , tnum = 153
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAllocNetMoney :: FIXTag
tAllocNetMoney = FIXTag 
   { tName = "AllocNetMoney"
   , tnum = 154
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlCurrFxRate :: FIXTag
tSettlCurrFxRate = FIXTag 
   { tName = "SettlCurrFxRate"
   , tnum = 155
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlCurrFxRateCalc :: FIXTag
tSettlCurrFxRateCalc = FIXTag 
   { tName = "SettlCurrFxRateCalc"
   , tnum = 156
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNumDaysInterest :: FIXTag
tNumDaysInterest = FIXTag 
   { tName = "NumDaysInterest"
   , tnum = 157
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAccruedInterestRate :: FIXTag
tAccruedInterestRate = FIXTag 
   { tName = "AccruedInterestRate"
   , tnum = 158
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAccruedInterestAmt :: FIXTag
tAccruedInterestAmt = FIXTag 
   { tName = "AccruedInterestAmt"
   , tnum = 159
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlInstMode :: FIXTag
tSettlInstMode = FIXTag 
   { tName = "SettlInstMode"
   , tnum = 160
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tAllocText :: FIXTag
tAllocText = FIXTag 
   { tName = "AllocText"
   , tnum = 161
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlInstID :: FIXTag
tSettlInstID = FIXTag 
   { tName = "SettlInstID"
   , tnum = 162
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlInstTransType :: FIXTag
tSettlInstTransType = FIXTag 
   { tName = "SettlInstTransType"
   , tnum = 163
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tEmailThreadID :: FIXTag
tEmailThreadID = FIXTag 
   { tName = "EmailThreadID"
   , tnum = 164
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlInstSource :: FIXTag
tSettlInstSource = FIXTag 
   { tName = "SettlInstSource"
   , tnum = 165
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSettlLocation :: FIXTag
tSettlLocation = FIXTag 
   { tName = "SettlLocation"
   , tnum = 166
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecurityType :: FIXTag
tSecurityType = FIXTag 
   { tName = "SecurityType"
   , tnum = 167
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tEffectiveTime :: FIXTag
tEffectiveTime = FIXTag 
   { tName = "EffectiveTime"
   , tnum = 168
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tStandInstDbType :: FIXTag
tStandInstDbType = FIXTag 
   { tName = "StandInstDbType"
   , tnum = 169
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tStandInstDbName :: FIXTag
tStandInstDbName = FIXTag 
   { tName = "StandInstDbName"
   , tnum = 170
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tStandInstDbID :: FIXTag
tStandInstDbID = FIXTag 
   { tName = "StandInstDbID"
   , tnum = 171
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlDeliveryType :: FIXTag
tSettlDeliveryType = FIXTag 
   { tName = "SettlDeliveryType"
   , tnum = 172
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSettlDepositoryCode :: FIXTag
tSettlDepositoryCode = FIXTag 
   { tName = "SettlDepositoryCode"
   , tnum = 173
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlBrkrCode :: FIXTag
tSettlBrkrCode = FIXTag 
   { tName = "SettlBrkrCode"
   , tnum = 174
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlInstCode :: FIXTag
tSettlInstCode = FIXTag 
   { tName = "SettlInstCode"
   , tnum = 175
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecuritySettlAgentName :: FIXTag
tSecuritySettlAgentName = FIXTag 
   { tName = "SecuritySettlAgentName"
   , tnum = 176
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecuritySettlAgentCode :: FIXTag
tSecuritySettlAgentCode = FIXTag 
   { tName = "SecuritySettlAgentCode"
   , tnum = 177
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecuritySettlAgentAcctNum :: FIXTag
tSecuritySettlAgentAcctNum = FIXTag 
   { tName = "SecuritySettlAgentAcctNum"
   , tnum = 178
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecuritySettlAgentAcctName :: FIXTag
tSecuritySettlAgentAcctName = FIXTag 
   { tName = "SecuritySettlAgentAcctName"
   , tnum = 179
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecuritySettlAgentContactName :: FIXTag
tSecuritySettlAgentContactName = FIXTag 
   { tName = "SecuritySettlAgentContactName"
   , tnum = 180
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecuritySettlAgentContactPhone :: FIXTag
tSecuritySettlAgentContactPhone = FIXTag 
   { tName = "SecuritySettlAgentContactPhone"
   , tnum = 181
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashSettlAgentName :: FIXTag
tCashSettlAgentName = FIXTag 
   { tName = "CashSettlAgentName"
   , tnum = 182
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashSettlAgentCode :: FIXTag
tCashSettlAgentCode = FIXTag 
   { tName = "CashSettlAgentCode"
   , tnum = 183
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashSettlAgentAcctNum :: FIXTag
tCashSettlAgentAcctNum = FIXTag 
   { tName = "CashSettlAgentAcctNum"
   , tnum = 184
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashSettlAgentAcctName :: FIXTag
tCashSettlAgentAcctName = FIXTag 
   { tName = "CashSettlAgentAcctName"
   , tnum = 185
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashSettlAgentContactName :: FIXTag
tCashSettlAgentContactName = FIXTag 
   { tName = "CashSettlAgentContactName"
   , tnum = 186
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashSettlAgentContactPhone :: FIXTag
tCashSettlAgentContactPhone = FIXTag 
   { tName = "CashSettlAgentContactPhone"
   , tnum = 187
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tBidSpotRate :: FIXTag
tBidSpotRate = FIXTag 
   { tName = "BidSpotRate"
   , tnum = 188
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBidForwardPoints :: FIXTag
tBidForwardPoints = FIXTag 
   { tName = "BidForwardPoints"
   , tnum = 189
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOfferSpotRate :: FIXTag
tOfferSpotRate = FIXTag 
   { tName = "OfferSpotRate"
   , tnum = 190
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOfferForwardPoints :: FIXTag
tOfferForwardPoints = FIXTag 
   { tName = "OfferForwardPoints"
   , tnum = 191
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOrderQty2 :: FIXTag
tOrderQty2 = FIXTag 
   { tName = "OrderQty2"
   , tnum = 192
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlDate2 :: FIXTag
tSettlDate2 = FIXTag 
   { tName = "SettlDate2"
   , tnum = 193
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tLastSpotRate :: FIXTag
tLastSpotRate = FIXTag 
   { tName = "LastSpotRate"
   , tnum = 194
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLastForwardPoints :: FIXTag
tLastForwardPoints = FIXTag 
   { tName = "LastForwardPoints"
   , tnum = 195
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAllocLinkID :: FIXTag
tAllocLinkID = FIXTag 
   { tName = "AllocLinkID"
   , tnum = 196
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocLinkType :: FIXTag
tAllocLinkType = FIXTag 
   { tName = "AllocLinkType"
   , tnum = 197
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecondaryOrderID :: FIXTag
tSecondaryOrderID = FIXTag 
   { tName = "SecondaryOrderID"
   , tnum = 198
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoIOIQualifiers :: FIXTag
tNoIOIQualifiers = FIXTag 
   { tName = "NoIOIQualifiers"
   , tnum = 199
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMaturityMonthYear :: FIXTag
tMaturityMonthYear = FIXTag 
   { tName = "MaturityMonthYear"
   , tnum = 200
   , tparser = toFIXMonthYear
   , arbitraryValue = FIXMonthYear <$> arbitrary }

tPutOrCall :: FIXTag
tPutOrCall = FIXTag 
   { tName = "PutOrCall"
   , tnum = 201
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tStrikePrice :: FIXTag
tStrikePrice = FIXTag 
   { tName = "StrikePrice"
   , tnum = 202
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCoveredOrUncovered :: FIXTag
tCoveredOrUncovered = FIXTag 
   { tName = "CoveredOrUncovered"
   , tnum = 203
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCustomerOrFirm :: FIXTag
tCustomerOrFirm = FIXTag 
   { tName = "CustomerOrFirm"
   , tnum = 204
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMaturityDay :: FIXTag
tMaturityDay = FIXTag 
   { tName = "MaturityDay"
   , tnum = 205
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOptAttribute :: FIXTag
tOptAttribute = FIXTag 
   { tName = "OptAttribute"
   , tnum = 206
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSecurityExchange :: FIXTag
tSecurityExchange = FIXTag 
   { tName = "SecurityExchange"
   , tnum = 207
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNotifyBrokerOfCredit :: FIXTag
tNotifyBrokerOfCredit = FIXTag 
   { tName = "NotifyBrokerOfCredit"
   , tnum = 208
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tAllocHandlInst :: FIXTag
tAllocHandlInst = FIXTag 
   { tName = "AllocHandlInst"
   , tnum = 209
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMaxShow :: FIXTag
tMaxShow = FIXTag 
   { tName = "MaxShow"
   , tnum = 210
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPegOffsetValue :: FIXTag
tPegOffsetValue = FIXTag 
   { tName = "PegOffsetValue"
   , tnum = 211
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tXmlDataLen :: FIXTag
tXmlDataLen = FIXTag 
   { tName = "XmlDataLen"
   , tnum = 212
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tXmlData :: FIXTag
tXmlData = FIXTag 
   { tName = "XmlData"
   , tnum = 213
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tSettlInstRefID :: FIXTag
tSettlInstRefID = FIXTag 
   { tName = "SettlInstRefID"
   , tnum = 214
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoRoutingIDs :: FIXTag
tNoRoutingIDs = FIXTag 
   { tName = "NoRoutingIDs"
   , tnum = 215
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRoutingType :: FIXTag
tRoutingType = FIXTag 
   { tName = "RoutingType"
   , tnum = 216
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRoutingID :: FIXTag
tRoutingID = FIXTag 
   { tName = "RoutingID"
   , tnum = 217
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSpread :: FIXTag
tSpread = FIXTag 
   { tName = "Spread"
   , tnum = 218
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBenchmark :: FIXTag
tBenchmark = FIXTag 
   { tName = "Benchmark"
   , tnum = 219
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tBenchmarkCurveCurrency :: FIXTag
tBenchmarkCurveCurrency = FIXTag 
   { tName = "BenchmarkCurveCurrency"
   , tnum = 220
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tBenchmarkCurveName :: FIXTag
tBenchmarkCurveName = FIXTag 
   { tName = "BenchmarkCurveName"
   , tnum = 221
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tBenchmarkCurvePoint :: FIXTag
tBenchmarkCurvePoint = FIXTag 
   { tName = "BenchmarkCurvePoint"
   , tnum = 222
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCouponRate :: FIXTag
tCouponRate = FIXTag 
   { tName = "CouponRate"
   , tnum = 223
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCouponPaymentDate :: FIXTag
tCouponPaymentDate = FIXTag 
   { tName = "CouponPaymentDate"
   , tnum = 224
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tIssueDate :: FIXTag
tIssueDate = FIXTag 
   { tName = "IssueDate"
   , tnum = 225
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tRepurchaseTerm :: FIXTag
tRepurchaseTerm = FIXTag 
   { tName = "RepurchaseTerm"
   , tnum = 226
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRepurchaseRate :: FIXTag
tRepurchaseRate = FIXTag 
   { tName = "RepurchaseRate"
   , tnum = 227
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tFactor :: FIXTag
tFactor = FIXTag 
   { tName = "Factor"
   , tnum = 228
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tTradeOriginationDate :: FIXTag
tTradeOriginationDate = FIXTag 
   { tName = "TradeOriginationDate"
   , tnum = 229
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tExDate :: FIXTag
tExDate = FIXTag 
   { tName = "ExDate"
   , tnum = 230
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tContractMultiplier :: FIXTag
tContractMultiplier = FIXTag 
   { tName = "ContractMultiplier"
   , tnum = 231
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoStipulations :: FIXTag
tNoStipulations = FIXTag 
   { tName = "NoStipulations"
   , tnum = 232
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tStipulationType :: FIXTag
tStipulationType = FIXTag 
   { tName = "StipulationType"
   , tnum = 233
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tStipulationValue :: FIXTag
tStipulationValue = FIXTag 
   { tName = "StipulationValue"
   , tnum = 234
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tYieldType :: FIXTag
tYieldType = FIXTag 
   { tName = "YieldType"
   , tnum = 235
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tYield :: FIXTag
tYield = FIXTag 
   { tName = "Yield"
   , tnum = 236
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tTotalTakedown :: FIXTag
tTotalTakedown = FIXTag 
   { tName = "TotalTakedown"
   , tnum = 237
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tConcession :: FIXTag
tConcession = FIXTag 
   { tName = "Concession"
   , tnum = 238
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tRepoCollateralSecurityType :: FIXTag
tRepoCollateralSecurityType = FIXTag 
   { tName = "RepoCollateralSecurityType"
   , tnum = 239
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRedemptionDate :: FIXTag
tRedemptionDate = FIXTag 
   { tName = "RedemptionDate"
   , tnum = 240
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tUnderlyingCouponPaymentDate :: FIXTag
tUnderlyingCouponPaymentDate = FIXTag 
   { tName = "UnderlyingCouponPaymentDate"
   , tnum = 241
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tUnderlyingIssueDate :: FIXTag
tUnderlyingIssueDate = FIXTag 
   { tName = "UnderlyingIssueDate"
   , tnum = 242
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tUnderlyingRepoCollateralSecurityType :: FIXTag
tUnderlyingRepoCollateralSecurityType = FIXTag 
   { tName = "UnderlyingRepoCollateralSecurityType"
   , tnum = 243
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingRepurchaseTerm :: FIXTag
tUnderlyingRepurchaseTerm = FIXTag 
   { tName = "UnderlyingRepurchaseTerm"
   , tnum = 244
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingRepurchaseRate :: FIXTag
tUnderlyingRepurchaseRate = FIXTag 
   { tName = "UnderlyingRepurchaseRate"
   , tnum = 245
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingFactor :: FIXTag
tUnderlyingFactor = FIXTag 
   { tName = "UnderlyingFactor"
   , tnum = 246
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingRedemptionDate :: FIXTag
tUnderlyingRedemptionDate = FIXTag 
   { tName = "UnderlyingRedemptionDate"
   , tnum = 247
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tLegCouponPaymentDate :: FIXTag
tLegCouponPaymentDate = FIXTag 
   { tName = "LegCouponPaymentDate"
   , tnum = 248
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tLegIssueDate :: FIXTag
tLegIssueDate = FIXTag 
   { tName = "LegIssueDate"
   , tnum = 249
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tLegRepoCollateralSecurityType :: FIXTag
tLegRepoCollateralSecurityType = FIXTag 
   { tName = "LegRepoCollateralSecurityType"
   , tnum = 250
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegRepurchaseTerm :: FIXTag
tLegRepurchaseTerm = FIXTag 
   { tName = "LegRepurchaseTerm"
   , tnum = 251
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegRepurchaseRate :: FIXTag
tLegRepurchaseRate = FIXTag 
   { tName = "LegRepurchaseRate"
   , tnum = 252
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegFactor :: FIXTag
tLegFactor = FIXTag 
   { tName = "LegFactor"
   , tnum = 253
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegRedemptionDate :: FIXTag
tLegRedemptionDate = FIXTag 
   { tName = "LegRedemptionDate"
   , tnum = 254
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tCreditRating :: FIXTag
tCreditRating = FIXTag 
   { tName = "CreditRating"
   , tnum = 255
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingCreditRating :: FIXTag
tUnderlyingCreditRating = FIXTag 
   { tName = "UnderlyingCreditRating"
   , tnum = 256
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegCreditRating :: FIXTag
tLegCreditRating = FIXTag 
   { tName = "LegCreditRating"
   , tnum = 257
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradedFlatSwitch :: FIXTag
tTradedFlatSwitch = FIXTag 
   { tName = "TradedFlatSwitch"
   , tnum = 258
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tBasisFeatureDate :: FIXTag
tBasisFeatureDate = FIXTag 
   { tName = "BasisFeatureDate"
   , tnum = 259
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tBasisFeaturePrice :: FIXTag
tBasisFeaturePrice = FIXTag 
   { tName = "BasisFeaturePrice"
   , tnum = 260
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMDReqID :: FIXTag
tMDReqID = FIXTag 
   { tName = "MDReqID"
   , tnum = 262
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSubscriptionRequestType :: FIXTag
tSubscriptionRequestType = FIXTag 
   { tName = "SubscriptionRequestType"
   , tnum = 263
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMarketDepth :: FIXTag
tMarketDepth = FIXTag 
   { tName = "MarketDepth"
   , tnum = 264
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMDUpdateType :: FIXTag
tMDUpdateType = FIXTag 
   { tName = "MDUpdateType"
   , tnum = 265
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAggregatedBook :: FIXTag
tAggregatedBook = FIXTag 
   { tName = "AggregatedBook"
   , tnum = 266
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tNoMDEntryTypes :: FIXTag
tNoMDEntryTypes = FIXTag 
   { tName = "NoMDEntryTypes"
   , tnum = 267
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoMDEntries :: FIXTag
tNoMDEntries = FIXTag 
   { tName = "NoMDEntries"
   , tnum = 268
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMDEntryType :: FIXTag
tMDEntryType = FIXTag 
   { tName = "MDEntryType"
   , tnum = 269
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMDEntryPx :: FIXTag
tMDEntryPx = FIXTag 
   { tName = "MDEntryPx"
   , tnum = 270
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMDEntrySize :: FIXTag
tMDEntrySize = FIXTag 
   { tName = "MDEntrySize"
   , tnum = 271
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMDEntryDate :: FIXTag
tMDEntryDate = FIXTag 
   { tName = "MDEntryDate"
   , tnum = 272
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tMDEntryTime :: FIXTag
tMDEntryTime = FIXTag 
   { tName = "MDEntryTime"
   , tnum = 273
   , tparser = toFIXTimeOnly
   , arbitraryValue = FIXTimeOnly <$> arbitrary }

tTickDirection :: FIXTag
tTickDirection = FIXTag 
   { tName = "TickDirection"
   , tnum = 274
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMDMkt :: FIXTag
tMDMkt = FIXTag 
   { tName = "MDMkt"
   , tnum = 275
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tQuoteCondition :: FIXTag
tQuoteCondition = FIXTag 
   { tName = "QuoteCondition"
   , tnum = 276
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tTradeCondition :: FIXTag
tTradeCondition = FIXTag 
   { tName = "TradeCondition"
   , tnum = 277
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tMDEntryID :: FIXTag
tMDEntryID = FIXTag 
   { tName = "MDEntryID"
   , tnum = 278
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMDUpdateAction :: FIXTag
tMDUpdateAction = FIXTag 
   { tName = "MDUpdateAction"
   , tnum = 279
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMDEntryRefID :: FIXTag
tMDEntryRefID = FIXTag 
   { tName = "MDEntryRefID"
   , tnum = 280
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMDReqRejReason :: FIXTag
tMDReqRejReason = FIXTag 
   { tName = "MDReqRejReason"
   , tnum = 281
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMDEntryOriginator :: FIXTag
tMDEntryOriginator = FIXTag 
   { tName = "MDEntryOriginator"
   , tnum = 282
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLocationID :: FIXTag
tLocationID = FIXTag 
   { tName = "LocationID"
   , tnum = 283
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDeskID :: FIXTag
tDeskID = FIXTag 
   { tName = "DeskID"
   , tnum = 284
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDeleteReason :: FIXTag
tDeleteReason = FIXTag 
   { tName = "DeleteReason"
   , tnum = 285
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tOpenCloseSettlFlag :: FIXTag
tOpenCloseSettlFlag = FIXTag 
   { tName = "OpenCloseSettlFlag"
   , tnum = 286
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tSellerDays :: FIXTag
tSellerDays = FIXTag 
   { tName = "SellerDays"
   , tnum = 287
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMDEntryBuyer :: FIXTag
tMDEntryBuyer = FIXTag 
   { tName = "MDEntryBuyer"
   , tnum = 288
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMDEntrySeller :: FIXTag
tMDEntrySeller = FIXTag 
   { tName = "MDEntrySeller"
   , tnum = 289
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMDEntryPositionNo :: FIXTag
tMDEntryPositionNo = FIXTag 
   { tName = "MDEntryPositionNo"
   , tnum = 290
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tFinancialStatus :: FIXTag
tFinancialStatus = FIXTag 
   { tName = "FinancialStatus"
   , tnum = 291
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tCorporateAction :: FIXTag
tCorporateAction = FIXTag 
   { tName = "CorporateAction"
   , tnum = 292
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tDefBidSize :: FIXTag
tDefBidSize = FIXTag 
   { tName = "DefBidSize"
   , tnum = 293
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tDefOfferSize :: FIXTag
tDefOfferSize = FIXTag 
   { tName = "DefOfferSize"
   , tnum = 294
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoQuoteEntries :: FIXTag
tNoQuoteEntries = FIXTag 
   { tName = "NoQuoteEntries"
   , tnum = 295
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoQuoteSets :: FIXTag
tNoQuoteSets = FIXTag 
   { tName = "NoQuoteSets"
   , tnum = 296
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQuoteStatus :: FIXTag
tQuoteStatus = FIXTag 
   { tName = "QuoteStatus"
   , tnum = 297
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQuoteCancelType :: FIXTag
tQuoteCancelType = FIXTag 
   { tName = "QuoteCancelType"
   , tnum = 298
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQuoteEntryID :: FIXTag
tQuoteEntryID = FIXTag 
   { tName = "QuoteEntryID"
   , tnum = 299
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tQuoteRejectReason :: FIXTag
tQuoteRejectReason = FIXTag 
   { tName = "QuoteRejectReason"
   , tnum = 300
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQuoteResponseLevel :: FIXTag
tQuoteResponseLevel = FIXTag 
   { tName = "QuoteResponseLevel"
   , tnum = 301
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQuoteSetID :: FIXTag
tQuoteSetID = FIXTag 
   { tName = "QuoteSetID"
   , tnum = 302
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tQuoteRequestType :: FIXTag
tQuoteRequestType = FIXTag 
   { tName = "QuoteRequestType"
   , tnum = 303
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTotNoQuoteEntries :: FIXTag
tTotNoQuoteEntries = FIXTag 
   { tName = "TotNoQuoteEntries"
   , tnum = 304
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingSecurityIDSource :: FIXTag
tUnderlyingSecurityIDSource = FIXTag 
   { tName = "UnderlyingSecurityIDSource"
   , tnum = 305
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingIssuer :: FIXTag
tUnderlyingIssuer = FIXTag 
   { tName = "UnderlyingIssuer"
   , tnum = 306
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSecurityDesc :: FIXTag
tUnderlyingSecurityDesc = FIXTag 
   { tName = "UnderlyingSecurityDesc"
   , tnum = 307
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSecurityExchange :: FIXTag
tUnderlyingSecurityExchange = FIXTag 
   { tName = "UnderlyingSecurityExchange"
   , tnum = 308
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSecurityID :: FIXTag
tUnderlyingSecurityID = FIXTag 
   { tName = "UnderlyingSecurityID"
   , tnum = 309
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSecurityType :: FIXTag
tUnderlyingSecurityType = FIXTag 
   { tName = "UnderlyingSecurityType"
   , tnum = 310
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSymbol :: FIXTag
tUnderlyingSymbol = FIXTag 
   { tName = "UnderlyingSymbol"
   , tnum = 311
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSymbolSfx :: FIXTag
tUnderlyingSymbolSfx = FIXTag 
   { tName = "UnderlyingSymbolSfx"
   , tnum = 312
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingMaturityMonthYear :: FIXTag
tUnderlyingMaturityMonthYear = FIXTag 
   { tName = "UnderlyingMaturityMonthYear"
   , tnum = 313
   , tparser = toFIXMonthYear
   , arbitraryValue = FIXMonthYear <$> arbitrary }

tUnderlyingMaturityDay :: FIXTag
tUnderlyingMaturityDay = FIXTag 
   { tName = "UnderlyingMaturityDay"
   , tnum = 314
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingPutOrCall :: FIXTag
tUnderlyingPutOrCall = FIXTag 
   { tName = "UnderlyingPutOrCall"
   , tnum = 315
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingStrikePrice :: FIXTag
tUnderlyingStrikePrice = FIXTag 
   { tName = "UnderlyingStrikePrice"
   , tnum = 316
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingOptAttribute :: FIXTag
tUnderlyingOptAttribute = FIXTag 
   { tName = "UnderlyingOptAttribute"
   , tnum = 317
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tUnderlyingCurrency :: FIXTag
tUnderlyingCurrency = FIXTag 
   { tName = "UnderlyingCurrency"
   , tnum = 318
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRatioQty :: FIXTag
tRatioQty = FIXTag 
   { tName = "RatioQty"
   , tnum = 319
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSecurityReqID :: FIXTag
tSecurityReqID = FIXTag 
   { tName = "SecurityReqID"
   , tnum = 320
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecurityRequestType :: FIXTag
tSecurityRequestType = FIXTag 
   { tName = "SecurityRequestType"
   , tnum = 321
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecurityResponseID :: FIXTag
tSecurityResponseID = FIXTag 
   { tName = "SecurityResponseID"
   , tnum = 322
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecurityResponseType :: FIXTag
tSecurityResponseType = FIXTag 
   { tName = "SecurityResponseType"
   , tnum = 323
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecurityStatusReqID :: FIXTag
tSecurityStatusReqID = FIXTag 
   { tName = "SecurityStatusReqID"
   , tnum = 324
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnsolicitedIndicator :: FIXTag
tUnsolicitedIndicator = FIXTag 
   { tName = "UnsolicitedIndicator"
   , tnum = 325
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tSecurityTradingStatus :: FIXTag
tSecurityTradingStatus = FIXTag 
   { tName = "SecurityTradingStatus"
   , tnum = 326
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tHaltReasonChar :: FIXTag
tHaltReasonChar = FIXTag 
   { tName = "HaltReasonChar"
   , tnum = 327
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tInViewOfCommon :: FIXTag
tInViewOfCommon = FIXTag 
   { tName = "InViewOfCommon"
   , tnum = 328
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tDueToRelated :: FIXTag
tDueToRelated = FIXTag 
   { tName = "DueToRelated"
   , tnum = 329
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tBuyVolume :: FIXTag
tBuyVolume = FIXTag 
   { tName = "BuyVolume"
   , tnum = 330
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSellVolume :: FIXTag
tSellVolume = FIXTag 
   { tName = "SellVolume"
   , tnum = 331
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tHighPx :: FIXTag
tHighPx = FIXTag 
   { tName = "HighPx"
   , tnum = 332
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLowPx :: FIXTag
tLowPx = FIXTag 
   { tName = "LowPx"
   , tnum = 333
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAdjustment :: FIXTag
tAdjustment = FIXTag 
   { tName = "Adjustment"
   , tnum = 334
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradSesReqID :: FIXTag
tTradSesReqID = FIXTag 
   { tName = "TradSesReqID"
   , tnum = 335
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradingSessionID :: FIXTag
tTradingSessionID = FIXTag 
   { tName = "TradingSessionID"
   , tnum = 336
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tContraTrader :: FIXTag
tContraTrader = FIXTag 
   { tName = "ContraTrader"
   , tnum = 337
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradSesMethod :: FIXTag
tTradSesMethod = FIXTag 
   { tName = "TradSesMethod"
   , tnum = 338
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradSesMode :: FIXTag
tTradSesMode = FIXTag 
   { tName = "TradSesMode"
   , tnum = 339
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradSesStatus :: FIXTag
tTradSesStatus = FIXTag 
   { tName = "TradSesStatus"
   , tnum = 340
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradSesStartTime :: FIXTag
tTradSesStartTime = FIXTag 
   { tName = "TradSesStartTime"
   , tnum = 341
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tTradSesOpenTime :: FIXTag
tTradSesOpenTime = FIXTag 
   { tName = "TradSesOpenTime"
   , tnum = 342
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tTradSesPreCloseTime :: FIXTag
tTradSesPreCloseTime = FIXTag 
   { tName = "TradSesPreCloseTime"
   , tnum = 343
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tTradSesCloseTime :: FIXTag
tTradSesCloseTime = FIXTag 
   { tName = "TradSesCloseTime"
   , tnum = 344
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tTradSesEndTime :: FIXTag
tTradSesEndTime = FIXTag 
   { tName = "TradSesEndTime"
   , tnum = 345
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tNumberOfOrders :: FIXTag
tNumberOfOrders = FIXTag 
   { tName = "NumberOfOrders"
   , tnum = 346
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMessageEncoding :: FIXTag
tMessageEncoding = FIXTag 
   { tName = "MessageEncoding"
   , tnum = 347
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tEncodedIssuerLen :: FIXTag
tEncodedIssuerLen = FIXTag 
   { tName = "EncodedIssuerLen"
   , tnum = 348
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedIssuer :: FIXTag
tEncodedIssuer = FIXTag 
   { tName = "EncodedIssuer"
   , tnum = 349
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedSecurityDescLen :: FIXTag
tEncodedSecurityDescLen = FIXTag 
   { tName = "EncodedSecurityDescLen"
   , tnum = 350
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedSecurityDesc :: FIXTag
tEncodedSecurityDesc = FIXTag 
   { tName = "EncodedSecurityDesc"
   , tnum = 351
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedListExecInstLen :: FIXTag
tEncodedListExecInstLen = FIXTag 
   { tName = "EncodedListExecInstLen"
   , tnum = 352
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedListExecInst :: FIXTag
tEncodedListExecInst = FIXTag 
   { tName = "EncodedListExecInst"
   , tnum = 353
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedTextLen :: FIXTag
tEncodedTextLen = FIXTag 
   { tName = "EncodedTextLen"
   , tnum = 354
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedText :: FIXTag
tEncodedText = FIXTag 
   { tName = "EncodedText"
   , tnum = 355
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedSubjectLen :: FIXTag
tEncodedSubjectLen = FIXTag 
   { tName = "EncodedSubjectLen"
   , tnum = 356
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedSubject :: FIXTag
tEncodedSubject = FIXTag 
   { tName = "EncodedSubject"
   , tnum = 357
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedHeadlineLen :: FIXTag
tEncodedHeadlineLen = FIXTag 
   { tName = "EncodedHeadlineLen"
   , tnum = 358
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedHeadline :: FIXTag
tEncodedHeadline = FIXTag 
   { tName = "EncodedHeadline"
   , tnum = 359
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedAllocTextLen :: FIXTag
tEncodedAllocTextLen = FIXTag 
   { tName = "EncodedAllocTextLen"
   , tnum = 360
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedAllocText :: FIXTag
tEncodedAllocText = FIXTag 
   { tName = "EncodedAllocText"
   , tnum = 361
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedUnderlyingIssuerLen :: FIXTag
tEncodedUnderlyingIssuerLen = FIXTag 
   { tName = "EncodedUnderlyingIssuerLen"
   , tnum = 362
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedUnderlyingIssuer :: FIXTag
tEncodedUnderlyingIssuer = FIXTag 
   { tName = "EncodedUnderlyingIssuer"
   , tnum = 363
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tEncodedUnderlyingSecurityDescLen :: FIXTag
tEncodedUnderlyingSecurityDescLen = FIXTag 
   { tName = "EncodedUnderlyingSecurityDescLen"
   , tnum = 364
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedUnderlyingSecurityDesc :: FIXTag
tEncodedUnderlyingSecurityDesc = FIXTag 
   { tName = "EncodedUnderlyingSecurityDesc"
   , tnum = 365
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tAllocPrice :: FIXTag
tAllocPrice = FIXTag 
   { tName = "AllocPrice"
   , tnum = 366
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tQuoteSetValidUntilTime :: FIXTag
tQuoteSetValidUntilTime = FIXTag 
   { tName = "QuoteSetValidUntilTime"
   , tnum = 367
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tQuoteEntryRejectReason :: FIXTag
tQuoteEntryRejectReason = FIXTag 
   { tName = "QuoteEntryRejectReason"
   , tnum = 368
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLastMsgSeqNumProcessed :: FIXTag
tLastMsgSeqNumProcessed = FIXTag 
   { tName = "LastMsgSeqNumProcessed"
   , tnum = 369
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOnBehalfOfSendingTime :: FIXTag
tOnBehalfOfSendingTime = FIXTag 
   { tName = "OnBehalfOfSendingTime"
   , tnum = 370
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tRefTagID :: FIXTag
tRefTagID = FIXTag 
   { tName = "RefTagID"
   , tnum = 371
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRefMsgType :: FIXTag
tRefMsgType = FIXTag 
   { tName = "RefMsgType"
   , tnum = 372
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSessionRejectReason :: FIXTag
tSessionRejectReason = FIXTag 
   { tName = "SessionRejectReason"
   , tnum = 373
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBidRequestTransType :: FIXTag
tBidRequestTransType = FIXTag 
   { tName = "BidRequestTransType"
   , tnum = 374
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tContraBroker :: FIXTag
tContraBroker = FIXTag 
   { tName = "ContraBroker"
   , tnum = 375
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tComplianceID :: FIXTag
tComplianceID = FIXTag 
   { tName = "ComplianceID"
   , tnum = 376
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSolicitedFlag :: FIXTag
tSolicitedFlag = FIXTag 
   { tName = "SolicitedFlag"
   , tnum = 377
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tExecRestatementReason :: FIXTag
tExecRestatementReason = FIXTag 
   { tName = "ExecRestatementReason"
   , tnum = 378
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBusinessRejectRefID :: FIXTag
tBusinessRejectRefID = FIXTag 
   { tName = "BusinessRejectRefID"
   , tnum = 379
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tBusinessRejectReason :: FIXTag
tBusinessRejectReason = FIXTag 
   { tName = "BusinessRejectReason"
   , tnum = 380
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tGrossTradeAmt :: FIXTag
tGrossTradeAmt = FIXTag 
   { tName = "GrossTradeAmt"
   , tnum = 381
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoContraBrokers :: FIXTag
tNoContraBrokers = FIXTag 
   { tName = "NoContraBrokers"
   , tnum = 382
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMaxMessageSize :: FIXTag
tMaxMessageSize = FIXTag 
   { tName = "MaxMessageSize"
   , tnum = 383
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoMsgTypes :: FIXTag
tNoMsgTypes = FIXTag 
   { tName = "NoMsgTypes"
   , tnum = 384
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMsgDirection :: FIXTag
tMsgDirection = FIXTag 
   { tName = "MsgDirection"
   , tnum = 385
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNoTradingSessions :: FIXTag
tNoTradingSessions = FIXTag 
   { tName = "NoTradingSessions"
   , tnum = 386
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTotalVolumeTraded :: FIXTag
tTotalVolumeTraded = FIXTag 
   { tName = "TotalVolumeTraded"
   , tnum = 387
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tDiscretionInst :: FIXTag
tDiscretionInst = FIXTag 
   { tName = "DiscretionInst"
   , tnum = 388
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tDiscretionOffsetValue :: FIXTag
tDiscretionOffsetValue = FIXTag 
   { tName = "DiscretionOffsetValue"
   , tnum = 389
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBidID :: FIXTag
tBidID = FIXTag 
   { tName = "BidID"
   , tnum = 390
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tClientBidID :: FIXTag
tClientBidID = FIXTag 
   { tName = "ClientBidID"
   , tnum = 391
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tListName :: FIXTag
tListName = FIXTag 
   { tName = "ListName"
   , tnum = 392
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTotNoRelatedSym :: FIXTag
tTotNoRelatedSym = FIXTag 
   { tName = "TotNoRelatedSym"
   , tnum = 393
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBidType :: FIXTag
tBidType = FIXTag 
   { tName = "BidType"
   , tnum = 394
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNumTickets :: FIXTag
tNumTickets = FIXTag 
   { tName = "NumTickets"
   , tnum = 395
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSideValue1 :: FIXTag
tSideValue1 = FIXTag 
   { tName = "SideValue1"
   , tnum = 396
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSideValue2 :: FIXTag
tSideValue2 = FIXTag 
   { tName = "SideValue2"
   , tnum = 397
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoBidDescriptors :: FIXTag
tNoBidDescriptors = FIXTag 
   { tName = "NoBidDescriptors"
   , tnum = 398
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBidDescriptorType :: FIXTag
tBidDescriptorType = FIXTag 
   { tName = "BidDescriptorType"
   , tnum = 399
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBidDescriptor :: FIXTag
tBidDescriptor = FIXTag 
   { tName = "BidDescriptor"
   , tnum = 400
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSideValueInd :: FIXTag
tSideValueInd = FIXTag 
   { tName = "SideValueInd"
   , tnum = 401
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLiquidityPctLow :: FIXTag
tLiquidityPctLow = FIXTag 
   { tName = "LiquidityPctLow"
   , tnum = 402
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLiquidityPctHigh :: FIXTag
tLiquidityPctHigh = FIXTag 
   { tName = "LiquidityPctHigh"
   , tnum = 403
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLiquidityValue :: FIXTag
tLiquidityValue = FIXTag 
   { tName = "LiquidityValue"
   , tnum = 404
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tEFPTrackingError :: FIXTag
tEFPTrackingError = FIXTag 
   { tName = "EFPTrackingError"
   , tnum = 405
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tFairValue :: FIXTag
tFairValue = FIXTag 
   { tName = "FairValue"
   , tnum = 406
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOutsideIndexPct :: FIXTag
tOutsideIndexPct = FIXTag 
   { tName = "OutsideIndexPct"
   , tnum = 407
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tValueOfFutures :: FIXTag
tValueOfFutures = FIXTag 
   { tName = "ValueOfFutures"
   , tnum = 408
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLiquidityIndType :: FIXTag
tLiquidityIndType = FIXTag 
   { tName = "LiquidityIndType"
   , tnum = 409
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tWtAverageLiquidity :: FIXTag
tWtAverageLiquidity = FIXTag 
   { tName = "WtAverageLiquidity"
   , tnum = 410
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tExchangeForPhysical :: FIXTag
tExchangeForPhysical = FIXTag 
   { tName = "ExchangeForPhysical"
   , tnum = 411
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tOutMainCntryUIndex :: FIXTag
tOutMainCntryUIndex = FIXTag 
   { tName = "OutMainCntryUIndex"
   , tnum = 412
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCrossPercent :: FIXTag
tCrossPercent = FIXTag 
   { tName = "CrossPercent"
   , tnum = 413
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tProgRptReqs :: FIXTag
tProgRptReqs = FIXTag 
   { tName = "ProgRptReqs"
   , tnum = 414
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tProgPeriodInterval :: FIXTag
tProgPeriodInterval = FIXTag 
   { tName = "ProgPeriodInterval"
   , tnum = 415
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tIncTaxInd :: FIXTag
tIncTaxInd = FIXTag 
   { tName = "IncTaxInd"
   , tnum = 416
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNumBidders :: FIXTag
tNumBidders = FIXTag 
   { tName = "NumBidders"
   , tnum = 417
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBidTradeType :: FIXTag
tBidTradeType = FIXTag 
   { tName = "BidTradeType"
   , tnum = 418
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tBasisPxType :: FIXTag
tBasisPxType = FIXTag 
   { tName = "BasisPxType"
   , tnum = 419
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNoBidComponents :: FIXTag
tNoBidComponents = FIXTag 
   { tName = "NoBidComponents"
   , tnum = 420
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCountry :: FIXTag
tCountry = FIXTag 
   { tName = "Country"
   , tnum = 421
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTotNoStrikes :: FIXTag
tTotNoStrikes = FIXTag 
   { tName = "TotNoStrikes"
   , tnum = 422
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPriceType :: FIXTag
tPriceType = FIXTag 
   { tName = "PriceType"
   , tnum = 423
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDayOrderQty :: FIXTag
tDayOrderQty = FIXTag 
   { tName = "DayOrderQty"
   , tnum = 424
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tDayCumQty :: FIXTag
tDayCumQty = FIXTag 
   { tName = "DayCumQty"
   , tnum = 425
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tDayAvgPx :: FIXTag
tDayAvgPx = FIXTag 
   { tName = "DayAvgPx"
   , tnum = 426
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tGTBookingInst :: FIXTag
tGTBookingInst = FIXTag 
   { tName = "GTBookingInst"
   , tnum = 427
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoStrikes :: FIXTag
tNoStrikes = FIXTag 
   { tName = "NoStrikes"
   , tnum = 428
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tListStatusType :: FIXTag
tListStatusType = FIXTag 
   { tName = "ListStatusType"
   , tnum = 429
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNetGrossInd :: FIXTag
tNetGrossInd = FIXTag 
   { tName = "NetGrossInd"
   , tnum = 430
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tListOrderStatus :: FIXTag
tListOrderStatus = FIXTag 
   { tName = "ListOrderStatus"
   , tnum = 431
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tExpireDate :: FIXTag
tExpireDate = FIXTag 
   { tName = "ExpireDate"
   , tnum = 432
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tListExecInstType :: FIXTag
tListExecInstType = FIXTag 
   { tName = "ListExecInstType"
   , tnum = 433
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tCxlRejResponseTo :: FIXTag
tCxlRejResponseTo = FIXTag 
   { tName = "CxlRejResponseTo"
   , tnum = 434
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tUnderlyingCouponRate :: FIXTag
tUnderlyingCouponRate = FIXTag 
   { tName = "UnderlyingCouponRate"
   , tnum = 435
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingContractMultiplier :: FIXTag
tUnderlyingContractMultiplier = FIXTag 
   { tName = "UnderlyingContractMultiplier"
   , tnum = 436
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tContraTradeQty :: FIXTag
tContraTradeQty = FIXTag 
   { tName = "ContraTradeQty"
   , tnum = 437
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tContraTradeTime :: FIXTag
tContraTradeTime = FIXTag 
   { tName = "ContraTradeTime"
   , tnum = 438
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tClearingFirm :: FIXTag
tClearingFirm = FIXTag 
   { tName = "ClearingFirm"
   , tnum = 439
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tClearingAccount :: FIXTag
tClearingAccount = FIXTag 
   { tName = "ClearingAccount"
   , tnum = 440
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLiquidityNumSecurities :: FIXTag
tLiquidityNumSecurities = FIXTag 
   { tName = "LiquidityNumSecurities"
   , tnum = 441
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMultiLegReportingType :: FIXTag
tMultiLegReportingType = FIXTag 
   { tName = "MultiLegReportingType"
   , tnum = 442
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tStrikeTime :: FIXTag
tStrikeTime = FIXTag 
   { tName = "StrikeTime"
   , tnum = 443
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tListStatusText :: FIXTag
tListStatusText = FIXTag 
   { tName = "ListStatusText"
   , tnum = 444
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tEncodedListStatusTextLen :: FIXTag
tEncodedListStatusTextLen = FIXTag 
   { tName = "EncodedListStatusTextLen"
   , tnum = 445
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedListStatusText :: FIXTag
tEncodedListStatusText = FIXTag 
   { tName = "EncodedListStatusText"
   , tnum = 446
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tPartyIDSource :: FIXTag
tPartyIDSource = FIXTag 
   { tName = "PartyIDSource"
   , tnum = 447
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tPartyID :: FIXTag
tPartyID = FIXTag 
   { tName = "PartyID"
   , tnum = 448
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTotalVolumeTradedDate :: FIXTag
tTotalVolumeTradedDate = FIXTag 
   { tName = "TotalVolumeTradedDate"
   , tnum = 449
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tTotalVolumeTradedTime :: FIXTag
tTotalVolumeTradedTime = FIXTag 
   { tName = "TotalVolumeTradedTime"
   , tnum = 450
   , tparser = toFIXTimeOnly
   , arbitraryValue = FIXTimeOnly <$> arbitrary }

tNetChgPrevDay :: FIXTag
tNetChgPrevDay = FIXTag 
   { tName = "NetChgPrevDay"
   , tnum = 451
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPartyRole :: FIXTag
tPartyRole = FIXTag 
   { tName = "PartyRole"
   , tnum = 452
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoPartyIDs :: FIXTag
tNoPartyIDs = FIXTag 
   { tName = "NoPartyIDs"
   , tnum = 453
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoSecurityAltID :: FIXTag
tNoSecurityAltID = FIXTag 
   { tName = "NoSecurityAltID"
   , tnum = 454
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecurityAltID :: FIXTag
tSecurityAltID = FIXTag 
   { tName = "SecurityAltID"
   , tnum = 455
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecurityAltIDSource :: FIXTag
tSecurityAltIDSource = FIXTag 
   { tName = "SecurityAltIDSource"
   , tnum = 456
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoUnderlyingSecurityAltID :: FIXTag
tNoUnderlyingSecurityAltID = FIXTag 
   { tName = "NoUnderlyingSecurityAltID"
   , tnum = 457
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingSecurityAltID :: FIXTag
tUnderlyingSecurityAltID = FIXTag 
   { tName = "UnderlyingSecurityAltID"
   , tnum = 458
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSecurityAltIDSource :: FIXTag
tUnderlyingSecurityAltIDSource = FIXTag 
   { tName = "UnderlyingSecurityAltIDSource"
   , tnum = 459
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tProduct :: FIXTag
tProduct = FIXTag 
   { tName = "Product"
   , tnum = 460
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCFICode :: FIXTag
tCFICode = FIXTag 
   { tName = "CFICode"
   , tnum = 461
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingProduct :: FIXTag
tUnderlyingProduct = FIXTag 
   { tName = "UnderlyingProduct"
   , tnum = 462
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingCFICode :: FIXTag
tUnderlyingCFICode = FIXTag 
   { tName = "UnderlyingCFICode"
   , tnum = 463
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTestMessageIndicator :: FIXTag
tTestMessageIndicator = FIXTag 
   { tName = "TestMessageIndicator"
   , tnum = 464
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tQuantityType :: FIXTag
tQuantityType = FIXTag 
   { tName = "QuantityType"
   , tnum = 465
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBookingRefID :: FIXTag
tBookingRefID = FIXTag 
   { tName = "BookingRefID"
   , tnum = 466
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tIndividualAllocID :: FIXTag
tIndividualAllocID = FIXTag 
   { tName = "IndividualAllocID"
   , tnum = 467
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRoundingDirection :: FIXTag
tRoundingDirection = FIXTag 
   { tName = "RoundingDirection"
   , tnum = 468
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tRoundingModulus :: FIXTag
tRoundingModulus = FIXTag 
   { tName = "RoundingModulus"
   , tnum = 469
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCountryOfIssue :: FIXTag
tCountryOfIssue = FIXTag 
   { tName = "CountryOfIssue"
   , tnum = 470
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tStateOrProvinceOfIssue :: FIXTag
tStateOrProvinceOfIssue = FIXTag 
   { tName = "StateOrProvinceOfIssue"
   , tnum = 471
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLocaleOfIssue :: FIXTag
tLocaleOfIssue = FIXTag 
   { tName = "LocaleOfIssue"
   , tnum = 472
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoRegistDtls :: FIXTag
tNoRegistDtls = FIXTag 
   { tName = "NoRegistDtls"
   , tnum = 473
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMailingDtls :: FIXTag
tMailingDtls = FIXTag 
   { tName = "MailingDtls"
   , tnum = 474
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tInvestorCountryOfResidence :: FIXTag
tInvestorCountryOfResidence = FIXTag 
   { tName = "InvestorCountryOfResidence"
   , tnum = 475
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPaymentRef :: FIXTag
tPaymentRef = FIXTag 
   { tName = "PaymentRef"
   , tnum = 476
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDistribPaymentMethod :: FIXTag
tDistribPaymentMethod = FIXTag 
   { tName = "DistribPaymentMethod"
   , tnum = 477
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCashDistribCurr :: FIXTag
tCashDistribCurr = FIXTag 
   { tName = "CashDistribCurr"
   , tnum = 478
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCommCurrency :: FIXTag
tCommCurrency = FIXTag 
   { tName = "CommCurrency"
   , tnum = 479
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCancellationRights :: FIXTag
tCancellationRights = FIXTag 
   { tName = "CancellationRights"
   , tnum = 480
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMoneyLaunderingStatus :: FIXTag
tMoneyLaunderingStatus = FIXTag 
   { tName = "MoneyLaunderingStatus"
   , tnum = 481
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMailingInst :: FIXTag
tMailingInst = FIXTag 
   { tName = "MailingInst"
   , tnum = 482
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTransBkdTime :: FIXTag
tTransBkdTime = FIXTag 
   { tName = "TransBkdTime"
   , tnum = 483
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tExecPriceType :: FIXTag
tExecPriceType = FIXTag 
   { tName = "ExecPriceType"
   , tnum = 484
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tExecPriceAdjustment :: FIXTag
tExecPriceAdjustment = FIXTag 
   { tName = "ExecPriceAdjustment"
   , tnum = 485
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tDateOfBirth :: FIXTag
tDateOfBirth = FIXTag 
   { tName = "DateOfBirth"
   , tnum = 486
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tTradeReportTransType :: FIXTag
tTradeReportTransType = FIXTag 
   { tName = "TradeReportTransType"
   , tnum = 487
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCardHolderName :: FIXTag
tCardHolderName = FIXTag 
   { tName = "CardHolderName"
   , tnum = 488
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCardNumber :: FIXTag
tCardNumber = FIXTag 
   { tName = "CardNumber"
   , tnum = 489
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCardExpDate :: FIXTag
tCardExpDate = FIXTag 
   { tName = "CardExpDate"
   , tnum = 490
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tCardIssNum :: FIXTag
tCardIssNum = FIXTag 
   { tName = "CardIssNum"
   , tnum = 491
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPaymentMethod :: FIXTag
tPaymentMethod = FIXTag 
   { tName = "PaymentMethod"
   , tnum = 492
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRegistAcctType :: FIXTag
tRegistAcctType = FIXTag 
   { tName = "RegistAcctType"
   , tnum = 493
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDesignation :: FIXTag
tDesignation = FIXTag 
   { tName = "Designation"
   , tnum = 494
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTaxAdvantageType :: FIXTag
tTaxAdvantageType = FIXTag 
   { tName = "TaxAdvantageType"
   , tnum = 495
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRegistRejReasonText :: FIXTag
tRegistRejReasonText = FIXTag 
   { tName = "RegistRejReasonText"
   , tnum = 496
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tFundRenewWaiv :: FIXTag
tFundRenewWaiv = FIXTag 
   { tName = "FundRenewWaiv"
   , tnum = 497
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tCashDistribAgentName :: FIXTag
tCashDistribAgentName = FIXTag 
   { tName = "CashDistribAgentName"
   , tnum = 498
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashDistribAgentCode :: FIXTag
tCashDistribAgentCode = FIXTag 
   { tName = "CashDistribAgentCode"
   , tnum = 499
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashDistribAgentAcctNumber :: FIXTag
tCashDistribAgentAcctNumber = FIXTag 
   { tName = "CashDistribAgentAcctNumber"
   , tnum = 500
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashDistribPayRef :: FIXTag
tCashDistribPayRef = FIXTag 
   { tName = "CashDistribPayRef"
   , tnum = 501
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashDistribAgentAcctName :: FIXTag
tCashDistribAgentAcctName = FIXTag 
   { tName = "CashDistribAgentAcctName"
   , tnum = 502
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCardStartDate :: FIXTag
tCardStartDate = FIXTag 
   { tName = "CardStartDate"
   , tnum = 503
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tPaymentDate :: FIXTag
tPaymentDate = FIXTag 
   { tName = "PaymentDate"
   , tnum = 504
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tPaymentRemitterID :: FIXTag
tPaymentRemitterID = FIXTag 
   { tName = "PaymentRemitterID"
   , tnum = 505
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRegistStatus :: FIXTag
tRegistStatus = FIXTag 
   { tName = "RegistStatus"
   , tnum = 506
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tRegistRejReasonCode :: FIXTag
tRegistRejReasonCode = FIXTag 
   { tName = "RegistRejReasonCode"
   , tnum = 507
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRegistRefID :: FIXTag
tRegistRefID = FIXTag 
   { tName = "RegistRefID"
   , tnum = 508
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRegistDtls :: FIXTag
tRegistDtls = FIXTag 
   { tName = "RegistDtls"
   , tnum = 509
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoDistribInsts :: FIXTag
tNoDistribInsts = FIXTag 
   { tName = "NoDistribInsts"
   , tnum = 510
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRegistEmail :: FIXTag
tRegistEmail = FIXTag 
   { tName = "RegistEmail"
   , tnum = 511
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDistribPercentage :: FIXTag
tDistribPercentage = FIXTag 
   { tName = "DistribPercentage"
   , tnum = 512
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tRegistID :: FIXTag
tRegistID = FIXTag 
   { tName = "RegistID"
   , tnum = 513
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRegistTransType :: FIXTag
tRegistTransType = FIXTag 
   { tName = "RegistTransType"
   , tnum = 514
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tExecValuationPoint :: FIXTag
tExecValuationPoint = FIXTag 
   { tName = "ExecValuationPoint"
   , tnum = 515
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tOrderPercent :: FIXTag
tOrderPercent = FIXTag 
   { tName = "OrderPercent"
   , tnum = 516
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOwnershipType :: FIXTag
tOwnershipType = FIXTag 
   { tName = "OwnershipType"
   , tnum = 517
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNoContAmts :: FIXTag
tNoContAmts = FIXTag 
   { tName = "NoContAmts"
   , tnum = 518
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tContAmtType :: FIXTag
tContAmtType = FIXTag 
   { tName = "ContAmtType"
   , tnum = 519
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tContAmtValue :: FIXTag
tContAmtValue = FIXTag 
   { tName = "ContAmtValue"
   , tnum = 520
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tContAmtCurr :: FIXTag
tContAmtCurr = FIXTag 
   { tName = "ContAmtCurr"
   , tnum = 521
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOwnerType :: FIXTag
tOwnerType = FIXTag 
   { tName = "OwnerType"
   , tnum = 522
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPartySubID :: FIXTag
tPartySubID = FIXTag 
   { tName = "PartySubID"
   , tnum = 523
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNestedPartyID :: FIXTag
tNestedPartyID = FIXTag 
   { tName = "NestedPartyID"
   , tnum = 524
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNestedPartyIDSource :: FIXTag
tNestedPartyIDSource = FIXTag 
   { tName = "NestedPartyIDSource"
   , tnum = 525
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSecondaryClOrdID :: FIXTag
tSecondaryClOrdID = FIXTag 
   { tName = "SecondaryClOrdID"
   , tnum = 526
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecondaryExecID :: FIXTag
tSecondaryExecID = FIXTag 
   { tName = "SecondaryExecID"
   , tnum = 527
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOrderCapacity :: FIXTag
tOrderCapacity = FIXTag 
   { tName = "OrderCapacity"
   , tnum = 528
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tOrderRestrictions :: FIXTag
tOrderRestrictions = FIXTag 
   { tName = "OrderRestrictions"
   , tnum = 529
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tMassCancelRequestType :: FIXTag
tMassCancelRequestType = FIXTag 
   { tName = "MassCancelRequestType"
   , tnum = 530
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMassCancelResponse :: FIXTag
tMassCancelResponse = FIXTag 
   { tName = "MassCancelResponse"
   , tnum = 531
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMassCancelRejectReason :: FIXTag
tMassCancelRejectReason = FIXTag 
   { tName = "MassCancelRejectReason"
   , tnum = 532
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tTotalAffectedOrders :: FIXTag
tTotalAffectedOrders = FIXTag 
   { tName = "TotalAffectedOrders"
   , tnum = 533
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoAffectedOrders :: FIXTag
tNoAffectedOrders = FIXTag 
   { tName = "NoAffectedOrders"
   , tnum = 534
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAffectedOrderID :: FIXTag
tAffectedOrderID = FIXTag 
   { tName = "AffectedOrderID"
   , tnum = 535
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAffectedSecondaryOrderID :: FIXTag
tAffectedSecondaryOrderID = FIXTag 
   { tName = "AffectedSecondaryOrderID"
   , tnum = 536
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tQuoteType :: FIXTag
tQuoteType = FIXTag 
   { tName = "QuoteType"
   , tnum = 537
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNestedPartyRole :: FIXTag
tNestedPartyRole = FIXTag 
   { tName = "NestedPartyRole"
   , tnum = 538
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoNestedPartyIDs :: FIXTag
tNoNestedPartyIDs = FIXTag 
   { tName = "NoNestedPartyIDs"
   , tnum = 539
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTotalAccruedInterestAmt :: FIXTag
tTotalAccruedInterestAmt = FIXTag 
   { tName = "TotalAccruedInterestAmt"
   , tnum = 540
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMaturityDate :: FIXTag
tMaturityDate = FIXTag 
   { tName = "MaturityDate"
   , tnum = 541
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tUnderlyingMaturityDate :: FIXTag
tUnderlyingMaturityDate = FIXTag 
   { tName = "UnderlyingMaturityDate"
   , tnum = 542
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tInstrRegistry :: FIXTag
tInstrRegistry = FIXTag 
   { tName = "InstrRegistry"
   , tnum = 543
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCashMargin :: FIXTag
tCashMargin = FIXTag 
   { tName = "CashMargin"
   , tnum = 544
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNestedPartySubID :: FIXTag
tNestedPartySubID = FIXTag 
   { tName = "NestedPartySubID"
   , tnum = 545
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tScope :: FIXTag
tScope = FIXTag 
   { tName = "Scope"
   , tnum = 546
   , tparser = toFIXMultipleValueString
   , arbitraryValue = FIXMultipleValueString <$> arbitrary }

tMDImplicitDelete :: FIXTag
tMDImplicitDelete = FIXTag 
   { tName = "MDImplicitDelete"
   , tnum = 547
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tCrossID :: FIXTag
tCrossID = FIXTag 
   { tName = "CrossID"
   , tnum = 548
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCrossType :: FIXTag
tCrossType = FIXTag 
   { tName = "CrossType"
   , tnum = 549
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCrossPrioritization :: FIXTag
tCrossPrioritization = FIXTag 
   { tName = "CrossPrioritization"
   , tnum = 550
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrigCrossID :: FIXTag
tOrigCrossID = FIXTag 
   { tName = "OrigCrossID"
   , tnum = 551
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoSides :: FIXTag
tNoSides = FIXTag 
   { tName = "NoSides"
   , tnum = 552
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUsername :: FIXTag
tUsername = FIXTag 
   { tName = "Username"
   , tnum = 553
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPassword :: FIXTag
tPassword = FIXTag 
   { tName = "Password"
   , tnum = 554
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoLegs :: FIXTag
tNoLegs = FIXTag 
   { tName = "NoLegs"
   , tnum = 555
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegCurrency :: FIXTag
tLegCurrency = FIXTag 
   { tName = "LegCurrency"
   , tnum = 556
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTotNoSecurityTypes :: FIXTag
tTotNoSecurityTypes = FIXTag 
   { tName = "TotNoSecurityTypes"
   , tnum = 557
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoSecurityTypes :: FIXTag
tNoSecurityTypes = FIXTag 
   { tName = "NoSecurityTypes"
   , tnum = 558
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecurityListRequestType :: FIXTag
tSecurityListRequestType = FIXTag 
   { tName = "SecurityListRequestType"
   , tnum = 559
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecurityRequestResult :: FIXTag
tSecurityRequestResult = FIXTag 
   { tName = "SecurityRequestResult"
   , tnum = 560
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tRoundLot :: FIXTag
tRoundLot = FIXTag 
   { tName = "RoundLot"
   , tnum = 561
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMinTradeVol :: FIXTag
tMinTradeVol = FIXTag 
   { tName = "MinTradeVol"
   , tnum = 562
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMultiLegRptTypeReq :: FIXTag
tMultiLegRptTypeReq = FIXTag 
   { tName = "MultiLegRptTypeReq"
   , tnum = 563
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegPositionEffect :: FIXTag
tLegPositionEffect = FIXTag 
   { tName = "LegPositionEffect"
   , tnum = 564
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tLegCoveredOrUncovered :: FIXTag
tLegCoveredOrUncovered = FIXTag 
   { tName = "LegCoveredOrUncovered"
   , tnum = 565
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegPrice :: FIXTag
tLegPrice = FIXTag 
   { tName = "LegPrice"
   , tnum = 566
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tTradSesStatusRejReason :: FIXTag
tTradSesStatusRejReason = FIXTag 
   { tName = "TradSesStatusRejReason"
   , tnum = 567
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeRequestID :: FIXTag
tTradeRequestID = FIXTag 
   { tName = "TradeRequestID"
   , tnum = 568
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradeRequestType :: FIXTag
tTradeRequestType = FIXTag 
   { tName = "TradeRequestType"
   , tnum = 569
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPreviouslyReported :: FIXTag
tPreviouslyReported = FIXTag 
   { tName = "PreviouslyReported"
   , tnum = 570
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tTradeReportID :: FIXTag
tTradeReportID = FIXTag 
   { tName = "TradeReportID"
   , tnum = 571
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradeReportRefID :: FIXTag
tTradeReportRefID = FIXTag 
   { tName = "TradeReportRefID"
   , tnum = 572
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMatchStatus :: FIXTag
tMatchStatus = FIXTag 
   { tName = "MatchStatus"
   , tnum = 573
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tMatchType :: FIXTag
tMatchType = FIXTag 
   { tName = "MatchType"
   , tnum = 574
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOddLot :: FIXTag
tOddLot = FIXTag 
   { tName = "OddLot"
   , tnum = 575
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tNoClearingInstructions :: FIXTag
tNoClearingInstructions = FIXTag 
   { tName = "NoClearingInstructions"
   , tnum = 576
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tClearingInstruction :: FIXTag
tClearingInstruction = FIXTag 
   { tName = "ClearingInstruction"
   , tnum = 577
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeInputSource :: FIXTag
tTradeInputSource = FIXTag 
   { tName = "TradeInputSource"
   , tnum = 578
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradeInputDevice :: FIXTag
tTradeInputDevice = FIXTag 
   { tName = "TradeInputDevice"
   , tnum = 579
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoDates :: FIXTag
tNoDates = FIXTag 
   { tName = "NoDates"
   , tnum = 580
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAccountType :: FIXTag
tAccountType = FIXTag 
   { tName = "AccountType"
   , tnum = 581
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCustOrderCapacity :: FIXTag
tCustOrderCapacity = FIXTag 
   { tName = "CustOrderCapacity"
   , tnum = 582
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tClOrdLinkID :: FIXTag
tClOrdLinkID = FIXTag 
   { tName = "ClOrdLinkID"
   , tnum = 583
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMassStatusReqID :: FIXTag
tMassStatusReqID = FIXTag 
   { tName = "MassStatusReqID"
   , tnum = 584
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMassStatusReqType :: FIXTag
tMassStatusReqType = FIXTag 
   { tName = "MassStatusReqType"
   , tnum = 585
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrigOrdModTime :: FIXTag
tOrigOrdModTime = FIXTag 
   { tName = "OrigOrdModTime"
   , tnum = 586
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tLegSettlType :: FIXTag
tLegSettlType = FIXTag 
   { tName = "LegSettlType"
   , tnum = 587
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tLegSettlDate :: FIXTag
tLegSettlDate = FIXTag 
   { tName = "LegSettlDate"
   , tnum = 588
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tDayBookingInst :: FIXTag
tDayBookingInst = FIXTag 
   { tName = "DayBookingInst"
   , tnum = 589
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tBookingUnit :: FIXTag
tBookingUnit = FIXTag 
   { tName = "BookingUnit"
   , tnum = 590
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tPreallocMethod :: FIXTag
tPreallocMethod = FIXTag 
   { tName = "PreallocMethod"
   , tnum = 591
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tUnderlyingCountryOfIssue :: FIXTag
tUnderlyingCountryOfIssue = FIXTag 
   { tName = "UnderlyingCountryOfIssue"
   , tnum = 592
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingStateOrProvinceOfIssue :: FIXTag
tUnderlyingStateOrProvinceOfIssue = FIXTag 
   { tName = "UnderlyingStateOrProvinceOfIssue"
   , tnum = 593
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingLocaleOfIssue :: FIXTag
tUnderlyingLocaleOfIssue = FIXTag 
   { tName = "UnderlyingLocaleOfIssue"
   , tnum = 594
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingInstrRegistry :: FIXTag
tUnderlyingInstrRegistry = FIXTag 
   { tName = "UnderlyingInstrRegistry"
   , tnum = 595
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegCountryOfIssue :: FIXTag
tLegCountryOfIssue = FIXTag 
   { tName = "LegCountryOfIssue"
   , tnum = 596
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegStateOrProvinceOfIssue :: FIXTag
tLegStateOrProvinceOfIssue = FIXTag 
   { tName = "LegStateOrProvinceOfIssue"
   , tnum = 597
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegLocaleOfIssue :: FIXTag
tLegLocaleOfIssue = FIXTag 
   { tName = "LegLocaleOfIssue"
   , tnum = 598
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegInstrRegistry :: FIXTag
tLegInstrRegistry = FIXTag 
   { tName = "LegInstrRegistry"
   , tnum = 599
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSymbol :: FIXTag
tLegSymbol = FIXTag 
   { tName = "LegSymbol"
   , tnum = 600
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSymbolSfx :: FIXTag
tLegSymbolSfx = FIXTag 
   { tName = "LegSymbolSfx"
   , tnum = 601
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSecurityID :: FIXTag
tLegSecurityID = FIXTag 
   { tName = "LegSecurityID"
   , tnum = 602
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSecurityIDSource :: FIXTag
tLegSecurityIDSource = FIXTag 
   { tName = "LegSecurityIDSource"
   , tnum = 603
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoLegSecurityAltID :: FIXTag
tNoLegSecurityAltID = FIXTag 
   { tName = "NoLegSecurityAltID"
   , tnum = 604
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegSecurityAltID :: FIXTag
tLegSecurityAltID = FIXTag 
   { tName = "LegSecurityAltID"
   , tnum = 605
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSecurityAltIDSource :: FIXTag
tLegSecurityAltIDSource = FIXTag 
   { tName = "LegSecurityAltIDSource"
   , tnum = 606
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegProduct :: FIXTag
tLegProduct = FIXTag 
   { tName = "LegProduct"
   , tnum = 607
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegCFICode :: FIXTag
tLegCFICode = FIXTag 
   { tName = "LegCFICode"
   , tnum = 608
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSecurityType :: FIXTag
tLegSecurityType = FIXTag 
   { tName = "LegSecurityType"
   , tnum = 609
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegMaturityMonthYear :: FIXTag
tLegMaturityMonthYear = FIXTag 
   { tName = "LegMaturityMonthYear"
   , tnum = 610
   , tparser = toFIXMonthYear
   , arbitraryValue = FIXMonthYear <$> arbitrary }

tLegMaturityDate :: FIXTag
tLegMaturityDate = FIXTag 
   { tName = "LegMaturityDate"
   , tnum = 611
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tLegStrikePrice :: FIXTag
tLegStrikePrice = FIXTag 
   { tName = "LegStrikePrice"
   , tnum = 612
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegOptAttribute :: FIXTag
tLegOptAttribute = FIXTag 
   { tName = "LegOptAttribute"
   , tnum = 613
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tLegContractMultiplier :: FIXTag
tLegContractMultiplier = FIXTag 
   { tName = "LegContractMultiplier"
   , tnum = 614
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegCouponRate :: FIXTag
tLegCouponRate = FIXTag 
   { tName = "LegCouponRate"
   , tnum = 615
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegSecurityExchange :: FIXTag
tLegSecurityExchange = FIXTag 
   { tName = "LegSecurityExchange"
   , tnum = 616
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegIssuer :: FIXTag
tLegIssuer = FIXTag 
   { tName = "LegIssuer"
   , tnum = 617
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tEncodedLegIssuerLen :: FIXTag
tEncodedLegIssuerLen = FIXTag 
   { tName = "EncodedLegIssuerLen"
   , tnum = 618
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedLegIssuer :: FIXTag
tEncodedLegIssuer = FIXTag 
   { tName = "EncodedLegIssuer"
   , tnum = 619
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tLegSecurityDesc :: FIXTag
tLegSecurityDesc = FIXTag 
   { tName = "LegSecurityDesc"
   , tnum = 620
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tEncodedLegSecurityDescLen :: FIXTag
tEncodedLegSecurityDescLen = FIXTag 
   { tName = "EncodedLegSecurityDescLen"
   , tnum = 621
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEncodedLegSecurityDesc :: FIXTag
tEncodedLegSecurityDesc = FIXTag 
   { tName = "EncodedLegSecurityDesc"
   , tnum = 622
   , tparser = toFIXData
   , arbitraryValue = FIXData <$> arbitrary }

tLegRatioQty :: FIXTag
tLegRatioQty = FIXTag 
   { tName = "LegRatioQty"
   , tnum = 623
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegSide :: FIXTag
tLegSide = FIXTag 
   { tName = "LegSide"
   , tnum = 624
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tTradingSessionSubID :: FIXTag
tTradingSessionSubID = FIXTag 
   { tName = "TradingSessionSubID"
   , tnum = 625
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocType :: FIXTag
tAllocType = FIXTag 
   { tName = "AllocType"
   , tnum = 626
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoHops :: FIXTag
tNoHops = FIXTag 
   { tName = "NoHops"
   , tnum = 627
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tHopCompID :: FIXTag
tHopCompID = FIXTag 
   { tName = "HopCompID"
   , tnum = 628
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tHopSendingTime :: FIXTag
tHopSendingTime = FIXTag 
   { tName = "HopSendingTime"
   , tnum = 629
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tHopRefID :: FIXTag
tHopRefID = FIXTag 
   { tName = "HopRefID"
   , tnum = 630
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMidPx :: FIXTag
tMidPx = FIXTag 
   { tName = "MidPx"
   , tnum = 631
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBidYield :: FIXTag
tBidYield = FIXTag 
   { tName = "BidYield"
   , tnum = 632
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMidYield :: FIXTag
tMidYield = FIXTag 
   { tName = "MidYield"
   , tnum = 633
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOfferYield :: FIXTag
tOfferYield = FIXTag 
   { tName = "OfferYield"
   , tnum = 634
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tClearingFeeIndicator :: FIXTag
tClearingFeeIndicator = FIXTag 
   { tName = "ClearingFeeIndicator"
   , tnum = 635
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tWorkingIndicator :: FIXTag
tWorkingIndicator = FIXTag 
   { tName = "WorkingIndicator"
   , tnum = 636
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tLegLastPx :: FIXTag
tLegLastPx = FIXTag 
   { tName = "LegLastPx"
   , tnum = 637
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPriorityIndicator :: FIXTag
tPriorityIndicator = FIXTag 
   { tName = "PriorityIndicator"
   , tnum = 638
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPriceImprovement :: FIXTag
tPriceImprovement = FIXTag 
   { tName = "PriceImprovement"
   , tnum = 639
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPrice2 :: FIXTag
tPrice2 = FIXTag 
   { tName = "Price2"
   , tnum = 640
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLastForwardPoints2 :: FIXTag
tLastForwardPoints2 = FIXTag 
   { tName = "LastForwardPoints2"
   , tnum = 641
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBidForwardPoints2 :: FIXTag
tBidForwardPoints2 = FIXTag 
   { tName = "BidForwardPoints2"
   , tnum = 642
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOfferForwardPoints2 :: FIXTag
tOfferForwardPoints2 = FIXTag 
   { tName = "OfferForwardPoints2"
   , tnum = 643
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tRFQReqID :: FIXTag
tRFQReqID = FIXTag 
   { tName = "RFQReqID"
   , tnum = 644
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMktBidPx :: FIXTag
tMktBidPx = FIXTag 
   { tName = "MktBidPx"
   , tnum = 645
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMktOfferPx :: FIXTag
tMktOfferPx = FIXTag 
   { tName = "MktOfferPx"
   , tnum = 646
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMinBidSize :: FIXTag
tMinBidSize = FIXTag 
   { tName = "MinBidSize"
   , tnum = 647
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMinOfferSize :: FIXTag
tMinOfferSize = FIXTag 
   { tName = "MinOfferSize"
   , tnum = 648
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tQuoteStatusReqID :: FIXTag
tQuoteStatusReqID = FIXTag 
   { tName = "QuoteStatusReqID"
   , tnum = 649
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegalConfirm :: FIXTag
tLegalConfirm = FIXTag 
   { tName = "LegalConfirm"
   , tnum = 650
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tUnderlyingLastPx :: FIXTag
tUnderlyingLastPx = FIXTag 
   { tName = "UnderlyingLastPx"
   , tnum = 651
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingLastQty :: FIXTag
tUnderlyingLastQty = FIXTag 
   { tName = "UnderlyingLastQty"
   , tnum = 652
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSecDefStatus :: FIXTag
tSecDefStatus = FIXTag 
   { tName = "SecDefStatus"
   , tnum = 653
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegRefID :: FIXTag
tLegRefID = FIXTag 
   { tName = "LegRefID"
   , tnum = 654
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tContraLegRefID :: FIXTag
tContraLegRefID = FIXTag 
   { tName = "ContraLegRefID"
   , tnum = 655
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlCurrBidFxRate :: FIXTag
tSettlCurrBidFxRate = FIXTag 
   { tName = "SettlCurrBidFxRate"
   , tnum = 656
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlCurrOfferFxRate :: FIXTag
tSettlCurrOfferFxRate = FIXTag 
   { tName = "SettlCurrOfferFxRate"
   , tnum = 657
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tQuoteRequestRejectReason :: FIXTag
tQuoteRequestRejectReason = FIXTag 
   { tName = "QuoteRequestRejectReason"
   , tnum = 658
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSideComplianceID :: FIXTag
tSideComplianceID = FIXTag 
   { tName = "SideComplianceID"
   , tnum = 659
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAcctIDSource :: FIXTag
tAcctIDSource = FIXTag 
   { tName = "AcctIDSource"
   , tnum = 660
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAllocAcctIDSource :: FIXTag
tAllocAcctIDSource = FIXTag 
   { tName = "AllocAcctIDSource"
   , tnum = 661
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBenchmarkPrice :: FIXTag
tBenchmarkPrice = FIXTag 
   { tName = "BenchmarkPrice"
   , tnum = 662
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tBenchmarkPriceType :: FIXTag
tBenchmarkPriceType = FIXTag 
   { tName = "BenchmarkPriceType"
   , tnum = 663
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tConfirmID :: FIXTag
tConfirmID = FIXTag 
   { tName = "ConfirmID"
   , tnum = 664
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tConfirmStatus :: FIXTag
tConfirmStatus = FIXTag 
   { tName = "ConfirmStatus"
   , tnum = 665
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tConfirmTransType :: FIXTag
tConfirmTransType = FIXTag 
   { tName = "ConfirmTransType"
   , tnum = 666
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tContractSettlMonth :: FIXTag
tContractSettlMonth = FIXTag 
   { tName = "ContractSettlMonth"
   , tnum = 667
   , tparser = toFIXMonthYear
   , arbitraryValue = FIXMonthYear <$> arbitrary }

tDeliveryForm :: FIXTag
tDeliveryForm = FIXTag 
   { tName = "DeliveryForm"
   , tnum = 668
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLastParPx :: FIXTag
tLastParPx = FIXTag 
   { tName = "LastParPx"
   , tnum = 669
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoLegAllocs :: FIXTag
tNoLegAllocs = FIXTag 
   { tName = "NoLegAllocs"
   , tnum = 670
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegAllocAccount :: FIXTag
tLegAllocAccount = FIXTag 
   { tName = "LegAllocAccount"
   , tnum = 671
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegIndividualAllocID :: FIXTag
tLegIndividualAllocID = FIXTag 
   { tName = "LegIndividualAllocID"
   , tnum = 672
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegAllocQty :: FIXTag
tLegAllocQty = FIXTag 
   { tName = "LegAllocQty"
   , tnum = 673
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegAllocAcctIDSource :: FIXTag
tLegAllocAcctIDSource = FIXTag 
   { tName = "LegAllocAcctIDSource"
   , tnum = 674
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSettlCurrency :: FIXTag
tLegSettlCurrency = FIXTag 
   { tName = "LegSettlCurrency"
   , tnum = 675
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegBenchmarkCurveCurrency :: FIXTag
tLegBenchmarkCurveCurrency = FIXTag 
   { tName = "LegBenchmarkCurveCurrency"
   , tnum = 676
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegBenchmarkCurveName :: FIXTag
tLegBenchmarkCurveName = FIXTag 
   { tName = "LegBenchmarkCurveName"
   , tnum = 677
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegBenchmarkCurvePoint :: FIXTag
tLegBenchmarkCurvePoint = FIXTag 
   { tName = "LegBenchmarkCurvePoint"
   , tnum = 678
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegBenchmarkPrice :: FIXTag
tLegBenchmarkPrice = FIXTag 
   { tName = "LegBenchmarkPrice"
   , tnum = 679
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegBenchmarkPriceType :: FIXTag
tLegBenchmarkPriceType = FIXTag 
   { tName = "LegBenchmarkPriceType"
   , tnum = 680
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegBidPx :: FIXTag
tLegBidPx = FIXTag 
   { tName = "LegBidPx"
   , tnum = 681
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegIOIQty :: FIXTag
tLegIOIQty = FIXTag 
   { tName = "LegIOIQty"
   , tnum = 682
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoLegStipulations :: FIXTag
tNoLegStipulations = FIXTag 
   { tName = "NoLegStipulations"
   , tnum = 683
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegOfferPx :: FIXTag
tLegOfferPx = FIXTag 
   { tName = "LegOfferPx"
   , tnum = 684
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegOrderQty :: FIXTag
tLegOrderQty = FIXTag 
   { tName = "LegOrderQty"
   , tnum = 685
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegPriceType :: FIXTag
tLegPriceType = FIXTag 
   { tName = "LegPriceType"
   , tnum = 686
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegQty :: FIXTag
tLegQty = FIXTag 
   { tName = "LegQty"
   , tnum = 687
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegStipulationType :: FIXTag
tLegStipulationType = FIXTag 
   { tName = "LegStipulationType"
   , tnum = 688
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegStipulationValue :: FIXTag
tLegStipulationValue = FIXTag 
   { tName = "LegStipulationValue"
   , tnum = 689
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSwapType :: FIXTag
tLegSwapType = FIXTag 
   { tName = "LegSwapType"
   , tnum = 690
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPool :: FIXTag
tPool = FIXTag 
   { tName = "Pool"
   , tnum = 691
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tQuotePriceType :: FIXTag
tQuotePriceType = FIXTag 
   { tName = "QuotePriceType"
   , tnum = 692
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQuoteRespID :: FIXTag
tQuoteRespID = FIXTag 
   { tName = "QuoteRespID"
   , tnum = 693
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tQuoteRespType :: FIXTag
tQuoteRespType = FIXTag 
   { tName = "QuoteRespType"
   , tnum = 694
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQuoteQualifier :: FIXTag
tQuoteQualifier = FIXTag 
   { tName = "QuoteQualifier"
   , tnum = 695
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tYieldRedemptionDate :: FIXTag
tYieldRedemptionDate = FIXTag 
   { tName = "YieldRedemptionDate"
   , tnum = 696
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tYieldRedemptionPrice :: FIXTag
tYieldRedemptionPrice = FIXTag 
   { tName = "YieldRedemptionPrice"
   , tnum = 697
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tYieldRedemptionPriceType :: FIXTag
tYieldRedemptionPriceType = FIXTag 
   { tName = "YieldRedemptionPriceType"
   , tnum = 698
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBenchmarkSecurityID :: FIXTag
tBenchmarkSecurityID = FIXTag 
   { tName = "BenchmarkSecurityID"
   , tnum = 699
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tReversalIndicator :: FIXTag
tReversalIndicator = FIXTag 
   { tName = "ReversalIndicator"
   , tnum = 700
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tYieldCalcDate :: FIXTag
tYieldCalcDate = FIXTag 
   { tName = "YieldCalcDate"
   , tnum = 701
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tNoPositions :: FIXTag
tNoPositions = FIXTag 
   { tName = "NoPositions"
   , tnum = 702
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosType :: FIXTag
tPosType = FIXTag 
   { tName = "PosType"
   , tnum = 703
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLongQty :: FIXTag
tLongQty = FIXTag 
   { tName = "LongQty"
   , tnum = 704
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tShortQty :: FIXTag
tShortQty = FIXTag 
   { tName = "ShortQty"
   , tnum = 705
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPosQtyStatus :: FIXTag
tPosQtyStatus = FIXTag 
   { tName = "PosQtyStatus"
   , tnum = 706
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosAmtType :: FIXTag
tPosAmtType = FIXTag 
   { tName = "PosAmtType"
   , tnum = 707
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPosAmt :: FIXTag
tPosAmt = FIXTag 
   { tName = "PosAmt"
   , tnum = 708
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPosTransType :: FIXTag
tPosTransType = FIXTag 
   { tName = "PosTransType"
   , tnum = 709
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosReqID :: FIXTag
tPosReqID = FIXTag 
   { tName = "PosReqID"
   , tnum = 710
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoUnderlyings :: FIXTag
tNoUnderlyings = FIXTag 
   { tName = "NoUnderlyings"
   , tnum = 711
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosMaintAction :: FIXTag
tPosMaintAction = FIXTag 
   { tName = "PosMaintAction"
   , tnum = 712
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrigPosReqRefID :: FIXTag
tOrigPosReqRefID = FIXTag 
   { tName = "OrigPosReqRefID"
   , tnum = 713
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPosMaintRptRefID :: FIXTag
tPosMaintRptRefID = FIXTag 
   { tName = "PosMaintRptRefID"
   , tnum = 714
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tClearingBusinessDate :: FIXTag
tClearingBusinessDate = FIXTag 
   { tName = "ClearingBusinessDate"
   , tnum = 715
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tSettlSessID :: FIXTag
tSettlSessID = FIXTag 
   { tName = "SettlSessID"
   , tnum = 716
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlSessSubID :: FIXTag
tSettlSessSubID = FIXTag 
   { tName = "SettlSessSubID"
   , tnum = 717
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAdjustmentType :: FIXTag
tAdjustmentType = FIXTag 
   { tName = "AdjustmentType"
   , tnum = 718
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tContraryInstructionIndicator :: FIXTag
tContraryInstructionIndicator = FIXTag 
   { tName = "ContraryInstructionIndicator"
   , tnum = 719
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tPriorSpreadIndicator :: FIXTag
tPriorSpreadIndicator = FIXTag 
   { tName = "PriorSpreadIndicator"
   , tnum = 720
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tPosMaintRptID :: FIXTag
tPosMaintRptID = FIXTag 
   { tName = "PosMaintRptID"
   , tnum = 721
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPosMaintStatus :: FIXTag
tPosMaintStatus = FIXTag 
   { tName = "PosMaintStatus"
   , tnum = 722
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosMaintResult :: FIXTag
tPosMaintResult = FIXTag 
   { tName = "PosMaintResult"
   , tnum = 723
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosReqType :: FIXTag
tPosReqType = FIXTag 
   { tName = "PosReqType"
   , tnum = 724
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tResponseTransportType :: FIXTag
tResponseTransportType = FIXTag 
   { tName = "ResponseTransportType"
   , tnum = 725
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tResponseDestination :: FIXTag
tResponseDestination = FIXTag 
   { tName = "ResponseDestination"
   , tnum = 726
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTotalNumPosReports :: FIXTag
tTotalNumPosReports = FIXTag 
   { tName = "TotalNumPosReports"
   , tnum = 727
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosReqResult :: FIXTag
tPosReqResult = FIXTag 
   { tName = "PosReqResult"
   , tnum = 728
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPosReqStatus :: FIXTag
tPosReqStatus = FIXTag 
   { tName = "PosReqStatus"
   , tnum = 729
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSettlPrice :: FIXTag
tSettlPrice = FIXTag 
   { tName = "SettlPrice"
   , tnum = 730
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tSettlPriceType :: FIXTag
tSettlPriceType = FIXTag 
   { tName = "SettlPriceType"
   , tnum = 731
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingSettlPrice :: FIXTag
tUnderlyingSettlPrice = FIXTag 
   { tName = "UnderlyingSettlPrice"
   , tnum = 732
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingSettlPriceType :: FIXTag
tUnderlyingSettlPriceType = FIXTag 
   { tName = "UnderlyingSettlPriceType"
   , tnum = 733
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPriorSettlPrice :: FIXTag
tPriorSettlPrice = FIXTag 
   { tName = "PriorSettlPrice"
   , tnum = 734
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoQuoteQualifiers :: FIXTag
tNoQuoteQualifiers = FIXTag 
   { tName = "NoQuoteQualifiers"
   , tnum = 735
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAllocSettlCurrency :: FIXTag
tAllocSettlCurrency = FIXTag 
   { tName = "AllocSettlCurrency"
   , tnum = 736
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocSettlCurrAmt :: FIXTag
tAllocSettlCurrAmt = FIXTag 
   { tName = "AllocSettlCurrAmt"
   , tnum = 737
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tInterestAtMaturity :: FIXTag
tInterestAtMaturity = FIXTag 
   { tName = "InterestAtMaturity"
   , tnum = 738
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLegDatedDate :: FIXTag
tLegDatedDate = FIXTag 
   { tName = "LegDatedDate"
   , tnum = 739
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tLegPool :: FIXTag
tLegPool = FIXTag 
   { tName = "LegPool"
   , tnum = 740
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocInterestAtMaturity :: FIXTag
tAllocInterestAtMaturity = FIXTag 
   { tName = "AllocInterestAtMaturity"
   , tnum = 741
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAllocAccruedInterestAmt :: FIXTag
tAllocAccruedInterestAmt = FIXTag 
   { tName = "AllocAccruedInterestAmt"
   , tnum = 742
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tDeliveryDate :: FIXTag
tDeliveryDate = FIXTag 
   { tName = "DeliveryDate"
   , tnum = 743
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tAssignmentMethod :: FIXTag
tAssignmentMethod = FIXTag 
   { tName = "AssignmentMethod"
   , tnum = 744
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tAssignmentUnit :: FIXTag
tAssignmentUnit = FIXTag 
   { tName = "AssignmentUnit"
   , tnum = 745
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOpenInterest :: FIXTag
tOpenInterest = FIXTag 
   { tName = "OpenInterest"
   , tnum = 746
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tExerciseMethod :: FIXTag
tExerciseMethod = FIXTag 
   { tName = "ExerciseMethod"
   , tnum = 747
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tTotNumTradeReports :: FIXTag
tTotNumTradeReports = FIXTag 
   { tName = "TotNumTradeReports"
   , tnum = 748
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeRequestResult :: FIXTag
tTradeRequestResult = FIXTag 
   { tName = "TradeRequestResult"
   , tnum = 749
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeRequestStatus :: FIXTag
tTradeRequestStatus = FIXTag 
   { tName = "TradeRequestStatus"
   , tnum = 750
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeReportRejectReason :: FIXTag
tTradeReportRejectReason = FIXTag 
   { tName = "TradeReportRejectReason"
   , tnum = 751
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSideMultiLegReportingType :: FIXTag
tSideMultiLegReportingType = FIXTag 
   { tName = "SideMultiLegReportingType"
   , tnum = 752
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoPosAmt :: FIXTag
tNoPosAmt = FIXTag 
   { tName = "NoPosAmt"
   , tnum = 753
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAutoAcceptIndicator :: FIXTag
tAutoAcceptIndicator = FIXTag 
   { tName = "AutoAcceptIndicator"
   , tnum = 754
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tAllocReportID :: FIXTag
tAllocReportID = FIXTag 
   { tName = "AllocReportID"
   , tnum = 755
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoNested2PartyIDs :: FIXTag
tNoNested2PartyIDs = FIXTag 
   { tName = "NoNested2PartyIDs"
   , tnum = 756
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNested2PartyID :: FIXTag
tNested2PartyID = FIXTag 
   { tName = "Nested2PartyID"
   , tnum = 757
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNested2PartyIDSource :: FIXTag
tNested2PartyIDSource = FIXTag 
   { tName = "Nested2PartyIDSource"
   , tnum = 758
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNested2PartyRole :: FIXTag
tNested2PartyRole = FIXTag 
   { tName = "Nested2PartyRole"
   , tnum = 759
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNested2PartySubID :: FIXTag
tNested2PartySubID = FIXTag 
   { tName = "Nested2PartySubID"
   , tnum = 760
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tBenchmarkSecurityIDSource :: FIXTag
tBenchmarkSecurityIDSource = FIXTag 
   { tName = "BenchmarkSecurityIDSource"
   , tnum = 761
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecuritySubType :: FIXTag
tSecuritySubType = FIXTag 
   { tName = "SecuritySubType"
   , tnum = 762
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingSecuritySubType :: FIXTag
tUnderlyingSecuritySubType = FIXTag 
   { tName = "UnderlyingSecuritySubType"
   , tnum = 763
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegSecuritySubType :: FIXTag
tLegSecuritySubType = FIXTag 
   { tName = "LegSecuritySubType"
   , tnum = 764
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllowableOneSidednessPct :: FIXTag
tAllowableOneSidednessPct = FIXTag 
   { tName = "AllowableOneSidednessPct"
   , tnum = 765
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAllowableOneSidednessValue :: FIXTag
tAllowableOneSidednessValue = FIXTag 
   { tName = "AllowableOneSidednessValue"
   , tnum = 766
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tAllowableOneSidednessCurr :: FIXTag
tAllowableOneSidednessCurr = FIXTag 
   { tName = "AllowableOneSidednessCurr"
   , tnum = 767
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoTrdRegTimestamps :: FIXTag
tNoTrdRegTimestamps = FIXTag 
   { tName = "NoTrdRegTimestamps"
   , tnum = 768
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTrdRegTimestamp :: FIXTag
tTrdRegTimestamp = FIXTag 
   { tName = "TrdRegTimestamp"
   , tnum = 769
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tTrdRegTimestampType :: FIXTag
tTrdRegTimestampType = FIXTag 
   { tName = "TrdRegTimestampType"
   , tnum = 770
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTrdRegTimestampOrigin :: FIXTag
tTrdRegTimestampOrigin = FIXTag 
   { tName = "TrdRegTimestampOrigin"
   , tnum = 771
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tConfirmRefID :: FIXTag
tConfirmRefID = FIXTag 
   { tName = "ConfirmRefID"
   , tnum = 772
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tConfirmType :: FIXTag
tConfirmType = FIXTag 
   { tName = "ConfirmType"
   , tnum = 773
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tConfirmRejReason :: FIXTag
tConfirmRejReason = FIXTag 
   { tName = "ConfirmRejReason"
   , tnum = 774
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tBookingType :: FIXTag
tBookingType = FIXTag 
   { tName = "BookingType"
   , tnum = 775
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tIndividualAllocRejCode :: FIXTag
tIndividualAllocRejCode = FIXTag 
   { tName = "IndividualAllocRejCode"
   , tnum = 776
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSettlInstMsgID :: FIXTag
tSettlInstMsgID = FIXTag 
   { tName = "SettlInstMsgID"
   , tnum = 777
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoSettlInst :: FIXTag
tNoSettlInst = FIXTag 
   { tName = "NoSettlInst"
   , tnum = 778
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLastUpdateTime :: FIXTag
tLastUpdateTime = FIXTag 
   { tName = "LastUpdateTime"
   , tnum = 779
   , tparser = toFIXTimestamp
   , arbitraryValue = FIXTimestamp <$> arbitrary }

tAllocSettlInstType :: FIXTag
tAllocSettlInstType = FIXTag 
   { tName = "AllocSettlInstType"
   , tnum = 780
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoSettlPartyIDs :: FIXTag
tNoSettlPartyIDs = FIXTag 
   { tName = "NoSettlPartyIDs"
   , tnum = 781
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSettlPartyID :: FIXTag
tSettlPartyID = FIXTag 
   { tName = "SettlPartyID"
   , tnum = 782
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlPartyIDSource :: FIXTag
tSettlPartyIDSource = FIXTag 
   { tName = "SettlPartyIDSource"
   , tnum = 783
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tSettlPartyRole :: FIXTag
tSettlPartyRole = FIXTag 
   { tName = "SettlPartyRole"
   , tnum = 784
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSettlPartySubID :: FIXTag
tSettlPartySubID = FIXTag 
   { tName = "SettlPartySubID"
   , tnum = 785
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlPartySubIDType :: FIXTag
tSettlPartySubIDType = FIXTag 
   { tName = "SettlPartySubIDType"
   , tnum = 786
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDlvyInstType :: FIXTag
tDlvyInstType = FIXTag 
   { tName = "DlvyInstType"
   , tnum = 787
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tTerminationType :: FIXTag
tTerminationType = FIXTag 
   { tName = "TerminationType"
   , tnum = 788
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNextExpectedMsgSeqNum :: FIXTag
tNextExpectedMsgSeqNum = FIXTag 
   { tName = "NextExpectedMsgSeqNum"
   , tnum = 789
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrdStatusReqID :: FIXTag
tOrdStatusReqID = FIXTag 
   { tName = "OrdStatusReqID"
   , tnum = 790
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlInstReqID :: FIXTag
tSettlInstReqID = FIXTag 
   { tName = "SettlInstReqID"
   , tnum = 791
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSettlInstReqRejCode :: FIXTag
tSettlInstReqRejCode = FIXTag 
   { tName = "SettlInstReqRejCode"
   , tnum = 792
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecondaryAllocID :: FIXTag
tSecondaryAllocID = FIXTag 
   { tName = "SecondaryAllocID"
   , tnum = 793
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocReportType :: FIXTag
tAllocReportType = FIXTag 
   { tName = "AllocReportType"
   , tnum = 794
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAllocReportRefID :: FIXTag
tAllocReportRefID = FIXTag 
   { tName = "AllocReportRefID"
   , tnum = 795
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAllocCancReplaceReason :: FIXTag
tAllocCancReplaceReason = FIXTag 
   { tName = "AllocCancReplaceReason"
   , tnum = 796
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCopyMsgIndicator :: FIXTag
tCopyMsgIndicator = FIXTag 
   { tName = "CopyMsgIndicator"
   , tnum = 797
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tAllocAccountType :: FIXTag
tAllocAccountType = FIXTag 
   { tName = "AllocAccountType"
   , tnum = 798
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrderAvgPx :: FIXTag
tOrderAvgPx = FIXTag 
   { tName = "OrderAvgPx"
   , tnum = 799
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tOrderBookingQty :: FIXTag
tOrderBookingQty = FIXTag 
   { tName = "OrderBookingQty"
   , tnum = 800
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoSettlPartySubIDs :: FIXTag
tNoSettlPartySubIDs = FIXTag 
   { tName = "NoSettlPartySubIDs"
   , tnum = 801
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoPartySubIDs :: FIXTag
tNoPartySubIDs = FIXTag 
   { tName = "NoPartySubIDs"
   , tnum = 802
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPartySubIDType :: FIXTag
tPartySubIDType = FIXTag 
   { tName = "PartySubIDType"
   , tnum = 803
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoNestedPartySubIDs :: FIXTag
tNoNestedPartySubIDs = FIXTag 
   { tName = "NoNestedPartySubIDs"
   , tnum = 804
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNestedPartySubIDType :: FIXTag
tNestedPartySubIDType = FIXTag 
   { tName = "NestedPartySubIDType"
   , tnum = 805
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoNested2PartySubIDs :: FIXTag
tNoNested2PartySubIDs = FIXTag 
   { tName = "NoNested2PartySubIDs"
   , tnum = 806
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNested2PartySubIDType :: FIXTag
tNested2PartySubIDType = FIXTag 
   { tName = "Nested2PartySubIDType"
   , tnum = 807
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAllocIntermedReqType :: FIXTag
tAllocIntermedReqType = FIXTag 
   { tName = "AllocIntermedReqType"
   , tnum = 808
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingPx :: FIXTag
tUnderlyingPx = FIXTag 
   { tName = "UnderlyingPx"
   , tnum = 810
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPriceDelta :: FIXTag
tPriceDelta = FIXTag 
   { tName = "PriceDelta"
   , tnum = 811
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tApplQueueMax :: FIXTag
tApplQueueMax = FIXTag 
   { tName = "ApplQueueMax"
   , tnum = 812
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tApplQueueDepth :: FIXTag
tApplQueueDepth = FIXTag 
   { tName = "ApplQueueDepth"
   , tnum = 813
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tApplQueueResolution :: FIXTag
tApplQueueResolution = FIXTag 
   { tName = "ApplQueueResolution"
   , tnum = 814
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tApplQueueAction :: FIXTag
tApplQueueAction = FIXTag 
   { tName = "ApplQueueAction"
   , tnum = 815
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoAltMDSource :: FIXTag
tNoAltMDSource = FIXTag 
   { tName = "NoAltMDSource"
   , tnum = 816
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAltMDSourceID :: FIXTag
tAltMDSourceID = FIXTag 
   { tName = "AltMDSourceID"
   , tnum = 817
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecondaryTradeReportID :: FIXTag
tSecondaryTradeReportID = FIXTag 
   { tName = "SecondaryTradeReportID"
   , tnum = 818
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAvgPxIndicator :: FIXTag
tAvgPxIndicator = FIXTag 
   { tName = "AvgPxIndicator"
   , tnum = 819
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeLinkID :: FIXTag
tTradeLinkID = FIXTag 
   { tName = "TradeLinkID"
   , tnum = 820
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tOrderInputDevice :: FIXTag
tOrderInputDevice = FIXTag 
   { tName = "OrderInputDevice"
   , tnum = 821
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingTradingSessionID :: FIXTag
tUnderlyingTradingSessionID = FIXTag 
   { tName = "UnderlyingTradingSessionID"
   , tnum = 822
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingTradingSessionSubID :: FIXTag
tUnderlyingTradingSessionSubID = FIXTag 
   { tName = "UnderlyingTradingSessionSubID"
   , tnum = 823
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradeLegRefID :: FIXTag
tTradeLegRefID = FIXTag 
   { tName = "TradeLegRefID"
   , tnum = 824
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tExchangeRule :: FIXTag
tExchangeRule = FIXTag 
   { tName = "ExchangeRule"
   , tnum = 825
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTradeAllocIndicator :: FIXTag
tTradeAllocIndicator = FIXTag 
   { tName = "TradeAllocIndicator"
   , tnum = 826
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tExpirationCycle :: FIXTag
tExpirationCycle = FIXTag 
   { tName = "ExpirationCycle"
   , tnum = 827
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTrdType :: FIXTag
tTrdType = FIXTag 
   { tName = "TrdType"
   , tnum = 828
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTrdSubType :: FIXTag
tTrdSubType = FIXTag 
   { tName = "TrdSubType"
   , tnum = 829
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTransferReason :: FIXTag
tTransferReason = FIXTag 
   { tName = "TransferReason"
   , tnum = 830
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAsgnReqID :: FIXTag
tAsgnReqID = FIXTag 
   { tName = "AsgnReqID"
   , tnum = 831
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTotNumAssignmentReports :: FIXTag
tTotNumAssignmentReports = FIXTag 
   { tName = "TotNumAssignmentReports"
   , tnum = 832
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAsgnRptID :: FIXTag
tAsgnRptID = FIXTag 
   { tName = "AsgnRptID"
   , tnum = 833
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tThresholdAmount :: FIXTag
tThresholdAmount = FIXTag 
   { tName = "ThresholdAmount"
   , tnum = 834
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPegMoveType :: FIXTag
tPegMoveType = FIXTag 
   { tName = "PegMoveType"
   , tnum = 835
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPegOffsetType :: FIXTag
tPegOffsetType = FIXTag 
   { tName = "PegOffsetType"
   , tnum = 836
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPegLimitType :: FIXTag
tPegLimitType = FIXTag 
   { tName = "PegLimitType"
   , tnum = 837
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPegRoundDirection :: FIXTag
tPegRoundDirection = FIXTag 
   { tName = "PegRoundDirection"
   , tnum = 838
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPeggedPrice :: FIXTag
tPeggedPrice = FIXTag 
   { tName = "PeggedPrice"
   , tnum = 839
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tPegScope :: FIXTag
tPegScope = FIXTag 
   { tName = "PegScope"
   , tnum = 840
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDiscretionMoveType :: FIXTag
tDiscretionMoveType = FIXTag 
   { tName = "DiscretionMoveType"
   , tnum = 841
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDiscretionOffsetType :: FIXTag
tDiscretionOffsetType = FIXTag 
   { tName = "DiscretionOffsetType"
   , tnum = 842
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDiscretionLimitType :: FIXTag
tDiscretionLimitType = FIXTag 
   { tName = "DiscretionLimitType"
   , tnum = 843
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDiscretionRoundDirection :: FIXTag
tDiscretionRoundDirection = FIXTag 
   { tName = "DiscretionRoundDirection"
   , tnum = 844
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tDiscretionPrice :: FIXTag
tDiscretionPrice = FIXTag 
   { tName = "DiscretionPrice"
   , tnum = 845
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tDiscretionScope :: FIXTag
tDiscretionScope = FIXTag 
   { tName = "DiscretionScope"
   , tnum = 846
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTargetStrategy :: FIXTag
tTargetStrategy = FIXTag 
   { tName = "TargetStrategy"
   , tnum = 847
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTargetStrategyParameters :: FIXTag
tTargetStrategyParameters = FIXTag 
   { tName = "TargetStrategyParameters"
   , tnum = 848
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tParticipationRate :: FIXTag
tParticipationRate = FIXTag 
   { tName = "ParticipationRate"
   , tnum = 849
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tTargetStrategyPerformance :: FIXTag
tTargetStrategyPerformance = FIXTag 
   { tName = "TargetStrategyPerformance"
   , tnum = 850
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tLastLiquidityInd :: FIXTag
tLastLiquidityInd = FIXTag 
   { tName = "LastLiquidityInd"
   , tnum = 851
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tPublishTrdIndicator :: FIXTag
tPublishTrdIndicator = FIXTag 
   { tName = "PublishTrdIndicator"
   , tnum = 852
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tShortSaleReason :: FIXTag
tShortSaleReason = FIXTag 
   { tName = "ShortSaleReason"
   , tnum = 853
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tQtyType :: FIXTag
tQtyType = FIXTag 
   { tName = "QtyType"
   , tnum = 854
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSecondaryTrdType :: FIXTag
tSecondaryTrdType = FIXTag 
   { tName = "SecondaryTrdType"
   , tnum = 855
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTradeReportType :: FIXTag
tTradeReportType = FIXTag 
   { tName = "TradeReportType"
   , tnum = 856
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAllocNoOrdersType :: FIXTag
tAllocNoOrdersType = FIXTag 
   { tName = "AllocNoOrdersType"
   , tnum = 857
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tSharedCommission :: FIXTag
tSharedCommission = FIXTag 
   { tName = "SharedCommission"
   , tnum = 858
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tConfirmReqID :: FIXTag
tConfirmReqID = FIXTag 
   { tName = "ConfirmReqID"
   , tnum = 859
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAvgParPx :: FIXTag
tAvgParPx = FIXTag 
   { tName = "AvgParPx"
   , tnum = 860
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tReportedPx :: FIXTag
tReportedPx = FIXTag 
   { tName = "ReportedPx"
   , tnum = 861
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoCapacities :: FIXTag
tNoCapacities = FIXTag 
   { tName = "NoCapacities"
   , tnum = 862
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tOrderCapacityQty :: FIXTag
tOrderCapacityQty = FIXTag 
   { tName = "OrderCapacityQty"
   , tnum = 863
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoEvents :: FIXTag
tNoEvents = FIXTag 
   { tName = "NoEvents"
   , tnum = 864
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEventType :: FIXTag
tEventType = FIXTag 
   { tName = "EventType"
   , tnum = 865
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEventDate :: FIXTag
tEventDate = FIXTag 
   { tName = "EventDate"
   , tnum = 866
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tEventPx :: FIXTag
tEventPx = FIXTag 
   { tName = "EventPx"
   , tnum = 867
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tEventText :: FIXTag
tEventText = FIXTag 
   { tName = "EventText"
   , tnum = 868
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tPctAtRisk :: FIXTag
tPctAtRisk = FIXTag 
   { tName = "PctAtRisk"
   , tnum = 869
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoInstrAttrib :: FIXTag
tNoInstrAttrib = FIXTag 
   { tName = "NoInstrAttrib"
   , tnum = 870
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tInstrAttribType :: FIXTag
tInstrAttribType = FIXTag 
   { tName = "InstrAttribType"
   , tnum = 871
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tInstrAttribValue :: FIXTag
tInstrAttribValue = FIXTag 
   { tName = "InstrAttribValue"
   , tnum = 872
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDatedDate :: FIXTag
tDatedDate = FIXTag 
   { tName = "DatedDate"
   , tnum = 873
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tInterestAccrualDate :: FIXTag
tInterestAccrualDate = FIXTag 
   { tName = "InterestAccrualDate"
   , tnum = 874
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tCPProgram :: FIXTag
tCPProgram = FIXTag 
   { tName = "CPProgram"
   , tnum = 875
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCPRegType :: FIXTag
tCPRegType = FIXTag 
   { tName = "CPRegType"
   , tnum = 876
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingCPProgram :: FIXTag
tUnderlyingCPProgram = FIXTag 
   { tName = "UnderlyingCPProgram"
   , tnum = 877
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingCPRegType :: FIXTag
tUnderlyingCPRegType = FIXTag 
   { tName = "UnderlyingCPRegType"
   , tnum = 878
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingQty :: FIXTag
tUnderlyingQty = FIXTag 
   { tName = "UnderlyingQty"
   , tnum = 879
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tTrdMatchID :: FIXTag
tTrdMatchID = FIXTag 
   { tName = "TrdMatchID"
   , tnum = 880
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tSecondaryTradeReportRefID :: FIXTag
tSecondaryTradeReportRefID = FIXTag 
   { tName = "SecondaryTradeReportRefID"
   , tnum = 881
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingDirtyPrice :: FIXTag
tUnderlyingDirtyPrice = FIXTag 
   { tName = "UnderlyingDirtyPrice"
   , tnum = 882
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingEndPrice :: FIXTag
tUnderlyingEndPrice = FIXTag 
   { tName = "UnderlyingEndPrice"
   , tnum = 883
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingStartValue :: FIXTag
tUnderlyingStartValue = FIXTag 
   { tName = "UnderlyingStartValue"
   , tnum = 884
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingCurrentValue :: FIXTag
tUnderlyingCurrentValue = FIXTag 
   { tName = "UnderlyingCurrentValue"
   , tnum = 885
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUnderlyingEndValue :: FIXTag
tUnderlyingEndValue = FIXTag 
   { tName = "UnderlyingEndValue"
   , tnum = 886
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tNoUnderlyingStips :: FIXTag
tNoUnderlyingStips = FIXTag 
   { tName = "NoUnderlyingStips"
   , tnum = 887
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingStipType :: FIXTag
tUnderlyingStipType = FIXTag 
   { tName = "UnderlyingStipType"
   , tnum = 888
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUnderlyingStipValue :: FIXTag
tUnderlyingStipValue = FIXTag 
   { tName = "UnderlyingStipValue"
   , tnum = 889
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tMaturityNetMoney :: FIXTag
tMaturityNetMoney = FIXTag 
   { tName = "MaturityNetMoney"
   , tnum = 890
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMiscFeeBasis :: FIXTag
tMiscFeeBasis = FIXTag 
   { tName = "MiscFeeBasis"
   , tnum = 891
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTotNoAllocs :: FIXTag
tTotNoAllocs = FIXTag 
   { tName = "TotNoAllocs"
   , tnum = 892
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLastFragment :: FIXTag
tLastFragment = FIXTag 
   { tName = "LastFragment"
   , tnum = 893
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tCollReqID :: FIXTag
tCollReqID = FIXTag 
   { tName = "CollReqID"
   , tnum = 894
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCollAsgnReason :: FIXTag
tCollAsgnReason = FIXTag 
   { tName = "CollAsgnReason"
   , tnum = 895
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCollInquiryQualifier :: FIXTag
tCollInquiryQualifier = FIXTag 
   { tName = "CollInquiryQualifier"
   , tnum = 896
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoTrades :: FIXTag
tNoTrades = FIXTag 
   { tName = "NoTrades"
   , tnum = 897
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tMarginRatio :: FIXTag
tMarginRatio = FIXTag 
   { tName = "MarginRatio"
   , tnum = 898
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tMarginExcess :: FIXTag
tMarginExcess = FIXTag 
   { tName = "MarginExcess"
   , tnum = 899
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tTotalNetValue :: FIXTag
tTotalNetValue = FIXTag 
   { tName = "TotalNetValue"
   , tnum = 900
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCashOutstanding :: FIXTag
tCashOutstanding = FIXTag 
   { tName = "CashOutstanding"
   , tnum = 901
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tCollAsgnID :: FIXTag
tCollAsgnID = FIXTag 
   { tName = "CollAsgnID"
   , tnum = 902
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCollAsgnTransType :: FIXTag
tCollAsgnTransType = FIXTag 
   { tName = "CollAsgnTransType"
   , tnum = 903
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCollRespID :: FIXTag
tCollRespID = FIXTag 
   { tName = "CollRespID"
   , tnum = 904
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCollAsgnRespType :: FIXTag
tCollAsgnRespType = FIXTag 
   { tName = "CollAsgnRespType"
   , tnum = 905
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCollAsgnRejectReason :: FIXTag
tCollAsgnRejectReason = FIXTag 
   { tName = "CollAsgnRejectReason"
   , tnum = 906
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCollAsgnRefID :: FIXTag
tCollAsgnRefID = FIXTag 
   { tName = "CollAsgnRefID"
   , tnum = 907
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCollRptID :: FIXTag
tCollRptID = FIXTag 
   { tName = "CollRptID"
   , tnum = 908
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCollInquiryID :: FIXTag
tCollInquiryID = FIXTag 
   { tName = "CollInquiryID"
   , tnum = 909
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCollStatus :: FIXTag
tCollStatus = FIXTag 
   { tName = "CollStatus"
   , tnum = 910
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTotNumReports :: FIXTag
tTotNumReports = FIXTag 
   { tName = "TotNumReports"
   , tnum = 911
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLastRptRequested :: FIXTag
tLastRptRequested = FIXTag 
   { tName = "LastRptRequested"
   , tnum = 912
   , tparser = toFIXBool
   , arbitraryValue = FIXBool <$> arbitrary }

tAgreementDesc :: FIXTag
tAgreementDesc = FIXTag 
   { tName = "AgreementDesc"
   , tnum = 913
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAgreementID :: FIXTag
tAgreementID = FIXTag 
   { tName = "AgreementID"
   , tnum = 914
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tAgreementDate :: FIXTag
tAgreementDate = FIXTag 
   { tName = "AgreementDate"
   , tnum = 915
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tStartDate :: FIXTag
tStartDate = FIXTag 
   { tName = "StartDate"
   , tnum = 916
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tEndDate :: FIXTag
tEndDate = FIXTag 
   { tName = "EndDate"
   , tnum = 917
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

tAgreementCurrency :: FIXTag
tAgreementCurrency = FIXTag 
   { tName = "AgreementCurrency"
   , tnum = 918
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tDeliveryType :: FIXTag
tDeliveryType = FIXTag 
   { tName = "DeliveryType"
   , tnum = 919
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tEndAccruedInterestAmt :: FIXTag
tEndAccruedInterestAmt = FIXTag 
   { tName = "EndAccruedInterestAmt"
   , tnum = 920
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tStartCash :: FIXTag
tStartCash = FIXTag 
   { tName = "StartCash"
   , tnum = 921
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tEndCash :: FIXTag
tEndCash = FIXTag 
   { tName = "EndCash"
   , tnum = 922
   , tparser = toFIXDouble
   , arbitraryValue = FIXDouble <$> (return (-2.112 :: Double)) }

tUserRequestID :: FIXTag
tUserRequestID = FIXTag 
   { tName = "UserRequestID"
   , tnum = 923
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUserRequestType :: FIXTag
tUserRequestType = FIXTag 
   { tName = "UserRequestType"
   , tnum = 924
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNewPassword :: FIXTag
tNewPassword = FIXTag 
   { tName = "NewPassword"
   , tnum = 925
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tUserStatus :: FIXTag
tUserStatus = FIXTag 
   { tName = "UserStatus"
   , tnum = 926
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUserStatusText :: FIXTag
tUserStatusText = FIXTag 
   { tName = "UserStatusText"
   , tnum = 927
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tStatusValue :: FIXTag
tStatusValue = FIXTag 
   { tName = "StatusValue"
   , tnum = 928
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tStatusText :: FIXTag
tStatusText = FIXTag 
   { tName = "StatusText"
   , tnum = 929
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRefCompID :: FIXTag
tRefCompID = FIXTag 
   { tName = "RefCompID"
   , tnum = 930
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tRefSubID :: FIXTag
tRefSubID = FIXTag 
   { tName = "RefSubID"
   , tnum = 931
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNetworkResponseID :: FIXTag
tNetworkResponseID = FIXTag 
   { tName = "NetworkResponseID"
   , tnum = 932
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNetworkRequestID :: FIXTag
tNetworkRequestID = FIXTag 
   { tName = "NetworkRequestID"
   , tnum = 933
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLastNetworkResponseID :: FIXTag
tLastNetworkResponseID = FIXTag 
   { tName = "LastNetworkResponseID"
   , tnum = 934
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNetworkRequestType :: FIXTag
tNetworkRequestType = FIXTag 
   { tName = "NetworkRequestType"
   , tnum = 935
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoCompIDs :: FIXTag
tNoCompIDs = FIXTag 
   { tName = "NoCompIDs"
   , tnum = 936
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNetworkStatusResponseType :: FIXTag
tNetworkStatusResponseType = FIXTag 
   { tName = "NetworkStatusResponseType"
   , tnum = 937
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoCollInquiryQualifier :: FIXTag
tNoCollInquiryQualifier = FIXTag 
   { tName = "NoCollInquiryQualifier"
   , tnum = 938
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tTrdRptStatus :: FIXTag
tTrdRptStatus = FIXTag 
   { tName = "TrdRptStatus"
   , tnum = 939
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tAffirmStatus :: FIXTag
tAffirmStatus = FIXTag 
   { tName = "AffirmStatus"
   , tnum = 940
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tUnderlyingStrikeCurrency :: FIXTag
tUnderlyingStrikeCurrency = FIXTag 
   { tName = "UnderlyingStrikeCurrency"
   , tnum = 941
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tLegStrikeCurrency :: FIXTag
tLegStrikeCurrency = FIXTag 
   { tName = "LegStrikeCurrency"
   , tnum = 942
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tTimeBracket :: FIXTag
tTimeBracket = FIXTag 
   { tName = "TimeBracket"
   , tnum = 943
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tCollAction :: FIXTag
tCollAction = FIXTag 
   { tName = "CollAction"
   , tnum = 944
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCollInquiryStatus :: FIXTag
tCollInquiryStatus = FIXTag 
   { tName = "CollInquiryStatus"
   , tnum = 945
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tCollInquiryResult :: FIXTag
tCollInquiryResult = FIXTag 
   { tName = "CollInquiryResult"
   , tnum = 946
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tStrikeCurrency :: FIXTag
tStrikeCurrency = FIXTag 
   { tName = "StrikeCurrency"
   , tnum = 947
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNoNested3PartyIDs :: FIXTag
tNoNested3PartyIDs = FIXTag 
   { tName = "NoNested3PartyIDs"
   , tnum = 948
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNested3PartyID :: FIXTag
tNested3PartyID = FIXTag 
   { tName = "Nested3PartyID"
   , tnum = 949
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNested3PartyIDSource :: FIXTag
tNested3PartyIDSource = FIXTag 
   { tName = "Nested3PartyIDSource"
   , tnum = 950
   , tparser = toFIXChar
   , arbitraryValue = FIXChar <$> (return 'A') }

tNested3PartyRole :: FIXTag
tNested3PartyRole = FIXTag 
   { tName = "Nested3PartyRole"
   , tnum = 951
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNoNested3PartySubIDs :: FIXTag
tNoNested3PartySubIDs = FIXTag 
   { tName = "NoNested3PartySubIDs"
   , tnum = 952
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tNested3PartySubID :: FIXTag
tNested3PartySubID = FIXTag 
   { tName = "Nested3PartySubID"
   , tnum = 953
   , tparser = toFIXString
   , arbitraryValue = FIXString <$> arbitrary }

tNested3PartySubIDType :: FIXTag
tNested3PartySubIDType = FIXTag 
   { tName = "Nested3PartySubIDType"
   , tnum = 954
   , tparser = toFIXInt
   , arbitraryValue = FIXInt <$> arbitrary }

tLegContractSettlMonth :: FIXTag
tLegContractSettlMonth = FIXTag 
   { tName = "LegContractSettlMonth"
   , tnum = 955
   , tparser = toFIXMonthYear
   , arbitraryValue = FIXMonthYear <$> arbitrary }

tLegInterestAccrualDate :: FIXTag
tLegInterestAccrualDate = FIXTag 
   { tName = "LegInterestAccrualDate"
   , tnum = 956
   , tparser = toFIXDateOnly
   , arbitraryValue = FIXDateOnly <$> arbitrary }

headerFIX44 :: FIXTags
headerFIX44 = 
   LT.insert (tnum tSenderCompID) tSenderCompID $
   LT.insert (tnum tTargetCompID) tTargetCompID $
   LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $
   LT.insert (tnum tDeliverToCompID) tDeliverToCompID $
   LT.insert (tnum tSecureDataLen) tSecureDataLen $
   LT.insert (tnum tSecureData) tSecureData $
   LT.insert (tnum tMsgSeqNum) tMsgSeqNum $
   LT.insert (tnum tSenderSubID) tSenderSubID $
   LT.insert (tnum tSenderLocationID) tSenderLocationID $
   LT.insert (tnum tTargetSubID) tTargetSubID $
   LT.insert (tnum tTargetLocationID) tTargetLocationID $
   LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $
   LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $
   LT.insert (tnum tDeliverToSubID) tDeliverToSubID $
   LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $
   LT.insert (tnum tPossDupFlag) tPossDupFlag $
   LT.insert (tnum tPossResend) tPossResend $
   LT.insert (tnum tSendingTime) tSendingTime $
   LT.insert (tnum tOrigSendingTime) tOrigSendingTime $
   LT.insert (tnum tXmlDataLen) tXmlDataLen $
   LT.insert (tnum tXmlData) tXmlData $
   LT.insert (tnum tMessageEncoding) tMessageEncoding $
   LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $
   LT.insert (tnum tNoHops) gNoHops''    LT.new
   where
      gNoHops'' = FIXTag
         { tName = "NoHops"
         , tnum = tnum tNoHops
         , tparser = gNoHopsP''
         , arbitraryValue = arbibtraryFIXGroup gNoHopsSpec'' }

      gNoHopsP'' = groupP gNoHopsSpec''
      gNoHopsSpec'' = FGSpec
         { gsLength = tNoHops
         , gsSeperator = tHopCompID
         , gsBody = gNoHopsBody'' }
         where
         gNoHopsBody'' = 
            LT.insert (tnum tHopSendingTime) tHopSendingTime $
            LT.insert (tnum tHopRefID) tHopRefID             LT.new



trailerFIX44 :: FIXTags
trailerFIX44 = 
   LT.insert (tnum tSignatureLength) tSignatureLength $
   LT.insert (tnum tSignature) tSignature    LT.new


mHeartbeat :: FIXMessageSpec
mHeartbeat = FMSpec
   { msName = "Heartbeat"
   , msType = C.pack "0"
   , msHeader = headerFIX44
   , msBody = mHeartbeatBody
   , msTrailer = trailerFIX44 }
   where
   mHeartbeatBody = 
      LT.insert (tnum tTestReqID) tTestReqID       LT.new


mTestRequest :: FIXMessageSpec
mTestRequest = FMSpec
   { msName = "TestRequest"
   , msType = C.pack "1"
   , msHeader = headerFIX44
   , msBody = mTestRequestBody
   , msTrailer = trailerFIX44 }
   where
   mTestRequestBody = 
      LT.insert (tnum tTestReqID) tTestReqID       LT.new


mResendRequest :: FIXMessageSpec
mResendRequest = FMSpec
   { msName = "ResendRequest"
   , msType = C.pack "2"
   , msHeader = headerFIX44
   , msBody = mResendRequestBody
   , msTrailer = trailerFIX44 }
   where
   mResendRequestBody = 
      LT.insert (tnum tBeginSeqNo) tBeginSeqNo $
      LT.insert (tnum tEndSeqNo) tEndSeqNo       LT.new


mReject :: FIXMessageSpec
mReject = FMSpec
   { msName = "Reject"
   , msType = C.pack "3"
   , msHeader = headerFIX44
   , msBody = mRejectBody
   , msTrailer = trailerFIX44 }
   where
   mRejectBody = 
      LT.insert (tnum tRefSeqNum) tRefSeqNum $
      LT.insert (tnum tRefTagID) tRefTagID $
      LT.insert (tnum tRefMsgType) tRefMsgType $
      LT.insert (tnum tSessionRejectReason) tSessionRejectReason $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mSequenceReset :: FIXMessageSpec
mSequenceReset = FMSpec
   { msName = "SequenceReset"
   , msType = C.pack "4"
   , msHeader = headerFIX44
   , msBody = mSequenceResetBody
   , msTrailer = trailerFIX44 }
   where
   mSequenceResetBody = 
      LT.insert (tnum tGapFillFlag) tGapFillFlag $
      LT.insert (tnum tNewSeqNo) tNewSeqNo       LT.new


mLogout :: FIXMessageSpec
mLogout = FMSpec
   { msName = "Logout"
   , msType = C.pack "5"
   , msHeader = headerFIX44
   , msBody = mLogoutBody
   , msTrailer = trailerFIX44 }
   where
   mLogoutBody = 
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mIOI :: FIXMessageSpec
mIOI = FMSpec
   { msName = "IOI"
   , msType = C.pack "6"
   , msHeader = headerFIX44
   , msBody = mIOIBody
   , msTrailer = trailerFIX44 }
   where
   mIOIBody = 
      LT.insert (tnum tIOIID) tIOIID $
      LT.insert (tnum tIOITransType) tIOITransType $
      LT.insert (tnum tIOIRefID) tIOIRefID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tIOIQty) tIOIQty $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tValidUntilTime) tValidUntilTime $
      LT.insert (tnum tIOIQltyInd) tIOIQltyInd $
      LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $
      LT.insert (tnum tNoIOIQualifiers) gNoIOIQualifiers''' $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tURLLink) tURLLink $
      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoIOIQualifiers''' = FIXTag
            { tName = "NoIOIQualifiers"
            , tnum = tnum tNoIOIQualifiers
            , tparser = gNoIOIQualifiersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoIOIQualifiersSpec''' }

         gNoIOIQualifiersP''' = groupP gNoIOIQualifiersSpec'''
         gNoIOIQualifiersSpec''' = FGSpec
            { gsLength = tNoIOIQualifiers
            , gsSeperator = tIOIQualifier
            , gsBody = gNoIOIQualifiersBody''' }
            where
            gNoIOIQualifiersBody''' = 
               LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegIOIQty) tLegIOIQty $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new


         gNoRoutingIDs''' = FIXTag
            { tName = "NoRoutingIDs"
            , tnum = tnum tNoRoutingIDs
            , tparser = gNoRoutingIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }

         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''
         gNoRoutingIDsSpec''' = FGSpec
            { gsLength = tNoRoutingIDs
            , gsSeperator = tRoutingType
            , gsBody = gNoRoutingIDsBody''' }
            where
            gNoRoutingIDsBody''' = 
               LT.insert (tnum tRoutingID) tRoutingID                LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mAdvertisement :: FIXMessageSpec
mAdvertisement = FMSpec
   { msName = "Advertisement"
   , msType = C.pack "7"
   , msHeader = headerFIX44
   , msBody = mAdvertisementBody
   , msTrailer = trailerFIX44 }
   where
   mAdvertisementBody = 
      LT.insert (tnum tAdvId) tAdvId $
      LT.insert (tnum tAdvTransType) tAdvTransType $
      LT.insert (tnum tAdvRefID) tAdvRefID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tAdvSide) tAdvSide $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tURLLink) tURLLink $
      LT.insert (tnum tLastMkt) tLastMkt $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mExecutionReport :: FIXMessageSpec
mExecutionReport = FMSpec
   { msName = "ExecutionReport"
   , msType = C.pack "8"
   , msHeader = headerFIX44
   , msBody = mExecutionReportBody
   , msTrailer = trailerFIX44 }
   where
   mExecutionReportBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tQuoteRespID) tQuoteRespID $
      LT.insert (tnum tOrdStatusReqID) tOrdStatusReqID $
      LT.insert (tnum tMassStatusReqID) tMassStatusReqID $
      LT.insert (tnum tTotNumReports) tTotNumReports $
      LT.insert (tnum tLastRptRequested) tLastRptRequested $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tNoContraBrokers) gNoContraBrokers''' $
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tCrossID) tCrossID $
      LT.insert (tnum tOrigCrossID) tOrigCrossID $
      LT.insert (tnum tCrossType) tCrossType $
      LT.insert (tnum tExecID) tExecID $
      LT.insert (tnum tExecRefID) tExecRefID $
      LT.insert (tnum tExecType) tExecType $
      LT.insert (tnum tOrdStatus) tOrdStatus $
      LT.insert (tnum tWorkingIndicator) tWorkingIndicator $
      LT.insert (tnum tOrdRejReason) tOrdRejReason $
      LT.insert (tnum tExecRestatementReason) tExecRestatementReason $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tDayBookingInst) tDayBookingInst $
      LT.insert (tnum tBookingUnit) tBookingUnit $
      LT.insert (tnum tPreallocMethod) tPreallocMethod $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tCashMargin) tCashMargin $
      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tStopPx) tStopPx $
      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
      LT.insert (tnum tPegMoveType) tPegMoveType $
      LT.insert (tnum tPegOffsetType) tPegOffsetType $
      LT.insert (tnum tPegLimitType) tPegLimitType $
      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
      LT.insert (tnum tPegScope) tPegScope $
      LT.insert (tnum tDiscretionInst) tDiscretionInst $
      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
      LT.insert (tnum tDiscretionScope) tDiscretionScope $
      LT.insert (tnum tPeggedPrice) tPeggedPrice $
      LT.insert (tnum tDiscretionPrice) tDiscretionPrice $
      LT.insert (tnum tTargetStrategy) tTargetStrategy $
      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
      LT.insert (tnum tParticipationRate) tParticipationRate $
      LT.insert (tnum tTargetStrategyPerformance) tTargetStrategyPerformance $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
      LT.insert (tnum tTimeInForce) tTimeInForce $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tExecInst) tExecInst $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tLastQty) tLastQty $
      LT.insert (tnum tUnderlyingLastQty) tUnderlyingLastQty $
      LT.insert (tnum tLastPx) tLastPx $
      LT.insert (tnum tUnderlyingLastPx) tUnderlyingLastPx $
      LT.insert (tnum tLastParPx) tLastParPx $
      LT.insert (tnum tLastSpotRate) tLastSpotRate $
      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $
      LT.insert (tnum tLastMkt) tLastMkt $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tTimeBracket) tTimeBracket $
      LT.insert (tnum tLastCapacity) tLastCapacity $
      LT.insert (tnum tLeavesQty) tLeavesQty $
      LT.insert (tnum tCumQty) tCumQty $
      LT.insert (tnum tAvgPx) tAvgPx $
      LT.insert (tnum tDayOrderQty) tDayOrderQty $
      LT.insert (tnum tDayCumQty) tDayCumQty $
      LT.insert (tnum tDayAvgPx) tDayAvgPx $
      LT.insert (tnum tGTBookingInst) tGTBookingInst $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tReportToExch) tReportToExch $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommCurrency) tCommCurrency $
      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $
      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $
      LT.insert (tnum tExDate) tExDate $
      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tTradedFlatSwitch) tTradedFlatSwitch $
      LT.insert (tnum tBasisFeatureDate) tBasisFeatureDate $
      LT.insert (tnum tBasisFeaturePrice) tBasisFeaturePrice $
      LT.insert (tnum tConcession) tConcession $
      LT.insert (tnum tTotalTakedown) tTotalTakedown $
      LT.insert (tnum tNetMoney) tNetMoney $
      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $
      LT.insert (tnum tSettlCurrency) tSettlCurrency $
      LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $
      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
      LT.insert (tnum tHandlInst) tHandlInst $
      LT.insert (tnum tMinQty) tMinQty $
      LT.insert (tnum tMaxFloor) tMaxFloor $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tMaxShow) tMaxShow $
      LT.insert (tnum tBookingType) tBookingType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tSettlDate2) tSettlDate2 $
      LT.insert (tnum tOrderQty2) tOrderQty2 $
      LT.insert (tnum tLastForwardPoints2) tLastForwardPoints2 $
      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tDesignation) tDesignation $
      LT.insert (tnum tTransBkdTime) tTransBkdTime $
      LT.insert (tnum tExecValuationPoint) tExecValuationPoint $
      LT.insert (tnum tExecPriceType) tExecPriceType $
      LT.insert (tnum tExecPriceAdjustment) tExecPriceAdjustment $
      LT.insert (tnum tPriorityIndicator) tPriorityIndicator $
      LT.insert (tnum tPriceImprovement) tPriceImprovement $
      LT.insert (tnum tLastLiquidityInd) tLastLiquidityInd $
      LT.insert (tnum tNoContAmts) gNoContAmts''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $
      LT.insert (tnum tNoMiscFees) gNoMiscFees'''       LT.new
      where
         gNoContAmts''' = FIXTag
            { tName = "NoContAmts"
            , tnum = tnum tNoContAmts
            , tparser = gNoContAmtsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoContAmtsSpec''' }

         gNoContAmtsP''' = groupP gNoContAmtsSpec'''
         gNoContAmtsSpec''' = FGSpec
            { gsLength = tNoContAmts
            , gsSeperator = tContAmtType
            , gsBody = gNoContAmtsBody''' }
            where
            gNoContAmtsBody''' = 
               LT.insert (tnum tContAmtValue) tContAmtValue $
               LT.insert (tnum tContAmtCurr) tContAmtCurr                LT.new

         gNoContraBrokers''' = FIXTag
            { tName = "NoContraBrokers"
            , tnum = tnum tNoContraBrokers
            , tparser = gNoContraBrokersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoContraBrokersSpec''' }

         gNoContraBrokersP''' = groupP gNoContraBrokersSpec'''
         gNoContraBrokersSpec''' = FGSpec
            { gsLength = tNoContraBrokers
            , gsSeperator = tContraBroker
            , gsBody = gNoContraBrokersBody''' }
            where
            gNoContraBrokersBody''' = 
               LT.insert (tnum tContraTrader) tContraTrader $
               LT.insert (tnum tContraTradeQty) tContraTradeQty $
               LT.insert (tnum tContraTradeTime) tContraTradeTime $
               LT.insert (tnum tContraLegRefID) tContraLegRefID                LT.new

         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $
               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tLegRefID) tLegRefID $
               LT.insert (tnum tLegPrice) tLegPrice $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate $
               LT.insert (tnum tLegLastPx) tLegLastPx                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoMiscFees''' = FIXTag
            { tName = "NoMiscFees"
            , tnum = tnum tNoMiscFees
            , tparser = gNoMiscFeesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }

         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''
         gNoMiscFeesSpec''' = FGSpec
            { gsLength = tNoMiscFees
            , gsSeperator = tMiscFeeAmt
            , gsBody = gNoMiscFeesBody''' }
            where
            gNoMiscFeesBody''' = 
               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
               LT.insert (tnum tMiscFeeType) tMiscFeeType $
               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mOrderCancelReject :: FIXMessageSpec
mOrderCancelReject = FMSpec
   { msName = "OrderCancelReject"
   , msType = C.pack "9"
   , msHeader = headerFIX44
   , msBody = mOrderCancelRejectBody
   , msTrailer = trailerFIX44 }
   where
   mOrderCancelRejectBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
      LT.insert (tnum tOrdStatus) tOrdStatus $
      LT.insert (tnum tWorkingIndicator) tWorkingIndicator $
      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $
      LT.insert (tnum tCxlRejReason) tCxlRejReason $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mLogon :: FIXMessageSpec
mLogon = FMSpec
   { msName = "Logon"
   , msType = C.pack "A"
   , msHeader = headerFIX44
   , msBody = mLogonBody
   , msTrailer = trailerFIX44 }
   where
   mLogonBody = 
      LT.insert (tnum tEncryptMethod) tEncryptMethod $
      LT.insert (tnum tHeartBtInt) tHeartBtInt $
      LT.insert (tnum tRawDataLength) tRawDataLength $
      LT.insert (tnum tRawData) tRawData $
      LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $
      LT.insert (tnum tNextExpectedMsgSeqNum) tNextExpectedMsgSeqNum $
      LT.insert (tnum tMaxMessageSize) tMaxMessageSize $
      LT.insert (tnum tNoMsgTypes) gNoMsgTypes''' $
      LT.insert (tnum tTestMessageIndicator) tTestMessageIndicator $
      LT.insert (tnum tUsername) tUsername $
      LT.insert (tnum tPassword) tPassword       LT.new
      where
         gNoMsgTypes''' = FIXTag
            { tName = "NoMsgTypes"
            , tnum = tnum tNoMsgTypes
            , tparser = gNoMsgTypesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMsgTypesSpec''' }

         gNoMsgTypesP''' = groupP gNoMsgTypesSpec'''
         gNoMsgTypesSpec''' = FGSpec
            { gsLength = tNoMsgTypes
            , gsSeperator = tRefMsgType
            , gsBody = gNoMsgTypesBody''' }
            where
            gNoMsgTypesBody''' = 
               LT.insert (tnum tMsgDirection) tMsgDirection                LT.new



mNews :: FIXMessageSpec
mNews = FMSpec
   { msName = "News"
   , msType = C.pack "B"
   , msHeader = headerFIX44
   , msBody = mNewsBody
   , msTrailer = trailerFIX44 }
   where
   mNewsBody = 
      LT.insert (tnum tOrigTime) tOrigTime $
      LT.insert (tnum tUrgency) tUrgency $
      LT.insert (tnum tHeadline) tHeadline $
      LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $
      LT.insert (tnum tEncodedHeadline) tEncodedHeadline $
      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLinesOfText) gNoLinesOfText''' $
      LT.insert (tnum tURLLink) tURLLink $
      LT.insert (tnum tRawDataLength) tRawDataLength $
      LT.insert (tnum tRawData) tRawData       LT.new
      where
         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoLinesOfText''' = FIXTag
            { tName = "NoLinesOfText"
            , tnum = tnum tNoLinesOfText
            , tparser = gNoLinesOfTextP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLinesOfTextSpec''' }

         gNoLinesOfTextP''' = groupP gNoLinesOfTextSpec'''
         gNoLinesOfTextSpec''' = FGSpec
            { gsLength = tNoLinesOfText
            , gsSeperator = tText
            , gsBody = gNoLinesOfTextBody''' }
            where
            gNoLinesOfTextBody''' = 
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new

         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new


         gNoRoutingIDs''' = FIXTag
            { tName = "NoRoutingIDs"
            , tnum = tnum tNoRoutingIDs
            , tparser = gNoRoutingIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }

         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''
         gNoRoutingIDsSpec''' = FGSpec
            { gsLength = tNoRoutingIDs
            , gsSeperator = tRoutingType
            , gsBody = gNoRoutingIDsBody''' }
            where
            gNoRoutingIDsBody''' = 
               LT.insert (tnum tRoutingID) tRoutingID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mEmail :: FIXMessageSpec
mEmail = FMSpec
   { msName = "Email"
   , msType = C.pack "C"
   , msHeader = headerFIX44
   , msBody = mEmailBody
   , msTrailer = trailerFIX44 }
   where
   mEmailBody = 
      LT.insert (tnum tEmailThreadID) tEmailThreadID $
      LT.insert (tnum tEmailType) tEmailType $
      LT.insert (tnum tOrigTime) tOrigTime $
      LT.insert (tnum tSubject) tSubject $
      LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $
      LT.insert (tnum tEncodedSubject) tEncodedSubject $
      LT.insert (tnum tNoRoutingIDs) gNoRoutingIDs''' $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tNoLinesOfText) gNoLinesOfText''' $
      LT.insert (tnum tRawDataLength) tRawDataLength $
      LT.insert (tnum tRawData) tRawData       LT.new
      where
         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoLinesOfText''' = FIXTag
            { tName = "NoLinesOfText"
            , tnum = tnum tNoLinesOfText
            , tparser = gNoLinesOfTextP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLinesOfTextSpec''' }

         gNoLinesOfTextP''' = groupP gNoLinesOfTextSpec'''
         gNoLinesOfTextSpec''' = FGSpec
            { gsLength = tNoLinesOfText
            , gsSeperator = tText
            , gsBody = gNoLinesOfTextBody''' }
            where
            gNoLinesOfTextBody''' = 
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new

         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new


         gNoRoutingIDs''' = FIXTag
            { tName = "NoRoutingIDs"
            , tnum = tnum tNoRoutingIDs
            , tparser = gNoRoutingIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRoutingIDsSpec''' }

         gNoRoutingIDsP''' = groupP gNoRoutingIDsSpec'''
         gNoRoutingIDsSpec''' = FGSpec
            { gsLength = tNoRoutingIDs
            , gsSeperator = tRoutingType
            , gsBody = gNoRoutingIDsBody''' }
            where
            gNoRoutingIDsBody''' = 
               LT.insert (tnum tRoutingID) tRoutingID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mNewOrderSingle :: FIXMessageSpec
mNewOrderSingle = FMSpec
   { msName = "NewOrderSingle"
   , msType = C.pack "D"
   , msHeader = headerFIX44
   , msBody = mNewOrderSingleBody
   , msTrailer = trailerFIX44 }
   where
   mNewOrderSingleBody = 
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tDayBookingInst) tDayBookingInst $
      LT.insert (tnum tBookingUnit) tBookingUnit $
      LT.insert (tnum tPreallocMethod) tPreallocMethod $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tNoAllocs) gNoAllocs''' $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tCashMargin) tCashMargin $
      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
      LT.insert (tnum tHandlInst) tHandlInst $
      LT.insert (tnum tExecInst) tExecInst $
      LT.insert (tnum tMinQty) tMinQty $
      LT.insert (tnum tMaxFloor) tMaxFloor $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tProcessCode) tProcessCode $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tPrevClosePx) tPrevClosePx $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tLocateReqd) tLocateReqd $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tStopPx) tStopPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
      LT.insert (tnum tIOIID) tIOIID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tTimeInForce) tTimeInForce $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tGTBookingInst) tGTBookingInst $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommCurrency) tCommCurrency $
      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tForexReq) tForexReq $
      LT.insert (tnum tSettlCurrency) tSettlCurrency $
      LT.insert (tnum tBookingType) tBookingType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tSettlDate2) tSettlDate2 $
      LT.insert (tnum tOrderQty2) tOrderQty2 $
      LT.insert (tnum tPrice2) tPrice2 $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
      LT.insert (tnum tMaxShow) tMaxShow $
      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
      LT.insert (tnum tPegMoveType) tPegMoveType $
      LT.insert (tnum tPegOffsetType) tPegOffsetType $
      LT.insert (tnum tPegLimitType) tPegLimitType $
      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
      LT.insert (tnum tPegScope) tPegScope $
      LT.insert (tnum tDiscretionInst) tDiscretionInst $
      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
      LT.insert (tnum tDiscretionScope) tDiscretionScope $
      LT.insert (tnum tTargetStrategy) tTargetStrategy $
      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
      LT.insert (tnum tParticipationRate) tParticipationRate $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tDesignation) tDesignation       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tAllocQty) tAllocQty                LT.new
               where
                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mNewOrderList :: FIXMessageSpec
mNewOrderList = FMSpec
   { msName = "NewOrderList"
   , msType = C.pack "E"
   , msHeader = headerFIX44
   , msBody = mNewOrderListBody
   , msTrailer = trailerFIX44 }
   where
   mNewOrderListBody = 
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tBidID) tBidID $
      LT.insert (tnum tClientBidID) tClientBidID $
      LT.insert (tnum tProgRptReqs) tProgRptReqs $
      LT.insert (tnum tBidType) tBidType $
      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tListExecInstType) tListExecInstType $
      LT.insert (tnum tListExecInst) tListExecInst $
      LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $
      LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $
      LT.insert (tnum tAllowableOneSidednessPct) tAllowableOneSidednessPct $
      LT.insert (tnum tAllowableOneSidednessValue) tAllowableOneSidednessValue $
      LT.insert (tnum tAllowableOneSidednessCurr) tAllowableOneSidednessCurr $
      LT.insert (tnum tTotNoOrders) tTotNoOrders $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new
      where
         gNoOrders''' = FIXTag
            { tName = "NoOrders"
            , tnum = tnum tNoOrders
            , tparser = gNoOrdersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }

         gNoOrdersP''' = groupP gNoOrdersSpec'''
         gNoOrdersSpec''' = FGSpec
            { gsLength = tNoOrders
            , gsSeperator = tClOrdID
            , gsBody = gNoOrdersBody''' }
            where
            gNoOrdersBody''' = 
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tListSeqNo) tListSeqNo $
               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
               LT.insert (tnum tSettlInstMode) tSettlInstMode $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $
               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
               LT.insert (tnum tTradeDate) tTradeDate $
               LT.insert (tnum tAccount) tAccount $
               LT.insert (tnum tAcctIDSource) tAcctIDSource $
               LT.insert (tnum tAccountType) tAccountType $
               LT.insert (tnum tDayBookingInst) tDayBookingInst $
               LT.insert (tnum tBookingUnit) tBookingUnit $
               LT.insert (tnum tAllocID) tAllocID $
               LT.insert (tnum tPreallocMethod) tPreallocMethod $
               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $
               LT.insert (tnum tSettlType) tSettlType $
               LT.insert (tnum tSettlDate) tSettlDate $
               LT.insert (tnum tCashMargin) tCashMargin $
               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
               LT.insert (tnum tHandlInst) tHandlInst $
               LT.insert (tnum tExecInst) tExecInst $
               LT.insert (tnum tMinQty) tMinQty $
               LT.insert (tnum tMaxFloor) tMaxFloor $
               LT.insert (tnum tExDestination) tExDestination $
               LT.insert (tnum tNoTradingSessions) gNoTradingSessions'''''' $
               LT.insert (tnum tProcessCode) tProcessCode $
               LT.insert (tnum tSymbol) tSymbol $
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tPrevClosePx) tPrevClosePx $
               LT.insert (tnum tSide) tSide $
               LT.insert (tnum tSideValueInd) tSideValueInd $
               LT.insert (tnum tLocateReqd) tLocateReqd $
               LT.insert (tnum tTransactTime) tTransactTime $
               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $
               LT.insert (tnum tQtyType) tQtyType $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tCashOrderQty) tCashOrderQty $
               LT.insert (tnum tOrderPercent) tOrderPercent $
               LT.insert (tnum tRoundingDirection) tRoundingDirection $
               LT.insert (tnum tRoundingModulus) tRoundingModulus $
               LT.insert (tnum tOrdType) tOrdType $
               LT.insert (tnum tPriceType) tPriceType $
               LT.insert (tnum tPrice) tPrice $
               LT.insert (tnum tStopPx) tStopPx $
               LT.insert (tnum tSpread) tSpread $
               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
               LT.insert (tnum tYieldType) tYieldType $
               LT.insert (tnum tYield) tYield $
               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tComplianceID) tComplianceID $
               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
               LT.insert (tnum tIOIID) tIOIID $
               LT.insert (tnum tQuoteID) tQuoteID $
               LT.insert (tnum tTimeInForce) tTimeInForce $
               LT.insert (tnum tEffectiveTime) tEffectiveTime $
               LT.insert (tnum tExpireDate) tExpireDate $
               LT.insert (tnum tExpireTime) tExpireTime $
               LT.insert (tnum tGTBookingInst) tGTBookingInst $
               LT.insert (tnum tCommission) tCommission $
               LT.insert (tnum tCommType) tCommType $
               LT.insert (tnum tCommCurrency) tCommCurrency $
               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
               LT.insert (tnum tOrderCapacity) tOrderCapacity $
               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
               LT.insert (tnum tForexReq) tForexReq $
               LT.insert (tnum tSettlCurrency) tSettlCurrency $
               LT.insert (tnum tBookingType) tBookingType $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText $
               LT.insert (tnum tSettlDate2) tSettlDate2 $
               LT.insert (tnum tOrderQty2) tOrderQty2 $
               LT.insert (tnum tPrice2) tPrice2 $
               LT.insert (tnum tPositionEffect) tPositionEffect $
               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
               LT.insert (tnum tMaxShow) tMaxShow $
               LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
               LT.insert (tnum tPegMoveType) tPegMoveType $
               LT.insert (tnum tPegOffsetType) tPegOffsetType $
               LT.insert (tnum tPegLimitType) tPegLimitType $
               LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
               LT.insert (tnum tPegScope) tPegScope $
               LT.insert (tnum tDiscretionInst) tDiscretionInst $
               LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
               LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
               LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
               LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
               LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
               LT.insert (tnum tDiscretionScope) tDiscretionScope $
               LT.insert (tnum tTargetStrategy) tTargetStrategy $
               LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
               LT.insert (tnum tParticipationRate) tParticipationRate $
               LT.insert (tnum tDesignation) tDesignation                LT.new
               where
                  gNoAllocs'''''' = FIXTag
                     { tName = "NoAllocs"
                     , tnum = tnum tNoAllocs
                     , tparser = gNoAllocsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }

                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''
                  gNoAllocsSpec'''''' = FGSpec
                     { gsLength = tNoAllocs
                     , gsSeperator = tAllocAccount
                     , gsBody = gNoAllocsBody'''''' }
                     where
                     gNoAllocsBody'''''' = 
                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $
                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new
                        where
                           gNoNestedPartyIDs''''''''' = FIXTag
                              { tName = "NoNestedPartyIDs"
                              , tnum = tnum tNoNestedPartyIDs
                              , tparser = gNoNestedPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }

                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''
                           gNoNestedPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartyIDs
                              , gsSeperator = tNestedPartyID
                              , gsBody = gNoNestedPartyIDsBody''''''''' }
                              where
                              gNoNestedPartyIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNestedPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNestedPartySubIDs"
                                       , tnum = tnum tNoNestedPartySubIDs
                                       , tparser = gNoNestedPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }

                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''
                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNestedPartySubIDs
                                       , gsSeperator = tNestedPartySubID
                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }
                                       where
                                       gNoNestedPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new



                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new


                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoStipulations'''''' = FIXTag
                     { tName = "NoStipulations"
                     , tnum = tnum tNoStipulations
                     , tparser = gNoStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }

                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''
                  gNoStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoStipulations
                     , gsSeperator = tStipulationType
                     , gsBody = gNoStipulationsBody'''''' }
                     where
                     gNoStipulationsBody'''''' = 
                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new

                  gNoTradingSessions'''''' = FIXTag
                     { tName = "NoTradingSessions"
                     , tnum = tnum tNoTradingSessions
                     , tparser = gNoTradingSessionsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec'''''' }

                  gNoTradingSessionsP'''''' = groupP gNoTradingSessionsSpec''''''
                  gNoTradingSessionsSpec'''''' = FGSpec
                     { gsLength = tNoTradingSessions
                     , gsSeperator = tTradingSessionID
                     , gsBody = gNoTradingSessionsBody'''''' }
                     where
                     gNoTradingSessionsBody'''''' = 
                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mOrderCancelRequest :: FIXMessageSpec
mOrderCancelRequest = FMSpec
   { msName = "OrderCancelRequest"
   , msType = C.pack "F"
   , msHeader = headerFIX44
   , msBody = mOrderCancelRequestBody
   , msTrailer = trailerFIX44 }
   where
   mOrderCancelRequestBody = 
      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mOrderCancelReplaceRequest :: FIXMessageSpec
mOrderCancelReplaceRequest = FMSpec
   { msName = "OrderCancelReplaceRequest"
   , msType = C.pack "G"
   , msHeader = headerFIX44
   , msBody = mOrderCancelReplaceRequestBody
   , msTrailer = trailerFIX44 }
   where
   mOrderCancelReplaceRequestBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tDayBookingInst) tDayBookingInst $
      LT.insert (tnum tBookingUnit) tBookingUnit $
      LT.insert (tnum tPreallocMethod) tPreallocMethod $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tNoAllocs) gNoAllocs''' $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tCashMargin) tCashMargin $
      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
      LT.insert (tnum tHandlInst) tHandlInst $
      LT.insert (tnum tExecInst) tExecInst $
      LT.insert (tnum tMinQty) tMinQty $
      LT.insert (tnum tMaxFloor) tMaxFloor $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tStopPx) tStopPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
      LT.insert (tnum tPegMoveType) tPegMoveType $
      LT.insert (tnum tPegOffsetType) tPegOffsetType $
      LT.insert (tnum tPegLimitType) tPegLimitType $
      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
      LT.insert (tnum tPegScope) tPegScope $
      LT.insert (tnum tDiscretionInst) tDiscretionInst $
      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
      LT.insert (tnum tDiscretionScope) tDiscretionScope $
      LT.insert (tnum tTargetStrategy) tTargetStrategy $
      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
      LT.insert (tnum tParticipationRate) tParticipationRate $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tTimeInForce) tTimeInForce $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tGTBookingInst) tGTBookingInst $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommCurrency) tCommCurrency $
      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tForexReq) tForexReq $
      LT.insert (tnum tSettlCurrency) tSettlCurrency $
      LT.insert (tnum tBookingType) tBookingType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tSettlDate2) tSettlDate2 $
      LT.insert (tnum tOrderQty2) tOrderQty2 $
      LT.insert (tnum tPrice2) tPrice2 $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
      LT.insert (tnum tMaxShow) tMaxShow $
      LT.insert (tnum tLocateReqd) tLocateReqd $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tDesignation) tDesignation       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tAllocQty) tAllocQty                LT.new
               where
                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mOrderStatusRequest :: FIXMessageSpec
mOrderStatusRequest = FMSpec
   { msName = "OrderStatusRequest"
   , msType = C.pack "H"
   , msHeader = headerFIX44
   , msBody = mOrderStatusRequestBody
   , msTrailer = trailerFIX44 }
   where
   mOrderStatusRequestBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tOrdStatusReqID) tOrdStatusReqID $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mAllocationInstruction :: FIXMessageSpec
mAllocationInstruction = FMSpec
   { msName = "AllocationInstruction"
   , msType = C.pack "J"
   , msHeader = headerFIX44
   , msBody = mAllocationInstructionBody
   , msTrailer = trailerFIX44 }
   where
   mAllocationInstructionBody = 
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tAllocTransType) tAllocTransType $
      LT.insert (tnum tAllocType) tAllocType $
      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $
      LT.insert (tnum tRefAllocID) tRefAllocID $
      LT.insert (tnum tAllocCancReplaceReason) tAllocCancReplaceReason $
      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $
      LT.insert (tnum tAllocLinkID) tAllocLinkID $
      LT.insert (tnum tAllocLinkType) tAllocLinkType $
      LT.insert (tnum tBookingRefID) tBookingRefID $
      LT.insert (tnum tAllocNoOrdersType) tAllocNoOrdersType $
      LT.insert (tnum tNoOrders) gNoOrders''' $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tPreviouslyReported) tPreviouslyReported $
      LT.insert (tnum tReversalIndicator) tReversalIndicator $
      LT.insert (tnum tMatchType) tMatchType $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tLastMkt) tLastMkt $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAvgPx) tAvgPx $
      LT.insert (tnum tAvgParPx) tAvgParPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tBookingType) tBookingType $
      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $
      LT.insert (tnum tConcession) tConcession $
      LT.insert (tnum tTotalTakedown) tTotalTakedown $
      LT.insert (tnum tNetMoney) tNetMoney $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tAutoAcceptIndicator) tAutoAcceptIndicator $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $
      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $
      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tLegalConfirm) tLegalConfirm $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tTotNoAllocs) tTotNoAllocs $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tMatchStatus) tMatchStatus $
               LT.insert (tnum tAllocPrice) tAllocPrice $
               LT.insert (tnum tAllocQty) tAllocQty $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tProcessCode) tProcessCode $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $
               LT.insert (tnum tAllocHandlInst) tAllocHandlInst $
               LT.insert (tnum tAllocText) tAllocText $
               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $
               LT.insert (tnum tEncodedAllocText) tEncodedAllocText $
               LT.insert (tnum tCommission) tCommission $
               LT.insert (tnum tCommType) tCommType $
               LT.insert (tnum tCommCurrency) tCommCurrency $
               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
               LT.insert (tnum tAllocAvgPx) tAllocAvgPx $
               LT.insert (tnum tAllocNetMoney) tAllocNetMoney $
               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $
               LT.insert (tnum tAllocSettlCurrAmt) tAllocSettlCurrAmt $
               LT.insert (tnum tSettlCurrency) tSettlCurrency $
               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $
               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
               LT.insert (tnum tAllocAccruedInterestAmt) tAllocAccruedInterestAmt $
               LT.insert (tnum tAllocInterestAtMaturity) tAllocInterestAtMaturity $
               LT.insert (tnum tNoMiscFees) gNoMiscFees'''''' $
               LT.insert (tnum tNoClearingInstructions) gNoClearingInstructions'''''' $
               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
               LT.insert (tnum tAllocSettlInstType) tAllocSettlInstType $
               LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
               LT.insert (tnum tStandInstDbType) tStandInstDbType $
               LT.insert (tnum tStandInstDbName) tStandInstDbName $
               LT.insert (tnum tStandInstDbID) tStandInstDbID $
               LT.insert (tnum tNoDlvyInst) gNoDlvyInst''''''                LT.new
               where
                  gNoClearingInstructions'''''' = FIXTag
                     { tName = "NoClearingInstructions"
                     , tnum = tnum tNoClearingInstructions
                     , tparser = gNoClearingInstructionsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoClearingInstructionsSpec'''''' }

                  gNoClearingInstructionsP'''''' = groupP gNoClearingInstructionsSpec''''''
                  gNoClearingInstructionsSpec'''''' = FGSpec
                     { gsLength = tNoClearingInstructions
                     , gsSeperator = tClearingInstruction
                     , gsBody = gNoClearingInstructionsBody'''''' }
                     where
                     gNoClearingInstructionsBody'''''' = 
                        LT.new

                  gNoDlvyInst'''''' = FIXTag
                     { tName = "NoDlvyInst"
                     , tnum = tnum tNoDlvyInst
                     , tparser = gNoDlvyInstP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec'''''' }

                  gNoDlvyInstP'''''' = groupP gNoDlvyInstSpec''''''
                  gNoDlvyInstSpec'''''' = FGSpec
                     { gsLength = tNoDlvyInst
                     , gsSeperator = tSettlInstSource
                     , gsBody = gNoDlvyInstBody'''''' }
                     where
                     gNoDlvyInstBody'''''' = 
                        LT.insert (tnum tDlvyInstType) tDlvyInstType $
                        LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs'''''''''                         LT.new
                        where
                           gNoSettlPartyIDs''''''''' = FIXTag
                              { tName = "NoSettlPartyIDs"
                              , tnum = tnum tNoSettlPartyIDs
                              , tparser = gNoSettlPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec''''''''' }

                           gNoSettlPartyIDsP''''''''' = groupP gNoSettlPartyIDsSpec'''''''''
                           gNoSettlPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoSettlPartyIDs
                              , gsSeperator = tSettlPartyID
                              , gsBody = gNoSettlPartyIDsBody''''''''' }
                              where
                              gNoSettlPartyIDsBody''''''''' = 
                                 LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
                                 LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
                                 LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoSettlPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoSettlPartySubIDs"
                                       , tnum = tnum tNoSettlPartySubIDs
                                       , tparser = gNoSettlPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec'''''''''''' }

                                    gNoSettlPartySubIDsP'''''''''''' = groupP gNoSettlPartySubIDsSpec''''''''''''
                                    gNoSettlPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoSettlPartySubIDs
                                       , gsSeperator = tSettlPartySubID
                                       , gsBody = gNoSettlPartySubIDsBody'''''''''''' }
                                       where
                                       gNoSettlPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                           LT.new



                  gNoMiscFees'''''' = FIXTag
                     { tName = "NoMiscFees"
                     , tnum = tnum tNoMiscFees
                     , tparser = gNoMiscFeesP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }

                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''
                  gNoMiscFeesSpec'''''' = FGSpec
                     { gsLength = tNoMiscFees
                     , gsSeperator = tMiscFeeAmt
                     , gsBody = gNoMiscFeesBody'''''' }
                     where
                     gNoMiscFeesBody'''''' = 
                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
                        LT.insert (tnum tMiscFeeType) tMiscFeeType $
                        LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tLastQty
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.insert (tnum tExecID) tExecID $
               LT.insert (tnum tSecondaryExecID) tSecondaryExecID $
               LT.insert (tnum tLastPx) tLastPx $
               LT.insert (tnum tLastParPx) tLastParPx $
               LT.insert (tnum tLastCapacity) tLastCapacity                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoOrders''' = FIXTag
            { tName = "NoOrders"
            , tnum = tnum tNoOrders
            , tparser = gNoOrdersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }

         gNoOrdersP''' = groupP gNoOrdersSpec'''
         gNoOrdersSpec''' = FGSpec
            { gsLength = tNoOrders
            , gsSeperator = tClOrdID
            , gsBody = gNoOrdersBody''' }
            where
            gNoOrdersBody''' = 
               LT.insert (tnum tOrderID) tOrderID $
               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tListID) tListID $
               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $
               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new
               where
                  gNoNested2PartyIDs'''''' = FIXTag
                     { tName = "NoNested2PartyIDs"
                     , tnum = tnum tNoNested2PartyIDs
                     , tparser = gNoNested2PartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }

                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''
                  gNoNested2PartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNested2PartyIDs
                     , gsSeperator = tNested2PartyID
                     , gsBody = gNoNested2PartyIDsBody'''''' }
                     where
                     gNoNested2PartyIDsBody'''''' = 
                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new
                        where
                           gNoNested2PartySubIDs''''''''' = FIXTag
                              { tName = "NoNested2PartySubIDs"
                              , tnum = tnum tNoNested2PartySubIDs
                              , tparser = gNoNested2PartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }

                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''
                           gNoNested2PartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartySubIDs
                              , gsSeperator = tNested2PartySubID
                              , gsBody = gNoNested2PartySubIDsBody''''''''' }
                              where
                              gNoNested2PartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mListCancelRequest :: FIXMessageSpec
mListCancelRequest = FMSpec
   { msName = "ListCancelRequest"
   , msType = C.pack "K"
   , msHeader = headerFIX44
   , msBody = mListCancelRequestBody
   , msTrailer = trailerFIX44 }
   where
   mListCancelRequestBody = 
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mListExecute :: FIXMessageSpec
mListExecute = FMSpec
   { msName = "ListExecute"
   , msType = C.pack "L"
   , msHeader = headerFIX44
   , msBody = mListExecuteBody
   , msTrailer = trailerFIX44 }
   where
   mListExecuteBody = 
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tClientBidID) tClientBidID $
      LT.insert (tnum tBidID) tBidID $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mListStatusRequest :: FIXMessageSpec
mListStatusRequest = FMSpec
   { msName = "ListStatusRequest"
   , msType = C.pack "M"
   , msHeader = headerFIX44
   , msBody = mListStatusRequestBody
   , msTrailer = trailerFIX44 }
   where
   mListStatusRequestBody = 
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mListStatus :: FIXMessageSpec
mListStatus = FMSpec
   { msName = "ListStatus"
   , msType = C.pack "N"
   , msHeader = headerFIX44
   , msBody = mListStatusBody
   , msTrailer = trailerFIX44 }
   where
   mListStatusBody = 
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tListStatusType) tListStatusType $
      LT.insert (tnum tNoRpts) tNoRpts $
      LT.insert (tnum tListOrderStatus) tListOrderStatus $
      LT.insert (tnum tRptSeq) tRptSeq $
      LT.insert (tnum tListStatusText) tListStatusText $
      LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $
      LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tTotNoOrders) tTotNoOrders $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoOrders) gNoOrders'''       LT.new
      where
         gNoOrders''' = FIXTag
            { tName = "NoOrders"
            , tnum = tnum tNoOrders
            , tparser = gNoOrdersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }

         gNoOrdersP''' = groupP gNoOrdersSpec'''
         gNoOrdersSpec''' = FGSpec
            { gsLength = tNoOrders
            , gsSeperator = tClOrdID
            , gsBody = gNoOrdersBody''' }
            where
            gNoOrdersBody''' = 
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tCumQty) tCumQty $
               LT.insert (tnum tOrdStatus) tOrdStatus $
               LT.insert (tnum tWorkingIndicator) tWorkingIndicator $
               LT.insert (tnum tLeavesQty) tLeavesQty $
               LT.insert (tnum tCxlQty) tCxlQty $
               LT.insert (tnum tAvgPx) tAvgPx $
               LT.insert (tnum tOrdRejReason) tOrdRejReason $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new



mAllocationInstructionAck :: FIXMessageSpec
mAllocationInstructionAck = FMSpec
   { msName = "AllocationInstructionAck"
   , msType = C.pack "P"
   , msHeader = headerFIX44
   , msBody = mAllocationInstructionAckBody
   , msTrailer = trailerFIX44 }
   where
   mAllocationInstructionAckBody = 
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tAllocStatus) tAllocStatus $
      LT.insert (tnum tAllocRejCode) tAllocRejCode $
      LT.insert (tnum tAllocType) tAllocType $
      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $
      LT.insert (tnum tMatchStatus) tMatchStatus $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tAllocPrice) tAllocPrice $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tIndividualAllocRejCode) tIndividualAllocRejCode $
               LT.insert (tnum tAllocText) tAllocText $
               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $
               LT.insert (tnum tEncodedAllocText) tEncodedAllocText                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new




mDontKnowTrade :: FIXMessageSpec
mDontKnowTrade = FMSpec
   { msName = "DontKnowTrade"
   , msType = C.pack "Q"
   , msHeader = headerFIX44
   , msBody = mDontKnowTradeBody
   , msTrailer = trailerFIX44 }
   where
   mDontKnowTradeBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tExecID) tExecID $
      LT.insert (tnum tDKReason) tDKReason $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tLastQty) tLastQty $
      LT.insert (tnum tLastPx) tLastPx $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mQuoteRequest :: FIXMessageSpec
mQuoteRequest = FMSpec
   { msName = "QuoteRequest"
   , msType = C.pack "R"
   , msHeader = headerFIX44
   , msBody = mQuoteRequestBody
   , msTrailer = trailerFIX44 }
   where
   mQuoteRequestBody = 
      LT.insert (tnum tQuoteReqID) tQuoteReqID $
      LT.insert (tnum tRFQReqID) tRFQReqID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tAgreementDesc) tAgreementDesc $
               LT.insert (tnum tAgreementID) tAgreementID $
               LT.insert (tnum tAgreementDate) tAgreementDate $
               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
               LT.insert (tnum tTerminationType) tTerminationType $
               LT.insert (tnum tStartDate) tStartDate $
               LT.insert (tnum tEndDate) tEndDate $
               LT.insert (tnum tDeliveryType) tDeliveryType $
               LT.insert (tnum tMarginRatio) tMarginRatio $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tPrevClosePx) tPrevClosePx $
               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $
               LT.insert (tnum tQuoteType) tQuoteType $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
               LT.insert (tnum tSide) tSide $
               LT.insert (tnum tQtyType) tQtyType $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tCashOrderQty) tCashOrderQty $
               LT.insert (tnum tOrderPercent) tOrderPercent $
               LT.insert (tnum tRoundingDirection) tRoundingDirection $
               LT.insert (tnum tRoundingModulus) tRoundingModulus $
               LT.insert (tnum tSettlType) tSettlType $
               LT.insert (tnum tSettlDate) tSettlDate $
               LT.insert (tnum tSettlDate2) tSettlDate2 $
               LT.insert (tnum tOrderQty2) tOrderQty2 $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $
               LT.insert (tnum tAccount) tAccount $
               LT.insert (tnum tAcctIDSource) tAcctIDSource $
               LT.insert (tnum tAccountType) tAccountType $
               LT.insert (tnum tNoLegs) gNoLegs'''''' $
               LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers'''''' $
               LT.insert (tnum tQuotePriceType) tQuotePriceType $
               LT.insert (tnum tOrdType) tOrdType $
               LT.insert (tnum tValidUntilTime) tValidUntilTime $
               LT.insert (tnum tExpireTime) tExpireTime $
               LT.insert (tnum tTransactTime) tTransactTime $
               LT.insert (tnum tSpread) tSpread $
               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
               LT.insert (tnum tPriceType) tPriceType $
               LT.insert (tnum tPrice) tPrice $
               LT.insert (tnum tPrice2) tPrice2 $
               LT.insert (tnum tYieldType) tYieldType $
               LT.insert (tnum tYield) tYield $
               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs''''''                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
                        LT.insert (tnum tLegQty) tLegQty $
                        LT.insert (tnum tLegSwapType) tLegSwapType $
                        LT.insert (tnum tLegSettlType) tLegSettlType $
                        LT.insert (tnum tLegSettlDate) tLegSettlDate $
                        LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''''' $
                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $
                        LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $
                        LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $
                        LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $
                        LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $
                        LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new

                           gNoLegStipulations''''''''' = FIXTag
                              { tName = "NoLegStipulations"
                              , tnum = tnum tNoLegStipulations
                              , tparser = gNoLegStipulationsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec''''''''' }

                           gNoLegStipulationsP''''''''' = groupP gNoLegStipulationsSpec'''''''''
                           gNoLegStipulationsSpec''''''''' = FGSpec
                              { gsLength = tNoLegStipulations
                              , gsSeperator = tLegStipulationType
                              , gsBody = gNoLegStipulationsBody''''''''' }
                              where
                              gNoLegStipulationsBody''''''''' = 
                                 LT.insert (tnum tLegStipulationValue) tLegStipulationValue                                  LT.new

                           gNoNestedPartyIDs''''''''' = FIXTag
                              { tName = "NoNestedPartyIDs"
                              , tnum = tnum tNoNestedPartyIDs
                              , tparser = gNoNestedPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }

                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''
                           gNoNestedPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartyIDs
                              , gsSeperator = tNestedPartyID
                              , gsBody = gNoNestedPartyIDsBody''''''''' }
                              where
                              gNoNestedPartyIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNestedPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNestedPartySubIDs"
                                       , tnum = tnum tNoNestedPartySubIDs
                                       , tparser = gNoNestedPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }

                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''
                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNestedPartySubIDs
                                       , gsSeperator = tNestedPartySubID
                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }
                                       where
                                       gNoNestedPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new



                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new


                  gNoQuoteQualifiers'''''' = FIXTag
                     { tName = "NoQuoteQualifiers"
                     , tnum = tnum tNoQuoteQualifiers
                     , tparser = gNoQuoteQualifiersP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec'''''' }

                  gNoQuoteQualifiersP'''''' = groupP gNoQuoteQualifiersSpec''''''
                  gNoQuoteQualifiersSpec'''''' = FGSpec
                     { gsLength = tNoQuoteQualifiers
                     , gsSeperator = tQuoteQualifier
                     , gsBody = gNoQuoteQualifiersBody'''''' }
                     where
                     gNoQuoteQualifiersBody'''''' = 
                        LT.new

                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoStipulations'''''' = FIXTag
                     { tName = "NoStipulations"
                     , tnum = tnum tNoStipulations
                     , tparser = gNoStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }

                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''
                  gNoStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoStipulations
                     , gsSeperator = tStipulationType
                     , gsBody = gNoStipulationsBody'''''' }
                     where
                     gNoStipulationsBody'''''' = 
                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mQuote :: FIXMessageSpec
mQuote = FMSpec
   { msName = "Quote"
   , msType = C.pack "S"
   , msHeader = headerFIX44
   , msBody = mQuoteBody
   , msTrailer = trailerFIX44 }
   where
   mQuoteBody = 
      LT.insert (tnum tQuoteReqID) tQuoteReqID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tQuoteRespID) tQuoteRespID $
      LT.insert (tnum tQuoteType) tQuoteType $
      LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers''' $
      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tSettlDate2) tSettlDate2 $
      LT.insert (tnum tOrderQty2) tOrderQty2 $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tBidPx) tBidPx $
      LT.insert (tnum tOfferPx) tOfferPx $
      LT.insert (tnum tMktBidPx) tMktBidPx $
      LT.insert (tnum tMktOfferPx) tMktOfferPx $
      LT.insert (tnum tMinBidSize) tMinBidSize $
      LT.insert (tnum tBidSize) tBidSize $
      LT.insert (tnum tMinOfferSize) tMinOfferSize $
      LT.insert (tnum tOfferSize) tOfferSize $
      LT.insert (tnum tValidUntilTime) tValidUntilTime $
      LT.insert (tnum tBidSpotRate) tBidSpotRate $
      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $
      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $
      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $
      LT.insert (tnum tMidPx) tMidPx $
      LT.insert (tnum tBidYield) tBidYield $
      LT.insert (tnum tMidYield) tMidYield $
      LT.insert (tnum tOfferYield) tOfferYield $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $
      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $
      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $
      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $
      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tLegPriceType) tLegPriceType $
               LT.insert (tnum tLegBidPx) tLegBidPx $
               LT.insert (tnum tLegOfferPx) tLegOfferPx $
               LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $
               LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $
               LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $
               LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $
               LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoQuoteQualifiers''' = FIXTag
            { tName = "NoQuoteQualifiers"
            , tnum = tnum tNoQuoteQualifiers
            , tparser = gNoQuoteQualifiersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec''' }

         gNoQuoteQualifiersP''' = groupP gNoQuoteQualifiersSpec'''
         gNoQuoteQualifiersSpec''' = FGSpec
            { gsLength = tNoQuoteQualifiers
            , gsSeperator = tQuoteQualifier
            , gsBody = gNoQuoteQualifiersBody''' }
            where
            gNoQuoteQualifiersBody''' = 
               LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mSettlementInstructions :: FIXMessageSpec
mSettlementInstructions = FMSpec
   { msName = "SettlementInstructions"
   , msType = C.pack "T"
   , msHeader = headerFIX44
   , msBody = mSettlementInstructionsBody
   , msTrailer = trailerFIX44 }
   where
   mSettlementInstructionsBody = 
      LT.insert (tnum tSettlInstMsgID) tSettlInstMsgID $
      LT.insert (tnum tSettlInstReqID) tSettlInstReqID $
      LT.insert (tnum tSettlInstMode) tSettlInstMode $
      LT.insert (tnum tSettlInstReqRejCode) tSettlInstReqRejCode $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoSettlInst) gNoSettlInst'''       LT.new
      where
         gNoSettlInst''' = FIXTag
            { tName = "NoSettlInst"
            , tnum = tnum tNoSettlInst
            , tparser = gNoSettlInstP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSettlInstSpec''' }

         gNoSettlInstP''' = groupP gNoSettlInstSpec'''
         gNoSettlInstSpec''' = FGSpec
            { gsLength = tNoSettlInst
            , gsSeperator = tSettlInstID
            , gsBody = gNoSettlInstBody''' }
            where
            gNoSettlInstBody''' = 
               LT.insert (tnum tSettlInstTransType) tSettlInstTransType $
               LT.insert (tnum tSettlInstRefID) tSettlInstRefID $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $
               LT.insert (tnum tSide) tSide $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tEffectiveTime) tEffectiveTime $
               LT.insert (tnum tExpireTime) tExpireTime $
               LT.insert (tnum tLastUpdateTime) tLastUpdateTime $
               LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
               LT.insert (tnum tStandInstDbType) tStandInstDbType $
               LT.insert (tnum tStandInstDbName) tStandInstDbName $
               LT.insert (tnum tStandInstDbID) tStandInstDbID $
               LT.insert (tnum tNoDlvyInst) gNoDlvyInst'''''' $
               LT.insert (tnum tPaymentMethod) tPaymentMethod $
               LT.insert (tnum tPaymentRef) tPaymentRef $
               LT.insert (tnum tCardHolderName) tCardHolderName $
               LT.insert (tnum tCardNumber) tCardNumber $
               LT.insert (tnum tCardStartDate) tCardStartDate $
               LT.insert (tnum tCardExpDate) tCardExpDate $
               LT.insert (tnum tCardIssNum) tCardIssNum $
               LT.insert (tnum tPaymentDate) tPaymentDate $
               LT.insert (tnum tPaymentRemitterID) tPaymentRemitterID                LT.new
               where
                  gNoDlvyInst'''''' = FIXTag
                     { tName = "NoDlvyInst"
                     , tnum = tnum tNoDlvyInst
                     , tparser = gNoDlvyInstP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec'''''' }

                  gNoDlvyInstP'''''' = groupP gNoDlvyInstSpec''''''
                  gNoDlvyInstSpec'''''' = FGSpec
                     { gsLength = tNoDlvyInst
                     , gsSeperator = tSettlInstSource
                     , gsBody = gNoDlvyInstBody'''''' }
                     where
                     gNoDlvyInstBody'''''' = 
                        LT.insert (tnum tDlvyInstType) tDlvyInstType $
                        LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs'''''''''                         LT.new
                        where
                           gNoSettlPartyIDs''''''''' = FIXTag
                              { tName = "NoSettlPartyIDs"
                              , tnum = tnum tNoSettlPartyIDs
                              , tparser = gNoSettlPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec''''''''' }

                           gNoSettlPartyIDsP''''''''' = groupP gNoSettlPartyIDsSpec'''''''''
                           gNoSettlPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoSettlPartyIDs
                              , gsSeperator = tSettlPartyID
                              , gsBody = gNoSettlPartyIDsBody''''''''' }
                              where
                              gNoSettlPartyIDsBody''''''''' = 
                                 LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
                                 LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
                                 LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoSettlPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoSettlPartySubIDs"
                                       , tnum = tnum tNoSettlPartySubIDs
                                       , tparser = gNoSettlPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec'''''''''''' }

                                    gNoSettlPartySubIDsP'''''''''''' = groupP gNoSettlPartySubIDsSpec''''''''''''
                                    gNoSettlPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoSettlPartySubIDs
                                       , gsSeperator = tSettlPartySubID
                                       , gsBody = gNoSettlPartySubIDsBody'''''''''''' }
                                       where
                                       gNoSettlPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                           LT.new



                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new





mMarketDataRequest :: FIXMessageSpec
mMarketDataRequest = FMSpec
   { msName = "MarketDataRequest"
   , msType = C.pack "V"
   , msHeader = headerFIX44
   , msBody = mMarketDataRequestBody
   , msTrailer = trailerFIX44 }
   where
   mMarketDataRequestBody = 
      LT.insert (tnum tMDReqID) tMDReqID $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tMarketDepth) tMarketDepth $
      LT.insert (tnum tMDUpdateType) tMDUpdateType $
      LT.insert (tnum tAggregatedBook) tAggregatedBook $
      LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $
      LT.insert (tnum tScope) tScope $
      LT.insert (tnum tMDImplicitDelete) tMDImplicitDelete $
      LT.insert (tnum tNoMDEntryTypes) gNoMDEntryTypes''' $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new
      where
         gNoMDEntryTypes''' = FIXTag
            { tName = "NoMDEntryTypes"
            , tnum = tnum tNoMDEntryTypes
            , tparser = gNoMDEntryTypesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMDEntryTypesSpec''' }

         gNoMDEntryTypesP''' = groupP gNoMDEntryTypesSpec'''
         gNoMDEntryTypesSpec''' = FGSpec
            { gsLength = tNoMDEntryTypes
            , gsSeperator = tMDEntryType
            , gsBody = gNoMDEntryTypesBody''' }
            where
            gNoMDEntryTypesBody''' = 
               LT.new

         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tNoLegs) gNoLegs'''''' $
               LT.insert (tnum tNoTradingSessions) gNoTradingSessions'''''' $
               LT.insert (tnum tApplQueueAction) tApplQueueAction $
               LT.insert (tnum tApplQueueMax) tApplQueueMax                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new


                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoTradingSessions'''''' = FIXTag
                     { tName = "NoTradingSessions"
                     , tnum = tnum tNoTradingSessions
                     , tparser = gNoTradingSessionsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec'''''' }

                  gNoTradingSessionsP'''''' = groupP gNoTradingSessionsSpec''''''
                  gNoTradingSessionsSpec'''''' = FGSpec
                     { gsLength = tNoTradingSessions
                     , gsSeperator = tTradingSessionID
                     , gsBody = gNoTradingSessionsBody'''''' }
                     where
                     gNoTradingSessionsBody'''''' = 
                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mMarketDataSnapshotFullRefresh :: FIXMessageSpec
mMarketDataSnapshotFullRefresh = FMSpec
   { msName = "MarketDataSnapshotFullRefresh"
   , msType = C.pack "W"
   , msHeader = headerFIX44
   , msBody = mMarketDataSnapshotFullRefreshBody
   , msTrailer = trailerFIX44 }
   where
   mMarketDataSnapshotFullRefreshBody = 
      LT.insert (tnum tMDReqID) tMDReqID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tFinancialStatus) tFinancialStatus $
      LT.insert (tnum tCorporateAction) tCorporateAction $
      LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $
      LT.insert (tnum tNoMDEntries) gNoMDEntries''' $
      LT.insert (tnum tApplQueueDepth) tApplQueueDepth $
      LT.insert (tnum tApplQueueResolution) tApplQueueResolution       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoMDEntries''' = FIXTag
            { tName = "NoMDEntries"
            , tnum = tnum tNoMDEntries
            , tparser = gNoMDEntriesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }

         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''
         gNoMDEntriesSpec''' = FGSpec
            { gsLength = tNoMDEntries
            , gsSeperator = tMDEntryType
            , gsBody = gNoMDEntriesBody''' }
            where
            gNoMDEntriesBody''' = 
               LT.insert (tnum tMDEntryPx) tMDEntryPx $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tMDEntrySize) tMDEntrySize $
               LT.insert (tnum tMDEntryDate) tMDEntryDate $
               LT.insert (tnum tMDEntryTime) tMDEntryTime $
               LT.insert (tnum tTickDirection) tTickDirection $
               LT.insert (tnum tMDMkt) tMDMkt $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tQuoteCondition) tQuoteCondition $
               LT.insert (tnum tTradeCondition) tTradeCondition $
               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $
               LT.insert (tnum tLocationID) tLocationID $
               LT.insert (tnum tDeskID) tDeskID $
               LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $
               LT.insert (tnum tTimeInForce) tTimeInForce $
               LT.insert (tnum tExpireDate) tExpireDate $
               LT.insert (tnum tExpireTime) tExpireTime $
               LT.insert (tnum tMinQty) tMinQty $
               LT.insert (tnum tExecInst) tExecInst $
               LT.insert (tnum tSellerDays) tSellerDays $
               LT.insert (tnum tOrderID) tOrderID $
               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $
               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $
               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $
               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $
               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $
               LT.insert (tnum tScope) tScope $
               LT.insert (tnum tPriceDelta) tPriceDelta $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mMarketDataIncrementalRefresh :: FIXMessageSpec
mMarketDataIncrementalRefresh = FMSpec
   { msName = "MarketDataIncrementalRefresh"
   , msType = C.pack "X"
   , msHeader = headerFIX44
   , msBody = mMarketDataIncrementalRefreshBody
   , msTrailer = trailerFIX44 }
   where
   mMarketDataIncrementalRefreshBody = 
      LT.insert (tnum tMDReqID) tMDReqID $
      LT.insert (tnum tNoMDEntries) gNoMDEntries''' $
      LT.insert (tnum tApplQueueDepth) tApplQueueDepth $
      LT.insert (tnum tApplQueueResolution) tApplQueueResolution       LT.new
      where
         gNoMDEntries''' = FIXTag
            { tName = "NoMDEntries"
            , tnum = tnum tNoMDEntries
            , tparser = gNoMDEntriesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMDEntriesSpec''' }

         gNoMDEntriesP''' = groupP gNoMDEntriesSpec'''
         gNoMDEntriesSpec''' = FGSpec
            { gsLength = tNoMDEntries
            , gsSeperator = tMDUpdateAction
            , gsBody = gNoMDEntriesBody''' }
            where
            gNoMDEntriesBody''' = 
               LT.insert (tnum tDeleteReason) tDeleteReason $
               LT.insert (tnum tMDEntryType) tMDEntryType $
               LT.insert (tnum tMDEntryID) tMDEntryID $
               LT.insert (tnum tMDEntryRefID) tMDEntryRefID $
               LT.insert (tnum tSymbol) tSymbol $
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tNoLegs) gNoLegs'''''' $
               LT.insert (tnum tFinancialStatus) tFinancialStatus $
               LT.insert (tnum tCorporateAction) tCorporateAction $
               LT.insert (tnum tMDEntryPx) tMDEntryPx $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tMDEntrySize) tMDEntrySize $
               LT.insert (tnum tMDEntryDate) tMDEntryDate $
               LT.insert (tnum tMDEntryTime) tMDEntryTime $
               LT.insert (tnum tTickDirection) tTickDirection $
               LT.insert (tnum tMDMkt) tMDMkt $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tQuoteCondition) tQuoteCondition $
               LT.insert (tnum tTradeCondition) tTradeCondition $
               LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $
               LT.insert (tnum tLocationID) tLocationID $
               LT.insert (tnum tDeskID) tDeskID $
               LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $
               LT.insert (tnum tTimeInForce) tTimeInForce $
               LT.insert (tnum tExpireDate) tExpireDate $
               LT.insert (tnum tExpireTime) tExpireTime $
               LT.insert (tnum tMinQty) tMinQty $
               LT.insert (tnum tExecInst) tExecInst $
               LT.insert (tnum tSellerDays) tSellerDays $
               LT.insert (tnum tOrderID) tOrderID $
               LT.insert (tnum tQuoteEntryID) tQuoteEntryID $
               LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $
               LT.insert (tnum tMDEntrySeller) tMDEntrySeller $
               LT.insert (tnum tNumberOfOrders) tNumberOfOrders $
               LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $
               LT.insert (tnum tScope) tScope $
               LT.insert (tnum tPriceDelta) tPriceDelta $
               LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new


                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mMarketDataRequestReject :: FIXMessageSpec
mMarketDataRequestReject = FMSpec
   { msName = "MarketDataRequestReject"
   , msType = C.pack "Y"
   , msHeader = headerFIX44
   , msBody = mMarketDataRequestRejectBody
   , msTrailer = trailerFIX44 }
   where
   mMarketDataRequestRejectBody = 
      LT.insert (tnum tMDReqID) tMDReqID $
      LT.insert (tnum tMDReqRejReason) tMDReqRejReason $
      LT.insert (tnum tNoAltMDSource) gNoAltMDSource''' $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoAltMDSource''' = FIXTag
            { tName = "NoAltMDSource"
            , tnum = tnum tNoAltMDSource
            , tparser = gNoAltMDSourceP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAltMDSourceSpec''' }

         gNoAltMDSourceP''' = groupP gNoAltMDSourceSpec'''
         gNoAltMDSourceSpec''' = FGSpec
            { gsLength = tNoAltMDSource
            , gsSeperator = tAltMDSourceID
            , gsBody = gNoAltMDSourceBody''' }
            where
            gNoAltMDSourceBody''' = 
               LT.new



mQuoteCancel :: FIXMessageSpec
mQuoteCancel = FMSpec
   { msName = "QuoteCancel"
   , msType = C.pack "Z"
   , msHeader = headerFIX44
   , msBody = mQuoteCancelBody
   , msTrailer = trailerFIX44 }
   where
   mQuoteCancelBody = 
      LT.insert (tnum tQuoteReqID) tQuoteReqID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tQuoteCancelType) tQuoteCancelType $
      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries'''       LT.new
      where
         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoQuoteEntries''' = FIXTag
            { tName = "NoQuoteEntries"
            , tnum = tnum tNoQuoteEntries
            , tparser = gNoQuoteEntriesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec''' }

         gNoQuoteEntriesP''' = groupP gNoQuoteEntriesSpec'''
         gNoQuoteEntriesSpec''' = FGSpec
            { gsLength = tNoQuoteEntries
            , gsSeperator = tSymbol
            , gsBody = gNoQuoteEntriesBody''' }
            where
            gNoQuoteEntriesBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tAgreementDesc) tAgreementDesc $
               LT.insert (tnum tAgreementID) tAgreementID $
               LT.insert (tnum tAgreementDate) tAgreementDate $
               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
               LT.insert (tnum tTerminationType) tTerminationType $
               LT.insert (tnum tStartDate) tStartDate $
               LT.insert (tnum tEndDate) tEndDate $
               LT.insert (tnum tDeliveryType) tDeliveryType $
               LT.insert (tnum tMarginRatio) tMarginRatio $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tNoLegs) gNoLegs''''''                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new


                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mQuoteStatusRequest :: FIXMessageSpec
mQuoteStatusRequest = FMSpec
   { msName = "QuoteStatusRequest"
   , msType = C.pack "a"
   , msHeader = headerFIX44
   , msBody = mQuoteStatusRequestBody
   , msTrailer = trailerFIX44 }
   where
   mQuoteStatusRequestBody = 
      LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mMassQuoteAcknowledgement :: FIXMessageSpec
mMassQuoteAcknowledgement = FMSpec
   { msName = "MassQuoteAcknowledgement"
   , msType = C.pack "b"
   , msHeader = headerFIX44
   , msBody = mMassQuoteAcknowledgementBody
   , msTrailer = trailerFIX44 }
   where
   mMassQuoteAcknowledgementBody = 
      LT.insert (tnum tQuoteReqID) tQuoteReqID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tQuoteStatus) tQuoteStatus $
      LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $
      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $
      LT.insert (tnum tQuoteType) tQuoteType $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new
      where
         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoQuoteSets''' = FIXTag
            { tName = "NoQuoteSets"
            , tnum = tnum tNoQuoteSets
            , tparser = gNoQuoteSetsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }

         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''
         gNoQuoteSetsSpec''' = FGSpec
            { gsLength = tNoQuoteSets
            , gsSeperator = tQuoteSetID
            , gsBody = gNoQuoteSetsBody''' }
            where
            gNoQuoteSetsBody''' = 
               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $
               LT.insert (tnum tTotNoQuoteEntries) tTotNoQuoteEntries $
               LT.insert (tnum tLastFragment) tLastFragment $
               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new
               where
                  gNoQuoteEntries'''''' = FIXTag
                     { tName = "NoQuoteEntries"
                     , tnum = tnum tNoQuoteEntries
                     , tparser = gNoQuoteEntriesP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }

                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''
                  gNoQuoteEntriesSpec'''''' = FGSpec
                     { gsLength = tNoQuoteEntries
                     , gsSeperator = tQuoteEntryID
                     , gsBody = gNoQuoteEntriesBody'''''' }
                     where
                     gNoQuoteEntriesBody'''''' = 
                        LT.insert (tnum tSymbol) tSymbol $
                        LT.insert (tnum tSymbolSfx) tSymbolSfx $
                        LT.insert (tnum tSecurityID) tSecurityID $
                        LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
                        LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''''''''' $
                        LT.insert (tnum tProduct) tProduct $
                        LT.insert (tnum tCFICode) tCFICode $
                        LT.insert (tnum tSecurityType) tSecurityType $
                        LT.insert (tnum tSecuritySubType) tSecuritySubType $
                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
                        LT.insert (tnum tMaturityDate) tMaturityDate $
                        LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
                        LT.insert (tnum tIssueDate) tIssueDate $
                        LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
                        LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
                        LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
                        LT.insert (tnum tFactor) tFactor $
                        LT.insert (tnum tCreditRating) tCreditRating $
                        LT.insert (tnum tInstrRegistry) tInstrRegistry $
                        LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
                        LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
                        LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
                        LT.insert (tnum tRedemptionDate) tRedemptionDate $
                        LT.insert (tnum tStrikePrice) tStrikePrice $
                        LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
                        LT.insert (tnum tOptAttribute) tOptAttribute $
                        LT.insert (tnum tContractMultiplier) tContractMultiplier $
                        LT.insert (tnum tCouponRate) tCouponRate $
                        LT.insert (tnum tSecurityExchange) tSecurityExchange $
                        LT.insert (tnum tIssuer) tIssuer $
                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
                        LT.insert (tnum tSecurityDesc) tSecurityDesc $
                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
                        LT.insert (tnum tPool) tPool $
                        LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
                        LT.insert (tnum tCPProgram) tCPProgram $
                        LT.insert (tnum tCPRegType) tCPRegType $
                        LT.insert (tnum tNoEvents) gNoEvents''''''''' $
                        LT.insert (tnum tDatedDate) tDatedDate $
                        LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
                        LT.insert (tnum tNoLegs) gNoLegs''''''''' $
                        LT.insert (tnum tBidPx) tBidPx $
                        LT.insert (tnum tOfferPx) tOfferPx $
                        LT.insert (tnum tBidSize) tBidSize $
                        LT.insert (tnum tOfferSize) tOfferSize $
                        LT.insert (tnum tValidUntilTime) tValidUntilTime $
                        LT.insert (tnum tBidSpotRate) tBidSpotRate $
                        LT.insert (tnum tOfferSpotRate) tOfferSpotRate $
                        LT.insert (tnum tBidForwardPoints) tBidForwardPoints $
                        LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $
                        LT.insert (tnum tMidPx) tMidPx $
                        LT.insert (tnum tBidYield) tBidYield $
                        LT.insert (tnum tMidYield) tMidYield $
                        LT.insert (tnum tOfferYield) tOfferYield $
                        LT.insert (tnum tTransactTime) tTransactTime $
                        LT.insert (tnum tTradingSessionID) tTradingSessionID $
                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
                        LT.insert (tnum tSettlDate) tSettlDate $
                        LT.insert (tnum tOrdType) tOrdType $
                        LT.insert (tnum tSettlDate2) tSettlDate2 $
                        LT.insert (tnum tOrderQty2) tOrderQty2 $
                        LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $
                        LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $
                        LT.insert (tnum tCurrency) tCurrency $
                        LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason                         LT.new
                        where
                           gNoEvents''''''''' = FIXTag
                              { tName = "NoEvents"
                              , tnum = tnum tNoEvents
                              , tparser = gNoEventsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''''''''' }

                           gNoEventsP''''''''' = groupP gNoEventsSpec'''''''''
                           gNoEventsSpec''''''''' = FGSpec
                              { gsLength = tNoEvents
                              , gsSeperator = tEventType
                              , gsBody = gNoEventsBody''''''''' }
                              where
                              gNoEventsBody''''''''' = 
                                 LT.insert (tnum tEventDate) tEventDate $
                                 LT.insert (tnum tEventPx) tEventPx $
                                 LT.insert (tnum tEventText) tEventText                                  LT.new

                           gNoLegs''''''''' = FIXTag
                              { tName = "NoLegs"
                              , tnum = tnum tNoLegs
                              , tparser = gNoLegsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''''''''' }

                           gNoLegsP''''''''' = groupP gNoLegsSpec'''''''''
                           gNoLegsSpec''''''''' = FGSpec
                              { gsLength = tNoLegs
                              , gsSeperator = tLegSymbol
                              , gsBody = gNoLegsBody''''''''' }
                              where
                              gNoLegsBody''''''''' = 
                                 LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                                 LT.insert (tnum tLegSecurityID) tLegSecurityID $
                                 LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                                 LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''''''''' $
                                 LT.insert (tnum tLegProduct) tLegProduct $
                                 LT.insert (tnum tLegCFICode) tLegCFICode $
                                 LT.insert (tnum tLegSecurityType) tLegSecurityType $
                                 LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                                 LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                                 LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                                 LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                                 LT.insert (tnum tLegIssueDate) tLegIssueDate $
                                 LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                                 LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                                 LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                                 LT.insert (tnum tLegFactor) tLegFactor $
                                 LT.insert (tnum tLegCreditRating) tLegCreditRating $
                                 LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                                 LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                                 LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                                 LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                                 LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                                 LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                                 LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                                 LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                                 LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                                 LT.insert (tnum tLegCouponRate) tLegCouponRate $
                                 LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                                 LT.insert (tnum tLegIssuer) tLegIssuer $
                                 LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                                 LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                                 LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                                 LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                                 LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                                 LT.insert (tnum tLegRatioQty) tLegRatioQty $
                                 LT.insert (tnum tLegSide) tLegSide $
                                 LT.insert (tnum tLegCurrency) tLegCurrency $
                                 LT.insert (tnum tLegPool) tLegPool $
                                 LT.insert (tnum tLegDatedDate) tLegDatedDate $
                                 LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                                 LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                                  LT.new
                                 where
                                    gNoLegSecurityAltID'''''''''''' = FIXTag
                                       { tName = "NoLegSecurityAltID"
                                       , tnum = tnum tNoLegSecurityAltID
                                       , tparser = gNoLegSecurityAltIDP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''''''''' }

                                    gNoLegSecurityAltIDP'''''''''''' = groupP gNoLegSecurityAltIDSpec''''''''''''
                                    gNoLegSecurityAltIDSpec'''''''''''' = FGSpec
                                       { gsLength = tNoLegSecurityAltID
                                       , gsSeperator = tLegSecurityAltID
                                       , gsBody = gNoLegSecurityAltIDBody'''''''''''' }
                                       where
                                       gNoLegSecurityAltIDBody'''''''''''' = 
                                          LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                           LT.new


                           gNoSecurityAltID''''''''' = FIXTag
                              { tName = "NoSecurityAltID"
                              , tnum = tnum tNoSecurityAltID
                              , tparser = gNoSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''''''''' }

                           gNoSecurityAltIDP''''''''' = groupP gNoSecurityAltIDSpec'''''''''
                           gNoSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoSecurityAltID
                              , gsSeperator = tSecurityAltID
                              , gsBody = gNoSecurityAltIDBody''''''''' }
                              where
                              gNoSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                                  LT.new


                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mSecurityDefinitionRequest :: FIXMessageSpec
mSecurityDefinitionRequest = FMSpec
   { msName = "SecurityDefinitionRequest"
   , msType = C.pack "c"
   , msHeader = headerFIX44
   , msBody = mSecurityDefinitionRequestBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityDefinitionRequestBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tSecurityRequestType) tSecurityRequestType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tExpirationCycle) tExpirationCycle $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mSecurityDefinition :: FIXMessageSpec
mSecurityDefinition = FMSpec
   { msName = "SecurityDefinition"
   , msType = C.pack "d"
   , msHeader = headerFIX44
   , msBody = mSecurityDefinitionBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityDefinitionBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $
      LT.insert (tnum tSecurityResponseType) tSecurityResponseType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tExpirationCycle) tExpirationCycle $
      LT.insert (tnum tRoundLot) tRoundLot $
      LT.insert (tnum tMinTradeVol) tMinTradeVol       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mSecurityStatusRequest :: FIXMessageSpec
mSecurityStatusRequest = FMSpec
   { msName = "SecurityStatusRequest"
   , msType = C.pack "e"
   , msHeader = headerFIX44
   , msBody = mSecurityStatusRequestBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityStatusRequestBody = 
      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mSecurityStatus :: FIXMessageSpec
mSecurityStatus = FMSpec
   { msName = "SecurityStatus"
   , msType = C.pack "f"
   , msHeader = headerFIX44
   , msBody = mSecurityStatusBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityStatusBody = 
      LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $
      LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $
      LT.insert (tnum tFinancialStatus) tFinancialStatus $
      LT.insert (tnum tCorporateAction) tCorporateAction $
      LT.insert (tnum tHaltReasonChar) tHaltReasonChar $
      LT.insert (tnum tInViewOfCommon) tInViewOfCommon $
      LT.insert (tnum tDueToRelated) tDueToRelated $
      LT.insert (tnum tBuyVolume) tBuyVolume $
      LT.insert (tnum tSellVolume) tSellVolume $
      LT.insert (tnum tHighPx) tHighPx $
      LT.insert (tnum tLowPx) tLowPx $
      LT.insert (tnum tLastPx) tLastPx $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tAdjustment) tAdjustment $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mTradingSessionStatusRequest :: FIXMessageSpec
mTradingSessionStatusRequest = FMSpec
   { msName = "TradingSessionStatusRequest"
   , msType = C.pack "g"
   , msHeader = headerFIX44
   , msBody = mTradingSessionStatusRequestBody
   , msTrailer = trailerFIX44 }
   where
   mTradingSessionStatusRequestBody = 
      LT.insert (tnum tTradSesReqID) tTradSesReqID $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tTradSesMethod) tTradSesMethod $
      LT.insert (tnum tTradSesMode) tTradSesMode $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new


mTradingSessionStatus :: FIXMessageSpec
mTradingSessionStatus = FMSpec
   { msName = "TradingSessionStatus"
   , msType = C.pack "h"
   , msHeader = headerFIX44
   , msBody = mTradingSessionStatusBody
   , msTrailer = trailerFIX44 }
   where
   mTradingSessionStatusBody = 
      LT.insert (tnum tTradSesReqID) tTradSesReqID $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tTradSesMethod) tTradSesMethod $
      LT.insert (tnum tTradSesMode) tTradSesMode $
      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $
      LT.insert (tnum tTradSesStatus) tTradSesStatus $
      LT.insert (tnum tTradSesStatusRejReason) tTradSesStatusRejReason $
      LT.insert (tnum tTradSesStartTime) tTradSesStartTime $
      LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $
      LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $
      LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $
      LT.insert (tnum tTradSesEndTime) tTradSesEndTime $
      LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mMassQuote :: FIXMessageSpec
mMassQuote = FMSpec
   { msName = "MassQuote"
   , msType = C.pack "i"
   , msHeader = headerFIX44
   , msBody = mMassQuoteBody
   , msTrailer = trailerFIX44 }
   where
   mMassQuoteBody = 
      LT.insert (tnum tQuoteReqID) tQuoteReqID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tQuoteType) tQuoteType $
      LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tDefBidSize) tDefBidSize $
      LT.insert (tnum tDefOfferSize) tDefOfferSize $
      LT.insert (tnum tNoQuoteSets) gNoQuoteSets'''       LT.new
      where
         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoQuoteSets''' = FIXTag
            { tName = "NoQuoteSets"
            , tnum = tnum tNoQuoteSets
            , tparser = gNoQuoteSetsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoQuoteSetsSpec''' }

         gNoQuoteSetsP''' = groupP gNoQuoteSetsSpec'''
         gNoQuoteSetsSpec''' = FGSpec
            { gsLength = tNoQuoteSets
            , gsSeperator = tQuoteSetID
            , gsBody = gNoQuoteSetsBody''' }
            where
            gNoQuoteSetsBody''' = 
               LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $
               LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $
               LT.insert (tnum tTotNoQuoteEntries) tTotNoQuoteEntries $
               LT.insert (tnum tLastFragment) tLastFragment $
               LT.insert (tnum tNoQuoteEntries) gNoQuoteEntries''''''                LT.new
               where
                  gNoQuoteEntries'''''' = FIXTag
                     { tName = "NoQuoteEntries"
                     , tnum = tnum tNoQuoteEntries
                     , tparser = gNoQuoteEntriesP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteEntriesSpec'''''' }

                  gNoQuoteEntriesP'''''' = groupP gNoQuoteEntriesSpec''''''
                  gNoQuoteEntriesSpec'''''' = FGSpec
                     { gsLength = tNoQuoteEntries
                     , gsSeperator = tQuoteEntryID
                     , gsBody = gNoQuoteEntriesBody'''''' }
                     where
                     gNoQuoteEntriesBody'''''' = 
                        LT.insert (tnum tSymbol) tSymbol $
                        LT.insert (tnum tSymbolSfx) tSymbolSfx $
                        LT.insert (tnum tSecurityID) tSecurityID $
                        LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
                        LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''''''''' $
                        LT.insert (tnum tProduct) tProduct $
                        LT.insert (tnum tCFICode) tCFICode $
                        LT.insert (tnum tSecurityType) tSecurityType $
                        LT.insert (tnum tSecuritySubType) tSecuritySubType $
                        LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
                        LT.insert (tnum tMaturityDate) tMaturityDate $
                        LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
                        LT.insert (tnum tIssueDate) tIssueDate $
                        LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
                        LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
                        LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
                        LT.insert (tnum tFactor) tFactor $
                        LT.insert (tnum tCreditRating) tCreditRating $
                        LT.insert (tnum tInstrRegistry) tInstrRegistry $
                        LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
                        LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
                        LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
                        LT.insert (tnum tRedemptionDate) tRedemptionDate $
                        LT.insert (tnum tStrikePrice) tStrikePrice $
                        LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
                        LT.insert (tnum tOptAttribute) tOptAttribute $
                        LT.insert (tnum tContractMultiplier) tContractMultiplier $
                        LT.insert (tnum tCouponRate) tCouponRate $
                        LT.insert (tnum tSecurityExchange) tSecurityExchange $
                        LT.insert (tnum tIssuer) tIssuer $
                        LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
                        LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
                        LT.insert (tnum tSecurityDesc) tSecurityDesc $
                        LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
                        LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
                        LT.insert (tnum tPool) tPool $
                        LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
                        LT.insert (tnum tCPProgram) tCPProgram $
                        LT.insert (tnum tCPRegType) tCPRegType $
                        LT.insert (tnum tNoEvents) gNoEvents''''''''' $
                        LT.insert (tnum tDatedDate) tDatedDate $
                        LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
                        LT.insert (tnum tNoLegs) gNoLegs''''''''' $
                        LT.insert (tnum tBidPx) tBidPx $
                        LT.insert (tnum tOfferPx) tOfferPx $
                        LT.insert (tnum tBidSize) tBidSize $
                        LT.insert (tnum tOfferSize) tOfferSize $
                        LT.insert (tnum tValidUntilTime) tValidUntilTime $
                        LT.insert (tnum tBidSpotRate) tBidSpotRate $
                        LT.insert (tnum tOfferSpotRate) tOfferSpotRate $
                        LT.insert (tnum tBidForwardPoints) tBidForwardPoints $
                        LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $
                        LT.insert (tnum tMidPx) tMidPx $
                        LT.insert (tnum tBidYield) tBidYield $
                        LT.insert (tnum tMidYield) tMidYield $
                        LT.insert (tnum tOfferYield) tOfferYield $
                        LT.insert (tnum tTransactTime) tTransactTime $
                        LT.insert (tnum tTradingSessionID) tTradingSessionID $
                        LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
                        LT.insert (tnum tSettlDate) tSettlDate $
                        LT.insert (tnum tOrdType) tOrdType $
                        LT.insert (tnum tSettlDate2) tSettlDate2 $
                        LT.insert (tnum tOrderQty2) tOrderQty2 $
                        LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $
                        LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $
                        LT.insert (tnum tCurrency) tCurrency                         LT.new
                        where
                           gNoEvents''''''''' = FIXTag
                              { tName = "NoEvents"
                              , tnum = tnum tNoEvents
                              , tparser = gNoEventsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''''''''' }

                           gNoEventsP''''''''' = groupP gNoEventsSpec'''''''''
                           gNoEventsSpec''''''''' = FGSpec
                              { gsLength = tNoEvents
                              , gsSeperator = tEventType
                              , gsBody = gNoEventsBody''''''''' }
                              where
                              gNoEventsBody''''''''' = 
                                 LT.insert (tnum tEventDate) tEventDate $
                                 LT.insert (tnum tEventPx) tEventPx $
                                 LT.insert (tnum tEventText) tEventText                                  LT.new

                           gNoLegs''''''''' = FIXTag
                              { tName = "NoLegs"
                              , tnum = tnum tNoLegs
                              , tparser = gNoLegsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''''''''' }

                           gNoLegsP''''''''' = groupP gNoLegsSpec'''''''''
                           gNoLegsSpec''''''''' = FGSpec
                              { gsLength = tNoLegs
                              , gsSeperator = tLegSymbol
                              , gsBody = gNoLegsBody''''''''' }
                              where
                              gNoLegsBody''''''''' = 
                                 LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                                 LT.insert (tnum tLegSecurityID) tLegSecurityID $
                                 LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                                 LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''''''''' $
                                 LT.insert (tnum tLegProduct) tLegProduct $
                                 LT.insert (tnum tLegCFICode) tLegCFICode $
                                 LT.insert (tnum tLegSecurityType) tLegSecurityType $
                                 LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                                 LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                                 LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                                 LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                                 LT.insert (tnum tLegIssueDate) tLegIssueDate $
                                 LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                                 LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                                 LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                                 LT.insert (tnum tLegFactor) tLegFactor $
                                 LT.insert (tnum tLegCreditRating) tLegCreditRating $
                                 LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                                 LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                                 LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                                 LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                                 LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                                 LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                                 LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                                 LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                                 LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                                 LT.insert (tnum tLegCouponRate) tLegCouponRate $
                                 LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                                 LT.insert (tnum tLegIssuer) tLegIssuer $
                                 LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                                 LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                                 LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                                 LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                                 LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                                 LT.insert (tnum tLegRatioQty) tLegRatioQty $
                                 LT.insert (tnum tLegSide) tLegSide $
                                 LT.insert (tnum tLegCurrency) tLegCurrency $
                                 LT.insert (tnum tLegPool) tLegPool $
                                 LT.insert (tnum tLegDatedDate) tLegDatedDate $
                                 LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                                 LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                                  LT.new
                                 where
                                    gNoLegSecurityAltID'''''''''''' = FIXTag
                                       { tName = "NoLegSecurityAltID"
                                       , tnum = tnum tNoLegSecurityAltID
                                       , tparser = gNoLegSecurityAltIDP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''''''''' }

                                    gNoLegSecurityAltIDP'''''''''''' = groupP gNoLegSecurityAltIDSpec''''''''''''
                                    gNoLegSecurityAltIDSpec'''''''''''' = FGSpec
                                       { gsLength = tNoLegSecurityAltID
                                       , gsSeperator = tLegSecurityAltID
                                       , gsBody = gNoLegSecurityAltIDBody'''''''''''' }
                                       where
                                       gNoLegSecurityAltIDBody'''''''''''' = 
                                          LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                           LT.new


                           gNoSecurityAltID''''''''' = FIXTag
                              { tName = "NoSecurityAltID"
                              , tnum = tnum tNoSecurityAltID
                              , tparser = gNoSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''''''''' }

                           gNoSecurityAltIDP''''''''' = groupP gNoSecurityAltIDSpec'''''''''
                           gNoSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoSecurityAltID
                              , gsSeperator = tSecurityAltID
                              , gsBody = gNoSecurityAltIDBody''''''''' }
                              where
                              gNoSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                                  LT.new


                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mBusinessMessageReject :: FIXMessageSpec
mBusinessMessageReject = FMSpec
   { msName = "BusinessMessageReject"
   , msType = C.pack "j"
   , msHeader = headerFIX44
   , msBody = mBusinessMessageRejectBody
   , msTrailer = trailerFIX44 }
   where
   mBusinessMessageRejectBody = 
      LT.insert (tnum tRefSeqNum) tRefSeqNum $
      LT.insert (tnum tRefMsgType) tRefMsgType $
      LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $
      LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mBidRequest :: FIXMessageSpec
mBidRequest = FMSpec
   { msName = "BidRequest"
   , msType = C.pack "k"
   , msHeader = headerFIX44
   , msBody = mBidRequestBody
   , msTrailer = trailerFIX44 }
   where
   mBidRequestBody = 
      LT.insert (tnum tBidID) tBidID $
      LT.insert (tnum tClientBidID) tClientBidID $
      LT.insert (tnum tBidRequestTransType) tBidRequestTransType $
      LT.insert (tnum tListName) tListName $
      LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $
      LT.insert (tnum tBidType) tBidType $
      LT.insert (tnum tNumTickets) tNumTickets $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tSideValue1) tSideValue1 $
      LT.insert (tnum tSideValue2) tSideValue2 $
      LT.insert (tnum tNoBidDescriptors) gNoBidDescriptors''' $
      LT.insert (tnum tNoBidComponents) gNoBidComponents''' $
      LT.insert (tnum tLiquidityIndType) tLiquidityIndType $
      LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $
      LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $
      LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $
      LT.insert (tnum tCrossPercent) tCrossPercent $
      LT.insert (tnum tProgRptReqs) tProgRptReqs $
      LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $
      LT.insert (tnum tIncTaxInd) tIncTaxInd $
      LT.insert (tnum tForexReq) tForexReq $
      LT.insert (tnum tNumBidders) tNumBidders $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tBidTradeType) tBidTradeType $
      LT.insert (tnum tBasisPxType) tBasisPxType $
      LT.insert (tnum tStrikeTime) tStrikeTime $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoBidComponents''' = FIXTag
            { tName = "NoBidComponents"
            , tnum = tnum tNoBidComponents
            , tparser = gNoBidComponentsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }

         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''
         gNoBidComponentsSpec''' = FGSpec
            { gsLength = tNoBidComponents
            , gsSeperator = tListID
            , gsBody = gNoBidComponentsBody''' }
            where
            gNoBidComponentsBody''' = 
               LT.insert (tnum tSide) tSide $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tNetGrossInd) tNetGrossInd $
               LT.insert (tnum tSettlType) tSettlType $
               LT.insert (tnum tSettlDate) tSettlDate $
               LT.insert (tnum tAccount) tAccount $
               LT.insert (tnum tAcctIDSource) tAcctIDSource                LT.new

         gNoBidDescriptors''' = FIXTag
            { tName = "NoBidDescriptors"
            , tnum = tnum tNoBidDescriptors
            , tparser = gNoBidDescriptorsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoBidDescriptorsSpec''' }

         gNoBidDescriptorsP''' = groupP gNoBidDescriptorsSpec'''
         gNoBidDescriptorsSpec''' = FGSpec
            { gsLength = tNoBidDescriptors
            , gsSeperator = tBidDescriptorType
            , gsBody = gNoBidDescriptorsBody''' }
            where
            gNoBidDescriptorsBody''' = 
               LT.insert (tnum tBidDescriptor) tBidDescriptor $
               LT.insert (tnum tSideValueInd) tSideValueInd $
               LT.insert (tnum tLiquidityValue) tLiquidityValue $
               LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $
               LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $
               LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $
               LT.insert (tnum tEFPTrackingError) tEFPTrackingError $
               LT.insert (tnum tFairValue) tFairValue $
               LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $
               LT.insert (tnum tValueOfFutures) tValueOfFutures                LT.new



mBidResponse :: FIXMessageSpec
mBidResponse = FMSpec
   { msName = "BidResponse"
   , msType = C.pack "l"
   , msHeader = headerFIX44
   , msBody = mBidResponseBody
   , msTrailer = trailerFIX44 }
   where
   mBidResponseBody = 
      LT.insert (tnum tBidID) tBidID $
      LT.insert (tnum tClientBidID) tClientBidID $
      LT.insert (tnum tNoBidComponents) gNoBidComponents'''       LT.new
      where
         gNoBidComponents''' = FIXTag
            { tName = "NoBidComponents"
            , tnum = tnum tNoBidComponents
            , tparser = gNoBidComponentsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoBidComponentsSpec''' }

         gNoBidComponentsP''' = groupP gNoBidComponentsSpec'''
         gNoBidComponentsSpec''' = FGSpec
            { gsLength = tNoBidComponents
            , gsSeperator = tCommission
            , gsBody = gNoBidComponentsBody''' }
            where
            gNoBidComponentsBody''' = 
               LT.insert (tnum tCommType) tCommType $
               LT.insert (tnum tCommCurrency) tCommCurrency $
               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
               LT.insert (tnum tListID) tListID $
               LT.insert (tnum tCountry) tCountry $
               LT.insert (tnum tSide) tSide $
               LT.insert (tnum tPrice) tPrice $
               LT.insert (tnum tPriceType) tPriceType $
               LT.insert (tnum tFairValue) tFairValue $
               LT.insert (tnum tNetGrossInd) tNetGrossInd $
               LT.insert (tnum tSettlType) tSettlType $
               LT.insert (tnum tSettlDate) tSettlDate $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new



mListStrikePrice :: FIXMessageSpec
mListStrikePrice = FMSpec
   { msName = "ListStrikePrice"
   , msType = C.pack "m"
   , msHeader = headerFIX44
   , msBody = mListStrikePriceBody
   , msTrailer = trailerFIX44 }
   where
   mListStrikePriceBody = 
      LT.insert (tnum tListID) tListID $
      LT.insert (tnum tTotNoStrikes) tTotNoStrikes $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoStrikes) gNoStrikes''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''       LT.new
      where
         gNoStrikes''' = FIXTag
            { tName = "NoStrikes"
            , tnum = tnum tNoStrikes
            , tparser = gNoStrikesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStrikesSpec''' }

         gNoStrikesP''' = groupP gNoStrikesSpec'''
         gNoStrikesSpec''' = FGSpec
            { gsLength = tNoStrikes
            , gsSeperator = tSymbol
            , gsBody = gNoStrikesBody''' }
            where
            gNoStrikesBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new


         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $
               LT.insert (tnum tPrevClosePx) tPrevClosePx $
               LT.insert (tnum tClOrdID) tClOrdID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tSide) tSide $
               LT.insert (tnum tPrice) tPrice $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mRegistrationInstructions :: FIXMessageSpec
mRegistrationInstructions = FMSpec
   { msName = "RegistrationInstructions"
   , msType = C.pack "o"
   , msHeader = headerFIX44
   , msBody = mRegistrationInstructionsBody
   , msTrailer = trailerFIX44 }
   where
   mRegistrationInstructionsBody = 
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tRegistTransType) tRegistTransType $
      LT.insert (tnum tRegistRefID) tRegistRefID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tRegistAcctType) tRegistAcctType $
      LT.insert (tnum tTaxAdvantageType) tTaxAdvantageType $
      LT.insert (tnum tOwnershipType) tOwnershipType $
      LT.insert (tnum tNoRegistDtls) gNoRegistDtls''' $
      LT.insert (tnum tNoDistribInsts) gNoDistribInsts'''       LT.new
      where
         gNoDistribInsts''' = FIXTag
            { tName = "NoDistribInsts"
            , tnum = tnum tNoDistribInsts
            , tparser = gNoDistribInstsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoDistribInstsSpec''' }

         gNoDistribInstsP''' = groupP gNoDistribInstsSpec'''
         gNoDistribInstsSpec''' = FGSpec
            { gsLength = tNoDistribInsts
            , gsSeperator = tDistribPaymentMethod
            , gsBody = gNoDistribInstsBody''' }
            where
            gNoDistribInstsBody''' = 
               LT.insert (tnum tDistribPercentage) tDistribPercentage $
               LT.insert (tnum tCashDistribCurr) tCashDistribCurr $
               LT.insert (tnum tCashDistribAgentName) tCashDistribAgentName $
               LT.insert (tnum tCashDistribAgentCode) tCashDistribAgentCode $
               LT.insert (tnum tCashDistribAgentAcctNumber) tCashDistribAgentAcctNumber $
               LT.insert (tnum tCashDistribPayRef) tCashDistribPayRef $
               LT.insert (tnum tCashDistribAgentAcctName) tCashDistribAgentAcctName                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoRegistDtls''' = FIXTag
            { tName = "NoRegistDtls"
            , tnum = tnum tNoRegistDtls
            , tparser = gNoRegistDtlsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRegistDtlsSpec''' }

         gNoRegistDtlsP''' = groupP gNoRegistDtlsSpec'''
         gNoRegistDtlsSpec''' = FGSpec
            { gsLength = tNoRegistDtls
            , gsSeperator = tRegistDtls
            , gsBody = gNoRegistDtlsBody''' }
            where
            gNoRegistDtlsBody''' = 
               LT.insert (tnum tRegistEmail) tRegistEmail $
               LT.insert (tnum tMailingDtls) tMailingDtls $
               LT.insert (tnum tMailingInst) tMailingInst $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tOwnerType) tOwnerType $
               LT.insert (tnum tDateOfBirth) tDateOfBirth $
               LT.insert (tnum tInvestorCountryOfResidence) tInvestorCountryOfResidence                LT.new
               where
                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new





mRegistrationInstructionsResponse :: FIXMessageSpec
mRegistrationInstructionsResponse = FMSpec
   { msName = "RegistrationInstructionsResponse"
   , msType = C.pack "p"
   , msHeader = headerFIX44
   , msBody = mRegistrationInstructionsResponseBody
   , msTrailer = trailerFIX44 }
   where
   mRegistrationInstructionsResponseBody = 
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tRegistTransType) tRegistTransType $
      LT.insert (tnum tRegistRefID) tRegistRefID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tRegistStatus) tRegistStatus $
      LT.insert (tnum tRegistRejReasonCode) tRegistRejReasonCode $
      LT.insert (tnum tRegistRejReasonText) tRegistRejReasonText       LT.new
      where
         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new




mOrderMassCancelRequest :: FIXMessageSpec
mOrderMassCancelRequest = FMSpec
   { msName = "OrderMassCancelRequest"
   , msType = C.pack "q"
   , msHeader = headerFIX44
   , msBody = mOrderMassCancelRequestBody
   , msTrailer = trailerFIX44 }
   where
   mOrderMassCancelRequestBody = 
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $
      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyingSecurityAltID''' = FIXTag
            { tName = "NoUnderlyingSecurityAltID"
            , tnum = tnum tNoUnderlyingSecurityAltID
            , tparser = gNoUnderlyingSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }

         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''
         gNoUnderlyingSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoUnderlyingSecurityAltID
            , gsSeperator = tUnderlyingSecurityAltID
            , gsBody = gNoUnderlyingSecurityAltIDBody''' }
            where
            gNoUnderlyingSecurityAltIDBody''' = 
               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new

         gNoUnderlyingStips''' = FIXTag
            { tName = "NoUnderlyingStips"
            , tnum = tnum tNoUnderlyingStips
            , tparser = gNoUnderlyingStipsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }

         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''
         gNoUnderlyingStipsSpec''' = FGSpec
            { gsLength = tNoUnderlyingStips
            , gsSeperator = tUnderlyingStipType
            , gsBody = gNoUnderlyingStipsBody''' }
            where
            gNoUnderlyingStipsBody''' = 
               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new



mOrderMassCancelReport :: FIXMessageSpec
mOrderMassCancelReport = FMSpec
   { msName = "OrderMassCancelReport"
   , msType = C.pack "r"
   , msHeader = headerFIX44
   , msBody = mOrderMassCancelReportBody
   , msTrailer = trailerFIX44 }
   where
   mOrderMassCancelReportBody = 
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $
      LT.insert (tnum tMassCancelResponse) tMassCancelResponse $
      LT.insert (tnum tMassCancelRejectReason) tMassCancelRejectReason $
      LT.insert (tnum tTotalAffectedOrders) tTotalAffectedOrders $
      LT.insert (tnum tNoAffectedOrders) gNoAffectedOrders''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $
      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoAffectedOrders''' = FIXTag
            { tName = "NoAffectedOrders"
            , tnum = tnum tNoAffectedOrders
            , tparser = gNoAffectedOrdersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAffectedOrdersSpec''' }

         gNoAffectedOrdersP''' = groupP gNoAffectedOrdersSpec'''
         gNoAffectedOrdersSpec''' = FGSpec
            { gsLength = tNoAffectedOrders
            , gsSeperator = tOrigClOrdID
            , gsBody = gNoAffectedOrdersBody''' }
            where
            gNoAffectedOrdersBody''' = 
               LT.insert (tnum tAffectedOrderID) tAffectedOrderID $
               LT.insert (tnum tAffectedSecondaryOrderID) tAffectedSecondaryOrderID                LT.new

         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyingSecurityAltID''' = FIXTag
            { tName = "NoUnderlyingSecurityAltID"
            , tnum = tnum tNoUnderlyingSecurityAltID
            , tparser = gNoUnderlyingSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }

         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''
         gNoUnderlyingSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoUnderlyingSecurityAltID
            , gsSeperator = tUnderlyingSecurityAltID
            , gsBody = gNoUnderlyingSecurityAltIDBody''' }
            where
            gNoUnderlyingSecurityAltIDBody''' = 
               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new

         gNoUnderlyingStips''' = FIXTag
            { tName = "NoUnderlyingStips"
            , tnum = tnum tNoUnderlyingStips
            , tparser = gNoUnderlyingStipsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }

         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''
         gNoUnderlyingStipsSpec''' = FGSpec
            { gsLength = tNoUnderlyingStips
            , gsSeperator = tUnderlyingStipType
            , gsBody = gNoUnderlyingStipsBody''' }
            where
            gNoUnderlyingStipsBody''' = 
               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new



mNewOrderCross :: FIXMessageSpec
mNewOrderCross = FMSpec
   { msName = "NewOrderCross"
   , msType = C.pack "s"
   , msHeader = headerFIX44
   , msBody = mNewOrderCrossBody
   , msTrailer = trailerFIX44 }
   where
   mNewOrderCrossBody = 
      LT.insert (tnum tCrossID) tCrossID $
      LT.insert (tnum tCrossType) tCrossType $
      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $
      LT.insert (tnum tNoSides) gNoSides''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tHandlInst) tHandlInst $
      LT.insert (tnum tExecInst) tExecInst $
      LT.insert (tnum tMinQty) tMinQty $
      LT.insert (tnum tMaxFloor) tMaxFloor $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tProcessCode) tProcessCode $
      LT.insert (tnum tPrevClosePx) tPrevClosePx $
      LT.insert (tnum tLocateReqd) tLocateReqd $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tStopPx) tStopPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tIOIID) tIOIID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tTimeInForce) tTimeInForce $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tGTBookingInst) tGTBookingInst $
      LT.insert (tnum tMaxShow) tMaxShow $
      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
      LT.insert (tnum tPegMoveType) tPegMoveType $
      LT.insert (tnum tPegOffsetType) tPegOffsetType $
      LT.insert (tnum tPegLimitType) tPegLimitType $
      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
      LT.insert (tnum tPegScope) tPegScope $
      LT.insert (tnum tDiscretionInst) tDiscretionInst $
      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
      LT.insert (tnum tDiscretionScope) tDiscretionScope $
      LT.insert (tnum tTargetStrategy) tTargetStrategy $
      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
      LT.insert (tnum tParticipationRate) tParticipationRate $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tDesignation) tDesignation       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoSides''' = FIXTag
            { tName = "NoSides"
            , tnum = tnum tNoSides
            , tparser = gNoSidesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }

         gNoSidesP''' = groupP gNoSidesSpec'''
         gNoSidesSpec''' = FGSpec
            { gsLength = tNoSides
            , gsSeperator = tSide
            , gsBody = gNoSidesBody''' }
            where
            gNoSidesBody''' = 
               LT.insert (tnum tClOrdID) tClOrdID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $
               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
               LT.insert (tnum tTradeDate) tTradeDate $
               LT.insert (tnum tAccount) tAccount $
               LT.insert (tnum tAcctIDSource) tAcctIDSource $
               LT.insert (tnum tAccountType) tAccountType $
               LT.insert (tnum tDayBookingInst) tDayBookingInst $
               LT.insert (tnum tBookingUnit) tBookingUnit $
               LT.insert (tnum tPreallocMethod) tPreallocMethod $
               LT.insert (tnum tAllocID) tAllocID $
               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $
               LT.insert (tnum tQtyType) tQtyType $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tCashOrderQty) tCashOrderQty $
               LT.insert (tnum tOrderPercent) tOrderPercent $
               LT.insert (tnum tRoundingDirection) tRoundingDirection $
               LT.insert (tnum tRoundingModulus) tRoundingModulus $
               LT.insert (tnum tCommission) tCommission $
               LT.insert (tnum tCommType) tCommType $
               LT.insert (tnum tCommCurrency) tCommCurrency $
               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
               LT.insert (tnum tOrderCapacity) tOrderCapacity $
               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
               LT.insert (tnum tForexReq) tForexReq $
               LT.insert (tnum tSettlCurrency) tSettlCurrency $
               LT.insert (tnum tBookingType) tBookingType $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText $
               LT.insert (tnum tPositionEffect) tPositionEffect $
               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
               LT.insert (tnum tCashMargin) tCashMargin $
               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
               LT.insert (tnum tSideComplianceID) tSideComplianceID                LT.new
               where
                  gNoAllocs'''''' = FIXTag
                     { tName = "NoAllocs"
                     , tnum = tnum tNoAllocs
                     , tparser = gNoAllocsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }

                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''
                  gNoAllocsSpec'''''' = FGSpec
                     { gsLength = tNoAllocs
                     , gsSeperator = tAllocAccount
                     , gsBody = gNoAllocsBody'''''' }
                     where
                     gNoAllocsBody'''''' = 
                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $
                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new
                        where
                           gNoNestedPartyIDs''''''''' = FIXTag
                              { tName = "NoNestedPartyIDs"
                              , tnum = tnum tNoNestedPartyIDs
                              , tparser = gNoNestedPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }

                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''
                           gNoNestedPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartyIDs
                              , gsSeperator = tNestedPartyID
                              , gsBody = gNoNestedPartyIDsBody''''''''' }
                              where
                              gNoNestedPartyIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNestedPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNestedPartySubIDs"
                                       , tnum = tnum tNoNestedPartySubIDs
                                       , tparser = gNoNestedPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }

                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''
                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNestedPartySubIDs
                                       , gsSeperator = tNestedPartySubID
                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }
                                       where
                                       gNoNestedPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new



                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new



         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mCrossOrderCancelReplaceRequest :: FIXMessageSpec
mCrossOrderCancelReplaceRequest = FMSpec
   { msName = "CrossOrderCancelReplaceRequest"
   , msType = C.pack "t"
   , msHeader = headerFIX44
   , msBody = mCrossOrderCancelReplaceRequestBody
   , msTrailer = trailerFIX44 }
   where
   mCrossOrderCancelReplaceRequestBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tCrossID) tCrossID $
      LT.insert (tnum tOrigCrossID) tOrigCrossID $
      LT.insert (tnum tCrossType) tCrossType $
      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $
      LT.insert (tnum tNoSides) gNoSides''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tHandlInst) tHandlInst $
      LT.insert (tnum tExecInst) tExecInst $
      LT.insert (tnum tMinQty) tMinQty $
      LT.insert (tnum tMaxFloor) tMaxFloor $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tProcessCode) tProcessCode $
      LT.insert (tnum tPrevClosePx) tPrevClosePx $
      LT.insert (tnum tLocateReqd) tLocateReqd $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tStopPx) tStopPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tIOIID) tIOIID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tTimeInForce) tTimeInForce $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tGTBookingInst) tGTBookingInst $
      LT.insert (tnum tMaxShow) tMaxShow $
      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
      LT.insert (tnum tPegMoveType) tPegMoveType $
      LT.insert (tnum tPegOffsetType) tPegOffsetType $
      LT.insert (tnum tPegLimitType) tPegLimitType $
      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
      LT.insert (tnum tPegScope) tPegScope $
      LT.insert (tnum tDiscretionInst) tDiscretionInst $
      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
      LT.insert (tnum tDiscretionScope) tDiscretionScope $
      LT.insert (tnum tTargetStrategy) tTargetStrategy $
      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
      LT.insert (tnum tParticipationRate) tParticipationRate $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tDesignation) tDesignation       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoSides''' = FIXTag
            { tName = "NoSides"
            , tnum = tnum tNoSides
            , tparser = gNoSidesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }

         gNoSidesP''' = groupP gNoSidesSpec'''
         gNoSidesSpec''' = FGSpec
            { gsLength = tNoSides
            , gsSeperator = tSide
            , gsBody = gNoSidesBody''' }
            where
            gNoSidesBody''' = 
               LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
               LT.insert (tnum tClOrdID) tClOrdID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
               LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $
               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
               LT.insert (tnum tTradeDate) tTradeDate $
               LT.insert (tnum tAccount) tAccount $
               LT.insert (tnum tAcctIDSource) tAcctIDSource $
               LT.insert (tnum tAccountType) tAccountType $
               LT.insert (tnum tDayBookingInst) tDayBookingInst $
               LT.insert (tnum tBookingUnit) tBookingUnit $
               LT.insert (tnum tPreallocMethod) tPreallocMethod $
               LT.insert (tnum tAllocID) tAllocID $
               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $
               LT.insert (tnum tQtyType) tQtyType $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tCashOrderQty) tCashOrderQty $
               LT.insert (tnum tOrderPercent) tOrderPercent $
               LT.insert (tnum tRoundingDirection) tRoundingDirection $
               LT.insert (tnum tRoundingModulus) tRoundingModulus $
               LT.insert (tnum tCommission) tCommission $
               LT.insert (tnum tCommType) tCommType $
               LT.insert (tnum tCommCurrency) tCommCurrency $
               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
               LT.insert (tnum tOrderCapacity) tOrderCapacity $
               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
               LT.insert (tnum tForexReq) tForexReq $
               LT.insert (tnum tSettlCurrency) tSettlCurrency $
               LT.insert (tnum tBookingType) tBookingType $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText $
               LT.insert (tnum tPositionEffect) tPositionEffect $
               LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
               LT.insert (tnum tCashMargin) tCashMargin $
               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
               LT.insert (tnum tSideComplianceID) tSideComplianceID                LT.new
               where
                  gNoAllocs'''''' = FIXTag
                     { tName = "NoAllocs"
                     , tnum = tnum tNoAllocs
                     , tparser = gNoAllocsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }

                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''
                  gNoAllocsSpec'''''' = FGSpec
                     { gsLength = tNoAllocs
                     , gsSeperator = tAllocAccount
                     , gsBody = gNoAllocsBody'''''' }
                     where
                     gNoAllocsBody'''''' = 
                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $
                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new
                        where
                           gNoNestedPartyIDs''''''''' = FIXTag
                              { tName = "NoNestedPartyIDs"
                              , tnum = tnum tNoNestedPartyIDs
                              , tparser = gNoNestedPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }

                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''
                           gNoNestedPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartyIDs
                              , gsSeperator = tNestedPartyID
                              , gsBody = gNoNestedPartyIDsBody''''''''' }
                              where
                              gNoNestedPartyIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNestedPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNestedPartySubIDs"
                                       , tnum = tnum tNoNestedPartySubIDs
                                       , tparser = gNoNestedPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }

                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''
                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNestedPartySubIDs
                                       , gsSeperator = tNestedPartySubID
                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }
                                       where
                                       gNoNestedPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new



                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new



         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mCrossOrderCancelRequest :: FIXMessageSpec
mCrossOrderCancelRequest = FMSpec
   { msName = "CrossOrderCancelRequest"
   , msType = C.pack "u"
   , msHeader = headerFIX44
   , msBody = mCrossOrderCancelRequestBody
   , msTrailer = trailerFIX44 }
   where
   mCrossOrderCancelRequestBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tCrossID) tCrossID $
      LT.insert (tnum tOrigCrossID) tOrigCrossID $
      LT.insert (tnum tCrossType) tCrossType $
      LT.insert (tnum tCrossPrioritization) tCrossPrioritization $
      LT.insert (tnum tNoSides) gNoSides''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tTransactTime) tTransactTime       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoSides''' = FIXTag
            { tName = "NoSides"
            , tnum = tnum tNoSides
            , tparser = gNoSidesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }

         gNoSidesP''' = groupP gNoSidesSpec'''
         gNoSidesSpec''' = FGSpec
            { gsLength = tNoSides
            , gsSeperator = tSide
            , gsBody = gNoSidesBody''' }
            where
            gNoSidesBody''' = 
               LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
               LT.insert (tnum tClOrdID) tClOrdID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
               LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $
               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
               LT.insert (tnum tTradeDate) tTradeDate $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tCashOrderQty) tCashOrderQty $
               LT.insert (tnum tOrderPercent) tOrderPercent $
               LT.insert (tnum tRoundingDirection) tRoundingDirection $
               LT.insert (tnum tRoundingModulus) tRoundingModulus $
               LT.insert (tnum tComplianceID) tComplianceID $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new
               where
                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new



         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mSecurityTypeRequest :: FIXMessageSpec
mSecurityTypeRequest = FMSpec
   { msName = "SecurityTypeRequest"
   , msType = C.pack "v"
   , msHeader = headerFIX44
   , msBody = mSecurityTypeRequestBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityTypeRequestBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType       LT.new


mSecurityTypes :: FIXMessageSpec
mSecurityTypes = FMSpec
   { msName = "SecurityTypes"
   , msType = C.pack "w"
   , msHeader = headerFIX44
   , msBody = mSecurityTypesBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityTypesBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $
      LT.insert (tnum tSecurityResponseType) tSecurityResponseType $
      LT.insert (tnum tTotNoSecurityTypes) tTotNoSecurityTypes $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoSecurityTypes) gNoSecurityTypes''' $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new
      where
         gNoSecurityTypes''' = FIXTag
            { tName = "NoSecurityTypes"
            , tnum = tnum tNoSecurityTypes
            , tparser = gNoSecurityTypesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityTypesSpec''' }

         gNoSecurityTypesP''' = groupP gNoSecurityTypesSpec'''
         gNoSecurityTypesSpec''' = FGSpec
            { gsLength = tNoSecurityTypes
            , gsSeperator = tSecurityType
            , gsBody = gNoSecurityTypesBody''' }
            where
            gNoSecurityTypesBody''' = 
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode                LT.new



mSecurityListRequest :: FIXMessageSpec
mSecurityListRequest = FMSpec
   { msName = "SecurityListRequest"
   , msType = C.pack "x"
   , msHeader = headerFIX44
   , msBody = mSecurityListRequestBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityListRequestBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mSecurityList :: FIXMessageSpec
mSecurityList = FMSpec
   { msName = "SecurityList"
   , msType = C.pack "y"
   , msHeader = headerFIX44
   , msBody = mSecurityListBody
   , msTrailer = trailerFIX44 }
   where
   mSecurityListBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $
      LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $
      LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new
      where
         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tDeliveryForm) tDeliveryForm $
               LT.insert (tnum tPctAtRisk) tPctAtRisk $
               LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib'''''' $
               LT.insert (tnum tAgreementDesc) tAgreementDesc $
               LT.insert (tnum tAgreementID) tAgreementID $
               LT.insert (tnum tAgreementDate) tAgreementDate $
               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
               LT.insert (tnum tTerminationType) tTerminationType $
               LT.insert (tnum tStartDate) tStartDate $
               LT.insert (tnum tEndDate) tEndDate $
               LT.insert (tnum tDeliveryType) tDeliveryType $
               LT.insert (tnum tMarginRatio) tMarginRatio $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $
               LT.insert (tnum tNoLegs) gNoLegs'''''' $
               LT.insert (tnum tSpread) tSpread $
               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
               LT.insert (tnum tYieldType) tYieldType $
               LT.insert (tnum tYield) tYield $
               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
               LT.insert (tnum tRoundLot) tRoundLot $
               LT.insert (tnum tMinTradeVol) tMinTradeVol $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tExpirationCycle) tExpirationCycle $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoInstrAttrib'''''' = FIXTag
                     { tName = "NoInstrAttrib"
                     , tnum = tnum tNoInstrAttrib
                     , tparser = gNoInstrAttribP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec'''''' }

                  gNoInstrAttribP'''''' = groupP gNoInstrAttribSpec''''''
                  gNoInstrAttribSpec'''''' = FGSpec
                     { gsLength = tNoInstrAttrib
                     , gsSeperator = tInstrAttribType
                     , gsBody = gNoInstrAttribBody'''''' }
                     where
                     gNoInstrAttribBody'''''' = 
                        LT.insert (tnum tInstrAttribValue) tInstrAttribValue                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
                        LT.insert (tnum tLegSwapType) tLegSwapType $
                        LT.insert (tnum tLegSettlType) tLegSettlType $
                        LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''''' $
                        LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $
                        LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $
                        LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $
                        LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $
                        LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new

                           gNoLegStipulations''''''''' = FIXTag
                              { tName = "NoLegStipulations"
                              , tnum = tnum tNoLegStipulations
                              , tparser = gNoLegStipulationsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec''''''''' }

                           gNoLegStipulationsP''''''''' = groupP gNoLegStipulationsSpec'''''''''
                           gNoLegStipulationsSpec''''''''' = FGSpec
                              { gsLength = tNoLegStipulations
                              , gsSeperator = tLegStipulationType
                              , gsBody = gNoLegStipulationsBody''''''''' }
                              where
                              gNoLegStipulationsBody''''''''' = 
                                 LT.insert (tnum tLegStipulationValue) tLegStipulationValue                                  LT.new


                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoStipulations'''''' = FIXTag
                     { tName = "NoStipulations"
                     , tnum = tnum tNoStipulations
                     , tparser = gNoStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }

                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''
                  gNoStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoStipulations
                     , gsSeperator = tStipulationType
                     , gsBody = gNoStipulationsBody'''''' }
                     where
                     gNoStipulationsBody'''''' = 
                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mDerivativeSecurityListRequest :: FIXMessageSpec
mDerivativeSecurityListRequest = FMSpec
   { msName = "DerivativeSecurityListRequest"
   , msType = C.pack "z"
   , msHeader = headerFIX44
   , msBody = mDerivativeSecurityListRequestBody
   , msTrailer = trailerFIX44 }
   where
   mDerivativeSecurityListRequestBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $
      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $
      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new
      where
         gNoUnderlyingSecurityAltID''' = FIXTag
            { tName = "NoUnderlyingSecurityAltID"
            , tnum = tnum tNoUnderlyingSecurityAltID
            , tparser = gNoUnderlyingSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }

         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''
         gNoUnderlyingSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoUnderlyingSecurityAltID
            , gsSeperator = tUnderlyingSecurityAltID
            , gsBody = gNoUnderlyingSecurityAltIDBody''' }
            where
            gNoUnderlyingSecurityAltIDBody''' = 
               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new

         gNoUnderlyingStips''' = FIXTag
            { tName = "NoUnderlyingStips"
            , tnum = tnum tNoUnderlyingStips
            , tparser = gNoUnderlyingStipsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }

         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''
         gNoUnderlyingStipsSpec''' = FGSpec
            { gsLength = tNoUnderlyingStips
            , gsSeperator = tUnderlyingStipType
            , gsBody = gNoUnderlyingStipsBody''' }
            where
            gNoUnderlyingStipsBody''' = 
               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new



mDerivativeSecurityList :: FIXMessageSpec
mDerivativeSecurityList = FMSpec
   { msName = "DerivativeSecurityList"
   , msType = C.pack "AA"
   , msHeader = headerFIX44
   , msBody = mDerivativeSecurityListBody
   , msTrailer = trailerFIX44 }
   where
   mDerivativeSecurityListBody = 
      LT.insert (tnum tSecurityReqID) tSecurityReqID $
      LT.insert (tnum tSecurityResponseID) tSecurityResponseID $
      LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $
      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $
      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $
      LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym'''       LT.new
      where
         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tExpirationCycle) tExpirationCycle $
               LT.insert (tnum tDeliveryForm) tDeliveryForm $
               LT.insert (tnum tPctAtRisk) tPctAtRisk $
               LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib'''''' $
               LT.insert (tnum tNoLegs) gNoLegs'''''' $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoInstrAttrib'''''' = FIXTag
                     { tName = "NoInstrAttrib"
                     , tnum = tnum tNoInstrAttrib
                     , tparser = gNoInstrAttribP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec'''''' }

                  gNoInstrAttribP'''''' = groupP gNoInstrAttribSpec''''''
                  gNoInstrAttribSpec'''''' = FGSpec
                     { gsLength = tNoInstrAttrib
                     , gsSeperator = tInstrAttribType
                     , gsBody = gNoInstrAttribBody'''''' }
                     where
                     gNoInstrAttribBody'''''' = 
                        LT.insert (tnum tInstrAttribValue) tInstrAttribValue                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new


                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new


         gNoUnderlyingSecurityAltID''' = FIXTag
            { tName = "NoUnderlyingSecurityAltID"
            , tnum = tnum tNoUnderlyingSecurityAltID
            , tparser = gNoUnderlyingSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }

         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''
         gNoUnderlyingSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoUnderlyingSecurityAltID
            , gsSeperator = tUnderlyingSecurityAltID
            , gsBody = gNoUnderlyingSecurityAltIDBody''' }
            where
            gNoUnderlyingSecurityAltIDBody''' = 
               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new

         gNoUnderlyingStips''' = FIXTag
            { tName = "NoUnderlyingStips"
            , tnum = tnum tNoUnderlyingStips
            , tparser = gNoUnderlyingStipsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }

         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''
         gNoUnderlyingStipsSpec''' = FGSpec
            { gsLength = tNoUnderlyingStips
            , gsSeperator = tUnderlyingStipType
            , gsBody = gNoUnderlyingStipsBody''' }
            where
            gNoUnderlyingStipsBody''' = 
               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new



mNewOrderMultileg :: FIXMessageSpec
mNewOrderMultileg = FMSpec
   { msName = "NewOrderMultileg"
   , msType = C.pack "AB"
   , msHeader = headerFIX44
   , msBody = mNewOrderMultilegBody
   , msTrailer = trailerFIX44 }
   where
   mNewOrderMultilegBody = 
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tDayBookingInst) tDayBookingInst $
      LT.insert (tnum tBookingUnit) tBookingUnit $
      LT.insert (tnum tPreallocMethod) tPreallocMethod $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tNoAllocs) gNoAllocs''' $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tCashMargin) tCashMargin $
      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
      LT.insert (tnum tHandlInst) tHandlInst $
      LT.insert (tnum tExecInst) tExecInst $
      LT.insert (tnum tMinQty) tMinQty $
      LT.insert (tnum tMaxFloor) tMaxFloor $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tProcessCode) tProcessCode $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tPrevClosePx) tPrevClosePx $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tLocateReqd) tLocateReqd $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tStopPx) tStopPx $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
      LT.insert (tnum tIOIID) tIOIID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tTimeInForce) tTimeInForce $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tGTBookingInst) tGTBookingInst $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommCurrency) tCommCurrency $
      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tForexReq) tForexReq $
      LT.insert (tnum tSettlCurrency) tSettlCurrency $
      LT.insert (tnum tBookingType) tBookingType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
      LT.insert (tnum tMaxShow) tMaxShow $
      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
      LT.insert (tnum tPegMoveType) tPegMoveType $
      LT.insert (tnum tPegOffsetType) tPegOffsetType $
      LT.insert (tnum tPegLimitType) tPegLimitType $
      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
      LT.insert (tnum tPegScope) tPegScope $
      LT.insert (tnum tDiscretionInst) tDiscretionInst $
      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
      LT.insert (tnum tDiscretionScope) tDiscretionScope $
      LT.insert (tnum tTargetStrategy) tTargetStrategy $
      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
      LT.insert (tnum tParticipationRate) tParticipationRate $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tDesignation) tDesignation $
      LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tNoNested3PartyIDs) gNoNested3PartyIDs'''''' $
               LT.insert (tnum tAllocQty) tAllocQty                LT.new
               where
                  gNoNested3PartyIDs'''''' = FIXTag
                     { tName = "NoNested3PartyIDs"
                     , tnum = tnum tNoNested3PartyIDs
                     , tparser = gNoNested3PartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNested3PartyIDsSpec'''''' }

                  gNoNested3PartyIDsP'''''' = groupP gNoNested3PartyIDsSpec''''''
                  gNoNested3PartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNested3PartyIDs
                     , gsSeperator = tNested3PartyID
                     , gsBody = gNoNested3PartyIDsBody'''''' }
                     where
                     gNoNested3PartyIDsBody'''''' = 
                        LT.insert (tnum tNested3PartyIDSource) tNested3PartyIDSource $
                        LT.insert (tnum tNested3PartyRole) tNested3PartyRole $
                        LT.insert (tnum tNoNested3PartySubIDs) gNoNested3PartySubIDs'''''''''                         LT.new
                        where
                           gNoNested3PartySubIDs''''''''' = FIXTag
                              { tName = "NoNested3PartySubIDs"
                              , tnum = tnum tNoNested3PartySubIDs
                              , tparser = gNoNested3PartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested3PartySubIDsSpec''''''''' }

                           gNoNested3PartySubIDsP''''''''' = groupP gNoNested3PartySubIDsSpec'''''''''
                           gNoNested3PartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested3PartySubIDs
                              , gsSeperator = tNested3PartySubID
                              , gsBody = gNoNested3PartySubIDsBody''''''''' }
                              where
                              gNoNested3PartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNested3PartySubIDType) tNested3PartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tNoLegAllocs) gNoLegAllocs'''''' $
               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $
               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tLegRefID) tLegRefID $
               LT.insert (tnum tLegPrice) tLegPrice $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate                LT.new
               where
                  gNoLegAllocs'''''' = FIXTag
                     { tName = "NoLegAllocs"
                     , tnum = tnum tNoLegAllocs
                     , tparser = gNoLegAllocsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegAllocsSpec'''''' }

                  gNoLegAllocsP'''''' = groupP gNoLegAllocsSpec''''''
                  gNoLegAllocsSpec'''''' = FGSpec
                     { gsLength = tNoLegAllocs
                     , gsSeperator = tLegAllocAccount
                     , gsBody = gNoLegAllocsBody'''''' }
                     where
                     gNoLegAllocsBody'''''' = 
                        LT.insert (tnum tLegIndividualAllocID) tLegIndividualAllocID $
                        LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs''''''''' $
                        LT.insert (tnum tLegAllocQty) tLegAllocQty $
                        LT.insert (tnum tLegAllocAcctIDSource) tLegAllocAcctIDSource $
                        LT.insert (tnum tLegSettlCurrency) tLegSettlCurrency                         LT.new
                        where
                           gNoNested2PartyIDs''''''''' = FIXTag
                              { tName = "NoNested2PartyIDs"
                              , tnum = tnum tNoNested2PartyIDs
                              , tparser = gNoNested2PartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec''''''''' }

                           gNoNested2PartyIDsP''''''''' = groupP gNoNested2PartyIDsSpec'''''''''
                           gNoNested2PartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartyIDs
                              , gsSeperator = tNested2PartyID
                              , gsBody = gNoNested2PartyIDsBody''''''''' }
                              where
                              gNoNested2PartyIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                                 LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                                 LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNested2PartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNested2PartySubIDs"
                                       , tnum = tnum tNoNested2PartySubIDs
                                       , tparser = gNoNested2PartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec'''''''''''' }

                                    gNoNested2PartySubIDsP'''''''''''' = groupP gNoNested2PartySubIDsSpec''''''''''''
                                    gNoNested2PartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNested2PartySubIDs
                                       , gsSeperator = tNested2PartySubID
                                       , gsBody = gNoNested2PartySubIDsBody'''''''''''' }
                                       where
                                       gNoNested2PartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                           LT.new



                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mMultilegOrderCancelReplace :: FIXMessageSpec
mMultilegOrderCancelReplace = FMSpec
   { msName = "MultilegOrderCancelReplace"
   , msType = C.pack "AC"
   , msHeader = headerFIX44
   , msBody = mMultilegOrderCancelReplaceBody
   , msTrailer = trailerFIX44 }
   where
   mMultilegOrderCancelReplaceBody = 
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
      LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tDayBookingInst) tDayBookingInst $
      LT.insert (tnum tBookingUnit) tBookingUnit $
      LT.insert (tnum tPreallocMethod) tPreallocMethod $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tNoAllocs) gNoAllocs''' $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tCashMargin) tCashMargin $
      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
      LT.insert (tnum tHandlInst) tHandlInst $
      LT.insert (tnum tExecInst) tExecInst $
      LT.insert (tnum tMinQty) tMinQty $
      LT.insert (tnum tMaxFloor) tMaxFloor $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tProcessCode) tProcessCode $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tPrevClosePx) tPrevClosePx $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tLocateReqd) tLocateReqd $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tStopPx) tStopPx $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tComplianceID) tComplianceID $
      LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
      LT.insert (tnum tIOIID) tIOIID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tTimeInForce) tTimeInForce $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tGTBookingInst) tGTBookingInst $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommCurrency) tCommCurrency $
      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tForexReq) tForexReq $
      LT.insert (tnum tSettlCurrency) tSettlCurrency $
      LT.insert (tnum tBookingType) tBookingType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
      LT.insert (tnum tMaxShow) tMaxShow $
      LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
      LT.insert (tnum tPegMoveType) tPegMoveType $
      LT.insert (tnum tPegOffsetType) tPegOffsetType $
      LT.insert (tnum tPegLimitType) tPegLimitType $
      LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
      LT.insert (tnum tPegScope) tPegScope $
      LT.insert (tnum tDiscretionInst) tDiscretionInst $
      LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
      LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
      LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
      LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
      LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
      LT.insert (tnum tDiscretionScope) tDiscretionScope $
      LT.insert (tnum tTargetStrategy) tTargetStrategy $
      LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
      LT.insert (tnum tParticipationRate) tParticipationRate $
      LT.insert (tnum tCancellationRights) tCancellationRights $
      LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
      LT.insert (tnum tRegistID) tRegistID $
      LT.insert (tnum tDesignation) tDesignation $
      LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tNoNested3PartyIDs) gNoNested3PartyIDs'''''' $
               LT.insert (tnum tAllocQty) tAllocQty                LT.new
               where
                  gNoNested3PartyIDs'''''' = FIXTag
                     { tName = "NoNested3PartyIDs"
                     , tnum = tnum tNoNested3PartyIDs
                     , tparser = gNoNested3PartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNested3PartyIDsSpec'''''' }

                  gNoNested3PartyIDsP'''''' = groupP gNoNested3PartyIDsSpec''''''
                  gNoNested3PartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNested3PartyIDs
                     , gsSeperator = tNested3PartyID
                     , gsBody = gNoNested3PartyIDsBody'''''' }
                     where
                     gNoNested3PartyIDsBody'''''' = 
                        LT.insert (tnum tNested3PartyIDSource) tNested3PartyIDSource $
                        LT.insert (tnum tNested3PartyRole) tNested3PartyRole $
                        LT.insert (tnum tNoNested3PartySubIDs) gNoNested3PartySubIDs'''''''''                         LT.new
                        where
                           gNoNested3PartySubIDs''''''''' = FIXTag
                              { tName = "NoNested3PartySubIDs"
                              , tnum = tnum tNoNested3PartySubIDs
                              , tparser = gNoNested3PartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested3PartySubIDsSpec''''''''' }

                           gNoNested3PartySubIDsP''''''''' = groupP gNoNested3PartySubIDsSpec'''''''''
                           gNoNested3PartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested3PartySubIDs
                              , gsSeperator = tNested3PartySubID
                              , gsBody = gNoNested3PartySubIDsBody''''''''' }
                              where
                              gNoNested3PartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNested3PartySubIDType) tNested3PartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tNoLegAllocs) gNoLegAllocs'''''' $
               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $
               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tLegRefID) tLegRefID $
               LT.insert (tnum tLegPrice) tLegPrice $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate                LT.new
               where
                  gNoLegAllocs'''''' = FIXTag
                     { tName = "NoLegAllocs"
                     , tnum = tnum tNoLegAllocs
                     , tparser = gNoLegAllocsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegAllocsSpec'''''' }

                  gNoLegAllocsP'''''' = groupP gNoLegAllocsSpec''''''
                  gNoLegAllocsSpec'''''' = FGSpec
                     { gsLength = tNoLegAllocs
                     , gsSeperator = tLegAllocAccount
                     , gsBody = gNoLegAllocsBody'''''' }
                     where
                     gNoLegAllocsBody'''''' = 
                        LT.insert (tnum tLegIndividualAllocID) tLegIndividualAllocID $
                        LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs''''''''' $
                        LT.insert (tnum tLegAllocQty) tLegAllocQty $
                        LT.insert (tnum tLegAllocAcctIDSource) tLegAllocAcctIDSource $
                        LT.insert (tnum tLegSettlCurrency) tLegSettlCurrency                         LT.new
                        where
                           gNoNested2PartyIDs''''''''' = FIXTag
                              { tName = "NoNested2PartyIDs"
                              , tnum = tnum tNoNested2PartyIDs
                              , tparser = gNoNested2PartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec''''''''' }

                           gNoNested2PartyIDsP''''''''' = groupP gNoNested2PartyIDsSpec'''''''''
                           gNoNested2PartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartyIDs
                              , gsSeperator = tNested2PartyID
                              , gsBody = gNoNested2PartyIDsBody''''''''' }
                              where
                              gNoNested2PartyIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                                 LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                                 LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNested2PartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNested2PartySubIDs"
                                       , tnum = tnum tNoNested2PartySubIDs
                                       , tparser = gNoNested2PartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec'''''''''''' }

                                    gNoNested2PartySubIDsP'''''''''''' = groupP gNoNested2PartySubIDsSpec''''''''''''
                                    gNoNested2PartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNested2PartySubIDs
                                       , gsSeperator = tNested2PartySubID
                                       , gsBody = gNoNested2PartySubIDsBody'''''''''''' }
                                       where
                                       gNoNested2PartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                           LT.new



                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mTradeCaptureReportRequest :: FIXMessageSpec
mTradeCaptureReportRequest = FMSpec
   { msName = "TradeCaptureReportRequest"
   , msType = C.pack "AD"
   , msHeader = headerFIX44
   , msBody = mTradeCaptureReportRequestBody
   , msTrailer = trailerFIX44 }
   where
   mTradeCaptureReportRequestBody = 
      LT.insert (tnum tTradeRequestID) tTradeRequestID $
      LT.insert (tnum tTradeRequestType) tTradeRequestType $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tTradeReportID) tTradeReportID $
      LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $
      LT.insert (tnum tExecID) tExecID $
      LT.insert (tnum tExecType) tExecType $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tMatchStatus) tMatchStatus $
      LT.insert (tnum tTrdType) tTrdType $
      LT.insert (tnum tTrdSubType) tTrdSubType $
      LT.insert (tnum tTransferReason) tTransferReason $
      LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $
      LT.insert (tnum tTradeLinkID) tTradeLinkID $
      LT.insert (tnum tTrdMatchID) tTrdMatchID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoDates) gNoDates''' $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tTimeBracket) tTimeBracket $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $
      LT.insert (tnum tTradeInputSource) tTradeInputSource $
      LT.insert (tnum tTradeInputDevice) tTradeInputDevice $
      LT.insert (tnum tResponseTransportType) tResponseTransportType $
      LT.insert (tnum tResponseDestination) tResponseDestination $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoDates''' = FIXTag
            { tName = "NoDates"
            , tnum = tnum tNoDates
            , tparser = gNoDatesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoDatesSpec''' }

         gNoDatesP''' = groupP gNoDatesSpec'''
         gNoDatesSpec''' = FGSpec
            { gsLength = tNoDates
            , gsSeperator = tTradeDate
            , gsBody = gNoDatesBody''' }
            where
            gNoDatesBody''' = 
               LT.insert (tnum tTransactTime) tTransactTime                LT.new

         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mTradeCaptureReport :: FIXMessageSpec
mTradeCaptureReport = FMSpec
   { msName = "TradeCaptureReport"
   , msType = C.pack "AE"
   , msHeader = headerFIX44
   , msBody = mTradeCaptureReportBody
   , msTrailer = trailerFIX44 }
   where
   mTradeCaptureReportBody = 
      LT.insert (tnum tTradeReportID) tTradeReportID $
      LT.insert (tnum tTradeReportTransType) tTradeReportTransType $
      LT.insert (tnum tTradeReportType) tTradeReportType $
      LT.insert (tnum tTradeRequestID) tTradeRequestID $
      LT.insert (tnum tTrdType) tTrdType $
      LT.insert (tnum tTrdSubType) tTrdSubType $
      LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $
      LT.insert (tnum tTransferReason) tTransferReason $
      LT.insert (tnum tExecType) tExecType $
      LT.insert (tnum tTotNumTradeReports) tTotNumTradeReports $
      LT.insert (tnum tLastRptRequested) tLastRptRequested $
      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tTradeReportRefID) tTradeReportRefID $
      LT.insert (tnum tSecondaryTradeReportRefID) tSecondaryTradeReportRefID $
      LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $
      LT.insert (tnum tTradeLinkID) tTradeLinkID $
      LT.insert (tnum tTrdMatchID) tTrdMatchID $
      LT.insert (tnum tExecID) tExecID $
      LT.insert (tnum tOrdStatus) tOrdStatus $
      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $
      LT.insert (tnum tExecRestatementReason) tExecRestatementReason $
      LT.insert (tnum tPreviouslyReported) tPreviouslyReported $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tUnderlyingTradingSessionID) tUnderlyingTradingSessionID $
      LT.insert (tnum tUnderlyingTradingSessionSubID) tUnderlyingTradingSessionSubID $
      LT.insert (tnum tLastQty) tLastQty $
      LT.insert (tnum tLastPx) tLastPx $
      LT.insert (tnum tLastParPx) tLastParPx $
      LT.insert (tnum tLastSpotRate) tLastSpotRate $
      LT.insert (tnum tLastForwardPoints) tLastForwardPoints $
      LT.insert (tnum tLastMkt) tLastMkt $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tAvgPx) tAvgPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tAvgPxIndicator) tAvgPxIndicator $
      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $
      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $
      LT.insert (tnum tTradeLegRefID) tTradeLegRefID $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tMatchStatus) tMatchStatus $
      LT.insert (tnum tMatchType) tMatchType $
      LT.insert (tnum tNoSides) gNoSides'''       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $
               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tLegRefID) tLegRefID $
               LT.insert (tnum tLegPrice) tLegPrice $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate $
               LT.insert (tnum tLegLastPx) tLegLastPx                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoPosAmt''' = FIXTag
            { tName = "NoPosAmt"
            , tnum = tnum tNoPosAmt
            , tparser = gNoPosAmtP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }

         gNoPosAmtP''' = groupP gNoPosAmtSpec'''
         gNoPosAmtSpec''' = FGSpec
            { gsLength = tNoPosAmt
            , gsSeperator = tPosAmtType
            , gsBody = gNoPosAmtBody''' }
            where
            gNoPosAmtBody''' = 
               LT.insert (tnum tPosAmt) tPosAmt                LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoSides''' = FIXTag
            { tName = "NoSides"
            , tnum = tnum tNoSides
            , tparser = gNoSidesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSidesSpec''' }

         gNoSidesP''' = groupP gNoSidesSpec'''
         gNoSidesSpec''' = FGSpec
            { gsLength = tNoSides
            , gsSeperator = tSide
            , gsBody = gNoSidesBody''' }
            where
            gNoSidesBody''' = 
               LT.insert (tnum tOrderID) tOrderID $
               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
               LT.insert (tnum tClOrdID) tClOrdID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tListID) tListID $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs'''''' $
               LT.insert (tnum tAccount) tAccount $
               LT.insert (tnum tAcctIDSource) tAcctIDSource $
               LT.insert (tnum tAccountType) tAccountType $
               LT.insert (tnum tProcessCode) tProcessCode $
               LT.insert (tnum tOddLot) tOddLot $
               LT.insert (tnum tNoClearingInstructions) gNoClearingInstructions'''''' $
               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
               LT.insert (tnum tTradeInputSource) tTradeInputSource $
               LT.insert (tnum tTradeInputDevice) tTradeInputDevice $
               LT.insert (tnum tOrderInputDevice) tOrderInputDevice $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tComplianceID) tComplianceID $
               LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
               LT.insert (tnum tOrderCapacity) tOrderCapacity $
               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
               LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
               LT.insert (tnum tOrdType) tOrdType $
               LT.insert (tnum tExecInst) tExecInst $
               LT.insert (tnum tTransBkdTime) tTransBkdTime $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tTimeBracket) tTimeBracket $
               LT.insert (tnum tCommission) tCommission $
               LT.insert (tnum tCommType) tCommType $
               LT.insert (tnum tCommCurrency) tCommCurrency $
               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
               LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $
               LT.insert (tnum tNumDaysInterest) tNumDaysInterest $
               LT.insert (tnum tExDate) tExDate $
               LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $
               LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
               LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $
               LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
               LT.insert (tnum tStartCash) tStartCash $
               LT.insert (tnum tEndCash) tEndCash $
               LT.insert (tnum tConcession) tConcession $
               LT.insert (tnum tTotalTakedown) tTotalTakedown $
               LT.insert (tnum tNetMoney) tNetMoney $
               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $
               LT.insert (tnum tSettlCurrency) tSettlCurrency $
               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $
               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
               LT.insert (tnum tPositionEffect) tPositionEffect $
               LT.insert (tnum tText) tText $
               LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
               LT.insert (tnum tEncodedText) tEncodedText $
               LT.insert (tnum tSideMultiLegReportingType) tSideMultiLegReportingType $
               LT.insert (tnum tNoContAmts) gNoContAmts'''''' $
               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $
               LT.insert (tnum tNoMiscFees) gNoMiscFees'''''' $
               LT.insert (tnum tExchangeRule) tExchangeRule $
               LT.insert (tnum tTradeAllocIndicator) tTradeAllocIndicator $
               LT.insert (tnum tPreallocMethod) tPreallocMethod $
               LT.insert (tnum tAllocID) tAllocID $
               LT.insert (tnum tNoAllocs) gNoAllocs'''''' $
               LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $
               LT.insert (tnum tPublishTrdIndicator) tPublishTrdIndicator $
               LT.insert (tnum tShortSaleReason) tShortSaleReason                LT.new
               where
                  gNoAllocs'''''' = FIXTag
                     { tName = "NoAllocs"
                     , tnum = tnum tNoAllocs
                     , tparser = gNoAllocsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec'''''' }

                  gNoAllocsP'''''' = groupP gNoAllocsSpec''''''
                  gNoAllocsSpec'''''' = FGSpec
                     { gsLength = tNoAllocs
                     , gsSeperator = tAllocAccount
                     , gsBody = gNoAllocsBody'''''' }
                     where
                     gNoAllocsBody'''''' = 
                        LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
                        LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
                        LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
                        LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs''''''''' $
                        LT.insert (tnum tAllocQty) tAllocQty                         LT.new
                        where
                           gNoNested2PartyIDs''''''''' = FIXTag
                              { tName = "NoNested2PartyIDs"
                              , tnum = tnum tNoNested2PartyIDs
                              , tparser = gNoNested2PartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec''''''''' }

                           gNoNested2PartyIDsP''''''''' = groupP gNoNested2PartyIDsSpec'''''''''
                           gNoNested2PartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartyIDs
                              , gsSeperator = tNested2PartyID
                              , gsBody = gNoNested2PartyIDsBody''''''''' }
                              where
                              gNoNested2PartyIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                                 LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                                 LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNested2PartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNested2PartySubIDs"
                                       , tnum = tnum tNoNested2PartySubIDs
                                       , tparser = gNoNested2PartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec'''''''''''' }

                                    gNoNested2PartySubIDsP'''''''''''' = groupP gNoNested2PartySubIDsSpec''''''''''''
                                    gNoNested2PartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNested2PartySubIDs
                                       , gsSeperator = tNested2PartySubID
                                       , gsBody = gNoNested2PartySubIDsBody'''''''''''' }
                                       where
                                       gNoNested2PartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                           LT.new



                  gNoClearingInstructions'''''' = FIXTag
                     { tName = "NoClearingInstructions"
                     , tnum = tnum tNoClearingInstructions
                     , tparser = gNoClearingInstructionsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoClearingInstructionsSpec'''''' }

                  gNoClearingInstructionsP'''''' = groupP gNoClearingInstructionsSpec''''''
                  gNoClearingInstructionsSpec'''''' = FGSpec
                     { gsLength = tNoClearingInstructions
                     , gsSeperator = tClearingInstruction
                     , gsBody = gNoClearingInstructionsBody'''''' }
                     where
                     gNoClearingInstructionsBody'''''' = 
                        LT.new

                  gNoContAmts'''''' = FIXTag
                     { tName = "NoContAmts"
                     , tnum = tnum tNoContAmts
                     , tparser = gNoContAmtsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoContAmtsSpec'''''' }

                  gNoContAmtsP'''''' = groupP gNoContAmtsSpec''''''
                  gNoContAmtsSpec'''''' = FGSpec
                     { gsLength = tNoContAmts
                     , gsSeperator = tContAmtType
                     , gsBody = gNoContAmtsBody'''''' }
                     where
                     gNoContAmtsBody'''''' = 
                        LT.insert (tnum tContAmtValue) tContAmtValue $
                        LT.insert (tnum tContAmtCurr) tContAmtCurr                         LT.new

                  gNoMiscFees'''''' = FIXTag
                     { tName = "NoMiscFees"
                     , tnum = tnum tNoMiscFees
                     , tparser = gNoMiscFeesP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }

                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''
                  gNoMiscFeesSpec'''''' = FGSpec
                     { gsLength = tNoMiscFees
                     , gsSeperator = tMiscFeeAmt
                     , gsBody = gNoMiscFeesBody'''''' }
                     where
                     gNoMiscFeesBody'''''' = 
                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
                        LT.insert (tnum tMiscFeeType) tMiscFeeType $
                        LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                         LT.new

                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new


                  gNoStipulations'''''' = FIXTag
                     { tName = "NoStipulations"
                     , tnum = tnum tNoStipulations
                     , tparser = gNoStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }

                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''
                  gNoStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoStipulations
                     , gsSeperator = tStipulationType
                     , gsBody = gNoStipulationsBody'''''' }
                     where
                     gNoStipulationsBody'''''' = 
                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new


         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mOrderMassStatusRequest :: FIXMessageSpec
mOrderMassStatusRequest = FMSpec
   { msName = "OrderMassStatusRequest"
   , msType = C.pack "AF"
   , msHeader = headerFIX44
   , msBody = mOrderMassStatusRequestBody
   , msTrailer = trailerFIX44 }
   where
   mOrderMassStatusRequestBody = 
      LT.insert (tnum tMassStatusReqID) tMassStatusReqID $
      LT.insert (tnum tMassStatusReqType) tMassStatusReqType $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
      LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
      LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
      LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
      LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''' $
      LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
      LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
      LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
      LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
      LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
      LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
      LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
      LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
      LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
      LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
      LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
      LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
      LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
      LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
      LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
      LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
      LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
      LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
      LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
      LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
      LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
      LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
      LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
      LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
      LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
      LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
      LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
      LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
      LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
      LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
      LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
      LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
      LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
      LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
      LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
      LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
      LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
      LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
      LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
      LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
      LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''' $
      LT.insert (tnum tSide) tSide       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyingSecurityAltID''' = FIXTag
            { tName = "NoUnderlyingSecurityAltID"
            , tnum = tnum tNoUnderlyingSecurityAltID
            , tparser = gNoUnderlyingSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''' }

         gNoUnderlyingSecurityAltIDP''' = groupP gNoUnderlyingSecurityAltIDSpec'''
         gNoUnderlyingSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoUnderlyingSecurityAltID
            , gsSeperator = tUnderlyingSecurityAltID
            , gsBody = gNoUnderlyingSecurityAltIDBody''' }
            where
            gNoUnderlyingSecurityAltIDBody''' = 
               LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                LT.new

         gNoUnderlyingStips''' = FIXTag
            { tName = "NoUnderlyingStips"
            , tnum = tnum tNoUnderlyingStips
            , tparser = gNoUnderlyingStipsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''' }

         gNoUnderlyingStipsP''' = groupP gNoUnderlyingStipsSpec'''
         gNoUnderlyingStipsSpec''' = FGSpec
            { gsLength = tNoUnderlyingStips
            , gsSeperator = tUnderlyingStipType
            , gsBody = gNoUnderlyingStipsBody''' }
            where
            gNoUnderlyingStipsBody''' = 
               LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                LT.new



mQuoteRequestReject :: FIXMessageSpec
mQuoteRequestReject = FMSpec
   { msName = "QuoteRequestReject"
   , msType = C.pack "AG"
   , msHeader = headerFIX44
   , msBody = mQuoteRequestRejectBody
   , msTrailer = trailerFIX44 }
   where
   mQuoteRequestRejectBody = 
      LT.insert (tnum tQuoteReqID) tQuoteReqID $
      LT.insert (tnum tRFQReqID) tRFQReqID $
      LT.insert (tnum tQuoteRequestRejectReason) tQuoteRequestRejectReason $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tAgreementDesc) tAgreementDesc $
               LT.insert (tnum tAgreementID) tAgreementID $
               LT.insert (tnum tAgreementDate) tAgreementDate $
               LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
               LT.insert (tnum tTerminationType) tTerminationType $
               LT.insert (tnum tStartDate) tStartDate $
               LT.insert (tnum tEndDate) tEndDate $
               LT.insert (tnum tDeliveryType) tDeliveryType $
               LT.insert (tnum tMarginRatio) tMarginRatio $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tPrevClosePx) tPrevClosePx $
               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $
               LT.insert (tnum tQuoteType) tQuoteType $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
               LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
               LT.insert (tnum tSide) tSide $
               LT.insert (tnum tQtyType) tQtyType $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tCashOrderQty) tCashOrderQty $
               LT.insert (tnum tOrderPercent) tOrderPercent $
               LT.insert (tnum tRoundingDirection) tRoundingDirection $
               LT.insert (tnum tRoundingModulus) tRoundingModulus $
               LT.insert (tnum tSettlType) tSettlType $
               LT.insert (tnum tSettlDate) tSettlDate $
               LT.insert (tnum tSettlDate2) tSettlDate2 $
               LT.insert (tnum tOrderQty2) tOrderQty2 $
               LT.insert (tnum tCurrency) tCurrency $
               LT.insert (tnum tNoStipulations) gNoStipulations'''''' $
               LT.insert (tnum tAccount) tAccount $
               LT.insert (tnum tAcctIDSource) tAcctIDSource $
               LT.insert (tnum tAccountType) tAccountType $
               LT.insert (tnum tNoLegs) gNoLegs'''''' $
               LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers'''''' $
               LT.insert (tnum tQuotePriceType) tQuotePriceType $
               LT.insert (tnum tOrdType) tOrdType $
               LT.insert (tnum tExpireTime) tExpireTime $
               LT.insert (tnum tTransactTime) tTransactTime $
               LT.insert (tnum tSpread) tSpread $
               LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
               LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
               LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
               LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
               LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
               LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
               LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
               LT.insert (tnum tPriceType) tPriceType $
               LT.insert (tnum tPrice) tPrice $
               LT.insert (tnum tPrice2) tPrice2 $
               LT.insert (tnum tYieldType) tYieldType $
               LT.insert (tnum tYield) tYield $
               LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
               LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
               LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
               LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
               LT.insert (tnum tNoPartyIDs) gNoPartyIDs''''''                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
                        LT.insert (tnum tLegQty) tLegQty $
                        LT.insert (tnum tLegSwapType) tLegSwapType $
                        LT.insert (tnum tLegSettlType) tLegSettlType $
                        LT.insert (tnum tLegSettlDate) tLegSettlDate $
                        LT.insert (tnum tNoLegStipulations) gNoLegStipulations''''''''' $
                        LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''''' $
                        LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $
                        LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $
                        LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $
                        LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $
                        LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new

                           gNoLegStipulations''''''''' = FIXTag
                              { tName = "NoLegStipulations"
                              , tnum = tnum tNoLegStipulations
                              , tparser = gNoLegStipulationsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec''''''''' }

                           gNoLegStipulationsP''''''''' = groupP gNoLegStipulationsSpec'''''''''
                           gNoLegStipulationsSpec''''''''' = FGSpec
                              { gsLength = tNoLegStipulations
                              , gsSeperator = tLegStipulationType
                              , gsBody = gNoLegStipulationsBody''''''''' }
                              where
                              gNoLegStipulationsBody''''''''' = 
                                 LT.insert (tnum tLegStipulationValue) tLegStipulationValue                                  LT.new

                           gNoNestedPartyIDs''''''''' = FIXTag
                              { tName = "NoNestedPartyIDs"
                              , tnum = tnum tNoNestedPartyIDs
                              , tparser = gNoNestedPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec''''''''' }

                           gNoNestedPartyIDsP''''''''' = groupP gNoNestedPartyIDsSpec'''''''''
                           gNoNestedPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartyIDs
                              , gsSeperator = tNestedPartyID
                              , gsBody = gNoNestedPartyIDsBody''''''''' }
                              where
                              gNoNestedPartyIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                                 LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                                 LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoNestedPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoNestedPartySubIDs"
                                       , tnum = tnum tNoNestedPartySubIDs
                                       , tparser = gNoNestedPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec'''''''''''' }

                                    gNoNestedPartySubIDsP'''''''''''' = groupP gNoNestedPartySubIDsSpec''''''''''''
                                    gNoNestedPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoNestedPartySubIDs
                                       , gsSeperator = tNestedPartySubID
                                       , gsBody = gNoNestedPartySubIDsBody'''''''''''' }
                                       where
                                       gNoNestedPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                           LT.new



                  gNoPartyIDs'''''' = FIXTag
                     { tName = "NoPartyIDs"
                     , tnum = tnum tNoPartyIDs
                     , tparser = gNoPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec'''''' }

                  gNoPartyIDsP'''''' = groupP gNoPartyIDsSpec''''''
                  gNoPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartyIDs
                     , gsSeperator = tPartyID
                     , gsBody = gNoPartyIDsBody'''''' }
                     where
                     gNoPartyIDsBody'''''' = 
                        LT.insert (tnum tPartyIDSource) tPartyIDSource $
                        LT.insert (tnum tPartyRole) tPartyRole $
                        LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs'''''''''                         LT.new
                        where
                           gNoPartySubIDs''''''''' = FIXTag
                              { tName = "NoPartySubIDs"
                              , tnum = tnum tNoPartySubIDs
                              , tparser = gNoPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec''''''''' }

                           gNoPartySubIDsP''''''''' = groupP gNoPartySubIDsSpec'''''''''
                           gNoPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoPartySubIDs
                              , gsSeperator = tPartySubID
                              , gsBody = gNoPartySubIDsBody''''''''' }
                              where
                              gNoPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tPartySubIDType) tPartySubIDType                                  LT.new


                  gNoQuoteQualifiers'''''' = FIXTag
                     { tName = "NoQuoteQualifiers"
                     , tnum = tnum tNoQuoteQualifiers
                     , tparser = gNoQuoteQualifiersP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec'''''' }

                  gNoQuoteQualifiersP'''''' = groupP gNoQuoteQualifiersSpec''''''
                  gNoQuoteQualifiersSpec'''''' = FGSpec
                     { gsLength = tNoQuoteQualifiers
                     , gsSeperator = tQuoteQualifier
                     , gsBody = gNoQuoteQualifiersBody'''''' }
                     where
                     gNoQuoteQualifiersBody'''''' = 
                        LT.new

                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoStipulations'''''' = FIXTag
                     { tName = "NoStipulations"
                     , tnum = tnum tNoStipulations
                     , tparser = gNoStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec'''''' }

                  gNoStipulationsP'''''' = groupP gNoStipulationsSpec''''''
                  gNoStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoStipulations
                     , gsSeperator = tStipulationType
                     , gsBody = gNoStipulationsBody'''''' }
                     where
                     gNoStipulationsBody'''''' = 
                        LT.insert (tnum tStipulationValue) tStipulationValue                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mRFQRequest :: FIXMessageSpec
mRFQRequest = FMSpec
   { msName = "RFQRequest"
   , msType = C.pack "AH"
   , msHeader = headerFIX44
   , msBody = mRFQRequestBody
   , msTrailer = trailerFIX44 }
   where
   mRFQRequestBody = 
      LT.insert (tnum tRFQReqID) tRFQReqID $
      LT.insert (tnum tNoRelatedSym) gNoRelatedSym''' $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType       LT.new
      where
         gNoRelatedSym''' = FIXTag
            { tName = "NoRelatedSym"
            , tnum = tnum tNoRelatedSym
            , tparser = gNoRelatedSymP'''
            , arbitraryValue = arbibtraryFIXGroup gNoRelatedSymSpec''' }

         gNoRelatedSymP''' = groupP gNoRelatedSymSpec'''
         gNoRelatedSymSpec''' = FGSpec
            { gsLength = tNoRelatedSym
            , gsSeperator = tSymbol
            , gsBody = gNoRelatedSymBody''' }
            where
            gNoRelatedSymBody''' = 
               LT.insert (tnum tSymbolSfx) tSymbolSfx $
               LT.insert (tnum tSecurityID) tSecurityID $
               LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
               LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID'''''' $
               LT.insert (tnum tProduct) tProduct $
               LT.insert (tnum tCFICode) tCFICode $
               LT.insert (tnum tSecurityType) tSecurityType $
               LT.insert (tnum tSecuritySubType) tSecuritySubType $
               LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
               LT.insert (tnum tMaturityDate) tMaturityDate $
               LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
               LT.insert (tnum tIssueDate) tIssueDate $
               LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
               LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
               LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
               LT.insert (tnum tFactor) tFactor $
               LT.insert (tnum tCreditRating) tCreditRating $
               LT.insert (tnum tInstrRegistry) tInstrRegistry $
               LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
               LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
               LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
               LT.insert (tnum tRedemptionDate) tRedemptionDate $
               LT.insert (tnum tStrikePrice) tStrikePrice $
               LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
               LT.insert (tnum tOptAttribute) tOptAttribute $
               LT.insert (tnum tContractMultiplier) tContractMultiplier $
               LT.insert (tnum tCouponRate) tCouponRate $
               LT.insert (tnum tSecurityExchange) tSecurityExchange $
               LT.insert (tnum tIssuer) tIssuer $
               LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
               LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
               LT.insert (tnum tSecurityDesc) tSecurityDesc $
               LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
               LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
               LT.insert (tnum tPool) tPool $
               LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
               LT.insert (tnum tCPProgram) tCPProgram $
               LT.insert (tnum tCPRegType) tCPRegType $
               LT.insert (tnum tNoEvents) gNoEvents'''''' $
               LT.insert (tnum tDatedDate) tDatedDate $
               LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
               LT.insert (tnum tNoUnderlyings) gNoUnderlyings'''''' $
               LT.insert (tnum tNoLegs) gNoLegs'''''' $
               LT.insert (tnum tPrevClosePx) tPrevClosePx $
               LT.insert (tnum tQuoteRequestType) tQuoteRequestType $
               LT.insert (tnum tQuoteType) tQuoteType $
               LT.insert (tnum tTradingSessionID) tTradingSessionID $
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new
               where
                  gNoEvents'''''' = FIXTag
                     { tName = "NoEvents"
                     , tnum = tnum tNoEvents
                     , tparser = gNoEventsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec'''''' }

                  gNoEventsP'''''' = groupP gNoEventsSpec''''''
                  gNoEventsSpec'''''' = FGSpec
                     { gsLength = tNoEvents
                     , gsSeperator = tEventType
                     , gsBody = gNoEventsBody'''''' }
                     where
                     gNoEventsBody'''''' = 
                        LT.insert (tnum tEventDate) tEventDate $
                        LT.insert (tnum tEventPx) tEventPx $
                        LT.insert (tnum tEventText) tEventText                         LT.new

                  gNoLegs'''''' = FIXTag
                     { tName = "NoLegs"
                     , tnum = tnum tNoLegs
                     , tparser = gNoLegsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec'''''' }

                  gNoLegsP'''''' = groupP gNoLegsSpec''''''
                  gNoLegsSpec'''''' = FGSpec
                     { gsLength = tNoLegs
                     , gsSeperator = tLegSymbol
                     , gsBody = gNoLegsBody'''''' }
                     where
                     gNoLegsBody'''''' = 
                        LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
                        LT.insert (tnum tLegSecurityID) tLegSecurityID $
                        LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
                        LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID''''''''' $
                        LT.insert (tnum tLegProduct) tLegProduct $
                        LT.insert (tnum tLegCFICode) tLegCFICode $
                        LT.insert (tnum tLegSecurityType) tLegSecurityType $
                        LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
                        LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
                        LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
                        LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
                        LT.insert (tnum tLegIssueDate) tLegIssueDate $
                        LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
                        LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
                        LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
                        LT.insert (tnum tLegFactor) tLegFactor $
                        LT.insert (tnum tLegCreditRating) tLegCreditRating $
                        LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
                        LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
                        LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
                        LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
                        LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
                        LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
                        LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
                        LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
                        LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
                        LT.insert (tnum tLegCouponRate) tLegCouponRate $
                        LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
                        LT.insert (tnum tLegIssuer) tLegIssuer $
                        LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
                        LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
                        LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
                        LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
                        LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
                        LT.insert (tnum tLegRatioQty) tLegRatioQty $
                        LT.insert (tnum tLegSide) tLegSide $
                        LT.insert (tnum tLegCurrency) tLegCurrency $
                        LT.insert (tnum tLegPool) tLegPool $
                        LT.insert (tnum tLegDatedDate) tLegDatedDate $
                        LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
                        LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                         LT.new
                        where
                           gNoLegSecurityAltID''''''''' = FIXTag
                              { tName = "NoLegSecurityAltID"
                              , tnum = tnum tNoLegSecurityAltID
                              , tparser = gNoLegSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec''''''''' }

                           gNoLegSecurityAltIDP''''''''' = groupP gNoLegSecurityAltIDSpec'''''''''
                           gNoLegSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoLegSecurityAltID
                              , gsSeperator = tLegSecurityAltID
                              , gsBody = gNoLegSecurityAltIDBody''''''''' }
                              where
                              gNoLegSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                                  LT.new


                  gNoSecurityAltID'''''' = FIXTag
                     { tName = "NoSecurityAltID"
                     , tnum = tnum tNoSecurityAltID
                     , tparser = gNoSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec'''''' }

                  gNoSecurityAltIDP'''''' = groupP gNoSecurityAltIDSpec''''''
                  gNoSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoSecurityAltID
                     , gsSeperator = tSecurityAltID
                     , gsBody = gNoSecurityAltIDBody'''''' }
                     where
                     gNoSecurityAltIDBody'''''' = 
                        LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                         LT.new

                  gNoUnderlyings'''''' = FIXTag
                     { tName = "NoUnderlyings"
                     , tnum = tnum tNoUnderlyings
                     , tparser = gNoUnderlyingsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec'''''' }

                  gNoUnderlyingsP'''''' = groupP gNoUnderlyingsSpec''''''
                  gNoUnderlyingsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyings
                     , gsSeperator = tUnderlyingSymbol
                     , gsBody = gNoUnderlyingsBody'''''' }
                     where
                     gNoUnderlyingsBody'''''' = 
                        LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
                        LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
                        LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
                        LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID''''''''' $
                        LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
                        LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
                        LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
                        LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
                        LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
                        LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
                        LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
                        LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
                        LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
                        LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
                        LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
                        LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
                        LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
                        LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
                        LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
                        LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
                        LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
                        LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
                        LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
                        LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
                        LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
                        LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
                        LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
                        LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
                        LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
                        LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
                        LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
                        LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
                        LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
                        LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
                        LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
                        LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
                        LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
                        LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
                        LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
                        LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
                        LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
                        LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
                        LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
                        LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
                        LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''''''                         LT.new
                        where
                           gNoUnderlyingSecurityAltID''''''''' = FIXTag
                              { tName = "NoUnderlyingSecurityAltID"
                              , tnum = tnum tNoUnderlyingSecurityAltID
                              , tparser = gNoUnderlyingSecurityAltIDP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec''''''''' }

                           gNoUnderlyingSecurityAltIDP''''''''' = groupP gNoUnderlyingSecurityAltIDSpec'''''''''
                           gNoUnderlyingSecurityAltIDSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingSecurityAltID
                              , gsSeperator = tUnderlyingSecurityAltID
                              , gsBody = gNoUnderlyingSecurityAltIDBody''''''''' }
                              where
                              gNoUnderlyingSecurityAltIDBody''''''''' = 
                                 LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                                  LT.new

                           gNoUnderlyingStips''''''''' = FIXTag
                              { tName = "NoUnderlyingStips"
                              , tnum = tnum tNoUnderlyingStips
                              , tparser = gNoUnderlyingStipsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec''''''''' }

                           gNoUnderlyingStipsP''''''''' = groupP gNoUnderlyingStipsSpec'''''''''
                           gNoUnderlyingStipsSpec''''''''' = FGSpec
                              { gsLength = tNoUnderlyingStips
                              , gsSeperator = tUnderlyingStipType
                              , gsBody = gNoUnderlyingStipsBody''''''''' }
                              where
                              gNoUnderlyingStipsBody''''''''' = 
                                 LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                                  LT.new





mQuoteStatusReport :: FIXMessageSpec
mQuoteStatusReport = FMSpec
   { msName = "QuoteStatusReport"
   , msType = C.pack "AI"
   , msHeader = headerFIX44
   , msBody = mQuoteStatusReportBody
   , msTrailer = trailerFIX44 }
   where
   mQuoteStatusReportBody = 
      LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $
      LT.insert (tnum tQuoteReqID) tQuoteReqID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tQuoteRespID) tQuoteRespID $
      LT.insert (tnum tQuoteType) tQuoteType $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tSettlDate2) tSettlDate2 $
      LT.insert (tnum tOrderQty2) tOrderQty2 $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers''' $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tBidPx) tBidPx $
      LT.insert (tnum tOfferPx) tOfferPx $
      LT.insert (tnum tMktBidPx) tMktBidPx $
      LT.insert (tnum tMktOfferPx) tMktOfferPx $
      LT.insert (tnum tMinBidSize) tMinBidSize $
      LT.insert (tnum tBidSize) tBidSize $
      LT.insert (tnum tMinOfferSize) tMinOfferSize $
      LT.insert (tnum tOfferSize) tOfferSize $
      LT.insert (tnum tValidUntilTime) tValidUntilTime $
      LT.insert (tnum tBidSpotRate) tBidSpotRate $
      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $
      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $
      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $
      LT.insert (tnum tMidPx) tMidPx $
      LT.insert (tnum tBidYield) tBidYield $
      LT.insert (tnum tMidYield) tMidYield $
      LT.insert (tnum tOfferYield) tOfferYield $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $
      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $
      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $
      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $
      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tQuoteStatus) tQuoteStatus $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoQuoteQualifiers''' = FIXTag
            { tName = "NoQuoteQualifiers"
            , tnum = tnum tNoQuoteQualifiers
            , tparser = gNoQuoteQualifiersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec''' }

         gNoQuoteQualifiersP''' = groupP gNoQuoteQualifiersSpec'''
         gNoQuoteQualifiersSpec''' = FGSpec
            { gsLength = tNoQuoteQualifiers
            , gsSeperator = tQuoteQualifier
            , gsBody = gNoQuoteQualifiersBody''' }
            where
            gNoQuoteQualifiersBody''' = 
               LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mQuoteResponse :: FIXMessageSpec
mQuoteResponse = FMSpec
   { msName = "QuoteResponse"
   , msType = C.pack "AJ"
   , msHeader = headerFIX44
   , msBody = mQuoteResponseBody
   , msTrailer = trailerFIX44 }
   where
   mQuoteResponseBody = 
      LT.insert (tnum tQuoteRespID) tQuoteRespID $
      LT.insert (tnum tQuoteID) tQuoteID $
      LT.insert (tnum tQuoteRespType) tQuoteRespType $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tIOIID) tIOIID $
      LT.insert (tnum tQuoteType) tQuoteType $
      LT.insert (tnum tNoQuoteQualifiers) gNoQuoteQualifiers''' $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tOrderQty) tOrderQty $
      LT.insert (tnum tCashOrderQty) tCashOrderQty $
      LT.insert (tnum tOrderPercent) tOrderPercent $
      LT.insert (tnum tRoundingDirection) tRoundingDirection $
      LT.insert (tnum tRoundingModulus) tRoundingModulus $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tSettlDate2) tSettlDate2 $
      LT.insert (tnum tOrderQty2) tOrderQty2 $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tBidPx) tBidPx $
      LT.insert (tnum tOfferPx) tOfferPx $
      LT.insert (tnum tMktBidPx) tMktBidPx $
      LT.insert (tnum tMktOfferPx) tMktOfferPx $
      LT.insert (tnum tMinBidSize) tMinBidSize $
      LT.insert (tnum tBidSize) tBidSize $
      LT.insert (tnum tMinOfferSize) tMinOfferSize $
      LT.insert (tnum tOfferSize) tOfferSize $
      LT.insert (tnum tValidUntilTime) tValidUntilTime $
      LT.insert (tnum tBidSpotRate) tBidSpotRate $
      LT.insert (tnum tOfferSpotRate) tOfferSpotRate $
      LT.insert (tnum tBidForwardPoints) tBidForwardPoints $
      LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $
      LT.insert (tnum tMidPx) tMidPx $
      LT.insert (tnum tBidYield) tBidYield $
      LT.insert (tnum tMidYield) tMidYield $
      LT.insert (tnum tOfferYield) tOfferYield $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tOrdType) tOrdType $
      LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $
      LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $
      LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $
      LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $
      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tExDestination) tExDestination $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tLegPriceType) tLegPriceType $
               LT.insert (tnum tLegBidPx) tLegBidPx $
               LT.insert (tnum tLegOfferPx) tLegOfferPx $
               LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $
               LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $
               LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $
               LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $
               LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoQuoteQualifiers''' = FIXTag
            { tName = "NoQuoteQualifiers"
            , tnum = tnum tNoQuoteQualifiers
            , tparser = gNoQuoteQualifiersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoQuoteQualifiersSpec''' }

         gNoQuoteQualifiersP''' = groupP gNoQuoteQualifiersSpec'''
         gNoQuoteQualifiersSpec''' = FGSpec
            { gsLength = tNoQuoteQualifiers
            , gsSeperator = tQuoteQualifier
            , gsBody = gNoQuoteQualifiersBody''' }
            where
            gNoQuoteQualifiersBody''' = 
               LT.new

         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mConfirmation :: FIXMessageSpec
mConfirmation = FMSpec
   { msName = "Confirmation"
   , msType = C.pack "AK"
   , msHeader = headerFIX44
   , msBody = mConfirmationBody
   , msTrailer = trailerFIX44 }
   where
   mConfirmationBody = 
      LT.insert (tnum tConfirmID) tConfirmID $
      LT.insert (tnum tConfirmRefID) tConfirmRefID $
      LT.insert (tnum tConfirmReqID) tConfirmReqID $
      LT.insert (tnum tConfirmTransType) tConfirmTransType $
      LT.insert (tnum tConfirmType) tConfirmType $
      LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $
      LT.insert (tnum tLegalConfirm) tLegalConfirm $
      LT.insert (tnum tConfirmStatus) tConfirmStatus $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tNoOrders) gNoOrders''' $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $
      LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tAllocQty) tAllocQty $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tLastMkt) tLastMkt $
      LT.insert (tnum tNoCapacities) gNoCapacities''' $
      LT.insert (tnum tAllocAccount) tAllocAccount $
      LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
      LT.insert (tnum tAllocAccountType) tAllocAccountType $
      LT.insert (tnum tAvgPx) tAvgPx $
      LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAvgParPx) tAvgParPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tReportedPx) tReportedPx $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tProcessCode) tProcessCode $
      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $
      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $
      LT.insert (tnum tExDate) tExDate $
      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tConcession) tConcession $
      LT.insert (tnum tTotalTakedown) tTotalTakedown $
      LT.insert (tnum tNetMoney) tNetMoney $
      LT.insert (tnum tMaturityNetMoney) tMaturityNetMoney $
      LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $
      LT.insert (tnum tSettlCurrency) tSettlCurrency $
      LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $
      LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
      LT.insert (tnum tStandInstDbType) tStandInstDbType $
      LT.insert (tnum tStandInstDbName) tStandInstDbName $
      LT.insert (tnum tStandInstDbID) tStandInstDbID $
      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $
      LT.insert (tnum tCommission) tCommission $
      LT.insert (tnum tCommType) tCommType $
      LT.insert (tnum tCommCurrency) tCommCurrency $
      LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
      LT.insert (tnum tSharedCommission) tSharedCommission $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tNoMiscFees) gNoMiscFees'''       LT.new
      where
         gNoCapacities''' = FIXTag
            { tName = "NoCapacities"
            , tnum = tnum tNoCapacities
            , tparser = gNoCapacitiesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoCapacitiesSpec''' }

         gNoCapacitiesP''' = groupP gNoCapacitiesSpec'''
         gNoCapacitiesSpec''' = FGSpec
            { gsLength = tNoCapacities
            , gsSeperator = tOrderCapacity
            , gsBody = gNoCapacitiesBody''' }
            where
            gNoCapacitiesBody''' = 
               LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
               LT.insert (tnum tOrderCapacityQty) tOrderCapacityQty                LT.new

         gNoDlvyInst''' = FIXTag
            { tName = "NoDlvyInst"
            , tnum = tnum tNoDlvyInst
            , tparser = gNoDlvyInstP'''
            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }

         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''
         gNoDlvyInstSpec''' = FGSpec
            { gsLength = tNoDlvyInst
            , gsSeperator = tSettlInstSource
            , gsBody = gNoDlvyInstBody''' }
            where
            gNoDlvyInstBody''' = 
               LT.insert (tnum tDlvyInstType) tDlvyInstType $
               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new
               where
                  gNoSettlPartyIDs'''''' = FIXTag
                     { tName = "NoSettlPartyIDs"
                     , tnum = tnum tNoSettlPartyIDs
                     , tparser = gNoSettlPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }

                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''
                  gNoSettlPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoSettlPartyIDs
                     , gsSeperator = tSettlPartyID
                     , gsBody = gNoSettlPartyIDsBody'''''' }
                     where
                     gNoSettlPartyIDsBody'''''' = 
                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new
                        where
                           gNoSettlPartySubIDs''''''''' = FIXTag
                              { tName = "NoSettlPartySubIDs"
                              , tnum = tnum tNoSettlPartySubIDs
                              , tparser = gNoSettlPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }

                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''
                           gNoSettlPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoSettlPartySubIDs
                              , gsSeperator = tSettlPartySubID
                              , gsBody = gNoSettlPartySubIDsBody''''''''' }
                              where
                              gNoSettlPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoMiscFees''' = FIXTag
            { tName = "NoMiscFees"
            , tnum = tnum tNoMiscFees
            , tparser = gNoMiscFeesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }

         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''
         gNoMiscFeesSpec''' = FGSpec
            { gsLength = tNoMiscFees
            , gsSeperator = tMiscFeeAmt
            , gsBody = gNoMiscFeesBody''' }
            where
            gNoMiscFeesBody''' = 
               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
               LT.insert (tnum tMiscFeeType) tMiscFeeType $
               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new

         gNoOrders''' = FIXTag
            { tName = "NoOrders"
            , tnum = tnum tNoOrders
            , tparser = gNoOrdersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }

         gNoOrdersP''' = groupP gNoOrdersSpec'''
         gNoOrdersSpec''' = FGSpec
            { gsLength = tNoOrders
            , gsSeperator = tClOrdID
            , gsBody = gNoOrdersBody''' }
            where
            gNoOrdersBody''' = 
               LT.insert (tnum tOrderID) tOrderID $
               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tListID) tListID $
               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $
               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new
               where
                  gNoNested2PartyIDs'''''' = FIXTag
                     { tName = "NoNested2PartyIDs"
                     , tnum = tnum tNoNested2PartyIDs
                     , tparser = gNoNested2PartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }

                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''
                  gNoNested2PartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNested2PartyIDs
                     , gsSeperator = tNested2PartyID
                     , gsBody = gNoNested2PartyIDsBody'''''' }
                     where
                     gNoNested2PartyIDsBody'''''' = 
                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new
                        where
                           gNoNested2PartySubIDs''''''''' = FIXTag
                              { tName = "NoNested2PartySubIDs"
                              , tnum = tnum tNoNested2PartySubIDs
                              , tparser = gNoNested2PartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }

                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''
                           gNoNested2PartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartySubIDs
                              , gsSeperator = tNested2PartySubID
                              , gsBody = gNoNested2PartySubIDsBody''''''''' }
                              where
                              gNoNested2PartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mPositionMaintenanceRequest :: FIXMessageSpec
mPositionMaintenanceRequest = FMSpec
   { msName = "PositionMaintenanceRequest"
   , msType = C.pack "AL"
   , msHeader = headerFIX44
   , msBody = mPositionMaintenanceRequestBody
   , msTrailer = trailerFIX44 }
   where
   mPositionMaintenanceRequestBody = 
      LT.insert (tnum tPosReqID) tPosReqID $
      LT.insert (tnum tPosTransType) tPosTransType $
      LT.insert (tnum tPosMaintAction) tPosMaintAction $
      LT.insert (tnum tOrigPosReqRefID) tOrigPosReqRefID $
      LT.insert (tnum tPosMaintRptRefID) tPosMaintRptRefID $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoPositions) gNoPositions''' $
      LT.insert (tnum tAdjustmentType) tAdjustmentType $
      LT.insert (tnum tContraryInstructionIndicator) tContraryInstructionIndicator $
      LT.insert (tnum tPriorSpreadIndicator) tPriorSpreadIndicator $
      LT.insert (tnum tThresholdAmount) tThresholdAmount $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoPositions''' = FIXTag
            { tName = "NoPositions"
            , tnum = tnum tNoPositions
            , tparser = gNoPositionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }

         gNoPositionsP''' = groupP gNoPositionsSpec'''
         gNoPositionsSpec''' = FGSpec
            { gsLength = tNoPositions
            , gsSeperator = tPosType
            , gsBody = gNoPositionsBody''' }
            where
            gNoPositionsBody''' = 
               LT.insert (tnum tLongQty) tLongQty $
               LT.insert (tnum tShortQty) tShortQty $
               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new
               where
                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mPositionMaintenanceReport :: FIXMessageSpec
mPositionMaintenanceReport = FMSpec
   { msName = "PositionMaintenanceReport"
   , msType = C.pack "AM"
   , msHeader = headerFIX44
   , msBody = mPositionMaintenanceReportBody
   , msTrailer = trailerFIX44 }
   where
   mPositionMaintenanceReportBody = 
      LT.insert (tnum tPosMaintRptID) tPosMaintRptID $
      LT.insert (tnum tPosTransType) tPosTransType $
      LT.insert (tnum tPosReqID) tPosReqID $
      LT.insert (tnum tPosMaintAction) tPosMaintAction $
      LT.insert (tnum tOrigPosReqRefID) tOrigPosReqRefID $
      LT.insert (tnum tPosMaintStatus) tPosMaintStatus $
      LT.insert (tnum tPosMaintResult) tPosMaintResult $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoPositions) gNoPositions''' $
      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $
      LT.insert (tnum tAdjustmentType) tAdjustmentType $
      LT.insert (tnum tThresholdAmount) tThresholdAmount $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoPosAmt''' = FIXTag
            { tName = "NoPosAmt"
            , tnum = tnum tNoPosAmt
            , tparser = gNoPosAmtP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }

         gNoPosAmtP''' = groupP gNoPosAmtSpec'''
         gNoPosAmtSpec''' = FGSpec
            { gsLength = tNoPosAmt
            , gsSeperator = tPosAmtType
            , gsBody = gNoPosAmtBody''' }
            where
            gNoPosAmtBody''' = 
               LT.insert (tnum tPosAmt) tPosAmt                LT.new

         gNoPositions''' = FIXTag
            { tName = "NoPositions"
            , tnum = tnum tNoPositions
            , tparser = gNoPositionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }

         gNoPositionsP''' = groupP gNoPositionsSpec'''
         gNoPositionsSpec''' = FGSpec
            { gsLength = tNoPositions
            , gsSeperator = tPosType
            , gsBody = gNoPositionsBody''' }
            where
            gNoPositionsBody''' = 
               LT.insert (tnum tLongQty) tLongQty $
               LT.insert (tnum tShortQty) tShortQty $
               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new
               where
                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mRequestForPositions :: FIXMessageSpec
mRequestForPositions = FMSpec
   { msName = "RequestForPositions"
   , msType = C.pack "AN"
   , msHeader = headerFIX44
   , msBody = mRequestForPositionsBody
   , msTrailer = trailerFIX44 }
   where
   mRequestForPositionsBody = 
      LT.insert (tnum tPosReqID) tPosReqID $
      LT.insert (tnum tPosReqType) tPosReqType $
      LT.insert (tnum tMatchStatus) tMatchStatus $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tNoTradingSessions) gNoTradingSessions''' $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tResponseTransportType) tResponseTransportType $
      LT.insert (tnum tResponseDestination) tResponseDestination $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTradingSessions''' = FIXTag
            { tName = "NoTradingSessions"
            , tnum = tnum tNoTradingSessions
            , tparser = gNoTradingSessionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradingSessionsSpec''' }

         gNoTradingSessionsP''' = groupP gNoTradingSessionsSpec'''
         gNoTradingSessionsSpec''' = FGSpec
            { gsLength = tNoTradingSessions
            , gsSeperator = tTradingSessionID
            , gsBody = gNoTradingSessionsBody''' }
            where
            gNoTradingSessionsBody''' = 
               LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mRequestForPositionsAck :: FIXMessageSpec
mRequestForPositionsAck = FMSpec
   { msName = "RequestForPositionsAck"
   , msType = C.pack "AO"
   , msHeader = headerFIX44
   , msBody = mRequestForPositionsAckBody
   , msTrailer = trailerFIX44 }
   where
   mRequestForPositionsAckBody = 
      LT.insert (tnum tPosMaintRptID) tPosMaintRptID $
      LT.insert (tnum tPosReqID) tPosReqID $
      LT.insert (tnum tTotalNumPosReports) tTotalNumPosReports $
      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $
      LT.insert (tnum tPosReqResult) tPosReqResult $
      LT.insert (tnum tPosReqStatus) tPosReqStatus $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tResponseTransportType) tResponseTransportType $
      LT.insert (tnum tResponseDestination) tResponseDestination $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mPositionReport :: FIXMessageSpec
mPositionReport = FMSpec
   { msName = "PositionReport"
   , msType = C.pack "AP"
   , msHeader = headerFIX44
   , msBody = mPositionReportBody
   , msTrailer = trailerFIX44 }
   where
   mPositionReportBody = 
      LT.insert (tnum tPosMaintRptID) tPosMaintRptID $
      LT.insert (tnum tPosReqID) tPosReqID $
      LT.insert (tnum tPosReqType) tPosReqType $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tTotalNumPosReports) tTotalNumPosReports $
      LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $
      LT.insert (tnum tPosReqResult) tPosReqResult $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tSettlPrice) tSettlPrice $
      LT.insert (tnum tSettlPriceType) tSettlPriceType $
      LT.insert (tnum tPriorSettlPrice) tPriorSettlPrice $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoPositions) gNoPositions''' $
      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $
      LT.insert (tnum tRegistStatus) tRegistStatus $
      LT.insert (tnum tDeliveryDate) tDeliveryDate $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoPosAmt''' = FIXTag
            { tName = "NoPosAmt"
            , tnum = tnum tNoPosAmt
            , tparser = gNoPosAmtP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }

         gNoPosAmtP''' = groupP gNoPosAmtSpec'''
         gNoPosAmtSpec''' = FGSpec
            { gsLength = tNoPosAmt
            , gsSeperator = tPosAmtType
            , gsBody = gNoPosAmtBody''' }
            where
            gNoPosAmtBody''' = 
               LT.insert (tnum tPosAmt) tPosAmt                LT.new

         gNoPositions''' = FIXTag
            { tName = "NoPositions"
            , tnum = tnum tNoPositions
            , tparser = gNoPositionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }

         gNoPositionsP''' = groupP gNoPositionsSpec'''
         gNoPositionsSpec''' = FGSpec
            { gsLength = tNoPositions
            , gsSeperator = tPosType
            , gsBody = gNoPositionsBody''' }
            where
            gNoPositionsBody''' = 
               LT.insert (tnum tLongQty) tLongQty $
               LT.insert (tnum tShortQty) tShortQty $
               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new
               where
                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $
               LT.insert (tnum tUnderlyingSettlPrice) tUnderlyingSettlPrice $
               LT.insert (tnum tUnderlyingSettlPriceType) tUnderlyingSettlPriceType                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mTradeCaptureReportRequestAck :: FIXMessageSpec
mTradeCaptureReportRequestAck = FMSpec
   { msName = "TradeCaptureReportRequestAck"
   , msType = C.pack "AQ"
   , msHeader = headerFIX44
   , msBody = mTradeCaptureReportRequestAckBody
   , msTrailer = trailerFIX44 }
   where
   mTradeCaptureReportRequestAckBody = 
      LT.insert (tnum tTradeRequestID) tTradeRequestID $
      LT.insert (tnum tTradeRequestType) tTradeRequestType $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tTotNumTradeReports) tTotNumTradeReports $
      LT.insert (tnum tTradeRequestResult) tTradeRequestResult $
      LT.insert (tnum tTradeRequestStatus) tTradeRequestStatus $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $
      LT.insert (tnum tResponseTransportType) tResponseTransportType $
      LT.insert (tnum tResponseDestination) tResponseDestination $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mTradeCaptureReportAck :: FIXMessageSpec
mTradeCaptureReportAck = FMSpec
   { msName = "TradeCaptureReportAck"
   , msType = C.pack "AR"
   , msHeader = headerFIX44
   , msBody = mTradeCaptureReportAckBody
   , msTrailer = trailerFIX44 }
   where
   mTradeCaptureReportAckBody = 
      LT.insert (tnum tTradeReportID) tTradeReportID $
      LT.insert (tnum tTradeReportTransType) tTradeReportTransType $
      LT.insert (tnum tTradeReportType) tTradeReportType $
      LT.insert (tnum tTrdType) tTrdType $
      LT.insert (tnum tTrdSubType) tTrdSubType $
      LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $
      LT.insert (tnum tTransferReason) tTransferReason $
      LT.insert (tnum tExecType) tExecType $
      LT.insert (tnum tTradeReportRefID) tTradeReportRefID $
      LT.insert (tnum tSecondaryTradeReportRefID) tSecondaryTradeReportRefID $
      LT.insert (tnum tTrdRptStatus) tTrdRptStatus $
      LT.insert (tnum tTradeReportRejectReason) tTradeReportRejectReason $
      LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tTradeLinkID) tTradeLinkID $
      LT.insert (tnum tTrdMatchID) tTrdMatchID $
      LT.insert (tnum tExecID) tExecID $
      LT.insert (tnum tSecondaryExecID) tSecondaryExecID $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tResponseTransportType) tResponseTransportType $
      LT.insert (tnum tResponseDestination) tResponseDestination $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
      LT.insert (tnum tOrderCapacity) tOrderCapacity $
      LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
      LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAcctIDSource) tAcctIDSource $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tPreallocMethod) tPreallocMethod $
      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $
               LT.insert (tnum tAllocQty) tAllocQty                LT.new
               where
                  gNoNested2PartyIDs'''''' = FIXTag
                     { tName = "NoNested2PartyIDs"
                     , tnum = tnum tNoNested2PartyIDs
                     , tparser = gNoNested2PartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }

                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''
                  gNoNested2PartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNested2PartyIDs
                     , gsSeperator = tNested2PartyID
                     , gsBody = gNoNested2PartyIDsBody'''''' }
                     where
                     gNoNested2PartyIDsBody'''''' = 
                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new
                        where
                           gNoNested2PartySubIDs''''''''' = FIXTag
                              { tName = "NoNested2PartySubIDs"
                              , tnum = tnum tNoNested2PartySubIDs
                              , tparser = gNoNested2PartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }

                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''
                           gNoNested2PartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartySubIDs
                              , gsSeperator = tNested2PartySubID
                              , gsBody = gNoNested2PartySubIDsBody''''''''' }
                              where
                              gNoNested2PartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
               LT.insert (tnum tLegQty) tLegQty $
               LT.insert (tnum tLegSwapType) tLegSwapType $
               LT.insert (tnum tNoLegStipulations) gNoLegStipulations'''''' $
               LT.insert (tnum tLegPositionEffect) tLegPositionEffect $
               LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tLegRefID) tLegRefID $
               LT.insert (tnum tLegPrice) tLegPrice $
               LT.insert (tnum tLegSettlType) tLegSettlType $
               LT.insert (tnum tLegSettlDate) tLegSettlDate $
               LT.insert (tnum tLegLastPx) tLegLastPx                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new

                  gNoLegStipulations'''''' = FIXTag
                     { tName = "NoLegStipulations"
                     , tnum = tnum tNoLegStipulations
                     , tparser = gNoLegStipulationsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegStipulationsSpec'''''' }

                  gNoLegStipulationsP'''''' = groupP gNoLegStipulationsSpec''''''
                  gNoLegStipulationsSpec'''''' = FGSpec
                     { gsLength = tNoLegStipulations
                     , gsSeperator = tLegStipulationType
                     , gsBody = gNoLegStipulationsBody'''''' }
                     where
                     gNoLegStipulationsBody'''''' = 
                        LT.insert (tnum tLegStipulationValue) tLegStipulationValue                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new



mAllocationReport :: FIXMessageSpec
mAllocationReport = FMSpec
   { msName = "AllocationReport"
   , msType = C.pack "AS"
   , msHeader = headerFIX44
   , msBody = mAllocationReportBody
   , msTrailer = trailerFIX44 }
   where
   mAllocationReportBody = 
      LT.insert (tnum tAllocReportID) tAllocReportID $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tAllocTransType) tAllocTransType $
      LT.insert (tnum tAllocReportRefID) tAllocReportRefID $
      LT.insert (tnum tAllocCancReplaceReason) tAllocCancReplaceReason $
      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $
      LT.insert (tnum tAllocReportType) tAllocReportType $
      LT.insert (tnum tAllocStatus) tAllocStatus $
      LT.insert (tnum tAllocRejCode) tAllocRejCode $
      LT.insert (tnum tRefAllocID) tRefAllocID $
      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $
      LT.insert (tnum tAllocLinkID) tAllocLinkID $
      LT.insert (tnum tAllocLinkType) tAllocLinkType $
      LT.insert (tnum tBookingRefID) tBookingRefID $
      LT.insert (tnum tAllocNoOrdersType) tAllocNoOrdersType $
      LT.insert (tnum tNoOrders) gNoOrders''' $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tPreviouslyReported) tPreviouslyReported $
      LT.insert (tnum tReversalIndicator) tReversalIndicator $
      LT.insert (tnum tMatchType) tMatchType $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tDeliveryForm) tDeliveryForm $
      LT.insert (tnum tPctAtRisk) tPctAtRisk $
      LT.insert (tnum tNoInstrAttrib) gNoInstrAttrib''' $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tLastMkt) tLastMkt $
      LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAvgPx) tAvgPx $
      LT.insert (tnum tAvgParPx) tAvgParPx $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tSettlType) tSettlType $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tBookingType) tBookingType $
      LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $
      LT.insert (tnum tConcession) tConcession $
      LT.insert (tnum tTotalTakedown) tTotalTakedown $
      LT.insert (tnum tNetMoney) tNetMoney $
      LT.insert (tnum tPositionEffect) tPositionEffect $
      LT.insert (tnum tAutoAcceptIndicator) tAutoAcceptIndicator $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tNumDaysInterest) tNumDaysInterest $
      LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $
      LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tLegalConfirm) tLegalConfirm $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tYieldType) tYieldType $
      LT.insert (tnum tYield) tYield $
      LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
      LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
      LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
      LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
      LT.insert (tnum tTotNoAllocs) tTotNoAllocs $
      LT.insert (tnum tLastFragment) tLastFragment $
      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tMatchStatus) tMatchStatus $
               LT.insert (tnum tAllocPrice) tAllocPrice $
               LT.insert (tnum tAllocQty) tAllocQty $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tProcessCode) tProcessCode $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs'''''' $
               LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $
               LT.insert (tnum tAllocHandlInst) tAllocHandlInst $
               LT.insert (tnum tAllocText) tAllocText $
               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $
               LT.insert (tnum tEncodedAllocText) tEncodedAllocText $
               LT.insert (tnum tCommission) tCommission $
               LT.insert (tnum tCommType) tCommType $
               LT.insert (tnum tCommCurrency) tCommCurrency $
               LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
               LT.insert (tnum tAllocAvgPx) tAllocAvgPx $
               LT.insert (tnum tAllocNetMoney) tAllocNetMoney $
               LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $
               LT.insert (tnum tAllocSettlCurrAmt) tAllocSettlCurrAmt $
               LT.insert (tnum tSettlCurrency) tSettlCurrency $
               LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
               LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $
               LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
               LT.insert (tnum tAllocAccruedInterestAmt) tAllocAccruedInterestAmt $
               LT.insert (tnum tAllocInterestAtMaturity) tAllocInterestAtMaturity $
               LT.insert (tnum tNoMiscFees) gNoMiscFees'''''' $
               LT.insert (tnum tNoClearingInstructions) gNoClearingInstructions'''''' $
               LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
               LT.insert (tnum tAllocSettlInstType) tAllocSettlInstType $
               LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
               LT.insert (tnum tStandInstDbType) tStandInstDbType $
               LT.insert (tnum tStandInstDbName) tStandInstDbName $
               LT.insert (tnum tStandInstDbID) tStandInstDbID $
               LT.insert (tnum tNoDlvyInst) gNoDlvyInst''''''                LT.new
               where
                  gNoClearingInstructions'''''' = FIXTag
                     { tName = "NoClearingInstructions"
                     , tnum = tnum tNoClearingInstructions
                     , tparser = gNoClearingInstructionsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoClearingInstructionsSpec'''''' }

                  gNoClearingInstructionsP'''''' = groupP gNoClearingInstructionsSpec''''''
                  gNoClearingInstructionsSpec'''''' = FGSpec
                     { gsLength = tNoClearingInstructions
                     , gsSeperator = tClearingInstruction
                     , gsBody = gNoClearingInstructionsBody'''''' }
                     where
                     gNoClearingInstructionsBody'''''' = 
                        LT.new

                  gNoDlvyInst'''''' = FIXTag
                     { tName = "NoDlvyInst"
                     , tnum = tnum tNoDlvyInst
                     , tparser = gNoDlvyInstP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec'''''' }

                  gNoDlvyInstP'''''' = groupP gNoDlvyInstSpec''''''
                  gNoDlvyInstSpec'''''' = FGSpec
                     { gsLength = tNoDlvyInst
                     , gsSeperator = tSettlInstSource
                     , gsBody = gNoDlvyInstBody'''''' }
                     where
                     gNoDlvyInstBody'''''' = 
                        LT.insert (tnum tDlvyInstType) tDlvyInstType $
                        LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs'''''''''                         LT.new
                        where
                           gNoSettlPartyIDs''''''''' = FIXTag
                              { tName = "NoSettlPartyIDs"
                              , tnum = tnum tNoSettlPartyIDs
                              , tparser = gNoSettlPartyIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec''''''''' }

                           gNoSettlPartyIDsP''''''''' = groupP gNoSettlPartyIDsSpec'''''''''
                           gNoSettlPartyIDsSpec''''''''' = FGSpec
                              { gsLength = tNoSettlPartyIDs
                              , gsSeperator = tSettlPartyID
                              , gsBody = gNoSettlPartyIDsBody''''''''' }
                              where
                              gNoSettlPartyIDsBody''''''''' = 
                                 LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
                                 LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
                                 LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs''''''''''''                                  LT.new
                                 where
                                    gNoSettlPartySubIDs'''''''''''' = FIXTag
                                       { tName = "NoSettlPartySubIDs"
                                       , tnum = tnum tNoSettlPartySubIDs
                                       , tparser = gNoSettlPartySubIDsP''''''''''''
                                       , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec'''''''''''' }

                                    gNoSettlPartySubIDsP'''''''''''' = groupP gNoSettlPartySubIDsSpec''''''''''''
                                    gNoSettlPartySubIDsSpec'''''''''''' = FGSpec
                                       { gsLength = tNoSettlPartySubIDs
                                       , gsSeperator = tSettlPartySubID
                                       , gsBody = gNoSettlPartySubIDsBody'''''''''''' }
                                       where
                                       gNoSettlPartySubIDsBody'''''''''''' = 
                                          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                           LT.new



                  gNoMiscFees'''''' = FIXTag
                     { tName = "NoMiscFees"
                     , tnum = tnum tNoMiscFees
                     , tparser = gNoMiscFeesP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec'''''' }

                  gNoMiscFeesP'''''' = groupP gNoMiscFeesSpec''''''
                  gNoMiscFeesSpec'''''' = FGSpec
                     { gsLength = tNoMiscFees
                     , gsSeperator = tMiscFeeAmt
                     , gsBody = gNoMiscFeesBody'''''' }
                     where
                     gNoMiscFeesBody'''''' = 
                        LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
                        LT.insert (tnum tMiscFeeType) tMiscFeeType $
                        LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                         LT.new

                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tLastQty
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.insert (tnum tExecID) tExecID $
               LT.insert (tnum tSecondaryExecID) tSecondaryExecID $
               LT.insert (tnum tLastPx) tLastPx $
               LT.insert (tnum tLastParPx) tLastParPx $
               LT.insert (tnum tLastCapacity) tLastCapacity                LT.new

         gNoInstrAttrib''' = FIXTag
            { tName = "NoInstrAttrib"
            , tnum = tnum tNoInstrAttrib
            , tparser = gNoInstrAttribP'''
            , arbitraryValue = arbibtraryFIXGroup gNoInstrAttribSpec''' }

         gNoInstrAttribP''' = groupP gNoInstrAttribSpec'''
         gNoInstrAttribSpec''' = FGSpec
            { gsLength = tNoInstrAttrib
            , gsSeperator = tInstrAttribType
            , gsBody = gNoInstrAttribBody''' }
            where
            gNoInstrAttribBody''' = 
               LT.insert (tnum tInstrAttribValue) tInstrAttribValue                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoOrders''' = FIXTag
            { tName = "NoOrders"
            , tnum = tnum tNoOrders
            , tparser = gNoOrdersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }

         gNoOrdersP''' = groupP gNoOrdersSpec'''
         gNoOrdersSpec''' = FGSpec
            { gsLength = tNoOrders
            , gsSeperator = tClOrdID
            , gsBody = gNoOrdersBody''' }
            where
            gNoOrdersBody''' = 
               LT.insert (tnum tOrderID) tOrderID $
               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tListID) tListID $
               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $
               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new
               where
                  gNoNested2PartyIDs'''''' = FIXTag
                     { tName = "NoNested2PartyIDs"
                     , tnum = tnum tNoNested2PartyIDs
                     , tparser = gNoNested2PartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }

                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''
                  gNoNested2PartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNested2PartyIDs
                     , gsSeperator = tNested2PartyID
                     , gsBody = gNoNested2PartyIDsBody'''''' }
                     where
                     gNoNested2PartyIDsBody'''''' = 
                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new
                        where
                           gNoNested2PartySubIDs''''''''' = FIXTag
                              { tName = "NoNested2PartySubIDs"
                              , tnum = tnum tNoNested2PartySubIDs
                              , tparser = gNoNested2PartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }

                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''
                           gNoNested2PartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartySubIDs
                              , gsSeperator = tNested2PartySubID
                              , gsBody = gNoNested2PartySubIDsBody''''''''' }
                              where
                              gNoNested2PartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new



         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mAllocationReportAck :: FIXMessageSpec
mAllocationReportAck = FMSpec
   { msName = "AllocationReportAck"
   , msType = C.pack "AT"
   , msHeader = headerFIX44
   , msBody = mAllocationReportAckBody
   , msTrailer = trailerFIX44 }
   where
   mAllocationReportAckBody = 
      LT.insert (tnum tAllocReportID) tAllocReportID $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tAllocStatus) tAllocStatus $
      LT.insert (tnum tAllocRejCode) tAllocRejCode $
      LT.insert (tnum tAllocReportType) tAllocReportType $
      LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $
      LT.insert (tnum tMatchStatus) tMatchStatus $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText $
      LT.insert (tnum tNoAllocs) gNoAllocs'''       LT.new
      where
         gNoAllocs''' = FIXTag
            { tName = "NoAllocs"
            , tnum = tnum tNoAllocs
            , tparser = gNoAllocsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoAllocsSpec''' }

         gNoAllocsP''' = groupP gNoAllocsSpec'''
         gNoAllocsSpec''' = FGSpec
            { gsLength = tNoAllocs
            , gsSeperator = tAllocAccount
            , gsBody = gNoAllocsBody''' }
            where
            gNoAllocsBody''' = 
               LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
               LT.insert (tnum tAllocPrice) tAllocPrice $
               LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
               LT.insert (tnum tIndividualAllocRejCode) tIndividualAllocRejCode $
               LT.insert (tnum tAllocText) tAllocText $
               LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $
               LT.insert (tnum tEncodedAllocText) tEncodedAllocText                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new




mConfirmationAck :: FIXMessageSpec
mConfirmationAck = FMSpec
   { msName = "ConfirmationAck"
   , msType = C.pack "AU"
   , msHeader = headerFIX44
   , msBody = mConfirmationAckBody
   , msTrailer = trailerFIX44 }
   where
   mConfirmationAckBody = 
      LT.insert (tnum tConfirmID) tConfirmID $
      LT.insert (tnum tTradeDate) tTradeDate $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tAffirmStatus) tAffirmStatus $
      LT.insert (tnum tConfirmRejReason) tConfirmRejReason $
      LT.insert (tnum tMatchStatus) tMatchStatus $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new


mSettlementInstructionRequest :: FIXMessageSpec
mSettlementInstructionRequest = FMSpec
   { msName = "SettlementInstructionRequest"
   , msType = C.pack "AV"
   , msHeader = headerFIX44
   , msBody = mSettlementInstructionRequestBody
   , msTrailer = trailerFIX44 }
   where
   mSettlementInstructionRequestBody = 
      LT.insert (tnum tSettlInstReqID) tSettlInstReqID $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAllocAccount) tAllocAccount $
      LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tEffectiveTime) tEffectiveTime $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tLastUpdateTime) tLastUpdateTime $
      LT.insert (tnum tStandInstDbType) tStandInstDbType $
      LT.insert (tnum tStandInstDbName) tStandInstDbName $
      LT.insert (tnum tStandInstDbID) tStandInstDbID       LT.new
      where
         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new




mAssignmentReport :: FIXMessageSpec
mAssignmentReport = FMSpec
   { msName = "AssignmentReport"
   , msType = C.pack "AW"
   , msHeader = headerFIX44
   , msBody = mAssignmentReportBody
   , msTrailer = trailerFIX44 }
   where
   mAssignmentReportBody = 
      LT.insert (tnum tAsgnRptID) tAsgnRptID $
      LT.insert (tnum tTotNumAssignmentReports) tTotNumAssignmentReports $
      LT.insert (tnum tLastRptRequested) tLastRptRequested $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tNoPositions) gNoPositions''' $
      LT.insert (tnum tNoPosAmt) gNoPosAmt''' $
      LT.insert (tnum tThresholdAmount) tThresholdAmount $
      LT.insert (tnum tSettlPrice) tSettlPrice $
      LT.insert (tnum tSettlPriceType) tSettlPriceType $
      LT.insert (tnum tUnderlyingSettlPrice) tUnderlyingSettlPrice $
      LT.insert (tnum tExpireDate) tExpireDate $
      LT.insert (tnum tAssignmentMethod) tAssignmentMethod $
      LT.insert (tnum tAssignmentUnit) tAssignmentUnit $
      LT.insert (tnum tOpenInterest) tOpenInterest $
      LT.insert (tnum tExerciseMethod) tExerciseMethod $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoPosAmt''' = FIXTag
            { tName = "NoPosAmt"
            , tnum = tnum tNoPosAmt
            , tparser = gNoPosAmtP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPosAmtSpec''' }

         gNoPosAmtP''' = groupP gNoPosAmtSpec'''
         gNoPosAmtSpec''' = FGSpec
            { gsLength = tNoPosAmt
            , gsSeperator = tPosAmtType
            , gsBody = gNoPosAmtBody''' }
            where
            gNoPosAmtBody''' = 
               LT.insert (tnum tPosAmt) tPosAmt                LT.new

         gNoPositions''' = FIXTag
            { tName = "NoPositions"
            , tnum = tnum tNoPositions
            , tparser = gNoPositionsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPositionsSpec''' }

         gNoPositionsP''' = groupP gNoPositionsSpec'''
         gNoPositionsSpec''' = FGSpec
            { gsLength = tNoPositions
            , gsSeperator = tPosType
            , gsBody = gNoPositionsBody''' }
            where
            gNoPositionsBody''' = 
               LT.insert (tnum tLongQty) tLongQty $
               LT.insert (tnum tShortQty) tShortQty $
               LT.insert (tnum tPosQtyStatus) tPosQtyStatus $
               LT.insert (tnum tNoNestedPartyIDs) gNoNestedPartyIDs''''''                LT.new
               where
                  gNoNestedPartyIDs'''''' = FIXTag
                     { tName = "NoNestedPartyIDs"
                     , tnum = tnum tNoNestedPartyIDs
                     , tparser = gNoNestedPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNestedPartyIDsSpec'''''' }

                  gNoNestedPartyIDsP'''''' = groupP gNoNestedPartyIDsSpec''''''
                  gNoNestedPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNestedPartyIDs
                     , gsSeperator = tNestedPartyID
                     , gsBody = gNoNestedPartyIDsBody'''''' }
                     where
                     gNoNestedPartyIDsBody'''''' = 
                        LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
                        LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
                        LT.insert (tnum tNoNestedPartySubIDs) gNoNestedPartySubIDs'''''''''                         LT.new
                        where
                           gNoNestedPartySubIDs''''''''' = FIXTag
                              { tName = "NoNestedPartySubIDs"
                              , tnum = tnum tNoNestedPartySubIDs
                              , tparser = gNoNestedPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNestedPartySubIDsSpec''''''''' }

                           gNoNestedPartySubIDsP''''''''' = groupP gNoNestedPartySubIDsSpec'''''''''
                           gNoNestedPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNestedPartySubIDs
                              , gsSeperator = tNestedPartySubID
                              , gsBody = gNoNestedPartySubIDsBody''''''''' }
                              where
                              gNoNestedPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType                                  LT.new



         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mCollateralRequest :: FIXMessageSpec
mCollateralRequest = FMSpec
   { msName = "CollateralRequest"
   , msType = C.pack "AX"
   , msHeader = headerFIX44
   , msBody = mCollateralRequestBody
   , msTrailer = trailerFIX44 }
   where
   mCollateralRequestBody = 
      LT.insert (tnum tCollReqID) tCollReqID $
      LT.insert (tnum tCollAsgnReason) tCollAsgnReason $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tNoTrades) gNoTrades''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tMarginExcess) tMarginExcess $
      LT.insert (tnum tTotalNetValue) tTotalNetValue $
      LT.insert (tnum tCashOutstanding) tCashOutstanding $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tExecID
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoMiscFees''' = FIXTag
            { tName = "NoMiscFees"
            , tnum = tnum tNoMiscFees
            , tparser = gNoMiscFeesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }

         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''
         gNoMiscFeesSpec''' = FGSpec
            { gsLength = tNoMiscFees
            , gsSeperator = tMiscFeeAmt
            , gsBody = gNoMiscFeesBody''' }
            where
            gNoMiscFeesBody''' = 
               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
               LT.insert (tnum tMiscFeeType) tMiscFeeType $
               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTrades''' = FIXTag
            { tName = "NoTrades"
            , tnum = tnum tNoTrades
            , tparser = gNoTradesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }

         gNoTradesP''' = groupP gNoTradesSpec'''
         gNoTradesSpec''' = FGSpec
            { gsLength = tNoTrades
            , gsSeperator = tTradeReportID
            , gsBody = gNoTradesBody''' }
            where
            gNoTradesBody''' = 
               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new

         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $
               LT.insert (tnum tCollAction) tCollAction                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mCollateralAssignment :: FIXMessageSpec
mCollateralAssignment = FMSpec
   { msName = "CollateralAssignment"
   , msType = C.pack "AY"
   , msHeader = headerFIX44
   , msBody = mCollateralAssignmentBody
   , msTrailer = trailerFIX44 }
   where
   mCollateralAssignmentBody = 
      LT.insert (tnum tCollAsgnID) tCollAsgnID $
      LT.insert (tnum tCollReqID) tCollReqID $
      LT.insert (tnum tCollAsgnReason) tCollAsgnReason $
      LT.insert (tnum tCollAsgnTransType) tCollAsgnTransType $
      LT.insert (tnum tCollAsgnRefID) tCollAsgnRefID $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tExpireTime) tExpireTime $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tNoTrades) gNoTrades''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tMarginExcess) tMarginExcess $
      LT.insert (tnum tTotalNetValue) tTotalNetValue $
      LT.insert (tnum tCashOutstanding) tCashOutstanding $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
      LT.insert (tnum tStandInstDbType) tStandInstDbType $
      LT.insert (tnum tStandInstDbName) tStandInstDbName $
      LT.insert (tnum tStandInstDbID) tStandInstDbID $
      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoDlvyInst''' = FIXTag
            { tName = "NoDlvyInst"
            , tnum = tnum tNoDlvyInst
            , tparser = gNoDlvyInstP'''
            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }

         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''
         gNoDlvyInstSpec''' = FGSpec
            { gsLength = tNoDlvyInst
            , gsSeperator = tSettlInstSource
            , gsBody = gNoDlvyInstBody''' }
            where
            gNoDlvyInstBody''' = 
               LT.insert (tnum tDlvyInstType) tDlvyInstType $
               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new
               where
                  gNoSettlPartyIDs'''''' = FIXTag
                     { tName = "NoSettlPartyIDs"
                     , tnum = tnum tNoSettlPartyIDs
                     , tparser = gNoSettlPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }

                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''
                  gNoSettlPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoSettlPartyIDs
                     , gsSeperator = tSettlPartyID
                     , gsBody = gNoSettlPartyIDsBody'''''' }
                     where
                     gNoSettlPartyIDsBody'''''' = 
                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new
                        where
                           gNoSettlPartySubIDs''''''''' = FIXTag
                              { tName = "NoSettlPartySubIDs"
                              , tnum = tnum tNoSettlPartySubIDs
                              , tparser = gNoSettlPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }

                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''
                           gNoSettlPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoSettlPartySubIDs
                              , gsSeperator = tSettlPartySubID
                              , gsBody = gNoSettlPartySubIDsBody''''''''' }
                              where
                              gNoSettlPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tExecID
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoMiscFees''' = FIXTag
            { tName = "NoMiscFees"
            , tnum = tnum tNoMiscFees
            , tparser = gNoMiscFeesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }

         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''
         gNoMiscFeesSpec''' = FGSpec
            { gsLength = tNoMiscFees
            , gsSeperator = tMiscFeeAmt
            , gsBody = gNoMiscFeesBody''' }
            where
            gNoMiscFeesBody''' = 
               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
               LT.insert (tnum tMiscFeeType) tMiscFeeType $
               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTrades''' = FIXTag
            { tName = "NoTrades"
            , tnum = tnum tNoTrades
            , tparser = gNoTradesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }

         gNoTradesP''' = groupP gNoTradesSpec'''
         gNoTradesSpec''' = FGSpec
            { gsLength = tNoTrades
            , gsSeperator = tTradeReportID
            , gsBody = gNoTradesBody''' }
            where
            gNoTradesBody''' = 
               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new

         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $
               LT.insert (tnum tCollAction) tCollAction                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mCollateralResponse :: FIXMessageSpec
mCollateralResponse = FMSpec
   { msName = "CollateralResponse"
   , msType = C.pack "AZ"
   , msHeader = headerFIX44
   , msBody = mCollateralResponseBody
   , msTrailer = trailerFIX44 }
   where
   mCollateralResponseBody = 
      LT.insert (tnum tCollRespID) tCollRespID $
      LT.insert (tnum tCollAsgnID) tCollAsgnID $
      LT.insert (tnum tCollReqID) tCollReqID $
      LT.insert (tnum tCollAsgnReason) tCollAsgnReason $
      LT.insert (tnum tCollAsgnTransType) tCollAsgnTransType $
      LT.insert (tnum tCollAsgnRespType) tCollAsgnRespType $
      LT.insert (tnum tCollAsgnRejectReason) tCollAsgnRejectReason $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tNoTrades) gNoTrades''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tMarginExcess) tMarginExcess $
      LT.insert (tnum tTotalNetValue) tTotalNetValue $
      LT.insert (tnum tCashOutstanding) tCashOutstanding $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tExecID
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoMiscFees''' = FIXTag
            { tName = "NoMiscFees"
            , tnum = tnum tNoMiscFees
            , tparser = gNoMiscFeesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }

         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''
         gNoMiscFeesSpec''' = FGSpec
            { gsLength = tNoMiscFees
            , gsSeperator = tMiscFeeAmt
            , gsBody = gNoMiscFeesBody''' }
            where
            gNoMiscFeesBody''' = 
               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
               LT.insert (tnum tMiscFeeType) tMiscFeeType $
               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTrades''' = FIXTag
            { tName = "NoTrades"
            , tnum = tnum tNoTrades
            , tparser = gNoTradesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }

         gNoTradesP''' = groupP gNoTradesSpec'''
         gNoTradesSpec''' = FGSpec
            { gsLength = tNoTrades
            , gsSeperator = tTradeReportID
            , gsBody = gNoTradesBody''' }
            where
            gNoTradesBody''' = 
               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new

         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips'''''' $
               LT.insert (tnum tCollAction) tCollAction                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mCollateralReport :: FIXMessageSpec
mCollateralReport = FMSpec
   { msName = "CollateralReport"
   , msType = C.pack "BA"
   , msHeader = headerFIX44
   , msBody = mCollateralReportBody
   , msTrailer = trailerFIX44 }
   where
   mCollateralReportBody = 
      LT.insert (tnum tCollRptID) tCollRptID $
      LT.insert (tnum tCollInquiryID) tCollInquiryID $
      LT.insert (tnum tCollStatus) tCollStatus $
      LT.insert (tnum tTotNumReports) tTotNumReports $
      LT.insert (tnum tLastRptRequested) tLastRptRequested $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tNoTrades) gNoTrades''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tMarginExcess) tMarginExcess $
      LT.insert (tnum tTotalNetValue) tTotalNetValue $
      LT.insert (tnum tCashOutstanding) tCashOutstanding $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tNoMiscFees) gNoMiscFees''' $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
      LT.insert (tnum tStandInstDbType) tStandInstDbType $
      LT.insert (tnum tStandInstDbName) tStandInstDbName $
      LT.insert (tnum tStandInstDbID) tStandInstDbID $
      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoDlvyInst''' = FIXTag
            { tName = "NoDlvyInst"
            , tnum = tnum tNoDlvyInst
            , tparser = gNoDlvyInstP'''
            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }

         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''
         gNoDlvyInstSpec''' = FGSpec
            { gsLength = tNoDlvyInst
            , gsSeperator = tSettlInstSource
            , gsBody = gNoDlvyInstBody''' }
            where
            gNoDlvyInstBody''' = 
               LT.insert (tnum tDlvyInstType) tDlvyInstType $
               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new
               where
                  gNoSettlPartyIDs'''''' = FIXTag
                     { tName = "NoSettlPartyIDs"
                     , tnum = tnum tNoSettlPartyIDs
                     , tparser = gNoSettlPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }

                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''
                  gNoSettlPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoSettlPartyIDs
                     , gsSeperator = tSettlPartyID
                     , gsBody = gNoSettlPartyIDsBody'''''' }
                     where
                     gNoSettlPartyIDsBody'''''' = 
                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new
                        where
                           gNoSettlPartySubIDs''''''''' = FIXTag
                              { tName = "NoSettlPartySubIDs"
                              , tnum = tnum tNoSettlPartySubIDs
                              , tparser = gNoSettlPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }

                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''
                           gNoSettlPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoSettlPartySubIDs
                              , gsSeperator = tSettlPartySubID
                              , gsBody = gNoSettlPartySubIDsBody''''''''' }
                              where
                              gNoSettlPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tExecID
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoMiscFees''' = FIXTag
            { tName = "NoMiscFees"
            , tnum = tnum tNoMiscFees
            , tparser = gNoMiscFeesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoMiscFeesSpec''' }

         gNoMiscFeesP''' = groupP gNoMiscFeesSpec'''
         gNoMiscFeesSpec''' = FGSpec
            { gsLength = tNoMiscFees
            , gsSeperator = tMiscFeeAmt
            , gsBody = gNoMiscFeesBody''' }
            where
            gNoMiscFeesBody''' = 
               LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
               LT.insert (tnum tMiscFeeType) tMiscFeeType $
               LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis                LT.new

         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTrades''' = FIXTag
            { tName = "NoTrades"
            , tnum = tnum tNoTrades
            , tparser = gNoTradesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }

         gNoTradesP''' = groupP gNoTradesSpec'''
         gNoTradesSpec''' = FGSpec
            { gsLength = tNoTrades
            , gsSeperator = tTradeReportID
            , gsBody = gNoTradesBody''' }
            where
            gNoTradesBody''' = 
               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new

         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mCollateralInquiry :: FIXMessageSpec
mCollateralInquiry = FMSpec
   { msName = "CollateralInquiry"
   , msType = C.pack "BB"
   , msHeader = headerFIX44
   , msBody = mCollateralInquiryBody
   , msTrailer = trailerFIX44 }
   where
   mCollateralInquiryBody = 
      LT.insert (tnum tCollInquiryID) tCollInquiryID $
      LT.insert (tnum tNoCollInquiryQualifier) gNoCollInquiryQualifier''' $
      LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
      LT.insert (tnum tResponseTransportType) tResponseTransportType $
      LT.insert (tnum tResponseDestination) tResponseDestination $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tNoTrades) gNoTrades''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tMarginExcess) tMarginExcess $
      LT.insert (tnum tTotalNetValue) tTotalNetValue $
      LT.insert (tnum tCashOutstanding) tCashOutstanding $
      LT.insert (tnum tNoTrdRegTimestamps) gNoTrdRegTimestamps''' $
      LT.insert (tnum tSide) tSide $
      LT.insert (tnum tPrice) tPrice $
      LT.insert (tnum tPriceType) tPriceType $
      LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
      LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
      LT.insert (tnum tStartCash) tStartCash $
      LT.insert (tnum tEndCash) tEndCash $
      LT.insert (tnum tSpread) tSpread $
      LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
      LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
      LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
      LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
      LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
      LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
      LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
      LT.insert (tnum tNoStipulations) gNoStipulations''' $
      LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
      LT.insert (tnum tStandInstDbType) tStandInstDbType $
      LT.insert (tnum tStandInstDbName) tStandInstDbName $
      LT.insert (tnum tStandInstDbID) tStandInstDbID $
      LT.insert (tnum tNoDlvyInst) gNoDlvyInst''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoCollInquiryQualifier''' = FIXTag
            { tName = "NoCollInquiryQualifier"
            , tnum = tnum tNoCollInquiryQualifier
            , tparser = gNoCollInquiryQualifierP'''
            , arbitraryValue = arbibtraryFIXGroup gNoCollInquiryQualifierSpec''' }

         gNoCollInquiryQualifierP''' = groupP gNoCollInquiryQualifierSpec'''
         gNoCollInquiryQualifierSpec''' = FGSpec
            { gsLength = tNoCollInquiryQualifier
            , gsSeperator = tCollInquiryQualifier
            , gsBody = gNoCollInquiryQualifierBody''' }
            where
            gNoCollInquiryQualifierBody''' = 
               LT.new

         gNoDlvyInst''' = FIXTag
            { tName = "NoDlvyInst"
            , tnum = tnum tNoDlvyInst
            , tparser = gNoDlvyInstP'''
            , arbitraryValue = arbibtraryFIXGroup gNoDlvyInstSpec''' }

         gNoDlvyInstP''' = groupP gNoDlvyInstSpec'''
         gNoDlvyInstSpec''' = FGSpec
            { gsLength = tNoDlvyInst
            , gsSeperator = tSettlInstSource
            , gsBody = gNoDlvyInstBody''' }
            where
            gNoDlvyInstBody''' = 
               LT.insert (tnum tDlvyInstType) tDlvyInstType $
               LT.insert (tnum tNoSettlPartyIDs) gNoSettlPartyIDs''''''                LT.new
               where
                  gNoSettlPartyIDs'''''' = FIXTag
                     { tName = "NoSettlPartyIDs"
                     , tnum = tnum tNoSettlPartyIDs
                     , tparser = gNoSettlPartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoSettlPartyIDsSpec'''''' }

                  gNoSettlPartyIDsP'''''' = groupP gNoSettlPartyIDsSpec''''''
                  gNoSettlPartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoSettlPartyIDs
                     , gsSeperator = tSettlPartyID
                     , gsBody = gNoSettlPartyIDsBody'''''' }
                     where
                     gNoSettlPartyIDsBody'''''' = 
                        LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
                        LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
                        LT.insert (tnum tNoSettlPartySubIDs) gNoSettlPartySubIDs'''''''''                         LT.new
                        where
                           gNoSettlPartySubIDs''''''''' = FIXTag
                              { tName = "NoSettlPartySubIDs"
                              , tnum = tnum tNoSettlPartySubIDs
                              , tparser = gNoSettlPartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoSettlPartySubIDsSpec''''''''' }

                           gNoSettlPartySubIDsP''''''''' = groupP gNoSettlPartySubIDsSpec'''''''''
                           gNoSettlPartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoSettlPartySubIDs
                              , gsSeperator = tSettlPartySubID
                              , gsBody = gNoSettlPartySubIDsBody''''''''' }
                              where
                              gNoSettlPartySubIDsBody''''''''' = 
                                 LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType                                  LT.new



         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tExecID
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoStipulations''' = FIXTag
            { tName = "NoStipulations"
            , tnum = tnum tNoStipulations
            , tparser = gNoStipulationsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoStipulationsSpec''' }

         gNoStipulationsP''' = groupP gNoStipulationsSpec'''
         gNoStipulationsSpec''' = FGSpec
            { gsLength = tNoStipulations
            , gsSeperator = tStipulationType
            , gsBody = gNoStipulationsBody''' }
            where
            gNoStipulationsBody''' = 
               LT.insert (tnum tStipulationValue) tStipulationValue                LT.new

         gNoTrades''' = FIXTag
            { tName = "NoTrades"
            , tnum = tnum tNoTrades
            , tparser = gNoTradesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }

         gNoTradesP''' = groupP gNoTradesSpec'''
         gNoTradesSpec''' = FGSpec
            { gsLength = tNoTrades
            , gsSeperator = tTradeReportID
            , gsBody = gNoTradesBody''' }
            where
            gNoTradesBody''' = 
               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new

         gNoTrdRegTimestamps''' = FIXTag
            { tName = "NoTrdRegTimestamps"
            , tnum = tnum tNoTrdRegTimestamps
            , tparser = gNoTrdRegTimestampsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTrdRegTimestampsSpec''' }

         gNoTrdRegTimestampsP''' = groupP gNoTrdRegTimestampsSpec'''
         gNoTrdRegTimestampsSpec''' = FGSpec
            { gsLength = tNoTrdRegTimestamps
            , gsSeperator = tTrdRegTimestamp
            , gsBody = gNoTrdRegTimestampsBody''' }
            where
            gNoTrdRegTimestampsBody''' = 
               LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
               LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mNetworkCounterpartySystemStatusRequest :: FIXMessageSpec
mNetworkCounterpartySystemStatusRequest = FMSpec
   { msName = "NetworkCounterpartySystemStatusRequest"
   , msType = C.pack "BC"
   , msHeader = headerFIX44
   , msBody = mNetworkCounterpartySystemStatusRequestBody
   , msTrailer = trailerFIX44 }
   where
   mNetworkCounterpartySystemStatusRequestBody = 
      LT.insert (tnum tNetworkRequestType) tNetworkRequestType $
      LT.insert (tnum tNetworkRequestID) tNetworkRequestID $
      LT.insert (tnum tNoCompIDs) gNoCompIDs'''       LT.new
      where
         gNoCompIDs''' = FIXTag
            { tName = "NoCompIDs"
            , tnum = tnum tNoCompIDs
            , tparser = gNoCompIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoCompIDsSpec''' }

         gNoCompIDsP''' = groupP gNoCompIDsSpec'''
         gNoCompIDsSpec''' = FGSpec
            { gsLength = tNoCompIDs
            , gsSeperator = tRefCompID
            , gsBody = gNoCompIDsBody''' }
            where
            gNoCompIDsBody''' = 
               LT.insert (tnum tRefSubID) tRefSubID $
               LT.insert (tnum tLocationID) tLocationID $
               LT.insert (tnum tDeskID) tDeskID                LT.new



mNetworkCounterpartySystemStatusResponse :: FIXMessageSpec
mNetworkCounterpartySystemStatusResponse = FMSpec
   { msName = "NetworkCounterpartySystemStatusResponse"
   , msType = C.pack "BD"
   , msHeader = headerFIX44
   , msBody = mNetworkCounterpartySystemStatusResponseBody
   , msTrailer = trailerFIX44 }
   where
   mNetworkCounterpartySystemStatusResponseBody = 
      LT.insert (tnum tNetworkStatusResponseType) tNetworkStatusResponseType $
      LT.insert (tnum tNetworkRequestID) tNetworkRequestID $
      LT.insert (tnum tNetworkResponseID) tNetworkResponseID $
      LT.insert (tnum tLastNetworkResponseID) tLastNetworkResponseID $
      LT.insert (tnum tNoCompIDs) gNoCompIDs'''       LT.new
      where
         gNoCompIDs''' = FIXTag
            { tName = "NoCompIDs"
            , tnum = tnum tNoCompIDs
            , tparser = gNoCompIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoCompIDsSpec''' }

         gNoCompIDsP''' = groupP gNoCompIDsSpec'''
         gNoCompIDsSpec''' = FGSpec
            { gsLength = tNoCompIDs
            , gsSeperator = tRefCompID
            , gsBody = gNoCompIDsBody''' }
            where
            gNoCompIDsBody''' = 
               LT.insert (tnum tRefSubID) tRefSubID $
               LT.insert (tnum tLocationID) tLocationID $
               LT.insert (tnum tDeskID) tDeskID $
               LT.insert (tnum tStatusValue) tStatusValue $
               LT.insert (tnum tStatusText) tStatusText                LT.new



mUserRequest :: FIXMessageSpec
mUserRequest = FMSpec
   { msName = "UserRequest"
   , msType = C.pack "BE"
   , msHeader = headerFIX44
   , msBody = mUserRequestBody
   , msTrailer = trailerFIX44 }
   where
   mUserRequestBody = 
      LT.insert (tnum tUserRequestID) tUserRequestID $
      LT.insert (tnum tUserRequestType) tUserRequestType $
      LT.insert (tnum tUsername) tUsername $
      LT.insert (tnum tPassword) tPassword $
      LT.insert (tnum tNewPassword) tNewPassword $
      LT.insert (tnum tRawDataLength) tRawDataLength $
      LT.insert (tnum tRawData) tRawData       LT.new


mUserResponse :: FIXMessageSpec
mUserResponse = FMSpec
   { msName = "UserResponse"
   , msType = C.pack "BF"
   , msHeader = headerFIX44
   , msBody = mUserResponseBody
   , msTrailer = trailerFIX44 }
   where
   mUserResponseBody = 
      LT.insert (tnum tUserRequestID) tUserRequestID $
      LT.insert (tnum tUsername) tUsername $
      LT.insert (tnum tUserStatus) tUserStatus $
      LT.insert (tnum tUserStatusText) tUserStatusText       LT.new


mCollateralInquiryAck :: FIXMessageSpec
mCollateralInquiryAck = FMSpec
   { msName = "CollateralInquiryAck"
   , msType = C.pack "BG"
   , msHeader = headerFIX44
   , msBody = mCollateralInquiryAckBody
   , msTrailer = trailerFIX44 }
   where
   mCollateralInquiryAckBody = 
      LT.insert (tnum tCollInquiryID) tCollInquiryID $
      LT.insert (tnum tCollInquiryStatus) tCollInquiryStatus $
      LT.insert (tnum tCollInquiryResult) tCollInquiryResult $
      LT.insert (tnum tNoCollInquiryQualifier) gNoCollInquiryQualifier''' $
      LT.insert (tnum tTotNumReports) tTotNumReports $
      LT.insert (tnum tNoPartyIDs) gNoPartyIDs''' $
      LT.insert (tnum tAccount) tAccount $
      LT.insert (tnum tAccountType) tAccountType $
      LT.insert (tnum tClOrdID) tClOrdID $
      LT.insert (tnum tOrderID) tOrderID $
      LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
      LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
      LT.insert (tnum tNoExecs) gNoExecs''' $
      LT.insert (tnum tNoTrades) gNoTrades''' $
      LT.insert (tnum tSymbol) tSymbol $
      LT.insert (tnum tSymbolSfx) tSymbolSfx $
      LT.insert (tnum tSecurityID) tSecurityID $
      LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
      LT.insert (tnum tNoSecurityAltID) gNoSecurityAltID''' $
      LT.insert (tnum tProduct) tProduct $
      LT.insert (tnum tCFICode) tCFICode $
      LT.insert (tnum tSecurityType) tSecurityType $
      LT.insert (tnum tSecuritySubType) tSecuritySubType $
      LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
      LT.insert (tnum tMaturityDate) tMaturityDate $
      LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
      LT.insert (tnum tIssueDate) tIssueDate $
      LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
      LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
      LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
      LT.insert (tnum tFactor) tFactor $
      LT.insert (tnum tCreditRating) tCreditRating $
      LT.insert (tnum tInstrRegistry) tInstrRegistry $
      LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
      LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
      LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
      LT.insert (tnum tRedemptionDate) tRedemptionDate $
      LT.insert (tnum tStrikePrice) tStrikePrice $
      LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
      LT.insert (tnum tOptAttribute) tOptAttribute $
      LT.insert (tnum tContractMultiplier) tContractMultiplier $
      LT.insert (tnum tCouponRate) tCouponRate $
      LT.insert (tnum tSecurityExchange) tSecurityExchange $
      LT.insert (tnum tIssuer) tIssuer $
      LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
      LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
      LT.insert (tnum tSecurityDesc) tSecurityDesc $
      LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
      LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
      LT.insert (tnum tPool) tPool $
      LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
      LT.insert (tnum tCPProgram) tCPProgram $
      LT.insert (tnum tCPRegType) tCPRegType $
      LT.insert (tnum tNoEvents) gNoEvents''' $
      LT.insert (tnum tDatedDate) tDatedDate $
      LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
      LT.insert (tnum tAgreementDesc) tAgreementDesc $
      LT.insert (tnum tAgreementID) tAgreementID $
      LT.insert (tnum tAgreementDate) tAgreementDate $
      LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
      LT.insert (tnum tTerminationType) tTerminationType $
      LT.insert (tnum tStartDate) tStartDate $
      LT.insert (tnum tEndDate) tEndDate $
      LT.insert (tnum tDeliveryType) tDeliveryType $
      LT.insert (tnum tMarginRatio) tMarginRatio $
      LT.insert (tnum tSettlDate) tSettlDate $
      LT.insert (tnum tQuantity) tQuantity $
      LT.insert (tnum tQtyType) tQtyType $
      LT.insert (tnum tCurrency) tCurrency $
      LT.insert (tnum tNoLegs) gNoLegs''' $
      LT.insert (tnum tNoUnderlyings) gNoUnderlyings''' $
      LT.insert (tnum tTradingSessionID) tTradingSessionID $
      LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
      LT.insert (tnum tSettlSessID) tSettlSessID $
      LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
      LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
      LT.insert (tnum tResponseTransportType) tResponseTransportType $
      LT.insert (tnum tResponseDestination) tResponseDestination $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoCollInquiryQualifier''' = FIXTag
            { tName = "NoCollInquiryQualifier"
            , tnum = tnum tNoCollInquiryQualifier
            , tparser = gNoCollInquiryQualifierP'''
            , arbitraryValue = arbibtraryFIXGroup gNoCollInquiryQualifierSpec''' }

         gNoCollInquiryQualifierP''' = groupP gNoCollInquiryQualifierSpec'''
         gNoCollInquiryQualifierSpec''' = FGSpec
            { gsLength = tNoCollInquiryQualifier
            , gsSeperator = tCollInquiryQualifier
            , gsBody = gNoCollInquiryQualifierBody''' }
            where
            gNoCollInquiryQualifierBody''' = 
               LT.new

         gNoEvents''' = FIXTag
            { tName = "NoEvents"
            , tnum = tnum tNoEvents
            , tparser = gNoEventsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoEventsSpec''' }

         gNoEventsP''' = groupP gNoEventsSpec'''
         gNoEventsSpec''' = FGSpec
            { gsLength = tNoEvents
            , gsSeperator = tEventType
            , gsBody = gNoEventsBody''' }
            where
            gNoEventsBody''' = 
               LT.insert (tnum tEventDate) tEventDate $
               LT.insert (tnum tEventPx) tEventPx $
               LT.insert (tnum tEventText) tEventText                LT.new

         gNoExecs''' = FIXTag
            { tName = "NoExecs"
            , tnum = tnum tNoExecs
            , tparser = gNoExecsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoExecsSpec''' }

         gNoExecsP''' = groupP gNoExecsSpec'''
         gNoExecsSpec''' = FGSpec
            { gsLength = tNoExecs
            , gsSeperator = tExecID
            , gsBody = gNoExecsBody''' }
            where
            gNoExecsBody''' = 
               LT.new

         gNoLegs''' = FIXTag
            { tName = "NoLegs"
            , tnum = tnum tNoLegs
            , tparser = gNoLegsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoLegsSpec''' }

         gNoLegsP''' = groupP gNoLegsSpec'''
         gNoLegsSpec''' = FGSpec
            { gsLength = tNoLegs
            , gsSeperator = tLegSymbol
            , gsBody = gNoLegsBody''' }
            where
            gNoLegsBody''' = 
               LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
               LT.insert (tnum tLegSecurityID) tLegSecurityID $
               LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
               LT.insert (tnum tNoLegSecurityAltID) gNoLegSecurityAltID'''''' $
               LT.insert (tnum tLegProduct) tLegProduct $
               LT.insert (tnum tLegCFICode) tLegCFICode $
               LT.insert (tnum tLegSecurityType) tLegSecurityType $
               LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
               LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
               LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
               LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
               LT.insert (tnum tLegIssueDate) tLegIssueDate $
               LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
               LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
               LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
               LT.insert (tnum tLegFactor) tLegFactor $
               LT.insert (tnum tLegCreditRating) tLegCreditRating $
               LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
               LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
               LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
               LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
               LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
               LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
               LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
               LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
               LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
               LT.insert (tnum tLegCouponRate) tLegCouponRate $
               LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
               LT.insert (tnum tLegIssuer) tLegIssuer $
               LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
               LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
               LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
               LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
               LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
               LT.insert (tnum tLegRatioQty) tLegRatioQty $
               LT.insert (tnum tLegSide) tLegSide $
               LT.insert (tnum tLegCurrency) tLegCurrency $
               LT.insert (tnum tLegPool) tLegPool $
               LT.insert (tnum tLegDatedDate) tLegDatedDate $
               LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
               LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate                LT.new
               where
                  gNoLegSecurityAltID'''''' = FIXTag
                     { tName = "NoLegSecurityAltID"
                     , tnum = tnum tNoLegSecurityAltID
                     , tparser = gNoLegSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoLegSecurityAltIDSpec'''''' }

                  gNoLegSecurityAltIDP'''''' = groupP gNoLegSecurityAltIDSpec''''''
                  gNoLegSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoLegSecurityAltID
                     , gsSeperator = tLegSecurityAltID
                     , gsBody = gNoLegSecurityAltIDBody'''''' }
                     where
                     gNoLegSecurityAltIDBody'''''' = 
                        LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource                         LT.new


         gNoPartyIDs''' = FIXTag
            { tName = "NoPartyIDs"
            , tnum = tnum tNoPartyIDs
            , tparser = gNoPartyIDsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoPartyIDsSpec''' }

         gNoPartyIDsP''' = groupP gNoPartyIDsSpec'''
         gNoPartyIDsSpec''' = FGSpec
            { gsLength = tNoPartyIDs
            , gsSeperator = tPartyID
            , gsBody = gNoPartyIDsBody''' }
            where
            gNoPartyIDsBody''' = 
               LT.insert (tnum tPartyIDSource) tPartyIDSource $
               LT.insert (tnum tPartyRole) tPartyRole $
               LT.insert (tnum tNoPartySubIDs) gNoPartySubIDs''''''                LT.new
               where
                  gNoPartySubIDs'''''' = FIXTag
                     { tName = "NoPartySubIDs"
                     , tnum = tnum tNoPartySubIDs
                     , tparser = gNoPartySubIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoPartySubIDsSpec'''''' }

                  gNoPartySubIDsP'''''' = groupP gNoPartySubIDsSpec''''''
                  gNoPartySubIDsSpec'''''' = FGSpec
                     { gsLength = tNoPartySubIDs
                     , gsSeperator = tPartySubID
                     , gsBody = gNoPartySubIDsBody'''''' }
                     where
                     gNoPartySubIDsBody'''''' = 
                        LT.insert (tnum tPartySubIDType) tPartySubIDType                         LT.new


         gNoSecurityAltID''' = FIXTag
            { tName = "NoSecurityAltID"
            , tnum = tnum tNoSecurityAltID
            , tparser = gNoSecurityAltIDP'''
            , arbitraryValue = arbibtraryFIXGroup gNoSecurityAltIDSpec''' }

         gNoSecurityAltIDP''' = groupP gNoSecurityAltIDSpec'''
         gNoSecurityAltIDSpec''' = FGSpec
            { gsLength = tNoSecurityAltID
            , gsSeperator = tSecurityAltID
            , gsBody = gNoSecurityAltIDBody''' }
            where
            gNoSecurityAltIDBody''' = 
               LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource                LT.new

         gNoTrades''' = FIXTag
            { tName = "NoTrades"
            , tnum = tnum tNoTrades
            , tparser = gNoTradesP'''
            , arbitraryValue = arbibtraryFIXGroup gNoTradesSpec''' }

         gNoTradesP''' = groupP gNoTradesSpec'''
         gNoTradesSpec''' = FGSpec
            { gsLength = tNoTrades
            , gsSeperator = tTradeReportID
            , gsBody = gNoTradesBody''' }
            where
            gNoTradesBody''' = 
               LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID                LT.new

         gNoUnderlyings''' = FIXTag
            { tName = "NoUnderlyings"
            , tnum = tnum tNoUnderlyings
            , tparser = gNoUnderlyingsP'''
            , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingsSpec''' }

         gNoUnderlyingsP''' = groupP gNoUnderlyingsSpec'''
         gNoUnderlyingsSpec''' = FGSpec
            { gsLength = tNoUnderlyings
            , gsSeperator = tUnderlyingSymbol
            , gsBody = gNoUnderlyingsBody''' }
            where
            gNoUnderlyingsBody''' = 
               LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
               LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
               LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
               LT.insert (tnum tNoUnderlyingSecurityAltID) gNoUnderlyingSecurityAltID'''''' $
               LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
               LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
               LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
               LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
               LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
               LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
               LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
               LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
               LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
               LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
               LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
               LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
               LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
               LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
               LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
               LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
               LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
               LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
               LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
               LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
               LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
               LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
               LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
               LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
               LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
               LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
               LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
               LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
               LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
               LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
               LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
               LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
               LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
               LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
               LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
               LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
               LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
               LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
               LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
               LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
               LT.insert (tnum tNoUnderlyingStips) gNoUnderlyingStips''''''                LT.new
               where
                  gNoUnderlyingSecurityAltID'''''' = FIXTag
                     { tName = "NoUnderlyingSecurityAltID"
                     , tnum = tnum tNoUnderlyingSecurityAltID
                     , tparser = gNoUnderlyingSecurityAltIDP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingSecurityAltIDSpec'''''' }

                  gNoUnderlyingSecurityAltIDP'''''' = groupP gNoUnderlyingSecurityAltIDSpec''''''
                  gNoUnderlyingSecurityAltIDSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingSecurityAltID
                     , gsSeperator = tUnderlyingSecurityAltID
                     , gsBody = gNoUnderlyingSecurityAltIDBody'''''' }
                     where
                     gNoUnderlyingSecurityAltIDBody'''''' = 
                        LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource                         LT.new

                  gNoUnderlyingStips'''''' = FIXTag
                     { tName = "NoUnderlyingStips"
                     , tnum = tnum tNoUnderlyingStips
                     , tparser = gNoUnderlyingStipsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoUnderlyingStipsSpec'''''' }

                  gNoUnderlyingStipsP'''''' = groupP gNoUnderlyingStipsSpec''''''
                  gNoUnderlyingStipsSpec'''''' = FGSpec
                     { gsLength = tNoUnderlyingStips
                     , gsSeperator = tUnderlyingStipType
                     , gsBody = gNoUnderlyingStipsBody'''''' }
                     where
                     gNoUnderlyingStipsBody'''''' = 
                        LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue                         LT.new




mConfirmationRequest :: FIXMessageSpec
mConfirmationRequest = FMSpec
   { msName = "ConfirmationRequest"
   , msType = C.pack "BH"
   , msHeader = headerFIX44
   , msBody = mConfirmationRequestBody
   , msTrailer = trailerFIX44 }
   where
   mConfirmationRequestBody = 
      LT.insert (tnum tConfirmReqID) tConfirmReqID $
      LT.insert (tnum tConfirmType) tConfirmType $
      LT.insert (tnum tNoOrders) gNoOrders''' $
      LT.insert (tnum tAllocID) tAllocID $
      LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $
      LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
      LT.insert (tnum tTransactTime) tTransactTime $
      LT.insert (tnum tAllocAccount) tAllocAccount $
      LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
      LT.insert (tnum tAllocAccountType) tAllocAccountType $
      LT.insert (tnum tText) tText $
      LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
      LT.insert (tnum tEncodedText) tEncodedText       LT.new
      where
         gNoOrders''' = FIXTag
            { tName = "NoOrders"
            , tnum = tnum tNoOrders
            , tparser = gNoOrdersP'''
            , arbitraryValue = arbibtraryFIXGroup gNoOrdersSpec''' }

         gNoOrdersP''' = groupP gNoOrdersSpec'''
         gNoOrdersSpec''' = FGSpec
            { gsLength = tNoOrders
            , gsSeperator = tClOrdID
            , gsBody = gNoOrdersBody''' }
            where
            gNoOrdersBody''' = 
               LT.insert (tnum tOrderID) tOrderID $
               LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
               LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
               LT.insert (tnum tListID) tListID $
               LT.insert (tnum tNoNested2PartyIDs) gNoNested2PartyIDs'''''' $
               LT.insert (tnum tOrderQty) tOrderQty $
               LT.insert (tnum tOrderAvgPx) tOrderAvgPx $
               LT.insert (tnum tOrderBookingQty) tOrderBookingQty                LT.new
               where
                  gNoNested2PartyIDs'''''' = FIXTag
                     { tName = "NoNested2PartyIDs"
                     , tnum = tnum tNoNested2PartyIDs
                     , tparser = gNoNested2PartyIDsP''''''
                     , arbitraryValue = arbibtraryFIXGroup gNoNested2PartyIDsSpec'''''' }

                  gNoNested2PartyIDsP'''''' = groupP gNoNested2PartyIDsSpec''''''
                  gNoNested2PartyIDsSpec'''''' = FGSpec
                     { gsLength = tNoNested2PartyIDs
                     , gsSeperator = tNested2PartyID
                     , gsBody = gNoNested2PartyIDsBody'''''' }
                     where
                     gNoNested2PartyIDsBody'''''' = 
                        LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
                        LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
                        LT.insert (tnum tNoNested2PartySubIDs) gNoNested2PartySubIDs'''''''''                         LT.new
                        where
                           gNoNested2PartySubIDs''''''''' = FIXTag
                              { tName = "NoNested2PartySubIDs"
                              , tnum = tnum tNoNested2PartySubIDs
                              , tparser = gNoNested2PartySubIDsP'''''''''
                              , arbitraryValue = arbibtraryFIXGroup gNoNested2PartySubIDsSpec''''''''' }

                           gNoNested2PartySubIDsP''''''''' = groupP gNoNested2PartySubIDsSpec'''''''''
                           gNoNested2PartySubIDsSpec''''''''' = FGSpec
                              { gsLength = tNoNested2PartySubIDs
                              , gsSeperator = tNested2PartySubID
                              , gsBody = gNoNested2PartySubIDsBody''''''''' }
                              where
                              gNoNested2PartySubIDsBody''''''''' = 
                                 LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType                                  LT.new





fix44 :: FIXSpec
fix44 = FSpec
   { fsVersion = "FIX.4.4"
   , fsHeader = headerFIX44
   , fsTrailer = trailerFIX44
   , fsMessages = fix44Messages 
   , fsTags = fix44Tags }
   where
      fix44Messages =
          LT.insert (msType mHeartbeat) mHeartbeat $
          LT.insert (msType mTestRequest) mTestRequest $
          LT.insert (msType mResendRequest) mResendRequest $
          LT.insert (msType mReject) mReject $
          LT.insert (msType mSequenceReset) mSequenceReset $
          LT.insert (msType mLogout) mLogout $
          LT.insert (msType mIOI) mIOI $
          LT.insert (msType mAdvertisement) mAdvertisement $
          LT.insert (msType mExecutionReport) mExecutionReport $
          LT.insert (msType mOrderCancelReject) mOrderCancelReject $
          LT.insert (msType mLogon) mLogon $
          LT.insert (msType mNews) mNews $
          LT.insert (msType mEmail) mEmail $
          LT.insert (msType mNewOrderSingle) mNewOrderSingle $
          LT.insert (msType mNewOrderList) mNewOrderList $
          LT.insert (msType mOrderCancelRequest) mOrderCancelRequest $
          LT.insert (msType mOrderCancelReplaceRequest) mOrderCancelReplaceRequest $
          LT.insert (msType mOrderStatusRequest) mOrderStatusRequest $
          LT.insert (msType mAllocationInstruction) mAllocationInstruction $
          LT.insert (msType mListCancelRequest) mListCancelRequest $
          LT.insert (msType mListExecute) mListExecute $
          LT.insert (msType mListStatusRequest) mListStatusRequest $
          LT.insert (msType mListStatus) mListStatus $
          LT.insert (msType mAllocationInstructionAck) mAllocationInstructionAck $
          LT.insert (msType mDontKnowTrade) mDontKnowTrade $
          LT.insert (msType mQuoteRequest) mQuoteRequest $
          LT.insert (msType mQuote) mQuote $
          LT.insert (msType mSettlementInstructions) mSettlementInstructions $
          LT.insert (msType mMarketDataRequest) mMarketDataRequest $
          LT.insert (msType mMarketDataSnapshotFullRefresh) mMarketDataSnapshotFullRefresh $
          LT.insert (msType mMarketDataIncrementalRefresh) mMarketDataIncrementalRefresh $
          LT.insert (msType mMarketDataRequestReject) mMarketDataRequestReject $
          LT.insert (msType mQuoteCancel) mQuoteCancel $
          LT.insert (msType mQuoteStatusRequest) mQuoteStatusRequest $
          LT.insert (msType mMassQuoteAcknowledgement) mMassQuoteAcknowledgement $
          LT.insert (msType mSecurityDefinitionRequest) mSecurityDefinitionRequest $
          LT.insert (msType mSecurityDefinition) mSecurityDefinition $
          LT.insert (msType mSecurityStatusRequest) mSecurityStatusRequest $
          LT.insert (msType mSecurityStatus) mSecurityStatus $
          LT.insert (msType mTradingSessionStatusRequest) mTradingSessionStatusRequest $
          LT.insert (msType mTradingSessionStatus) mTradingSessionStatus $
          LT.insert (msType mMassQuote) mMassQuote $
          LT.insert (msType mBusinessMessageReject) mBusinessMessageReject $
          LT.insert (msType mBidRequest) mBidRequest $
          LT.insert (msType mBidResponse) mBidResponse $
          LT.insert (msType mListStrikePrice) mListStrikePrice $
          LT.insert (msType mRegistrationInstructions) mRegistrationInstructions $
          LT.insert (msType mRegistrationInstructionsResponse) mRegistrationInstructionsResponse $
          LT.insert (msType mOrderMassCancelRequest) mOrderMassCancelRequest $
          LT.insert (msType mOrderMassCancelReport) mOrderMassCancelReport $
          LT.insert (msType mNewOrderCross) mNewOrderCross $
          LT.insert (msType mCrossOrderCancelReplaceRequest) mCrossOrderCancelReplaceRequest $
          LT.insert (msType mCrossOrderCancelRequest) mCrossOrderCancelRequest $
          LT.insert (msType mSecurityTypeRequest) mSecurityTypeRequest $
          LT.insert (msType mSecurityTypes) mSecurityTypes $
          LT.insert (msType mSecurityListRequest) mSecurityListRequest $
          LT.insert (msType mSecurityList) mSecurityList $
          LT.insert (msType mDerivativeSecurityListRequest) mDerivativeSecurityListRequest $
          LT.insert (msType mDerivativeSecurityList) mDerivativeSecurityList $
          LT.insert (msType mNewOrderMultileg) mNewOrderMultileg $
          LT.insert (msType mMultilegOrderCancelReplace) mMultilegOrderCancelReplace $
          LT.insert (msType mTradeCaptureReportRequest) mTradeCaptureReportRequest $
          LT.insert (msType mTradeCaptureReport) mTradeCaptureReport $
          LT.insert (msType mOrderMassStatusRequest) mOrderMassStatusRequest $
          LT.insert (msType mQuoteRequestReject) mQuoteRequestReject $
          LT.insert (msType mRFQRequest) mRFQRequest $
          LT.insert (msType mQuoteStatusReport) mQuoteStatusReport $
          LT.insert (msType mQuoteResponse) mQuoteResponse $
          LT.insert (msType mConfirmation) mConfirmation $
          LT.insert (msType mPositionMaintenanceRequest) mPositionMaintenanceRequest $
          LT.insert (msType mPositionMaintenanceReport) mPositionMaintenanceReport $
          LT.insert (msType mRequestForPositions) mRequestForPositions $
          LT.insert (msType mRequestForPositionsAck) mRequestForPositionsAck $
          LT.insert (msType mPositionReport) mPositionReport $
          LT.insert (msType mTradeCaptureReportRequestAck) mTradeCaptureReportRequestAck $
          LT.insert (msType mTradeCaptureReportAck) mTradeCaptureReportAck $
          LT.insert (msType mAllocationReport) mAllocationReport $
          LT.insert (msType mAllocationReportAck) mAllocationReportAck $
          LT.insert (msType mConfirmationAck) mConfirmationAck $
          LT.insert (msType mSettlementInstructionRequest) mSettlementInstructionRequest $
          LT.insert (msType mAssignmentReport) mAssignmentReport $
          LT.insert (msType mCollateralRequest) mCollateralRequest $
          LT.insert (msType mCollateralAssignment) mCollateralAssignment $
          LT.insert (msType mCollateralResponse) mCollateralResponse $
          LT.insert (msType mCollateralReport) mCollateralReport $
          LT.insert (msType mCollateralInquiry) mCollateralInquiry $
          LT.insert (msType mNetworkCounterpartySystemStatusRequest) mNetworkCounterpartySystemStatusRequest $
          LT.insert (msType mNetworkCounterpartySystemStatusResponse) mNetworkCounterpartySystemStatusResponse $
          LT.insert (msType mUserRequest) mUserRequest $
          LT.insert (msType mUserResponse) mUserResponse $
          LT.insert (msType mCollateralInquiryAck) mCollateralInquiryAck $
          LT.insert (msType mConfirmationRequest) mConfirmationRequest           LT.new 
      fix44Tags =
          LT.insert (tnum tAccount) tAccount $
          LT.insert (tnum tAdvId) tAdvId $
          LT.insert (tnum tAdvRefID) tAdvRefID $
          LT.insert (tnum tAdvSide) tAdvSide $
          LT.insert (tnum tAdvTransType) tAdvTransType $
          LT.insert (tnum tAvgPx) tAvgPx $
          LT.insert (tnum tBeginSeqNo) tBeginSeqNo $
          LT.insert (tnum tBeginString) tBeginString $
          LT.insert (tnum tBodyLength) tBodyLength $
          LT.insert (tnum tCheckSum) tCheckSum $
          LT.insert (tnum tClOrdID) tClOrdID $
          LT.insert (tnum tCommission) tCommission $
          LT.insert (tnum tCommType) tCommType $
          LT.insert (tnum tCumQty) tCumQty $
          LT.insert (tnum tCurrency) tCurrency $
          LT.insert (tnum tEndSeqNo) tEndSeqNo $
          LT.insert (tnum tExecID) tExecID $
          LT.insert (tnum tExecInst) tExecInst $
          LT.insert (tnum tExecRefID) tExecRefID $
          LT.insert (tnum tExecTransType) tExecTransType $
          LT.insert (tnum tHandlInst) tHandlInst $
          LT.insert (tnum tSecurityIDSource) tSecurityIDSource $
          LT.insert (tnum tIOIID) tIOIID $
          LT.insert (tnum tIOIOthSvc) tIOIOthSvc $
          LT.insert (tnum tIOIQltyInd) tIOIQltyInd $
          LT.insert (tnum tIOIRefID) tIOIRefID $
          LT.insert (tnum tIOIQty) tIOIQty $
          LT.insert (tnum tIOITransType) tIOITransType $
          LT.insert (tnum tLastCapacity) tLastCapacity $
          LT.insert (tnum tLastMkt) tLastMkt $
          LT.insert (tnum tLastPx) tLastPx $
          LT.insert (tnum tLastQty) tLastQty $
          LT.insert (tnum tNoLinesOfText) tNoLinesOfText $
          LT.insert (tnum tMsgSeqNum) tMsgSeqNum $
          LT.insert (tnum tMsgType) tMsgType $
          LT.insert (tnum tNewSeqNo) tNewSeqNo $
          LT.insert (tnum tOrderID) tOrderID $
          LT.insert (tnum tOrderQty) tOrderQty $
          LT.insert (tnum tOrdStatus) tOrdStatus $
          LT.insert (tnum tOrdType) tOrdType $
          LT.insert (tnum tOrigClOrdID) tOrigClOrdID $
          LT.insert (tnum tOrigTime) tOrigTime $
          LT.insert (tnum tPossDupFlag) tPossDupFlag $
          LT.insert (tnum tPrice) tPrice $
          LT.insert (tnum tRefSeqNum) tRefSeqNum $
          LT.insert (tnum tRelatdSym) tRelatdSym $
          LT.insert (tnum tRule80A) tRule80A $
          LT.insert (tnum tSecurityID) tSecurityID $
          LT.insert (tnum tSenderCompID) tSenderCompID $
          LT.insert (tnum tSenderSubID) tSenderSubID $
          LT.insert (tnum tSendingDate) tSendingDate $
          LT.insert (tnum tSendingTime) tSendingTime $
          LT.insert (tnum tQuantity) tQuantity $
          LT.insert (tnum tSide) tSide $
          LT.insert (tnum tSymbol) tSymbol $
          LT.insert (tnum tTargetCompID) tTargetCompID $
          LT.insert (tnum tTargetSubID) tTargetSubID $
          LT.insert (tnum tText) tText $
          LT.insert (tnum tTimeInForce) tTimeInForce $
          LT.insert (tnum tTransactTime) tTransactTime $
          LT.insert (tnum tUrgency) tUrgency $
          LT.insert (tnum tValidUntilTime) tValidUntilTime $
          LT.insert (tnum tSettlType) tSettlType $
          LT.insert (tnum tSettlDate) tSettlDate $
          LT.insert (tnum tSymbolSfx) tSymbolSfx $
          LT.insert (tnum tListID) tListID $
          LT.insert (tnum tListSeqNo) tListSeqNo $
          LT.insert (tnum tTotNoOrders) tTotNoOrders $
          LT.insert (tnum tListExecInst) tListExecInst $
          LT.insert (tnum tAllocID) tAllocID $
          LT.insert (tnum tAllocTransType) tAllocTransType $
          LT.insert (tnum tRefAllocID) tRefAllocID $
          LT.insert (tnum tNoOrders) tNoOrders $
          LT.insert (tnum tAvgPxPrecision) tAvgPxPrecision $
          LT.insert (tnum tTradeDate) tTradeDate $
          LT.insert (tnum tExecBroker) tExecBroker $
          LT.insert (tnum tPositionEffect) tPositionEffect $
          LT.insert (tnum tNoAllocs) tNoAllocs $
          LT.insert (tnum tAllocAccount) tAllocAccount $
          LT.insert (tnum tAllocQty) tAllocQty $
          LT.insert (tnum tProcessCode) tProcessCode $
          LT.insert (tnum tNoRpts) tNoRpts $
          LT.insert (tnum tRptSeq) tRptSeq $
          LT.insert (tnum tCxlQty) tCxlQty $
          LT.insert (tnum tNoDlvyInst) tNoDlvyInst $
          LT.insert (tnum tDlvyInst) tDlvyInst $
          LT.insert (tnum tAllocStatus) tAllocStatus $
          LT.insert (tnum tAllocRejCode) tAllocRejCode $
          LT.insert (tnum tSignature) tSignature $
          LT.insert (tnum tSecureDataLen) tSecureDataLen $
          LT.insert (tnum tSecureData) tSecureData $
          LT.insert (tnum tBrokerOfCredit) tBrokerOfCredit $
          LT.insert (tnum tSignatureLength) tSignatureLength $
          LT.insert (tnum tEmailType) tEmailType $
          LT.insert (tnum tRawDataLength) tRawDataLength $
          LT.insert (tnum tRawData) tRawData $
          LT.insert (tnum tPossResend) tPossResend $
          LT.insert (tnum tEncryptMethod) tEncryptMethod $
          LT.insert (tnum tStopPx) tStopPx $
          LT.insert (tnum tExDestination) tExDestination $
          LT.insert (tnum tCxlRejReason) tCxlRejReason $
          LT.insert (tnum tOrdRejReason) tOrdRejReason $
          LT.insert (tnum tIOIQualifier) tIOIQualifier $
          LT.insert (tnum tWaveNo) tWaveNo $
          LT.insert (tnum tIssuer) tIssuer $
          LT.insert (tnum tSecurityDesc) tSecurityDesc $
          LT.insert (tnum tHeartBtInt) tHeartBtInt $
          LT.insert (tnum tClientID) tClientID $
          LT.insert (tnum tMinQty) tMinQty $
          LT.insert (tnum tMaxFloor) tMaxFloor $
          LT.insert (tnum tTestReqID) tTestReqID $
          LT.insert (tnum tReportToExch) tReportToExch $
          LT.insert (tnum tLocateReqd) tLocateReqd $
          LT.insert (tnum tOnBehalfOfCompID) tOnBehalfOfCompID $
          LT.insert (tnum tOnBehalfOfSubID) tOnBehalfOfSubID $
          LT.insert (tnum tQuoteID) tQuoteID $
          LT.insert (tnum tNetMoney) tNetMoney $
          LT.insert (tnum tSettlCurrAmt) tSettlCurrAmt $
          LT.insert (tnum tSettlCurrency) tSettlCurrency $
          LT.insert (tnum tForexReq) tForexReq $
          LT.insert (tnum tOrigSendingTime) tOrigSendingTime $
          LT.insert (tnum tGapFillFlag) tGapFillFlag $
          LT.insert (tnum tNoExecs) tNoExecs $
          LT.insert (tnum tCxlType) tCxlType $
          LT.insert (tnum tExpireTime) tExpireTime $
          LT.insert (tnum tDKReason) tDKReason $
          LT.insert (tnum tDeliverToCompID) tDeliverToCompID $
          LT.insert (tnum tDeliverToSubID) tDeliverToSubID $
          LT.insert (tnum tIOINaturalFlag) tIOINaturalFlag $
          LT.insert (tnum tQuoteReqID) tQuoteReqID $
          LT.insert (tnum tBidPx) tBidPx $
          LT.insert (tnum tOfferPx) tOfferPx $
          LT.insert (tnum tBidSize) tBidSize $
          LT.insert (tnum tOfferSize) tOfferSize $
          LT.insert (tnum tNoMiscFees) tNoMiscFees $
          LT.insert (tnum tMiscFeeAmt) tMiscFeeAmt $
          LT.insert (tnum tMiscFeeCurr) tMiscFeeCurr $
          LT.insert (tnum tMiscFeeType) tMiscFeeType $
          LT.insert (tnum tPrevClosePx) tPrevClosePx $
          LT.insert (tnum tResetSeqNumFlag) tResetSeqNumFlag $
          LT.insert (tnum tSenderLocationID) tSenderLocationID $
          LT.insert (tnum tTargetLocationID) tTargetLocationID $
          LT.insert (tnum tOnBehalfOfLocationID) tOnBehalfOfLocationID $
          LT.insert (tnum tDeliverToLocationID) tDeliverToLocationID $
          LT.insert (tnum tNoRelatedSym) tNoRelatedSym $
          LT.insert (tnum tSubject) tSubject $
          LT.insert (tnum tHeadline) tHeadline $
          LT.insert (tnum tURLLink) tURLLink $
          LT.insert (tnum tExecType) tExecType $
          LT.insert (tnum tLeavesQty) tLeavesQty $
          LT.insert (tnum tCashOrderQty) tCashOrderQty $
          LT.insert (tnum tAllocAvgPx) tAllocAvgPx $
          LT.insert (tnum tAllocNetMoney) tAllocNetMoney $
          LT.insert (tnum tSettlCurrFxRate) tSettlCurrFxRate $
          LT.insert (tnum tSettlCurrFxRateCalc) tSettlCurrFxRateCalc $
          LT.insert (tnum tNumDaysInterest) tNumDaysInterest $
          LT.insert (tnum tAccruedInterestRate) tAccruedInterestRate $
          LT.insert (tnum tAccruedInterestAmt) tAccruedInterestAmt $
          LT.insert (tnum tSettlInstMode) tSettlInstMode $
          LT.insert (tnum tAllocText) tAllocText $
          LT.insert (tnum tSettlInstID) tSettlInstID $
          LT.insert (tnum tSettlInstTransType) tSettlInstTransType $
          LT.insert (tnum tEmailThreadID) tEmailThreadID $
          LT.insert (tnum tSettlInstSource) tSettlInstSource $
          LT.insert (tnum tSettlLocation) tSettlLocation $
          LT.insert (tnum tSecurityType) tSecurityType $
          LT.insert (tnum tEffectiveTime) tEffectiveTime $
          LT.insert (tnum tStandInstDbType) tStandInstDbType $
          LT.insert (tnum tStandInstDbName) tStandInstDbName $
          LT.insert (tnum tStandInstDbID) tStandInstDbID $
          LT.insert (tnum tSettlDeliveryType) tSettlDeliveryType $
          LT.insert (tnum tSettlDepositoryCode) tSettlDepositoryCode $
          LT.insert (tnum tSettlBrkrCode) tSettlBrkrCode $
          LT.insert (tnum tSettlInstCode) tSettlInstCode $
          LT.insert (tnum tSecuritySettlAgentName) tSecuritySettlAgentName $
          LT.insert (tnum tSecuritySettlAgentCode) tSecuritySettlAgentCode $
          LT.insert (tnum tSecuritySettlAgentAcctNum) tSecuritySettlAgentAcctNum $
          LT.insert (tnum tSecuritySettlAgentAcctName) tSecuritySettlAgentAcctName $
          LT.insert (tnum tSecuritySettlAgentContactName) tSecuritySettlAgentContactName $
          LT.insert (tnum tSecuritySettlAgentContactPhone) tSecuritySettlAgentContactPhone $
          LT.insert (tnum tCashSettlAgentName) tCashSettlAgentName $
          LT.insert (tnum tCashSettlAgentCode) tCashSettlAgentCode $
          LT.insert (tnum tCashSettlAgentAcctNum) tCashSettlAgentAcctNum $
          LT.insert (tnum tCashSettlAgentAcctName) tCashSettlAgentAcctName $
          LT.insert (tnum tCashSettlAgentContactName) tCashSettlAgentContactName $
          LT.insert (tnum tCashSettlAgentContactPhone) tCashSettlAgentContactPhone $
          LT.insert (tnum tBidSpotRate) tBidSpotRate $
          LT.insert (tnum tBidForwardPoints) tBidForwardPoints $
          LT.insert (tnum tOfferSpotRate) tOfferSpotRate $
          LT.insert (tnum tOfferForwardPoints) tOfferForwardPoints $
          LT.insert (tnum tOrderQty2) tOrderQty2 $
          LT.insert (tnum tSettlDate2) tSettlDate2 $
          LT.insert (tnum tLastSpotRate) tLastSpotRate $
          LT.insert (tnum tLastForwardPoints) tLastForwardPoints $
          LT.insert (tnum tAllocLinkID) tAllocLinkID $
          LT.insert (tnum tAllocLinkType) tAllocLinkType $
          LT.insert (tnum tSecondaryOrderID) tSecondaryOrderID $
          LT.insert (tnum tNoIOIQualifiers) tNoIOIQualifiers $
          LT.insert (tnum tMaturityMonthYear) tMaturityMonthYear $
          LT.insert (tnum tPutOrCall) tPutOrCall $
          LT.insert (tnum tStrikePrice) tStrikePrice $
          LT.insert (tnum tCoveredOrUncovered) tCoveredOrUncovered $
          LT.insert (tnum tCustomerOrFirm) tCustomerOrFirm $
          LT.insert (tnum tMaturityDay) tMaturityDay $
          LT.insert (tnum tOptAttribute) tOptAttribute $
          LT.insert (tnum tSecurityExchange) tSecurityExchange $
          LT.insert (tnum tNotifyBrokerOfCredit) tNotifyBrokerOfCredit $
          LT.insert (tnum tAllocHandlInst) tAllocHandlInst $
          LT.insert (tnum tMaxShow) tMaxShow $
          LT.insert (tnum tPegOffsetValue) tPegOffsetValue $
          LT.insert (tnum tXmlDataLen) tXmlDataLen $
          LT.insert (tnum tXmlData) tXmlData $
          LT.insert (tnum tSettlInstRefID) tSettlInstRefID $
          LT.insert (tnum tNoRoutingIDs) tNoRoutingIDs $
          LT.insert (tnum tRoutingType) tRoutingType $
          LT.insert (tnum tRoutingID) tRoutingID $
          LT.insert (tnum tSpread) tSpread $
          LT.insert (tnum tBenchmark) tBenchmark $
          LT.insert (tnum tBenchmarkCurveCurrency) tBenchmarkCurveCurrency $
          LT.insert (tnum tBenchmarkCurveName) tBenchmarkCurveName $
          LT.insert (tnum tBenchmarkCurvePoint) tBenchmarkCurvePoint $
          LT.insert (tnum tCouponRate) tCouponRate $
          LT.insert (tnum tCouponPaymentDate) tCouponPaymentDate $
          LT.insert (tnum tIssueDate) tIssueDate $
          LT.insert (tnum tRepurchaseTerm) tRepurchaseTerm $
          LT.insert (tnum tRepurchaseRate) tRepurchaseRate $
          LT.insert (tnum tFactor) tFactor $
          LT.insert (tnum tTradeOriginationDate) tTradeOriginationDate $
          LT.insert (tnum tExDate) tExDate $
          LT.insert (tnum tContractMultiplier) tContractMultiplier $
          LT.insert (tnum tNoStipulations) tNoStipulations $
          LT.insert (tnum tStipulationType) tStipulationType $
          LT.insert (tnum tStipulationValue) tStipulationValue $
          LT.insert (tnum tYieldType) tYieldType $
          LT.insert (tnum tYield) tYield $
          LT.insert (tnum tTotalTakedown) tTotalTakedown $
          LT.insert (tnum tConcession) tConcession $
          LT.insert (tnum tRepoCollateralSecurityType) tRepoCollateralSecurityType $
          LT.insert (tnum tRedemptionDate) tRedemptionDate $
          LT.insert (tnum tUnderlyingCouponPaymentDate) tUnderlyingCouponPaymentDate $
          LT.insert (tnum tUnderlyingIssueDate) tUnderlyingIssueDate $
          LT.insert (tnum tUnderlyingRepoCollateralSecurityType) tUnderlyingRepoCollateralSecurityType $
          LT.insert (tnum tUnderlyingRepurchaseTerm) tUnderlyingRepurchaseTerm $
          LT.insert (tnum tUnderlyingRepurchaseRate) tUnderlyingRepurchaseRate $
          LT.insert (tnum tUnderlyingFactor) tUnderlyingFactor $
          LT.insert (tnum tUnderlyingRedemptionDate) tUnderlyingRedemptionDate $
          LT.insert (tnum tLegCouponPaymentDate) tLegCouponPaymentDate $
          LT.insert (tnum tLegIssueDate) tLegIssueDate $
          LT.insert (tnum tLegRepoCollateralSecurityType) tLegRepoCollateralSecurityType $
          LT.insert (tnum tLegRepurchaseTerm) tLegRepurchaseTerm $
          LT.insert (tnum tLegRepurchaseRate) tLegRepurchaseRate $
          LT.insert (tnum tLegFactor) tLegFactor $
          LT.insert (tnum tLegRedemptionDate) tLegRedemptionDate $
          LT.insert (tnum tCreditRating) tCreditRating $
          LT.insert (tnum tUnderlyingCreditRating) tUnderlyingCreditRating $
          LT.insert (tnum tLegCreditRating) tLegCreditRating $
          LT.insert (tnum tTradedFlatSwitch) tTradedFlatSwitch $
          LT.insert (tnum tBasisFeatureDate) tBasisFeatureDate $
          LT.insert (tnum tBasisFeaturePrice) tBasisFeaturePrice $
          LT.insert (tnum tMDReqID) tMDReqID $
          LT.insert (tnum tSubscriptionRequestType) tSubscriptionRequestType $
          LT.insert (tnum tMarketDepth) tMarketDepth $
          LT.insert (tnum tMDUpdateType) tMDUpdateType $
          LT.insert (tnum tAggregatedBook) tAggregatedBook $
          LT.insert (tnum tNoMDEntryTypes) tNoMDEntryTypes $
          LT.insert (tnum tNoMDEntries) tNoMDEntries $
          LT.insert (tnum tMDEntryType) tMDEntryType $
          LT.insert (tnum tMDEntryPx) tMDEntryPx $
          LT.insert (tnum tMDEntrySize) tMDEntrySize $
          LT.insert (tnum tMDEntryDate) tMDEntryDate $
          LT.insert (tnum tMDEntryTime) tMDEntryTime $
          LT.insert (tnum tTickDirection) tTickDirection $
          LT.insert (tnum tMDMkt) tMDMkt $
          LT.insert (tnum tQuoteCondition) tQuoteCondition $
          LT.insert (tnum tTradeCondition) tTradeCondition $
          LT.insert (tnum tMDEntryID) tMDEntryID $
          LT.insert (tnum tMDUpdateAction) tMDUpdateAction $
          LT.insert (tnum tMDEntryRefID) tMDEntryRefID $
          LT.insert (tnum tMDReqRejReason) tMDReqRejReason $
          LT.insert (tnum tMDEntryOriginator) tMDEntryOriginator $
          LT.insert (tnum tLocationID) tLocationID $
          LT.insert (tnum tDeskID) tDeskID $
          LT.insert (tnum tDeleteReason) tDeleteReason $
          LT.insert (tnum tOpenCloseSettlFlag) tOpenCloseSettlFlag $
          LT.insert (tnum tSellerDays) tSellerDays $
          LT.insert (tnum tMDEntryBuyer) tMDEntryBuyer $
          LT.insert (tnum tMDEntrySeller) tMDEntrySeller $
          LT.insert (tnum tMDEntryPositionNo) tMDEntryPositionNo $
          LT.insert (tnum tFinancialStatus) tFinancialStatus $
          LT.insert (tnum tCorporateAction) tCorporateAction $
          LT.insert (tnum tDefBidSize) tDefBidSize $
          LT.insert (tnum tDefOfferSize) tDefOfferSize $
          LT.insert (tnum tNoQuoteEntries) tNoQuoteEntries $
          LT.insert (tnum tNoQuoteSets) tNoQuoteSets $
          LT.insert (tnum tQuoteStatus) tQuoteStatus $
          LT.insert (tnum tQuoteCancelType) tQuoteCancelType $
          LT.insert (tnum tQuoteEntryID) tQuoteEntryID $
          LT.insert (tnum tQuoteRejectReason) tQuoteRejectReason $
          LT.insert (tnum tQuoteResponseLevel) tQuoteResponseLevel $
          LT.insert (tnum tQuoteSetID) tQuoteSetID $
          LT.insert (tnum tQuoteRequestType) tQuoteRequestType $
          LT.insert (tnum tTotNoQuoteEntries) tTotNoQuoteEntries $
          LT.insert (tnum tUnderlyingSecurityIDSource) tUnderlyingSecurityIDSource $
          LT.insert (tnum tUnderlyingIssuer) tUnderlyingIssuer $
          LT.insert (tnum tUnderlyingSecurityDesc) tUnderlyingSecurityDesc $
          LT.insert (tnum tUnderlyingSecurityExchange) tUnderlyingSecurityExchange $
          LT.insert (tnum tUnderlyingSecurityID) tUnderlyingSecurityID $
          LT.insert (tnum tUnderlyingSecurityType) tUnderlyingSecurityType $
          LT.insert (tnum tUnderlyingSymbol) tUnderlyingSymbol $
          LT.insert (tnum tUnderlyingSymbolSfx) tUnderlyingSymbolSfx $
          LT.insert (tnum tUnderlyingMaturityMonthYear) tUnderlyingMaturityMonthYear $
          LT.insert (tnum tUnderlyingMaturityDay) tUnderlyingMaturityDay $
          LT.insert (tnum tUnderlyingPutOrCall) tUnderlyingPutOrCall $
          LT.insert (tnum tUnderlyingStrikePrice) tUnderlyingStrikePrice $
          LT.insert (tnum tUnderlyingOptAttribute) tUnderlyingOptAttribute $
          LT.insert (tnum tUnderlyingCurrency) tUnderlyingCurrency $
          LT.insert (tnum tRatioQty) tRatioQty $
          LT.insert (tnum tSecurityReqID) tSecurityReqID $
          LT.insert (tnum tSecurityRequestType) tSecurityRequestType $
          LT.insert (tnum tSecurityResponseID) tSecurityResponseID $
          LT.insert (tnum tSecurityResponseType) tSecurityResponseType $
          LT.insert (tnum tSecurityStatusReqID) tSecurityStatusReqID $
          LT.insert (tnum tUnsolicitedIndicator) tUnsolicitedIndicator $
          LT.insert (tnum tSecurityTradingStatus) tSecurityTradingStatus $
          LT.insert (tnum tHaltReasonChar) tHaltReasonChar $
          LT.insert (tnum tInViewOfCommon) tInViewOfCommon $
          LT.insert (tnum tDueToRelated) tDueToRelated $
          LT.insert (tnum tBuyVolume) tBuyVolume $
          LT.insert (tnum tSellVolume) tSellVolume $
          LT.insert (tnum tHighPx) tHighPx $
          LT.insert (tnum tLowPx) tLowPx $
          LT.insert (tnum tAdjustment) tAdjustment $
          LT.insert (tnum tTradSesReqID) tTradSesReqID $
          LT.insert (tnum tTradingSessionID) tTradingSessionID $
          LT.insert (tnum tContraTrader) tContraTrader $
          LT.insert (tnum tTradSesMethod) tTradSesMethod $
          LT.insert (tnum tTradSesMode) tTradSesMode $
          LT.insert (tnum tTradSesStatus) tTradSesStatus $
          LT.insert (tnum tTradSesStartTime) tTradSesStartTime $
          LT.insert (tnum tTradSesOpenTime) tTradSesOpenTime $
          LT.insert (tnum tTradSesPreCloseTime) tTradSesPreCloseTime $
          LT.insert (tnum tTradSesCloseTime) tTradSesCloseTime $
          LT.insert (tnum tTradSesEndTime) tTradSesEndTime $
          LT.insert (tnum tNumberOfOrders) tNumberOfOrders $
          LT.insert (tnum tMessageEncoding) tMessageEncoding $
          LT.insert (tnum tEncodedIssuerLen) tEncodedIssuerLen $
          LT.insert (tnum tEncodedIssuer) tEncodedIssuer $
          LT.insert (tnum tEncodedSecurityDescLen) tEncodedSecurityDescLen $
          LT.insert (tnum tEncodedSecurityDesc) tEncodedSecurityDesc $
          LT.insert (tnum tEncodedListExecInstLen) tEncodedListExecInstLen $
          LT.insert (tnum tEncodedListExecInst) tEncodedListExecInst $
          LT.insert (tnum tEncodedTextLen) tEncodedTextLen $
          LT.insert (tnum tEncodedText) tEncodedText $
          LT.insert (tnum tEncodedSubjectLen) tEncodedSubjectLen $
          LT.insert (tnum tEncodedSubject) tEncodedSubject $
          LT.insert (tnum tEncodedHeadlineLen) tEncodedHeadlineLen $
          LT.insert (tnum tEncodedHeadline) tEncodedHeadline $
          LT.insert (tnum tEncodedAllocTextLen) tEncodedAllocTextLen $
          LT.insert (tnum tEncodedAllocText) tEncodedAllocText $
          LT.insert (tnum tEncodedUnderlyingIssuerLen) tEncodedUnderlyingIssuerLen $
          LT.insert (tnum tEncodedUnderlyingIssuer) tEncodedUnderlyingIssuer $
          LT.insert (tnum tEncodedUnderlyingSecurityDescLen) tEncodedUnderlyingSecurityDescLen $
          LT.insert (tnum tEncodedUnderlyingSecurityDesc) tEncodedUnderlyingSecurityDesc $
          LT.insert (tnum tAllocPrice) tAllocPrice $
          LT.insert (tnum tQuoteSetValidUntilTime) tQuoteSetValidUntilTime $
          LT.insert (tnum tQuoteEntryRejectReason) tQuoteEntryRejectReason $
          LT.insert (tnum tLastMsgSeqNumProcessed) tLastMsgSeqNumProcessed $
          LT.insert (tnum tOnBehalfOfSendingTime) tOnBehalfOfSendingTime $
          LT.insert (tnum tRefTagID) tRefTagID $
          LT.insert (tnum tRefMsgType) tRefMsgType $
          LT.insert (tnum tSessionRejectReason) tSessionRejectReason $
          LT.insert (tnum tBidRequestTransType) tBidRequestTransType $
          LT.insert (tnum tContraBroker) tContraBroker $
          LT.insert (tnum tComplianceID) tComplianceID $
          LT.insert (tnum tSolicitedFlag) tSolicitedFlag $
          LT.insert (tnum tExecRestatementReason) tExecRestatementReason $
          LT.insert (tnum tBusinessRejectRefID) tBusinessRejectRefID $
          LT.insert (tnum tBusinessRejectReason) tBusinessRejectReason $
          LT.insert (tnum tGrossTradeAmt) tGrossTradeAmt $
          LT.insert (tnum tNoContraBrokers) tNoContraBrokers $
          LT.insert (tnum tMaxMessageSize) tMaxMessageSize $
          LT.insert (tnum tNoMsgTypes) tNoMsgTypes $
          LT.insert (tnum tMsgDirection) tMsgDirection $
          LT.insert (tnum tNoTradingSessions) tNoTradingSessions $
          LT.insert (tnum tTotalVolumeTraded) tTotalVolumeTraded $
          LT.insert (tnum tDiscretionInst) tDiscretionInst $
          LT.insert (tnum tDiscretionOffsetValue) tDiscretionOffsetValue $
          LT.insert (tnum tBidID) tBidID $
          LT.insert (tnum tClientBidID) tClientBidID $
          LT.insert (tnum tListName) tListName $
          LT.insert (tnum tTotNoRelatedSym) tTotNoRelatedSym $
          LT.insert (tnum tBidType) tBidType $
          LT.insert (tnum tNumTickets) tNumTickets $
          LT.insert (tnum tSideValue1) tSideValue1 $
          LT.insert (tnum tSideValue2) tSideValue2 $
          LT.insert (tnum tNoBidDescriptors) tNoBidDescriptors $
          LT.insert (tnum tBidDescriptorType) tBidDescriptorType $
          LT.insert (tnum tBidDescriptor) tBidDescriptor $
          LT.insert (tnum tSideValueInd) tSideValueInd $
          LT.insert (tnum tLiquidityPctLow) tLiquidityPctLow $
          LT.insert (tnum tLiquidityPctHigh) tLiquidityPctHigh $
          LT.insert (tnum tLiquidityValue) tLiquidityValue $
          LT.insert (tnum tEFPTrackingError) tEFPTrackingError $
          LT.insert (tnum tFairValue) tFairValue $
          LT.insert (tnum tOutsideIndexPct) tOutsideIndexPct $
          LT.insert (tnum tValueOfFutures) tValueOfFutures $
          LT.insert (tnum tLiquidityIndType) tLiquidityIndType $
          LT.insert (tnum tWtAverageLiquidity) tWtAverageLiquidity $
          LT.insert (tnum tExchangeForPhysical) tExchangeForPhysical $
          LT.insert (tnum tOutMainCntryUIndex) tOutMainCntryUIndex $
          LT.insert (tnum tCrossPercent) tCrossPercent $
          LT.insert (tnum tProgRptReqs) tProgRptReqs $
          LT.insert (tnum tProgPeriodInterval) tProgPeriodInterval $
          LT.insert (tnum tIncTaxInd) tIncTaxInd $
          LT.insert (tnum tNumBidders) tNumBidders $
          LT.insert (tnum tBidTradeType) tBidTradeType $
          LT.insert (tnum tBasisPxType) tBasisPxType $
          LT.insert (tnum tNoBidComponents) tNoBidComponents $
          LT.insert (tnum tCountry) tCountry $
          LT.insert (tnum tTotNoStrikes) tTotNoStrikes $
          LT.insert (tnum tPriceType) tPriceType $
          LT.insert (tnum tDayOrderQty) tDayOrderQty $
          LT.insert (tnum tDayCumQty) tDayCumQty $
          LT.insert (tnum tDayAvgPx) tDayAvgPx $
          LT.insert (tnum tGTBookingInst) tGTBookingInst $
          LT.insert (tnum tNoStrikes) tNoStrikes $
          LT.insert (tnum tListStatusType) tListStatusType $
          LT.insert (tnum tNetGrossInd) tNetGrossInd $
          LT.insert (tnum tListOrderStatus) tListOrderStatus $
          LT.insert (tnum tExpireDate) tExpireDate $
          LT.insert (tnum tListExecInstType) tListExecInstType $
          LT.insert (tnum tCxlRejResponseTo) tCxlRejResponseTo $
          LT.insert (tnum tUnderlyingCouponRate) tUnderlyingCouponRate $
          LT.insert (tnum tUnderlyingContractMultiplier) tUnderlyingContractMultiplier $
          LT.insert (tnum tContraTradeQty) tContraTradeQty $
          LT.insert (tnum tContraTradeTime) tContraTradeTime $
          LT.insert (tnum tClearingFirm) tClearingFirm $
          LT.insert (tnum tClearingAccount) tClearingAccount $
          LT.insert (tnum tLiquidityNumSecurities) tLiquidityNumSecurities $
          LT.insert (tnum tMultiLegReportingType) tMultiLegReportingType $
          LT.insert (tnum tStrikeTime) tStrikeTime $
          LT.insert (tnum tListStatusText) tListStatusText $
          LT.insert (tnum tEncodedListStatusTextLen) tEncodedListStatusTextLen $
          LT.insert (tnum tEncodedListStatusText) tEncodedListStatusText $
          LT.insert (tnum tPartyIDSource) tPartyIDSource $
          LT.insert (tnum tPartyID) tPartyID $
          LT.insert (tnum tTotalVolumeTradedDate) tTotalVolumeTradedDate $
          LT.insert (tnum tTotalVolumeTradedTime) tTotalVolumeTradedTime $
          LT.insert (tnum tNetChgPrevDay) tNetChgPrevDay $
          LT.insert (tnum tPartyRole) tPartyRole $
          LT.insert (tnum tNoPartyIDs) tNoPartyIDs $
          LT.insert (tnum tNoSecurityAltID) tNoSecurityAltID $
          LT.insert (tnum tSecurityAltID) tSecurityAltID $
          LT.insert (tnum tSecurityAltIDSource) tSecurityAltIDSource $
          LT.insert (tnum tNoUnderlyingSecurityAltID) tNoUnderlyingSecurityAltID $
          LT.insert (tnum tUnderlyingSecurityAltID) tUnderlyingSecurityAltID $
          LT.insert (tnum tUnderlyingSecurityAltIDSource) tUnderlyingSecurityAltIDSource $
          LT.insert (tnum tProduct) tProduct $
          LT.insert (tnum tCFICode) tCFICode $
          LT.insert (tnum tUnderlyingProduct) tUnderlyingProduct $
          LT.insert (tnum tUnderlyingCFICode) tUnderlyingCFICode $
          LT.insert (tnum tTestMessageIndicator) tTestMessageIndicator $
          LT.insert (tnum tQuantityType) tQuantityType $
          LT.insert (tnum tBookingRefID) tBookingRefID $
          LT.insert (tnum tIndividualAllocID) tIndividualAllocID $
          LT.insert (tnum tRoundingDirection) tRoundingDirection $
          LT.insert (tnum tRoundingModulus) tRoundingModulus $
          LT.insert (tnum tCountryOfIssue) tCountryOfIssue $
          LT.insert (tnum tStateOrProvinceOfIssue) tStateOrProvinceOfIssue $
          LT.insert (tnum tLocaleOfIssue) tLocaleOfIssue $
          LT.insert (tnum tNoRegistDtls) tNoRegistDtls $
          LT.insert (tnum tMailingDtls) tMailingDtls $
          LT.insert (tnum tInvestorCountryOfResidence) tInvestorCountryOfResidence $
          LT.insert (tnum tPaymentRef) tPaymentRef $
          LT.insert (tnum tDistribPaymentMethod) tDistribPaymentMethod $
          LT.insert (tnum tCashDistribCurr) tCashDistribCurr $
          LT.insert (tnum tCommCurrency) tCommCurrency $
          LT.insert (tnum tCancellationRights) tCancellationRights $
          LT.insert (tnum tMoneyLaunderingStatus) tMoneyLaunderingStatus $
          LT.insert (tnum tMailingInst) tMailingInst $
          LT.insert (tnum tTransBkdTime) tTransBkdTime $
          LT.insert (tnum tExecPriceType) tExecPriceType $
          LT.insert (tnum tExecPriceAdjustment) tExecPriceAdjustment $
          LT.insert (tnum tDateOfBirth) tDateOfBirth $
          LT.insert (tnum tTradeReportTransType) tTradeReportTransType $
          LT.insert (tnum tCardHolderName) tCardHolderName $
          LT.insert (tnum tCardNumber) tCardNumber $
          LT.insert (tnum tCardExpDate) tCardExpDate $
          LT.insert (tnum tCardIssNum) tCardIssNum $
          LT.insert (tnum tPaymentMethod) tPaymentMethod $
          LT.insert (tnum tRegistAcctType) tRegistAcctType $
          LT.insert (tnum tDesignation) tDesignation $
          LT.insert (tnum tTaxAdvantageType) tTaxAdvantageType $
          LT.insert (tnum tRegistRejReasonText) tRegistRejReasonText $
          LT.insert (tnum tFundRenewWaiv) tFundRenewWaiv $
          LT.insert (tnum tCashDistribAgentName) tCashDistribAgentName $
          LT.insert (tnum tCashDistribAgentCode) tCashDistribAgentCode $
          LT.insert (tnum tCashDistribAgentAcctNumber) tCashDistribAgentAcctNumber $
          LT.insert (tnum tCashDistribPayRef) tCashDistribPayRef $
          LT.insert (tnum tCashDistribAgentAcctName) tCashDistribAgentAcctName $
          LT.insert (tnum tCardStartDate) tCardStartDate $
          LT.insert (tnum tPaymentDate) tPaymentDate $
          LT.insert (tnum tPaymentRemitterID) tPaymentRemitterID $
          LT.insert (tnum tRegistStatus) tRegistStatus $
          LT.insert (tnum tRegistRejReasonCode) tRegistRejReasonCode $
          LT.insert (tnum tRegistRefID) tRegistRefID $
          LT.insert (tnum tRegistDtls) tRegistDtls $
          LT.insert (tnum tNoDistribInsts) tNoDistribInsts $
          LT.insert (tnum tRegistEmail) tRegistEmail $
          LT.insert (tnum tDistribPercentage) tDistribPercentage $
          LT.insert (tnum tRegistID) tRegistID $
          LT.insert (tnum tRegistTransType) tRegistTransType $
          LT.insert (tnum tExecValuationPoint) tExecValuationPoint $
          LT.insert (tnum tOrderPercent) tOrderPercent $
          LT.insert (tnum tOwnershipType) tOwnershipType $
          LT.insert (tnum tNoContAmts) tNoContAmts $
          LT.insert (tnum tContAmtType) tContAmtType $
          LT.insert (tnum tContAmtValue) tContAmtValue $
          LT.insert (tnum tContAmtCurr) tContAmtCurr $
          LT.insert (tnum tOwnerType) tOwnerType $
          LT.insert (tnum tPartySubID) tPartySubID $
          LT.insert (tnum tNestedPartyID) tNestedPartyID $
          LT.insert (tnum tNestedPartyIDSource) tNestedPartyIDSource $
          LT.insert (tnum tSecondaryClOrdID) tSecondaryClOrdID $
          LT.insert (tnum tSecondaryExecID) tSecondaryExecID $
          LT.insert (tnum tOrderCapacity) tOrderCapacity $
          LT.insert (tnum tOrderRestrictions) tOrderRestrictions $
          LT.insert (tnum tMassCancelRequestType) tMassCancelRequestType $
          LT.insert (tnum tMassCancelResponse) tMassCancelResponse $
          LT.insert (tnum tMassCancelRejectReason) tMassCancelRejectReason $
          LT.insert (tnum tTotalAffectedOrders) tTotalAffectedOrders $
          LT.insert (tnum tNoAffectedOrders) tNoAffectedOrders $
          LT.insert (tnum tAffectedOrderID) tAffectedOrderID $
          LT.insert (tnum tAffectedSecondaryOrderID) tAffectedSecondaryOrderID $
          LT.insert (tnum tQuoteType) tQuoteType $
          LT.insert (tnum tNestedPartyRole) tNestedPartyRole $
          LT.insert (tnum tNoNestedPartyIDs) tNoNestedPartyIDs $
          LT.insert (tnum tTotalAccruedInterestAmt) tTotalAccruedInterestAmt $
          LT.insert (tnum tMaturityDate) tMaturityDate $
          LT.insert (tnum tUnderlyingMaturityDate) tUnderlyingMaturityDate $
          LT.insert (tnum tInstrRegistry) tInstrRegistry $
          LT.insert (tnum tCashMargin) tCashMargin $
          LT.insert (tnum tNestedPartySubID) tNestedPartySubID $
          LT.insert (tnum tScope) tScope $
          LT.insert (tnum tMDImplicitDelete) tMDImplicitDelete $
          LT.insert (tnum tCrossID) tCrossID $
          LT.insert (tnum tCrossType) tCrossType $
          LT.insert (tnum tCrossPrioritization) tCrossPrioritization $
          LT.insert (tnum tOrigCrossID) tOrigCrossID $
          LT.insert (tnum tNoSides) tNoSides $
          LT.insert (tnum tUsername) tUsername $
          LT.insert (tnum tPassword) tPassword $
          LT.insert (tnum tNoLegs) tNoLegs $
          LT.insert (tnum tLegCurrency) tLegCurrency $
          LT.insert (tnum tTotNoSecurityTypes) tTotNoSecurityTypes $
          LT.insert (tnum tNoSecurityTypes) tNoSecurityTypes $
          LT.insert (tnum tSecurityListRequestType) tSecurityListRequestType $
          LT.insert (tnum tSecurityRequestResult) tSecurityRequestResult $
          LT.insert (tnum tRoundLot) tRoundLot $
          LT.insert (tnum tMinTradeVol) tMinTradeVol $
          LT.insert (tnum tMultiLegRptTypeReq) tMultiLegRptTypeReq $
          LT.insert (tnum tLegPositionEffect) tLegPositionEffect $
          LT.insert (tnum tLegCoveredOrUncovered) tLegCoveredOrUncovered $
          LT.insert (tnum tLegPrice) tLegPrice $
          LT.insert (tnum tTradSesStatusRejReason) tTradSesStatusRejReason $
          LT.insert (tnum tTradeRequestID) tTradeRequestID $
          LT.insert (tnum tTradeRequestType) tTradeRequestType $
          LT.insert (tnum tPreviouslyReported) tPreviouslyReported $
          LT.insert (tnum tTradeReportID) tTradeReportID $
          LT.insert (tnum tTradeReportRefID) tTradeReportRefID $
          LT.insert (tnum tMatchStatus) tMatchStatus $
          LT.insert (tnum tMatchType) tMatchType $
          LT.insert (tnum tOddLot) tOddLot $
          LT.insert (tnum tNoClearingInstructions) tNoClearingInstructions $
          LT.insert (tnum tClearingInstruction) tClearingInstruction $
          LT.insert (tnum tTradeInputSource) tTradeInputSource $
          LT.insert (tnum tTradeInputDevice) tTradeInputDevice $
          LT.insert (tnum tNoDates) tNoDates $
          LT.insert (tnum tAccountType) tAccountType $
          LT.insert (tnum tCustOrderCapacity) tCustOrderCapacity $
          LT.insert (tnum tClOrdLinkID) tClOrdLinkID $
          LT.insert (tnum tMassStatusReqID) tMassStatusReqID $
          LT.insert (tnum tMassStatusReqType) tMassStatusReqType $
          LT.insert (tnum tOrigOrdModTime) tOrigOrdModTime $
          LT.insert (tnum tLegSettlType) tLegSettlType $
          LT.insert (tnum tLegSettlDate) tLegSettlDate $
          LT.insert (tnum tDayBookingInst) tDayBookingInst $
          LT.insert (tnum tBookingUnit) tBookingUnit $
          LT.insert (tnum tPreallocMethod) tPreallocMethod $
          LT.insert (tnum tUnderlyingCountryOfIssue) tUnderlyingCountryOfIssue $
          LT.insert (tnum tUnderlyingStateOrProvinceOfIssue) tUnderlyingStateOrProvinceOfIssue $
          LT.insert (tnum tUnderlyingLocaleOfIssue) tUnderlyingLocaleOfIssue $
          LT.insert (tnum tUnderlyingInstrRegistry) tUnderlyingInstrRegistry $
          LT.insert (tnum tLegCountryOfIssue) tLegCountryOfIssue $
          LT.insert (tnum tLegStateOrProvinceOfIssue) tLegStateOrProvinceOfIssue $
          LT.insert (tnum tLegLocaleOfIssue) tLegLocaleOfIssue $
          LT.insert (tnum tLegInstrRegistry) tLegInstrRegistry $
          LT.insert (tnum tLegSymbol) tLegSymbol $
          LT.insert (tnum tLegSymbolSfx) tLegSymbolSfx $
          LT.insert (tnum tLegSecurityID) tLegSecurityID $
          LT.insert (tnum tLegSecurityIDSource) tLegSecurityIDSource $
          LT.insert (tnum tNoLegSecurityAltID) tNoLegSecurityAltID $
          LT.insert (tnum tLegSecurityAltID) tLegSecurityAltID $
          LT.insert (tnum tLegSecurityAltIDSource) tLegSecurityAltIDSource $
          LT.insert (tnum tLegProduct) tLegProduct $
          LT.insert (tnum tLegCFICode) tLegCFICode $
          LT.insert (tnum tLegSecurityType) tLegSecurityType $
          LT.insert (tnum tLegMaturityMonthYear) tLegMaturityMonthYear $
          LT.insert (tnum tLegMaturityDate) tLegMaturityDate $
          LT.insert (tnum tLegStrikePrice) tLegStrikePrice $
          LT.insert (tnum tLegOptAttribute) tLegOptAttribute $
          LT.insert (tnum tLegContractMultiplier) tLegContractMultiplier $
          LT.insert (tnum tLegCouponRate) tLegCouponRate $
          LT.insert (tnum tLegSecurityExchange) tLegSecurityExchange $
          LT.insert (tnum tLegIssuer) tLegIssuer $
          LT.insert (tnum tEncodedLegIssuerLen) tEncodedLegIssuerLen $
          LT.insert (tnum tEncodedLegIssuer) tEncodedLegIssuer $
          LT.insert (tnum tLegSecurityDesc) tLegSecurityDesc $
          LT.insert (tnum tEncodedLegSecurityDescLen) tEncodedLegSecurityDescLen $
          LT.insert (tnum tEncodedLegSecurityDesc) tEncodedLegSecurityDesc $
          LT.insert (tnum tLegRatioQty) tLegRatioQty $
          LT.insert (tnum tLegSide) tLegSide $
          LT.insert (tnum tTradingSessionSubID) tTradingSessionSubID $
          LT.insert (tnum tAllocType) tAllocType $
          LT.insert (tnum tNoHops) tNoHops $
          LT.insert (tnum tHopCompID) tHopCompID $
          LT.insert (tnum tHopSendingTime) tHopSendingTime $
          LT.insert (tnum tHopRefID) tHopRefID $
          LT.insert (tnum tMidPx) tMidPx $
          LT.insert (tnum tBidYield) tBidYield $
          LT.insert (tnum tMidYield) tMidYield $
          LT.insert (tnum tOfferYield) tOfferYield $
          LT.insert (tnum tClearingFeeIndicator) tClearingFeeIndicator $
          LT.insert (tnum tWorkingIndicator) tWorkingIndicator $
          LT.insert (tnum tLegLastPx) tLegLastPx $
          LT.insert (tnum tPriorityIndicator) tPriorityIndicator $
          LT.insert (tnum tPriceImprovement) tPriceImprovement $
          LT.insert (tnum tPrice2) tPrice2 $
          LT.insert (tnum tLastForwardPoints2) tLastForwardPoints2 $
          LT.insert (tnum tBidForwardPoints2) tBidForwardPoints2 $
          LT.insert (tnum tOfferForwardPoints2) tOfferForwardPoints2 $
          LT.insert (tnum tRFQReqID) tRFQReqID $
          LT.insert (tnum tMktBidPx) tMktBidPx $
          LT.insert (tnum tMktOfferPx) tMktOfferPx $
          LT.insert (tnum tMinBidSize) tMinBidSize $
          LT.insert (tnum tMinOfferSize) tMinOfferSize $
          LT.insert (tnum tQuoteStatusReqID) tQuoteStatusReqID $
          LT.insert (tnum tLegalConfirm) tLegalConfirm $
          LT.insert (tnum tUnderlyingLastPx) tUnderlyingLastPx $
          LT.insert (tnum tUnderlyingLastQty) tUnderlyingLastQty $
          LT.insert (tnum tSecDefStatus) tSecDefStatus $
          LT.insert (tnum tLegRefID) tLegRefID $
          LT.insert (tnum tContraLegRefID) tContraLegRefID $
          LT.insert (tnum tSettlCurrBidFxRate) tSettlCurrBidFxRate $
          LT.insert (tnum tSettlCurrOfferFxRate) tSettlCurrOfferFxRate $
          LT.insert (tnum tQuoteRequestRejectReason) tQuoteRequestRejectReason $
          LT.insert (tnum tSideComplianceID) tSideComplianceID $
          LT.insert (tnum tAcctIDSource) tAcctIDSource $
          LT.insert (tnum tAllocAcctIDSource) tAllocAcctIDSource $
          LT.insert (tnum tBenchmarkPrice) tBenchmarkPrice $
          LT.insert (tnum tBenchmarkPriceType) tBenchmarkPriceType $
          LT.insert (tnum tConfirmID) tConfirmID $
          LT.insert (tnum tConfirmStatus) tConfirmStatus $
          LT.insert (tnum tConfirmTransType) tConfirmTransType $
          LT.insert (tnum tContractSettlMonth) tContractSettlMonth $
          LT.insert (tnum tDeliveryForm) tDeliveryForm $
          LT.insert (tnum tLastParPx) tLastParPx $
          LT.insert (tnum tNoLegAllocs) tNoLegAllocs $
          LT.insert (tnum tLegAllocAccount) tLegAllocAccount $
          LT.insert (tnum tLegIndividualAllocID) tLegIndividualAllocID $
          LT.insert (tnum tLegAllocQty) tLegAllocQty $
          LT.insert (tnum tLegAllocAcctIDSource) tLegAllocAcctIDSource $
          LT.insert (tnum tLegSettlCurrency) tLegSettlCurrency $
          LT.insert (tnum tLegBenchmarkCurveCurrency) tLegBenchmarkCurveCurrency $
          LT.insert (tnum tLegBenchmarkCurveName) tLegBenchmarkCurveName $
          LT.insert (tnum tLegBenchmarkCurvePoint) tLegBenchmarkCurvePoint $
          LT.insert (tnum tLegBenchmarkPrice) tLegBenchmarkPrice $
          LT.insert (tnum tLegBenchmarkPriceType) tLegBenchmarkPriceType $
          LT.insert (tnum tLegBidPx) tLegBidPx $
          LT.insert (tnum tLegIOIQty) tLegIOIQty $
          LT.insert (tnum tNoLegStipulations) tNoLegStipulations $
          LT.insert (tnum tLegOfferPx) tLegOfferPx $
          LT.insert (tnum tLegOrderQty) tLegOrderQty $
          LT.insert (tnum tLegPriceType) tLegPriceType $
          LT.insert (tnum tLegQty) tLegQty $
          LT.insert (tnum tLegStipulationType) tLegStipulationType $
          LT.insert (tnum tLegStipulationValue) tLegStipulationValue $
          LT.insert (tnum tLegSwapType) tLegSwapType $
          LT.insert (tnum tPool) tPool $
          LT.insert (tnum tQuotePriceType) tQuotePriceType $
          LT.insert (tnum tQuoteRespID) tQuoteRespID $
          LT.insert (tnum tQuoteRespType) tQuoteRespType $
          LT.insert (tnum tQuoteQualifier) tQuoteQualifier $
          LT.insert (tnum tYieldRedemptionDate) tYieldRedemptionDate $
          LT.insert (tnum tYieldRedemptionPrice) tYieldRedemptionPrice $
          LT.insert (tnum tYieldRedemptionPriceType) tYieldRedemptionPriceType $
          LT.insert (tnum tBenchmarkSecurityID) tBenchmarkSecurityID $
          LT.insert (tnum tReversalIndicator) tReversalIndicator $
          LT.insert (tnum tYieldCalcDate) tYieldCalcDate $
          LT.insert (tnum tNoPositions) tNoPositions $
          LT.insert (tnum tPosType) tPosType $
          LT.insert (tnum tLongQty) tLongQty $
          LT.insert (tnum tShortQty) tShortQty $
          LT.insert (tnum tPosQtyStatus) tPosQtyStatus $
          LT.insert (tnum tPosAmtType) tPosAmtType $
          LT.insert (tnum tPosAmt) tPosAmt $
          LT.insert (tnum tPosTransType) tPosTransType $
          LT.insert (tnum tPosReqID) tPosReqID $
          LT.insert (tnum tNoUnderlyings) tNoUnderlyings $
          LT.insert (tnum tPosMaintAction) tPosMaintAction $
          LT.insert (tnum tOrigPosReqRefID) tOrigPosReqRefID $
          LT.insert (tnum tPosMaintRptRefID) tPosMaintRptRefID $
          LT.insert (tnum tClearingBusinessDate) tClearingBusinessDate $
          LT.insert (tnum tSettlSessID) tSettlSessID $
          LT.insert (tnum tSettlSessSubID) tSettlSessSubID $
          LT.insert (tnum tAdjustmentType) tAdjustmentType $
          LT.insert (tnum tContraryInstructionIndicator) tContraryInstructionIndicator $
          LT.insert (tnum tPriorSpreadIndicator) tPriorSpreadIndicator $
          LT.insert (tnum tPosMaintRptID) tPosMaintRptID $
          LT.insert (tnum tPosMaintStatus) tPosMaintStatus $
          LT.insert (tnum tPosMaintResult) tPosMaintResult $
          LT.insert (tnum tPosReqType) tPosReqType $
          LT.insert (tnum tResponseTransportType) tResponseTransportType $
          LT.insert (tnum tResponseDestination) tResponseDestination $
          LT.insert (tnum tTotalNumPosReports) tTotalNumPosReports $
          LT.insert (tnum tPosReqResult) tPosReqResult $
          LT.insert (tnum tPosReqStatus) tPosReqStatus $
          LT.insert (tnum tSettlPrice) tSettlPrice $
          LT.insert (tnum tSettlPriceType) tSettlPriceType $
          LT.insert (tnum tUnderlyingSettlPrice) tUnderlyingSettlPrice $
          LT.insert (tnum tUnderlyingSettlPriceType) tUnderlyingSettlPriceType $
          LT.insert (tnum tPriorSettlPrice) tPriorSettlPrice $
          LT.insert (tnum tNoQuoteQualifiers) tNoQuoteQualifiers $
          LT.insert (tnum tAllocSettlCurrency) tAllocSettlCurrency $
          LT.insert (tnum tAllocSettlCurrAmt) tAllocSettlCurrAmt $
          LT.insert (tnum tInterestAtMaturity) tInterestAtMaturity $
          LT.insert (tnum tLegDatedDate) tLegDatedDate $
          LT.insert (tnum tLegPool) tLegPool $
          LT.insert (tnum tAllocInterestAtMaturity) tAllocInterestAtMaturity $
          LT.insert (tnum tAllocAccruedInterestAmt) tAllocAccruedInterestAmt $
          LT.insert (tnum tDeliveryDate) tDeliveryDate $
          LT.insert (tnum tAssignmentMethod) tAssignmentMethod $
          LT.insert (tnum tAssignmentUnit) tAssignmentUnit $
          LT.insert (tnum tOpenInterest) tOpenInterest $
          LT.insert (tnum tExerciseMethod) tExerciseMethod $
          LT.insert (tnum tTotNumTradeReports) tTotNumTradeReports $
          LT.insert (tnum tTradeRequestResult) tTradeRequestResult $
          LT.insert (tnum tTradeRequestStatus) tTradeRequestStatus $
          LT.insert (tnum tTradeReportRejectReason) tTradeReportRejectReason $
          LT.insert (tnum tSideMultiLegReportingType) tSideMultiLegReportingType $
          LT.insert (tnum tNoPosAmt) tNoPosAmt $
          LT.insert (tnum tAutoAcceptIndicator) tAutoAcceptIndicator $
          LT.insert (tnum tAllocReportID) tAllocReportID $
          LT.insert (tnum tNoNested2PartyIDs) tNoNested2PartyIDs $
          LT.insert (tnum tNested2PartyID) tNested2PartyID $
          LT.insert (tnum tNested2PartyIDSource) tNested2PartyIDSource $
          LT.insert (tnum tNested2PartyRole) tNested2PartyRole $
          LT.insert (tnum tNested2PartySubID) tNested2PartySubID $
          LT.insert (tnum tBenchmarkSecurityIDSource) tBenchmarkSecurityIDSource $
          LT.insert (tnum tSecuritySubType) tSecuritySubType $
          LT.insert (tnum tUnderlyingSecuritySubType) tUnderlyingSecuritySubType $
          LT.insert (tnum tLegSecuritySubType) tLegSecuritySubType $
          LT.insert (tnum tAllowableOneSidednessPct) tAllowableOneSidednessPct $
          LT.insert (tnum tAllowableOneSidednessValue) tAllowableOneSidednessValue $
          LT.insert (tnum tAllowableOneSidednessCurr) tAllowableOneSidednessCurr $
          LT.insert (tnum tNoTrdRegTimestamps) tNoTrdRegTimestamps $
          LT.insert (tnum tTrdRegTimestamp) tTrdRegTimestamp $
          LT.insert (tnum tTrdRegTimestampType) tTrdRegTimestampType $
          LT.insert (tnum tTrdRegTimestampOrigin) tTrdRegTimestampOrigin $
          LT.insert (tnum tConfirmRefID) tConfirmRefID $
          LT.insert (tnum tConfirmType) tConfirmType $
          LT.insert (tnum tConfirmRejReason) tConfirmRejReason $
          LT.insert (tnum tBookingType) tBookingType $
          LT.insert (tnum tIndividualAllocRejCode) tIndividualAllocRejCode $
          LT.insert (tnum tSettlInstMsgID) tSettlInstMsgID $
          LT.insert (tnum tNoSettlInst) tNoSettlInst $
          LT.insert (tnum tLastUpdateTime) tLastUpdateTime $
          LT.insert (tnum tAllocSettlInstType) tAllocSettlInstType $
          LT.insert (tnum tNoSettlPartyIDs) tNoSettlPartyIDs $
          LT.insert (tnum tSettlPartyID) tSettlPartyID $
          LT.insert (tnum tSettlPartyIDSource) tSettlPartyIDSource $
          LT.insert (tnum tSettlPartyRole) tSettlPartyRole $
          LT.insert (tnum tSettlPartySubID) tSettlPartySubID $
          LT.insert (tnum tSettlPartySubIDType) tSettlPartySubIDType $
          LT.insert (tnum tDlvyInstType) tDlvyInstType $
          LT.insert (tnum tTerminationType) tTerminationType $
          LT.insert (tnum tNextExpectedMsgSeqNum) tNextExpectedMsgSeqNum $
          LT.insert (tnum tOrdStatusReqID) tOrdStatusReqID $
          LT.insert (tnum tSettlInstReqID) tSettlInstReqID $
          LT.insert (tnum tSettlInstReqRejCode) tSettlInstReqRejCode $
          LT.insert (tnum tSecondaryAllocID) tSecondaryAllocID $
          LT.insert (tnum tAllocReportType) tAllocReportType $
          LT.insert (tnum tAllocReportRefID) tAllocReportRefID $
          LT.insert (tnum tAllocCancReplaceReason) tAllocCancReplaceReason $
          LT.insert (tnum tCopyMsgIndicator) tCopyMsgIndicator $
          LT.insert (tnum tAllocAccountType) tAllocAccountType $
          LT.insert (tnum tOrderAvgPx) tOrderAvgPx $
          LT.insert (tnum tOrderBookingQty) tOrderBookingQty $
          LT.insert (tnum tNoSettlPartySubIDs) tNoSettlPartySubIDs $
          LT.insert (tnum tNoPartySubIDs) tNoPartySubIDs $
          LT.insert (tnum tPartySubIDType) tPartySubIDType $
          LT.insert (tnum tNoNestedPartySubIDs) tNoNestedPartySubIDs $
          LT.insert (tnum tNestedPartySubIDType) tNestedPartySubIDType $
          LT.insert (tnum tNoNested2PartySubIDs) tNoNested2PartySubIDs $
          LT.insert (tnum tNested2PartySubIDType) tNested2PartySubIDType $
          LT.insert (tnum tAllocIntermedReqType) tAllocIntermedReqType $
          LT.insert (tnum tUnderlyingPx) tUnderlyingPx $
          LT.insert (tnum tPriceDelta) tPriceDelta $
          LT.insert (tnum tApplQueueMax) tApplQueueMax $
          LT.insert (tnum tApplQueueDepth) tApplQueueDepth $
          LT.insert (tnum tApplQueueResolution) tApplQueueResolution $
          LT.insert (tnum tApplQueueAction) tApplQueueAction $
          LT.insert (tnum tNoAltMDSource) tNoAltMDSource $
          LT.insert (tnum tAltMDSourceID) tAltMDSourceID $
          LT.insert (tnum tSecondaryTradeReportID) tSecondaryTradeReportID $
          LT.insert (tnum tAvgPxIndicator) tAvgPxIndicator $
          LT.insert (tnum tTradeLinkID) tTradeLinkID $
          LT.insert (tnum tOrderInputDevice) tOrderInputDevice $
          LT.insert (tnum tUnderlyingTradingSessionID) tUnderlyingTradingSessionID $
          LT.insert (tnum tUnderlyingTradingSessionSubID) tUnderlyingTradingSessionSubID $
          LT.insert (tnum tTradeLegRefID) tTradeLegRefID $
          LT.insert (tnum tExchangeRule) tExchangeRule $
          LT.insert (tnum tTradeAllocIndicator) tTradeAllocIndicator $
          LT.insert (tnum tExpirationCycle) tExpirationCycle $
          LT.insert (tnum tTrdType) tTrdType $
          LT.insert (tnum tTrdSubType) tTrdSubType $
          LT.insert (tnum tTransferReason) tTransferReason $
          LT.insert (tnum tAsgnReqID) tAsgnReqID $
          LT.insert (tnum tTotNumAssignmentReports) tTotNumAssignmentReports $
          LT.insert (tnum tAsgnRptID) tAsgnRptID $
          LT.insert (tnum tThresholdAmount) tThresholdAmount $
          LT.insert (tnum tPegMoveType) tPegMoveType $
          LT.insert (tnum tPegOffsetType) tPegOffsetType $
          LT.insert (tnum tPegLimitType) tPegLimitType $
          LT.insert (tnum tPegRoundDirection) tPegRoundDirection $
          LT.insert (tnum tPeggedPrice) tPeggedPrice $
          LT.insert (tnum tPegScope) tPegScope $
          LT.insert (tnum tDiscretionMoveType) tDiscretionMoveType $
          LT.insert (tnum tDiscretionOffsetType) tDiscretionOffsetType $
          LT.insert (tnum tDiscretionLimitType) tDiscretionLimitType $
          LT.insert (tnum tDiscretionRoundDirection) tDiscretionRoundDirection $
          LT.insert (tnum tDiscretionPrice) tDiscretionPrice $
          LT.insert (tnum tDiscretionScope) tDiscretionScope $
          LT.insert (tnum tTargetStrategy) tTargetStrategy $
          LT.insert (tnum tTargetStrategyParameters) tTargetStrategyParameters $
          LT.insert (tnum tParticipationRate) tParticipationRate $
          LT.insert (tnum tTargetStrategyPerformance) tTargetStrategyPerformance $
          LT.insert (tnum tLastLiquidityInd) tLastLiquidityInd $
          LT.insert (tnum tPublishTrdIndicator) tPublishTrdIndicator $
          LT.insert (tnum tShortSaleReason) tShortSaleReason $
          LT.insert (tnum tQtyType) tQtyType $
          LT.insert (tnum tSecondaryTrdType) tSecondaryTrdType $
          LT.insert (tnum tTradeReportType) tTradeReportType $
          LT.insert (tnum tAllocNoOrdersType) tAllocNoOrdersType $
          LT.insert (tnum tSharedCommission) tSharedCommission $
          LT.insert (tnum tConfirmReqID) tConfirmReqID $
          LT.insert (tnum tAvgParPx) tAvgParPx $
          LT.insert (tnum tReportedPx) tReportedPx $
          LT.insert (tnum tNoCapacities) tNoCapacities $
          LT.insert (tnum tOrderCapacityQty) tOrderCapacityQty $
          LT.insert (tnum tNoEvents) tNoEvents $
          LT.insert (tnum tEventType) tEventType $
          LT.insert (tnum tEventDate) tEventDate $
          LT.insert (tnum tEventPx) tEventPx $
          LT.insert (tnum tEventText) tEventText $
          LT.insert (tnum tPctAtRisk) tPctAtRisk $
          LT.insert (tnum tNoInstrAttrib) tNoInstrAttrib $
          LT.insert (tnum tInstrAttribType) tInstrAttribType $
          LT.insert (tnum tInstrAttribValue) tInstrAttribValue $
          LT.insert (tnum tDatedDate) tDatedDate $
          LT.insert (tnum tInterestAccrualDate) tInterestAccrualDate $
          LT.insert (tnum tCPProgram) tCPProgram $
          LT.insert (tnum tCPRegType) tCPRegType $
          LT.insert (tnum tUnderlyingCPProgram) tUnderlyingCPProgram $
          LT.insert (tnum tUnderlyingCPRegType) tUnderlyingCPRegType $
          LT.insert (tnum tUnderlyingQty) tUnderlyingQty $
          LT.insert (tnum tTrdMatchID) tTrdMatchID $
          LT.insert (tnum tSecondaryTradeReportRefID) tSecondaryTradeReportRefID $
          LT.insert (tnum tUnderlyingDirtyPrice) tUnderlyingDirtyPrice $
          LT.insert (tnum tUnderlyingEndPrice) tUnderlyingEndPrice $
          LT.insert (tnum tUnderlyingStartValue) tUnderlyingStartValue $
          LT.insert (tnum tUnderlyingCurrentValue) tUnderlyingCurrentValue $
          LT.insert (tnum tUnderlyingEndValue) tUnderlyingEndValue $
          LT.insert (tnum tNoUnderlyingStips) tNoUnderlyingStips $
          LT.insert (tnum tUnderlyingStipType) tUnderlyingStipType $
          LT.insert (tnum tUnderlyingStipValue) tUnderlyingStipValue $
          LT.insert (tnum tMaturityNetMoney) tMaturityNetMoney $
          LT.insert (tnum tMiscFeeBasis) tMiscFeeBasis $
          LT.insert (tnum tTotNoAllocs) tTotNoAllocs $
          LT.insert (tnum tLastFragment) tLastFragment $
          LT.insert (tnum tCollReqID) tCollReqID $
          LT.insert (tnum tCollAsgnReason) tCollAsgnReason $
          LT.insert (tnum tCollInquiryQualifier) tCollInquiryQualifier $
          LT.insert (tnum tNoTrades) tNoTrades $
          LT.insert (tnum tMarginRatio) tMarginRatio $
          LT.insert (tnum tMarginExcess) tMarginExcess $
          LT.insert (tnum tTotalNetValue) tTotalNetValue $
          LT.insert (tnum tCashOutstanding) tCashOutstanding $
          LT.insert (tnum tCollAsgnID) tCollAsgnID $
          LT.insert (tnum tCollAsgnTransType) tCollAsgnTransType $
          LT.insert (tnum tCollRespID) tCollRespID $
          LT.insert (tnum tCollAsgnRespType) tCollAsgnRespType $
          LT.insert (tnum tCollAsgnRejectReason) tCollAsgnRejectReason $
          LT.insert (tnum tCollAsgnRefID) tCollAsgnRefID $
          LT.insert (tnum tCollRptID) tCollRptID $
          LT.insert (tnum tCollInquiryID) tCollInquiryID $
          LT.insert (tnum tCollStatus) tCollStatus $
          LT.insert (tnum tTotNumReports) tTotNumReports $
          LT.insert (tnum tLastRptRequested) tLastRptRequested $
          LT.insert (tnum tAgreementDesc) tAgreementDesc $
          LT.insert (tnum tAgreementID) tAgreementID $
          LT.insert (tnum tAgreementDate) tAgreementDate $
          LT.insert (tnum tStartDate) tStartDate $
          LT.insert (tnum tEndDate) tEndDate $
          LT.insert (tnum tAgreementCurrency) tAgreementCurrency $
          LT.insert (tnum tDeliveryType) tDeliveryType $
          LT.insert (tnum tEndAccruedInterestAmt) tEndAccruedInterestAmt $
          LT.insert (tnum tStartCash) tStartCash $
          LT.insert (tnum tEndCash) tEndCash $
          LT.insert (tnum tUserRequestID) tUserRequestID $
          LT.insert (tnum tUserRequestType) tUserRequestType $
          LT.insert (tnum tNewPassword) tNewPassword $
          LT.insert (tnum tUserStatus) tUserStatus $
          LT.insert (tnum tUserStatusText) tUserStatusText $
          LT.insert (tnum tStatusValue) tStatusValue $
          LT.insert (tnum tStatusText) tStatusText $
          LT.insert (tnum tRefCompID) tRefCompID $
          LT.insert (tnum tRefSubID) tRefSubID $
          LT.insert (tnum tNetworkResponseID) tNetworkResponseID $
          LT.insert (tnum tNetworkRequestID) tNetworkRequestID $
          LT.insert (tnum tLastNetworkResponseID) tLastNetworkResponseID $
          LT.insert (tnum tNetworkRequestType) tNetworkRequestType $
          LT.insert (tnum tNoCompIDs) tNoCompIDs $
          LT.insert (tnum tNetworkStatusResponseType) tNetworkStatusResponseType $
          LT.insert (tnum tNoCollInquiryQualifier) tNoCollInquiryQualifier $
          LT.insert (tnum tTrdRptStatus) tTrdRptStatus $
          LT.insert (tnum tAffirmStatus) tAffirmStatus $
          LT.insert (tnum tUnderlyingStrikeCurrency) tUnderlyingStrikeCurrency $
          LT.insert (tnum tLegStrikeCurrency) tLegStrikeCurrency $
          LT.insert (tnum tTimeBracket) tTimeBracket $
          LT.insert (tnum tCollAction) tCollAction $
          LT.insert (tnum tCollInquiryStatus) tCollInquiryStatus $
          LT.insert (tnum tCollInquiryResult) tCollInquiryResult $
          LT.insert (tnum tStrikeCurrency) tStrikeCurrency $
          LT.insert (tnum tNoNested3PartyIDs) tNoNested3PartyIDs $
          LT.insert (tnum tNested3PartyID) tNested3PartyID $
          LT.insert (tnum tNested3PartyIDSource) tNested3PartyIDSource $
          LT.insert (tnum tNested3PartyRole) tNested3PartyRole $
          LT.insert (tnum tNoNested3PartySubIDs) tNoNested3PartySubIDs $
          LT.insert (tnum tNested3PartySubID) tNested3PartySubID $
          LT.insert (tnum tNested3PartySubIDType) tNested3PartySubIDType $
          LT.insert (tnum tLegContractSettlMonth) tLegContractSettlMonth $
          LT.insert (tnum tLegInterestAccrualDate) tLegInterestAccrualDate $
          LT.new