-----------------------------------------------------------------------
-- Lua Script Wireshark Dissector
-- 
-- Please see end of file for rules and regulations
-----------------------------------------------------------------------

-- Eurex Derivatives Eti T7 13.0 Protocol
local omi_eurex_derivatives_eti_t7_v13_0 = Proto("Eurex.Derivatives.Eti.T7.v13.0.Lua", "Eurex Derivatives Eti T7 13.0")

-- Protocol table
local eurex_derivatives_eti_t7_v13_0 = {}

-----------------------------------------------------------------------
-- Declare Protocol Fields
-----------------------------------------------------------------------

-- Eurex Derivatives Eti T7 13.0 Fields
omi_eurex_derivatives_eti_t7_v13_0.fields.account = ProtoField.new("Account", "eurex.derivatives.eti.t7.v13.0.account", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.activation_date = ProtoField.new("Activation Date", "eurex.derivatives.eti.t7.v13.0.activationdate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.affected_order_request_id = ProtoField.new("Affected Order Request Id", "eurex.derivatives.eti.t7.v13.0.affectedorderrequestid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.affected_order_requests_grp_comp = ProtoField.new("Affected Order Requests Grp Comp", "eurex.derivatives.eti.t7.v13.0.affectedorderrequestsgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.alignment_padding = ProtoField.new("Alignment Padding", "eurex.derivatives.eti.t7.v13.0.alignmentpadding", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.alloc_id = ProtoField.new("Alloc Id", "eurex.derivatives.eti.t7.v13.0.allocid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.alloc_qty = ProtoField.new("Alloc Qty", "eurex.derivatives.eti.t7.v13.0.allocqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_beg_msg_id = ProtoField.new("Appl Beg Msg Id", "eurex.derivatives.eti.t7.v13.0.applbegmsgid", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_beg_seq_num = ProtoField.new("Appl Beg Seq Num", "eurex.derivatives.eti.t7.v13.0.applbegseqnum", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_end_msg_id = ProtoField.new("Appl End Msg Id", "eurex.derivatives.eti.t7.v13.0.applendmsgid", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_end_seq_num = ProtoField.new("Appl End Seq Num", "eurex.derivatives.eti.t7.v13.0.applendseqnum", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_id = ProtoField.new("Appl Id", "eurex.derivatives.eti.t7.v13.0.applid", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_id_status = ProtoField.new("Appl Id Status", "eurex.derivatives.eti.t7.v13.0.applidstatus", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_msg_id = ProtoField.new("Appl Msg Id", "eurex.derivatives.eti.t7.v13.0.applmsgid", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_resend_flag = ProtoField.new("Appl Resend Flag", "eurex.derivatives.eti.t7.v13.0.applresendflag", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_indicator = ProtoField.new("Appl Seq Indicator", "eurex.derivatives.eti.t7.v13.0.applseqindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_num = ProtoField.new("Appl Seq Num", "eurex.derivatives.eti.t7.v13.0.applseqnum", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_status = ProtoField.new("Appl Seq Status", "eurex.derivatives.eti.t7.v13.0.applseqstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_trade_date = ProtoField.new("Appl Seq Trade Date", "eurex.derivatives.eti.t7.v13.0.applseqtradedate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_sub_id = ProtoField.new("Appl Sub Id", "eurex.derivatives.eti.t7.v13.0.applsubid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_total_message_count = ProtoField.new("Appl Total Message Count", "eurex.derivatives.eti.t7.v13.0.appltotalmessagecount", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_usage_orders = ProtoField.new("Appl Usage Orders", "eurex.derivatives.eti.t7.v13.0.applusageorders", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.appl_usage_quotes = ProtoField.new("Appl Usage Quotes", "eurex.derivatives.eti.t7.v13.0.applusagequotes", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.application_system_name = ProtoField.new("Application System Name", "eurex.derivatives.eti.t7.v13.0.applicationsystemname", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.application_system_vendor = ProtoField.new("Application System Vendor", "eurex.derivatives.eti.t7.v13.0.applicationsystemvendor", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.application_system_version = ProtoField.new("Application System Version", "eurex.derivatives.eti.t7.v13.0.applicationsystemversion", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.auto_approval_rule_id = ProtoField.new("Auto Approval Rule Id", "eurex.derivatives.eti.t7.v13.0.autoapprovalruleid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_anonymity = ProtoField.new("Basket Anonymity", "eurex.derivatives.eti.t7.v13.0.basketanonymity", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_exec_grp_comp = ProtoField.new("Basket Exec Grp Comp", "eurex.derivatives.eti.t7.v13.0.basketexecgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_exec_id = ProtoField.new("Basket Exec Id", "eurex.derivatives.eti.t7.v13.0.basketexecid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_party_contra_firm = ProtoField.new("Basket Party Contra Firm", "eurex.derivatives.eti.t7.v13.0.basketpartycontrafirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_profile_id = ProtoField.new("Basket Profile Id", "eurex.derivatives.eti.t7.v13.0.basketprofileid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_root_party_grp_comp = ProtoField.new("Basket Root Party Grp Comp", "eurex.derivatives.eti.t7.v13.0.basketrootpartygrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_bc_grp_comp = ProtoField.new("Basket Side Alloc Ext Bc Grp Comp", "eurex.derivatives.eti.t7.v13.0.basketsideallocextbcgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_grp_comp = ProtoField.new("Basket Side Alloc Ext Grp Comp", "eurex.derivatives.eti.t7.v13.0.basketsideallocextgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_grp_comp = ProtoField.new("Basket Side Alloc Grp Comp", "eurex.derivatives.eti.t7.v13.0.basketsideallocgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_trade_report_id = ProtoField.new("Basket Side Trade Report Id", "eurex.derivatives.eti.t7.v13.0.basketsidetradereportid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_trade_report_text = ProtoField.new("Basket Trade Report Text", "eurex.derivatives.eti.t7.v13.0.baskettradereporttext", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_trade_report_type = ProtoField.new("Basket Trade Report Type", "eurex.derivatives.eti.t7.v13.0.baskettradereporttype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_trd_match_id = ProtoField.new("Basket Trd Match Id", "eurex.derivatives.eti.t7.v13.0.baskettrdmatchid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.best_bid_px = ProtoField.new("Best Bid Px", "eurex.derivatives.eti.t7.v13.0.bestbidpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.best_bid_size = ProtoField.new("Best Bid Size", "eurex.derivatives.eti.t7.v13.0.bestbidsize", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.best_offer_px = ProtoField.new("Best Offer Px", "eurex.derivatives.eti.t7.v13.0.bestofferpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.best_offer_size = ProtoField.new("Best Offer Size", "eurex.derivatives.eti.t7.v13.0.bestoffersize", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.bid_px = ProtoField.new("Bid Px", "eurex.derivatives.eti.t7.v13.0.bidpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.bid_px_is_locked = ProtoField.new("Bid Px Is Locked", "eurex.derivatives.eti.t7.v13.0.bidpxislocked", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.bid_size = ProtoField.new("Bid Size", "eurex.derivatives.eti.t7.v13.0.bidsize", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.body_len = ProtoField.new("Body Len", "eurex.derivatives.eti.t7.v13.0.bodylen", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.charge_id = ProtoField.new("Charge Id", "eurex.derivatives.eti.t7.v13.0.chargeid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.charge_id_disclosure_instruction = ProtoField.new("Charge Id Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.chargeiddisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.check_sum_correction = ProtoField.new("Check Sum Correction", "eurex.derivatives.eti.t7.v13.0.checksumcorrection", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.cl_ord_id = ProtoField.new("Cl Ord Id", "eurex.derivatives.eti.t7.v13.0.clordid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.clearing_trade_price = ProtoField.new("Clearing Trade Price", "eurex.derivatives.eti.t7.v13.0.clearingtradeprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.clearing_trade_qty = ProtoField.new("Clearing Trade Qty", "eurex.derivatives.eti.t7.v13.0.clearingtradeqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.compliance_text = ProtoField.new("Compliance Text", "eurex.derivatives.eti.t7.v13.0.compliancetext", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.contract_date = ProtoField.new("Contract Date", "eurex.derivatives.eti.t7.v13.0.contractdate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_id = ProtoField.new("Cross Id", "eurex.derivatives.eti.t7.v13.0.crossid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_prioritization = ProtoField.new("Cross Prioritization", "eurex.derivatives.eti.t7.v13.0.crossprioritization", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_ack_side_grp_comp = ProtoField.new("Cross Request Ack Side Grp Comp", "eurex.derivatives.eti.t7.v13.0.crossrequestacksidegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_id = ProtoField.new("Cross Request Id", "eurex.derivatives.eti.t7.v13.0.crossrequestid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_side_grp_comp = ProtoField.new("Cross Request Side Grp Comp", "eurex.derivatives.eti.t7.v13.0.crossrequestsidegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_type = ProtoField.new("Cross Request Type", "eurex.derivatives.eti.t7.v13.0.crossrequesttype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_type = ProtoField.new("Cross Type", "eurex.derivatives.eti.t7.v13.0.crosstype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.crossed_indicator = ProtoField.new("Crossed Indicator", "eurex.derivatives.eti.t7.v13.0.crossedindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.cum_qty = ProtoField.new("Cum Qty", "eurex.derivatives.eti.t7.v13.0.cumqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.cust_order_handling_inst = ProtoField.new("Cust Order Handling Inst", "eurex.derivatives.eti.t7.v13.0.custorderhandlinginst", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.cxl_qty = ProtoField.new("Cxl Qty", "eurex.derivatives.eti.t7.v13.0.cxlqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.cxl_size = ProtoField.new("Cxl Size", "eurex.derivatives.eti.t7.v13.0.cxlsize", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.default_cstm_appl_ver_id = ProtoField.new("Default Cstm Appl Ver Id", "eurex.derivatives.eti.t7.v13.0.defaultcstmapplverid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.default_cstm_appl_ver_sub_id = ProtoField.new("Default Cstm Appl Ver Sub Id", "eurex.derivatives.eti.t7.v13.0.defaultcstmapplversubid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_reason = ProtoField.new("Delete Reason", "eurex.derivatives.eti.t7.v13.0.deletereason", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.delta = ProtoField.new("Delta", "eurex.derivatives.eti.t7.v13.0.delta", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.effect_on_basket = ProtoField.new("Effect On Basket", "eurex.derivatives.eti.t7.v13.0.effectonbasket", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.effective_time = ProtoField.new("Effective Time", "eurex.derivatives.eti.t7.v13.0.effectivetime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.encrypted_password = ProtoField.new("Encrypted Password", "eurex.derivatives.eti.t7.v13.0.encryptedpassword", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.enlight_rfq_avg_resp_rate_ranking = ProtoField.new("Enlight Rfq Avg Resp Rate Ranking", "eurex.derivatives.eti.t7.v13.0.enlightrfqavgresprateranking", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.enlight_rfq_avg_resp_time_ranking = ProtoField.new("Enlight Rfq Avg Resp Time Ranking", "eurex.derivatives.eti.t7.v13.0.enlightrfqavgresptimeranking", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.enrichment_rule_id = ProtoField.new("Enrichment Rule Id", "eurex.derivatives.eti.t7.v13.0.enrichmentruleid", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.enrichment_rules_grp_comp = ProtoField.new("Enrichment Rules Grp Comp", "eurex.derivatives.eti.t7.v13.0.enrichmentrulesgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.eurex_volume_ranking = ProtoField.new("Eurex Volume Ranking", "eurex.derivatives.eti.t7.v13.0.eurexvolumeranking", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.event_date = ProtoField.new("Event Date", "eurex.derivatives.eti.t7.v13.0.eventdate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.event_type = ProtoField.new("Event Type", "eurex.derivatives.eti.t7.v13.0.eventtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.exec_id = ProtoField.new("Exec Id", "eurex.derivatives.eti.t7.v13.0.execid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.exec_inst = ProtoField.new("Exec Inst", "eurex.derivatives.eti.t7.v13.0.execinst", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.exec_restatement_reason = ProtoField.new("Exec Restatement Reason", "eurex.derivatives.eti.t7.v13.0.execrestatementreason", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.exec_type = ProtoField.new("Exec Type", "eurex.derivatives.eti.t7.v13.0.exectype", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.executing_trader = ProtoField.new("Executing Trader", "eurex.derivatives.eti.t7.v13.0.executingtrader", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.executing_trader_qualifier = ProtoField.new("Executing Trader Qualifier", "eurex.derivatives.eti.t7.v13.0.executingtraderqualifier", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.exercise_style = ProtoField.new("Exercise Style", "eurex.derivatives.eti.t7.v13.0.exercisestyle", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.expire_date = ProtoField.new("Expire Date", "eurex.derivatives.eti.t7.v13.0.expiredate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.expire_time = ProtoField.new("Expire Time", "eurex.derivatives.eti.t7.v13.0.expiretime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.exposure_duration = ProtoField.new("Exposure Duration", "eurex.derivatives.eti.t7.v13.0.exposureduration", ftypes.INT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.fee_idnt_code = ProtoField.new("Fee Idnt Code", "eurex.derivatives.eti.t7.v13.0.feeidntcode", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.fill_exec_id = ProtoField.new("Fill Exec Id", "eurex.derivatives.eti.t7.v13.0.fillexecid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.fill_liquidity_ind = ProtoField.new("Fill Liquidity Ind", "eurex.derivatives.eti.t7.v13.0.fillliquidityind", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.fill_match_id = ProtoField.new("Fill Match Id", "eurex.derivatives.eti.t7.v13.0.fillmatchid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.fill_px = ProtoField.new("Fill Px", "eurex.derivatives.eti.t7.v13.0.fillpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.fill_qty = ProtoField.new("Fill Qty", "eurex.derivatives.eti.t7.v13.0.fillqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.fill_ref_id = ProtoField.new("Fill Ref Id", "eurex.derivatives.eti.t7.v13.0.fillrefid", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.fills_grp_comp = ProtoField.new("Fills Grp Comp", "eurex.derivatives.eti.t7.v13.0.fillsgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.firm_negotiation_id = ProtoField.new("Firm Negotiation Id", "eurex.derivatives.eti.t7.v13.0.firmnegotiationid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.firm_trade_id = ProtoField.new("Firm Trade Id", "eurex.derivatives.eti.t7.v13.0.firmtradeid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.fix_cl_ord_id = ProtoField.new("Fix Cl Ord Id", "eurex.derivatives.eti.t7.v13.0.fixclordid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.fix_engine_name = ProtoField.new("Fix Engine Name", "eurex.derivatives.eti.t7.v13.0.fixenginename", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.fix_engine_vendor = ProtoField.new("Fix Engine Vendor", "eurex.derivatives.eti.t7.v13.0.fixenginevendor", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.fix_engine_version = ProtoField.new("Fix Engine Version", "eurex.derivatives.eti.t7.v13.0.fixengineversion", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_1 = ProtoField.new("Free Text 1", "eurex.derivatives.eti.t7.v13.0.freetext1", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_2 = ProtoField.new("Free Text 2", "eurex.derivatives.eti.t7.v13.0.freetext2", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_3 = ProtoField.new("Free Text 3", "eurex.derivatives.eti.t7.v13.0.freetext3", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_5 = ProtoField.new("Free Text 5", "eurex.derivatives.eti.t7.v13.0.freetext5", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_5_disclosure_instruction = ProtoField.new("Free Text 5 Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.freetext5disclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.headline = ProtoField.new("Headline", "eurex.derivatives.eti.t7.v13.0.headline", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.heart_bt_int = ProtoField.new("Heart Bt Int", "eurex.derivatives.eti.t7.v13.0.heartbtint", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.hedge_type = ProtoField.new("Hedge Type", "eurex.derivatives.eti.t7.v13.0.hedgetype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.hedging_instruction = ProtoField.new("Hedging Instruction", "eurex.derivatives.eti.t7.v13.0.hedginginstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.high_limit_price = ProtoField.new("High Limit Price", "eurex.derivatives.eti.t7.v13.0.highlimitprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.implied_check_price_indicator = ProtoField.new("Implied Check Price Indicator", "eurex.derivatives.eti.t7.v13.0.impliedcheckpriceindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.implied_market_indicator = ProtoField.new("Implied Market Indicator", "eurex.derivatives.eti.t7.v13.0.impliedmarketindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.individual_alloc_id = ProtoField.new("Individual Alloc Id", "eurex.derivatives.eti.t7.v13.0.individualallocid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.input_source = ProtoField.new("Input Source", "eurex.derivatives.eti.t7.v13.0.inputsource", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.instr_attrib_type = ProtoField.new("Instr Attrib Type", "eurex.derivatives.eti.t7.v13.0.instrattribtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.instr_attrib_value = ProtoField.new("Instr Attrib Value", "eurex.derivatives.eti.t7.v13.0.instrattribvalue", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrmnt_leg_exec_grp_comp = ProtoField.new("Instrmnt Leg Exec Grp Comp", "eurex.derivatives.eti.t7.v13.0.instrmntlegexecgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_leg_grp_comp = ProtoField.new("Instrmt Leg Grp Comp", "eurex.derivatives.eti.t7.v13.0.instrmtleggrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_match_side_grp_comp = ProtoField.new("Instrmt Match Side Grp Comp", "eurex.derivatives.eti.t7.v13.0.instrmtmatchsidegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_match_side_id = ProtoField.new("Instrmt Match Side Id", "eurex.derivatives.eti.t7.v13.0.instrmtmatchsideid", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_attribute_grp_comp = ProtoField.new("Instrument Attribute Grp Comp", "eurex.derivatives.eti.t7.v13.0.instrumentattributegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_event_grp_comp = ProtoField.new("Instrument Event Grp Comp", "eurex.derivatives.eti.t7.v13.0.instrumenteventgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inventory_check_type = ProtoField.new("Inventory Check Type", "eurex.derivatives.eti.t7.v13.0.inventorychecktype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.last_entity_processed = ProtoField.new("Last Entity Processed", "eurex.derivatives.eti.t7.v13.0.lastentityprocessed", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.last_fragment = ProtoField.new("Last Fragment", "eurex.derivatives.eti.t7.v13.0.lastfragment", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.last_px = ProtoField.new("Last Px", "eurex.derivatives.eti.t7.v13.0.lastpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.last_px_disclosure_instruction = ProtoField.new("Last Px Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.lastpxdisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.last_qty = ProtoField.new("Last Qty", "eurex.derivatives.eti.t7.v13.0.lastqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.last_qty_disclosure_instruction = ProtoField.new("Last Qty Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.lastqtydisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.last_update_time = ProtoField.new("Last Update Time", "eurex.derivatives.eti.t7.v13.0.lastupdatetime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.latest_public_key_seq_no = ProtoField.new("Latest Public Key Seq No", "eurex.derivatives.eti.t7.v13.0.latestpublickeyseqno", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.leaves_qty = ProtoField.new("Leaves Qty", "eurex.derivatives.eti.t7.v13.0.leavesqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.leaves_qty_disclosure_instruction = ProtoField.new("Leaves Qty Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.leavesqtydisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_account = ProtoField.new("Leg Account", "eurex.derivatives.eti.t7.v13.0.legaccount", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_clearing_trade_price = ProtoField.new("Leg Clearing Trade Price", "eurex.derivatives.eti.t7.v13.0.legclearingtradeprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_exec_id = ProtoField.new("Leg Exec Id", "eurex.derivatives.eti.t7.v13.0.legexecid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_input_source = ProtoField.new("Leg Input Source", "eurex.derivatives.eti.t7.v13.0.leginputsource", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_last_px = ProtoField.new("Leg Last Px", "eurex.derivatives.eti.t7.v13.0.leglastpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_last_qty = ProtoField.new("Leg Last Qty", "eurex.derivatives.eti.t7.v13.0.leglastqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_ord_grp_comp = ProtoField.new("Leg Ord Grp Comp", "eurex.derivatives.eti.t7.v13.0.legordgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_position_effect = ProtoField.new("Leg Position Effect", "eurex.derivatives.eti.t7.v13.0.legpositioneffect", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_price = ProtoField.new("Leg Price", "eurex.derivatives.eti.t7.v13.0.legprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_qty = ProtoField.new("Leg Qty", "eurex.derivatives.eti.t7.v13.0.legqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_ratio_qty = ProtoField.new("Leg Ratio Qty", "eurex.derivatives.eti.t7.v13.0.legratioqty", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_security_id = ProtoField.new("Leg Security Id", "eurex.derivatives.eti.t7.v13.0.legsecurityid", ftypes.INT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_security_type = ProtoField.new("Leg Security Type", "eurex.derivatives.eti.t7.v13.0.legsecuritytype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_side = ProtoField.new("Leg Side", "eurex.derivatives.eti.t7.v13.0.legside", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_symbol = ProtoField.new("Leg Symbol", "eurex.derivatives.eti.t7.v13.0.legsymbol", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.list_update_action = ProtoField.new("List Update Action", "eurex.derivatives.eti.t7.v13.0.listupdateaction", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.low_limit_price = ProtoField.new("Low Limit Price", "eurex.derivatives.eti.t7.v13.0.lowlimitprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.margin_based_risk_limit_long = ProtoField.new("Margin Based Risk Limit Long", "eurex.derivatives.eti.t7.v13.0.marginbasedrisklimitlong", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.margin_based_risk_limit_short = ProtoField.new("Margin Based Risk Limit Short", "eurex.derivatives.eti.t7.v13.0.marginbasedrisklimitshort", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.market_id = ProtoField.new("Market Id", "eurex.derivatives.eti.t7.v13.0.marketid", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.market_segment_id = ProtoField.new("Market Segment Id", "eurex.derivatives.eti.t7.v13.0.marketsegmentid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_reason = ProtoField.new("Mass Action Reason", "eurex.derivatives.eti.t7.v13.0.massactionreason", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_report_id = ProtoField.new("Mass Action Report Id", "eurex.derivatives.eti.t7.v13.0.massactionreportid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_sub_type = ProtoField.new("Mass Action Sub Type", "eurex.derivatives.eti.t7.v13.0.massactionsubtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_type = ProtoField.new("Mass Action Type", "eurex.derivatives.eti.t7.v13.0.massactiontype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order_report_id = ProtoField.new("Mass Order Report Id", "eurex.derivatives.eti.t7.v13.0.massorderreportid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order_request_id = ProtoField.new("Mass Order Request Id", "eurex.derivatives.eti.t7.v13.0.massorderrequestid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.match_date = ProtoField.new("Match Date", "eurex.derivatives.eti.t7.v13.0.matchdate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.match_inst_cross_id = ProtoField.new("Match Inst Cross Id", "eurex.derivatives.eti.t7.v13.0.matchinstcrossid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.match_sub_type = ProtoField.new("Match Sub Type", "eurex.derivatives.eti.t7.v13.0.matchsubtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.match_type = ProtoField.new("Match Type", "eurex.derivatives.eti.t7.v13.0.matchtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.matching_engine_status = ProtoField.new("Matching Engine Status", "eurex.derivatives.eti.t7.v13.0.matchingenginestatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.matching_engine_trade_date = ProtoField.new("Matching Engine Trade Date", "eurex.derivatives.eti.t7.v13.0.matchingenginetradedate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.maturity_date = ProtoField.new("Maturity Date", "eurex.derivatives.eti.t7.v13.0.maturitydate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.maturity_month_year = ProtoField.new("Maturity Month Year", "eurex.derivatives.eti.t7.v13.0.maturitymonthyear", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.maximum_price = ProtoField.new("Maximum Price", "eurex.derivatives.eti.t7.v13.0.maximumprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.md_book_type = ProtoField.new("Md Book Type", "eurex.derivatives.eti.t7.v13.0.mdbooktype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.md_sub_book_type = ProtoField.new("Md Sub Book Type", "eurex.derivatives.eti.t7.v13.0.mdsubbooktype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.message = ProtoField.new("Message", "eurex.derivatives.eti.t7.v13.0.message", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.message_event_source = ProtoField.new("Message Event Source", "eurex.derivatives.eti.t7.v13.0.messageeventsource", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.message_header = ProtoField.new("Message Header", "eurex.derivatives.eti.t7.v13.0.messageheader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_grp_comp = ProtoField.new("Mm Parameter Grp Comp", "eurex.derivatives.eti.t7.v13.0.mmparametergrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_report_id = ProtoField.new("Mm Parameter Report Id", "eurex.derivatives.eti.t7.v13.0.mmparameterreportid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.mm_risk_limit_action_type = ProtoField.new("Mm Risk Limit Action Type", "eurex.derivatives.eti.t7.v13.0.mmrisklimitactiontype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.msg_seq_num = ProtoField.new("Msg Seq Num", "eurex.derivatives.eti.t7.v13.0.msgseqnum", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.multi_leg_reporting_type = ProtoField.new("Multi Leg Reporting Type", "eurex.derivatives.eti.t7.v13.0.multilegreportingtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.multileg_model = ProtoField.new("Multileg Model", "eurex.derivatives.eti.t7.v13.0.multilegmodel", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.multileg_price_model = ProtoField.new("Multileg Price Model", "eurex.derivatives.eti.t7.v13.0.multilegpricemodel", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.negotiation_id = ProtoField.new("Negotiation Id", "eurex.derivatives.eti.t7.v13.0.negotiationid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.negotiation_start_time = ProtoField.new("Negotiation Start Time", "eurex.derivatives.eti.t7.v13.0.negotiationstarttime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.netting_coefficient = ProtoField.new("Netting Coefficient", "eurex.derivatives.eti.t7.v13.0.nettingcoefficient", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.network_msg_id = ProtoField.new("Network Msg Id", "eurex.derivatives.eti.t7.v13.0.networkmsgid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_data_bc_grp_comp = ProtoField.new("New Basket Data Bc Grp Comp", "eurex.derivatives.eti.t7.v13.0.newbasketdatabcgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_data_grp_comp = ProtoField.new("New Basket Data Grp Comp", "eurex.derivatives.eti.t7.v13.0.newbasketdatagrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_instrmt_match_side_grp_comp = ProtoField.new("New Basket Instrmt Match Side Grp Comp", "eurex.derivatives.eti.t7.v13.0.newbasketinstrmtmatchsidegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_side_alloc_grp_comp = ProtoField.new("New Basket Side Alloc Grp Comp", "eurex.derivatives.eti.t7.v13.0.newbasketsideallocgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.news_rtm_service_status = ProtoField.new("News Rtm Service Status", "eurex.derivatives.eti.t7.v13.0.newsrtmservicestatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_affected_order_requests = ProtoField.new("No Affected Order Requests", "eurex.derivatives.eti.t7.v13.0.noaffectedorderrequests", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_basket_root_party_grps = ProtoField.new("No Basket Root Party Grps", "eurex.derivatives.eti.t7.v13.0.nobasketrootpartygrps", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_basket_root_party_grps_bc = ProtoField.new("No Basket Root Party Grps Bc", "eurex.derivatives.eti.t7.v13.0.nobasketrootpartygrpsbc", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_basket_side_alloc = ProtoField.new("No Basket Side Alloc", "eurex.derivatives.eti.t7.v13.0.nobasketsidealloc", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_cross_legs = ProtoField.new("No Cross Legs", "eurex.derivatives.eti.t7.v13.0.nocrosslegs", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_enrichment_rules = ProtoField.new("No Enrichment Rules", "eurex.derivatives.eti.t7.v13.0.noenrichmentrules", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_events = ProtoField.new("No Events", "eurex.derivatives.eti.t7.v13.0.noevents", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_fills = ProtoField.new("No Fills", "eurex.derivatives.eti.t7.v13.0.nofills", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_instr_attrib = ProtoField.new("No Instr Attrib", "eurex.derivatives.eti.t7.v13.0.noinstrattrib", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_instrmt_match_sides = ProtoField.new("No Instrmt Match Sides", "eurex.derivatives.eti.t7.v13.0.noinstrmtmatchsides", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_leg_clearing_prices = ProtoField.new("No Leg Clearing Prices", "eurex.derivatives.eti.t7.v13.0.nolegclearingprices", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_leg_execs = ProtoField.new("No Leg Execs", "eurex.derivatives.eti.t7.v13.0.nolegexecs", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_leg_onbooks = ProtoField.new("No Leg Onbooks", "eurex.derivatives.eti.t7.v13.0.nolegonbooks", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_legs = ProtoField.new("No Legs", "eurex.derivatives.eti.t7.v13.0.nolegs", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_mm_parameters = ProtoField.new("No Mm Parameters", "eurex.derivatives.eti.t7.v13.0.nommparameters", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_new_basket_instrmt_match_sides = ProtoField.new("No New Basket Instrmt Match Sides", "eurex.derivatives.eti.t7.v13.0.nonewbasketinstrmtmatchsides", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_new_basket_side_alloc = ProtoField.new("No New Basket Side Alloc", "eurex.derivatives.eti.t7.v13.0.nonewbasketsidealloc", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_not_affected_orders = ProtoField.new("No Not Affected Orders", "eurex.derivatives.eti.t7.v13.0.nonotaffectedorders", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_not_affected_securities = ProtoField.new("No Not Affected Securities", "eurex.derivatives.eti.t7.v13.0.nonotaffectedsecurities", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_old_basket_instrmt_match_sides = ProtoField.new("No Old Basket Instrmt Match Sides", "eurex.derivatives.eti.t7.v13.0.nooldbasketinstrmtmatchsides", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_old_basket_side_alloc = ProtoField.new("No Old Basket Side Alloc", "eurex.derivatives.eti.t7.v13.0.nooldbasketsidealloc", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_order_book_items = ProtoField.new("No Order Book Items", "eurex.derivatives.eti.t7.v13.0.noorderbookitems", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_order_entries = ProtoField.new("No Order Entries", "eurex.derivatives.eti.t7.v13.0.noorderentries", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_order_events = ProtoField.new("No Order Events", "eurex.derivatives.eti.t7.v13.0.noorderevents", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_party_details = ProtoField.new("No Party Details", "eurex.derivatives.eti.t7.v13.0.nopartydetails", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_party_risk_limits = ProtoField.new("No Party Risk Limits", "eurex.derivatives.eti.t7.v13.0.nopartyrisklimits", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_entries = ProtoField.new("No Quote Entries", "eurex.derivatives.eti.t7.v13.0.noquoteentries", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_events = ProtoField.new("No Quote Events", "eurex.derivatives.eti.t7.v13.0.noquoteevents", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_events_index = ProtoField.new("No Quote Events Index", "eurex.derivatives.eti.t7.v13.0.noquoteeventsindex", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_side_entries = ProtoField.new("No Quote Side Entries", "eurex.derivatives.eti.t7.v13.0.noquotesideentries", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_risk_limits = ProtoField.new("No Risk Limits", "eurex.derivatives.eti.t7.v13.0.norisklimits", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_risk_limits_qty = ProtoField.new("No Risk Limits Qty", "eurex.derivatives.eti.t7.v13.0.norisklimitsqty", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_sessions = ProtoField.new("No Sessions", "eurex.derivatives.eti.t7.v13.0.nosessions", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_side_allocs = ProtoField.new("No Side Allocs", "eurex.derivatives.eti.t7.v13.0.nosideallocs", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_sides = ProtoField.new("No Sides", "eurex.derivatives.eti.t7.v13.0.nosides", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_srqs_quote_grps = ProtoField.new("No Srqs Quote Grps", "eurex.derivatives.eti.t7.v13.0.nosrqsquotegrps", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_srqs_target_party_trd_grps = ProtoField.new("No Srqs Target Party Trd Grps", "eurex.derivatives.eti.t7.v13.0.nosrqstargetpartytrdgrps", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_target_party_i_ds = ProtoField.new("No Target Party I Ds", "eurex.derivatives.eti.t7.v13.0.notargetpartyids", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.no_underlying_stips = ProtoField.new("No Underlying Stips", "eurex.derivatives.eti.t7.v13.0.nounderlyingstips", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.not_aff_orig_cl_ord_id = ProtoField.new("Not Aff Orig Cl Ord Id", "eurex.derivatives.eti.t7.v13.0.notafforigclordid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_order_id = ProtoField.new("Not Affected Order Id", "eurex.derivatives.eti.t7.v13.0.notaffectedorderid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_orders_grp_comp = ProtoField.new("Not Affected Orders Grp Comp", "eurex.derivatives.eti.t7.v13.0.notaffectedordersgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_securities_grp_comp = ProtoField.new("Not Affected Securities Grp Comp", "eurex.derivatives.eti.t7.v13.0.notaffectedsecuritiesgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_security_id = ProtoField.new("Not Affected Security Id", "eurex.derivatives.eti.t7.v13.0.notaffectedsecurityid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.notif_header_comp = ProtoField.new("Notif Header Comp", "eurex.derivatives.eti.t7.v13.0.notifheadercomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.notification_in = ProtoField.new("Notification In", "eurex.derivatives.eti.t7.v13.0.notificationin", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.nr_response_header_me_comp = ProtoField.new("Nr Response Header Me Comp", "eurex.derivatives.eti.t7.v13.0.nrresponseheadermecomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.nrbc_header_comp = ProtoField.new("Nrbc Header Comp", "eurex.derivatives.eti.t7.v13.0.nrbcheadercomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.number_of_resp_disclosure_instruction = ProtoField.new("Number Of Resp Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.numberofrespdisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.number_of_respondents = ProtoField.new("Number Of Respondents", "eurex.derivatives.eti.t7.v13.0.numberofrespondents", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.number_of_securities = ProtoField.new("Number Of Securities", "eurex.derivatives.eti.t7.v13.0.numberofsecurities", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.offer_px = ProtoField.new("Offer Px", "eurex.derivatives.eti.t7.v13.0.offerpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.offer_px_is_locked = ProtoField.new("Offer Px Is Locked", "eurex.derivatives.eti.t7.v13.0.offerpxislocked", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.offer_size = ProtoField.new("Offer Size", "eurex.derivatives.eti.t7.v13.0.offersize", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_data_bc_grp_comp = ProtoField.new("Old Basket Data Bc Grp Comp", "eurex.derivatives.eti.t7.v13.0.oldbasketdatabcgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_data_grp_comp = ProtoField.new("Old Basket Data Grp Comp", "eurex.derivatives.eti.t7.v13.0.oldbasketdatagrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_instrmt_match_side_grp_comp = ProtoField.new("Old Basket Instrmt Match Side Grp Comp", "eurex.derivatives.eti.t7.v13.0.oldbasketinstrmtmatchsidegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_side_alloc_grp_comp = ProtoField.new("Old Basket Side Alloc Grp Comp", "eurex.derivatives.eti.t7.v13.0.oldbasketsideallocgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.opt_attribute = ProtoField.new("Opt Attribute", "eurex.derivatives.eti.t7.v13.0.optattribute", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.optional_early_termination_indicator = ProtoField.new("Optional Early Termination Indicator", "eurex.derivatives.eti.t7.v13.0.optionalearlyterminationindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.ord_status = ProtoField.new("Ord Status", "eurex.derivatives.eti.t7.v13.0.ordstatus", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.ord_type = ProtoField.new("Ord Type", "eurex.derivatives.eti.t7.v13.0.ordtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_attribute_liquidity_provision = ProtoField.new("Order Attribute Liquidity Provision", "eurex.derivatives.eti.t7.v13.0.orderattributeliquidityprovision", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_attribute_risk_reduction = ProtoField.new("Order Attribute Risk Reduction", "eurex.derivatives.eti.t7.v13.0.orderattributeriskreduction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_book_item_grp_comp = ProtoField.new("Order Book Item Grp Comp", "eurex.derivatives.eti.t7.v13.0.orderbookitemgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_category = ProtoField.new("Order Category", "eurex.derivatives.eti.t7.v13.0.ordercategory", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_entry_grp_comp = ProtoField.new("Order Entry Grp Comp", "eurex.derivatives.eti.t7.v13.0.orderentrygrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_grp_comp = ProtoField.new("Order Event Grp Comp", "eurex.derivatives.eti.t7.v13.0.ordereventgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_match_id = ProtoField.new("Order Event Match Id", "eurex.derivatives.eti.t7.v13.0.ordereventmatchid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_px = ProtoField.new("Order Event Px", "eurex.derivatives.eti.t7.v13.0.ordereventpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_qty = ProtoField.new("Order Event Qty", "eurex.derivatives.eti.t7.v13.0.ordereventqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_reason = ProtoField.new("Order Event Reason", "eurex.derivatives.eti.t7.v13.0.ordereventreason", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_id = ProtoField.new("Order Id", "eurex.derivatives.eti.t7.v13.0.orderid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_origination = ProtoField.new("Order Origination", "eurex.derivatives.eti.t7.v13.0.orderorigination", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_qty = ProtoField.new("Order Qty", "eurex.derivatives.eti.t7.v13.0.orderqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_qty_disclosure_instruction = ProtoField.new("Order Qty Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.orderqtydisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_qty_is_locked = ProtoField.new("Order Qty Is Locked", "eurex.derivatives.eti.t7.v13.0.orderqtyislocked", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_routing_indicator = ProtoField.new("Order Routing Indicator", "eurex.derivatives.eti.t7.v13.0.orderroutingindicator", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_side = ProtoField.new("Order Side", "eurex.derivatives.eti.t7.v13.0.orderside", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.orig_basket_trd_match_id = ProtoField.new("Orig Basket Trd Match Id", "eurex.derivatives.eti.t7.v13.0.origbaskettrdmatchid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.orig_cl_ord_id = ProtoField.new("Orig Cl Ord Id", "eurex.derivatives.eti.t7.v13.0.origclordid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.orig_time = ProtoField.new("Orig Time", "eurex.derivatives.eti.t7.v13.0.origtime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.orig_trade_id = ProtoField.new("Orig Trade Id", "eurex.derivatives.eti.t7.v13.0.origtradeid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.ownership_indicator = ProtoField.new("Ownership Indicator", "eurex.derivatives.eti.t7.v13.0.ownershipindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.package_id = ProtoField.new("Package Id", "eurex.derivatives.eti.t7.v13.0.packageid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.packet = ProtoField.new("Packet", "eurex.derivatives.eti.t7.v13.0.packet", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_1 = ProtoField.new("Pad 1", "eurex.derivatives.eti.t7.v13.0.pad1", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_11 = ProtoField.new("Pad 11", "eurex.derivatives.eti.t7.v13.0.pad11", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_2 = ProtoField.new("Pad 2", "eurex.derivatives.eti.t7.v13.0.pad2", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_22 = ProtoField.new("Pad 22", "eurex.derivatives.eti.t7.v13.0.pad22", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_23 = ProtoField.new("Pad 23", "eurex.derivatives.eti.t7.v13.0.pad23", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_3 = ProtoField.new("Pad 3", "eurex.derivatives.eti.t7.v13.0.pad3", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_4 = ProtoField.new("Pad 4", "eurex.derivatives.eti.t7.v13.0.pad4", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_41 = ProtoField.new("Pad 41", "eurex.derivatives.eti.t7.v13.0.pad41", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_5 = ProtoField.new("Pad 5", "eurex.derivatives.eti.t7.v13.0.pad5", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_6 = ProtoField.new("Pad 6", "eurex.derivatives.eti.t7.v13.0.pad6", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.pad_7 = ProtoField.new("Pad 7", "eurex.derivatives.eti.t7.v13.0.pad7", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.partition_id = ProtoField.new("Partition Id", "eurex.derivatives.eti.t7.v13.0.partitionid", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_action_type = ProtoField.new("Party Action Type", "eurex.derivatives.eti.t7.v13.0.partyactiontype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_desk_id = ProtoField.new("Party Detail Desk Id", "eurex.derivatives.eti.t7.v13.0.partydetaildeskid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_executing_trader = ProtoField.new("Party Detail Executing Trader", "eurex.derivatives.eti.t7.v13.0.partydetailexecutingtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_executing_unit = ProtoField.new("Party Detail Executing Unit", "eurex.derivatives.eti.t7.v13.0.partydetailexecutingunit", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_id_executing_trader = ProtoField.new("Party Detail Id Executing Trader", "eurex.derivatives.eti.t7.v13.0.partydetailidexecutingtrader", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_id_executing_unit = ProtoField.new("Party Detail Id Executing Unit", "eurex.derivatives.eti.t7.v13.0.partydetailidexecutingunit", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_role_qualifier = ProtoField.new("Party Detail Role Qualifier", "eurex.derivatives.eti.t7.v13.0.partydetailrolequalifier", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_status = ProtoField.new("Party Detail Status", "eurex.derivatives.eti.t7.v13.0.partydetailstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_status_information = ProtoField.new("Party Detail Status Information", "eurex.derivatives.eti.t7.v13.0.partydetailstatusinformation", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_details_grp_comp = ProtoField.new("Party Details Grp Comp", "eurex.derivatives.eti.t7.v13.0.partydetailsgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_end_client_identification = ProtoField.new("Party End Client Identification", "eurex.derivatives.eti.t7.v13.0.partyendclientidentification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_entering_trader = ProtoField.new("Party Entering Trader", "eurex.derivatives.eti.t7.v13.0.partyenteringtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_executing_firm = ProtoField.new("Party Executing Firm", "eurex.derivatives.eti.t7.v13.0.partyexecutingfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_executing_trader = ProtoField.new("Party Executing Trader", "eurex.derivatives.eti.t7.v13.0.partyexecutingtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_executing_unit = ProtoField.new("Party Executing Unit", "eurex.derivatives.eti.t7.v13.0.partyexecutingunit", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_beneficiary = ProtoField.new("Party Id Beneficiary", "eurex.derivatives.eti.t7.v13.0.partyidbeneficiary", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_client_id = ProtoField.new("Party Id Client Id", "eurex.derivatives.eti.t7.v13.0.partyidclientid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_entering_firm = ProtoField.new("Party Id Entering Firm", "eurex.derivatives.eti.t7.v13.0.partyidenteringfirm", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_entering_trader = ProtoField.new("Party Id Entering Trader", "eurex.derivatives.eti.t7.v13.0.partyidenteringtrader", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_executing_trader = ProtoField.new("Party Id Executing Trader", "eurex.derivatives.eti.t7.v13.0.partyidexecutingtrader", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_executing_unit = ProtoField.new("Party Id Executing Unit", "eurex.derivatives.eti.t7.v13.0.partyidexecutingunit", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_investment_decision_maker = ProtoField.new("Party Id Investment Decision Maker", "eurex.derivatives.eti.t7.v13.0.partyidinvestmentdecisionmaker", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_investment_decision_maker_qualifier = ProtoField.new("Party Id Investment Decision Maker Qualifier", "eurex.derivatives.eti.t7.v13.0.partyidinvestmentdecisionmakerqualifier", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_location_id = ProtoField.new("Party Id Location Id", "eurex.derivatives.eti.t7.v13.0.partyidlocationid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_order_origination_firm = ProtoField.new("Party Id Order Origination Firm", "eurex.derivatives.eti.t7.v13.0.partyidorderoriginationfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_origination_market = ProtoField.new("Party Id Origination Market", "eurex.derivatives.eti.t7.v13.0.partyidoriginationmarket", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_position_account = ProtoField.new("Party Id Position Account", "eurex.derivatives.eti.t7.v13.0.partyidpositionaccount", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_session_id = ProtoField.new("Party Id Session Id", "eurex.derivatives.eti.t7.v13.0.partyidsessionid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_settlement_location = ProtoField.new("Party Id Settlement Location", "eurex.derivatives.eti.t7.v13.0.partyidsettlementlocation", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_take_up_trading_firm = ProtoField.new("Party Id Take Up Trading Firm", "eurex.derivatives.eti.t7.v13.0.partyidtakeuptradingfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_order_origination_disclosure_instruction = ProtoField.new("Party Order Origination Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.partyorderoriginationdisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_order_origination_trader = ProtoField.new("Party Order Origination Trader", "eurex.derivatives.eti.t7.v13.0.partyorderoriginationtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_sub_id_type = ProtoField.new("Party Sub Id Type", "eurex.derivatives.eti.t7.v13.0.partysubidtype", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.password = ProtoField.new("Password", "eurex.derivatives.eti.t7.v13.0.password", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.payload = ProtoField.new("Payload", "eurex.derivatives.eti.t7.v13.0.payload", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.pct_count = ProtoField.new("Pct Count", "eurex.derivatives.eti.t7.v13.0.pctcount", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.position_effect = ProtoField.new("Position Effect", "eurex.derivatives.eti.t7.v13.0.positioneffect", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.price = ProtoField.new("Price", "eurex.derivatives.eti.t7.v13.0.price", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.price_disclosure_instruction = ProtoField.new("Price Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.pricedisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.price_validity_check_type = ProtoField.new("Price Validity Check Type", "eurex.derivatives.eti.t7.v13.0.pricevaliditychecktype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.product_complex = ProtoField.new("Product Complex", "eurex.derivatives.eti.t7.v13.0.productcomplex", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.public_key = ProtoField.new("Public Key", "eurex.derivatives.eti.t7.v13.0.publickey", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.public_key_len = ProtoField.new("Public Key Len", "eurex.derivatives.eti.t7.v13.0.publickeylen", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.put_or_call = ProtoField.new("Put Or Call", "eurex.derivatives.eti.t7.v13.0.putorcall", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quantity_scaling_factor = ProtoField.new("Quantity Scaling Factor", "eurex.derivatives.eti.t7.v13.0.quantityscalingfactor", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.quot_req_legs_grp_comp = ProtoField.new("Quot Req Legs Grp Comp", "eurex.derivatives.eti.t7.v13.0.quotreqlegsgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_cancel_reason = ProtoField.new("Quote Cancel Reason", "eurex.derivatives.eti.t7.v13.0.quotecancelreason", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_condition = ProtoField.new("Quote Condition", "eurex.derivatives.eti.t7.v13.0.quotecondition", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_ack_grp_comp = ProtoField.new("Quote Entry Ack Grp Comp", "eurex.derivatives.eti.t7.v13.0.quoteentryackgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_grp_comp = ProtoField.new("Quote Entry Grp Comp", "eurex.derivatives.eti.t7.v13.0.quoteentrygrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_reject_reason = ProtoField.new("Quote Entry Reject Reason", "eurex.derivatives.eti.t7.v13.0.quoteentryrejectreason", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_status = ProtoField.new("Quote Entry Status", "eurex.derivatives.eti.t7.v13.0.quoteentrystatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_exec_id = ProtoField.new("Quote Event Exec Id", "eurex.derivatives.eti.t7.v13.0.quoteeventexecid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_grp_comp = ProtoField.new("Quote Event Grp Comp", "eurex.derivatives.eti.t7.v13.0.quoteeventgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_liquidity_ind = ProtoField.new("Quote Event Liquidity Ind", "eurex.derivatives.eti.t7.v13.0.quoteeventliquidityind", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_match_id = ProtoField.new("Quote Event Match Id", "eurex.derivatives.eti.t7.v13.0.quoteeventmatchid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_px = ProtoField.new("Quote Event Px", "eurex.derivatives.eti.t7.v13.0.quoteeventpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_qty = ProtoField.new("Quote Event Qty", "eurex.derivatives.eti.t7.v13.0.quoteeventqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_reason = ProtoField.new("Quote Event Reason", "eurex.derivatives.eti.t7.v13.0.quoteeventreason", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_side = ProtoField.new("Quote Event Side", "eurex.derivatives.eti.t7.v13.0.quoteeventside", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_type = ProtoField.new("Quote Event Type", "eurex.derivatives.eti.t7.v13.0.quoteeventtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_id = ProtoField.new("Quote Id", "eurex.derivatives.eti.t7.v13.0.quoteid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_instruction = ProtoField.new("Quote Instruction", "eurex.derivatives.eti.t7.v13.0.quoteinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_leg_exec_grp_comp = ProtoField.new("Quote Leg Exec Grp Comp", "eurex.derivatives.eti.t7.v13.0.quotelegexecgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_msg_id = ProtoField.new("Quote Msg Id", "eurex.derivatives.eti.t7.v13.0.quotemsgid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_ref_price = ProtoField.new("Quote Ref Price", "eurex.derivatives.eti.t7.v13.0.quoterefprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_req_id = ProtoField.new("Quote Req Id", "eurex.derivatives.eti.t7.v13.0.quotereqid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_response_id = ProtoField.new("Quote Response Id", "eurex.derivatives.eti.t7.v13.0.quoteresponseid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_size_type = ProtoField.new("Quote Size Type", "eurex.derivatives.eti.t7.v13.0.quotesizetype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_sub_type = ProtoField.new("Quote Sub Type", "eurex.derivatives.eti.t7.v13.0.quotesubtype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_type = ProtoField.new("Quote Type", "eurex.derivatives.eti.t7.v13.0.quotetype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_weighting_coefficient = ProtoField.new("Quote Weighting Coefficient", "eurex.derivatives.eti.t7.v13.0.quoteweightingcoefficient", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.quoting_status = ProtoField.new("Quoting Status", "eurex.derivatives.eti.t7.v13.0.quotingstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.rbc_header_comp = ProtoField.new("Rbc Header Comp", "eurex.derivatives.eti.t7.v13.0.rbcheadercomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.rbc_header_me_comp = ProtoField.new("Rbc Header Me Comp", "eurex.derivatives.eti.t7.v13.0.rbcheadermecomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_id = ProtoField.new("Ref Appl Id", "eurex.derivatives.eti.t7.v13.0.refapplid", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_last_msg_id = ProtoField.new("Ref Appl Last Msg Id", "eurex.derivatives.eti.t7.v13.0.refappllastmsgid", ftypes.BYTES)
omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_last_seq_num = ProtoField.new("Ref Appl Last Seq Num", "eurex.derivatives.eti.t7.v13.0.refappllastseqnum", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_sub_id = ProtoField.new("Ref Appl Sub Id", "eurex.derivatives.eti.t7.v13.0.refapplsubid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.regulatory_trade_id = ProtoField.new("Regulatory Trade Id", "eurex.derivatives.eti.t7.v13.0.regulatorytradeid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_close_price = ProtoField.new("Related Close Price", "eurex.derivatives.eti.t7.v13.0.relatedcloseprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_market_segment_id = ProtoField.new("Related Market Segment Id", "eurex.derivatives.eti.t7.v13.0.relatedmarketsegmentid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_product_complex = ProtoField.new("Related Product Complex", "eurex.derivatives.eti.t7.v13.0.relatedproductcomplex", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_px = ProtoField.new("Related Px", "eurex.derivatives.eti.t7.v13.0.relatedpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_security_id = ProtoField.new("Related Security Id", "eurex.derivatives.eti.t7.v13.0.relatedsecurityid", ftypes.INT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_symbol = ProtoField.new("Related Symbol", "eurex.derivatives.eti.t7.v13.0.relatedsymbol", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_trade_id = ProtoField.new("Related Trade Id", "eurex.derivatives.eti.t7.v13.0.relatedtradeid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.related_trade_quantity = ProtoField.new("Related Trade Quantity", "eurex.derivatives.eti.t7.v13.0.relatedtradequantity", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.remaining_risk_allowance_base_long = ProtoField.new("Remaining Risk Allowance Base Long", "eurex.derivatives.eti.t7.v13.0.remainingriskallowancebaselong", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.remaining_risk_allowance_base_short = ProtoField.new("Remaining Risk Allowance Base Short", "eurex.derivatives.eti.t7.v13.0.remainingriskallowancebaseshort", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.request_header_comp = ProtoField.new("Request Header Comp", "eurex.derivatives.eti.t7.v13.0.requestheadercomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.request_time = ProtoField.new("Request Time", "eurex.derivatives.eti.t7.v13.0.requesttime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_clearing_firm = ProtoField.new("Requesting Party Clearing Firm", "eurex.derivatives.eti.t7.v13.0.requestingpartyclearingfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_entering_firm = ProtoField.new("Requesting Party Entering Firm", "eurex.derivatives.eti.t7.v13.0.requestingpartyenteringfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_id_entering_firm = ProtoField.new("Requesting Party Id Entering Firm", "eurex.derivatives.eti.t7.v13.0.requestingpartyidenteringfirm", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_id_executing_system = ProtoField.new("Requesting Party Id Executing System", "eurex.derivatives.eti.t7.v13.0.requestingpartyidexecutingsystem", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_id_executing_trader = ProtoField.new("Requesting Party Id Executing Trader", "eurex.derivatives.eti.t7.v13.0.requestingpartyidexecutingtrader", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_sub_id_type = ProtoField.new("Requesting Party Sub Id Type", "eurex.derivatives.eti.t7.v13.0.requestingpartysubidtype", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.respondent_type = ProtoField.new("Respondent Type", "eurex.derivatives.eti.t7.v13.0.respondenttype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.response_header_comp = ProtoField.new("Response Header Comp", "eurex.derivatives.eti.t7.v13.0.responseheadercomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.response_header_me_comp = ProtoField.new("Response Header Me Comp", "eurex.derivatives.eti.t7.v13.0.responseheadermecomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.response_in = ProtoField.new("Response In", "eurex.derivatives.eti.t7.v13.0.responsein", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_approval_time = ProtoField.new("Reversal Approval Time", "eurex.derivatives.eti.t7.v13.0.reversalapprovaltime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_cancellation_reason = ProtoField.new("Reversal Cancellation Reason", "eurex.derivatives.eti.t7.v13.0.reversalcancellationreason", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_indicator = ProtoField.new("Reversal Indicator", "eurex.derivatives.eti.t7.v13.0.reversalindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_initiation_time = ProtoField.new("Reversal Initiation Time", "eurex.derivatives.eti.t7.v13.0.reversalinitiationtime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_reason_text = ProtoField.new("Reversal Reason Text", "eurex.derivatives.eti.t7.v13.0.reversalreasontext", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_control_rtm_service_status = ProtoField.new("Risk Control Rtm Service Status", "eurex.derivatives.eti.t7.v13.0.riskcontrolrtmservicestatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_action = ProtoField.new("Risk Limit Action", "eurex.derivatives.eti.t7.v13.0.risklimitaction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_group = ProtoField.new("Risk Limit Group", "eurex.derivatives.eti.t7.v13.0.risklimitgroup", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_id = ProtoField.new("Risk Limit Id", "eurex.derivatives.eti.t7.v13.0.risklimitid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_net_position_qty = ProtoField.new("Risk Limit Net Position Qty", "eurex.derivatives.eti.t7.v13.0.risklimitnetpositionqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_open_qty = ProtoField.new("Risk Limit Open Qty", "eurex.derivatives.eti.t7.v13.0.risklimitopenqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_platform = ProtoField.new("Risk Limit Platform", "eurex.derivatives.eti.t7.v13.0.risklimitplatform", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_qty = ProtoField.new("Risk Limit Qty", "eurex.derivatives.eti.t7.v13.0.risklimitqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_qty_grp_comp = ProtoField.new("Risk Limit Qty Grp Comp", "eurex.derivatives.eti.t7.v13.0.risklimitqtygrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_report_id = ProtoField.new("Risk Limit Report Id", "eurex.derivatives.eti.t7.v13.0.risklimitreportid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_requesting_party_role = ProtoField.new("Risk Limit Requesting Party Role", "eurex.derivatives.eti.t7.v13.0.risklimitrequestingpartyrole", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_result = ProtoField.new("Risk Limit Result", "eurex.derivatives.eti.t7.v13.0.risklimitresult", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_type = ProtoField.new("Risk Limit Type", "eurex.derivatives.eti.t7.v13.0.risklimittype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_violation_indicator = ProtoField.new("Risk Limit Violation Indicator", "eurex.derivatives.eti.t7.v13.0.risklimitviolationindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limits_rpt_grp_comp = ProtoField.new("Risk Limits Rpt Grp Comp", "eurex.derivatives.eti.t7.v13.0.risklimitsrptgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_clearing_firm = ProtoField.new("Root Party Clearing Firm", "eurex.derivatives.eti.t7.v13.0.rootpartyclearingfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_clearing_organization = ProtoField.new("Root Party Clearing Organization", "eurex.derivatives.eti.t7.v13.0.rootpartyclearingorganization", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_contra_firm = ProtoField.new("Root Party Contra Firm", "eurex.derivatives.eti.t7.v13.0.rootpartycontrafirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_contra_trader = ProtoField.new("Root Party Contra Trader", "eurex.derivatives.eti.t7.v13.0.rootpartycontratrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_entering_trader = ProtoField.new("Root Party Entering Trader", "eurex.derivatives.eti.t7.v13.0.rootpartyenteringtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_executing_firm = ProtoField.new("Root Party Executing Firm", "eurex.derivatives.eti.t7.v13.0.rootpartyexecutingfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_executing_trader = ProtoField.new("Root Party Executing Trader", "eurex.derivatives.eti.t7.v13.0.rootpartyexecutingtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_beneficiary = ProtoField.new("Root Party Id Beneficiary", "eurex.derivatives.eti.t7.v13.0.rootpartyidbeneficiary", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_clearing_unit = ProtoField.new("Root Party Id Clearing Unit", "eurex.derivatives.eti.t7.v13.0.rootpartyidclearingunit", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_client_id = ProtoField.new("Root Party Id Client Id", "eurex.derivatives.eti.t7.v13.0.rootpartyidclientid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_executing_trader = ProtoField.new("Root Party Id Executing Trader", "eurex.derivatives.eti.t7.v13.0.rootpartyidexecutingtrader", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_executing_unit = ProtoField.new("Root Party Id Executing Unit", "eurex.derivatives.eti.t7.v13.0.rootpartyidexecutingunit", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_execution_venue = ProtoField.new("Root Party Id Execution Venue", "eurex.derivatives.eti.t7.v13.0.rootpartyidexecutionvenue", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_investment_decision_maker = ProtoField.new("Root Party Id Investment Decision Maker", "eurex.derivatives.eti.t7.v13.0.rootpartyidinvestmentdecisionmaker", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_investment_decision_maker_qualifier = ProtoField.new("Root Party Id Investment Decision Maker Qualifier", "eurex.derivatives.eti.t7.v13.0.rootpartyidinvestmentdecisionmakerqualifier", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_order_origination_firm = ProtoField.new("Root Party Id Order Origination Firm", "eurex.derivatives.eti.t7.v13.0.rootpartyidorderoriginationfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_position_account = ProtoField.new("Root Party Id Position Account", "eurex.derivatives.eti.t7.v13.0.rootpartyidpositionaccount", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_session_id = ProtoField.new("Root Party Id Session Id", "eurex.derivatives.eti.t7.v13.0.rootpartyidsessionid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_take_up_trading_firm = ProtoField.new("Root Party Id Take Up Trading Firm", "eurex.derivatives.eti.t7.v13.0.rootpartyidtakeuptradingfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_sub_id_type = ProtoField.new("Root Party Sub Id Type", "eurex.derivatives.eti.t7.v13.0.rootpartysubidtype", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_ack_grp_comp = ProtoField.new("Rra Update Base Party Ack Grp Comp", "eurex.derivatives.eti.t7.v13.0.rraupdatebasepartyackgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_grp_comp = ProtoField.new("Rra Update Base Party Grp Comp", "eurex.derivatives.eti.t7.v13.0.rraupdatebasepartygrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.secondary_quote_id = ProtoField.new("Secondary Quote Id", "eurex.derivatives.eti.t7.v13.0.secondaryquoteid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.secondary_trade_id = ProtoField.new("Secondary Trade Id", "eurex.derivatives.eti.t7.v13.0.secondarytradeid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.security_id = ProtoField.new("Security Id", "eurex.derivatives.eti.t7.v13.0.securityid", ftypes.INT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.security_response_id = ProtoField.new("Security Response Id", "eurex.derivatives.eti.t7.v13.0.securityresponseid", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.security_sub_type = ProtoField.new("Security Sub Type", "eurex.derivatives.eti.t7.v13.0.securitysubtype", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.selective_request_for_quote_rtm_service_status = ProtoField.new("Selective Request For Quote Rtm Service Status", "eurex.derivatives.eti.t7.v13.0.selectiverequestforquotertmservicestatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.selective_request_for_quote_service_status = ProtoField.new("Selective Request For Quote Service Status", "eurex.derivatives.eti.t7.v13.0.selectiverequestforquoteservicestatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.selective_request_for_quote_service_trade_date = ProtoField.new("Selective Request For Quote Service Trade Date", "eurex.derivatives.eti.t7.v13.0.selectiverequestforquoteservicetradedate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.self_match_prevention_instruction = ProtoField.new("Self Match Prevention Instruction", "eurex.derivatives.eti.t7.v13.0.selfmatchpreventioninstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.sender_sub_id = ProtoField.new("Sender Sub Id", "eurex.derivatives.eti.t7.v13.0.sendersubid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.sending_time = ProtoField.new("Sending Time", "eurex.derivatives.eti.t7.v13.0.sendingtime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.session_instance_id = ProtoField.new("Session Instance Id", "eurex.derivatives.eti.t7.v13.0.sessioninstanceid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.session_mode = ProtoField.new("Session Mode", "eurex.derivatives.eti.t7.v13.0.sessionmode", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.session_reject_reason = ProtoField.new("Session Reject Reason", "eurex.derivatives.eti.t7.v13.0.sessionrejectreason", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.session_status = ProtoField.new("Session Status", "eurex.derivatives.eti.t7.v13.0.sessionstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.session_sub_mode = ProtoField.new("Session Sub Mode", "eurex.derivatives.eti.t7.v13.0.sessionsubmode", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.sessions_grp_comp = ProtoField.new("Sessions Grp Comp", "eurex.derivatives.eti.t7.v13.0.sessionsgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.settl_method = ProtoField.new("Settl Method", "eurex.derivatives.eti.t7.v13.0.settlmethod", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.show_last_deal_on_closure = ProtoField.new("Show Last Deal On Closure", "eurex.derivatives.eti.t7.v13.0.showlastdealonclosure", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.side = ProtoField.new("Side", "eurex.derivatives.eti.t7.v13.0.side", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_ext_grp_comp = ProtoField.new("Side Alloc Ext Grp Comp", "eurex.derivatives.eti.t7.v13.0.sideallocextgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_bc_comp = ProtoField.new("Side Alloc Grp Bc Comp", "eurex.derivatives.eti.t7.v13.0.sideallocgrpbccomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_comp = ProtoField.new("Side Alloc Grp Comp", "eurex.derivatives.eti.t7.v13.0.sideallocgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_compliance_text = ProtoField.new("Side Compliance Text", "eurex.derivatives.eti.t7.v13.0.sidecompliancetext", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_cross_leg_grp_comp = ProtoField.new("Side Cross Leg Grp Comp", "eurex.derivatives.eti.t7.v13.0.sidecrossleggrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_disclosure_instruction = ProtoField.new("Side Disclosure Instruction", "eurex.derivatives.eti.t7.v13.0.sidedisclosureinstruction", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_is_locked = ProtoField.new("Side Is Locked", "eurex.derivatives.eti.t7.v13.0.sideislocked", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_last_px = ProtoField.new("Side Last Px", "eurex.derivatives.eti.t7.v13.0.sidelastpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_last_qty = ProtoField.new("Side Last Qty", "eurex.derivatives.eti.t7.v13.0.sidelastqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_liquidity_ind = ProtoField.new("Side Liquidity Ind", "eurex.derivatives.eti.t7.v13.0.sideliquidityind", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_market_segment_id = ProtoField.new("Side Market Segment Id", "eurex.derivatives.eti.t7.v13.0.sidemarketsegmentid", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_trade_id = ProtoField.new("Side Trade Id", "eurex.derivatives.eti.t7.v13.0.sidetradeid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_trd_sub_typ = ProtoField.new("Side Trd Sub Typ", "eurex.derivatives.eti.t7.v13.0.sidetrdsubtyp", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.simple_security_id = ProtoField.new("Simple Security Id", "eurex.derivatives.eti.t7.v13.0.simplesecurityid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.skip_validations = ProtoField.new("Skip Validations", "eurex.derivatives.eti.t7.v13.0.skipvalidations", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.smart_party_detail_grp_comp = ProtoField.new("Smart Party Detail Grp Comp", "eurex.derivatives.eti.t7.v13.0.smartpartydetailgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_hit_quote_grp_comp = ProtoField.new("Srqs Hit Quote Grp Comp", "eurex.derivatives.eti.t7.v13.0.srqshitquotegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_entry_grp_comp = ProtoField.new("Srqs Quote Entry Grp Comp", "eurex.derivatives.eti.t7.v13.0.srqsquoteentrygrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_grp_comp = ProtoField.new("Srqs Quote Grp Comp", "eurex.derivatives.eti.t7.v13.0.srqsquotegrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_related_trade_id = ProtoField.new("Srqs Related Trade Id", "eurex.derivatives.eti.t7.v13.0.srqsrelatedtradeid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_target_party_trd_grp_comp = ProtoField.new("Srqs Target Party Trd Grp Comp", "eurex.derivatives.eti.t7.v13.0.srqstargetpartytrdgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.stop_px = ProtoField.new("Stop Px", "eurex.derivatives.eti.t7.v13.0.stoppx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.strategy_link_id = ProtoField.new("Strategy Link Id", "eurex.derivatives.eti.t7.v13.0.strategylinkid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.strike_price = ProtoField.new("Strike Price", "eurex.derivatives.eti.t7.v13.0.strikeprice", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.subscription_scope = ProtoField.new("Subscription Scope", "eurex.derivatives.eti.t7.v13.0.subscriptionscope", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.swap_clearer = ProtoField.new("Swap Clearer", "eurex.derivatives.eti.t7.v13.0.swapclearer", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_rtm_status = ProtoField.new("T 7 Entry Service Rtm Status", "eurex.derivatives.eti.t7.v13.0.t7entryservicertmstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_rtm_trade_date = ProtoField.new("T 7 Entry Service Rtm Trade Date", "eurex.derivatives.eti.t7.v13.0.t7entryservicertmtradedate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_status = ProtoField.new("T 7 Entry Service Status", "eurex.derivatives.eti.t7.v13.0.t7entryservicestatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_trade_date = ProtoField.new("T 7 Entry Service Trade Date", "eurex.derivatives.eti.t7.v13.0.t7entryservicetradedate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_parties_comp = ProtoField.new("Target Parties Comp", "eurex.derivatives.eti.t7.v13.0.targetpartiescomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_entering_trader = ProtoField.new("Target Party Entering Trader", "eurex.derivatives.eti.t7.v13.0.targetpartyenteringtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_executing_firm = ProtoField.new("Target Party Executing Firm", "eurex.derivatives.eti.t7.v13.0.targetpartyexecutingfirm", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_executing_trader = ProtoField.new("Target Party Executing Trader", "eurex.derivatives.eti.t7.v13.0.targetpartyexecutingtrader", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_id_desk_id = ProtoField.new("Target Party Id Desk Id", "eurex.derivatives.eti.t7.v13.0.targetpartyiddeskid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_id_executing_trader = ProtoField.new("Target Party Id Executing Trader", "eurex.derivatives.eti.t7.v13.0.targetpartyidexecutingtrader", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_id_session_id = ProtoField.new("Target Party Id Session Id", "eurex.derivatives.eti.t7.v13.0.targetpartyidsessionid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.template_id = ProtoField.new("Template Id", "eurex.derivatives.eti.t7.v13.0.templateid", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_enrichment_rule_id = ProtoField.new("Tes Enrichment Rule Id", "eurex.derivatives.eti.t7.v13.0.tesenrichmentruleid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_exec_id = ProtoField.new("Tes Exec Id", "eurex.derivatives.eti.t7.v13.0.tesexecid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_disconnect_limit = ProtoField.new("Throttle Disconnect Limit", "eurex.derivatives.eti.t7.v13.0.throttledisconnectlimit", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_no_msgs = ProtoField.new("Throttle No Msgs", "eurex.derivatives.eti.t7.v13.0.throttlenomsgs", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_time_interval = ProtoField.new("Throttle Time Interval", "eurex.derivatives.eti.t7.v13.0.throttletimeinterval", ftypes.INT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.time_in_force = ProtoField.new("Time In Force", "eurex.derivatives.eti.t7.v13.0.timeinforce", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.tot_num_trade_reports = ProtoField.new("Tot Num Trade Reports", "eurex.derivatives.eti.t7.v13.0.totnumtradereports", ftypes.INT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.trad_ses_event = ProtoField.new("Trad Ses Event", "eurex.derivatives.eti.t7.v13.0.tradsesevent", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trad_ses_mode = ProtoField.new("Trad Ses Mode", "eurex.derivatives.eti.t7.v13.0.tradsesmode", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_aggregation_trans_type = ProtoField.new("Trade Aggregation Trans Type", "eurex.derivatives.eti.t7.v13.0.tradeaggregationtranstype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_alloc_status = ProtoField.new("Trade Alloc Status", "eurex.derivatives.eti.t7.v13.0.tradeallocstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_date = ProtoField.new("Trade Date", "eurex.derivatives.eti.t7.v13.0.tradedate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_id = ProtoField.new("Trade Id", "eurex.derivatives.eti.t7.v13.0.tradeid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_manager_status = ProtoField.new("Trade Manager Status", "eurex.derivatives.eti.t7.v13.0.trademanagerstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_manager_trade_date = ProtoField.new("Trade Manager Trade Date", "eurex.derivatives.eti.t7.v13.0.trademanagertradedate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_platform = ProtoField.new("Trade Platform", "eurex.derivatives.eti.t7.v13.0.tradeplatform", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_publish_indicator = ProtoField.new("Trade Publish Indicator", "eurex.derivatives.eti.t7.v13.0.tradepublishindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_report_id = ProtoField.new("Trade Report Id", "eurex.derivatives.eti.t7.v13.0.tradereportid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_report_text = ProtoField.new("Trade Report Text", "eurex.derivatives.eti.t7.v13.0.tradereporttext", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_report_type = ProtoField.new("Trade Report Type", "eurex.derivatives.eti.t7.v13.0.tradereporttype", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_request_result = ProtoField.new("Trade Request Result", "eurex.derivatives.eti.t7.v13.0.traderequestresult", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_quote_ratio = ProtoField.new("Trade To Quote Ratio", "eurex.derivatives.eti.t7.v13.0.tradetoquoteratio", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_quote_ratio_position = ProtoField.new("Trade To Quote Ratio Position", "eurex.derivatives.eti.t7.v13.0.tradetoquoteratioposition", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_quote_ratio_ranking = ProtoField.new("Trade To Quote Ratio Ranking", "eurex.derivatives.eti.t7.v13.0.tradetoquoteratioranking", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_request_ratio = ProtoField.new("Trade To Request Ratio", "eurex.derivatives.eti.t7.v13.0.tradetorequestratio", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.trading_capacity = ProtoField.new("Trading Capacity", "eurex.derivatives.eti.t7.v13.0.tradingcapacity", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trading_session_sub_id = ProtoField.new("Trading Session Sub Id", "eurex.derivatives.eti.t7.v13.0.tradingsessionsubid", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trans_bkd_time = ProtoField.new("Trans Bkd Time", "eurex.derivatives.eti.t7.v13.0.transbkdtime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.transact_time = ProtoField.new("Transact Time", "eurex.derivatives.eti.t7.v13.0.transacttime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.transaction_delay_indicator = ProtoField.new("Transaction Delay Indicator", "eurex.derivatives.eti.t7.v13.0.transactiondelayindicator", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.transfer_reason = ProtoField.new("Transfer Reason", "eurex.derivatives.eti.t7.v13.0.transferreason", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_clearing_price_leg_grp_comp = ProtoField.new("Trd Clearing Price Leg Grp Comp", "eurex.derivatives.eti.t7.v13.0.trdclearingpriceleggrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_instrmnt_leg_grp_comp = ProtoField.new("Trd Instrmnt Leg Grp Comp", "eurex.derivatives.eti.t7.v13.0.trdinstrmntleggrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_match_id = ProtoField.new("Trd Match Id", "eurex.derivatives.eti.t7.v13.0.trdmatchid", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_entry_time = ProtoField.new("Trd Reg Ts Entry Time", "eurex.derivatives.eti.t7.v13.0.trdregtsentrytime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_execution_time = ProtoField.new("Trd Reg Ts Execution Time", "eurex.derivatives.eti.t7.v13.0.trdregtsexecutiontime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_time_in = ProtoField.new("Trd Reg Ts Time In", "eurex.derivatives.eti.t7.v13.0.trdregtstimein", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_time_out = ProtoField.new("Trd Reg Ts Time Out", "eurex.derivatives.eti.t7.v13.0.trdregtstimeout", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_time_priority = ProtoField.new("Trd Reg Ts Time Priority", "eurex.derivatives.eti.t7.v13.0.trdregtstimepriority", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_rpt_status = ProtoField.new("Trd Rpt Status", "eurex.derivatives.eti.t7.v13.0.trdrptstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_type = ProtoField.new("Trd Type", "eurex.derivatives.eti.t7.v13.0.trdtype", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.triggered = ProtoField.new("Triggered", "eurex.derivatives.eti.t7.v13.0.triggered", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_currency = ProtoField.new("Underlying Currency", "eurex.derivatives.eti.t7.v13.0.underlyingcurrency", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_delta_percentage = ProtoField.new("Underlying Delta Percentage", "eurex.derivatives.eti.t7.v13.0.underlyingdeltapercentage", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_effective_delta_percentage = ProtoField.new("Underlying Effective Delta Percentage", "eurex.derivatives.eti.t7.v13.0.underlyingeffectivedeltapercentage", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_issuer = ProtoField.new("Underlying Issuer", "eurex.derivatives.eti.t7.v13.0.underlyingissuer", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_maturity_date = ProtoField.new("Underlying Maturity Date", "eurex.derivatives.eti.t7.v13.0.underlyingmaturitydate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_price_stip_value = ProtoField.new("Underlying Price Stip Value", "eurex.derivatives.eti.t7.v13.0.underlyingpricestipvalue", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_px = ProtoField.new("Underlying Px", "eurex.derivatives.eti.t7.v13.0.underlyingpx", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_qty = ProtoField.new("Underlying Qty", "eurex.derivatives.eti.t7.v13.0.underlyingqty", ftypes.DOUBLE)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_security_desc = ProtoField.new("Underlying Security Desc", "eurex.derivatives.eti.t7.v13.0.underlyingsecuritydesc", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_security_id = ProtoField.new("Underlying Security Id", "eurex.derivatives.eti.t7.v13.0.underlyingsecurityid", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_settlement_date = ProtoField.new("Underlying Settlement Date", "eurex.derivatives.eti.t7.v13.0.underlyingsettlementdate", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_grp_comp = ProtoField.new("Underlying Stip Grp Comp", "eurex.derivatives.eti.t7.v13.0.underlyingstipgrpcomp", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_type = ProtoField.new("Underlying Stip Type", "eurex.derivatives.eti.t7.v13.0.underlyingstiptype", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_value = ProtoField.new("Underlying Stip Value", "eurex.derivatives.eti.t7.v13.0.underlyingstipvalue", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.user_status = ProtoField.new("User Status", "eurex.derivatives.eti.t7.v13.0.userstatus", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.username = ProtoField.new("Username", "eurex.derivatives.eti.t7.v13.0.username", ftypes.UINT32)
omi_eurex_derivatives_eti_t7_v13_0.fields.valid_until_time = ProtoField.new("Valid Until Time", "eurex.derivatives.eti.t7.v13.0.validuntiltime", ftypes.UINT64)
omi_eurex_derivatives_eti_t7_v13_0.fields.value_check_type_min_lot_size = ProtoField.new("Value Check Type Min Lot Size", "eurex.derivatives.eti.t7.v13.0.valuechecktypeminlotsize", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.value_check_type_value = ProtoField.new("Value Check Type Value", "eurex.derivatives.eti.t7.v13.0.valuechecktypevalue", ftypes.UINT8)
omi_eurex_derivatives_eti_t7_v13_0.fields.var_text = ProtoField.new("Var Text", "eurex.derivatives.eti.t7.v13.0.vartext", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.var_text_len = ProtoField.new("Var Text Len", "eurex.derivatives.eti.t7.v13.0.vartextlen", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.vega = ProtoField.new("Vega", "eurex.derivatives.eti.t7.v13.0.vega", ftypes.DOUBLE)

-- Eurex Derivatives Eti T7 13.0 messages
omi_eurex_derivatives_eti_t7_v13_0.fields.add_complex_instrument_request = ProtoField.new("Add Complex Instrument Request", "eurex.derivatives.eti.t7.v13.0.addcomplexinstrumentrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.add_complex_instrument_response = ProtoField.new("Add Complex Instrument Response", "eurex.derivatives.eti.t7.v13.0.addcomplexinstrumentresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.add_flexible_instrument_request = ProtoField.new("Add Flexible Instrument Request", "eurex.derivatives.eti.t7.v13.0.addflexibleinstrumentrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.add_flexible_instrument_response = ProtoField.new("Add Flexible Instrument Response", "eurex.derivatives.eti.t7.v13.0.addflexibleinstrumentresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.add_scaled_simple_instrument_request = ProtoField.new("Add Scaled Simple Instrument Request", "eurex.derivatives.eti.t7.v13.0.addscaledsimpleinstrumentrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.add_scaled_simple_instrument_response = ProtoField.new("Add Scaled Simple Instrument Response", "eurex.derivatives.eti.t7.v13.0.addscaledsimpleinstrumentresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.amend_basket_trade_request = ProtoField.new("Amend Basket Trade Request", "eurex.derivatives.eti.t7.v13.0.amendbaskettraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.approve_basket_trade_request = ProtoField.new("Approve Basket Trade Request", "eurex.derivatives.eti.t7.v13.0.approvebaskettraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.approve_reverse_tes_trade_request = ProtoField.new("Approve Reverse Tes Trade Request", "eurex.derivatives.eti.t7.v13.0.approvereversetestraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.approve_tes_trade_request = ProtoField.new("Approve Tes Trade Request", "eurex.derivatives.eti.t7.v13.0.approvetestraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_approve_broadcast = ProtoField.new("Basket Approve Broadcast", "eurex.derivatives.eti.t7.v13.0.basketapprovebroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_broadcast = ProtoField.new("Basket Broadcast", "eurex.derivatives.eti.t7.v13.0.basketbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_delete_broadcast = ProtoField.new("Basket Delete Broadcast", "eurex.derivatives.eti.t7.v13.0.basketdeletebroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_execution_broadcast = ProtoField.new("Basket Execution Broadcast", "eurex.derivatives.eti.t7.v13.0.basketexecutionbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_response = ProtoField.new("Basket Response", "eurex.derivatives.eti.t7.v13.0.basketresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_roll_broadcast = ProtoField.new("Basket Roll Broadcast", "eurex.derivatives.eti.t7.v13.0.basketrollbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_roll_request = ProtoField.new("Basket Roll Request", "eurex.derivatives.eti.t7.v13.0.basketrollrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.broadcast_error_notification = ProtoField.new("Broadcast Error Notification", "eurex.derivatives.eti.t7.v13.0.broadcasterrornotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.clip_deletion_notification = ProtoField.new("Clip Deletion Notification", "eurex.derivatives.eti.t7.v13.0.clipdeletionnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.clip_execution_notification = ProtoField.new("Clip Execution Notification", "eurex.derivatives.eti.t7.v13.0.clipexecutionnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.clip_response = ProtoField.new("Clip Response", "eurex.derivatives.eti.t7.v13.0.clipresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request = ProtoField.new("Cross Request", "eurex.derivatives.eti.t7.v13.0.crossrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_response = ProtoField.new("Cross Request Response", "eurex.derivatives.eti.t7.v13.0.crossrequestresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_broadcast = ProtoField.new("Delete All Order Broadcast", "eurex.derivatives.eti.t7.v13.0.deleteallorderbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_nr_response = ProtoField.new("Delete All Order Nr Response", "eurex.derivatives.eti.t7.v13.0.deleteallordernrresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_quote_event_broadcast = ProtoField.new("Delete All Order Quote Event Broadcast", "eurex.derivatives.eti.t7.v13.0.deleteallorderquoteeventbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_request = ProtoField.new("Delete All Order Request", "eurex.derivatives.eti.t7.v13.0.deleteallorderrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_response = ProtoField.new("Delete All Order Response", "eurex.derivatives.eti.t7.v13.0.deleteallorderresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_quote_broadcast = ProtoField.new("Delete All Quote Broadcast", "eurex.derivatives.eti.t7.v13.0.deleteallquotebroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_quote_request = ProtoField.new("Delete All Quote Request", "eurex.derivatives.eti.t7.v13.0.deleteallquoterequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_quote_response = ProtoField.new("Delete All Quote Response", "eurex.derivatives.eti.t7.v13.0.deleteallquoteresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_basket_trade_request = ProtoField.new("Delete Basket Trade Request", "eurex.derivatives.eti.t7.v13.0.deletebaskettraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_clip_request = ProtoField.new("Delete Clip Request", "eurex.derivatives.eti.t7.v13.0.deletecliprequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_broadcast = ProtoField.new("Delete Order Broadcast", "eurex.derivatives.eti.t7.v13.0.deleteorderbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_complex_request = ProtoField.new("Delete Order Complex Request", "eurex.derivatives.eti.t7.v13.0.deleteordercomplexrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_nr_response = ProtoField.new("Delete Order Nr Response", "eurex.derivatives.eti.t7.v13.0.deleteordernrresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_request = ProtoField.new("Delete Order Request", "eurex.derivatives.eti.t7.v13.0.deleteorderrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_response = ProtoField.new("Delete Order Response", "eurex.derivatives.eti.t7.v13.0.deleteorderresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_single_request = ProtoField.new("Delete Order Single Request", "eurex.derivatives.eti.t7.v13.0.deleteordersinglerequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.delete_tes_trade_request = ProtoField.new("Delete Tes Trade Request", "eurex.derivatives.eti.t7.v13.0.deletetestraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.enter_basket_trade_request = ProtoField.new("Enter Basket Trade Request", "eurex.derivatives.eti.t7.v13.0.enterbaskettraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.enter_clip_request = ProtoField.new("Enter Clip Request", "eurex.derivatives.eti.t7.v13.0.entercliprequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.enter_tes_trade_request = ProtoField.new("Enter Tes Trade Request", "eurex.derivatives.eti.t7.v13.0.entertestraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.forced_logout_notification = ProtoField.new("Forced Logout Notification", "eurex.derivatives.eti.t7.v13.0.forcedlogoutnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.forced_user_logout_notification = ProtoField.new("Forced User Logout Notification", "eurex.derivatives.eti.t7.v13.0.forceduserlogoutnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.heartbeat = ProtoField.new("Heartbeat", "eurex.derivatives.eti.t7.v13.0.heartbeat", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.heartbeat_notification = ProtoField.new("Heartbeat Notification", "eurex.derivatives.eti.t7.v13.0.heartbeatnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_enrichment_rule_id_list_request = ProtoField.new("Inquire Enrichment Rule Id List Request", "eurex.derivatives.eti.t7.v13.0.inquireenrichmentruleidlistrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_enrichment_rule_id_list_response = ProtoField.new("Inquire Enrichment Rule Id List Response", "eurex.derivatives.eti.t7.v13.0.inquireenrichmentruleidlistresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_margin_based_risk_limit_request = ProtoField.new("Inquire Margin Based Risk Limit Request", "eurex.derivatives.eti.t7.v13.0.inquiremarginbasedrisklimitrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_margin_based_risk_limit_response = ProtoField.new("Inquire Margin Based Risk Limit Response", "eurex.derivatives.eti.t7.v13.0.inquiremarginbasedrisklimitresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_mm_parameter_request = ProtoField.new("Inquire Mm Parameter Request", "eurex.derivatives.eti.t7.v13.0.inquiremmparameterrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_mm_parameter_response = ProtoField.new("Inquire Mm Parameter Response", "eurex.derivatives.eti.t7.v13.0.inquiremmparameterresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_pre_trade_risk_limits_request = ProtoField.new("Inquire Pre Trade Risk Limits Request", "eurex.derivatives.eti.t7.v13.0.inquirepretraderisklimitsrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_session_list_request = ProtoField.new("Inquire Session List Request", "eurex.derivatives.eti.t7.v13.0.inquiresessionlistrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_session_list_response = ProtoField.new("Inquire Session List Response", "eurex.derivatives.eti.t7.v13.0.inquiresessionlistresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_user_request = ProtoField.new("Inquire User Request", "eurex.derivatives.eti.t7.v13.0.inquireuserrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_user_response = ProtoField.new("Inquire User Response", "eurex.derivatives.eti.t7.v13.0.inquireuserresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.legal_notification_broadcast = ProtoField.new("Legal Notification Broadcast", "eurex.derivatives.eti.t7.v13.0.legalnotificationbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.logon_request = ProtoField.new("Logon Request", "eurex.derivatives.eti.t7.v13.0.logonrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.logon_request_encrypted = ProtoField.new("Logon Request Encrypted", "eurex.derivatives.eti.t7.v13.0.logonrequestencrypted", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.logon_response = ProtoField.new("Logon Response", "eurex.derivatives.eti.t7.v13.0.logonresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.logout_request = ProtoField.new("Logout Request", "eurex.derivatives.eti.t7.v13.0.logoutrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.logout_response = ProtoField.new("Logout Response", "eurex.derivatives.eti.t7.v13.0.logoutresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order = ProtoField.new("Mass Order", "eurex.derivatives.eti.t7.v13.0.massorder", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order_ack = ProtoField.new("Mass Order Ack", "eurex.derivatives.eti.t7.v13.0.massorderack", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_quote_request = ProtoField.new("Mass Quote Request", "eurex.derivatives.eti.t7.v13.0.massquoterequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mass_quote_response = ProtoField.new("Mass Quote Response", "eurex.derivatives.eti.t7.v13.0.massquoteresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_definition_request = ProtoField.new("Mm Parameter Definition Request", "eurex.derivatives.eti.t7.v13.0.mmparameterdefinitionrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_definition_response = ProtoField.new("Mm Parameter Definition Response", "eurex.derivatives.eti.t7.v13.0.mmparameterdefinitionresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_basket_trade_request = ProtoField.new("Modify Basket Trade Request", "eurex.derivatives.eti.t7.v13.0.modifybaskettraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_complex_request = ProtoField.new("Modify Order Complex Request", "eurex.derivatives.eti.t7.v13.0.modifyordercomplexrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_complex_short_request = ProtoField.new("Modify Order Complex Short Request", "eurex.derivatives.eti.t7.v13.0.modifyordercomplexshortrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_nr_response = ProtoField.new("Modify Order Nr Response", "eurex.derivatives.eti.t7.v13.0.modifyordernrresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_request = ProtoField.new("Modify Order Request", "eurex.derivatives.eti.t7.v13.0.modifyorderrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_response = ProtoField.new("Modify Order Response", "eurex.derivatives.eti.t7.v13.0.modifyorderresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_short_request = ProtoField.new("Modify Order Short Request", "eurex.derivatives.eti.t7.v13.0.modifyordershortrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_single_request = ProtoField.new("Modify Order Single Request", "eurex.derivatives.eti.t7.v13.0.modifyordersinglerequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_single_short_request = ProtoField.new("Modify Order Single Short Request", "eurex.derivatives.eti.t7.v13.0.modifyordersingleshortrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.modify_tes_trade_request = ProtoField.new("Modify Tes Trade Request", "eurex.derivatives.eti.t7.v13.0.modifytestraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_complex_request = ProtoField.new("New Order Complex Request", "eurex.derivatives.eti.t7.v13.0.newordercomplexrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_complex_short_request = ProtoField.new("New Order Complex Short Request", "eurex.derivatives.eti.t7.v13.0.newordercomplexshortrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_nr_response = ProtoField.new("New Order Nr Response", "eurex.derivatives.eti.t7.v13.0.newordernrresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_request = ProtoField.new("New Order Request", "eurex.derivatives.eti.t7.v13.0.neworderrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_response = ProtoField.new("New Order Response", "eurex.derivatives.eti.t7.v13.0.neworderresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_short_request = ProtoField.new("New Order Short Request", "eurex.derivatives.eti.t7.v13.0.newordershortrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_single_request = ProtoField.new("New Order Single Request", "eurex.derivatives.eti.t7.v13.0.newordersinglerequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_single_short_request = ProtoField.new("New Order Single Short Request", "eurex.derivatives.eti.t7.v13.0.newordersingleshortrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.news_broadcast = ProtoField.new("News Broadcast", "eurex.derivatives.eti.t7.v13.0.newsbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_exec_notification = ProtoField.new("Order Exec Notification", "eurex.derivatives.eti.t7.v13.0.orderexecnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_exec_report_broadcast = ProtoField.new("Order Exec Report Broadcast", "eurex.derivatives.eti.t7.v13.0.orderexecreportbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_exec_response = ProtoField.new("Order Exec Response", "eurex.derivatives.eti.t7.v13.0.orderexecresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_action_report = ProtoField.new("Party Action Report", "eurex.derivatives.eti.t7.v13.0.partyactionreport", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_entitlements_update_report = ProtoField.new("Party Entitlements Update Report", "eurex.derivatives.eti.t7.v13.0.partyentitlementsupdatereport", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.ping_request = ProtoField.new("Ping Request", "eurex.derivatives.eti.t7.v13.0.pingrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.ping_response = ProtoField.new("Ping Response", "eurex.derivatives.eti.t7.v13.0.pingresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.pre_trade_risk_limit_response = ProtoField.new("Pre Trade Risk Limit Response", "eurex.derivatives.eti.t7.v13.0.pretraderisklimitresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.pre_trade_risk_limits_definition_request = ProtoField.new("Pre Trade Risk Limits Definition Request", "eurex.derivatives.eti.t7.v13.0.pretraderisklimitsdefinitionrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_activation_notification = ProtoField.new("Quote Activation Notification", "eurex.derivatives.eti.t7.v13.0.quoteactivationnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_activation_request = ProtoField.new("Quote Activation Request", "eurex.derivatives.eti.t7.v13.0.quoteactivationrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_activation_response = ProtoField.new("Quote Activation Response", "eurex.derivatives.eti.t7.v13.0.quoteactivationresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_execution_report = ProtoField.new("Quote Execution Report", "eurex.derivatives.eti.t7.v13.0.quoteexecutionreport", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.reject = ProtoField.new("Reject", "eurex.derivatives.eti.t7.v13.0.reject", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_me_message_request = ProtoField.new("Retransmit Me Message Request", "eurex.derivatives.eti.t7.v13.0.retransmitmemessagerequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_me_message_response = ProtoField.new("Retransmit Me Message Response", "eurex.derivatives.eti.t7.v13.0.retransmitmemessageresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_request = ProtoField.new("Retransmit Request", "eurex.derivatives.eti.t7.v13.0.retransmitrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_response = ProtoField.new("Retransmit Response", "eurex.derivatives.eti.t7.v13.0.retransmitresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.reverse_tes_trade_request = ProtoField.new("Reverse Tes Trade Request", "eurex.derivatives.eti.t7.v13.0.reversetestraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.rfq_request = ProtoField.new("Rfq Request", "eurex.derivatives.eti.t7.v13.0.rfqrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.rfq_response = ProtoField.new("Rfq Response", "eurex.derivatives.eti.t7.v13.0.rfqresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_notification_broadcast = ProtoField.new("Risk Notification Broadcast", "eurex.derivatives.eti.t7.v13.0.risknotificationbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.service_availability_broadcast = ProtoField.new("Service Availability Broadcast", "eurex.derivatives.eti.t7.v13.0.serviceavailabilitybroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.service_availability_market_broadcast = ProtoField.new("Service Availability Market Broadcast", "eurex.derivatives.eti.t7.v13.0.serviceavailabilitymarketbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_create_deal_notification = ProtoField.new("Srqs Create Deal Notification", "eurex.derivatives.eti.t7.v13.0.srqscreatedealnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_deal_notification = ProtoField.new("Srqs Deal Notification", "eurex.derivatives.eti.t7.v13.0.srqsdealnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_deal_response = ProtoField.new("Srqs Deal Response", "eurex.derivatives.eti.t7.v13.0.srqsdealresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_enter_quote_request = ProtoField.new("Srqs Enter Quote Request", "eurex.derivatives.eti.t7.v13.0.srqsenterquoterequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_hit_quote_request = ProtoField.new("Srqs Hit Quote Request", "eurex.derivatives.eti.t7.v13.0.srqshitquoterequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_inquire_smart_respondent_request = ProtoField.new("Srqs Inquire Smart Respondent Request", "eurex.derivatives.eti.t7.v13.0.srqsinquiresmartrespondentrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_inquire_smart_respondent_response = ProtoField.new("Srqs Inquire Smart Respondent Response", "eurex.derivatives.eti.t7.v13.0.srqsinquiresmartrespondentresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_negotiation_notification = ProtoField.new("Srqs Negotiation Notification", "eurex.derivatives.eti.t7.v13.0.srqsnegotiationnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_negotiation_requester_notification = ProtoField.new("Srqs Negotiation Requester Notification", "eurex.derivatives.eti.t7.v13.0.srqsnegotiationrequesternotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_negotiation_status_notification = ProtoField.new("Srqs Negotiation Status Notification", "eurex.derivatives.eti.t7.v13.0.srqsnegotiationstatusnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_open_negotiation_notification = ProtoField.new("Srqs Open Negotiation Notification", "eurex.derivatives.eti.t7.v13.0.srqsopennegotiationnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_open_negotiation_request = ProtoField.new("Srqs Open Negotiation Request", "eurex.derivatives.eti.t7.v13.0.srqsopennegotiationrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_open_negotiation_requester_notification = ProtoField.new("Srqs Open Negotiation Requester Notification", "eurex.derivatives.eti.t7.v13.0.srqsopennegotiationrequesternotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_notification = ProtoField.new("Srqs Quote Notification", "eurex.derivatives.eti.t7.v13.0.srqsquotenotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_response = ProtoField.new("Srqs Quote Response", "eurex.derivatives.eti.t7.v13.0.srqsquoteresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_snapshot_notification = ProtoField.new("Srqs Quote Snapshot Notification", "eurex.derivatives.eti.t7.v13.0.srqsquotesnapshotnotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_snapshot_request = ProtoField.new("Srqs Quote Snapshot Request", "eurex.derivatives.eti.t7.v13.0.srqsquotesnapshotrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quoting_status_request = ProtoField.new("Srqs Quoting Status Request", "eurex.derivatives.eti.t7.v13.0.srqsquotingstatusrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_response = ProtoField.new("Srqs Response", "eurex.derivatives.eti.t7.v13.0.srqsresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_status_broadcast = ProtoField.new("Srqs Status Broadcast", "eurex.derivatives.eti.t7.v13.0.srqsstatusbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_update_deal_status_request = ProtoField.new("Srqs Update Deal Status Request", "eurex.derivatives.eti.t7.v13.0.srqsupdatedealstatusrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_update_negotiation_request = ProtoField.new("Srqs Update Negotiation Request", "eurex.derivatives.eti.t7.v13.0.srqsupdatenegotiationrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.status_broadcast = ProtoField.new("Status Broadcast", "eurex.derivatives.eti.t7.v13.0.statusbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.subscribe_request = ProtoField.new("Subscribe Request", "eurex.derivatives.eti.t7.v13.0.subscriberequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.subscribe_response = ProtoField.new("Subscribe Response", "eurex.derivatives.eti.t7.v13.0.subscriberesponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_approve_broadcast = ProtoField.new("Tes Approve Broadcast", "eurex.derivatives.eti.t7.v13.0.tesapprovebroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_broadcast = ProtoField.new("Tes Broadcast", "eurex.derivatives.eti.t7.v13.0.tesbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_delete_broadcast = ProtoField.new("Tes Delete Broadcast", "eurex.derivatives.eti.t7.v13.0.tesdeletebroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_execution_broadcast = ProtoField.new("Tes Execution Broadcast", "eurex.derivatives.eti.t7.v13.0.tesexecutionbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_response = ProtoField.new("Tes Response", "eurex.derivatives.eti.t7.v13.0.tesresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_reversal_broadcast = ProtoField.new("Tes Reversal Broadcast", "eurex.derivatives.eti.t7.v13.0.tesreversalbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_trade_broadcast = ProtoField.new("Tes Trade Broadcast", "eurex.derivatives.eti.t7.v13.0.testradebroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_trading_session_status_broadcast = ProtoField.new("Tes Trading Session Status Broadcast", "eurex.derivatives.eti.t7.v13.0.testradingsessionstatusbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tes_upload_broadcast = ProtoField.new("Tes Upload Broadcast", "eurex.derivatives.eti.t7.v13.0.tesuploadbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_update_notification = ProtoField.new("Throttle Update Notification", "eurex.derivatives.eti.t7.v13.0.throttleupdatenotification", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.tm_trading_session_status_broadcast = ProtoField.new("Tm Trading Session Status Broadcast", "eurex.derivatives.eti.t7.v13.0.tmtradingsessionstatusbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.trade_broadcast = ProtoField.new("Trade Broadcast", "eurex.derivatives.eti.t7.v13.0.tradebroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.trading_session_status_broadcast = ProtoField.new("Trading Session Status Broadcast", "eurex.derivatives.eti.t7.v13.0.tradingsessionstatusbroadcast", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.unsubscribe_request = ProtoField.new("Unsubscribe Request", "eurex.derivatives.eti.t7.v13.0.unsubscriberequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.unsubscribe_response = ProtoField.new("Unsubscribe Response", "eurex.derivatives.eti.t7.v13.0.unsubscriberesponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.update_remaining_risk_allowance_base_request = ProtoField.new("Update Remaining Risk Allowance Base Request", "eurex.derivatives.eti.t7.v13.0.updateremainingriskallowancebaserequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.update_remaining_risk_allowance_base_response = ProtoField.new("Update Remaining Risk Allowance Base Response", "eurex.derivatives.eti.t7.v13.0.updateremainingriskallowancebaseresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.upload_tes_trade_request = ProtoField.new("Upload Tes Trade Request", "eurex.derivatives.eti.t7.v13.0.uploadtestraderequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.user_login_request = ProtoField.new("User Login Request", "eurex.derivatives.eti.t7.v13.0.userloginrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.user_login_request_encrypted = ProtoField.new("User Login Request Encrypted", "eurex.derivatives.eti.t7.v13.0.userloginrequestencrypted", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.user_login_response = ProtoField.new("User Login Response", "eurex.derivatives.eti.t7.v13.0.userloginresponse", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.user_logout_request = ProtoField.new("User Logout Request", "eurex.derivatives.eti.t7.v13.0.userlogoutrequest", ftypes.STRING)
omi_eurex_derivatives_eti_t7_v13_0.fields.user_logout_response = ProtoField.new("User Logout Response", "eurex.derivatives.eti.t7.v13.0.userlogoutresponse", ftypes.STRING)

-- Eurex Derivatives Eti T7 13.0 generated fields
omi_eurex_derivatives_eti_t7_v13_0.fields.affected_order_requests_grp_comp_index = ProtoField.new("Affected Order Requests Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.affectedorderrequestsgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_exec_grp_comp_index = ProtoField.new("Basket Exec Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.basketexecgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_root_party_grp_comp_index = ProtoField.new("Basket Root Party Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.basketrootpartygrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_bc_grp_comp_index = ProtoField.new("Basket Side Alloc Ext Bc Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.basketsideallocextbcgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_grp_comp_index = ProtoField.new("Basket Side Alloc Ext Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.basketsideallocextgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_grp_comp_index = ProtoField.new("Basket Side Alloc Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.basketsideallocgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_ack_side_grp_comp_index = ProtoField.new("Cross Request Ack Side Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.crossrequestacksidegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_side_grp_comp_index = ProtoField.new("Cross Request Side Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.crossrequestsidegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.enrichment_rules_grp_comp_index = ProtoField.new("Enrichment Rules Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.enrichmentrulesgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.fills_grp_comp_index = ProtoField.new("Fills Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.fillsgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrmnt_leg_exec_grp_comp_index = ProtoField.new("Instrmnt Leg Exec Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.instrmntlegexecgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_leg_grp_comp_index = ProtoField.new("Instrmt Leg Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.instrmtleggrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_match_side_grp_comp_index = ProtoField.new("Instrmt Match Side Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.instrmtmatchsidegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_attribute_grp_comp_index = ProtoField.new("Instrument Attribute Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.instrumentattributegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_event_grp_comp_index = ProtoField.new("Instrument Event Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.instrumenteventgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.leg_ord_grp_comp_index = ProtoField.new("Leg Ord Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.legordgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_grp_comp_index = ProtoField.new("Mm Parameter Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.mmparametergrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_instrmt_match_side_grp_comp_index = ProtoField.new("New Basket Instrmt Match Side Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.newbasketinstrmtmatchsidegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_side_alloc_grp_comp_index = ProtoField.new("New Basket Side Alloc Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.newbasketsideallocgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_orders_grp_comp_index = ProtoField.new("Not Affected Orders Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.notaffectedordersgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_securities_grp_comp_index = ProtoField.new("Not Affected Securities Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.notaffectedsecuritiesgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_instrmt_match_side_grp_comp_index = ProtoField.new("Old Basket Instrmt Match Side Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.oldbasketinstrmtmatchsidegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_side_alloc_grp_comp_index = ProtoField.new("Old Basket Side Alloc Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.oldbasketsideallocgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_book_item_grp_comp_index = ProtoField.new("Order Book Item Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.orderbookitemgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_entry_grp_comp_index = ProtoField.new("Order Entry Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.orderentrygrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_grp_comp_index = ProtoField.new("Order Event Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.ordereventgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.party_details_grp_comp_index = ProtoField.new("Party Details Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.partydetailsgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.quot_req_legs_grp_comp_index = ProtoField.new("Quot Req Legs Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.quotreqlegsgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_ack_grp_comp_index = ProtoField.new("Quote Entry Ack Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.quoteentryackgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_grp_comp_index = ProtoField.new("Quote Entry Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.quoteentrygrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_grp_comp_index = ProtoField.new("Quote Event Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.quoteeventgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.quote_leg_exec_grp_comp_index = ProtoField.new("Quote Leg Exec Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.quotelegexecgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_qty_grp_comp_index = ProtoField.new("Risk Limit Qty Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.risklimitqtygrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limits_rpt_grp_comp_index = ProtoField.new("Risk Limits Rpt Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.risklimitsrptgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_ack_grp_comp_index = ProtoField.new("Rra Update Base Party Ack Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.rraupdatebasepartyackgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_grp_comp_index = ProtoField.new("Rra Update Base Party Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.rraupdatebasepartygrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.sessions_grp_comp_index = ProtoField.new("Sessions Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.sessionsgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_ext_grp_comp_index = ProtoField.new("Side Alloc Ext Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.sideallocextgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_bc_comp_index = ProtoField.new("Side Alloc Grp Bc Comp Index", "eurex.derivatives.eti.t7.v13.0.sideallocgrpbccompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_comp_index = ProtoField.new("Side Alloc Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.sideallocgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.side_cross_leg_grp_comp_index = ProtoField.new("Side Cross Leg Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.sidecrossleggrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.smart_party_detail_grp_comp_index = ProtoField.new("Smart Party Detail Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.smartpartydetailgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_hit_quote_grp_comp_index = ProtoField.new("Srqs Hit Quote Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.srqshitquotegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_entry_grp_comp_index = ProtoField.new("Srqs Quote Entry Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.srqsquoteentrygrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_grp_comp_index = ProtoField.new("Srqs Quote Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.srqsquotegrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_target_party_trd_grp_comp_index = ProtoField.new("Srqs Target Party Trd Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.srqstargetpartytrdgrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.target_parties_comp_index = ProtoField.new("Target Parties Comp Index", "eurex.derivatives.eti.t7.v13.0.targetpartiescompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_clearing_price_leg_grp_comp_index = ProtoField.new("Trd Clearing Price Leg Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.trdclearingpriceleggrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.trd_instrmnt_leg_grp_comp_index = ProtoField.new("Trd Instrmnt Leg Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.trdinstrmntleggrpcompindex", ftypes.UINT16)
omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_grp_comp_index = ProtoField.new("Underlying Stip Grp Comp Index", "eurex.derivatives.eti.t7.v13.0.underlyingstipgrpcompindex", ftypes.UINT16)

-----------------------------------------------------------------------
-- Declare Dissection Options
-----------------------------------------------------------------------

local show = {}

-- Eurex Derivatives Eti T7 13.0 Element Dissection Options
show.add_complex_instrument_request = true
show.add_complex_instrument_response = true
show.add_flexible_instrument_request = true
show.add_flexible_instrument_response = true
show.add_scaled_simple_instrument_request = true
show.add_scaled_simple_instrument_response = true
show.affected_order_requests_grp_comp = true
show.amend_basket_trade_request = true
show.approve_basket_trade_request = true
show.approve_reverse_tes_trade_request = true
show.approve_tes_trade_request = true
show.basket_approve_broadcast = true
show.basket_broadcast = true
show.basket_delete_broadcast = true
show.basket_exec_grp_comp = true
show.basket_execution_broadcast = true
show.basket_response = true
show.basket_roll_broadcast = true
show.basket_roll_request = true
show.basket_root_party_grp_comp = true
show.basket_side_alloc_ext_bc_grp_comp = true
show.basket_side_alloc_ext_grp_comp = true
show.basket_side_alloc_grp_comp = true
show.broadcast_error_notification = true
show.clip_deletion_notification = true
show.clip_execution_notification = true
show.clip_response = true
show.cross_request = true
show.cross_request_ack_side_grp_comp = true
show.cross_request_response = true
show.cross_request_side_grp_comp = true
show.delete_all_order_broadcast = true
show.delete_all_order_nr_response = true
show.delete_all_order_quote_event_broadcast = true
show.delete_all_order_request = true
show.delete_all_order_response = true
show.delete_all_quote_broadcast = true
show.delete_all_quote_request = true
show.delete_all_quote_response = true
show.delete_basket_trade_request = true
show.delete_clip_request = true
show.delete_order_broadcast = true
show.delete_order_complex_request = true
show.delete_order_nr_response = true
show.delete_order_request = true
show.delete_order_response = true
show.delete_order_single_request = true
show.delete_tes_trade_request = true
show.enrichment_rules_grp_comp = true
show.enter_basket_trade_request = true
show.enter_clip_request = true
show.enter_tes_trade_request = true
show.fills_grp_comp = true
show.forced_logout_notification = true
show.forced_user_logout_notification = true
show.heartbeat = true
show.heartbeat_notification = true
show.inquire_enrichment_rule_id_list_request = true
show.inquire_enrichment_rule_id_list_response = true
show.inquire_margin_based_risk_limit_request = true
show.inquire_margin_based_risk_limit_response = true
show.inquire_mm_parameter_request = true
show.inquire_mm_parameter_response = true
show.inquire_pre_trade_risk_limits_request = true
show.inquire_session_list_request = true
show.inquire_session_list_response = true
show.inquire_user_request = true
show.inquire_user_response = true
show.instrmnt_leg_exec_grp_comp = true
show.instrmt_leg_grp_comp = true
show.instrmt_match_side_grp_comp = true
show.instrument_attribute_grp_comp = true
show.instrument_event_grp_comp = true
show.leg_ord_grp_comp = true
show.legal_notification_broadcast = true
show.logon_request = true
show.logon_request_encrypted = true
show.logon_response = true
show.logout_request = true
show.logout_response = true
show.mass_order = true
show.mass_order_ack = true
show.mass_quote_request = true
show.mass_quote_response = true
show.message = true
show.message_header = true
show.mm_parameter_definition_request = true
show.mm_parameter_definition_response = true
show.mm_parameter_grp_comp = true
show.modify_basket_trade_request = true
show.modify_order_complex_request = true
show.modify_order_complex_short_request = true
show.modify_order_nr_response = true
show.modify_order_request = true
show.modify_order_response = true
show.modify_order_short_request = true
show.modify_order_single_request = true
show.modify_order_single_short_request = true
show.modify_tes_trade_request = true
show.new_basket_data_bc_grp_comp = true
show.new_basket_data_grp_comp = true
show.new_basket_instrmt_match_side_grp_comp = true
show.new_basket_side_alloc_grp_comp = true
show.new_order_complex_request = true
show.new_order_complex_short_request = true
show.new_order_nr_response = true
show.new_order_request = true
show.new_order_response = true
show.new_order_short_request = true
show.new_order_single_request = true
show.new_order_single_short_request = true
show.news_broadcast = true
show.not_affected_orders_grp_comp = true
show.not_affected_securities_grp_comp = true
show.notif_header_comp = true
show.nr_response_header_me_comp = true
show.nrbc_header_comp = true
show.old_basket_data_bc_grp_comp = true
show.old_basket_data_grp_comp = true
show.old_basket_instrmt_match_side_grp_comp = true
show.old_basket_side_alloc_grp_comp = true
show.order_book_item_grp_comp = true
show.order_entry_grp_comp = true
show.order_event_grp_comp = true
show.order_exec_notification = true
show.order_exec_report_broadcast = true
show.order_exec_response = true
show.packet = true
show.party_action_report = true
show.party_details_grp_comp = true
show.party_entitlements_update_report = true
show.ping_request = true
show.ping_response = true
show.pre_trade_risk_limit_response = true
show.pre_trade_risk_limits_definition_request = true
show.quot_req_legs_grp_comp = true
show.quote_activation_notification = true
show.quote_activation_request = true
show.quote_activation_response = true
show.quote_entry_ack_grp_comp = true
show.quote_entry_grp_comp = true
show.quote_event_grp_comp = true
show.quote_execution_report = true
show.quote_leg_exec_grp_comp = true
show.rbc_header_comp = true
show.rbc_header_me_comp = true
show.reject = true
show.request_header_comp = true
show.response_header_comp = true
show.response_header_me_comp = true
show.retransmit_me_message_request = true
show.retransmit_me_message_response = true
show.retransmit_request = true
show.retransmit_response = true
show.reverse_tes_trade_request = true
show.rfq_request = true
show.rfq_response = true
show.risk_limit_qty_grp_comp = true
show.risk_limits_rpt_grp_comp = true
show.risk_notification_broadcast = true
show.rra_update_base_party_ack_grp_comp = true
show.rra_update_base_party_grp_comp = true
show.service_availability_broadcast = true
show.service_availability_market_broadcast = true
show.sessions_grp_comp = true
show.side_alloc_ext_grp_comp = true
show.side_alloc_grp_bc_comp = true
show.side_alloc_grp_comp = true
show.side_cross_leg_grp_comp = true
show.smart_party_detail_grp_comp = true
show.srqs_create_deal_notification = true
show.srqs_deal_notification = true
show.srqs_deal_response = true
show.srqs_enter_quote_request = true
show.srqs_hit_quote_grp_comp = true
show.srqs_hit_quote_request = true
show.srqs_inquire_smart_respondent_request = true
show.srqs_inquire_smart_respondent_response = true
show.srqs_negotiation_notification = true
show.srqs_negotiation_requester_notification = true
show.srqs_negotiation_status_notification = true
show.srqs_open_negotiation_notification = true
show.srqs_open_negotiation_request = true
show.srqs_open_negotiation_requester_notification = true
show.srqs_quote_entry_grp_comp = true
show.srqs_quote_grp_comp = true
show.srqs_quote_notification = true
show.srqs_quote_response = true
show.srqs_quote_snapshot_notification = true
show.srqs_quote_snapshot_request = true
show.srqs_quoting_status_request = true
show.srqs_response = true
show.srqs_status_broadcast = true
show.srqs_target_party_trd_grp_comp = true
show.srqs_update_deal_status_request = true
show.srqs_update_negotiation_request = true
show.status_broadcast = true
show.subscribe_request = true
show.subscribe_response = true
show.target_parties_comp = true
show.tes_approve_broadcast = true
show.tes_broadcast = true
show.tes_delete_broadcast = true
show.tes_execution_broadcast = true
show.tes_response = true
show.tes_reversal_broadcast = true
show.tes_trade_broadcast = true
show.tes_trading_session_status_broadcast = true
show.tes_upload_broadcast = true
show.throttle_update_notification = true
show.tm_trading_session_status_broadcast = true
show.trade_broadcast = true
show.trading_session_status_broadcast = true
show.trd_clearing_price_leg_grp_comp = true
show.trd_instrmnt_leg_grp_comp = true
show.underlying_stip_grp_comp = true
show.unsubscribe_request = true
show.unsubscribe_response = true
show.update_remaining_risk_allowance_base_request = true
show.update_remaining_risk_allowance_base_response = true
show.upload_tes_trade_request = true
show.user_login_request = true
show.user_login_request_encrypted = true
show.user_login_response = true
show.user_logout_request = true
show.user_logout_response = true
show.payload = false

-- Register Eurex Derivatives Eti T7 13.0 Show Options
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_complex_instrument_request = Pref.bool("Show Add Complex Instrument Request", show.add_complex_instrument_request, "Parse and add Add Complex Instrument Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_complex_instrument_response = Pref.bool("Show Add Complex Instrument Response", show.add_complex_instrument_response, "Parse and add Add Complex Instrument Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_flexible_instrument_request = Pref.bool("Show Add Flexible Instrument Request", show.add_flexible_instrument_request, "Parse and add Add Flexible Instrument Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_flexible_instrument_response = Pref.bool("Show Add Flexible Instrument Response", show.add_flexible_instrument_response, "Parse and add Add Flexible Instrument Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_scaled_simple_instrument_request = Pref.bool("Show Add Scaled Simple Instrument Request", show.add_scaled_simple_instrument_request, "Parse and add Add Scaled Simple Instrument Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_scaled_simple_instrument_response = Pref.bool("Show Add Scaled Simple Instrument Response", show.add_scaled_simple_instrument_response, "Parse and add Add Scaled Simple Instrument Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_affected_order_requests_grp_comp = Pref.bool("Show Affected Order Requests Grp Comp", show.affected_order_requests_grp_comp, "Parse and add Affected Order Requests Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_amend_basket_trade_request = Pref.bool("Show Amend Basket Trade Request", show.amend_basket_trade_request, "Parse and add Amend Basket Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_basket_trade_request = Pref.bool("Show Approve Basket Trade Request", show.approve_basket_trade_request, "Parse and add Approve Basket Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_reverse_tes_trade_request = Pref.bool("Show Approve Reverse Tes Trade Request", show.approve_reverse_tes_trade_request, "Parse and add Approve Reverse Tes Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_tes_trade_request = Pref.bool("Show Approve Tes Trade Request", show.approve_tes_trade_request, "Parse and add Approve Tes Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_approve_broadcast = Pref.bool("Show Basket Approve Broadcast", show.basket_approve_broadcast, "Parse and add Basket Approve Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_broadcast = Pref.bool("Show Basket Broadcast", show.basket_broadcast, "Parse and add Basket Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_delete_broadcast = Pref.bool("Show Basket Delete Broadcast", show.basket_delete_broadcast, "Parse and add Basket Delete Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_exec_grp_comp = Pref.bool("Show Basket Exec Grp Comp", show.basket_exec_grp_comp, "Parse and add Basket Exec Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_execution_broadcast = Pref.bool("Show Basket Execution Broadcast", show.basket_execution_broadcast, "Parse and add Basket Execution Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_response = Pref.bool("Show Basket Response", show.basket_response, "Parse and add Basket Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_roll_broadcast = Pref.bool("Show Basket Roll Broadcast", show.basket_roll_broadcast, "Parse and add Basket Roll Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_roll_request = Pref.bool("Show Basket Roll Request", show.basket_roll_request, "Parse and add Basket Roll Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_root_party_grp_comp = Pref.bool("Show Basket Root Party Grp Comp", show.basket_root_party_grp_comp, "Parse and add Basket Root Party Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_ext_bc_grp_comp = Pref.bool("Show Basket Side Alloc Ext Bc Grp Comp", show.basket_side_alloc_ext_bc_grp_comp, "Parse and add Basket Side Alloc Ext Bc Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_ext_grp_comp = Pref.bool("Show Basket Side Alloc Ext Grp Comp", show.basket_side_alloc_ext_grp_comp, "Parse and add Basket Side Alloc Ext Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_grp_comp = Pref.bool("Show Basket Side Alloc Grp Comp", show.basket_side_alloc_grp_comp, "Parse and add Basket Side Alloc Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_broadcast_error_notification = Pref.bool("Show Broadcast Error Notification", show.broadcast_error_notification, "Parse and add Broadcast Error Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_deletion_notification = Pref.bool("Show Clip Deletion Notification", show.clip_deletion_notification, "Parse and add Clip Deletion Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_execution_notification = Pref.bool("Show Clip Execution Notification", show.clip_execution_notification, "Parse and add Clip Execution Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_response = Pref.bool("Show Clip Response", show.clip_response, "Parse and add Clip Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request = Pref.bool("Show Cross Request", show.cross_request, "Parse and add Cross Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_ack_side_grp_comp = Pref.bool("Show Cross Request Ack Side Grp Comp", show.cross_request_ack_side_grp_comp, "Parse and add Cross Request Ack Side Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_response = Pref.bool("Show Cross Request Response", show.cross_request_response, "Parse and add Cross Request Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_side_grp_comp = Pref.bool("Show Cross Request Side Grp Comp", show.cross_request_side_grp_comp, "Parse and add Cross Request Side Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_broadcast = Pref.bool("Show Delete All Order Broadcast", show.delete_all_order_broadcast, "Parse and add Delete All Order Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_nr_response = Pref.bool("Show Delete All Order Nr Response", show.delete_all_order_nr_response, "Parse and add Delete All Order Nr Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_quote_event_broadcast = Pref.bool("Show Delete All Order Quote Event Broadcast", show.delete_all_order_quote_event_broadcast, "Parse and add Delete All Order Quote Event Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_request = Pref.bool("Show Delete All Order Request", show.delete_all_order_request, "Parse and add Delete All Order Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_response = Pref.bool("Show Delete All Order Response", show.delete_all_order_response, "Parse and add Delete All Order Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_broadcast = Pref.bool("Show Delete All Quote Broadcast", show.delete_all_quote_broadcast, "Parse and add Delete All Quote Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_request = Pref.bool("Show Delete All Quote Request", show.delete_all_quote_request, "Parse and add Delete All Quote Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_response = Pref.bool("Show Delete All Quote Response", show.delete_all_quote_response, "Parse and add Delete All Quote Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_basket_trade_request = Pref.bool("Show Delete Basket Trade Request", show.delete_basket_trade_request, "Parse and add Delete Basket Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_clip_request = Pref.bool("Show Delete Clip Request", show.delete_clip_request, "Parse and add Delete Clip Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_broadcast = Pref.bool("Show Delete Order Broadcast", show.delete_order_broadcast, "Parse and add Delete Order Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_complex_request = Pref.bool("Show Delete Order Complex Request", show.delete_order_complex_request, "Parse and add Delete Order Complex Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_nr_response = Pref.bool("Show Delete Order Nr Response", show.delete_order_nr_response, "Parse and add Delete Order Nr Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_request = Pref.bool("Show Delete Order Request", show.delete_order_request, "Parse and add Delete Order Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_response = Pref.bool("Show Delete Order Response", show.delete_order_response, "Parse and add Delete Order Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_single_request = Pref.bool("Show Delete Order Single Request", show.delete_order_single_request, "Parse and add Delete Order Single Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_tes_trade_request = Pref.bool("Show Delete Tes Trade Request", show.delete_tes_trade_request, "Parse and add Delete Tes Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enrichment_rules_grp_comp = Pref.bool("Show Enrichment Rules Grp Comp", show.enrichment_rules_grp_comp, "Parse and add Enrichment Rules Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_basket_trade_request = Pref.bool("Show Enter Basket Trade Request", show.enter_basket_trade_request, "Parse and add Enter Basket Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_clip_request = Pref.bool("Show Enter Clip Request", show.enter_clip_request, "Parse and add Enter Clip Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_tes_trade_request = Pref.bool("Show Enter Tes Trade Request", show.enter_tes_trade_request, "Parse and add Enter Tes Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_fills_grp_comp = Pref.bool("Show Fills Grp Comp", show.fills_grp_comp, "Parse and add Fills Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_forced_logout_notification = Pref.bool("Show Forced Logout Notification", show.forced_logout_notification, "Parse and add Forced Logout Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_forced_user_logout_notification = Pref.bool("Show Forced User Logout Notification", show.forced_user_logout_notification, "Parse and add Forced User Logout Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_heartbeat = Pref.bool("Show Heartbeat", show.heartbeat, "Parse and add Heartbeat to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_heartbeat_notification = Pref.bool("Show Heartbeat Notification", show.heartbeat_notification, "Parse and add Heartbeat Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_enrichment_rule_id_list_request = Pref.bool("Show Inquire Enrichment Rule Id List Request", show.inquire_enrichment_rule_id_list_request, "Parse and add Inquire Enrichment Rule Id List Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_enrichment_rule_id_list_response = Pref.bool("Show Inquire Enrichment Rule Id List Response", show.inquire_enrichment_rule_id_list_response, "Parse and add Inquire Enrichment Rule Id List Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_margin_based_risk_limit_request = Pref.bool("Show Inquire Margin Based Risk Limit Request", show.inquire_margin_based_risk_limit_request, "Parse and add Inquire Margin Based Risk Limit Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_margin_based_risk_limit_response = Pref.bool("Show Inquire Margin Based Risk Limit Response", show.inquire_margin_based_risk_limit_response, "Parse and add Inquire Margin Based Risk Limit Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_mm_parameter_request = Pref.bool("Show Inquire Mm Parameter Request", show.inquire_mm_parameter_request, "Parse and add Inquire Mm Parameter Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_mm_parameter_response = Pref.bool("Show Inquire Mm Parameter Response", show.inquire_mm_parameter_response, "Parse and add Inquire Mm Parameter Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_pre_trade_risk_limits_request = Pref.bool("Show Inquire Pre Trade Risk Limits Request", show.inquire_pre_trade_risk_limits_request, "Parse and add Inquire Pre Trade Risk Limits Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_session_list_request = Pref.bool("Show Inquire Session List Request", show.inquire_session_list_request, "Parse and add Inquire Session List Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_session_list_response = Pref.bool("Show Inquire Session List Response", show.inquire_session_list_response, "Parse and add Inquire Session List Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_user_request = Pref.bool("Show Inquire User Request", show.inquire_user_request, "Parse and add Inquire User Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_user_response = Pref.bool("Show Inquire User Response", show.inquire_user_response, "Parse and add Inquire User Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmnt_leg_exec_grp_comp = Pref.bool("Show Instrmnt Leg Exec Grp Comp", show.instrmnt_leg_exec_grp_comp, "Parse and add Instrmnt Leg Exec Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmt_leg_grp_comp = Pref.bool("Show Instrmt Leg Grp Comp", show.instrmt_leg_grp_comp, "Parse and add Instrmt Leg Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmt_match_side_grp_comp = Pref.bool("Show Instrmt Match Side Grp Comp", show.instrmt_match_side_grp_comp, "Parse and add Instrmt Match Side Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrument_attribute_grp_comp = Pref.bool("Show Instrument Attribute Grp Comp", show.instrument_attribute_grp_comp, "Parse and add Instrument Attribute Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrument_event_grp_comp = Pref.bool("Show Instrument Event Grp Comp", show.instrument_event_grp_comp, "Parse and add Instrument Event Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_leg_ord_grp_comp = Pref.bool("Show Leg Ord Grp Comp", show.leg_ord_grp_comp, "Parse and add Leg Ord Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_legal_notification_broadcast = Pref.bool("Show Legal Notification Broadcast", show.legal_notification_broadcast, "Parse and add Legal Notification Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_request = Pref.bool("Show Logon Request", show.logon_request, "Parse and add Logon Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_request_encrypted = Pref.bool("Show Logon Request Encrypted", show.logon_request_encrypted, "Parse and add Logon Request Encrypted to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_response = Pref.bool("Show Logon Response", show.logon_response, "Parse and add Logon Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logout_request = Pref.bool("Show Logout Request", show.logout_request, "Parse and add Logout Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logout_response = Pref.bool("Show Logout Response", show.logout_response, "Parse and add Logout Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_order = Pref.bool("Show Mass Order", show.mass_order, "Parse and add Mass Order to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_order_ack = Pref.bool("Show Mass Order Ack", show.mass_order_ack, "Parse and add Mass Order Ack to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_quote_request = Pref.bool("Show Mass Quote Request", show.mass_quote_request, "Parse and add Mass Quote Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_quote_response = Pref.bool("Show Mass Quote Response", show.mass_quote_response, "Parse and add Mass Quote Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_message = Pref.bool("Show Message", show.message, "Parse and add Message to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_message_header = Pref.bool("Show Message Header", show.message_header, "Parse and add Message Header to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_definition_request = Pref.bool("Show Mm Parameter Definition Request", show.mm_parameter_definition_request, "Parse and add Mm Parameter Definition Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_definition_response = Pref.bool("Show Mm Parameter Definition Response", show.mm_parameter_definition_response, "Parse and add Mm Parameter Definition Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_grp_comp = Pref.bool("Show Mm Parameter Grp Comp", show.mm_parameter_grp_comp, "Parse and add Mm Parameter Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_basket_trade_request = Pref.bool("Show Modify Basket Trade Request", show.modify_basket_trade_request, "Parse and add Modify Basket Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_complex_request = Pref.bool("Show Modify Order Complex Request", show.modify_order_complex_request, "Parse and add Modify Order Complex Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_complex_short_request = Pref.bool("Show Modify Order Complex Short Request", show.modify_order_complex_short_request, "Parse and add Modify Order Complex Short Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_nr_response = Pref.bool("Show Modify Order Nr Response", show.modify_order_nr_response, "Parse and add Modify Order Nr Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_request = Pref.bool("Show Modify Order Request", show.modify_order_request, "Parse and add Modify Order Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_response = Pref.bool("Show Modify Order Response", show.modify_order_response, "Parse and add Modify Order Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_short_request = Pref.bool("Show Modify Order Short Request", show.modify_order_short_request, "Parse and add Modify Order Short Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_single_request = Pref.bool("Show Modify Order Single Request", show.modify_order_single_request, "Parse and add Modify Order Single Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_single_short_request = Pref.bool("Show Modify Order Single Short Request", show.modify_order_single_short_request, "Parse and add Modify Order Single Short Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_tes_trade_request = Pref.bool("Show Modify Tes Trade Request", show.modify_tes_trade_request, "Parse and add Modify Tes Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_data_bc_grp_comp = Pref.bool("Show New Basket Data Bc Grp Comp", show.new_basket_data_bc_grp_comp, "Parse and add New Basket Data Bc Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_data_grp_comp = Pref.bool("Show New Basket Data Grp Comp", show.new_basket_data_grp_comp, "Parse and add New Basket Data Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_instrmt_match_side_grp_comp = Pref.bool("Show New Basket Instrmt Match Side Grp Comp", show.new_basket_instrmt_match_side_grp_comp, "Parse and add New Basket Instrmt Match Side Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_side_alloc_grp_comp = Pref.bool("Show New Basket Side Alloc Grp Comp", show.new_basket_side_alloc_grp_comp, "Parse and add New Basket Side Alloc Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_complex_request = Pref.bool("Show New Order Complex Request", show.new_order_complex_request, "Parse and add New Order Complex Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_complex_short_request = Pref.bool("Show New Order Complex Short Request", show.new_order_complex_short_request, "Parse and add New Order Complex Short Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_nr_response = Pref.bool("Show New Order Nr Response", show.new_order_nr_response, "Parse and add New Order Nr Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_request = Pref.bool("Show New Order Request", show.new_order_request, "Parse and add New Order Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_response = Pref.bool("Show New Order Response", show.new_order_response, "Parse and add New Order Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_short_request = Pref.bool("Show New Order Short Request", show.new_order_short_request, "Parse and add New Order Short Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_single_request = Pref.bool("Show New Order Single Request", show.new_order_single_request, "Parse and add New Order Single Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_single_short_request = Pref.bool("Show New Order Single Short Request", show.new_order_single_short_request, "Parse and add New Order Single Short Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_news_broadcast = Pref.bool("Show News Broadcast", show.news_broadcast, "Parse and add News Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_not_affected_orders_grp_comp = Pref.bool("Show Not Affected Orders Grp Comp", show.not_affected_orders_grp_comp, "Parse and add Not Affected Orders Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_not_affected_securities_grp_comp = Pref.bool("Show Not Affected Securities Grp Comp", show.not_affected_securities_grp_comp, "Parse and add Not Affected Securities Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_notif_header_comp = Pref.bool("Show Notif Header Comp", show.notif_header_comp, "Parse and add Notif Header Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_nr_response_header_me_comp = Pref.bool("Show Nr Response Header Me Comp", show.nr_response_header_me_comp, "Parse and add Nr Response Header Me Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_nrbc_header_comp = Pref.bool("Show Nrbc Header Comp", show.nrbc_header_comp, "Parse and add Nrbc Header Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_data_bc_grp_comp = Pref.bool("Show Old Basket Data Bc Grp Comp", show.old_basket_data_bc_grp_comp, "Parse and add Old Basket Data Bc Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_data_grp_comp = Pref.bool("Show Old Basket Data Grp Comp", show.old_basket_data_grp_comp, "Parse and add Old Basket Data Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_instrmt_match_side_grp_comp = Pref.bool("Show Old Basket Instrmt Match Side Grp Comp", show.old_basket_instrmt_match_side_grp_comp, "Parse and add Old Basket Instrmt Match Side Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_side_alloc_grp_comp = Pref.bool("Show Old Basket Side Alloc Grp Comp", show.old_basket_side_alloc_grp_comp, "Parse and add Old Basket Side Alloc Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_book_item_grp_comp = Pref.bool("Show Order Book Item Grp Comp", show.order_book_item_grp_comp, "Parse and add Order Book Item Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_entry_grp_comp = Pref.bool("Show Order Entry Grp Comp", show.order_entry_grp_comp, "Parse and add Order Entry Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_event_grp_comp = Pref.bool("Show Order Event Grp Comp", show.order_event_grp_comp, "Parse and add Order Event Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_notification = Pref.bool("Show Order Exec Notification", show.order_exec_notification, "Parse and add Order Exec Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_report_broadcast = Pref.bool("Show Order Exec Report Broadcast", show.order_exec_report_broadcast, "Parse and add Order Exec Report Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_response = Pref.bool("Show Order Exec Response", show.order_exec_response, "Parse and add Order Exec Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_packet = Pref.bool("Show Packet", show.packet, "Parse and add Packet to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_action_report = Pref.bool("Show Party Action Report", show.party_action_report, "Parse and add Party Action Report to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_details_grp_comp = Pref.bool("Show Party Details Grp Comp", show.party_details_grp_comp, "Parse and add Party Details Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_entitlements_update_report = Pref.bool("Show Party Entitlements Update Report", show.party_entitlements_update_report, "Parse and add Party Entitlements Update Report to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_ping_request = Pref.bool("Show Ping Request", show.ping_request, "Parse and add Ping Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_ping_response = Pref.bool("Show Ping Response", show.ping_response, "Parse and add Ping Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_pre_trade_risk_limit_response = Pref.bool("Show Pre Trade Risk Limit Response", show.pre_trade_risk_limit_response, "Parse and add Pre Trade Risk Limit Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_pre_trade_risk_limits_definition_request = Pref.bool("Show Pre Trade Risk Limits Definition Request", show.pre_trade_risk_limits_definition_request, "Parse and add Pre Trade Risk Limits Definition Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quot_req_legs_grp_comp = Pref.bool("Show Quot Req Legs Grp Comp", show.quot_req_legs_grp_comp, "Parse and add Quot Req Legs Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_notification = Pref.bool("Show Quote Activation Notification", show.quote_activation_notification, "Parse and add Quote Activation Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_request = Pref.bool("Show Quote Activation Request", show.quote_activation_request, "Parse and add Quote Activation Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_response = Pref.bool("Show Quote Activation Response", show.quote_activation_response, "Parse and add Quote Activation Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_entry_ack_grp_comp = Pref.bool("Show Quote Entry Ack Grp Comp", show.quote_entry_ack_grp_comp, "Parse and add Quote Entry Ack Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_entry_grp_comp = Pref.bool("Show Quote Entry Grp Comp", show.quote_entry_grp_comp, "Parse and add Quote Entry Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_event_grp_comp = Pref.bool("Show Quote Event Grp Comp", show.quote_event_grp_comp, "Parse and add Quote Event Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_execution_report = Pref.bool("Show Quote Execution Report", show.quote_execution_report, "Parse and add Quote Execution Report to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_leg_exec_grp_comp = Pref.bool("Show Quote Leg Exec Grp Comp", show.quote_leg_exec_grp_comp, "Parse and add Quote Leg Exec Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rbc_header_comp = Pref.bool("Show Rbc Header Comp", show.rbc_header_comp, "Parse and add Rbc Header Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rbc_header_me_comp = Pref.bool("Show Rbc Header Me Comp", show.rbc_header_me_comp, "Parse and add Rbc Header Me Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_reject = Pref.bool("Show Reject", show.reject, "Parse and add Reject to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_request_header_comp = Pref.bool("Show Request Header Comp", show.request_header_comp, "Parse and add Request Header Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_response_header_comp = Pref.bool("Show Response Header Comp", show.response_header_comp, "Parse and add Response Header Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_response_header_me_comp = Pref.bool("Show Response Header Me Comp", show.response_header_me_comp, "Parse and add Response Header Me Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_me_message_request = Pref.bool("Show Retransmit Me Message Request", show.retransmit_me_message_request, "Parse and add Retransmit Me Message Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_me_message_response = Pref.bool("Show Retransmit Me Message Response", show.retransmit_me_message_response, "Parse and add Retransmit Me Message Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_request = Pref.bool("Show Retransmit Request", show.retransmit_request, "Parse and add Retransmit Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_response = Pref.bool("Show Retransmit Response", show.retransmit_response, "Parse and add Retransmit Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_reverse_tes_trade_request = Pref.bool("Show Reverse Tes Trade Request", show.reverse_tes_trade_request, "Parse and add Reverse Tes Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rfq_request = Pref.bool("Show Rfq Request", show.rfq_request, "Parse and add Rfq Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rfq_response = Pref.bool("Show Rfq Response", show.rfq_response, "Parse and add Rfq Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_limit_qty_grp_comp = Pref.bool("Show Risk Limit Qty Grp Comp", show.risk_limit_qty_grp_comp, "Parse and add Risk Limit Qty Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_limits_rpt_grp_comp = Pref.bool("Show Risk Limits Rpt Grp Comp", show.risk_limits_rpt_grp_comp, "Parse and add Risk Limits Rpt Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_notification_broadcast = Pref.bool("Show Risk Notification Broadcast", show.risk_notification_broadcast, "Parse and add Risk Notification Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rra_update_base_party_ack_grp_comp = Pref.bool("Show Rra Update Base Party Ack Grp Comp", show.rra_update_base_party_ack_grp_comp, "Parse and add Rra Update Base Party Ack Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rra_update_base_party_grp_comp = Pref.bool("Show Rra Update Base Party Grp Comp", show.rra_update_base_party_grp_comp, "Parse and add Rra Update Base Party Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_service_availability_broadcast = Pref.bool("Show Service Availability Broadcast", show.service_availability_broadcast, "Parse and add Service Availability Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_service_availability_market_broadcast = Pref.bool("Show Service Availability Market Broadcast", show.service_availability_market_broadcast, "Parse and add Service Availability Market Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_sessions_grp_comp = Pref.bool("Show Sessions Grp Comp", show.sessions_grp_comp, "Parse and add Sessions Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_ext_grp_comp = Pref.bool("Show Side Alloc Ext Grp Comp", show.side_alloc_ext_grp_comp, "Parse and add Side Alloc Ext Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_grp_bc_comp = Pref.bool("Show Side Alloc Grp Bc Comp", show.side_alloc_grp_bc_comp, "Parse and add Side Alloc Grp Bc Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_grp_comp = Pref.bool("Show Side Alloc Grp Comp", show.side_alloc_grp_comp, "Parse and add Side Alloc Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_cross_leg_grp_comp = Pref.bool("Show Side Cross Leg Grp Comp", show.side_cross_leg_grp_comp, "Parse and add Side Cross Leg Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_smart_party_detail_grp_comp = Pref.bool("Show Smart Party Detail Grp Comp", show.smart_party_detail_grp_comp, "Parse and add Smart Party Detail Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_create_deal_notification = Pref.bool("Show Srqs Create Deal Notification", show.srqs_create_deal_notification, "Parse and add Srqs Create Deal Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_deal_notification = Pref.bool("Show Srqs Deal Notification", show.srqs_deal_notification, "Parse and add Srqs Deal Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_deal_response = Pref.bool("Show Srqs Deal Response", show.srqs_deal_response, "Parse and add Srqs Deal Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_enter_quote_request = Pref.bool("Show Srqs Enter Quote Request", show.srqs_enter_quote_request, "Parse and add Srqs Enter Quote Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_hit_quote_grp_comp = Pref.bool("Show Srqs Hit Quote Grp Comp", show.srqs_hit_quote_grp_comp, "Parse and add Srqs Hit Quote Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_hit_quote_request = Pref.bool("Show Srqs Hit Quote Request", show.srqs_hit_quote_request, "Parse and add Srqs Hit Quote Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_inquire_smart_respondent_request = Pref.bool("Show Srqs Inquire Smart Respondent Request", show.srqs_inquire_smart_respondent_request, "Parse and add Srqs Inquire Smart Respondent Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_inquire_smart_respondent_response = Pref.bool("Show Srqs Inquire Smart Respondent Response", show.srqs_inquire_smart_respondent_response, "Parse and add Srqs Inquire Smart Respondent Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_notification = Pref.bool("Show Srqs Negotiation Notification", show.srqs_negotiation_notification, "Parse and add Srqs Negotiation Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_requester_notification = Pref.bool("Show Srqs Negotiation Requester Notification", show.srqs_negotiation_requester_notification, "Parse and add Srqs Negotiation Requester Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_status_notification = Pref.bool("Show Srqs Negotiation Status Notification", show.srqs_negotiation_status_notification, "Parse and add Srqs Negotiation Status Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_notification = Pref.bool("Show Srqs Open Negotiation Notification", show.srqs_open_negotiation_notification, "Parse and add Srqs Open Negotiation Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_request = Pref.bool("Show Srqs Open Negotiation Request", show.srqs_open_negotiation_request, "Parse and add Srqs Open Negotiation Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_requester_notification = Pref.bool("Show Srqs Open Negotiation Requester Notification", show.srqs_open_negotiation_requester_notification, "Parse and add Srqs Open Negotiation Requester Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_entry_grp_comp = Pref.bool("Show Srqs Quote Entry Grp Comp", show.srqs_quote_entry_grp_comp, "Parse and add Srqs Quote Entry Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_grp_comp = Pref.bool("Show Srqs Quote Grp Comp", show.srqs_quote_grp_comp, "Parse and add Srqs Quote Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_notification = Pref.bool("Show Srqs Quote Notification", show.srqs_quote_notification, "Parse and add Srqs Quote Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_response = Pref.bool("Show Srqs Quote Response", show.srqs_quote_response, "Parse and add Srqs Quote Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_snapshot_notification = Pref.bool("Show Srqs Quote Snapshot Notification", show.srqs_quote_snapshot_notification, "Parse and add Srqs Quote Snapshot Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_snapshot_request = Pref.bool("Show Srqs Quote Snapshot Request", show.srqs_quote_snapshot_request, "Parse and add Srqs Quote Snapshot Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quoting_status_request = Pref.bool("Show Srqs Quoting Status Request", show.srqs_quoting_status_request, "Parse and add Srqs Quoting Status Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_response = Pref.bool("Show Srqs Response", show.srqs_response, "Parse and add Srqs Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_status_broadcast = Pref.bool("Show Srqs Status Broadcast", show.srqs_status_broadcast, "Parse and add Srqs Status Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_target_party_trd_grp_comp = Pref.bool("Show Srqs Target Party Trd Grp Comp", show.srqs_target_party_trd_grp_comp, "Parse and add Srqs Target Party Trd Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_update_deal_status_request = Pref.bool("Show Srqs Update Deal Status Request", show.srqs_update_deal_status_request, "Parse and add Srqs Update Deal Status Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_update_negotiation_request = Pref.bool("Show Srqs Update Negotiation Request", show.srqs_update_negotiation_request, "Parse and add Srqs Update Negotiation Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_status_broadcast = Pref.bool("Show Status Broadcast", show.status_broadcast, "Parse and add Status Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_subscribe_request = Pref.bool("Show Subscribe Request", show.subscribe_request, "Parse and add Subscribe Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_subscribe_response = Pref.bool("Show Subscribe Response", show.subscribe_response, "Parse and add Subscribe Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_target_parties_comp = Pref.bool("Show Target Parties Comp", show.target_parties_comp, "Parse and add Target Parties Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_approve_broadcast = Pref.bool("Show Tes Approve Broadcast", show.tes_approve_broadcast, "Parse and add Tes Approve Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_broadcast = Pref.bool("Show Tes Broadcast", show.tes_broadcast, "Parse and add Tes Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_delete_broadcast = Pref.bool("Show Tes Delete Broadcast", show.tes_delete_broadcast, "Parse and add Tes Delete Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_execution_broadcast = Pref.bool("Show Tes Execution Broadcast", show.tes_execution_broadcast, "Parse and add Tes Execution Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_response = Pref.bool("Show Tes Response", show.tes_response, "Parse and add Tes Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_reversal_broadcast = Pref.bool("Show Tes Reversal Broadcast", show.tes_reversal_broadcast, "Parse and add Tes Reversal Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_trade_broadcast = Pref.bool("Show Tes Trade Broadcast", show.tes_trade_broadcast, "Parse and add Tes Trade Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_trading_session_status_broadcast = Pref.bool("Show Tes Trading Session Status Broadcast", show.tes_trading_session_status_broadcast, "Parse and add Tes Trading Session Status Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_upload_broadcast = Pref.bool("Show Tes Upload Broadcast", show.tes_upload_broadcast, "Parse and add Tes Upload Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_throttle_update_notification = Pref.bool("Show Throttle Update Notification", show.throttle_update_notification, "Parse and add Throttle Update Notification to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tm_trading_session_status_broadcast = Pref.bool("Show Tm Trading Session Status Broadcast", show.tm_trading_session_status_broadcast, "Parse and add Tm Trading Session Status Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trade_broadcast = Pref.bool("Show Trade Broadcast", show.trade_broadcast, "Parse and add Trade Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trading_session_status_broadcast = Pref.bool("Show Trading Session Status Broadcast", show.trading_session_status_broadcast, "Parse and add Trading Session Status Broadcast to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trd_clearing_price_leg_grp_comp = Pref.bool("Show Trd Clearing Price Leg Grp Comp", show.trd_clearing_price_leg_grp_comp, "Parse and add Trd Clearing Price Leg Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trd_instrmnt_leg_grp_comp = Pref.bool("Show Trd Instrmnt Leg Grp Comp", show.trd_instrmnt_leg_grp_comp, "Parse and add Trd Instrmnt Leg Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_underlying_stip_grp_comp = Pref.bool("Show Underlying Stip Grp Comp", show.underlying_stip_grp_comp, "Parse and add Underlying Stip Grp Comp to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_unsubscribe_request = Pref.bool("Show Unsubscribe Request", show.unsubscribe_request, "Parse and add Unsubscribe Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_unsubscribe_response = Pref.bool("Show Unsubscribe Response", show.unsubscribe_response, "Parse and add Unsubscribe Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_update_remaining_risk_allowance_base_request = Pref.bool("Show Update Remaining Risk Allowance Base Request", show.update_remaining_risk_allowance_base_request, "Parse and add Update Remaining Risk Allowance Base Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_update_remaining_risk_allowance_base_response = Pref.bool("Show Update Remaining Risk Allowance Base Response", show.update_remaining_risk_allowance_base_response, "Parse and add Update Remaining Risk Allowance Base Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_upload_tes_trade_request = Pref.bool("Show Upload Tes Trade Request", show.upload_tes_trade_request, "Parse and add Upload Tes Trade Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_request = Pref.bool("Show User Login Request", show.user_login_request, "Parse and add User Login Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_request_encrypted = Pref.bool("Show User Login Request Encrypted", show.user_login_request_encrypted, "Parse and add User Login Request Encrypted to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_response = Pref.bool("Show User Login Response", show.user_login_response, "Parse and add User Login Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_logout_request = Pref.bool("Show User Logout Request", show.user_logout_request, "Parse and add User Logout Request to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_logout_response = Pref.bool("Show User Logout Response", show.user_logout_response, "Parse and add User Logout Response to protocol tree")
omi_eurex_derivatives_eti_t7_v13_0.prefs.show_payload = Pref.bool("Show Payload", show.payload, "Parse and add Payload to protocol tree")

-- Handle changed preferences
function omi_eurex_derivatives_eti_t7_v13_0.prefs_changed()
  local changed = false

  -- Check if show options have changed
  if show.add_complex_instrument_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_complex_instrument_request then
    show.add_complex_instrument_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_complex_instrument_request
    changed = true
  end
  if show.add_complex_instrument_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_complex_instrument_response then
    show.add_complex_instrument_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_complex_instrument_response
    changed = true
  end
  if show.add_flexible_instrument_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_flexible_instrument_request then
    show.add_flexible_instrument_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_flexible_instrument_request
    changed = true
  end
  if show.add_flexible_instrument_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_flexible_instrument_response then
    show.add_flexible_instrument_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_flexible_instrument_response
    changed = true
  end
  if show.add_scaled_simple_instrument_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_scaled_simple_instrument_request then
    show.add_scaled_simple_instrument_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_scaled_simple_instrument_request
    changed = true
  end
  if show.add_scaled_simple_instrument_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_scaled_simple_instrument_response then
    show.add_scaled_simple_instrument_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_add_scaled_simple_instrument_response
    changed = true
  end
  if show.affected_order_requests_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_affected_order_requests_grp_comp then
    show.affected_order_requests_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_affected_order_requests_grp_comp
    changed = true
  end
  if show.amend_basket_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_amend_basket_trade_request then
    show.amend_basket_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_amend_basket_trade_request
    changed = true
  end
  if show.approve_basket_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_basket_trade_request then
    show.approve_basket_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_basket_trade_request
    changed = true
  end
  if show.approve_reverse_tes_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_reverse_tes_trade_request then
    show.approve_reverse_tes_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_reverse_tes_trade_request
    changed = true
  end
  if show.approve_tes_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_tes_trade_request then
    show.approve_tes_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_approve_tes_trade_request
    changed = true
  end
  if show.basket_approve_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_approve_broadcast then
    show.basket_approve_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_approve_broadcast
    changed = true
  end
  if show.basket_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_broadcast then
    show.basket_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_broadcast
    changed = true
  end
  if show.basket_delete_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_delete_broadcast then
    show.basket_delete_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_delete_broadcast
    changed = true
  end
  if show.basket_exec_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_exec_grp_comp then
    show.basket_exec_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_exec_grp_comp
    changed = true
  end
  if show.basket_execution_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_execution_broadcast then
    show.basket_execution_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_execution_broadcast
    changed = true
  end
  if show.basket_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_response then
    show.basket_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_response
    changed = true
  end
  if show.basket_roll_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_roll_broadcast then
    show.basket_roll_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_roll_broadcast
    changed = true
  end
  if show.basket_roll_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_roll_request then
    show.basket_roll_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_roll_request
    changed = true
  end
  if show.basket_root_party_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_root_party_grp_comp then
    show.basket_root_party_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_root_party_grp_comp
    changed = true
  end
  if show.basket_side_alloc_ext_bc_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_ext_bc_grp_comp then
    show.basket_side_alloc_ext_bc_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_ext_bc_grp_comp
    changed = true
  end
  if show.basket_side_alloc_ext_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_ext_grp_comp then
    show.basket_side_alloc_ext_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_ext_grp_comp
    changed = true
  end
  if show.basket_side_alloc_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_grp_comp then
    show.basket_side_alloc_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_basket_side_alloc_grp_comp
    changed = true
  end
  if show.broadcast_error_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_broadcast_error_notification then
    show.broadcast_error_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_broadcast_error_notification
    changed = true
  end
  if show.clip_deletion_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_deletion_notification then
    show.clip_deletion_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_deletion_notification
    changed = true
  end
  if show.clip_execution_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_execution_notification then
    show.clip_execution_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_execution_notification
    changed = true
  end
  if show.clip_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_response then
    show.clip_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_clip_response
    changed = true
  end
  if show.cross_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request then
    show.cross_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request
    changed = true
  end
  if show.cross_request_ack_side_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_ack_side_grp_comp then
    show.cross_request_ack_side_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_ack_side_grp_comp
    changed = true
  end
  if show.cross_request_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_response then
    show.cross_request_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_response
    changed = true
  end
  if show.cross_request_side_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_side_grp_comp then
    show.cross_request_side_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_cross_request_side_grp_comp
    changed = true
  end
  if show.delete_all_order_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_broadcast then
    show.delete_all_order_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_broadcast
    changed = true
  end
  if show.delete_all_order_nr_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_nr_response then
    show.delete_all_order_nr_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_nr_response
    changed = true
  end
  if show.delete_all_order_quote_event_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_quote_event_broadcast then
    show.delete_all_order_quote_event_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_quote_event_broadcast
    changed = true
  end
  if show.delete_all_order_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_request then
    show.delete_all_order_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_request
    changed = true
  end
  if show.delete_all_order_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_response then
    show.delete_all_order_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_order_response
    changed = true
  end
  if show.delete_all_quote_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_broadcast then
    show.delete_all_quote_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_broadcast
    changed = true
  end
  if show.delete_all_quote_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_request then
    show.delete_all_quote_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_request
    changed = true
  end
  if show.delete_all_quote_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_response then
    show.delete_all_quote_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_all_quote_response
    changed = true
  end
  if show.delete_basket_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_basket_trade_request then
    show.delete_basket_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_basket_trade_request
    changed = true
  end
  if show.delete_clip_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_clip_request then
    show.delete_clip_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_clip_request
    changed = true
  end
  if show.delete_order_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_broadcast then
    show.delete_order_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_broadcast
    changed = true
  end
  if show.delete_order_complex_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_complex_request then
    show.delete_order_complex_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_complex_request
    changed = true
  end
  if show.delete_order_nr_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_nr_response then
    show.delete_order_nr_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_nr_response
    changed = true
  end
  if show.delete_order_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_request then
    show.delete_order_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_request
    changed = true
  end
  if show.delete_order_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_response then
    show.delete_order_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_response
    changed = true
  end
  if show.delete_order_single_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_single_request then
    show.delete_order_single_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_order_single_request
    changed = true
  end
  if show.delete_tes_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_tes_trade_request then
    show.delete_tes_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_delete_tes_trade_request
    changed = true
  end
  if show.enrichment_rules_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enrichment_rules_grp_comp then
    show.enrichment_rules_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enrichment_rules_grp_comp
    changed = true
  end
  if show.enter_basket_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_basket_trade_request then
    show.enter_basket_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_basket_trade_request
    changed = true
  end
  if show.enter_clip_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_clip_request then
    show.enter_clip_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_clip_request
    changed = true
  end
  if show.enter_tes_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_tes_trade_request then
    show.enter_tes_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_enter_tes_trade_request
    changed = true
  end
  if show.fills_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_fills_grp_comp then
    show.fills_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_fills_grp_comp
    changed = true
  end
  if show.forced_logout_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_forced_logout_notification then
    show.forced_logout_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_forced_logout_notification
    changed = true
  end
  if show.forced_user_logout_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_forced_user_logout_notification then
    show.forced_user_logout_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_forced_user_logout_notification
    changed = true
  end
  if show.heartbeat ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_heartbeat then
    show.heartbeat = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_heartbeat
    changed = true
  end
  if show.heartbeat_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_heartbeat_notification then
    show.heartbeat_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_heartbeat_notification
    changed = true
  end
  if show.inquire_enrichment_rule_id_list_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_enrichment_rule_id_list_request then
    show.inquire_enrichment_rule_id_list_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_enrichment_rule_id_list_request
    changed = true
  end
  if show.inquire_enrichment_rule_id_list_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_enrichment_rule_id_list_response then
    show.inquire_enrichment_rule_id_list_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_enrichment_rule_id_list_response
    changed = true
  end
  if show.inquire_margin_based_risk_limit_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_margin_based_risk_limit_request then
    show.inquire_margin_based_risk_limit_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_margin_based_risk_limit_request
    changed = true
  end
  if show.inquire_margin_based_risk_limit_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_margin_based_risk_limit_response then
    show.inquire_margin_based_risk_limit_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_margin_based_risk_limit_response
    changed = true
  end
  if show.inquire_mm_parameter_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_mm_parameter_request then
    show.inquire_mm_parameter_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_mm_parameter_request
    changed = true
  end
  if show.inquire_mm_parameter_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_mm_parameter_response then
    show.inquire_mm_parameter_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_mm_parameter_response
    changed = true
  end
  if show.inquire_pre_trade_risk_limits_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_pre_trade_risk_limits_request then
    show.inquire_pre_trade_risk_limits_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_pre_trade_risk_limits_request
    changed = true
  end
  if show.inquire_session_list_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_session_list_request then
    show.inquire_session_list_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_session_list_request
    changed = true
  end
  if show.inquire_session_list_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_session_list_response then
    show.inquire_session_list_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_session_list_response
    changed = true
  end
  if show.inquire_user_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_user_request then
    show.inquire_user_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_user_request
    changed = true
  end
  if show.inquire_user_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_user_response then
    show.inquire_user_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_inquire_user_response
    changed = true
  end
  if show.instrmnt_leg_exec_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmnt_leg_exec_grp_comp then
    show.instrmnt_leg_exec_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmnt_leg_exec_grp_comp
    changed = true
  end
  if show.instrmt_leg_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmt_leg_grp_comp then
    show.instrmt_leg_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmt_leg_grp_comp
    changed = true
  end
  if show.instrmt_match_side_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmt_match_side_grp_comp then
    show.instrmt_match_side_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrmt_match_side_grp_comp
    changed = true
  end
  if show.instrument_attribute_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrument_attribute_grp_comp then
    show.instrument_attribute_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrument_attribute_grp_comp
    changed = true
  end
  if show.instrument_event_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrument_event_grp_comp then
    show.instrument_event_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_instrument_event_grp_comp
    changed = true
  end
  if show.leg_ord_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_leg_ord_grp_comp then
    show.leg_ord_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_leg_ord_grp_comp
    changed = true
  end
  if show.legal_notification_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_legal_notification_broadcast then
    show.legal_notification_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_legal_notification_broadcast
    changed = true
  end
  if show.logon_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_request then
    show.logon_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_request
    changed = true
  end
  if show.logon_request_encrypted ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_request_encrypted then
    show.logon_request_encrypted = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_request_encrypted
    changed = true
  end
  if show.logon_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_response then
    show.logon_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logon_response
    changed = true
  end
  if show.logout_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logout_request then
    show.logout_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logout_request
    changed = true
  end
  if show.logout_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logout_response then
    show.logout_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_logout_response
    changed = true
  end
  if show.mass_order ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_order then
    show.mass_order = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_order
    changed = true
  end
  if show.mass_order_ack ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_order_ack then
    show.mass_order_ack = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_order_ack
    changed = true
  end
  if show.mass_quote_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_quote_request then
    show.mass_quote_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_quote_request
    changed = true
  end
  if show.mass_quote_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_quote_response then
    show.mass_quote_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mass_quote_response
    changed = true
  end
  if show.message ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_message then
    show.message = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_message
    changed = true
  end
  if show.message_header ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_message_header then
    show.message_header = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_message_header
    changed = true
  end
  if show.mm_parameter_definition_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_definition_request then
    show.mm_parameter_definition_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_definition_request
    changed = true
  end
  if show.mm_parameter_definition_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_definition_response then
    show.mm_parameter_definition_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_definition_response
    changed = true
  end
  if show.mm_parameter_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_grp_comp then
    show.mm_parameter_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_mm_parameter_grp_comp
    changed = true
  end
  if show.modify_basket_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_basket_trade_request then
    show.modify_basket_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_basket_trade_request
    changed = true
  end
  if show.modify_order_complex_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_complex_request then
    show.modify_order_complex_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_complex_request
    changed = true
  end
  if show.modify_order_complex_short_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_complex_short_request then
    show.modify_order_complex_short_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_complex_short_request
    changed = true
  end
  if show.modify_order_nr_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_nr_response then
    show.modify_order_nr_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_nr_response
    changed = true
  end
  if show.modify_order_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_request then
    show.modify_order_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_request
    changed = true
  end
  if show.modify_order_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_response then
    show.modify_order_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_response
    changed = true
  end
  if show.modify_order_short_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_short_request then
    show.modify_order_short_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_short_request
    changed = true
  end
  if show.modify_order_single_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_single_request then
    show.modify_order_single_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_single_request
    changed = true
  end
  if show.modify_order_single_short_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_single_short_request then
    show.modify_order_single_short_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_order_single_short_request
    changed = true
  end
  if show.modify_tes_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_tes_trade_request then
    show.modify_tes_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_modify_tes_trade_request
    changed = true
  end
  if show.new_basket_data_bc_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_data_bc_grp_comp then
    show.new_basket_data_bc_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_data_bc_grp_comp
    changed = true
  end
  if show.new_basket_data_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_data_grp_comp then
    show.new_basket_data_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_data_grp_comp
    changed = true
  end
  if show.new_basket_instrmt_match_side_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_instrmt_match_side_grp_comp then
    show.new_basket_instrmt_match_side_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_instrmt_match_side_grp_comp
    changed = true
  end
  if show.new_basket_side_alloc_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_side_alloc_grp_comp then
    show.new_basket_side_alloc_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_basket_side_alloc_grp_comp
    changed = true
  end
  if show.new_order_complex_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_complex_request then
    show.new_order_complex_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_complex_request
    changed = true
  end
  if show.new_order_complex_short_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_complex_short_request then
    show.new_order_complex_short_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_complex_short_request
    changed = true
  end
  if show.new_order_nr_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_nr_response then
    show.new_order_nr_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_nr_response
    changed = true
  end
  if show.new_order_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_request then
    show.new_order_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_request
    changed = true
  end
  if show.new_order_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_response then
    show.new_order_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_response
    changed = true
  end
  if show.new_order_short_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_short_request then
    show.new_order_short_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_short_request
    changed = true
  end
  if show.new_order_single_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_single_request then
    show.new_order_single_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_single_request
    changed = true
  end
  if show.new_order_single_short_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_single_short_request then
    show.new_order_single_short_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_new_order_single_short_request
    changed = true
  end
  if show.news_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_news_broadcast then
    show.news_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_news_broadcast
    changed = true
  end
  if show.not_affected_orders_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_not_affected_orders_grp_comp then
    show.not_affected_orders_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_not_affected_orders_grp_comp
    changed = true
  end
  if show.not_affected_securities_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_not_affected_securities_grp_comp then
    show.not_affected_securities_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_not_affected_securities_grp_comp
    changed = true
  end
  if show.notif_header_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_notif_header_comp then
    show.notif_header_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_notif_header_comp
    changed = true
  end
  if show.nr_response_header_me_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_nr_response_header_me_comp then
    show.nr_response_header_me_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_nr_response_header_me_comp
    changed = true
  end
  if show.nrbc_header_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_nrbc_header_comp then
    show.nrbc_header_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_nrbc_header_comp
    changed = true
  end
  if show.old_basket_data_bc_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_data_bc_grp_comp then
    show.old_basket_data_bc_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_data_bc_grp_comp
    changed = true
  end
  if show.old_basket_data_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_data_grp_comp then
    show.old_basket_data_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_data_grp_comp
    changed = true
  end
  if show.old_basket_instrmt_match_side_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_instrmt_match_side_grp_comp then
    show.old_basket_instrmt_match_side_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_instrmt_match_side_grp_comp
    changed = true
  end
  if show.old_basket_side_alloc_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_side_alloc_grp_comp then
    show.old_basket_side_alloc_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_old_basket_side_alloc_grp_comp
    changed = true
  end
  if show.order_book_item_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_book_item_grp_comp then
    show.order_book_item_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_book_item_grp_comp
    changed = true
  end
  if show.order_entry_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_entry_grp_comp then
    show.order_entry_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_entry_grp_comp
    changed = true
  end
  if show.order_event_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_event_grp_comp then
    show.order_event_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_event_grp_comp
    changed = true
  end
  if show.order_exec_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_notification then
    show.order_exec_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_notification
    changed = true
  end
  if show.order_exec_report_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_report_broadcast then
    show.order_exec_report_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_report_broadcast
    changed = true
  end
  if show.order_exec_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_response then
    show.order_exec_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_order_exec_response
    changed = true
  end
  if show.packet ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_packet then
    show.packet = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_packet
    changed = true
  end
  if show.party_action_report ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_action_report then
    show.party_action_report = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_action_report
    changed = true
  end
  if show.party_details_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_details_grp_comp then
    show.party_details_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_details_grp_comp
    changed = true
  end
  if show.party_entitlements_update_report ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_entitlements_update_report then
    show.party_entitlements_update_report = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_party_entitlements_update_report
    changed = true
  end
  if show.ping_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_ping_request then
    show.ping_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_ping_request
    changed = true
  end
  if show.ping_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_ping_response then
    show.ping_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_ping_response
    changed = true
  end
  if show.pre_trade_risk_limit_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_pre_trade_risk_limit_response then
    show.pre_trade_risk_limit_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_pre_trade_risk_limit_response
    changed = true
  end
  if show.pre_trade_risk_limits_definition_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_pre_trade_risk_limits_definition_request then
    show.pre_trade_risk_limits_definition_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_pre_trade_risk_limits_definition_request
    changed = true
  end
  if show.quot_req_legs_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quot_req_legs_grp_comp then
    show.quot_req_legs_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quot_req_legs_grp_comp
    changed = true
  end
  if show.quote_activation_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_notification then
    show.quote_activation_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_notification
    changed = true
  end
  if show.quote_activation_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_request then
    show.quote_activation_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_request
    changed = true
  end
  if show.quote_activation_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_response then
    show.quote_activation_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_activation_response
    changed = true
  end
  if show.quote_entry_ack_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_entry_ack_grp_comp then
    show.quote_entry_ack_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_entry_ack_grp_comp
    changed = true
  end
  if show.quote_entry_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_entry_grp_comp then
    show.quote_entry_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_entry_grp_comp
    changed = true
  end
  if show.quote_event_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_event_grp_comp then
    show.quote_event_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_event_grp_comp
    changed = true
  end
  if show.quote_execution_report ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_execution_report then
    show.quote_execution_report = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_execution_report
    changed = true
  end
  if show.quote_leg_exec_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_leg_exec_grp_comp then
    show.quote_leg_exec_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_quote_leg_exec_grp_comp
    changed = true
  end
  if show.rbc_header_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rbc_header_comp then
    show.rbc_header_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rbc_header_comp
    changed = true
  end
  if show.rbc_header_me_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rbc_header_me_comp then
    show.rbc_header_me_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rbc_header_me_comp
    changed = true
  end
  if show.reject ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_reject then
    show.reject = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_reject
    changed = true
  end
  if show.request_header_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_request_header_comp then
    show.request_header_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_request_header_comp
    changed = true
  end
  if show.response_header_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_response_header_comp then
    show.response_header_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_response_header_comp
    changed = true
  end
  if show.response_header_me_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_response_header_me_comp then
    show.response_header_me_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_response_header_me_comp
    changed = true
  end
  if show.retransmit_me_message_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_me_message_request then
    show.retransmit_me_message_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_me_message_request
    changed = true
  end
  if show.retransmit_me_message_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_me_message_response then
    show.retransmit_me_message_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_me_message_response
    changed = true
  end
  if show.retransmit_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_request then
    show.retransmit_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_request
    changed = true
  end
  if show.retransmit_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_response then
    show.retransmit_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_retransmit_response
    changed = true
  end
  if show.reverse_tes_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_reverse_tes_trade_request then
    show.reverse_tes_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_reverse_tes_trade_request
    changed = true
  end
  if show.rfq_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rfq_request then
    show.rfq_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rfq_request
    changed = true
  end
  if show.rfq_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rfq_response then
    show.rfq_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rfq_response
    changed = true
  end
  if show.risk_limit_qty_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_limit_qty_grp_comp then
    show.risk_limit_qty_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_limit_qty_grp_comp
    changed = true
  end
  if show.risk_limits_rpt_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_limits_rpt_grp_comp then
    show.risk_limits_rpt_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_limits_rpt_grp_comp
    changed = true
  end
  if show.risk_notification_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_notification_broadcast then
    show.risk_notification_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_risk_notification_broadcast
    changed = true
  end
  if show.rra_update_base_party_ack_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rra_update_base_party_ack_grp_comp then
    show.rra_update_base_party_ack_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rra_update_base_party_ack_grp_comp
    changed = true
  end
  if show.rra_update_base_party_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rra_update_base_party_grp_comp then
    show.rra_update_base_party_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_rra_update_base_party_grp_comp
    changed = true
  end
  if show.service_availability_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_service_availability_broadcast then
    show.service_availability_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_service_availability_broadcast
    changed = true
  end
  if show.service_availability_market_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_service_availability_market_broadcast then
    show.service_availability_market_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_service_availability_market_broadcast
    changed = true
  end
  if show.sessions_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_sessions_grp_comp then
    show.sessions_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_sessions_grp_comp
    changed = true
  end
  if show.side_alloc_ext_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_ext_grp_comp then
    show.side_alloc_ext_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_ext_grp_comp
    changed = true
  end
  if show.side_alloc_grp_bc_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_grp_bc_comp then
    show.side_alloc_grp_bc_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_grp_bc_comp
    changed = true
  end
  if show.side_alloc_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_grp_comp then
    show.side_alloc_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_alloc_grp_comp
    changed = true
  end
  if show.side_cross_leg_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_cross_leg_grp_comp then
    show.side_cross_leg_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_side_cross_leg_grp_comp
    changed = true
  end
  if show.smart_party_detail_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_smart_party_detail_grp_comp then
    show.smart_party_detail_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_smart_party_detail_grp_comp
    changed = true
  end
  if show.srqs_create_deal_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_create_deal_notification then
    show.srqs_create_deal_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_create_deal_notification
    changed = true
  end
  if show.srqs_deal_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_deal_notification then
    show.srqs_deal_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_deal_notification
    changed = true
  end
  if show.srqs_deal_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_deal_response then
    show.srqs_deal_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_deal_response
    changed = true
  end
  if show.srqs_enter_quote_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_enter_quote_request then
    show.srqs_enter_quote_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_enter_quote_request
    changed = true
  end
  if show.srqs_hit_quote_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_hit_quote_grp_comp then
    show.srqs_hit_quote_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_hit_quote_grp_comp
    changed = true
  end
  if show.srqs_hit_quote_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_hit_quote_request then
    show.srqs_hit_quote_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_hit_quote_request
    changed = true
  end
  if show.srqs_inquire_smart_respondent_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_inquire_smart_respondent_request then
    show.srqs_inquire_smart_respondent_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_inquire_smart_respondent_request
    changed = true
  end
  if show.srqs_inquire_smart_respondent_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_inquire_smart_respondent_response then
    show.srqs_inquire_smart_respondent_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_inquire_smart_respondent_response
    changed = true
  end
  if show.srqs_negotiation_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_notification then
    show.srqs_negotiation_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_notification
    changed = true
  end
  if show.srqs_negotiation_requester_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_requester_notification then
    show.srqs_negotiation_requester_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_requester_notification
    changed = true
  end
  if show.srqs_negotiation_status_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_status_notification then
    show.srqs_negotiation_status_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_negotiation_status_notification
    changed = true
  end
  if show.srqs_open_negotiation_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_notification then
    show.srqs_open_negotiation_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_notification
    changed = true
  end
  if show.srqs_open_negotiation_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_request then
    show.srqs_open_negotiation_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_request
    changed = true
  end
  if show.srqs_open_negotiation_requester_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_requester_notification then
    show.srqs_open_negotiation_requester_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_open_negotiation_requester_notification
    changed = true
  end
  if show.srqs_quote_entry_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_entry_grp_comp then
    show.srqs_quote_entry_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_entry_grp_comp
    changed = true
  end
  if show.srqs_quote_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_grp_comp then
    show.srqs_quote_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_grp_comp
    changed = true
  end
  if show.srqs_quote_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_notification then
    show.srqs_quote_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_notification
    changed = true
  end
  if show.srqs_quote_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_response then
    show.srqs_quote_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_response
    changed = true
  end
  if show.srqs_quote_snapshot_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_snapshot_notification then
    show.srqs_quote_snapshot_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_snapshot_notification
    changed = true
  end
  if show.srqs_quote_snapshot_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_snapshot_request then
    show.srqs_quote_snapshot_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quote_snapshot_request
    changed = true
  end
  if show.srqs_quoting_status_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quoting_status_request then
    show.srqs_quoting_status_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_quoting_status_request
    changed = true
  end
  if show.srqs_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_response then
    show.srqs_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_response
    changed = true
  end
  if show.srqs_status_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_status_broadcast then
    show.srqs_status_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_status_broadcast
    changed = true
  end
  if show.srqs_target_party_trd_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_target_party_trd_grp_comp then
    show.srqs_target_party_trd_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_target_party_trd_grp_comp
    changed = true
  end
  if show.srqs_update_deal_status_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_update_deal_status_request then
    show.srqs_update_deal_status_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_update_deal_status_request
    changed = true
  end
  if show.srqs_update_negotiation_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_update_negotiation_request then
    show.srqs_update_negotiation_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_srqs_update_negotiation_request
    changed = true
  end
  if show.status_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_status_broadcast then
    show.status_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_status_broadcast
    changed = true
  end
  if show.subscribe_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_subscribe_request then
    show.subscribe_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_subscribe_request
    changed = true
  end
  if show.subscribe_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_subscribe_response then
    show.subscribe_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_subscribe_response
    changed = true
  end
  if show.target_parties_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_target_parties_comp then
    show.target_parties_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_target_parties_comp
    changed = true
  end
  if show.tes_approve_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_approve_broadcast then
    show.tes_approve_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_approve_broadcast
    changed = true
  end
  if show.tes_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_broadcast then
    show.tes_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_broadcast
    changed = true
  end
  if show.tes_delete_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_delete_broadcast then
    show.tes_delete_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_delete_broadcast
    changed = true
  end
  if show.tes_execution_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_execution_broadcast then
    show.tes_execution_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_execution_broadcast
    changed = true
  end
  if show.tes_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_response then
    show.tes_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_response
    changed = true
  end
  if show.tes_reversal_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_reversal_broadcast then
    show.tes_reversal_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_reversal_broadcast
    changed = true
  end
  if show.tes_trade_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_trade_broadcast then
    show.tes_trade_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_trade_broadcast
    changed = true
  end
  if show.tes_trading_session_status_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_trading_session_status_broadcast then
    show.tes_trading_session_status_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_trading_session_status_broadcast
    changed = true
  end
  if show.tes_upload_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_upload_broadcast then
    show.tes_upload_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tes_upload_broadcast
    changed = true
  end
  if show.throttle_update_notification ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_throttle_update_notification then
    show.throttle_update_notification = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_throttle_update_notification
    changed = true
  end
  if show.tm_trading_session_status_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tm_trading_session_status_broadcast then
    show.tm_trading_session_status_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_tm_trading_session_status_broadcast
    changed = true
  end
  if show.trade_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trade_broadcast then
    show.trade_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trade_broadcast
    changed = true
  end
  if show.trading_session_status_broadcast ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trading_session_status_broadcast then
    show.trading_session_status_broadcast = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trading_session_status_broadcast
    changed = true
  end
  if show.trd_clearing_price_leg_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trd_clearing_price_leg_grp_comp then
    show.trd_clearing_price_leg_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trd_clearing_price_leg_grp_comp
    changed = true
  end
  if show.trd_instrmnt_leg_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trd_instrmnt_leg_grp_comp then
    show.trd_instrmnt_leg_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_trd_instrmnt_leg_grp_comp
    changed = true
  end
  if show.underlying_stip_grp_comp ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_underlying_stip_grp_comp then
    show.underlying_stip_grp_comp = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_underlying_stip_grp_comp
    changed = true
  end
  if show.unsubscribe_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_unsubscribe_request then
    show.unsubscribe_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_unsubscribe_request
    changed = true
  end
  if show.unsubscribe_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_unsubscribe_response then
    show.unsubscribe_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_unsubscribe_response
    changed = true
  end
  if show.update_remaining_risk_allowance_base_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_update_remaining_risk_allowance_base_request then
    show.update_remaining_risk_allowance_base_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_update_remaining_risk_allowance_base_request
    changed = true
  end
  if show.update_remaining_risk_allowance_base_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_update_remaining_risk_allowance_base_response then
    show.update_remaining_risk_allowance_base_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_update_remaining_risk_allowance_base_response
    changed = true
  end
  if show.upload_tes_trade_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_upload_tes_trade_request then
    show.upload_tes_trade_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_upload_tes_trade_request
    changed = true
  end
  if show.user_login_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_request then
    show.user_login_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_request
    changed = true
  end
  if show.user_login_request_encrypted ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_request_encrypted then
    show.user_login_request_encrypted = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_request_encrypted
    changed = true
  end
  if show.user_login_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_response then
    show.user_login_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_login_response
    changed = true
  end
  if show.user_logout_request ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_logout_request then
    show.user_logout_request = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_logout_request
    changed = true
  end
  if show.user_logout_response ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_logout_response then
    show.user_logout_response = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_user_logout_response
    changed = true
  end
  if show.payload ~= omi_eurex_derivatives_eti_t7_v13_0.prefs.show_payload then
    show.payload = omi_eurex_derivatives_eti_t7_v13_0.prefs.show_payload
    changed = true
  end

  -- Reload on changed preference
  if changed then
    reload()
  end
end


-----------------------------------------------------------------------
-- Protocol Functions
-----------------------------------------------------------------------

-- trim trailing spaces
trim_right_spaces = function(str)
  local finish = str:len()

  for i = 1, finish do
    if str:byte(i) == 0x20 then
      return str:sub(1, i - 1)
    end
  end

  return str
end


-----------------------------------------------------------------------
-- Dissect Eurex Derivatives Eti T7 13.0
-----------------------------------------------------------------------

-- Pad 4
eurex_derivatives_eti_t7_v13_0.pad_4 = {}

-- Size: Pad 4
eurex_derivatives_eti_t7_v13_0.pad_4.size = 4

-- Display: Pad 4
eurex_derivatives_eti_t7_v13_0.pad_4.display = function(value)
  return "Pad 4: "..value
end

-- Dissect: Pad 4
eurex_derivatives_eti_t7_v13_0.pad_4.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_4.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_4.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_4, range, value, display)

  return offset + length, value
end

-- Msg Seq Num
eurex_derivatives_eti_t7_v13_0.msg_seq_num = {}

-- Size: Msg Seq Num
eurex_derivatives_eti_t7_v13_0.msg_seq_num.size = 4

-- Display: Msg Seq Num
eurex_derivatives_eti_t7_v13_0.msg_seq_num.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Msg Seq Num: No Value"
  end

  return "Msg Seq Num: "..value
end

-- Dissect: Msg Seq Num
eurex_derivatives_eti_t7_v13_0.msg_seq_num.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.msg_seq_num.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.msg_seq_num.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.msg_seq_num, range, value, display)

  return offset + length, value
end

-- Sending Time
eurex_derivatives_eti_t7_v13_0.sending_time = {}

-- Size: Sending Time
eurex_derivatives_eti_t7_v13_0.sending_time.size = 8

-- Display: Sending Time
eurex_derivatives_eti_t7_v13_0.sending_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Sending Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Sending Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Sending Time
eurex_derivatives_eti_t7_v13_0.sending_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.sending_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.sending_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.sending_time, range, value, display)

  return offset + length, value
end

-- Request Time
eurex_derivatives_eti_t7_v13_0.request_time = {}

-- Size: Request Time
eurex_derivatives_eti_t7_v13_0.request_time.size = 8

-- Display: Request Time
eurex_derivatives_eti_t7_v13_0.request_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Request Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Request Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Request Time
eurex_derivatives_eti_t7_v13_0.request_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.request_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.request_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.request_time, range, value, display)

  return offset + length, value
end

-- Response Header Comp
eurex_derivatives_eti_t7_v13_0.response_header_comp = {}

-- Size: Response Header Comp
eurex_derivatives_eti_t7_v13_0.response_header_comp.size =
  eurex_derivatives_eti_t7_v13_0.request_time.size + 
  eurex_derivatives_eti_t7_v13_0.sending_time.size + 
  eurex_derivatives_eti_t7_v13_0.msg_seq_num.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Response Header Comp
eurex_derivatives_eti_t7_v13_0.response_header_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Response Header Comp
eurex_derivatives_eti_t7_v13_0.response_header_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Request Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, request_time = eurex_derivatives_eti_t7_v13_0.request_time.dissect(buffer, index, packet, parent)

  -- Sending Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, sending_time = eurex_derivatives_eti_t7_v13_0.sending_time.dissect(buffer, index, packet, parent)

  -- Msg Seq Num: 4 Byte Unsigned Fixed Width Integer Nullable
  index, msg_seq_num = eurex_derivatives_eti_t7_v13_0.msg_seq_num.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Response Header Comp
eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect = function(buffer, offset, packet, parent)
  if show.response_header_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.response_header_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.response_header_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.response_header_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.response_header_comp.fields(buffer, offset, packet, parent)
  end
end

-- Pad 2
eurex_derivatives_eti_t7_v13_0.pad_2 = {}

-- Size: Pad 2
eurex_derivatives_eti_t7_v13_0.pad_2.size = 2

-- Display: Pad 2
eurex_derivatives_eti_t7_v13_0.pad_2.display = function(value)
  return "Pad 2: "..value
end

-- Dissect: Pad 2
eurex_derivatives_eti_t7_v13_0.pad_2.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_2.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_2.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_2, range, value, display)

  return offset + length, value
end

-- User Logout Response
eurex_derivatives_eti_t7_v13_0.user_logout_response = {}

-- Read runtime size of: User Logout Response
eurex_derivatives_eti_t7_v13_0.user_logout_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: User Logout Response
eurex_derivatives_eti_t7_v13_0.user_logout_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: User Logout Response
eurex_derivatives_eti_t7_v13_0.user_logout_response.fields = function(buffer, offset, packet, parent, size_of_user_logout_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: User Logout Response
eurex_derivatives_eti_t7_v13_0.user_logout_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_user_logout_response = eurex_derivatives_eti_t7_v13_0.user_logout_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.user_logout_response then
    local range = buffer(offset, size_of_user_logout_response)
    local display = eurex_derivatives_eti_t7_v13_0.user_logout_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.user_logout_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.user_logout_response.fields(buffer, offset, packet, parent, size_of_user_logout_response)

  return offset + size_of_user_logout_response
end

-- Username
eurex_derivatives_eti_t7_v13_0.username = {}

-- Size: Username
eurex_derivatives_eti_t7_v13_0.username.size = 4

-- Display: Username
eurex_derivatives_eti_t7_v13_0.username.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Username: No Value"
  end

  return "Username: "..value
end

-- Dissect: Username
eurex_derivatives_eti_t7_v13_0.username.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.username.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.username.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.username, range, value, display)

  return offset + length, value
end

-- Sender Sub Id
eurex_derivatives_eti_t7_v13_0.sender_sub_id = {}

-- Size: Sender Sub Id
eurex_derivatives_eti_t7_v13_0.sender_sub_id.size = 4

-- Display: Sender Sub Id
eurex_derivatives_eti_t7_v13_0.sender_sub_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Sender Sub Id: No Value"
  end

  return "Sender Sub Id: "..value
end

-- Dissect: Sender Sub Id
eurex_derivatives_eti_t7_v13_0.sender_sub_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.sender_sub_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.sender_sub_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.sender_sub_id, range, value, display)

  return offset + length, value
end

-- Request Header Comp
eurex_derivatives_eti_t7_v13_0.request_header_comp = {}

-- Size: Request Header Comp
eurex_derivatives_eti_t7_v13_0.request_header_comp.size =
  eurex_derivatives_eti_t7_v13_0.msg_seq_num.size + 
  eurex_derivatives_eti_t7_v13_0.sender_sub_id.size

-- Display: Request Header Comp
eurex_derivatives_eti_t7_v13_0.request_header_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Request Header Comp
eurex_derivatives_eti_t7_v13_0.request_header_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Msg Seq Num: 4 Byte Unsigned Fixed Width Integer Nullable
  index, msg_seq_num = eurex_derivatives_eti_t7_v13_0.msg_seq_num.dissect(buffer, index, packet, parent)

  -- Sender Sub Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, sender_sub_id = eurex_derivatives_eti_t7_v13_0.sender_sub_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Request Header Comp
eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect = function(buffer, offset, packet, parent)
  if show.request_header_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.request_header_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.request_header_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.request_header_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.request_header_comp.fields(buffer, offset, packet, parent)
  end
end

-- Network Msg Id
eurex_derivatives_eti_t7_v13_0.network_msg_id = {}

-- Size: Network Msg Id
eurex_derivatives_eti_t7_v13_0.network_msg_id.size = 8

-- Display: Network Msg Id
eurex_derivatives_eti_t7_v13_0.network_msg_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Network Msg Id: No Value"
  end

  return "Network Msg Id: "..value
end

-- Dissect: Network Msg Id
eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.network_msg_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.network_msg_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.network_msg_id, range, value, display)

  return offset + length, value
end

-- User Logout Request
eurex_derivatives_eti_t7_v13_0.user_logout_request = {}

-- Read runtime size of: User Logout Request
eurex_derivatives_eti_t7_v13_0.user_logout_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: User Logout Request
eurex_derivatives_eti_t7_v13_0.user_logout_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: User Logout Request
eurex_derivatives_eti_t7_v13_0.user_logout_request.fields = function(buffer, offset, packet, parent, size_of_user_logout_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Username: 4 Byte Unsigned Fixed Width Integer Nullable
  index, username = eurex_derivatives_eti_t7_v13_0.username.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: User Logout Request
eurex_derivatives_eti_t7_v13_0.user_logout_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_user_logout_request = eurex_derivatives_eti_t7_v13_0.user_logout_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.user_logout_request then
    local range = buffer(offset, size_of_user_logout_request)
    local display = eurex_derivatives_eti_t7_v13_0.user_logout_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.user_logout_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.user_logout_request.fields(buffer, offset, packet, parent, size_of_user_logout_request)

  return offset + size_of_user_logout_request
end

-- User Login Response
eurex_derivatives_eti_t7_v13_0.user_login_response = {}

-- Read runtime size of: User Login Response
eurex_derivatives_eti_t7_v13_0.user_login_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: User Login Response
eurex_derivatives_eti_t7_v13_0.user_login_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: User Login Response
eurex_derivatives_eti_t7_v13_0.user_login_response.fields = function(buffer, offset, packet, parent, size_of_user_login_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: User Login Response
eurex_derivatives_eti_t7_v13_0.user_login_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_user_login_response = eurex_derivatives_eti_t7_v13_0.user_login_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.user_login_response then
    local range = buffer(offset, size_of_user_login_response)
    local display = eurex_derivatives_eti_t7_v13_0.user_login_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.user_login_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.user_login_response.fields(buffer, offset, packet, parent, size_of_user_login_response)

  return offset + size_of_user_login_response
end

-- Encrypted Password
eurex_derivatives_eti_t7_v13_0.encrypted_password = {}

-- Size: Encrypted Password
eurex_derivatives_eti_t7_v13_0.encrypted_password.size = 684

-- Display: Encrypted Password
eurex_derivatives_eti_t7_v13_0.encrypted_password.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Encrypted Password: No Value"
  end

  return "Encrypted Password: "..value
end

-- Dissect: Encrypted Password
eurex_derivatives_eti_t7_v13_0.encrypted_password.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.encrypted_password.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.encrypted_password.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.encrypted_password, range, value, display)

  return offset + length, value
end

-- User Login Request Encrypted
eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted = {}

-- Read runtime size of: User Login Request Encrypted
eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: User Login Request Encrypted
eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: User Login Request Encrypted
eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.fields = function(buffer, offset, packet, parent, size_of_user_login_request_encrypted)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Username: 4 Byte Unsigned Fixed Width Integer Nullable
  index, username = eurex_derivatives_eti_t7_v13_0.username.dissect(buffer, index, packet, parent)

  -- Encrypted Password: 684 Byte Ascii String Nullable
  index, encrypted_password = eurex_derivatives_eti_t7_v13_0.encrypted_password.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: User Login Request Encrypted
eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_user_login_request_encrypted = eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.user_login_request_encrypted then
    local range = buffer(offset, size_of_user_login_request_encrypted)
    local display = eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.user_login_request_encrypted, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.fields(buffer, offset, packet, parent, size_of_user_login_request_encrypted)

  return offset + size_of_user_login_request_encrypted
end

-- Password
eurex_derivatives_eti_t7_v13_0.password = {}

-- Size: Password
eurex_derivatives_eti_t7_v13_0.password.size = 32

-- Display: Password
eurex_derivatives_eti_t7_v13_0.password.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Password: No Value"
  end

  return "Password: "..value
end

-- Dissect: Password
eurex_derivatives_eti_t7_v13_0.password.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.password.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.password.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.password, range, value, display)

  return offset + length, value
end

-- User Login Request
eurex_derivatives_eti_t7_v13_0.user_login_request = {}

-- Read runtime size of: User Login Request
eurex_derivatives_eti_t7_v13_0.user_login_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: User Login Request
eurex_derivatives_eti_t7_v13_0.user_login_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: User Login Request
eurex_derivatives_eti_t7_v13_0.user_login_request.fields = function(buffer, offset, packet, parent, size_of_user_login_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Username: 4 Byte Unsigned Fixed Width Integer Nullable
  index, username = eurex_derivatives_eti_t7_v13_0.username.dissect(buffer, index, packet, parent)

  -- Password: 32 Byte Ascii String Nullable
  index, password = eurex_derivatives_eti_t7_v13_0.password.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: User Login Request
eurex_derivatives_eti_t7_v13_0.user_login_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_user_login_request = eurex_derivatives_eti_t7_v13_0.user_login_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.user_login_request then
    local range = buffer(offset, size_of_user_login_request)
    local display = eurex_derivatives_eti_t7_v13_0.user_login_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.user_login_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.user_login_request.fields(buffer, offset, packet, parent, size_of_user_login_request)

  return offset + size_of_user_login_request
end

-- Pad 1
eurex_derivatives_eti_t7_v13_0.pad_1 = {}

-- Size: Pad 1
eurex_derivatives_eti_t7_v13_0.pad_1.size = 1

-- Display: Pad 1
eurex_derivatives_eti_t7_v13_0.pad_1.display = function(value)
  return "Pad 1: "..value
end

-- Dissect: Pad 1
eurex_derivatives_eti_t7_v13_0.pad_1.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_1.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_1.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_1, range, value, display)

  return offset + length, value
end

-- Underlying Stip Type
eurex_derivatives_eti_t7_v13_0.underlying_stip_type = {}

-- Size: Underlying Stip Type
eurex_derivatives_eti_t7_v13_0.underlying_stip_type.size = 7

-- Display: Underlying Stip Type
eurex_derivatives_eti_t7_v13_0.underlying_stip_type.display = function(value)
  if value == "PAYFREQ" then
    return "Underlying Stip Type: Pay Frequency (PAYFREQ)"
  end

  return "Underlying Stip Type: Unknown("..value..")"
end

-- Dissect: Underlying Stip Type
eurex_derivatives_eti_t7_v13_0.underlying_stip_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_stip_type.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.underlying_stip_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_type, range, value, display)

  return offset + length, value
end

-- Underlying Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_stip_value = {}

-- Size: Underlying Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_stip_value.size = 32

-- Display: Underlying Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_stip_value.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Underlying Stip Value: No Value"
  end

  return "Underlying Stip Value: "..value
end

-- Dissect: Underlying Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_stip_value.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_stip_value.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.underlying_stip_value.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_value, range, value, display)

  return offset + length, value
end

-- Underlying Stip Grp Comp
eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp = {}

-- Size: Underlying Stip Grp Comp
eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.underlying_stip_value.size + 
  eurex_derivatives_eti_t7_v13_0.underlying_stip_type.size + 
  eurex_derivatives_eti_t7_v13_0.pad_1.size

-- Display: Underlying Stip Grp Comp
eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Underlying Stip Grp Comp
eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.fields = function(buffer, offset, packet, parent, underlying_stip_grp_comp_index)
  local index = offset

  -- Implicit Underlying Stip Grp Comp Index
  if underlying_stip_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_grp_comp_index, underlying_stip_grp_comp_index)
    iteration:set_generated()
  end

  -- Underlying Stip Value: 32 Byte Ascii String Nullable
  index, underlying_stip_value = eurex_derivatives_eti_t7_v13_0.underlying_stip_value.dissect(buffer, index, packet, parent)

  -- Underlying Stip Type: 7 Byte Ascii String Enum with 1 values
  index, underlying_stip_type = eurex_derivatives_eti_t7_v13_0.underlying_stip_type.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Underlying Stip Grp Comp
eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.dissect = function(buffer, offset, packet, parent, underlying_stip_grp_comp_index)
  if show.underlying_stip_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_stip_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.fields(buffer, offset, packet, parent, underlying_stip_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.fields(buffer, offset, packet, parent, underlying_stip_grp_comp_index)
  end
end

-- Pad 7
eurex_derivatives_eti_t7_v13_0.pad_7 = {}

-- Size: Pad 7
eurex_derivatives_eti_t7_v13_0.pad_7.size = 7

-- Display: Pad 7
eurex_derivatives_eti_t7_v13_0.pad_7.display = function(value)
  return "Pad 7: "..value
end

-- Dissect: Pad 7
eurex_derivatives_eti_t7_v13_0.pad_7.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_7.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_7.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_7, range, value, display)

  return offset + length, value
end

-- Instr Attrib Value
eurex_derivatives_eti_t7_v13_0.instr_attrib_value = {}

-- Size: Instr Attrib Value
eurex_derivatives_eti_t7_v13_0.instr_attrib_value.size = 32

-- Display: Instr Attrib Value
eurex_derivatives_eti_t7_v13_0.instr_attrib_value.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Instr Attrib Value: No Value"
  end

  return "Instr Attrib Value: "..value
end

-- Dissect: Instr Attrib Value
eurex_derivatives_eti_t7_v13_0.instr_attrib_value.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.instr_attrib_value.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.instr_attrib_value.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instr_attrib_value, range, value, display)

  return offset + length, value
end

-- Instr Attrib Type
eurex_derivatives_eti_t7_v13_0.instr_attrib_type = {}

-- Size: Instr Attrib Type
eurex_derivatives_eti_t7_v13_0.instr_attrib_type.size = 1

-- Display: Instr Attrib Type
eurex_derivatives_eti_t7_v13_0.instr_attrib_type.display = function(value)
  if value == 5 then
    return "Instr Attrib Type: Variable Rate (5)"
  end
  if value == 100 then
    return "Instr Attrib Type: Coupon Rate (100)"
  end
  if value == 101 then
    return "Instr Attrib Type: Offsettothevariablecouponrate (101)"
  end
  if value == 102 then
    return "Instr Attrib Type: Swap Customer 1 (102)"
  end
  if value == 103 then
    return "Instr Attrib Type: Swap Customer 2 (103)"
  end
  if value == 104 then
    return "Instr Attrib Type: Cash Basket Reference (104)"
  end
  if value == 0xFF then
    return "Instr Attrib Type: No Value"
  end

  return "Instr Attrib Type: Unknown("..value..")"
end

-- Dissect: Instr Attrib Type
eurex_derivatives_eti_t7_v13_0.instr_attrib_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.instr_attrib_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.instr_attrib_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instr_attrib_type, range, value, display)

  return offset + length, value
end

-- Instrument Attribute Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp = {}

-- Size: Instrument Attribute Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.instr_attrib_type.size + 
  eurex_derivatives_eti_t7_v13_0.instr_attrib_value.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Instrument Attribute Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Instrument Attribute Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.fields = function(buffer, offset, packet, parent, instrument_attribute_grp_comp_index)
  local index = offset

  -- Implicit Instrument Attribute Grp Comp Index
  if instrument_attribute_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_attribute_grp_comp_index, instrument_attribute_grp_comp_index)
    iteration:set_generated()
  end

  -- Instr Attrib Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, instr_attrib_type = eurex_derivatives_eti_t7_v13_0.instr_attrib_type.dissect(buffer, index, packet, parent)

  -- Instr Attrib Value: 32 Byte Ascii String Nullable
  index, instr_attrib_value = eurex_derivatives_eti_t7_v13_0.instr_attrib_value.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Instrument Attribute Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.dissect = function(buffer, offset, packet, parent, instrument_attribute_grp_comp_index)
  if show.instrument_attribute_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_attribute_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.fields(buffer, offset, packet, parent, instrument_attribute_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.fields(buffer, offset, packet, parent, instrument_attribute_grp_comp_index)
  end
end

-- Pad 3
eurex_derivatives_eti_t7_v13_0.pad_3 = {}

-- Size: Pad 3
eurex_derivatives_eti_t7_v13_0.pad_3.size = 3

-- Display: Pad 3
eurex_derivatives_eti_t7_v13_0.pad_3.display = function(value)
  return "Pad 3: "..value
end

-- Dissect: Pad 3
eurex_derivatives_eti_t7_v13_0.pad_3.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_3.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_3.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_3, range, value, display)

  return offset + length, value
end

-- Event Type
eurex_derivatives_eti_t7_v13_0.event_type = {}

-- Size: Event Type
eurex_derivatives_eti_t7_v13_0.event_type.size = 1

-- Display: Event Type
eurex_derivatives_eti_t7_v13_0.event_type.display = function(value)
  if value == 8 then
    return "Event Type: Swap Start Date (8)"
  end
  if value == 9 then
    return "Event Type: Swap End Date (9)"
  end
  if value == 0xFF then
    return "Event Type: No Value"
  end

  return "Event Type: Unknown("..value..")"
end

-- Dissect: Event Type
eurex_derivatives_eti_t7_v13_0.event_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.event_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.event_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.event_type, range, value, display)

  return offset + length, value
end

-- Event Date
eurex_derivatives_eti_t7_v13_0.event_date = {}

-- Size: Event Date
eurex_derivatives_eti_t7_v13_0.event_date.size = 4

-- Display: Event Date
eurex_derivatives_eti_t7_v13_0.event_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Event Date: No Value"
  end

  return "Event Date: "..value
end

-- Dissect: Event Date
eurex_derivatives_eti_t7_v13_0.event_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.event_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.event_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.event_date, range, value, display)

  return offset + length, value
end

-- Instrument Event Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp = {}

-- Size: Instrument Event Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.event_date.size + 
  eurex_derivatives_eti_t7_v13_0.event_type.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: Instrument Event Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Instrument Event Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.fields = function(buffer, offset, packet, parent, instrument_event_grp_comp_index)
  local index = offset

  -- Implicit Instrument Event Grp Comp Index
  if instrument_event_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_event_grp_comp_index, instrument_event_grp_comp_index)
    iteration:set_generated()
  end

  -- Event Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, event_date = eurex_derivatives_eti_t7_v13_0.event_date.dissect(buffer, index, packet, parent)

  -- Event Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, event_type = eurex_derivatives_eti_t7_v13_0.event_type.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Instrument Event Grp Comp
eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.dissect = function(buffer, offset, packet, parent, instrument_event_grp_comp_index)
  if show.instrument_event_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrument_event_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.fields(buffer, offset, packet, parent, instrument_event_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.fields(buffer, offset, packet, parent, instrument_event_grp_comp_index)
  end
end

-- Leg Qty
eurex_derivatives_eti_t7_v13_0.leg_qty = {}

-- Size: Leg Qty
eurex_derivatives_eti_t7_v13_0.leg_qty.size = 8

-- Display: Leg Qty
eurex_derivatives_eti_t7_v13_0.leg_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Leg Qty: No Value"
  end

  return "Leg Qty: "..value
end

-- Translate: Leg Qty
eurex_derivatives_eti_t7_v13_0.leg_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Leg Qty
eurex_derivatives_eti_t7_v13_0.leg_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.leg_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.leg_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_qty, range, value, display)

  return offset + length, value
end

-- Leg Price
eurex_derivatives_eti_t7_v13_0.leg_price = {}

-- Size: Leg Price
eurex_derivatives_eti_t7_v13_0.leg_price.size = 8

-- Display: Leg Price
eurex_derivatives_eti_t7_v13_0.leg_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Leg Price: No Value"
  end

  return "Leg Price: "..value
end

-- Translate: Leg Price
eurex_derivatives_eti_t7_v13_0.leg_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Leg Price
eurex_derivatives_eti_t7_v13_0.leg_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.leg_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.leg_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_price, range, value, display)

  return offset + length, value
end

-- Leg Security Id
eurex_derivatives_eti_t7_v13_0.leg_security_id = {}

-- Size: Leg Security Id
eurex_derivatives_eti_t7_v13_0.leg_security_id.size = 8

-- Display: Leg Security Id
eurex_derivatives_eti_t7_v13_0.leg_security_id.display = function(value)
  -- Check if field has value
  if value == Int64(0x00000000, 0x80000000) then
    return "Leg Security Id: No Value"
  end

  return "Leg Security Id: "..value
end

-- Dissect: Leg Security Id
eurex_derivatives_eti_t7_v13_0.leg_security_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_security_id.size
  local range = buffer(offset, length)
  local value = range:le_int64()
  local display = eurex_derivatives_eti_t7_v13_0.leg_security_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_security_id, range, value, display)

  return offset + length, value
end

-- Trd Instrmnt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp = {}

-- Size: Trd Instrmnt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_security_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_price.size + 
  eurex_derivatives_eti_t7_v13_0.leg_qty.size

-- Display: Trd Instrmnt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Trd Instrmnt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.fields = function(buffer, offset, packet, parent, trd_instrmnt_leg_grp_comp_index)
  local index = offset

  -- Implicit Trd Instrmnt Leg Grp Comp Index
  if trd_instrmnt_leg_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_instrmnt_leg_grp_comp_index, trd_instrmnt_leg_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, leg_security_id = eurex_derivatives_eti_t7_v13_0.leg_security_id.dissect(buffer, index, packet, parent)

  -- Leg Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_price = eurex_derivatives_eti_t7_v13_0.leg_price.dissect(buffer, index, packet, parent)

  -- Leg Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_qty = eurex_derivatives_eti_t7_v13_0.leg_qty.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Trd Instrmnt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.dissect = function(buffer, offset, packet, parent, trd_instrmnt_leg_grp_comp_index)
  if show.trd_instrmnt_leg_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_instrmnt_leg_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.fields(buffer, offset, packet, parent, trd_instrmnt_leg_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.fields(buffer, offset, packet, parent, trd_instrmnt_leg_grp_comp_index)
  end
end

-- Pad 5
eurex_derivatives_eti_t7_v13_0.pad_5 = {}

-- Size: Pad 5
eurex_derivatives_eti_t7_v13_0.pad_5.size = 5

-- Display: Pad 5
eurex_derivatives_eti_t7_v13_0.pad_5.display = function(value)
  return "Pad 5: "..value
end

-- Dissect: Pad 5
eurex_derivatives_eti_t7_v13_0.pad_5.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_5.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_5.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_5, range, value, display)

  return offset + length, value
end

-- Party End Client Identification
eurex_derivatives_eti_t7_v13_0.party_end_client_identification = {}

-- Size: Party End Client Identification
eurex_derivatives_eti_t7_v13_0.party_end_client_identification.size = 20

-- Display: Party End Client Identification
eurex_derivatives_eti_t7_v13_0.party_end_client_identification.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party End Client Identification: No Value"
  end

  return "Party End Client Identification: "..value
end

-- Dissect: Party End Client Identification
eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_end_client_identification, range, value, display)

  return offset + length, value
end

-- Compliance Text
eurex_derivatives_eti_t7_v13_0.compliance_text = {}

-- Size: Compliance Text
eurex_derivatives_eti_t7_v13_0.compliance_text.size = 20

-- Display: Compliance Text
eurex_derivatives_eti_t7_v13_0.compliance_text.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Compliance Text: No Value"
  end

  return "Compliance Text: "..value
end

-- Dissect: Compliance Text
eurex_derivatives_eti_t7_v13_0.compliance_text.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.compliance_text.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.compliance_text.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.compliance_text, range, value, display)

  return offset + length, value
end

-- Cust Order Handling Inst
eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst = {}

-- Size: Cust Order Handling Inst
eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.size = 1

-- Display: Cust Order Handling Inst
eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Cust Order Handling Inst: No Value"
  end

  if value == "W" then
    return "Cust Order Handling Inst: W (W)"
  end
  if value == "Y" then
    return "Cust Order Handling Inst: Y (Y)"
  end
  if value == "C" then
    return "Cust Order Handling Inst: C (C)"
  end
  if value == "G" then
    return "Cust Order Handling Inst: G (G)"
  end
  if value == "H" then
    return "Cust Order Handling Inst: H (H)"
  end
  if value == "D" then
    return "Cust Order Handling Inst: D (D)"
  end

  return "Cust Order Handling Inst: Unknown("..value..")"
end

-- Dissect: Cust Order Handling Inst
eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cust_order_handling_inst, range, value, display)

  return offset + length, value
end

-- Party Id Location Id
eurex_derivatives_eti_t7_v13_0.party_id_location_id = {}

-- Size: Party Id Location Id
eurex_derivatives_eti_t7_v13_0.party_id_location_id.size = 2

-- Display: Party Id Location Id
eurex_derivatives_eti_t7_v13_0.party_id_location_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Id Location Id: No Value"
  end

  return "Party Id Location Id: "..value
end

-- Dissect: Party Id Location Id
eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_location_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_id_location_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_location_id, range, value, display)

  return offset + length, value
end

-- Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.party_id_beneficiary = {}

-- Size: Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.size = 9

-- Display: Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Id Beneficiary: No Value"
  end

  return "Party Id Beneficiary: "..value
end

-- Dissect: Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_beneficiary, range, value, display)

  return offset + length, value
end

-- Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm = {}

-- Size: Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.size = 7

-- Display: Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Id Order Origination Firm: No Value"
  end

  return "Party Id Order Origination Firm: "..value
end

-- Dissect: Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_order_origination_firm, range, value, display)

  return offset + length, value
end

-- Free Text 3
eurex_derivatives_eti_t7_v13_0.free_text_3 = {}

-- Size: Free Text 3
eurex_derivatives_eti_t7_v13_0.free_text_3.size = 12

-- Display: Free Text 3
eurex_derivatives_eti_t7_v13_0.free_text_3.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Free Text 3: No Value"
  end

  return "Free Text 3: "..value
end

-- Dissect: Free Text 3
eurex_derivatives_eti_t7_v13_0.free_text_3.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.free_text_3.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.free_text_3.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_3, range, value, display)

  return offset + length, value
end

-- Free Text 2
eurex_derivatives_eti_t7_v13_0.free_text_2 = {}

-- Size: Free Text 2
eurex_derivatives_eti_t7_v13_0.free_text_2.size = 12

-- Display: Free Text 2
eurex_derivatives_eti_t7_v13_0.free_text_2.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Free Text 2: No Value"
  end

  return "Free Text 2: "..value
end

-- Dissect: Free Text 2
eurex_derivatives_eti_t7_v13_0.free_text_2.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.free_text_2.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.free_text_2.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_2, range, value, display)

  return offset + length, value
end

-- Free Text 1
eurex_derivatives_eti_t7_v13_0.free_text_1 = {}

-- Size: Free Text 1
eurex_derivatives_eti_t7_v13_0.free_text_1.size = 12

-- Display: Free Text 1
eurex_derivatives_eti_t7_v13_0.free_text_1.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Free Text 1: No Value"
  end

  return "Free Text 1: "..value
end

-- Dissect: Free Text 1
eurex_derivatives_eti_t7_v13_0.free_text_1.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.free_text_1.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.free_text_1.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_1, range, value, display)

  return offset + length, value
end

-- Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm = {}

-- Size: Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.size = 5

-- Display: Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Id Take Up Trading Firm: No Value"
  end

  return "Party Id Take Up Trading Firm: "..value
end

-- Dissect: Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_take_up_trading_firm, range, value, display)

  return offset + length, value
end

-- Party Id Position Account
eurex_derivatives_eti_t7_v13_0.party_id_position_account = {}

-- Size: Party Id Position Account
eurex_derivatives_eti_t7_v13_0.party_id_position_account.size = 32

-- Display: Party Id Position Account
eurex_derivatives_eti_t7_v13_0.party_id_position_account.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Id Position Account: No Value"
  end

  return "Party Id Position Account: "..value
end

-- Dissect: Party Id Position Account
eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_position_account.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_id_position_account.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_position_account, range, value, display)

  return offset + length, value
end

-- Account
eurex_derivatives_eti_t7_v13_0.account = {}

-- Size: Account
eurex_derivatives_eti_t7_v13_0.account.size = 2

-- Display: Account
eurex_derivatives_eti_t7_v13_0.account.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Account: No Value"
  end

  return "Account: "..value
end

-- Dissect: Account
eurex_derivatives_eti_t7_v13_0.account.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.account.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.account.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.account, range, value, display)

  return offset + length, value
end

-- Order Origination
eurex_derivatives_eti_t7_v13_0.order_origination = {}

-- Size: Order Origination
eurex_derivatives_eti_t7_v13_0.order_origination.size = 1

-- Display: Order Origination
eurex_derivatives_eti_t7_v13_0.order_origination.display = function(value)
  if value == 5 then
    return "Order Origination: Directaccessorsponsoredaccesscustomer (5)"
  end
  if value == 0xFF then
    return "Order Origination: No Value"
  end

  return "Order Origination: Unknown("..value..")"
end

-- Dissect: Order Origination
eurex_derivatives_eti_t7_v13_0.order_origination.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_origination.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_origination.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_origination, range, value, display)

  return offset + length, value
end

-- Order Attribute Risk Reduction
eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction = {}

-- Size: Order Attribute Risk Reduction
eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.size = 1

-- Display: Order Attribute Risk Reduction
eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.display = function(value)
  if value == 1 then
    return "Order Attribute Risk Reduction: Y (1)"
  end
  if value == 0 then
    return "Order Attribute Risk Reduction: N (0)"
  end
  if value == 0xFF then
    return "Order Attribute Risk Reduction: No Value"
  end

  return "Order Attribute Risk Reduction: Unknown("..value..")"
end

-- Dissect: Order Attribute Risk Reduction
eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_attribute_risk_reduction, range, value, display)

  return offset + length, value
end

-- Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier = {}

-- Size: Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.size = 1

-- Display: Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.display = function(value)
  if value == 22 then
    return "Party Id Investment Decision Maker Qualifier: Algo (22)"
  end
  if value == 24 then
    return "Party Id Investment Decision Maker Qualifier: Human (24)"
  end
  if value == 0xFF then
    return "Party Id Investment Decision Maker Qualifier: No Value"
  end

  return "Party Id Investment Decision Maker Qualifier: Unknown("..value..")"
end

-- Dissect: Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_investment_decision_maker_qualifier, range, value, display)

  return offset + length, value
end

-- Executing Trader Qualifier
eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier = {}

-- Size: Executing Trader Qualifier
eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.size = 1

-- Display: Executing Trader Qualifier
eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.display = function(value)
  if value == 22 then
    return "Executing Trader Qualifier: Algo (22)"
  end
  if value == 24 then
    return "Executing Trader Qualifier: Human (24)"
  end
  if value == 0xFF then
    return "Executing Trader Qualifier: No Value"
  end

  return "Executing Trader Qualifier: Unknown("..value..")"
end

-- Dissect: Executing Trader Qualifier
eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.executing_trader_qualifier, range, value, display)

  return offset + length, value
end

-- Order Attribute Liquidity Provision
eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision = {}

-- Size: Order Attribute Liquidity Provision
eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.size = 1

-- Display: Order Attribute Liquidity Provision
eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.display = function(value)
  if value == 1 then
    return "Order Attribute Liquidity Provision: Y (1)"
  end
  if value == 0 then
    return "Order Attribute Liquidity Provision: N (0)"
  end
  if value == 0xFF then
    return "Order Attribute Liquidity Provision: No Value"
  end

  return "Order Attribute Liquidity Provision: Unknown("..value..")"
end

-- Dissect: Order Attribute Liquidity Provision
eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_attribute_liquidity_provision, range, value, display)

  return offset + length, value
end

-- Position Effect
eurex_derivatives_eti_t7_v13_0.position_effect = {}

-- Size: Position Effect
eurex_derivatives_eti_t7_v13_0.position_effect.size = 1

-- Display: Position Effect
eurex_derivatives_eti_t7_v13_0.position_effect.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Position Effect: No Value"
  end

  if value == "C" then
    return "Position Effect: Close (C)"
  end
  if value == "O" then
    return "Position Effect: Open (O)"
  end

  return "Position Effect: Unknown("..value..")"
end

-- Dissect: Position Effect
eurex_derivatives_eti_t7_v13_0.position_effect.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.position_effect.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.position_effect.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.position_effect, range, value, display)

  return offset + length, value
end

-- Trading Capacity
eurex_derivatives_eti_t7_v13_0.trading_capacity = {}

-- Size: Trading Capacity
eurex_derivatives_eti_t7_v13_0.trading_capacity.size = 1

-- Display: Trading Capacity
eurex_derivatives_eti_t7_v13_0.trading_capacity.display = function(value)
  if value == 1 then
    return "Trading Capacity: Customer (1)"
  end
  if value == 5 then
    return "Trading Capacity: Principal (5)"
  end
  if value == 6 then
    return "Trading Capacity: Market Maker (6)"
  end
  if value == 0xFF then
    return "Trading Capacity: No Value"
  end

  return "Trading Capacity: Unknown("..value..")"
end

-- Dissect: Trading Capacity
eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trading_capacity.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trading_capacity.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trading_capacity, range, value, display)

  return offset + length, value
end

-- Trade Alloc Status
eurex_derivatives_eti_t7_v13_0.trade_alloc_status = {}

-- Size: Trade Alloc Status
eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size = 1

-- Display: Trade Alloc Status
eurex_derivatives_eti_t7_v13_0.trade_alloc_status.display = function(value)
  if value == 1 then
    return "Trade Alloc Status: Pending (1)"
  end
  if value == 2 then
    return "Trade Alloc Status: Approved (2)"
  end
  if value == 3 then
    return "Trade Alloc Status: Auto Approved (3)"
  end
  if value == 4 then
    return "Trade Alloc Status: Uploaded (4)"
  end
  if value == 5 then
    return "Trade Alloc Status: Canceled (5)"
  end
  if value == 7 then
    return "Trade Alloc Status: Pending Reversal (7)"
  end
  if value == 8 then
    return "Trade Alloc Status: Approved Reversal (8)"
  end
  if value == 9 then
    return "Trade Alloc Status: Reversed (9)"
  end
  if value == 10 then
    return "Trade Alloc Status: Cancelled Reversal (10)"
  end
  if value == 0xFF then
    return "Trade Alloc Status: No Value"
  end

  return "Trade Alloc Status: Unknown("..value..")"
end

-- Dissect: Trade Alloc Status
eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_alloc_status, range, value, display)

  return offset + length, value
end

-- Side
eurex_derivatives_eti_t7_v13_0.side = {}

-- Size: Side
eurex_derivatives_eti_t7_v13_0.side.size = 1

-- Display: Side
eurex_derivatives_eti_t7_v13_0.side.display = function(value)
  if value == 1 then
    return "Side: Buy (1)"
  end
  if value == 2 then
    return "Side: Sell (2)"
  end
  if value == 0xFF then
    return "Side: No Value"
  end

  return "Side: Unknown("..value..")"
end

-- Dissect: Side
eurex_derivatives_eti_t7_v13_0.side.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.side.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side, range, value, display)

  return offset + length, value
end

-- Tes Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id = {}

-- Size: Tes Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.size = 4

-- Display: Tes Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Tes Enrichment Rule Id: No Value"
  end

  return "Tes Enrichment Rule Id: "..value
end

-- Dissect: Tes Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_enrichment_rule_id, range, value, display)

  return offset + length, value
end

-- Party Executing Trader
eurex_derivatives_eti_t7_v13_0.party_executing_trader = {}

-- Size: Party Executing Trader
eurex_derivatives_eti_t7_v13_0.party_executing_trader.size = 6

-- Display: Party Executing Trader
eurex_derivatives_eti_t7_v13_0.party_executing_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Executing Trader: No Value"
  end

  return "Party Executing Trader: "..value
end

-- Dissect: Party Executing Trader
eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_executing_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_executing_trader, range, value, display)

  return offset + length, value
end

-- Party Executing Firm
eurex_derivatives_eti_t7_v13_0.party_executing_firm = {}

-- Size: Party Executing Firm
eurex_derivatives_eti_t7_v13_0.party_executing_firm.size = 5

-- Display: Party Executing Firm
eurex_derivatives_eti_t7_v13_0.party_executing_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Executing Firm: No Value"
  end

  return "Party Executing Firm: "..value
end

-- Dissect: Party Executing Firm
eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_executing_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_executing_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_executing_firm, range, value, display)

  return offset + length, value
end

-- Individual Alloc Id
eurex_derivatives_eti_t7_v13_0.individual_alloc_id = {}

-- Size: Individual Alloc Id
eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size = 4

-- Display: Individual Alloc Id
eurex_derivatives_eti_t7_v13_0.individual_alloc_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Individual Alloc Id: No Value"
  end

  return "Individual Alloc Id: "..value
end

-- Dissect: Individual Alloc Id
eurex_derivatives_eti_t7_v13_0.individual_alloc_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.individual_alloc_id, range, value, display)

  return offset + length, value
end

-- Executing Trader
eurex_derivatives_eti_t7_v13_0.executing_trader = {}

-- Size: Executing Trader
eurex_derivatives_eti_t7_v13_0.executing_trader.size = 8

-- Display: Executing Trader
eurex_derivatives_eti_t7_v13_0.executing_trader.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Executing Trader: No Value"
  end

  return "Executing Trader: "..value
end

-- Dissect: Executing Trader
eurex_derivatives_eti_t7_v13_0.executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.executing_trader.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.executing_trader, range, value, display)

  return offset + length, value
end

-- Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker = {}

-- Size: Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.size = 8

-- Display: Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Party Id Investment Decision Maker: No Value"
  end

  return "Party Id Investment Decision Maker: "..value
end

-- Dissect: Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_investment_decision_maker, range, value, display)

  return offset + length, value
end

-- Party Id Client Id
eurex_derivatives_eti_t7_v13_0.party_id_client_id = {}

-- Size: Party Id Client Id
eurex_derivatives_eti_t7_v13_0.party_id_client_id.size = 8

-- Display: Party Id Client Id
eurex_derivatives_eti_t7_v13_0.party_id_client_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Party Id Client Id: No Value"
  end

  return "Party Id Client Id: "..value
end

-- Dissect: Party Id Client Id
eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_client_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_client_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_client_id, range, value, display)

  return offset + length, value
end

-- Alloc Qty
eurex_derivatives_eti_t7_v13_0.alloc_qty = {}

-- Size: Alloc Qty
eurex_derivatives_eti_t7_v13_0.alloc_qty.size = 8

-- Display: Alloc Qty
eurex_derivatives_eti_t7_v13_0.alloc_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Alloc Qty: No Value"
  end

  return "Alloc Qty: "..value
end

-- Translate: Alloc Qty
eurex_derivatives_eti_t7_v13_0.alloc_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Alloc Qty
eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.alloc_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.alloc_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.alloc_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.alloc_qty, range, value, display)

  return offset + length, value
end

-- Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp = {}

-- Size: Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_client_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.size + 
  eurex_derivatives_eti_t7_v13_0.executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_1.size + 
  eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size + 
  eurex_derivatives_eti_t7_v13_0.trading_capacity.size + 
  eurex_derivatives_eti_t7_v13_0.position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.size + 
  eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.size + 
  eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.size + 
  eurex_derivatives_eti_t7_v13_0.order_origination.size + 
  eurex_derivatives_eti_t7_v13_0.account.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_position_account.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_1.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_2.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_3.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_location_id.size + 
  eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.size + 
  eurex_derivatives_eti_t7_v13_0.compliance_text.size + 
  eurex_derivatives_eti_t7_v13_0.party_end_client_identification.size + 
  eurex_derivatives_eti_t7_v13_0.pad_5.size

-- Display: Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.fields = function(buffer, offset, packet, parent, side_alloc_ext_grp_comp_index)
  local index = offset

  -- Implicit Side Alloc Ext Grp Comp Index
  if side_alloc_ext_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_ext_grp_comp_index, side_alloc_ext_grp_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Individual Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, individual_alloc_id = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Tes Enrichment Rule Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Trade Alloc Status: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_alloc_status = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.dissect = function(buffer, offset, packet, parent, side_alloc_ext_grp_comp_index)
  if show.side_alloc_ext_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_ext_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.fields(buffer, offset, packet, parent, side_alloc_ext_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.fields(buffer, offset, packet, parent, side_alloc_ext_grp_comp_index)
  end
end

-- Swap Clearer
eurex_derivatives_eti_t7_v13_0.swap_clearer = {}

-- Size: Swap Clearer
eurex_derivatives_eti_t7_v13_0.swap_clearer.size = 1

-- Display: Swap Clearer
eurex_derivatives_eti_t7_v13_0.swap_clearer.display = function(value)
  if value == 0 then
    return "Swap Clearer: Ecag (0)"
  end
  if value == 1 then
    return "Swap Clearer: Nonecag (1)"
  end
  if value == 0xFF then
    return "Swap Clearer: No Value"
  end

  return "Swap Clearer: Unknown("..value..")"
end

-- Dissect: Swap Clearer
eurex_derivatives_eti_t7_v13_0.swap_clearer.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.swap_clearer.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.swap_clearer.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.swap_clearer, range, value, display)

  return offset + length, value
end

-- Underlying Issuer
eurex_derivatives_eti_t7_v13_0.underlying_issuer = {}

-- Size: Underlying Issuer
eurex_derivatives_eti_t7_v13_0.underlying_issuer.size = 30

-- Display: Underlying Issuer
eurex_derivatives_eti_t7_v13_0.underlying_issuer.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Underlying Issuer: No Value"
  end

  return "Underlying Issuer: "..value
end

-- Dissect: Underlying Issuer
eurex_derivatives_eti_t7_v13_0.underlying_issuer.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_issuer.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.underlying_issuer.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_issuer, range, value, display)

  return offset + length, value
end

-- Underlying Currency
eurex_derivatives_eti_t7_v13_0.underlying_currency = {}

-- Size: Underlying Currency
eurex_derivatives_eti_t7_v13_0.underlying_currency.size = 3

-- Display: Underlying Currency
eurex_derivatives_eti_t7_v13_0.underlying_currency.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Underlying Currency: No Value"
  end

  return "Underlying Currency: "..value
end

-- Dissect: Underlying Currency
eurex_derivatives_eti_t7_v13_0.underlying_currency.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_currency.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.underlying_currency.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_currency, range, value, display)

  return offset + length, value
end

-- Underlying Security Desc
eurex_derivatives_eti_t7_v13_0.underlying_security_desc = {}

-- Size: Underlying Security Desc
eurex_derivatives_eti_t7_v13_0.underlying_security_desc.size = 30

-- Display: Underlying Security Desc
eurex_derivatives_eti_t7_v13_0.underlying_security_desc.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Underlying Security Desc: No Value"
  end

  return "Underlying Security Desc: "..value
end

-- Dissect: Underlying Security Desc
eurex_derivatives_eti_t7_v13_0.underlying_security_desc.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_security_desc.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.underlying_security_desc.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_security_desc, range, value, display)

  return offset + length, value
end

-- Underlying Security Id
eurex_derivatives_eti_t7_v13_0.underlying_security_id = {}

-- Size: Underlying Security Id
eurex_derivatives_eti_t7_v13_0.underlying_security_id.size = 12

-- Display: Underlying Security Id
eurex_derivatives_eti_t7_v13_0.underlying_security_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Underlying Security Id: No Value"
  end

  return "Underlying Security Id: "..value
end

-- Dissect: Underlying Security Id
eurex_derivatives_eti_t7_v13_0.underlying_security_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_security_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.underlying_security_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_security_id, range, value, display)

  return offset + length, value
end

-- Trade Report Text
eurex_derivatives_eti_t7_v13_0.trade_report_text = {}

-- Size: Trade Report Text
eurex_derivatives_eti_t7_v13_0.trade_report_text.size = 20

-- Display: Trade Report Text
eurex_derivatives_eti_t7_v13_0.trade_report_text.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Trade Report Text: No Value"
  end

  return "Trade Report Text: "..value
end

-- Dissect: Trade Report Text
eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_report_text.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.trade_report_text.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_report_text, range, value, display)

  return offset + length, value
end

-- Trade Report Id
eurex_derivatives_eti_t7_v13_0.trade_report_id = {}

-- Size: Trade Report Id
eurex_derivatives_eti_t7_v13_0.trade_report_id.size = 20

-- Display: Trade Report Id
eurex_derivatives_eti_t7_v13_0.trade_report_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Trade Report Id: No Value"
  end

  return "Trade Report Id: "..value
end

-- Dissect: Trade Report Id
eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_report_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.trade_report_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_report_id, range, value, display)

  return offset + length, value
end

-- Value Check Type Min Lot Size
eurex_derivatives_eti_t7_v13_0.value_check_type_min_lot_size = {}

-- Size: Value Check Type Min Lot Size
eurex_derivatives_eti_t7_v13_0.value_check_type_min_lot_size.size = 1

-- Display: Value Check Type Min Lot Size
eurex_derivatives_eti_t7_v13_0.value_check_type_min_lot_size.display = function(value)
  if value == 0 then
    return "Value Check Type Min Lot Size: Donotcheck (0)"
  end
  if value == 1 then
    return "Value Check Type Min Lot Size: Check (1)"
  end
  if value == 0xFF then
    return "Value Check Type Min Lot Size: No Value"
  end

  return "Value Check Type Min Lot Size: Unknown("..value..")"
end

-- Dissect: Value Check Type Min Lot Size
eurex_derivatives_eti_t7_v13_0.value_check_type_min_lot_size.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.value_check_type_min_lot_size.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.value_check_type_min_lot_size.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.value_check_type_min_lot_size, range, value, display)

  return offset + length, value
end

-- Party Id Settlement Location
eurex_derivatives_eti_t7_v13_0.party_id_settlement_location = {}

-- Size: Party Id Settlement Location
eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.size = 1

-- Display: Party Id Settlement Location
eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.display = function(value)
  if value == 1 then
    return "Party Id Settlement Location: Clearstrem Banking Frankfurt (1)"
  end
  if value == 2 then
    return "Party Id Settlement Location: Clearstrem Banking Luxemburg (2)"
  end
  if value == 3 then
    return "Party Id Settlement Location: Cls Group (3)"
  end
  if value == 4 then
    return "Party Id Settlement Location: Euroclear (4)"
  end
  if value == 0xFF then
    return "Party Id Settlement Location: No Value"
  end

  return "Party Id Settlement Location: Unknown("..value..")"
end

-- Dissect: Party Id Settlement Location
eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_settlement_location, range, value, display)

  return offset + length, value
end

-- Hedge Type
eurex_derivatives_eti_t7_v13_0.hedge_type = {}

-- Size: Hedge Type
eurex_derivatives_eti_t7_v13_0.hedge_type.size = 1

-- Display: Hedge Type
eurex_derivatives_eti_t7_v13_0.hedge_type.display = function(value)
  if value == 0 then
    return "Hedge Type: Duration Hedge (0)"
  end
  if value == 1 then
    return "Hedge Type: Nominal Hedge (1)"
  end
  if value == 2 then
    return "Hedge Type: Price Factor Hedge (2)"
  end
  if value == 0xFF then
    return "Hedge Type: No Value"
  end

  return "Hedge Type: Unknown("..value..")"
end

-- Dissect: Hedge Type
eurex_derivatives_eti_t7_v13_0.hedge_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.hedge_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.hedge_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.hedge_type, range, value, display)

  return offset + length, value
end

-- Trade Platform
eurex_derivatives_eti_t7_v13_0.trade_platform = {}

-- Size: Trade Platform
eurex_derivatives_eti_t7_v13_0.trade_platform.size = 1

-- Display: Trade Platform
eurex_derivatives_eti_t7_v13_0.trade_platform.display = function(value)
  if value == 0 then
    return "Trade Platform: Off Book (0)"
  end
  if value == 1 then
    return "Trade Platform: On Book (1)"
  end
  if value == 0xFF then
    return "Trade Platform: No Value"
  end

  return "Trade Platform: Unknown("..value..")"
end

-- Dissect: Trade Platform
eurex_derivatives_eti_t7_v13_0.trade_platform.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_platform.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_platform.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_platform, range, value, display)

  return offset + length, value
end

-- Trd Rpt Status
eurex_derivatives_eti_t7_v13_0.trd_rpt_status = {}

-- Size: Trd Rpt Status
eurex_derivatives_eti_t7_v13_0.trd_rpt_status.size = 1

-- Display: Trd Rpt Status
eurex_derivatives_eti_t7_v13_0.trd_rpt_status.display = function(value)
  if value == 0 then
    return "Trd Rpt Status: Accepted (0)"
  end
  if value == 1 then
    return "Trd Rpt Status: Rejected (1)"
  end
  if value == 2 then
    return "Trd Rpt Status: Cancelled (2)"
  end
  if value == 4 then
    return "Trd Rpt Status: Pending New (4)"
  end
  if value == 5 then
    return "Trd Rpt Status: Pending Cancel (5)"
  end
  if value == 7 then
    return "Trd Rpt Status: Terminated (7)"
  end
  if value == 9 then
    return "Trd Rpt Status: Deemed Verified (9)"
  end
  if value == 0xFF then
    return "Trd Rpt Status: No Value"
  end

  return "Trd Rpt Status: Unknown("..value..")"
end

-- Dissect: Trd Rpt Status
eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_rpt_status, range, value, display)

  return offset + length, value
end

-- Skip Validations
eurex_derivatives_eti_t7_v13_0.skip_validations = {}

-- Size: Skip Validations
eurex_derivatives_eti_t7_v13_0.skip_validations.size = 1

-- Display: Skip Validations
eurex_derivatives_eti_t7_v13_0.skip_validations.display = function(value)
  if value == 0 then
    return "Skip Validations: False (0)"
  end
  if value == 1 then
    return "Skip Validations: True (1)"
  end
  if value == 0xFF then
    return "Skip Validations: No Value"
  end

  return "Skip Validations: Unknown("..value..")"
end

-- Dissect: Skip Validations
eurex_derivatives_eti_t7_v13_0.skip_validations.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.skip_validations.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.skip_validations.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.skip_validations, range, value, display)

  return offset + length, value
end

-- No Underlying Stips
eurex_derivatives_eti_t7_v13_0.no_underlying_stips = {}

-- Size: No Underlying Stips
eurex_derivatives_eti_t7_v13_0.no_underlying_stips.size = 1

-- Display: No Underlying Stips
eurex_derivatives_eti_t7_v13_0.no_underlying_stips.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Underlying Stips: No Value"
  end

  return "No Underlying Stips: "..value
end

-- Dissect: No Underlying Stips
eurex_derivatives_eti_t7_v13_0.no_underlying_stips.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_underlying_stips.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_underlying_stips.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_underlying_stips, range, value, display)

  return offset + length, value
end

-- No Instr Attrib
eurex_derivatives_eti_t7_v13_0.no_instr_attrib = {}

-- Size: No Instr Attrib
eurex_derivatives_eti_t7_v13_0.no_instr_attrib.size = 1

-- Display: No Instr Attrib
eurex_derivatives_eti_t7_v13_0.no_instr_attrib.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Instr Attrib: No Value"
  end

  return "No Instr Attrib: "..value
end

-- Dissect: No Instr Attrib
eurex_derivatives_eti_t7_v13_0.no_instr_attrib.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_instr_attrib.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_instr_attrib.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_instr_attrib, range, value, display)

  return offset + length, value
end

-- No Events
eurex_derivatives_eti_t7_v13_0.no_events = {}

-- Size: No Events
eurex_derivatives_eti_t7_v13_0.no_events.size = 1

-- Display: No Events
eurex_derivatives_eti_t7_v13_0.no_events.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Events: No Value"
  end

  return "No Events: "..value
end

-- Dissect: No Events
eurex_derivatives_eti_t7_v13_0.no_events.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_events.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_events.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_events, range, value, display)

  return offset + length, value
end

-- No Legs
eurex_derivatives_eti_t7_v13_0.no_legs = {}

-- Size: No Legs
eurex_derivatives_eti_t7_v13_0.no_legs.size = 1

-- Display: No Legs
eurex_derivatives_eti_t7_v13_0.no_legs.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Legs: No Value"
  end

  return "No Legs: "..value
end

-- Dissect: No Legs
eurex_derivatives_eti_t7_v13_0.no_legs.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_legs.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_legs.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_legs, range, value, display)

  return offset + length, value
end

-- No Side Allocs
eurex_derivatives_eti_t7_v13_0.no_side_allocs = {}

-- Size: No Side Allocs
eurex_derivatives_eti_t7_v13_0.no_side_allocs.size = 1

-- Display: No Side Allocs
eurex_derivatives_eti_t7_v13_0.no_side_allocs.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Side Allocs: No Value"
  end

  return "No Side Allocs: "..value
end

-- Dissect: No Side Allocs
eurex_derivatives_eti_t7_v13_0.no_side_allocs.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_side_allocs.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_side_allocs.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_side_allocs, range, value, display)

  return offset + length, value
end

-- Trade Publish Indicator
eurex_derivatives_eti_t7_v13_0.trade_publish_indicator = {}

-- Size: Trade Publish Indicator
eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.size = 1

-- Display: Trade Publish Indicator
eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.display = function(value)
  if value == 0 then
    return "Trade Publish Indicator: Do Not Publish Trade (0)"
  end
  if value == 1 then
    return "Trade Publish Indicator: Publish Trade (1)"
  end
  if value == 2 then
    return "Trade Publish Indicator: Deferred Publication (2)"
  end
  if value == 3 then
    return "Trade Publish Indicator: Published (3)"
  end
  if value == 0xFF then
    return "Trade Publish Indicator: No Value"
  end

  return "Trade Publish Indicator: Unknown("..value..")"
end

-- Dissect: Trade Publish Indicator
eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_publish_indicator, range, value, display)

  return offset + length, value
end

-- Trade Report Type
eurex_derivatives_eti_t7_v13_0.trade_report_type = {}

-- Size: Trade Report Type
eurex_derivatives_eti_t7_v13_0.trade_report_type.size = 1

-- Display: Trade Report Type
eurex_derivatives_eti_t7_v13_0.trade_report_type.display = function(value)
  if value == 0 then
    return "Trade Report Type: Submit (0)"
  end
  if value == 1 then
    return "Trade Report Type: Alleged (1)"
  end
  if value == 2 then
    return "Trade Report Type: Accept (2)"
  end
  if value == 3 then
    return "Trade Report Type: Decline (3)"
  end
  if value == 5 then
    return "Trade Report Type: No Was Replaced (5)"
  end
  if value == 6 then
    return "Trade Report Type: Trade Report Cancel (6)"
  end
  if value == 7 then
    return "Trade Report Type: Trade Break (7)"
  end
  if value == 11 then
    return "Trade Report Type: Alleged New (11)"
  end
  if value == 13 then
    return "Trade Report Type: Alleged No Was (13)"
  end
  if value == 0xFF then
    return "Trade Report Type: No Value"
  end

  return "Trade Report Type: Unknown("..value..")"
end

-- Dissect: Trade Report Type
eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_report_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_report_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_report_type, range, value, display)

  return offset + length, value
end

-- Product Complex
eurex_derivatives_eti_t7_v13_0.product_complex = {}

-- Size: Product Complex
eurex_derivatives_eti_t7_v13_0.product_complex.size = 1

-- Display: Product Complex
eurex_derivatives_eti_t7_v13_0.product_complex.display = function(value)
  if value == 1 then
    return "Product Complex: Simpleinstrument (1)"
  end
  if value == 2 then
    return "Product Complex: Standardoptionstrategy (2)"
  end
  if value == 3 then
    return "Product Complex: Nonstandardoptionstrategy (3)"
  end
  if value == 4 then
    return "Product Complex: Volatilitystrategy (4)"
  end
  if value == 5 then
    return "Product Complex: Futures Spread (5)"
  end
  if value == 6 then
    return "Product Complex: Interproductspread (6)"
  end
  if value == 7 then
    return "Product Complex: Standardfuturestrategy (7)"
  end
  if value == 8 then
    return "Product Complex: Packandbundle (8)"
  end
  if value == 9 then
    return "Product Complex: Strip (9)"
  end
  if value == 10 then
    return "Product Complex: Flexiblesimpleinstrument (10)"
  end
  if value == 11 then
    return "Product Complex: Commoditystrip (11)"
  end
  if value == 12 then
    return "Product Complex: Scaledsimpleinstrument (12)"
  end
  if value == 13 then
    return "Product Complex: Nonstandardvolatilitystrategy (13)"
  end
  if value == 0xFF then
    return "Product Complex: No Value"
  end

  return "Product Complex: Unknown("..value..")"
end

-- Dissect: Product Complex
eurex_derivatives_eti_t7_v13_0.product_complex.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.product_complex.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.product_complex.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.product_complex, range, value, display)

  return offset + length, value
end

-- Trd Type
eurex_derivatives_eti_t7_v13_0.trd_type = {}

-- Size: Trd Type
eurex_derivatives_eti_t7_v13_0.trd_type.size = 2

-- Display: Trd Type
eurex_derivatives_eti_t7_v13_0.trd_type.display = function(value)
  if value == 1 then
    return "Trd Type: Block Trade (1)"
  end
  if value == 12 then
    return "Trd Type: Exchangefor Swap (12)"
  end
  if value == 1000 then
    return "Trd Type: Vola Trade (1000)"
  end
  if value == 1001 then
    return "Trd Type: Efp Fin Trade (1001)"
  end
  if value == 1002 then
    return "Trd Type: Efp Index Futures Trade (1002)"
  end
  if value == 1004 then
    return "Trd Type: Tradeat Market (1004)"
  end
  if value == 1006 then
    return "Trd Type: Enlight (1006)"
  end
  if value == 1007 then
    return "Trd Type: Blockqtpip (1007)"
  end
  if value == 1010 then
    return "Trd Type: Btrf (1010)"
  end
  if value == 1011 then
    return "Trd Type: Ebb (1011)"
  end
  if value == 1017 then
    return "Trd Type: Delta Neutral Tradeat Market (1017)"
  end
  if value == 0xFFFF then
    return "Trd Type: No Value"
  end

  return "Trd Type: Unknown("..value..")"
end

-- Dissect: Trd Type
eurex_derivatives_eti_t7_v13_0.trd_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trd_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_type, range, value, display)

  return offset + length, value
end

-- Related Market Segment Id
eurex_derivatives_eti_t7_v13_0.related_market_segment_id = {}

-- Size: Related Market Segment Id
eurex_derivatives_eti_t7_v13_0.related_market_segment_id.size = 4

-- Display: Related Market Segment Id
eurex_derivatives_eti_t7_v13_0.related_market_segment_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Related Market Segment Id: No Value"
  end

  return "Related Market Segment Id: "..value
end

-- Dissect: Related Market Segment Id
eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_market_segment_id, range, value, display)

  return offset + length, value
end

-- Related Trade Id
eurex_derivatives_eti_t7_v13_0.related_trade_id = {}

-- Size: Related Trade Id
eurex_derivatives_eti_t7_v13_0.related_trade_id.size = 4

-- Display: Related Trade Id
eurex_derivatives_eti_t7_v13_0.related_trade_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Related Trade Id: No Value"
  end

  return "Related Trade Id: "..value
end

-- Dissect: Related Trade Id
eurex_derivatives_eti_t7_v13_0.related_trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_trade_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.related_trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_trade_id, range, value, display)

  return offset + length, value
end

-- Underlying Maturity Date
eurex_derivatives_eti_t7_v13_0.underlying_maturity_date = {}

-- Size: Underlying Maturity Date
eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.size = 4

-- Display: Underlying Maturity Date
eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Underlying Maturity Date: No Value"
  end

  return "Underlying Maturity Date: "..value
end

-- Dissect: Underlying Maturity Date
eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_maturity_date, range, value, display)

  return offset + length, value
end

-- Underlying Settlement Date
eurex_derivatives_eti_t7_v13_0.underlying_settlement_date = {}

-- Size: Underlying Settlement Date
eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.size = 4

-- Display: Underlying Settlement Date
eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Underlying Settlement Date: No Value"
  end

  return "Underlying Settlement Date: "..value
end

-- Dissect: Underlying Settlement Date
eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_settlement_date, range, value, display)

  return offset + length, value
end

-- Market Segment Id
eurex_derivatives_eti_t7_v13_0.market_segment_id = {}

-- Size: Market Segment Id
eurex_derivatives_eti_t7_v13_0.market_segment_id.size = 4

-- Display: Market Segment Id
eurex_derivatives_eti_t7_v13_0.market_segment_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Market Segment Id: No Value"
  end

  return "Market Segment Id: "..value
end

-- Dissect: Market Segment Id
eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.market_segment_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.market_segment_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.market_segment_id, range, value, display)

  return offset + length, value
end

-- Underlying Qty
eurex_derivatives_eti_t7_v13_0.underlying_qty = {}

-- Size: Underlying Qty
eurex_derivatives_eti_t7_v13_0.underlying_qty.size = 8

-- Display: Underlying Qty
eurex_derivatives_eti_t7_v13_0.underlying_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Underlying Qty: No Value"
  end

  return "Underlying Qty: "..value
end

-- Translate: Underlying Qty
eurex_derivatives_eti_t7_v13_0.underlying_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Underlying Qty
eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.underlying_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.underlying_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_qty, range, value, display)

  return offset + length, value
end

-- Related Px
eurex_derivatives_eti_t7_v13_0.related_px = {}

-- Size: Related Px
eurex_derivatives_eti_t7_v13_0.related_px.size = 8

-- Display: Related Px
eurex_derivatives_eti_t7_v13_0.related_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Related Px: No Value"
  end

  return "Related Px: "..value
end

-- Translate: Related Px
eurex_derivatives_eti_t7_v13_0.related_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Related Px
eurex_derivatives_eti_t7_v13_0.related_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.related_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.related_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_px, range, value, display)

  return offset + length, value
end

-- Related Security Id
eurex_derivatives_eti_t7_v13_0.related_security_id = {}

-- Size: Related Security Id
eurex_derivatives_eti_t7_v13_0.related_security_id.size = 8

-- Display: Related Security Id
eurex_derivatives_eti_t7_v13_0.related_security_id.display = function(value)
  -- Check if field has value
  if value == Int64(0x00000000, 0x80000000) then
    return "Related Security Id: No Value"
  end

  return "Related Security Id: "..value
end

-- Dissect: Related Security Id
eurex_derivatives_eti_t7_v13_0.related_security_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_security_id.size
  local range = buffer(offset, length)
  local value = range:le_int64()
  local display = eurex_derivatives_eti_t7_v13_0.related_security_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_security_id, range, value, display)

  return offset + length, value
end

-- Related Trade Quantity
eurex_derivatives_eti_t7_v13_0.related_trade_quantity = {}

-- Size: Related Trade Quantity
eurex_derivatives_eti_t7_v13_0.related_trade_quantity.size = 8

-- Display: Related Trade Quantity
eurex_derivatives_eti_t7_v13_0.related_trade_quantity.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Related Trade Quantity: No Value"
  end

  return "Related Trade Quantity: "..value
end

-- Translate: Related Trade Quantity
eurex_derivatives_eti_t7_v13_0.related_trade_quantity.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Related Trade Quantity
eurex_derivatives_eti_t7_v13_0.related_trade_quantity.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_trade_quantity, range, value, display)

  return offset + length, value
end

-- Related Close Price
eurex_derivatives_eti_t7_v13_0.related_close_price = {}

-- Size: Related Close Price
eurex_derivatives_eti_t7_v13_0.related_close_price.size = 8

-- Display: Related Close Price
eurex_derivatives_eti_t7_v13_0.related_close_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Related Close Price: No Value"
  end

  return "Related Close Price: "..value
end

-- Translate: Related Close Price
eurex_derivatives_eti_t7_v13_0.related_close_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/1000000
end

-- Dissect: Related Close Price
eurex_derivatives_eti_t7_v13_0.related_close_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_close_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.related_close_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.related_close_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_close_price, range, value, display)

  return offset + length, value
end

-- Underlying Px
eurex_derivatives_eti_t7_v13_0.underlying_px = {}

-- Size: Underlying Px
eurex_derivatives_eti_t7_v13_0.underlying_px.size = 8

-- Display: Underlying Px
eurex_derivatives_eti_t7_v13_0.underlying_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Underlying Px: No Value"
  end

  return "Underlying Px: "..value
end

-- Translate: Underlying Px
eurex_derivatives_eti_t7_v13_0.underlying_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Underlying Px
eurex_derivatives_eti_t7_v13_0.underlying_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.underlying_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.underlying_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_px, range, value, display)

  return offset + length, value
end

-- Trans Bkd Time
eurex_derivatives_eti_t7_v13_0.trans_bkd_time = {}

-- Size: Trans Bkd Time
eurex_derivatives_eti_t7_v13_0.trans_bkd_time.size = 8

-- Display: Trans Bkd Time
eurex_derivatives_eti_t7_v13_0.trans_bkd_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Trans Bkd Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Trans Bkd Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Trans Bkd Time
eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trans_bkd_time, range, value, display)

  return offset + length, value
end

-- Last Px
eurex_derivatives_eti_t7_v13_0.last_px = {}

-- Size: Last Px
eurex_derivatives_eti_t7_v13_0.last_px.size = 8

-- Display: Last Px
eurex_derivatives_eti_t7_v13_0.last_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Last Px: No Value"
  end

  return "Last Px: "..value
end

-- Translate: Last Px
eurex_derivatives_eti_t7_v13_0.last_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Last Px
eurex_derivatives_eti_t7_v13_0.last_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.last_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.last_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.last_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.last_px, range, value, display)

  return offset + length, value
end

-- Security Id
eurex_derivatives_eti_t7_v13_0.security_id = {}

-- Size: Security Id
eurex_derivatives_eti_t7_v13_0.security_id.size = 8

-- Display: Security Id
eurex_derivatives_eti_t7_v13_0.security_id.display = function(value)
  -- Check if field has value
  if value == Int64(0x00000000, 0x80000000) then
    return "Security Id: No Value"
  end

  return "Security Id: "..value
end

-- Dissect: Security Id
eurex_derivatives_eti_t7_v13_0.security_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.security_id.size
  local range = buffer(offset, length)
  local value = range:le_int64()
  local display = eurex_derivatives_eti_t7_v13_0.security_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.security_id, range, value, display)

  return offset + length, value
end

-- Upload Tes Trade Request
eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request = {}

-- Read runtime size of: Upload Tes Trade Request
eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Upload Tes Trade Request
eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Upload Tes Trade Request
eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.fields = function(buffer, offset, packet, parent, size_of_upload_tes_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Related Trade Quantity: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_quantity = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Related Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_px = eurex_derivatives_eti_t7_v13_0.related_px.dissect(buffer, index, packet, parent)

  -- Underlying Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_qty = eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Underlying Settlement Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_settlement_date = eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.dissect(buffer, index, packet, parent)

  -- Underlying Maturity Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_maturity_date = eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.dissect(buffer, index, packet, parent)

  -- Related Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_id = eurex_derivatives_eti_t7_v13_0.related_trade_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- No Side Allocs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_side_allocs = eurex_derivatives_eti_t7_v13_0.no_side_allocs.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- No Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_events = eurex_derivatives_eti_t7_v13_0.no_events.dissect(buffer, index, packet, parent)

  -- No Instr Attrib: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instr_attrib = eurex_derivatives_eti_t7_v13_0.no_instr_attrib.dissect(buffer, index, packet, parent)

  -- No Underlying Stips: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_underlying_stips = eurex_derivatives_eti_t7_v13_0.no_underlying_stips.dissect(buffer, index, packet, parent)

  -- Skip Validations: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, skip_validations = eurex_derivatives_eti_t7_v13_0.skip_validations.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Trade Platform: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, trade_platform = eurex_derivatives_eti_t7_v13_0.trade_platform.dissect(buffer, index, packet, parent)

  -- Hedge Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, hedge_type = eurex_derivatives_eti_t7_v13_0.hedge_type.dissect(buffer, index, packet, parent)

  -- Party Id Settlement Location: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, party_id_settlement_location = eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.dissect(buffer, index, packet, parent)

  -- Value Check Type Min Lot Size: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_min_lot_size = eurex_derivatives_eti_t7_v13_0.value_check_type_min_lot_size.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Trade Report Text: 20 Byte Ascii String Nullable
  index, trade_report_text = eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect(buffer, index, packet, parent)

  -- Underlying Security Id: 12 Byte Ascii String Nullable
  index, underlying_security_id = eurex_derivatives_eti_t7_v13_0.underlying_security_id.dissect(buffer, index, packet, parent)

  -- Underlying Security Desc: 30 Byte Ascii String Nullable
  index, underlying_security_desc = eurex_derivatives_eti_t7_v13_0.underlying_security_desc.dissect(buffer, index, packet, parent)

  -- Underlying Currency: 3 Byte Ascii String Nullable
  index, underlying_currency = eurex_derivatives_eti_t7_v13_0.underlying_currency.dissect(buffer, index, packet, parent)

  -- Underlying Issuer: 30 Byte Ascii String Nullable
  index, underlying_issuer = eurex_derivatives_eti_t7_v13_0.underlying_issuer.dissect(buffer, index, packet, parent)

  -- Swap Clearer: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, swap_clearer = eurex_derivatives_eti_t7_v13_0.swap_clearer.dissect(buffer, index, packet, parent)

  -- Repeating: Side Alloc Ext Grp Comp
  for side_alloc_ext_grp_comp_index = 1, no_side_allocs do
    index, side_alloc_ext_grp_comp = eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.dissect(buffer, index, packet, parent, side_alloc_ext_grp_comp_index)
  end

  -- Repeating: Trd Instrmnt Leg Grp Comp
  for trd_instrmnt_leg_grp_comp_index = 1, no_legs do
    index, trd_instrmnt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.dissect(buffer, index, packet, parent, trd_instrmnt_leg_grp_comp_index)
  end

  -- Repeating: Instrument Event Grp Comp
  for instrument_event_grp_comp_index = 1, no_events do
    index, instrument_event_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.dissect(buffer, index, packet, parent, instrument_event_grp_comp_index)
  end

  -- Repeating: Instrument Attribute Grp Comp
  for instrument_attribute_grp_comp_index = 1, no_instr_attrib do
    index, instrument_attribute_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.dissect(buffer, index, packet, parent, instrument_attribute_grp_comp_index)
  end

  -- Repeating: Underlying Stip Grp Comp
  for underlying_stip_grp_comp_index = 1, no_underlying_stips do
    index, underlying_stip_grp_comp = eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.dissect(buffer, index, packet, parent, underlying_stip_grp_comp_index)
  end

  return index
end

-- Dissect: Upload Tes Trade Request
eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_upload_tes_trade_request = eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.upload_tes_trade_request then
    local range = buffer(offset, size_of_upload_tes_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.upload_tes_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.fields(buffer, offset, packet, parent, size_of_upload_tes_trade_request)

  return offset + size_of_upload_tes_trade_request
end

-- Risk Limit Result
eurex_derivatives_eti_t7_v13_0.risk_limit_result = {}

-- Size: Risk Limit Result
eurex_derivatives_eti_t7_v13_0.risk_limit_result.size = 2

-- Display: Risk Limit Result
eurex_derivatives_eti_t7_v13_0.risk_limit_result.display = function(value)
  if value == 10580 then
    return "Risk Limit Result: Disabled For Bu (10580)"
  end
  if value == 10581 then
    return "Risk Limit Result: Low Rra Event Id (10581)"
  end
  if value == 10582 then
    return "Risk Limit Result: High Rra Event Id (10582)"
  end
  if value == 0xFFFF then
    return "Risk Limit Result: No Value"
  end

  return "Risk Limit Result: Unknown("..value..")"
end

-- Dissect: Risk Limit Result
eurex_derivatives_eti_t7_v13_0.risk_limit_result.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_result.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_result.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_result, range, value, display)

  return offset + length, value
end

-- Party Detail Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit = {}

-- Size: Party Detail Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.size = 5

-- Display: Party Detail Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Detail Executing Unit: No Value"
  end

  return "Party Detail Executing Unit: "..value
end

-- Dissect: Party Detail Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_executing_unit, range, value, display)

  return offset + length, value
end

-- Rra Update Base Party Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp = {}

-- Size: Rra Update Base Party Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.size + 
  eurex_derivatives_eti_t7_v13_0.pad_1.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_result.size

-- Display: Rra Update Base Party Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Rra Update Base Party Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.fields = function(buffer, offset, packet, parent, rra_update_base_party_ack_grp_comp_index)
  local index = offset

  -- Implicit Rra Update Base Party Ack Grp Comp Index
  if rra_update_base_party_ack_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_ack_grp_comp_index, rra_update_base_party_ack_grp_comp_index)
    iteration:set_generated()
  end

  -- Party Detail Executing Unit: 5 Byte Ascii String Nullable
  index, party_detail_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Risk Limit Result: 2 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, risk_limit_result = eurex_derivatives_eti_t7_v13_0.risk_limit_result.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Rra Update Base Party Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.dissect = function(buffer, offset, packet, parent, rra_update_base_party_ack_grp_comp_index)
  if show.rra_update_base_party_ack_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_ack_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.fields(buffer, offset, packet, parent, rra_update_base_party_ack_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.fields(buffer, offset, packet, parent, rra_update_base_party_ack_grp_comp_index)
  end
end

-- Pad 6
eurex_derivatives_eti_t7_v13_0.pad_6 = {}

-- Size: Pad 6
eurex_derivatives_eti_t7_v13_0.pad_6.size = 6

-- Display: Pad 6
eurex_derivatives_eti_t7_v13_0.pad_6.display = function(value)
  return "Pad 6: "..value
end

-- Dissect: Pad 6
eurex_derivatives_eti_t7_v13_0.pad_6.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_6.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_6.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_6, range, value, display)

  return offset + length, value
end

-- No Party Risk Limits
eurex_derivatives_eti_t7_v13_0.no_party_risk_limits = {}

-- Size: No Party Risk Limits
eurex_derivatives_eti_t7_v13_0.no_party_risk_limits.size = 2

-- Display: No Party Risk Limits
eurex_derivatives_eti_t7_v13_0.no_party_risk_limits.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Party Risk Limits: No Value"
  end

  return "No Party Risk Limits: "..value
end

-- Dissect: No Party Risk Limits
eurex_derivatives_eti_t7_v13_0.no_party_risk_limits.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_party_risk_limits.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_party_risk_limits.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_party_risk_limits, range, value, display)

  return offset + length, value
end

-- Last Fragment
eurex_derivatives_eti_t7_v13_0.last_fragment = {}

-- Size: Last Fragment
eurex_derivatives_eti_t7_v13_0.last_fragment.size = 1

-- Display: Last Fragment
eurex_derivatives_eti_t7_v13_0.last_fragment.display = function(value)
  if value == 0 then
    return "Last Fragment: Not Last Message (0)"
  end
  if value == 1 then
    return "Last Fragment: Last Message (1)"
  end
  if value == 0xFF then
    return "Last Fragment: No Value"
  end

  return "Last Fragment: Unknown("..value..")"
end

-- Dissect: Last Fragment
eurex_derivatives_eti_t7_v13_0.last_fragment.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.last_fragment.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.last_fragment.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.last_fragment, range, value, display)

  return offset + length, value
end

-- Response In
eurex_derivatives_eti_t7_v13_0.response_in = {}

-- Size: Response In
eurex_derivatives_eti_t7_v13_0.response_in.size = 8

-- Display: Response In
eurex_derivatives_eti_t7_v13_0.response_in.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Response In: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Response In: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Response In
eurex_derivatives_eti_t7_v13_0.response_in.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.response_in.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.response_in.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.response_in, range, value, display)

  return offset + length, value
end

-- Trd Reg Ts Time Out
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out = {}

-- Size: Trd Reg Ts Time Out
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.size = 8

-- Display: Trd Reg Ts Time Out
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Trd Reg Ts Time Out: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Trd Reg Ts Time Out: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Trd Reg Ts Time Out
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_time_out, range, value, display)

  return offset + length, value
end

-- Trd Reg Ts Time In
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in = {}

-- Size: Trd Reg Ts Time In
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.size = 8

-- Display: Trd Reg Ts Time In
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Trd Reg Ts Time In: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Trd Reg Ts Time In: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Trd Reg Ts Time In
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_time_in, range, value, display)

  return offset + length, value
end

-- Nr Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp = {}

-- Size: Nr Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.size =
  eurex_derivatives_eti_t7_v13_0.request_time.size + 
  eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.size + 
  eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.size + 
  eurex_derivatives_eti_t7_v13_0.response_in.size + 
  eurex_derivatives_eti_t7_v13_0.sending_time.size + 
  eurex_derivatives_eti_t7_v13_0.msg_seq_num.size + 
  eurex_derivatives_eti_t7_v13_0.last_fragment.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: Nr Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Nr Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Request Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, request_time = eurex_derivatives_eti_t7_v13_0.request_time.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time In: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_in = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time Out: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_out = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.dissect(buffer, index, packet, parent)

  -- Response In: 8 Byte Unsigned Fixed Width Integer Nullable
  index, response_in = eurex_derivatives_eti_t7_v13_0.response_in.dissect(buffer, index, packet, parent)

  -- Sending Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, sending_time = eurex_derivatives_eti_t7_v13_0.sending_time.dissect(buffer, index, packet, parent)

  -- Msg Seq Num: 4 Byte Unsigned Fixed Width Integer Nullable
  index, msg_seq_num = eurex_derivatives_eti_t7_v13_0.msg_seq_num.dissect(buffer, index, packet, parent)

  -- Last Fragment: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, last_fragment = eurex_derivatives_eti_t7_v13_0.last_fragment.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Nr Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect = function(buffer, offset, packet, parent)
  if show.nr_response_header_me_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.nr_response_header_me_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.fields(buffer, offset, packet, parent)
  end
end

-- Update Remaining Risk Allowance Base Response
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response = {}

-- Read runtime size of: Update Remaining Risk Allowance Base Response
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Update Remaining Risk Allowance Base Response
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Update Remaining Risk Allowance Base Response
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.fields = function(buffer, offset, packet, parent, size_of_update_remaining_risk_allowance_base_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- No Party Risk Limits: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_party_risk_limits = eurex_derivatives_eti_t7_v13_0.no_party_risk_limits.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Rra Update Base Party Ack Grp Comp
  for rra_update_base_party_ack_grp_comp_index = 1, no_party_risk_limits do
    index, rra_update_base_party_ack_grp_comp = eurex_derivatives_eti_t7_v13_0.rra_update_base_party_ack_grp_comp.dissect(buffer, index, packet, parent, rra_update_base_party_ack_grp_comp_index)
  end

  return index
end

-- Dissect: Update Remaining Risk Allowance Base Response
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_update_remaining_risk_allowance_base_response = eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.update_remaining_risk_allowance_base_response then
    local range = buffer(offset, size_of_update_remaining_risk_allowance_base_response)
    local display = eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.update_remaining_risk_allowance_base_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.fields(buffer, offset, packet, parent, size_of_update_remaining_risk_allowance_base_response)

  return offset + size_of_update_remaining_risk_allowance_base_response
end

-- Risk Limit Id
eurex_derivatives_eti_t7_v13_0.risk_limit_id = {}

-- Size: Risk Limit Id
eurex_derivatives_eti_t7_v13_0.risk_limit_id.size = 4

-- Display: Risk Limit Id
eurex_derivatives_eti_t7_v13_0.risk_limit_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Risk Limit Id: No Value"
  end

  return "Risk Limit Id: "..value
end

-- Dissect: Risk Limit Id
eurex_derivatives_eti_t7_v13_0.risk_limit_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_id, range, value, display)

  return offset + length, value
end

-- Remaining Risk Allowance Base Short
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short = {}

-- Size: Remaining Risk Allowance Base Short
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.size = 8

-- Display: Remaining Risk Allowance Base Short
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Remaining Risk Allowance Base Short: No Value"
  end

  return "Remaining Risk Allowance Base Short: "..value
end

-- Translate: Remaining Risk Allowance Base Short
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Remaining Risk Allowance Base Short
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.remaining_risk_allowance_base_short, range, value, display)

  return offset + length, value
end

-- Remaining Risk Allowance Base Long
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long = {}

-- Size: Remaining Risk Allowance Base Long
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.size = 8

-- Display: Remaining Risk Allowance Base Long
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Remaining Risk Allowance Base Long: No Value"
  end

  return "Remaining Risk Allowance Base Long: "..value
end

-- Translate: Remaining Risk Allowance Base Long
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Remaining Risk Allowance Base Long
eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.remaining_risk_allowance_base_long, range, value, display)

  return offset + length, value
end

-- Rra Update Base Party Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp = {}

-- Size: Rra Update Base Party Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.size + 
  eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Rra Update Base Party Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Rra Update Base Party Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.fields = function(buffer, offset, packet, parent, rra_update_base_party_grp_comp_index)
  local index = offset

  -- Implicit Rra Update Base Party Grp Comp Index
  if rra_update_base_party_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_grp_comp_index, rra_update_base_party_grp_comp_index)
    iteration:set_generated()
  end

  -- Remaining Risk Allowance Base Long: 8 Byte Unsigned Fixed Width Integer Nullable
  index, remaining_risk_allowance_base_long = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_long.dissect(buffer, index, packet, parent)

  -- Remaining Risk Allowance Base Short: 8 Byte Unsigned Fixed Width Integer Nullable
  index, remaining_risk_allowance_base_short = eurex_derivatives_eti_t7_v13_0.remaining_risk_allowance_base_short.dissect(buffer, index, packet, parent)

  -- Risk Limit Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, risk_limit_id = eurex_derivatives_eti_t7_v13_0.risk_limit_id.dissect(buffer, index, packet, parent)

  -- Party Detail Executing Unit: 5 Byte Ascii String Nullable
  index, party_detail_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Rra Update Base Party Grp Comp
eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.dissect = function(buffer, offset, packet, parent, rra_update_base_party_grp_comp_index)
  if show.rra_update_base_party_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rra_update_base_party_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.fields(buffer, offset, packet, parent, rra_update_base_party_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.fields(buffer, offset, packet, parent, rra_update_base_party_grp_comp_index)
  end
end

-- Partition Id
eurex_derivatives_eti_t7_v13_0.partition_id = {}

-- Size: Partition Id
eurex_derivatives_eti_t7_v13_0.partition_id.size = 2

-- Display: Partition Id
eurex_derivatives_eti_t7_v13_0.partition_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Partition Id: No Value"
  end

  return "Partition Id: "..value
end

-- Dissect: Partition Id
eurex_derivatives_eti_t7_v13_0.partition_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.partition_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.partition_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.partition_id, range, value, display)

  return offset + length, value
end

-- Update Remaining Risk Allowance Base Request
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request = {}

-- Read runtime size of: Update Remaining Risk Allowance Base Request
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Update Remaining Risk Allowance Base Request
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Update Remaining Risk Allowance Base Request
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.fields = function(buffer, offset, packet, parent, size_of_update_remaining_risk_allowance_base_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- No Party Risk Limits: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_party_risk_limits = eurex_derivatives_eti_t7_v13_0.no_party_risk_limits.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Repeating: Rra Update Base Party Grp Comp
  for rra_update_base_party_grp_comp_index = 1, no_party_risk_limits do
    index, rra_update_base_party_grp_comp = eurex_derivatives_eti_t7_v13_0.rra_update_base_party_grp_comp.dissect(buffer, index, packet, parent, rra_update_base_party_grp_comp_index)
  end

  return index
end

-- Dissect: Update Remaining Risk Allowance Base Request
eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_update_remaining_risk_allowance_base_request = eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.update_remaining_risk_allowance_base_request then
    local range = buffer(offset, size_of_update_remaining_risk_allowance_base_request)
    local display = eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.update_remaining_risk_allowance_base_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.fields(buffer, offset, packet, parent, size_of_update_remaining_risk_allowance_base_request)

  return offset + size_of_update_remaining_risk_allowance_base_request
end

-- Unsubscribe Response
eurex_derivatives_eti_t7_v13_0.unsubscribe_response = {}

-- Read runtime size of: Unsubscribe Response
eurex_derivatives_eti_t7_v13_0.unsubscribe_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Unsubscribe Response
eurex_derivatives_eti_t7_v13_0.unsubscribe_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Unsubscribe Response
eurex_derivatives_eti_t7_v13_0.unsubscribe_response.fields = function(buffer, offset, packet, parent, size_of_unsubscribe_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Unsubscribe Response
eurex_derivatives_eti_t7_v13_0.unsubscribe_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_unsubscribe_response = eurex_derivatives_eti_t7_v13_0.unsubscribe_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.unsubscribe_response then
    local range = buffer(offset, size_of_unsubscribe_response)
    local display = eurex_derivatives_eti_t7_v13_0.unsubscribe_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.unsubscribe_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.unsubscribe_response.fields(buffer, offset, packet, parent, size_of_unsubscribe_response)

  return offset + size_of_unsubscribe_response
end

-- Ref Appl Sub Id
eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id = {}

-- Size: Ref Appl Sub Id
eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id.size = 4

-- Display: Ref Appl Sub Id
eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Ref Appl Sub Id: No Value"
  end

  return "Ref Appl Sub Id: "..value
end

-- Dissect: Ref Appl Sub Id
eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_sub_id, range, value, display)

  return offset + length, value
end

-- Unsubscribe Request
eurex_derivatives_eti_t7_v13_0.unsubscribe_request = {}

-- Read runtime size of: Unsubscribe Request
eurex_derivatives_eti_t7_v13_0.unsubscribe_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Unsubscribe Request
eurex_derivatives_eti_t7_v13_0.unsubscribe_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Unsubscribe Request
eurex_derivatives_eti_t7_v13_0.unsubscribe_request.fields = function(buffer, offset, packet, parent, size_of_unsubscribe_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Ref Appl Sub Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, ref_appl_sub_id = eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Unsubscribe Request
eurex_derivatives_eti_t7_v13_0.unsubscribe_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_unsubscribe_request = eurex_derivatives_eti_t7_v13_0.unsubscribe_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.unsubscribe_request then
    local range = buffer(offset, size_of_unsubscribe_request)
    local display = eurex_derivatives_eti_t7_v13_0.unsubscribe_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.unsubscribe_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.unsubscribe_request.fields(buffer, offset, packet, parent, size_of_unsubscribe_request)

  return offset + size_of_unsubscribe_request
end

-- Ref Appl Last Msg Id
eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id = {}

-- Size: Ref Appl Last Msg Id
eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id.size = 16

-- Display: Ref Appl Last Msg Id
eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id.display = function(value)
  return "Ref Appl Last Msg Id: "..value
end

-- Dissect: Ref Appl Last Msg Id
eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_last_msg_id, range, value, display)

  return offset + length, value
end

-- Trad Ses Event
eurex_derivatives_eti_t7_v13_0.trad_ses_event = {}

-- Size: Trad Ses Event
eurex_derivatives_eti_t7_v13_0.trad_ses_event.size = 1

-- Display: Trad Ses Event
eurex_derivatives_eti_t7_v13_0.trad_ses_event.display = function(value)
  if value == 101 then
    return "Trad Ses Event: Startof Service (101)"
  end
  if value == 102 then
    return "Trad Ses Event: Market Reset (102)"
  end
  if value == 103 then
    return "Trad Ses Event: Endof Restatement (103)"
  end
  if value == 104 then
    return "Trad Ses Event: Endof Day Service (104)"
  end
  if value == 105 then
    return "Trad Ses Event: Service Resumed (105)"
  end
  if value == 0xFF then
    return "Trad Ses Event: No Value"
  end

  return "Trad Ses Event: Unknown("..value..")"
end

-- Dissect: Trad Ses Event
eurex_derivatives_eti_t7_v13_0.trad_ses_event.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trad_ses_event.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trad_ses_event.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trad_ses_event, range, value, display)

  return offset + length, value
end

-- Trade Date
eurex_derivatives_eti_t7_v13_0.trade_date = {}

-- Size: Trade Date
eurex_derivatives_eti_t7_v13_0.trade_date.size = 4

-- Display: Trade Date
eurex_derivatives_eti_t7_v13_0.trade_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Trade Date: No Value"
  end

  return "Trade Date: "..value
end

-- Dissect: Trade Date
eurex_derivatives_eti_t7_v13_0.trade_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_date, range, value, display)

  return offset + length, value
end

-- Appl Resend Flag
eurex_derivatives_eti_t7_v13_0.appl_resend_flag = {}

-- Size: Appl Resend Flag
eurex_derivatives_eti_t7_v13_0.appl_resend_flag.size = 1

-- Display: Appl Resend Flag
eurex_derivatives_eti_t7_v13_0.appl_resend_flag.display = function(value)
  if value == 0 then
    return "Appl Resend Flag: False (0)"
  end
  if value == 1 then
    return "Appl Resend Flag: True (1)"
  end
  if value == 0xFF then
    return "Appl Resend Flag: No Value"
  end

  return "Appl Resend Flag: Unknown("..value..")"
end

-- Dissect: Appl Resend Flag
eurex_derivatives_eti_t7_v13_0.appl_resend_flag.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_resend_flag.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_resend_flag.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_resend_flag, range, value, display)

  return offset + length, value
end

-- Appl Id
eurex_derivatives_eti_t7_v13_0.appl_id = {}

-- Size: Appl Id
eurex_derivatives_eti_t7_v13_0.appl_id.size = 1

-- Display: Appl Id
eurex_derivatives_eti_t7_v13_0.appl_id.display = function(value)
  if value == 1 then
    return "Appl Id: Trade (1)"
  end
  if value == 2 then
    return "Appl Id: News (2)"
  end
  if value == 3 then
    return "Appl Id: Serviceavailability (3)"
  end
  if value == 4 then
    return "Appl Id: Sessiondata (4)"
  end
  if value == 5 then
    return "Appl Id: Listenerdata (5)"
  end
  if value == 6 then
    return "Appl Id: Risk Control (6)"
  end
  if value == 7 then
    return "Appl Id: Tes Maintenance (7)"
  end
  if value == 8 then
    return "Appl Id: Tes Trade (8)"
  end
  if value == 9 then
    return "Appl Id: Srqs Maintenance (9)"
  end
  if value == 10 then
    return "Appl Id: Service Availability Market (10)"
  end
  if value == 0xFF then
    return "Appl Id: No Value"
  end

  return "Appl Id: Unknown("..value..")"
end

-- Dissect: Appl Id
eurex_derivatives_eti_t7_v13_0.appl_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_id, range, value, display)

  return offset + length, value
end

-- Appl Msg Id
eurex_derivatives_eti_t7_v13_0.appl_msg_id = {}

-- Size: Appl Msg Id
eurex_derivatives_eti_t7_v13_0.appl_msg_id.size = 16

-- Display: Appl Msg Id
eurex_derivatives_eti_t7_v13_0.appl_msg_id.display = function(value)
  return "Appl Msg Id: "..value
end

-- Dissect: Appl Msg Id
eurex_derivatives_eti_t7_v13_0.appl_msg_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_msg_id.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.appl_msg_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_msg_id, range, value, display)

  return offset + length, value
end

-- Appl Sub Id
eurex_derivatives_eti_t7_v13_0.appl_sub_id = {}

-- Size: Appl Sub Id
eurex_derivatives_eti_t7_v13_0.appl_sub_id.size = 4

-- Display: Appl Sub Id
eurex_derivatives_eti_t7_v13_0.appl_sub_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Appl Sub Id: No Value"
  end

  return "Appl Sub Id: "..value
end

-- Dissect: Appl Sub Id
eurex_derivatives_eti_t7_v13_0.appl_sub_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_sub_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_sub_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_sub_id, range, value, display)

  return offset + length, value
end

-- Notification In
eurex_derivatives_eti_t7_v13_0.notification_in = {}

-- Size: Notification In
eurex_derivatives_eti_t7_v13_0.notification_in.size = 8

-- Display: Notification In
eurex_derivatives_eti_t7_v13_0.notification_in.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Notification In: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Notification In: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Notification In
eurex_derivatives_eti_t7_v13_0.notification_in.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.notification_in.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.notification_in.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.notification_in, range, value, display)

  return offset + length, value
end

-- Rbc Header Me Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp = {}

-- Size: Rbc Header Me Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.size =
  eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.size + 
  eurex_derivatives_eti_t7_v13_0.notification_in.size + 
  eurex_derivatives_eti_t7_v13_0.sending_time.size + 
  eurex_derivatives_eti_t7_v13_0.appl_sub_id.size + 
  eurex_derivatives_eti_t7_v13_0.partition_id.size + 
  eurex_derivatives_eti_t7_v13_0.appl_msg_id.size + 
  eurex_derivatives_eti_t7_v13_0.appl_id.size + 
  eurex_derivatives_eti_t7_v13_0.appl_resend_flag.size + 
  eurex_derivatives_eti_t7_v13_0.last_fragment.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Rbc Header Me Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Rbc Header Me Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Trd Reg Ts Time Out: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_out = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.dissect(buffer, index, packet, parent)

  -- Notification In: 8 Byte Unsigned Fixed Width Integer Nullable
  index, notification_in = eurex_derivatives_eti_t7_v13_0.notification_in.dissect(buffer, index, packet, parent)

  -- Sending Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, sending_time = eurex_derivatives_eti_t7_v13_0.sending_time.dissect(buffer, index, packet, parent)

  -- Appl Sub Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, appl_sub_id = eurex_derivatives_eti_t7_v13_0.appl_sub_id.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Appl Msg Id: 16 Byte
  index, appl_msg_id = eurex_derivatives_eti_t7_v13_0.appl_msg_id.dissect(buffer, index, packet, parent)

  -- Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, appl_id = eurex_derivatives_eti_t7_v13_0.appl_id.dissect(buffer, index, packet, parent)

  -- Appl Resend Flag: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_resend_flag = eurex_derivatives_eti_t7_v13_0.appl_resend_flag.dissect(buffer, index, packet, parent)

  -- Last Fragment: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, last_fragment = eurex_derivatives_eti_t7_v13_0.last_fragment.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Rbc Header Me Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect = function(buffer, offset, packet, parent)
  if show.rbc_header_me_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rbc_header_me_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.fields(buffer, offset, packet, parent)
  end
end

-- Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast = {}

-- Read runtime size of: Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.fields = function(buffer, offset, packet, parent, size_of_trading_session_status_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Trad Ses Event: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, trad_ses_event = eurex_derivatives_eti_t7_v13_0.trad_ses_event.dissect(buffer, index, packet, parent)

  -- Ref Appl Last Msg Id: 16 Byte
  index, ref_appl_last_msg_id = eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_trading_session_status_broadcast = eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.trading_session_status_broadcast then
    local range = buffer(offset, size_of_trading_session_status_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trading_session_status_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.fields(buffer, offset, packet, parent, size_of_trading_session_status_broadcast)

  return offset + size_of_trading_session_status_broadcast
end

-- Fee Idnt Code
eurex_derivatives_eti_t7_v13_0.fee_idnt_code = {}

-- Size: Fee Idnt Code
eurex_derivatives_eti_t7_v13_0.fee_idnt_code.size = 15

-- Display: Fee Idnt Code
eurex_derivatives_eti_t7_v13_0.fee_idnt_code.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Fee Idnt Code: No Value"
  end

  return "Fee Idnt Code: "..value
end

-- Dissect: Fee Idnt Code
eurex_derivatives_eti_t7_v13_0.fee_idnt_code.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fee_idnt_code.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.fee_idnt_code.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fee_idnt_code, range, value, display)

  return offset + length, value
end

-- Root Party Id Execution Venue
eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue = {}

-- Size: Root Party Id Execution Venue
eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue.size = 4

-- Display: Root Party Id Execution Venue
eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Id Execution Venue: No Value"
  end

  return "Root Party Id Execution Venue: "..value
end

-- Dissect: Root Party Id Execution Venue
eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_execution_venue, range, value, display)

  return offset + length, value
end

-- Regulatory Trade Id
eurex_derivatives_eti_t7_v13_0.regulatory_trade_id = {}

-- Size: Regulatory Trade Id
eurex_derivatives_eti_t7_v13_0.regulatory_trade_id.size = 52

-- Display: Regulatory Trade Id
eurex_derivatives_eti_t7_v13_0.regulatory_trade_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Regulatory Trade Id: No Value"
  end

  return "Regulatory Trade Id: "..value
end

-- Dissect: Regulatory Trade Id
eurex_derivatives_eti_t7_v13_0.regulatory_trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.regulatory_trade_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.regulatory_trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.regulatory_trade_id, range, value, display)

  return offset + length, value
end

-- Root Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm = {}

-- Size: Root Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm.size = 5

-- Display: Root Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Clearing Firm: No Value"
  end

  return "Root Party Clearing Firm: "..value
end

-- Dissect: Root Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_clearing_firm, range, value, display)

  return offset + length, value
end

-- Root Party Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_executing_trader = {}

-- Size: Root Party Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.size = 6

-- Display: Root Party Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Executing Trader: No Value"
  end

  return "Root Party Executing Trader: "..value
end

-- Dissect: Root Party Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_executing_trader, range, value, display)

  return offset + length, value
end

-- Root Party Executing Firm
eurex_derivatives_eti_t7_v13_0.root_party_executing_firm = {}

-- Size: Root Party Executing Firm
eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.size = 5

-- Display: Root Party Executing Firm
eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Executing Firm: No Value"
  end

  return "Root Party Executing Firm: "..value
end

-- Dissect: Root Party Executing Firm
eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_executing_firm, range, value, display)

  return offset + length, value
end

-- Root Party Clearing Organization
eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization = {}

-- Size: Root Party Clearing Organization
eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization.size = 4

-- Display: Root Party Clearing Organization
eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Clearing Organization: No Value"
  end

  return "Root Party Clearing Organization: "..value
end

-- Dissect: Root Party Clearing Organization
eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_clearing_organization, range, value, display)

  return offset + length, value
end

-- Order Side
eurex_derivatives_eti_t7_v13_0.order_side = {}

-- Size: Order Side
eurex_derivatives_eti_t7_v13_0.order_side.size = 1

-- Display: Order Side
eurex_derivatives_eti_t7_v13_0.order_side.display = function(value)
  if value == 1 then
    return "Order Side: Buy (1)"
  end
  if value == 2 then
    return "Order Side: Sell (2)"
  end
  if value == 0xFF then
    return "Order Side: No Value"
  end

  return "Order Side: Unknown("..value..")"
end

-- Dissect: Order Side
eurex_derivatives_eti_t7_v13_0.order_side.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_side.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_side.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_side, range, value, display)

  return offset + length, value
end

-- Related Product Complex
eurex_derivatives_eti_t7_v13_0.related_product_complex = {}

-- Size: Related Product Complex
eurex_derivatives_eti_t7_v13_0.related_product_complex.size = 1

-- Display: Related Product Complex
eurex_derivatives_eti_t7_v13_0.related_product_complex.display = function(value)
  if value == 2 then
    return "Related Product Complex: Standardoptionstrategy (2)"
  end
  if value == 3 then
    return "Related Product Complex: Nonstandardoptionstrategy (3)"
  end
  if value == 4 then
    return "Related Product Complex: Volatilitystrategy (4)"
  end
  if value == 5 then
    return "Related Product Complex: Futures Spread (5)"
  end
  if value == 6 then
    return "Related Product Complex: Interproductspread (6)"
  end
  if value == 7 then
    return "Related Product Complex: Standardfuturestrategy (7)"
  end
  if value == 8 then
    return "Related Product Complex: Packandbundle (8)"
  end
  if value == 9 then
    return "Related Product Complex: Strip (9)"
  end
  if value == 11 then
    return "Related Product Complex: Commoditystrip (11)"
  end
  if value == 12 then
    return "Related Product Complex: Scaledsimpleinstrument (12)"
  end
  if value == 13 then
    return "Related Product Complex: Nonstandardvolatilitystrategy (13)"
  end
  if value == 0xFF then
    return "Related Product Complex: No Value"
  end

  return "Related Product Complex: Unknown("..value..")"
end

-- Dissect: Related Product Complex
eurex_derivatives_eti_t7_v13_0.related_product_complex.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_product_complex.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.related_product_complex.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_product_complex, range, value, display)

  return offset + length, value
end

-- Ord Type
eurex_derivatives_eti_t7_v13_0.ord_type = {}

-- Size: Ord Type
eurex_derivatives_eti_t7_v13_0.ord_type.size = 1

-- Display: Ord Type
eurex_derivatives_eti_t7_v13_0.ord_type.display = function(value)
  if value == 1 then
    return "Ord Type: Market (1)"
  end
  if value == 2 then
    return "Ord Type: Limit (2)"
  end
  if value == 3 then
    return "Ord Type: Stop (3)"
  end
  if value == 4 then
    return "Ord Type: Stop Limit (4)"
  end
  if value == 0xFF then
    return "Ord Type: No Value"
  end

  return "Ord Type: Unknown("..value..")"
end

-- Dissect: Ord Type
eurex_derivatives_eti_t7_v13_0.ord_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.ord_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.ord_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ord_type, range, value, display)

  return offset + length, value
end

-- Order Category
eurex_derivatives_eti_t7_v13_0.order_category = {}

-- Size: Order Category
eurex_derivatives_eti_t7_v13_0.order_category.size = 1

-- Display: Order Category
eurex_derivatives_eti_t7_v13_0.order_category.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Order Category: No Value"
  end

  if value == "1" then
    return "Order Category: Order (1)"
  end
  if value == "2" then
    return "Order Category: Quote (2)"
  end

  return "Order Category: Unknown("..value..")"
end

-- Dissect: Order Category
eurex_derivatives_eti_t7_v13_0.order_category.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_category.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.order_category.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_category, range, value, display)

  return offset + length, value
end

-- Root Party Id Position Account
eurex_derivatives_eti_t7_v13_0.root_party_id_position_account = {}

-- Size: Root Party Id Position Account
eurex_derivatives_eti_t7_v13_0.root_party_id_position_account.size = 32

-- Display: Root Party Id Position Account
eurex_derivatives_eti_t7_v13_0.root_party_id_position_account.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Id Position Account: No Value"
  end

  return "Root Party Id Position Account: "..value
end

-- Dissect: Root Party Id Position Account
eurex_derivatives_eti_t7_v13_0.root_party_id_position_account.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_position_account.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_position_account.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_position_account, range, value, display)

  return offset + length, value
end

-- Root Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier = {}

-- Size: Root Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier.size = 1

-- Display: Root Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier.display = function(value)
  if value == 22 then
    return "Root Party Id Investment Decision Maker Qualifier: Algo (22)"
  end
  if value == 24 then
    return "Root Party Id Investment Decision Maker Qualifier: Human (24)"
  end
  if value == 0xFF then
    return "Root Party Id Investment Decision Maker Qualifier: No Value"
  end

  return "Root Party Id Investment Decision Maker Qualifier: Unknown("..value..")"
end

-- Dissect: Root Party Id Investment Decision Maker Qualifier
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_investment_decision_maker_qualifier, range, value, display)

  return offset + length, value
end

-- Side Liquidity Ind
eurex_derivatives_eti_t7_v13_0.side_liquidity_ind = {}

-- Size: Side Liquidity Ind
eurex_derivatives_eti_t7_v13_0.side_liquidity_ind.size = 1

-- Display: Side Liquidity Ind
eurex_derivatives_eti_t7_v13_0.side_liquidity_ind.display = function(value)
  if value == 1 then
    return "Side Liquidity Ind: Added Liquidity (1)"
  end
  if value == 2 then
    return "Side Liquidity Ind: Removed Liquidity (2)"
  end
  if value == 4 then
    return "Side Liquidity Ind: Auction (4)"
  end
  if value == 0xFF then
    return "Side Liquidity Ind: No Value"
  end

  return "Side Liquidity Ind: Unknown("..value..")"
end

-- Dissect: Side Liquidity Ind
eurex_derivatives_eti_t7_v13_0.side_liquidity_ind.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_liquidity_ind.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.side_liquidity_ind.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_liquidity_ind, range, value, display)

  return offset + length, value
end

-- Match Sub Type
eurex_derivatives_eti_t7_v13_0.match_sub_type = {}

-- Size: Match Sub Type
eurex_derivatives_eti_t7_v13_0.match_sub_type.size = 1

-- Display: Match Sub Type
eurex_derivatives_eti_t7_v13_0.match_sub_type.display = function(value)
  if value == 1 then
    return "Match Sub Type: Opening Auction (1)"
  end
  if value == 2 then
    return "Match Sub Type: Closing Auction (2)"
  end
  if value == 3 then
    return "Match Sub Type: Intraday Auction (3)"
  end
  if value == 4 then
    return "Match Sub Type: Circuit Breaker Auction (4)"
  end
  if value == 6 then
    return "Match Sub Type: Outside Bbo (6)"
  end
  if value == 0xFF then
    return "Match Sub Type: No Value"
  end

  return "Match Sub Type: Unknown("..value..")"
end

-- Dissect: Match Sub Type
eurex_derivatives_eti_t7_v13_0.match_sub_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.match_sub_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.match_sub_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.match_sub_type, range, value, display)

  return offset + length, value
end

-- Match Type
eurex_derivatives_eti_t7_v13_0.match_type = {}

-- Size: Match Type
eurex_derivatives_eti_t7_v13_0.match_type.size = 1

-- Display: Match Type
eurex_derivatives_eti_t7_v13_0.match_type.display = function(value)
  if value == 3 then
    return "Match Type: Confirmed Trade Report (3)"
  end
  if value == 4 then
    return "Match Type: Automatchincoming (4)"
  end
  if value == 5 then
    return "Match Type: Cross Auction (5)"
  end
  if value == 7 then
    return "Match Type: Call Auction (7)"
  end
  if value == 11 then
    return "Match Type: Automatchresting (11)"
  end
  if value == 13 then
    return "Match Type: Liquidity Improvement Cross (13)"
  end
  if value == 0xFF then
    return "Match Type: No Value"
  end

  return "Match Type: Unknown("..value..")"
end

-- Dissect: Match Type
eurex_derivatives_eti_t7_v13_0.match_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.match_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.match_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.match_type, range, value, display)

  return offset + length, value
end

-- Root Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm = {}

-- Size: Root Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm.size = 7

-- Display: Root Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Id Order Origination Firm: No Value"
  end

  return "Root Party Id Order Origination Firm: "..value
end

-- Dissect: Root Party Id Order Origination Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_order_origination_firm, range, value, display)

  return offset + length, value
end

-- Root Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm = {}

-- Size: Root Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm.size = 5

-- Display: Root Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Id Take Up Trading Firm: No Value"
  end

  return "Root Party Id Take Up Trading Firm: "..value
end

-- Dissect: Root Party Id Take Up Trading Firm
eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_take_up_trading_firm, range, value, display)

  return offset + length, value
end

-- Root Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary = {}

-- Size: Root Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary.size = 9

-- Display: Root Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Id Beneficiary: No Value"
  end

  return "Root Party Id Beneficiary: "..value
end

-- Dissect: Root Party Id Beneficiary
eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_beneficiary, range, value, display)

  return offset + length, value
end

-- Transfer Reason
eurex_derivatives_eti_t7_v13_0.transfer_reason = {}

-- Size: Transfer Reason
eurex_derivatives_eti_t7_v13_0.transfer_reason.size = 1

-- Display: Transfer Reason
eurex_derivatives_eti_t7_v13_0.transfer_reason.display = function(value)
  if value == 1 then
    return "Transfer Reason: Owner (1)"
  end
  if value == 2 then
    return "Transfer Reason: Clearer (2)"
  end
  if value == 0xFF then
    return "Transfer Reason: No Value"
  end

  return "Transfer Reason: Unknown("..value..")"
end

-- Dissect: Transfer Reason
eurex_derivatives_eti_t7_v13_0.transfer_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.transfer_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.transfer_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.transfer_reason, range, value, display)

  return offset + length, value
end

-- Multi Leg Reporting Type
eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type = {}

-- Size: Multi Leg Reporting Type
eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type.size = 1

-- Display: Multi Leg Reporting Type
eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type.display = function(value)
  if value == 1 then
    return "Multi Leg Reporting Type: Singlesecurity (1)"
  end
  if value == 2 then
    return "Multi Leg Reporting Type: Individuallegofamultilegsecurity (2)"
  end
  if value == 0xFF then
    return "Multi Leg Reporting Type: No Value"
  end

  return "Multi Leg Reporting Type: Unknown("..value..")"
end

-- Dissect: Multi Leg Reporting Type
eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.multi_leg_reporting_type, range, value, display)

  return offset + length, value
end

-- Security Sub Type
eurex_derivatives_eti_t7_v13_0.security_sub_type = {}

-- Size: Security Sub Type
eurex_derivatives_eti_t7_v13_0.security_sub_type.size = 4

-- Display: Security Sub Type
eurex_derivatives_eti_t7_v13_0.security_sub_type.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Security Sub Type: No Value"
  end

  return "Security Sub Type: "..value
end

-- Dissect: Security Sub Type
eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.security_sub_type.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.security_sub_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.security_sub_type, range, value, display)

  return offset + length, value
end

-- Tot Num Trade Reports
eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports = {}

-- Size: Tot Num Trade Reports
eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports.size = 4

-- Display: Tot Num Trade Reports
eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Tot Num Trade Reports: No Value"
  end

  return "Tot Num Trade Reports: "..value
end

-- Dissect: Tot Num Trade Reports
eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tot_num_trade_reports, range, value, display)

  return offset + length, value
end

-- Strategy Link Id
eurex_derivatives_eti_t7_v13_0.strategy_link_id = {}

-- Size: Strategy Link Id
eurex_derivatives_eti_t7_v13_0.strategy_link_id.size = 4

-- Display: Strategy Link Id
eurex_derivatives_eti_t7_v13_0.strategy_link_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Strategy Link Id: No Value"
  end

  return "Strategy Link Id: "..value
end

-- Dissect: Strategy Link Id
eurex_derivatives_eti_t7_v13_0.strategy_link_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.strategy_link_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.strategy_link_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.strategy_link_id, range, value, display)

  return offset + length, value
end

-- Trd Match Id
eurex_derivatives_eti_t7_v13_0.trd_match_id = {}

-- Size: Trd Match Id
eurex_derivatives_eti_t7_v13_0.trd_match_id.size = 4

-- Display: Trd Match Id
eurex_derivatives_eti_t7_v13_0.trd_match_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Trd Match Id: No Value"
  end

  return "Trd Match Id: "..value
end

-- Dissect: Trd Match Id
eurex_derivatives_eti_t7_v13_0.trd_match_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_match_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trd_match_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_match_id, range, value, display)

  return offset + length, value
end

-- Match Date
eurex_derivatives_eti_t7_v13_0.match_date = {}

-- Size: Match Date
eurex_derivatives_eti_t7_v13_0.match_date.size = 4

-- Display: Match Date
eurex_derivatives_eti_t7_v13_0.match_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Match Date: No Value"
  end

  return "Match Date: "..value
end

-- Dissect: Match Date
eurex_derivatives_eti_t7_v13_0.match_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.match_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.match_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.match_date, range, value, display)

  return offset + length, value
end

-- Side Trade Id
eurex_derivatives_eti_t7_v13_0.side_trade_id = {}

-- Size: Side Trade Id
eurex_derivatives_eti_t7_v13_0.side_trade_id.size = 4

-- Display: Side Trade Id
eurex_derivatives_eti_t7_v13_0.side_trade_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Side Trade Id: No Value"
  end

  return "Side Trade Id: "..value
end

-- Dissect: Side Trade Id
eurex_derivatives_eti_t7_v13_0.side_trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_trade_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.side_trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_trade_id, range, value, display)

  return offset + length, value
end

-- Related Symbol
eurex_derivatives_eti_t7_v13_0.related_symbol = {}

-- Size: Related Symbol
eurex_derivatives_eti_t7_v13_0.related_symbol.size = 4

-- Display: Related Symbol
eurex_derivatives_eti_t7_v13_0.related_symbol.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Related Symbol: No Value"
  end

  return "Related Symbol: "..value
end

-- Dissect: Related Symbol
eurex_derivatives_eti_t7_v13_0.related_symbol.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.related_symbol.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.related_symbol.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.related_symbol, range, value, display)

  return offset + length, value
end

-- Root Party Id Clearing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit = {}

-- Size: Root Party Id Clearing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit.size = 4

-- Display: Root Party Id Clearing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Root Party Id Clearing Unit: No Value"
  end

  return "Root Party Id Clearing Unit: "..value
end

-- Dissect: Root Party Id Clearing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_clearing_unit, range, value, display)

  return offset + length, value
end

-- Root Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader = {}

-- Size: Root Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader.size = 4

-- Display: Root Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Root Party Id Executing Trader: No Value"
  end

  return "Root Party Id Executing Trader: "..value
end

-- Dissect: Root Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_executing_trader, range, value, display)

  return offset + length, value
end

-- Root Party Id Session Id
eurex_derivatives_eti_t7_v13_0.root_party_id_session_id = {}

-- Size: Root Party Id Session Id
eurex_derivatives_eti_t7_v13_0.root_party_id_session_id.size = 4

-- Display: Root Party Id Session Id
eurex_derivatives_eti_t7_v13_0.root_party_id_session_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Root Party Id Session Id: No Value"
  end

  return "Root Party Id Session Id: "..value
end

-- Dissect: Root Party Id Session Id
eurex_derivatives_eti_t7_v13_0.root_party_id_session_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_session_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_session_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_session_id, range, value, display)

  return offset + length, value
end

-- Root Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit = {}

-- Size: Root Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit.size = 4

-- Display: Root Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Root Party Id Executing Unit: No Value"
  end

  return "Root Party Id Executing Unit: "..value
end

-- Dissect: Root Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_executing_unit, range, value, display)

  return offset + length, value
end

-- Mass Order Report Id
eurex_derivatives_eti_t7_v13_0.mass_order_report_id = {}

-- Size: Mass Order Report Id
eurex_derivatives_eti_t7_v13_0.mass_order_report_id.size = 4

-- Display: Mass Order Report Id
eurex_derivatives_eti_t7_v13_0.mass_order_report_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Mass Order Report Id: No Value"
  end

  return "Mass Order Report Id: "..value
end

-- Dissect: Mass Order Report Id
eurex_derivatives_eti_t7_v13_0.mass_order_report_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mass_order_report_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.mass_order_report_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order_report_id, range, value, display)

  return offset + length, value
end

-- Orig Trade Id
eurex_derivatives_eti_t7_v13_0.orig_trade_id = {}

-- Size: Orig Trade Id
eurex_derivatives_eti_t7_v13_0.orig_trade_id.size = 4

-- Display: Orig Trade Id
eurex_derivatives_eti_t7_v13_0.orig_trade_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Orig Trade Id: No Value"
  end

  return "Orig Trade Id: "..value
end

-- Dissect: Orig Trade Id
eurex_derivatives_eti_t7_v13_0.orig_trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.orig_trade_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.orig_trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.orig_trade_id, range, value, display)

  return offset + length, value
end

-- Trade Id
eurex_derivatives_eti_t7_v13_0.trade_id = {}

-- Size: Trade Id
eurex_derivatives_eti_t7_v13_0.trade_id.size = 4

-- Display: Trade Id
eurex_derivatives_eti_t7_v13_0.trade_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Trade Id: No Value"
  end

  return "Trade Id: "..value
end

-- Dissect: Trade Id
eurex_derivatives_eti_t7_v13_0.trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_id, range, value, display)

  return offset + length, value
end

-- Root Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker = {}

-- Size: Root Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker.size = 8

-- Display: Root Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Root Party Id Investment Decision Maker: No Value"
  end

  return "Root Party Id Investment Decision Maker: "..value
end

-- Dissect: Root Party Id Investment Decision Maker
eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_investment_decision_maker, range, value, display)

  return offset + length, value
end

-- Root Party Id Client Id
eurex_derivatives_eti_t7_v13_0.root_party_id_client_id = {}

-- Size: Root Party Id Client Id
eurex_derivatives_eti_t7_v13_0.root_party_id_client_id.size = 8

-- Display: Root Party Id Client Id
eurex_derivatives_eti_t7_v13_0.root_party_id_client_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Root Party Id Client Id: No Value"
  end

  return "Root Party Id Client Id: "..value
end

-- Dissect: Root Party Id Client Id
eurex_derivatives_eti_t7_v13_0.root_party_id_client_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_id_client_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_id_client_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_id_client_id, range, value, display)

  return offset + length, value
end

-- Cum Qty
eurex_derivatives_eti_t7_v13_0.cum_qty = {}

-- Size: Cum Qty
eurex_derivatives_eti_t7_v13_0.cum_qty.size = 8

-- Display: Cum Qty
eurex_derivatives_eti_t7_v13_0.cum_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Cum Qty: No Value"
  end

  return "Cum Qty: "..value
end

-- Translate: Cum Qty
eurex_derivatives_eti_t7_v13_0.cum_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Cum Qty
eurex_derivatives_eti_t7_v13_0.cum_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cum_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.cum_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.cum_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cum_qty, range, value, display)

  return offset + length, value
end

-- Leaves Qty
eurex_derivatives_eti_t7_v13_0.leaves_qty = {}

-- Size: Leaves Qty
eurex_derivatives_eti_t7_v13_0.leaves_qty.size = 8

-- Display: Leaves Qty
eurex_derivatives_eti_t7_v13_0.leaves_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Leaves Qty: No Value"
  end

  return "Leaves Qty: "..value
end

-- Translate: Leaves Qty
eurex_derivatives_eti_t7_v13_0.leaves_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Leaves Qty
eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leaves_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.leaves_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.leaves_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leaves_qty, range, value, display)

  return offset + length, value
end

-- Cl Ord Id
eurex_derivatives_eti_t7_v13_0.cl_ord_id = {}

-- Size: Cl Ord Id
eurex_derivatives_eti_t7_v13_0.cl_ord_id.size = 8

-- Display: Cl Ord Id
eurex_derivatives_eti_t7_v13_0.cl_ord_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Cl Ord Id: No Value"
  end

  return "Cl Ord Id: "..value
end

-- Dissect: Cl Ord Id
eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cl_ord_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.cl_ord_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cl_ord_id, range, value, display)

  return offset + length, value
end

-- Order Id
eurex_derivatives_eti_t7_v13_0.order_id = {}

-- Size: Order Id
eurex_derivatives_eti_t7_v13_0.order_id.size = 8

-- Display: Order Id
eurex_derivatives_eti_t7_v13_0.order_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Order Id: No Value"
  end

  return "Order Id: "..value
end

-- Dissect: Order Id
eurex_derivatives_eti_t7_v13_0.order_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.order_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_id, range, value, display)

  return offset + length, value
end

-- Transact Time
eurex_derivatives_eti_t7_v13_0.transact_time = {}

-- Size: Transact Time
eurex_derivatives_eti_t7_v13_0.transact_time.size = 8

-- Display: Transact Time
eurex_derivatives_eti_t7_v13_0.transact_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Transact Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Transact Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Transact Time
eurex_derivatives_eti_t7_v13_0.transact_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.transact_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.transact_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.transact_time, range, value, display)

  return offset + length, value
end

-- Clearing Trade Qty
eurex_derivatives_eti_t7_v13_0.clearing_trade_qty = {}

-- Size: Clearing Trade Qty
eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.size = 8

-- Display: Clearing Trade Qty
eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Clearing Trade Qty: No Value"
  end

  return "Clearing Trade Qty: "..value
end

-- Translate: Clearing Trade Qty
eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Clearing Trade Qty
eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.clearing_trade_qty, range, value, display)

  return offset + length, value
end

-- Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.clearing_trade_price = {}

-- Size: Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.clearing_trade_price.size = 8

-- Display: Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.clearing_trade_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Clearing Trade Price: No Value"
  end

  return "Clearing Trade Price: "..value
end

-- Translate: Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.clearing_trade_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.clearing_trade_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.clearing_trade_price, range, value, display)

  return offset + length, value
end

-- Side Last Qty
eurex_derivatives_eti_t7_v13_0.side_last_qty = {}

-- Size: Side Last Qty
eurex_derivatives_eti_t7_v13_0.side_last_qty.size = 8

-- Display: Side Last Qty
eurex_derivatives_eti_t7_v13_0.side_last_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Side Last Qty: No Value"
  end

  return "Side Last Qty: "..value
end

-- Translate: Side Last Qty
eurex_derivatives_eti_t7_v13_0.side_last_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Side Last Qty
eurex_derivatives_eti_t7_v13_0.side_last_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_last_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.side_last_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.side_last_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_last_qty, range, value, display)

  return offset + length, value
end

-- Side Last Px
eurex_derivatives_eti_t7_v13_0.side_last_px = {}

-- Size: Side Last Px
eurex_derivatives_eti_t7_v13_0.side_last_px.size = 8

-- Display: Side Last Px
eurex_derivatives_eti_t7_v13_0.side_last_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Side Last Px: No Value"
  end

  return "Side Last Px: "..value
end

-- Translate: Side Last Px
eurex_derivatives_eti_t7_v13_0.side_last_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Side Last Px
eurex_derivatives_eti_t7_v13_0.side_last_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_last_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.side_last_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.side_last_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_last_px, range, value, display)

  return offset + length, value
end

-- Last Qty
eurex_derivatives_eti_t7_v13_0.last_qty = {}

-- Size: Last Qty
eurex_derivatives_eti_t7_v13_0.last_qty.size = 8

-- Display: Last Qty
eurex_derivatives_eti_t7_v13_0.last_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Last Qty: No Value"
  end

  return "Last Qty: "..value
end

-- Translate: Last Qty
eurex_derivatives_eti_t7_v13_0.last_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Last Qty
eurex_derivatives_eti_t7_v13_0.last_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.last_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.last_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.last_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.last_qty, range, value, display)

  return offset + length, value
end

-- Price
eurex_derivatives_eti_t7_v13_0.price = {}

-- Size: Price
eurex_derivatives_eti_t7_v13_0.price.size = 8

-- Display: Price
eurex_derivatives_eti_t7_v13_0.price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Price: No Value"
  end

  return "Price: "..value
end

-- Translate: Price
eurex_derivatives_eti_t7_v13_0.price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Price
eurex_derivatives_eti_t7_v13_0.price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.price, range, value, display)

  return offset + length, value
end

-- Appl Seq Num
eurex_derivatives_eti_t7_v13_0.appl_seq_num = {}

-- Size: Appl Seq Num
eurex_derivatives_eti_t7_v13_0.appl_seq_num.size = 8

-- Display: Appl Seq Num
eurex_derivatives_eti_t7_v13_0.appl_seq_num.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Appl Seq Num: No Value"
  end

  return "Appl Seq Num: "..value
end

-- Dissect: Appl Seq Num
eurex_derivatives_eti_t7_v13_0.appl_seq_num.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_seq_num.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.appl_seq_num.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_num, range, value, display)

  return offset + length, value
end

-- Rbc Header Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_comp = {}

-- Size: Rbc Header Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_comp.size =
  eurex_derivatives_eti_t7_v13_0.sending_time.size + 
  eurex_derivatives_eti_t7_v13_0.appl_seq_num.size + 
  eurex_derivatives_eti_t7_v13_0.appl_sub_id.size + 
  eurex_derivatives_eti_t7_v13_0.partition_id.size + 
  eurex_derivatives_eti_t7_v13_0.appl_resend_flag.size + 
  eurex_derivatives_eti_t7_v13_0.appl_id.size + 
  eurex_derivatives_eti_t7_v13_0.last_fragment.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Rbc Header Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Rbc Header Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Sending Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, sending_time = eurex_derivatives_eti_t7_v13_0.sending_time.dissect(buffer, index, packet, parent)

  -- Appl Seq Num: 8 Byte Unsigned Fixed Width Integer Nullable
  index, appl_seq_num = eurex_derivatives_eti_t7_v13_0.appl_seq_num.dissect(buffer, index, packet, parent)

  -- Appl Sub Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, appl_sub_id = eurex_derivatives_eti_t7_v13_0.appl_sub_id.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Appl Resend Flag: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_resend_flag = eurex_derivatives_eti_t7_v13_0.appl_resend_flag.dissect(buffer, index, packet, parent)

  -- Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, appl_id = eurex_derivatives_eti_t7_v13_0.appl_id.dissect(buffer, index, packet, parent)

  -- Last Fragment: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, last_fragment = eurex_derivatives_eti_t7_v13_0.last_fragment.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Rbc Header Comp
eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect = function(buffer, offset, packet, parent)
  if show.rbc_header_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rbc_header_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.rbc_header_comp.fields(buffer, offset, packet, parent)
  end
end

-- Trade Broadcast
eurex_derivatives_eti_t7_v13_0.trade_broadcast = {}

-- Read runtime size of: Trade Broadcast
eurex_derivatives_eti_t7_v13_0.trade_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Trade Broadcast
eurex_derivatives_eti_t7_v13_0.trade_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Trade Broadcast
eurex_derivatives_eti_t7_v13_0.trade_broadcast.fields = function(buffer, offset, packet, parent, size_of_trade_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Side Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, side_last_px = eurex_derivatives_eti_t7_v13_0.side_last_px.dissect(buffer, index, packet, parent)

  -- Side Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, side_last_qty = eurex_derivatives_eti_t7_v13_0.side_last_qty.dissect(buffer, index, packet, parent)

  -- Clearing Trade Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, clearing_trade_price = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.dissect(buffer, index, packet, parent)

  -- Clearing Trade Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, clearing_trade_qty = eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Root Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_client_id = eurex_derivatives_eti_t7_v13_0.root_party_id_client_id.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_id = eurex_derivatives_eti_t7_v13_0.trade_id.dissect(buffer, index, packet, parent)

  -- Orig Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, orig_trade_id = eurex_derivatives_eti_t7_v13_0.orig_trade_id.dissect(buffer, index, packet, parent)

  -- Mass Order Report Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, mass_order_report_id = eurex_derivatives_eti_t7_v13_0.mass_order_report_id.dissect(buffer, index, packet, parent)

  -- Root Party Id Executing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_executing_unit = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit.dissect(buffer, index, packet, parent)

  -- Root Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_session_id = eurex_derivatives_eti_t7_v13_0.root_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Root Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Id Clearing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_clearing_unit = eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Related Symbol: 4 Byte Signed Fixed Width Integer Nullable
  index, related_symbol = eurex_derivatives_eti_t7_v13_0.related_symbol.dissect(buffer, index, packet, parent)

  -- Side Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, side_trade_id = eurex_derivatives_eti_t7_v13_0.side_trade_id.dissect(buffer, index, packet, parent)

  -- Match Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_date = eurex_derivatives_eti_t7_v13_0.match_date.dissect(buffer, index, packet, parent)

  -- Trd Match Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trd_match_id = eurex_derivatives_eti_t7_v13_0.trd_match_id.dissect(buffer, index, packet, parent)

  -- Strategy Link Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, strategy_link_id = eurex_derivatives_eti_t7_v13_0.strategy_link_id.dissect(buffer, index, packet, parent)

  -- Tot Num Trade Reports: 4 Byte Signed Fixed Width Integer Nullable
  index, tot_num_trade_reports = eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports.dissect(buffer, index, packet, parent)

  -- Security Sub Type: 4 Byte Signed Fixed Width Integer Nullable
  index, security_sub_type = eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect(buffer, index, packet, parent)

  -- Multi Leg Reporting Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, multi_leg_reporting_type = eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Transfer Reason: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transfer_reason = eurex_derivatives_eti_t7_v13_0.transfer_reason.dissect(buffer, index, packet, parent)

  -- Root Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, root_party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Root Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, root_party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Root Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, root_party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Match Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, match_type = eurex_derivatives_eti_t7_v13_0.match_type.dissect(buffer, index, packet, parent)

  -- Match Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, match_sub_type = eurex_derivatives_eti_t7_v13_0.match_sub_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Side Liquidity Ind: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, side_liquidity_ind = eurex_derivatives_eti_t7_v13_0.side_liquidity_ind.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Root Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, root_party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Root Party Id Position Account: 32 Byte Ascii String Nullable
  index, root_party_id_position_account = eurex_derivatives_eti_t7_v13_0.root_party_id_position_account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Order Category: 1 Byte Ascii String Enum with 2 values
  index, order_category = eurex_derivatives_eti_t7_v13_0.order_category.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Related Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, related_product_complex = eurex_derivatives_eti_t7_v13_0.related_product_complex.dissect(buffer, index, packet, parent)

  -- Order Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_side = eurex_derivatives_eti_t7_v13_0.order_side.dissect(buffer, index, packet, parent)

  -- Root Party Clearing Organization: 4 Byte Ascii String Nullable
  index, root_party_clearing_organization = eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization.dissect(buffer, index, packet, parent)

  -- Root Party Executing Firm: 5 Byte Ascii String Nullable
  index, root_party_executing_firm = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Executing Trader: 6 Byte Ascii String Nullable
  index, root_party_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Clearing Firm: 5 Byte Ascii String Nullable
  index, root_party_clearing_firm = eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm.dissect(buffer, index, packet, parent)

  -- Regulatory Trade Id: 52 Byte Ascii String Nullable
  index, regulatory_trade_id = eurex_derivatives_eti_t7_v13_0.regulatory_trade_id.dissect(buffer, index, packet, parent)

  -- Root Party Id Execution Venue: 4 Byte Ascii String Nullable
  index, root_party_id_execution_venue = eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue.dissect(buffer, index, packet, parent)

  -- Fee Idnt Code: 15 Byte Ascii String Nullable
  index, fee_idnt_code = eurex_derivatives_eti_t7_v13_0.fee_idnt_code.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Trade Broadcast
eurex_derivatives_eti_t7_v13_0.trade_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_trade_broadcast = eurex_derivatives_eti_t7_v13_0.trade_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.trade_broadcast then
    local range = buffer(offset, size_of_trade_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.trade_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.trade_broadcast.fields(buffer, offset, packet, parent, size_of_trade_broadcast)

  return offset + size_of_trade_broadcast
end

-- Throttle Disconnect Limit
eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit = {}

-- Size: Throttle Disconnect Limit
eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit.size = 4

-- Display: Throttle Disconnect Limit
eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Throttle Disconnect Limit: No Value"
  end

  return "Throttle Disconnect Limit: "..value
end

-- Dissect: Throttle Disconnect Limit
eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_disconnect_limit, range, value, display)

  return offset + length, value
end

-- Throttle No Msgs
eurex_derivatives_eti_t7_v13_0.throttle_no_msgs = {}

-- Size: Throttle No Msgs
eurex_derivatives_eti_t7_v13_0.throttle_no_msgs.size = 4

-- Display: Throttle No Msgs
eurex_derivatives_eti_t7_v13_0.throttle_no_msgs.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Throttle No Msgs: No Value"
  end

  return "Throttle No Msgs: "..value
end

-- Dissect: Throttle No Msgs
eurex_derivatives_eti_t7_v13_0.throttle_no_msgs.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.throttle_no_msgs.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.throttle_no_msgs.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_no_msgs, range, value, display)

  return offset + length, value
end

-- Throttle Time Interval
eurex_derivatives_eti_t7_v13_0.throttle_time_interval = {}

-- Size: Throttle Time Interval
eurex_derivatives_eti_t7_v13_0.throttle_time_interval.size = 8

-- Display: Throttle Time Interval
eurex_derivatives_eti_t7_v13_0.throttle_time_interval.display = function(value)
  -- Check if field has value
  if value == Int64(0x00000000, 0x80000000) then
    return "Throttle Time Interval: No Value"
  end

  return "Throttle Time Interval: "..value
end

-- Dissect: Throttle Time Interval
eurex_derivatives_eti_t7_v13_0.throttle_time_interval.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.throttle_time_interval.size
  local range = buffer(offset, length)
  local value = range:le_int64()
  local display = eurex_derivatives_eti_t7_v13_0.throttle_time_interval.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_time_interval, range, value, display)

  return offset + length, value
end

-- Notif Header Comp
eurex_derivatives_eti_t7_v13_0.notif_header_comp = {}

-- Size: Notif Header Comp
eurex_derivatives_eti_t7_v13_0.notif_header_comp.size =
  eurex_derivatives_eti_t7_v13_0.sending_time.size

-- Display: Notif Header Comp
eurex_derivatives_eti_t7_v13_0.notif_header_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Notif Header Comp
eurex_derivatives_eti_t7_v13_0.notif_header_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Sending Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, sending_time = eurex_derivatives_eti_t7_v13_0.sending_time.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Notif Header Comp
eurex_derivatives_eti_t7_v13_0.notif_header_comp.dissect = function(buffer, offset, packet, parent)
  if show.notif_header_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.notif_header_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.notif_header_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.notif_header_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.notif_header_comp.fields(buffer, offset, packet, parent)
  end
end

-- Throttle Update Notification
eurex_derivatives_eti_t7_v13_0.throttle_update_notification = {}

-- Read runtime size of: Throttle Update Notification
eurex_derivatives_eti_t7_v13_0.throttle_update_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Throttle Update Notification
eurex_derivatives_eti_t7_v13_0.throttle_update_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Throttle Update Notification
eurex_derivatives_eti_t7_v13_0.throttle_update_notification.fields = function(buffer, offset, packet, parent, size_of_throttle_update_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Notif Header Comp: Struct of 1 fields
  index, notif_header_comp = eurex_derivatives_eti_t7_v13_0.notif_header_comp.dissect(buffer, index, packet, parent)

  -- Throttle Time Interval: 8 Byte Signed Fixed Width Integer Nullable
  index, throttle_time_interval = eurex_derivatives_eti_t7_v13_0.throttle_time_interval.dissect(buffer, index, packet, parent)

  -- Throttle No Msgs: 4 Byte Unsigned Fixed Width Integer Nullable
  index, throttle_no_msgs = eurex_derivatives_eti_t7_v13_0.throttle_no_msgs.dissect(buffer, index, packet, parent)

  -- Throttle Disconnect Limit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, throttle_disconnect_limit = eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Throttle Update Notification
eurex_derivatives_eti_t7_v13_0.throttle_update_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_throttle_update_notification = eurex_derivatives_eti_t7_v13_0.throttle_update_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.throttle_update_notification then
    local range = buffer(offset, size_of_throttle_update_notification)
    local display = eurex_derivatives_eti_t7_v13_0.throttle_update_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.throttle_update_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.throttle_update_notification.fields(buffer, offset, packet, parent, size_of_throttle_update_notification)

  return offset + size_of_throttle_update_notification
end

-- Tm Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast = {}

-- Read runtime size of: Tm Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tm Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tm Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.fields = function(buffer, offset, packet, parent, size_of_tm_trading_session_status_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Trad Ses Event: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, trad_ses_event = eurex_derivatives_eti_t7_v13_0.trad_ses_event.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Tm Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tm_trading_session_status_broadcast = eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tm_trading_session_status_broadcast then
    local range = buffer(offset, size_of_tm_trading_session_status_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tm_trading_session_status_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.fields(buffer, offset, packet, parent, size_of_tm_trading_session_status_broadcast)

  return offset + size_of_tm_trading_session_status_broadcast
end

-- Message Event Source
eurex_derivatives_eti_t7_v13_0.message_event_source = {}

-- Size: Message Event Source
eurex_derivatives_eti_t7_v13_0.message_event_source.size = 1

-- Display: Message Event Source
eurex_derivatives_eti_t7_v13_0.message_event_source.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Message Event Source: No Value"
  end

  if value == "I" then
    return "Message Event Source: Broadcastto Initiator (I)"
  end
  if value == "A" then
    return "Message Event Source: Broadcastto Approver (A)"
  end
  if value == "R" then
    return "Message Event Source: Broadcastto Requester (R)"
  end
  if value == "Q" then
    return "Message Event Source: Broadcastto Quote Submitter (Q)"
  end

  return "Message Event Source: Unknown("..value..")"
end

-- Dissect: Message Event Source
eurex_derivatives_eti_t7_v13_0.message_event_source.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.message_event_source.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.message_event_source.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.message_event_source, range, value, display)

  return offset + length, value
end

-- Tes Exec Id
eurex_derivatives_eti_t7_v13_0.tes_exec_id = {}

-- Size: Tes Exec Id
eurex_derivatives_eti_t7_v13_0.tes_exec_id.size = 4

-- Display: Tes Exec Id
eurex_derivatives_eti_t7_v13_0.tes_exec_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Tes Exec Id: No Value"
  end

  return "Tes Exec Id: "..value
end

-- Dissect: Tes Exec Id
eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.tes_exec_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.tes_exec_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_exec_id, range, value, display)

  return offset + length, value
end

-- Package Id
eurex_derivatives_eti_t7_v13_0.package_id = {}

-- Size: Package Id
eurex_derivatives_eti_t7_v13_0.package_id.size = 4

-- Display: Package Id
eurex_derivatives_eti_t7_v13_0.package_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Package Id: No Value"
  end

  return "Package Id: "..value
end

-- Dissect: Package Id
eurex_derivatives_eti_t7_v13_0.package_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.package_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.package_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.package_id, range, value, display)

  return offset + length, value
end

-- Tes Upload Broadcast
eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast = {}

-- Read runtime size of: Tes Upload Broadcast
eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Upload Broadcast
eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Upload Broadcast
eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_upload_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Related Trade Quantity: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_quantity = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.dissect(buffer, index, packet, parent)

  -- Related Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_px = eurex_derivatives_eti_t7_v13_0.related_px.dissect(buffer, index, packet, parent)

  -- Underlying Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_qty = eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Underlying Settlement Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_settlement_date = eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.dissect(buffer, index, packet, parent)

  -- Underlying Maturity Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_maturity_date = eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.dissect(buffer, index, packet, parent)

  -- Related Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_id = eurex_derivatives_eti_t7_v13_0.related_trade_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Trade Platform: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, trade_platform = eurex_derivatives_eti_t7_v13_0.trade_platform.dissect(buffer, index, packet, parent)

  -- No Side Allocs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_side_allocs = eurex_derivatives_eti_t7_v13_0.no_side_allocs.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- No Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_events = eurex_derivatives_eti_t7_v13_0.no_events.dissect(buffer, index, packet, parent)

  -- No Instr Attrib: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instr_attrib = eurex_derivatives_eti_t7_v13_0.no_instr_attrib.dissect(buffer, index, packet, parent)

  -- No Underlying Stips: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_underlying_stips = eurex_derivatives_eti_t7_v13_0.no_underlying_stips.dissect(buffer, index, packet, parent)

  -- Hedge Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, hedge_type = eurex_derivatives_eti_t7_v13_0.hedge_type.dissect(buffer, index, packet, parent)

  -- Party Id Settlement Location: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, party_id_settlement_location = eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.dissect(buffer, index, packet, parent)

  -- Swap Clearer: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, swap_clearer = eurex_derivatives_eti_t7_v13_0.swap_clearer.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Root Party Executing Firm: 5 Byte Ascii String Nullable
  index, root_party_executing_firm = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Executing Trader: 6 Byte Ascii String Nullable
  index, root_party_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Underlying Security Id: 12 Byte Ascii String Nullable
  index, underlying_security_id = eurex_derivatives_eti_t7_v13_0.underlying_security_id.dissect(buffer, index, packet, parent)

  -- Underlying Security Desc: 30 Byte Ascii String Nullable
  index, underlying_security_desc = eurex_derivatives_eti_t7_v13_0.underlying_security_desc.dissect(buffer, index, packet, parent)

  -- Underlying Currency: 3 Byte Ascii String Nullable
  index, underlying_currency = eurex_derivatives_eti_t7_v13_0.underlying_currency.dissect(buffer, index, packet, parent)

  -- Underlying Issuer: 30 Byte Ascii String Nullable
  index, underlying_issuer = eurex_derivatives_eti_t7_v13_0.underlying_issuer.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Side Alloc Ext Grp Comp
  for side_alloc_ext_grp_comp_index = 1, no_side_allocs do
    index, side_alloc_ext_grp_comp = eurex_derivatives_eti_t7_v13_0.side_alloc_ext_grp_comp.dissect(buffer, index, packet, parent, side_alloc_ext_grp_comp_index)
  end

  -- Repeating: Trd Instrmnt Leg Grp Comp
  for trd_instrmnt_leg_grp_comp_index = 1, no_legs do
    index, trd_instrmnt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.dissect(buffer, index, packet, parent, trd_instrmnt_leg_grp_comp_index)
  end

  -- Repeating: Instrument Event Grp Comp
  for instrument_event_grp_comp_index = 1, no_events do
    index, instrument_event_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.dissect(buffer, index, packet, parent, instrument_event_grp_comp_index)
  end

  -- Repeating: Instrument Attribute Grp Comp
  for instrument_attribute_grp_comp_index = 1, no_instr_attrib do
    index, instrument_attribute_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.dissect(buffer, index, packet, parent, instrument_attribute_grp_comp_index)
  end

  -- Repeating: Underlying Stip Grp Comp
  for underlying_stip_grp_comp_index = 1, no_underlying_stips do
    index, underlying_stip_grp_comp = eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.dissect(buffer, index, packet, parent, underlying_stip_grp_comp_index)
  end

  return index
end

-- Dissect: Tes Upload Broadcast
eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_upload_broadcast = eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_upload_broadcast then
    local range = buffer(offset, size_of_tes_upload_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_upload_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.fields(buffer, offset, packet, parent, size_of_tes_upload_broadcast)

  return offset + size_of_tes_upload_broadcast
end

-- Tes Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast = {}

-- Read runtime size of: Tes Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_trading_session_status_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Trad Ses Event: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, trad_ses_event = eurex_derivatives_eti_t7_v13_0.trad_ses_event.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Tes Trading Session Status Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_trading_session_status_broadcast = eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_trading_session_status_broadcast then
    local range = buffer(offset, size_of_tes_trading_session_status_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_trading_session_status_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.fields(buffer, offset, packet, parent, size_of_tes_trading_session_status_broadcast)

  return offset + size_of_tes_trading_session_status_broadcast
end

-- Basket Side Trade Report Id
eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id = {}

-- Size: Basket Side Trade Report Id
eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.size = 20

-- Display: Basket Side Trade Report Id
eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Basket Side Trade Report Id: No Value"
  end

  return "Basket Side Trade Report Id: "..value
end

-- Dissect: Basket Side Trade Report Id
eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_trade_report_id, range, value, display)

  return offset + length, value
end

-- Basket Party Contra Firm
eurex_derivatives_eti_t7_v13_0.basket_party_contra_firm = {}

-- Size: Basket Party Contra Firm
eurex_derivatives_eti_t7_v13_0.basket_party_contra_firm.size = 5

-- Display: Basket Party Contra Firm
eurex_derivatives_eti_t7_v13_0.basket_party_contra_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Basket Party Contra Firm: No Value"
  end

  return "Basket Party Contra Firm: "..value
end

-- Dissect: Basket Party Contra Firm
eurex_derivatives_eti_t7_v13_0.basket_party_contra_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_party_contra_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.basket_party_contra_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_party_contra_firm, range, value, display)

  return offset + length, value
end

-- Trade Aggregation Trans Type
eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type = {}

-- Size: Trade Aggregation Trans Type
eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.size = 1

-- Display: Trade Aggregation Trans Type
eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.display = function(value)
  if value == 0 then
    return "Trade Aggregation Trans Type: New (0)"
  end
  if value == 0xFF then
    return "Trade Aggregation Trans Type: No Value"
  end

  return "Trade Aggregation Trans Type: Unknown("..value..")"
end

-- Dissect: Trade Aggregation Trans Type
eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_aggregation_trans_type, range, value, display)

  return offset + length, value
end

-- Reversal Indicator
eurex_derivatives_eti_t7_v13_0.reversal_indicator = {}

-- Size: Reversal Indicator
eurex_derivatives_eti_t7_v13_0.reversal_indicator.size = 1

-- Display: Reversal Indicator
eurex_derivatives_eti_t7_v13_0.reversal_indicator.display = function(value)
  if value == 0 then
    return "Reversal Indicator: No (0)"
  end
  if value == 1 then
    return "Reversal Indicator: Yes (1)"
  end
  if value == 0xFF then
    return "Reversal Indicator: No Value"
  end

  return "Reversal Indicator: Unknown("..value..")"
end

-- Dissect: Reversal Indicator
eurex_derivatives_eti_t7_v13_0.reversal_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.reversal_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.reversal_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_indicator, range, value, display)

  return offset + length, value
end

-- Multileg Price Model
eurex_derivatives_eti_t7_v13_0.multileg_price_model = {}

-- Size: Multileg Price Model
eurex_derivatives_eti_t7_v13_0.multileg_price_model.size = 1

-- Display: Multileg Price Model
eurex_derivatives_eti_t7_v13_0.multileg_price_model.display = function(value)
  if value == 0 then
    return "Multileg Price Model: Standard (0)"
  end
  if value == 1 then
    return "Multileg Price Model: User Defined (1)"
  end
  if value == 0xFF then
    return "Multileg Price Model: No Value"
  end

  return "Multileg Price Model: Unknown("..value..")"
end

-- Dissect: Multileg Price Model
eurex_derivatives_eti_t7_v13_0.multileg_price_model.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.multileg_price_model.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.multileg_price_model.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.multileg_price_model, range, value, display)

  return offset + length, value
end

-- Optional Early Termination Indicator
eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator = {}

-- Size: Optional Early Termination Indicator
eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.size = 1

-- Display: Optional Early Termination Indicator
eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.display = function(value)
  if value == 0 then
    return "Optional Early Termination Indicator: No (0)"
  end
  if value == 1 then
    return "Optional Early Termination Indicator: Yes (1)"
  end
  if value == 0xFF then
    return "Optional Early Termination Indicator: No Value"
  end

  return "Optional Early Termination Indicator: Unknown("..value..")"
end

-- Dissect: Optional Early Termination Indicator
eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.optional_early_termination_indicator, range, value, display)

  return offset + length, value
end

-- Basket Profile Id
eurex_derivatives_eti_t7_v13_0.basket_profile_id = {}

-- Size: Basket Profile Id
eurex_derivatives_eti_t7_v13_0.basket_profile_id.size = 4

-- Display: Basket Profile Id
eurex_derivatives_eti_t7_v13_0.basket_profile_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Basket Profile Id: No Value"
  end

  return "Basket Profile Id: "..value
end

-- Dissect: Basket Profile Id
eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_profile_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.basket_profile_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_profile_id, range, value, display)

  return offset + length, value
end

-- Srqs Related Trade Id
eurex_derivatives_eti_t7_v13_0.srqs_related_trade_id = {}

-- Size: Srqs Related Trade Id
eurex_derivatives_eti_t7_v13_0.srqs_related_trade_id.size = 4

-- Display: Srqs Related Trade Id
eurex_derivatives_eti_t7_v13_0.srqs_related_trade_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Srqs Related Trade Id: No Value"
  end

  return "Srqs Related Trade Id: "..value
end

-- Dissect: Srqs Related Trade Id
eurex_derivatives_eti_t7_v13_0.srqs_related_trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.srqs_related_trade_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.srqs_related_trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_related_trade_id, range, value, display)

  return offset + length, value
end

-- Negotiation Id
eurex_derivatives_eti_t7_v13_0.negotiation_id = {}

-- Size: Negotiation Id
eurex_derivatives_eti_t7_v13_0.negotiation_id.size = 4

-- Display: Negotiation Id
eurex_derivatives_eti_t7_v13_0.negotiation_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Negotiation Id: No Value"
  end

  return "Negotiation Id: "..value
end

-- Dissect: Negotiation Id
eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.negotiation_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.negotiation_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.negotiation_id, range, value, display)

  return offset + length, value
end

-- Orig Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id = {}

-- Size: Orig Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.size = 8

-- Display: Orig Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Orig Basket Trd Match Id: No Value"
  end

  return "Orig Basket Trd Match Id: "..value
end

-- Dissect: Orig Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.orig_basket_trd_match_id, range, value, display)

  return offset + length, value
end

-- Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.basket_trd_match_id = {}

-- Size: Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.size = 8

-- Display: Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Basket Trd Match Id: No Value"
  end

  return "Basket Trd Match Id: "..value
end

-- Dissect: Basket Trd Match Id
eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_trd_match_id, range, value, display)

  return offset + length, value
end

-- Tes Trade Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast = {}

-- Read runtime size of: Tes Trade Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Trade Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Trade Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_trade_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Clearing Trade Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, clearing_trade_price = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.dissect(buffer, index, packet, parent)

  -- Clearing Trade Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, clearing_trade_qty = eurex_derivatives_eti_t7_v13_0.clearing_trade_qty.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Root Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_client_id = eurex_derivatives_eti_t7_v13_0.root_party_id_client_id.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Orig Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Side Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, side_last_px = eurex_derivatives_eti_t7_v13_0.side_last_px.dissect(buffer, index, packet, parent)

  -- Side Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, side_last_qty = eurex_derivatives_eti_t7_v13_0.side_last_qty.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_id = eurex_derivatives_eti_t7_v13_0.trade_id.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Side Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, side_trade_id = eurex_derivatives_eti_t7_v13_0.side_trade_id.dissect(buffer, index, packet, parent)

  -- Root Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_session_id = eurex_derivatives_eti_t7_v13_0.root_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Orig Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, orig_trade_id = eurex_derivatives_eti_t7_v13_0.orig_trade_id.dissect(buffer, index, packet, parent)

  -- Root Party Id Executing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_executing_unit = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_unit.dissect(buffer, index, packet, parent)

  -- Root Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Id Clearing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, root_party_id_clearing_unit = eurex_derivatives_eti_t7_v13_0.root_party_id_clearing_unit.dissect(buffer, index, packet, parent)

  -- Strategy Link Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, strategy_link_id = eurex_derivatives_eti_t7_v13_0.strategy_link_id.dissect(buffer, index, packet, parent)

  -- Related Symbol: 4 Byte Signed Fixed Width Integer Nullable
  index, related_symbol = eurex_derivatives_eti_t7_v13_0.related_symbol.dissect(buffer, index, packet, parent)

  -- Tot Num Trade Reports: 4 Byte Signed Fixed Width Integer Nullable
  index, tot_num_trade_reports = eurex_derivatives_eti_t7_v13_0.tot_num_trade_reports.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Srqs Related Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, srqs_related_trade_id = eurex_derivatives_eti_t7_v13_0.srqs_related_trade_id.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Security Sub Type: 4 Byte Signed Fixed Width Integer Nullable
  index, security_sub_type = eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Related Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, related_product_complex = eurex_derivatives_eti_t7_v13_0.related_product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Transfer Reason: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transfer_reason = eurex_derivatives_eti_t7_v13_0.transfer_reason.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- Multi Leg Reporting Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, multi_leg_reporting_type = eurex_derivatives_eti_t7_v13_0.multi_leg_reporting_type.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Multileg Price Model: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, multileg_price_model = eurex_derivatives_eti_t7_v13_0.multileg_price_model.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Root Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, root_party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.root_party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Reversal Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, reversal_indicator = eurex_derivatives_eti_t7_v13_0.reversal_indicator.dissect(buffer, index, packet, parent)

  -- Trade Aggregation Trans Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, trade_aggregation_trans_type = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Root Party Id Position Account: 32 Byte Ascii String Nullable
  index, root_party_id_position_account = eurex_derivatives_eti_t7_v13_0.root_party_id_position_account.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Root Party Executing Firm: 5 Byte Ascii String Nullable
  index, root_party_executing_firm = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Executing Trader: 6 Byte Ascii String Nullable
  index, root_party_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Clearing Firm: 5 Byte Ascii String Nullable
  index, root_party_clearing_firm = eurex_derivatives_eti_t7_v13_0.root_party_clearing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Clearing Organization: 4 Byte Ascii String Nullable
  index, root_party_clearing_organization = eurex_derivatives_eti_t7_v13_0.root_party_clearing_organization.dissect(buffer, index, packet, parent)

  -- Root Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, root_party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.root_party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Root Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, root_party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.root_party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Root Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, root_party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.root_party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Root Party Id Execution Venue: 4 Byte Ascii String Nullable
  index, root_party_id_execution_venue = eurex_derivatives_eti_t7_v13_0.root_party_id_execution_venue.dissect(buffer, index, packet, parent)

  -- Regulatory Trade Id: 52 Byte Ascii String Nullable
  index, regulatory_trade_id = eurex_derivatives_eti_t7_v13_0.regulatory_trade_id.dissect(buffer, index, packet, parent)

  -- Basket Party Contra Firm: 5 Byte Ascii String Nullable
  index, basket_party_contra_firm = eurex_derivatives_eti_t7_v13_0.basket_party_contra_firm.dissect(buffer, index, packet, parent)

  -- Basket Side Trade Report Id: 20 Byte Ascii String Nullable
  index, basket_side_trade_report_id = eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.dissect(buffer, index, packet, parent)

  -- Fee Idnt Code: 15 Byte Ascii String Nullable
  index, fee_idnt_code = eurex_derivatives_eti_t7_v13_0.fee_idnt_code.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Tes Trade Broadcast
eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_trade_broadcast = eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_trade_broadcast then
    local range = buffer(offset, size_of_tes_trade_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_trade_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.fields(buffer, offset, packet, parent, size_of_tes_trade_broadcast)

  return offset + size_of_tes_trade_broadcast
end

-- Reversal Approval Time
eurex_derivatives_eti_t7_v13_0.reversal_approval_time = {}

-- Size: Reversal Approval Time
eurex_derivatives_eti_t7_v13_0.reversal_approval_time.size = 8

-- Display: Reversal Approval Time
eurex_derivatives_eti_t7_v13_0.reversal_approval_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Reversal Approval Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Reversal Approval Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Reversal Approval Time
eurex_derivatives_eti_t7_v13_0.reversal_approval_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.reversal_approval_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.reversal_approval_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_approval_time, range, value, display)

  return offset + length, value
end

-- Side Alloc Grp Bc Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp = {}

-- Size: Side Alloc Grp Bc Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.reversal_approval_time.size + 
  eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: Side Alloc Grp Bc Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Side Alloc Grp Bc Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.fields = function(buffer, offset, packet, parent, side_alloc_grp_bc_comp_index)
  local index = offset

  -- Implicit Side Alloc Grp Bc Comp Index
  if side_alloc_grp_bc_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_bc_comp_index, side_alloc_grp_bc_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Reversal Approval Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, reversal_approval_time = eurex_derivatives_eti_t7_v13_0.reversal_approval_time.dissect(buffer, index, packet, parent)

  -- Individual Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, individual_alloc_id = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.dissect(buffer, index, packet, parent)

  -- Tes Enrichment Rule Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Trade Alloc Status: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_alloc_status = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Side Alloc Grp Bc Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.dissect = function(buffer, offset, packet, parent, side_alloc_grp_bc_comp_index)
  if show.side_alloc_grp_bc_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_bc_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.fields(buffer, offset, packet, parent, side_alloc_grp_bc_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.fields(buffer, offset, packet, parent, side_alloc_grp_bc_comp_index)
  end
end

-- Reversal Reason Text
eurex_derivatives_eti_t7_v13_0.reversal_reason_text = {}

-- Size: Reversal Reason Text
eurex_derivatives_eti_t7_v13_0.reversal_reason_text.size = 132

-- Display: Reversal Reason Text
eurex_derivatives_eti_t7_v13_0.reversal_reason_text.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Reversal Reason Text: No Value"
  end

  return "Reversal Reason Text: "..value
end

-- Dissect: Reversal Reason Text
eurex_derivatives_eti_t7_v13_0.reversal_reason_text.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.reversal_reason_text.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.reversal_reason_text.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_reason_text, range, value, display)

  return offset + length, value
end

-- Reversal Cancellation Reason
eurex_derivatives_eti_t7_v13_0.reversal_cancellation_reason = {}

-- Size: Reversal Cancellation Reason
eurex_derivatives_eti_t7_v13_0.reversal_cancellation_reason.size = 1

-- Display: Reversal Cancellation Reason
eurex_derivatives_eti_t7_v13_0.reversal_cancellation_reason.display = function(value)
  if value == 1 then
    return "Reversal Cancellation Reason: Tas Change (1)"
  end
  if value == 2 then
    return "Reversal Cancellation Reason: Intraday Expiration (2)"
  end
  if value == 3 then
    return "Reversal Cancellation Reason: Instrument Deletion (3)"
  end
  if value == 4 then
    return "Reversal Cancellation Reason: Instrument Suspension (4)"
  end
  if value == 0xFF then
    return "Reversal Cancellation Reason: No Value"
  end

  return "Reversal Cancellation Reason: Unknown("..value..")"
end

-- Dissect: Reversal Cancellation Reason
eurex_derivatives_eti_t7_v13_0.reversal_cancellation_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.reversal_cancellation_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.reversal_cancellation_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_cancellation_reason, range, value, display)

  return offset + length, value
end

-- Reversal Initiation Time
eurex_derivatives_eti_t7_v13_0.reversal_initiation_time = {}

-- Size: Reversal Initiation Time
eurex_derivatives_eti_t7_v13_0.reversal_initiation_time.size = 8

-- Display: Reversal Initiation Time
eurex_derivatives_eti_t7_v13_0.reversal_initiation_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Reversal Initiation Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Reversal Initiation Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Reversal Initiation Time
eurex_derivatives_eti_t7_v13_0.reversal_initiation_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.reversal_initiation_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.reversal_initiation_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.reversal_initiation_time, range, value, display)

  return offset + length, value
end

-- Tes Reversal Broadcast
eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast = {}

-- Read runtime size of: Tes Reversal Broadcast
eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Reversal Broadcast
eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Reversal Broadcast
eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_reversal_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Reversal Initiation Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, reversal_initiation_time = eurex_derivatives_eti_t7_v13_0.reversal_initiation_time.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Reversal Cancellation Reason: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, reversal_cancellation_reason = eurex_derivatives_eti_t7_v13_0.reversal_cancellation_reason.dissect(buffer, index, packet, parent)

  -- No Side Allocs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_side_allocs = eurex_derivatives_eti_t7_v13_0.no_side_allocs.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Reversal Reason Text: 132 Byte Ascii String Nullable
  index, reversal_reason_text = eurex_derivatives_eti_t7_v13_0.reversal_reason_text.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Repeating: Side Alloc Grp Bc Comp
  for side_alloc_grp_bc_comp_index = 1, no_side_allocs do
    index, side_alloc_grp_bc_comp = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.dissect(buffer, index, packet, parent, side_alloc_grp_bc_comp_index)
  end

  return index
end

-- Dissect: Tes Reversal Broadcast
eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_reversal_broadcast = eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_reversal_broadcast then
    local range = buffer(offset, size_of_tes_reversal_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_reversal_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.fields(buffer, offset, packet, parent, size_of_tes_reversal_broadcast)

  return offset + size_of_tes_reversal_broadcast
end

-- Tes Response
eurex_derivatives_eti_t7_v13_0.tes_response = {}

-- Read runtime size of: Tes Response
eurex_derivatives_eti_t7_v13_0.tes_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Response
eurex_derivatives_eti_t7_v13_0.tes_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Response
eurex_derivatives_eti_t7_v13_0.tes_response.fields = function(buffer, offset, packet, parent, size_of_tes_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Tes Response
eurex_derivatives_eti_t7_v13_0.tes_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_response = eurex_derivatives_eti_t7_v13_0.tes_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_response then
    local range = buffer(offset, size_of_tes_response)
    local display = eurex_derivatives_eti_t7_v13_0.tes_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_response.fields(buffer, offset, packet, parent, size_of_tes_response)

  return offset + size_of_tes_response
end

-- Alloc Id
eurex_derivatives_eti_t7_v13_0.alloc_id = {}

-- Size: Alloc Id
eurex_derivatives_eti_t7_v13_0.alloc_id.size = 4

-- Display: Alloc Id
eurex_derivatives_eti_t7_v13_0.alloc_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Alloc Id: No Value"
  end

  return "Alloc Id: "..value
end

-- Dissect: Alloc Id
eurex_derivatives_eti_t7_v13_0.alloc_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.alloc_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.alloc_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.alloc_id, range, value, display)

  return offset + length, value
end

-- Tes Execution Broadcast
eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast = {}

-- Read runtime size of: Tes Execution Broadcast
eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Execution Broadcast
eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Execution Broadcast
eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_execution_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_id = eurex_derivatives_eti_t7_v13_0.alloc_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Tes Execution Broadcast
eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_execution_broadcast = eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_execution_broadcast then
    local range = buffer(offset, size_of_tes_execution_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_execution_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.fields(buffer, offset, packet, parent, size_of_tes_execution_broadcast)

  return offset + size_of_tes_execution_broadcast
end

-- Delete Reason
eurex_derivatives_eti_t7_v13_0.delete_reason = {}

-- Size: Delete Reason
eurex_derivatives_eti_t7_v13_0.delete_reason.size = 1

-- Display: Delete Reason
eurex_derivatives_eti_t7_v13_0.delete_reason.display = function(value)
  if value == 100 then
    return "Delete Reason: Nospecialreason (100)"
  end
  if value == 101 then
    return "Delete Reason: Tas Change (101)"
  end
  if value == 102 then
    return "Delete Reason: Intraday Expiration (102)"
  end
  if value == 103 then
    return "Delete Reason: Risk Event (103)"
  end
  if value == 104 then
    return "Delete Reason: Stop Trading (104)"
  end
  if value == 105 then
    return "Delete Reason: Instrument Deletion (105)"
  end
  if value == 106 then
    return "Delete Reason: Instrument Suspension (106)"
  end
  if value == 107 then
    return "Delete Reason: Pre Trade Risk Event (107)"
  end
  if value == 108 then
    return "Delete Reason: Amendment Reset (108)"
  end
  if value == 109 then
    return "Delete Reason: Amendment User Cancelled (109)"
  end
  if value == 0xFF then
    return "Delete Reason: No Value"
  end

  return "Delete Reason: Unknown("..value..")"
end

-- Dissect: Delete Reason
eurex_derivatives_eti_t7_v13_0.delete_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.delete_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.delete_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_reason, range, value, display)

  return offset + length, value
end

-- Tes Delete Broadcast
eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast = {}

-- Read runtime size of: Tes Delete Broadcast
eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Delete Broadcast
eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Delete Broadcast
eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_delete_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Delete Reason: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, delete_reason = eurex_derivatives_eti_t7_v13_0.delete_reason.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Tes Delete Broadcast
eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_delete_broadcast = eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_delete_broadcast then
    local range = buffer(offset, size_of_tes_delete_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_delete_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.fields(buffer, offset, packet, parent, size_of_tes_delete_broadcast)

  return offset + size_of_tes_delete_broadcast
end

-- Alignment Padding
eurex_derivatives_eti_t7_v13_0.alignment_padding = {}

-- Display: Alignment Padding
eurex_derivatives_eti_t7_v13_0.alignment_padding.display = function(value)
  return "Alignment Padding: "..value
end

-- Dissect runtime sized field: Alignment Padding
eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect = function(buffer, offset, packet, parent, size)
  local range = buffer(offset, size)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.alignment_padding.display(value, packet, parent, size)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.alignment_padding, range, value, display)

  return offset + size, value
end

-- Var Text
eurex_derivatives_eti_t7_v13_0.var_text = {}

-- Display: Var Text
eurex_derivatives_eti_t7_v13_0.var_text.display = function(value)
  return "Var Text: "..value
end

-- Dissect runtime sized field: Var Text
eurex_derivatives_eti_t7_v13_0.var_text.dissect = function(buffer, offset, packet, parent, size)
  local range = buffer(offset, size)
  local value = range:string()
  local display = eurex_derivatives_eti_t7_v13_0.var_text.display(value, packet, parent, size)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.var_text, range, value, display)

  return offset + size, value
end

-- Leg Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price = {}

-- Size: Leg Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.size = 8

-- Display: Leg Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Leg Clearing Trade Price: No Value"
  end

  return "Leg Clearing Trade Price: "..value
end

-- Translate: Leg Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Leg Clearing Trade Price
eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_clearing_trade_price, range, value, display)

  return offset + length, value
end

-- Trd Clearing Price Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp = {}

-- Size: Trd Clearing Price Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_security_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.size

-- Display: Trd Clearing Price Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Trd Clearing Price Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.fields = function(buffer, offset, packet, parent, trd_clearing_price_leg_grp_comp_index)
  local index = offset

  -- Implicit Trd Clearing Price Leg Grp Comp Index
  if trd_clearing_price_leg_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_clearing_price_leg_grp_comp_index, trd_clearing_price_leg_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, leg_security_id = eurex_derivatives_eti_t7_v13_0.leg_security_id.dissect(buffer, index, packet, parent)

  -- Leg Clearing Trade Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_clearing_trade_price = eurex_derivatives_eti_t7_v13_0.leg_clearing_trade_price.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Trd Clearing Price Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.dissect = function(buffer, offset, packet, parent, trd_clearing_price_leg_grp_comp_index)
  if show.trd_clearing_price_leg_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_clearing_price_leg_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.fields(buffer, offset, packet, parent, trd_clearing_price_leg_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.fields(buffer, offset, packet, parent, trd_clearing_price_leg_grp_comp_index)
  end
end

-- No Leg Clearing Prices
eurex_derivatives_eti_t7_v13_0.no_leg_clearing_prices = {}

-- Size: No Leg Clearing Prices
eurex_derivatives_eti_t7_v13_0.no_leg_clearing_prices.size = 1

-- Display: No Leg Clearing Prices
eurex_derivatives_eti_t7_v13_0.no_leg_clearing_prices.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Leg Clearing Prices: No Value"
  end

  return "No Leg Clearing Prices: "..value
end

-- Dissect: No Leg Clearing Prices
eurex_derivatives_eti_t7_v13_0.no_leg_clearing_prices.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_leg_clearing_prices.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_leg_clearing_prices.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_leg_clearing_prices, range, value, display)

  return offset + length, value
end

-- Var Text Len
eurex_derivatives_eti_t7_v13_0.var_text_len = {}

-- Size: Var Text Len
eurex_derivatives_eti_t7_v13_0.var_text_len.size = 2

-- Display: Var Text Len
eurex_derivatives_eti_t7_v13_0.var_text_len.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Var Text Len: No Value"
  end

  return "Var Text Len: "..value
end

-- Dissect: Var Text Len
eurex_derivatives_eti_t7_v13_0.var_text_len.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.var_text_len.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.var_text_len.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.var_text_len, range, value, display)

  return offset + length, value
end

-- Auto Approval Rule Id
eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id = {}

-- Size: Auto Approval Rule Id
eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id.size = 4

-- Display: Auto Approval Rule Id
eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Auto Approval Rule Id: No Value"
  end

  return "Auto Approval Rule Id: "..value
end

-- Dissect: Auto Approval Rule Id
eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.auto_approval_rule_id, range, value, display)

  return offset + length, value
end

-- Tes Broadcast
eurex_derivatives_eti_t7_v13_0.tes_broadcast = {}

-- Read runtime size of: Tes Broadcast
eurex_derivatives_eti_t7_v13_0.tes_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Broadcast
eurex_derivatives_eti_t7_v13_0.tes_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Broadcast
eurex_derivatives_eti_t7_v13_0.tes_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Related Trade Quantity: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_quantity = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Related Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_px = eurex_derivatives_eti_t7_v13_0.related_px.dissect(buffer, index, packet, parent)

  -- Underlying Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_qty = eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Underlying Settlement Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_settlement_date = eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.dissect(buffer, index, packet, parent)

  -- Underlying Maturity Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_maturity_date = eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.dissect(buffer, index, packet, parent)

  -- Related Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_id = eurex_derivatives_eti_t7_v13_0.related_trade_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Auto Approval Rule Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, auto_approval_rule_id = eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- No Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_events = eurex_derivatives_eti_t7_v13_0.no_events.dissect(buffer, index, packet, parent)

  -- No Instr Attrib: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instr_attrib = eurex_derivatives_eti_t7_v13_0.no_instr_attrib.dissect(buffer, index, packet, parent)

  -- No Underlying Stips: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_underlying_stips = eurex_derivatives_eti_t7_v13_0.no_underlying_stips.dissect(buffer, index, packet, parent)

  -- No Side Allocs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_side_allocs = eurex_derivatives_eti_t7_v13_0.no_side_allocs.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- No Leg Clearing Prices: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_clearing_prices = eurex_derivatives_eti_t7_v13_0.no_leg_clearing_prices.dissect(buffer, index, packet, parent)

  -- Party Id Settlement Location: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, party_id_settlement_location = eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.dissect(buffer, index, packet, parent)

  -- Hedge Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, hedge_type = eurex_derivatives_eti_t7_v13_0.hedge_type.dissect(buffer, index, packet, parent)

  -- Swap Clearer: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, swap_clearer = eurex_derivatives_eti_t7_v13_0.swap_clearer.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Trade Report Text: 20 Byte Ascii String Nullable
  index, trade_report_text = eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Root Party Executing Firm: 5 Byte Ascii String Nullable
  index, root_party_executing_firm = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Executing Trader: 6 Byte Ascii String Nullable
  index, root_party_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Underlying Security Id: 12 Byte Ascii String Nullable
  index, underlying_security_id = eurex_derivatives_eti_t7_v13_0.underlying_security_id.dissect(buffer, index, packet, parent)

  -- Underlying Security Desc: 30 Byte Ascii String Nullable
  index, underlying_security_desc = eurex_derivatives_eti_t7_v13_0.underlying_security_desc.dissect(buffer, index, packet, parent)

  -- Underlying Currency: 3 Byte Ascii String Nullable
  index, underlying_currency = eurex_derivatives_eti_t7_v13_0.underlying_currency.dissect(buffer, index, packet, parent)

  -- Underlying Issuer: 30 Byte Ascii String Nullable
  index, underlying_issuer = eurex_derivatives_eti_t7_v13_0.underlying_issuer.dissect(buffer, index, packet, parent)

  -- Repeating: Side Alloc Grp Bc Comp
  for side_alloc_grp_bc_comp_index = 1, no_side_allocs do
    index, side_alloc_grp_bc_comp = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_bc_comp.dissect(buffer, index, packet, parent, side_alloc_grp_bc_comp_index)
  end

  -- Repeating: Trd Instrmnt Leg Grp Comp
  for trd_instrmnt_leg_grp_comp_index = 1, no_legs do
    index, trd_instrmnt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.dissect(buffer, index, packet, parent, trd_instrmnt_leg_grp_comp_index)
  end

  -- Repeating: Instrument Event Grp Comp
  for instrument_event_grp_comp_index = 1, no_events do
    index, instrument_event_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.dissect(buffer, index, packet, parent, instrument_event_grp_comp_index)
  end

  -- Repeating: Trd Clearing Price Leg Grp Comp
  for trd_clearing_price_leg_grp_comp_index = 1, no_leg_clearing_prices do
    index, trd_clearing_price_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.trd_clearing_price_leg_grp_comp.dissect(buffer, index, packet, parent, trd_clearing_price_leg_grp_comp_index)
  end

  -- Repeating: Instrument Attribute Grp Comp
  for instrument_attribute_grp_comp_index = 1, no_instr_attrib do
    index, instrument_attribute_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.dissect(buffer, index, packet, parent, instrument_attribute_grp_comp_index)
  end

  -- Repeating: Underlying Stip Grp Comp
  for underlying_stip_grp_comp_index = 1, no_underlying_stips do
    index, underlying_stip_grp_comp = eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.dissect(buffer, index, packet, parent, underlying_stip_grp_comp_index)
  end

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Tes Broadcast
eurex_derivatives_eti_t7_v13_0.tes_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_broadcast = eurex_derivatives_eti_t7_v13_0.tes_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_broadcast then
    local range = buffer(offset, size_of_tes_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_broadcast.fields(buffer, offset, packet, parent, size_of_tes_broadcast)

  return offset + size_of_tes_broadcast
end

-- Party Entering Trader
eurex_derivatives_eti_t7_v13_0.party_entering_trader = {}

-- Size: Party Entering Trader
eurex_derivatives_eti_t7_v13_0.party_entering_trader.size = 6

-- Display: Party Entering Trader
eurex_derivatives_eti_t7_v13_0.party_entering_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Entering Trader: No Value"
  end

  return "Party Entering Trader: "..value
end

-- Dissect: Party Entering Trader
eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_entering_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_entering_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_entering_trader, range, value, display)

  return offset + length, value
end

-- Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.party_id_entering_firm = {}

-- Size: Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.size = 1

-- Display: Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.display = function(value)
  if value == 1 then
    return "Party Id Entering Firm: Participant (1)"
  end
  if value == 2 then
    return "Party Id Entering Firm: Market Supervision (2)"
  end
  if value == 0xFF then
    return "Party Id Entering Firm: No Value"
  end

  return "Party Id Entering Firm: Unknown("..value..")"
end

-- Dissect: Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_entering_firm, range, value, display)

  return offset + length, value
end

-- Tes Approve Broadcast
eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast = {}

-- Read runtime size of: Tes Approve Broadcast
eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Tes Approve Broadcast
eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Tes Approve Broadcast
eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.fields = function(buffer, offset, packet, parent, size_of_tes_approve_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Related Trade Quantity: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_quantity = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Related Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_px = eurex_derivatives_eti_t7_v13_0.related_px.dissect(buffer, index, packet, parent)

  -- Underlying Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_qty = eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_id = eurex_derivatives_eti_t7_v13_0.alloc_id.dissect(buffer, index, packet, parent)

  -- Underlying Settlement Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_settlement_date = eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.dissect(buffer, index, packet, parent)

  -- Underlying Maturity Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_maturity_date = eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.dissect(buffer, index, packet, parent)

  -- Related Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_id = eurex_derivatives_eti_t7_v13_0.related_trade_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Tes Enrichment Rule Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Auto Approval Rule Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, auto_approval_rule_id = eurex_derivatives_eti_t7_v13_0.auto_approval_rule_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Party Id Settlement Location: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, party_id_settlement_location = eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.dissect(buffer, index, packet, parent)

  -- Trade Alloc Status: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_alloc_status = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect(buffer, index, packet, parent)

  -- Hedge Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, hedge_type = eurex_derivatives_eti_t7_v13_0.hedge_type.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- No Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_events = eurex_derivatives_eti_t7_v13_0.no_events.dissect(buffer, index, packet, parent)

  -- No Instr Attrib: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instr_attrib = eurex_derivatives_eti_t7_v13_0.no_instr_attrib.dissect(buffer, index, packet, parent)

  -- No Underlying Stips: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_underlying_stips = eurex_derivatives_eti_t7_v13_0.no_underlying_stips.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Root Party Executing Firm: 5 Byte Ascii String Nullable
  index, root_party_executing_firm = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Executing Trader: 6 Byte Ascii String Nullable
  index, root_party_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Underlying Security Id: 12 Byte Ascii String Nullable
  index, underlying_security_id = eurex_derivatives_eti_t7_v13_0.underlying_security_id.dissect(buffer, index, packet, parent)

  -- Underlying Security Desc: 30 Byte Ascii String Nullable
  index, underlying_security_desc = eurex_derivatives_eti_t7_v13_0.underlying_security_desc.dissect(buffer, index, packet, parent)

  -- Underlying Currency: 3 Byte Ascii String Nullable
  index, underlying_currency = eurex_derivatives_eti_t7_v13_0.underlying_currency.dissect(buffer, index, packet, parent)

  -- Underlying Issuer: 30 Byte Ascii String Nullable
  index, underlying_issuer = eurex_derivatives_eti_t7_v13_0.underlying_issuer.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Repeating: Trd Instrmnt Leg Grp Comp
  for trd_instrmnt_leg_grp_comp_index = 1, no_legs do
    index, trd_instrmnt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.dissect(buffer, index, packet, parent, trd_instrmnt_leg_grp_comp_index)
  end

  -- Repeating: Instrument Event Grp Comp
  for instrument_event_grp_comp_index = 1, no_events do
    index, instrument_event_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.dissect(buffer, index, packet, parent, instrument_event_grp_comp_index)
  end

  -- Repeating: Instrument Attribute Grp Comp
  for instrument_attribute_grp_comp_index = 1, no_instr_attrib do
    index, instrument_attribute_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.dissect(buffer, index, packet, parent, instrument_attribute_grp_comp_index)
  end

  -- Repeating: Underlying Stip Grp Comp
  for underlying_stip_grp_comp_index = 1, no_underlying_stips do
    index, underlying_stip_grp_comp = eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.dissect(buffer, index, packet, parent, underlying_stip_grp_comp_index)
  end

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Tes Approve Broadcast
eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_tes_approve_broadcast = eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.tes_approve_broadcast then
    local range = buffer(offset, size_of_tes_approve_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.tes_approve_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.fields(buffer, offset, packet, parent, size_of_tes_approve_broadcast)

  return offset + size_of_tes_approve_broadcast
end

-- Subscribe Response
eurex_derivatives_eti_t7_v13_0.subscribe_response = {}

-- Read runtime size of: Subscribe Response
eurex_derivatives_eti_t7_v13_0.subscribe_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Subscribe Response
eurex_derivatives_eti_t7_v13_0.subscribe_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Subscribe Response
eurex_derivatives_eti_t7_v13_0.subscribe_response.fields = function(buffer, offset, packet, parent, size_of_subscribe_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Appl Sub Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, appl_sub_id = eurex_derivatives_eti_t7_v13_0.appl_sub_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Subscribe Response
eurex_derivatives_eti_t7_v13_0.subscribe_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_subscribe_response = eurex_derivatives_eti_t7_v13_0.subscribe_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.subscribe_response then
    local range = buffer(offset, size_of_subscribe_response)
    local display = eurex_derivatives_eti_t7_v13_0.subscribe_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.subscribe_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.subscribe_response.fields(buffer, offset, packet, parent, size_of_subscribe_response)

  return offset + size_of_subscribe_response
end

-- Ref Appl Id
eurex_derivatives_eti_t7_v13_0.ref_appl_id = {}

-- Size: Ref Appl Id
eurex_derivatives_eti_t7_v13_0.ref_appl_id.size = 1

-- Display: Ref Appl Id
eurex_derivatives_eti_t7_v13_0.ref_appl_id.display = function(value)
  if value == 1 then
    return "Ref Appl Id: Trade (1)"
  end
  if value == 2 then
    return "Ref Appl Id: News (2)"
  end
  if value == 3 then
    return "Ref Appl Id: Serviceavailability (3)"
  end
  if value == 4 then
    return "Ref Appl Id: Sessiondata (4)"
  end
  if value == 5 then
    return "Ref Appl Id: Listenerdata (5)"
  end
  if value == 6 then
    return "Ref Appl Id: Risk Control (6)"
  end
  if value == 7 then
    return "Ref Appl Id: Tes Maintenance (7)"
  end
  if value == 8 then
    return "Ref Appl Id: Tes Trade (8)"
  end
  if value == 9 then
    return "Ref Appl Id: Srqs Maintenance (9)"
  end
  if value == 10 then
    return "Ref Appl Id: Service Availability Market (10)"
  end
  if value == 0xFF then
    return "Ref Appl Id: No Value"
  end

  return "Ref Appl Id: Unknown("..value..")"
end

-- Dissect: Ref Appl Id
eurex_derivatives_eti_t7_v13_0.ref_appl_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.ref_appl_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.ref_appl_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_id, range, value, display)

  return offset + length, value
end

-- Subscription Scope
eurex_derivatives_eti_t7_v13_0.subscription_scope = {}

-- Size: Subscription Scope
eurex_derivatives_eti_t7_v13_0.subscription_scope.size = 4

-- Display: Subscription Scope
eurex_derivatives_eti_t7_v13_0.subscription_scope.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Subscription Scope: No Value"
  end

  return "Subscription Scope: "..value
end

-- Dissect: Subscription Scope
eurex_derivatives_eti_t7_v13_0.subscription_scope.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.subscription_scope.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.subscription_scope.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.subscription_scope, range, value, display)

  return offset + length, value
end

-- Subscribe Request
eurex_derivatives_eti_t7_v13_0.subscribe_request = {}

-- Read runtime size of: Subscribe Request
eurex_derivatives_eti_t7_v13_0.subscribe_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Subscribe Request
eurex_derivatives_eti_t7_v13_0.subscribe_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Subscribe Request
eurex_derivatives_eti_t7_v13_0.subscribe_request.fields = function(buffer, offset, packet, parent, size_of_subscribe_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Subscription Scope: 4 Byte Unsigned Fixed Width Integer Nullable
  index, subscription_scope = eurex_derivatives_eti_t7_v13_0.subscription_scope.dissect(buffer, index, packet, parent)

  -- Ref Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, ref_appl_id = eurex_derivatives_eti_t7_v13_0.ref_appl_id.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Subscribe Request
eurex_derivatives_eti_t7_v13_0.subscribe_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_subscribe_request = eurex_derivatives_eti_t7_v13_0.subscribe_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.subscribe_request then
    local range = buffer(offset, size_of_subscribe_request)
    local display = eurex_derivatives_eti_t7_v13_0.subscribe_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.subscribe_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.subscribe_request.fields(buffer, offset, packet, parent, size_of_subscribe_request)

  return offset + size_of_subscribe_request
end

-- Status Broadcast
eurex_derivatives_eti_t7_v13_0.status_broadcast = {}

-- Read runtime size of: Status Broadcast
eurex_derivatives_eti_t7_v13_0.status_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Status Broadcast
eurex_derivatives_eti_t7_v13_0.status_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Status Broadcast
eurex_derivatives_eti_t7_v13_0.status_broadcast.fields = function(buffer, offset, packet, parent, size_of_status_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Trad Ses Event: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, trad_ses_event = eurex_derivatives_eti_t7_v13_0.trad_ses_event.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Status Broadcast
eurex_derivatives_eti_t7_v13_0.status_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_status_broadcast = eurex_derivatives_eti_t7_v13_0.status_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.status_broadcast then
    local range = buffer(offset, size_of_status_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.status_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.status_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.status_broadcast.fields(buffer, offset, packet, parent, size_of_status_broadcast)

  return offset + size_of_status_broadcast
end

-- Risk Control Rtm Service Status
eurex_derivatives_eti_t7_v13_0.risk_control_rtm_service_status = {}

-- Size: Risk Control Rtm Service Status
eurex_derivatives_eti_t7_v13_0.risk_control_rtm_service_status.size = 1

-- Display: Risk Control Rtm Service Status
eurex_derivatives_eti_t7_v13_0.risk_control_rtm_service_status.display = function(value)
  if value == 0 then
    return "Risk Control Rtm Service Status: Unavailable (0)"
  end
  if value == 1 then
    return "Risk Control Rtm Service Status: Available (1)"
  end
  if value == 0xFF then
    return "Risk Control Rtm Service Status: No Value"
  end

  return "Risk Control Rtm Service Status: Unknown("..value..")"
end

-- Dissect: Risk Control Rtm Service Status
eurex_derivatives_eti_t7_v13_0.risk_control_rtm_service_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_control_rtm_service_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_control_rtm_service_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_control_rtm_service_status, range, value, display)

  return offset + length, value
end

-- News Rtm Service Status
eurex_derivatives_eti_t7_v13_0.news_rtm_service_status = {}

-- Size: News Rtm Service Status
eurex_derivatives_eti_t7_v13_0.news_rtm_service_status.size = 1

-- Display: News Rtm Service Status
eurex_derivatives_eti_t7_v13_0.news_rtm_service_status.display = function(value)
  if value == 0 then
    return "News Rtm Service Status: Unavailable (0)"
  end
  if value == 1 then
    return "News Rtm Service Status: Available (1)"
  end
  if value == 0xFF then
    return "News Rtm Service Status: No Value"
  end

  return "News Rtm Service Status: Unknown("..value..")"
end

-- Dissect: News Rtm Service Status
eurex_derivatives_eti_t7_v13_0.news_rtm_service_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.news_rtm_service_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.news_rtm_service_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.news_rtm_service_status, range, value, display)

  return offset + length, value
end

-- Selective Request For Quote Rtm Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_rtm_service_status = {}

-- Size: Selective Request For Quote Rtm Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_rtm_service_status.size = 1

-- Display: Selective Request For Quote Rtm Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_rtm_service_status.display = function(value)
  if value == 0 then
    return "Selective Request For Quote Rtm Service Status: Unavailable (0)"
  end
  if value == 1 then
    return "Selective Request For Quote Rtm Service Status: Available (1)"
  end
  if value == 0xFF then
    return "Selective Request For Quote Rtm Service Status: No Value"
  end

  return "Selective Request For Quote Rtm Service Status: Unknown("..value..")"
end

-- Dissect: Selective Request For Quote Rtm Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_rtm_service_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_rtm_service_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_rtm_service_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.selective_request_for_quote_rtm_service_status, range, value, display)

  return offset + length, value
end

-- Selective Request For Quote Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_status = {}

-- Size: Selective Request For Quote Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_status.size = 1

-- Display: Selective Request For Quote Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_status.display = function(value)
  if value == 0 then
    return "Selective Request For Quote Service Status: Unavailable (0)"
  end
  if value == 1 then
    return "Selective Request For Quote Service Status: Available (1)"
  end
  if value == 0xFF then
    return "Selective Request For Quote Service Status: No Value"
  end

  return "Selective Request For Quote Service Status: Unknown("..value..")"
end

-- Dissect: Selective Request For Quote Service Status
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.selective_request_for_quote_service_status, range, value, display)

  return offset + length, value
end

-- Selective Request For Quote Service Trade Date
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_trade_date = {}

-- Size: Selective Request For Quote Service Trade Date
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_trade_date.size = 4

-- Display: Selective Request For Quote Service Trade Date
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_trade_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Selective Request For Quote Service Trade Date: No Value"
  end

  return "Selective Request For Quote Service Trade Date: "..value
end

-- Dissect: Selective Request For Quote Service Trade Date
eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_trade_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_trade_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_trade_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.selective_request_for_quote_service_trade_date, range, value, display)

  return offset + length, value
end

-- Nrbc Header Comp
eurex_derivatives_eti_t7_v13_0.nrbc_header_comp = {}

-- Size: Nrbc Header Comp
eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.size =
  eurex_derivatives_eti_t7_v13_0.sending_time.size + 
  eurex_derivatives_eti_t7_v13_0.appl_sub_id.size + 
  eurex_derivatives_eti_t7_v13_0.appl_id.size + 
  eurex_derivatives_eti_t7_v13_0.last_fragment.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Nrbc Header Comp
eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Nrbc Header Comp
eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Sending Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, sending_time = eurex_derivatives_eti_t7_v13_0.sending_time.dissect(buffer, index, packet, parent)

  -- Appl Sub Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, appl_sub_id = eurex_derivatives_eti_t7_v13_0.appl_sub_id.dissect(buffer, index, packet, parent)

  -- Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, appl_id = eurex_derivatives_eti_t7_v13_0.appl_id.dissect(buffer, index, packet, parent)

  -- Last Fragment: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, last_fragment = eurex_derivatives_eti_t7_v13_0.last_fragment.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Nrbc Header Comp
eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.dissect = function(buffer, offset, packet, parent)
  if show.nrbc_header_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.nrbc_header_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.fields(buffer, offset, packet, parent)
  end
end

-- Service Availability Market Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast = {}

-- Read runtime size of: Service Availability Market Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Service Availability Market Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Service Availability Market Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.fields = function(buffer, offset, packet, parent, size_of_service_availability_market_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nrbc Header Comp: Struct of 5 fields
  index, nrbc_header_comp = eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.dissect(buffer, index, packet, parent)

  -- Selective Request For Quote Service Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, selective_request_for_quote_service_trade_date = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_trade_date.dissect(buffer, index, packet, parent)

  -- Selective Request For Quote Service Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, selective_request_for_quote_service_status = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_service_status.dissect(buffer, index, packet, parent)

  -- Selective Request For Quote Rtm Service Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, selective_request_for_quote_rtm_service_status = eurex_derivatives_eti_t7_v13_0.selective_request_for_quote_rtm_service_status.dissect(buffer, index, packet, parent)

  -- News Rtm Service Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, news_rtm_service_status = eurex_derivatives_eti_t7_v13_0.news_rtm_service_status.dissect(buffer, index, packet, parent)

  -- Risk Control Rtm Service Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, risk_control_rtm_service_status = eurex_derivatives_eti_t7_v13_0.risk_control_rtm_service_status.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Service Availability Market Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_service_availability_market_broadcast = eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.service_availability_market_broadcast then
    local range = buffer(offset, size_of_service_availability_market_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.service_availability_market_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.fields(buffer, offset, packet, parent, size_of_service_availability_market_broadcast)

  return offset + size_of_service_availability_market_broadcast
end

-- T 7 Entry Service Rtm Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_status = {}

-- Size: T 7 Entry Service Rtm Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_status.size = 1

-- Display: T 7 Entry Service Rtm Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_status.display = function(value)
  if value == 0 then
    return "T 7 Entry Service Rtm Status: Unavailable (0)"
  end
  if value == 1 then
    return "T 7 Entry Service Rtm Status: Available (1)"
  end
  if value == 0xFF then
    return "T 7 Entry Service Rtm Status: No Value"
  end

  return "T 7 Entry Service Rtm Status: Unknown("..value..")"
end

-- Dissect: T 7 Entry Service Rtm Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_rtm_status, range, value, display)

  return offset + length, value
end

-- T 7 Entry Service Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_status = {}

-- Size: T 7 Entry Service Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_status.size = 1

-- Display: T 7 Entry Service Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_status.display = function(value)
  if value == 0 then
    return "T 7 Entry Service Status: Unavailable (0)"
  end
  if value == 1 then
    return "T 7 Entry Service Status: Available (1)"
  end
  if value == 0xFF then
    return "T 7 Entry Service Status: No Value"
  end

  return "T 7 Entry Service Status: Unknown("..value..")"
end

-- Dissect: T 7 Entry Service Status
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_status, range, value, display)

  return offset + length, value
end

-- Appl Seq Status
eurex_derivatives_eti_t7_v13_0.appl_seq_status = {}

-- Size: Appl Seq Status
eurex_derivatives_eti_t7_v13_0.appl_seq_status.size = 1

-- Display: Appl Seq Status
eurex_derivatives_eti_t7_v13_0.appl_seq_status.display = function(value)
  if value == 0 then
    return "Appl Seq Status: Unavailable (0)"
  end
  if value == 1 then
    return "Appl Seq Status: Available (1)"
  end
  if value == 0xFF then
    return "Appl Seq Status: No Value"
  end

  return "Appl Seq Status: Unknown("..value..")"
end

-- Dissect: Appl Seq Status
eurex_derivatives_eti_t7_v13_0.appl_seq_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_seq_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_seq_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_status, range, value, display)

  return offset + length, value
end

-- Trade Manager Status
eurex_derivatives_eti_t7_v13_0.trade_manager_status = {}

-- Size: Trade Manager Status
eurex_derivatives_eti_t7_v13_0.trade_manager_status.size = 1

-- Display: Trade Manager Status
eurex_derivatives_eti_t7_v13_0.trade_manager_status.display = function(value)
  if value == 0 then
    return "Trade Manager Status: Unavailable (0)"
  end
  if value == 1 then
    return "Trade Manager Status: Available (1)"
  end
  if value == 0xFF then
    return "Trade Manager Status: No Value"
  end

  return "Trade Manager Status: Unknown("..value..")"
end

-- Dissect: Trade Manager Status
eurex_derivatives_eti_t7_v13_0.trade_manager_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_manager_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_manager_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_manager_status, range, value, display)

  return offset + length, value
end

-- Matching Engine Status
eurex_derivatives_eti_t7_v13_0.matching_engine_status = {}

-- Size: Matching Engine Status
eurex_derivatives_eti_t7_v13_0.matching_engine_status.size = 1

-- Display: Matching Engine Status
eurex_derivatives_eti_t7_v13_0.matching_engine_status.display = function(value)
  if value == 0 then
    return "Matching Engine Status: Unavailable (0)"
  end
  if value == 1 then
    return "Matching Engine Status: Available (1)"
  end
  if value == 0xFF then
    return "Matching Engine Status: No Value"
  end

  return "Matching Engine Status: Unknown("..value..")"
end

-- Dissect: Matching Engine Status
eurex_derivatives_eti_t7_v13_0.matching_engine_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.matching_engine_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.matching_engine_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.matching_engine_status, range, value, display)

  return offset + length, value
end

-- T 7 Entry Service Rtm Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_trade_date = {}

-- Size: T 7 Entry Service Rtm Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_trade_date.size = 4

-- Display: T 7 Entry Service Rtm Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_trade_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "T 7 Entry Service Rtm Trade Date: No Value"
  end

  return "T 7 Entry Service Rtm Trade Date: "..value
end

-- Dissect: T 7 Entry Service Rtm Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_trade_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_trade_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_trade_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_rtm_trade_date, range, value, display)

  return offset + length, value
end

-- T 7 Entry Service Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_trade_date = {}

-- Size: T 7 Entry Service Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_trade_date.size = 4

-- Display: T 7 Entry Service Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_trade_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "T 7 Entry Service Trade Date: No Value"
  end

  return "T 7 Entry Service Trade Date: "..value
end

-- Dissect: T 7 Entry Service Trade Date
eurex_derivatives_eti_t7_v13_0.t_7_entry_service_trade_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_trade_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_trade_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.t_7_entry_service_trade_date, range, value, display)

  return offset + length, value
end

-- Appl Seq Trade Date
eurex_derivatives_eti_t7_v13_0.appl_seq_trade_date = {}

-- Size: Appl Seq Trade Date
eurex_derivatives_eti_t7_v13_0.appl_seq_trade_date.size = 4

-- Display: Appl Seq Trade Date
eurex_derivatives_eti_t7_v13_0.appl_seq_trade_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Appl Seq Trade Date: No Value"
  end

  return "Appl Seq Trade Date: "..value
end

-- Dissect: Appl Seq Trade Date
eurex_derivatives_eti_t7_v13_0.appl_seq_trade_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_seq_trade_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_seq_trade_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_trade_date, range, value, display)

  return offset + length, value
end

-- Trade Manager Trade Date
eurex_derivatives_eti_t7_v13_0.trade_manager_trade_date = {}

-- Size: Trade Manager Trade Date
eurex_derivatives_eti_t7_v13_0.trade_manager_trade_date.size = 4

-- Display: Trade Manager Trade Date
eurex_derivatives_eti_t7_v13_0.trade_manager_trade_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Trade Manager Trade Date: No Value"
  end

  return "Trade Manager Trade Date: "..value
end

-- Dissect: Trade Manager Trade Date
eurex_derivatives_eti_t7_v13_0.trade_manager_trade_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_manager_trade_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_manager_trade_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_manager_trade_date, range, value, display)

  return offset + length, value
end

-- Matching Engine Trade Date
eurex_derivatives_eti_t7_v13_0.matching_engine_trade_date = {}

-- Size: Matching Engine Trade Date
eurex_derivatives_eti_t7_v13_0.matching_engine_trade_date.size = 4

-- Display: Matching Engine Trade Date
eurex_derivatives_eti_t7_v13_0.matching_engine_trade_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Matching Engine Trade Date: No Value"
  end

  return "Matching Engine Trade Date: "..value
end

-- Dissect: Matching Engine Trade Date
eurex_derivatives_eti_t7_v13_0.matching_engine_trade_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.matching_engine_trade_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.matching_engine_trade_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.matching_engine_trade_date, range, value, display)

  return offset + length, value
end

-- Service Availability Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_broadcast = {}

-- Read runtime size of: Service Availability Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Service Availability Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Service Availability Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.fields = function(buffer, offset, packet, parent, size_of_service_availability_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nrbc Header Comp: Struct of 5 fields
  index, nrbc_header_comp = eurex_derivatives_eti_t7_v13_0.nrbc_header_comp.dissect(buffer, index, packet, parent)

  -- Matching Engine Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, matching_engine_trade_date = eurex_derivatives_eti_t7_v13_0.matching_engine_trade_date.dissect(buffer, index, packet, parent)

  -- Trade Manager Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_manager_trade_date = eurex_derivatives_eti_t7_v13_0.trade_manager_trade_date.dissect(buffer, index, packet, parent)

  -- Appl Seq Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, appl_seq_trade_date = eurex_derivatives_eti_t7_v13_0.appl_seq_trade_date.dissect(buffer, index, packet, parent)

  -- T 7 Entry Service Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, t_7_entry_service_trade_date = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_trade_date.dissect(buffer, index, packet, parent)

  -- T 7 Entry Service Rtm Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, t_7_entry_service_rtm_trade_date = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_trade_date.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Matching Engine Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, matching_engine_status = eurex_derivatives_eti_t7_v13_0.matching_engine_status.dissect(buffer, index, packet, parent)

  -- Trade Manager Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, trade_manager_status = eurex_derivatives_eti_t7_v13_0.trade_manager_status.dissect(buffer, index, packet, parent)

  -- Appl Seq Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_status = eurex_derivatives_eti_t7_v13_0.appl_seq_status.dissect(buffer, index, packet, parent)

  -- T 7 Entry Service Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, t_7_entry_service_status = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_status.dissect(buffer, index, packet, parent)

  -- T 7 Entry Service Rtm Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, t_7_entry_service_rtm_status = eurex_derivatives_eti_t7_v13_0.t_7_entry_service_rtm_status.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Service Availability Broadcast
eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_service_availability_broadcast = eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.service_availability_broadcast then
    local range = buffer(offset, size_of_service_availability_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.service_availability_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.fields(buffer, offset, packet, parent, size_of_service_availability_broadcast)

  return offset + size_of_service_availability_broadcast
end

-- Party Detail Status Information
eurex_derivatives_eti_t7_v13_0.party_detail_status_information = {}

-- Size: Party Detail Status Information
eurex_derivatives_eti_t7_v13_0.party_detail_status_information.size = 1

-- Display: Party Detail Status Information
eurex_derivatives_eti_t7_v13_0.party_detail_status_information.display = function(value)
  if value == 1 then
    return "Party Detail Status Information: Trrthresholdtoobig (1)"
  end
  if value == 2 then
    return "Party Detail Status Information: Blockallanonymous (2)"
  end
  if value == 0xFF then
    return "Party Detail Status Information: No Value"
  end

  return "Party Detail Status Information: Unknown("..value..")"
end

-- Dissect: Party Detail Status Information
eurex_derivatives_eti_t7_v13_0.party_detail_status_information.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_status_information.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_status_information.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_status_information, range, value, display)

  return offset + length, value
end

-- Party Detail Status
eurex_derivatives_eti_t7_v13_0.party_detail_status = {}

-- Size: Party Detail Status
eurex_derivatives_eti_t7_v13_0.party_detail_status.size = 1

-- Display: Party Detail Status
eurex_derivatives_eti_t7_v13_0.party_detail_status.display = function(value)
  if value == 0 then
    return "Party Detail Status: Active (0)"
  end
  if value == 1 then
    return "Party Detail Status: Suspend (1)"
  end
  if value == 2 then
    return "Party Detail Status: Rejected (2)"
  end
  if value == 0xFF then
    return "Party Detail Status: No Value"
  end

  return "Party Detail Status: Unknown("..value..")"
end

-- Dissect: Party Detail Status
eurex_derivatives_eti_t7_v13_0.party_detail_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_status, range, value, display)

  return offset + length, value
end

-- Target Party Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_executing_trader = {}

-- Size: Target Party Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.size = 6

-- Display: Target Party Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Target Party Executing Trader: No Value"
  end

  return "Target Party Executing Trader: "..value
end

-- Dissect: Target Party Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_executing_trader, range, value, display)

  return offset + length, value
end

-- Target Party Executing Firm
eurex_derivatives_eti_t7_v13_0.target_party_executing_firm = {}

-- Size: Target Party Executing Firm
eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.size = 5

-- Display: Target Party Executing Firm
eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Target Party Executing Firm: No Value"
  end

  return "Target Party Executing Firm: "..value
end

-- Dissect: Target Party Executing Firm
eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_executing_firm, range, value, display)

  return offset + length, value
end

-- Charge Id Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction = {}

-- Size: Charge Id Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction.size = 1

-- Display: Charge Id Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Charge Id Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Charge Id Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Charge Id Disclosure Instruction: No Value"
  end

  return "Charge Id Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Charge Id Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.charge_id_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Quote Instruction
eurex_derivatives_eti_t7_v13_0.quote_instruction = {}

-- Size: Quote Instruction
eurex_derivatives_eti_t7_v13_0.quote_instruction.size = 1

-- Display: Quote Instruction
eurex_derivatives_eti_t7_v13_0.quote_instruction.display = function(value)
  if value == 0 then
    return "Quote Instruction: Do Not Quote (0)"
  end
  if value == 1 then
    return "Quote Instruction: Quote (1)"
  end
  if value == 0xFF then
    return "Quote Instruction: No Value"
  end

  return "Quote Instruction: Unknown("..value..")"
end

-- Dissect: Quote Instruction
eurex_derivatives_eti_t7_v13_0.quote_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_instruction, range, value, display)

  return offset + length, value
end

-- Party Order Origination Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction = {}

-- Size: Party Order Origination Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction.size = 1

-- Display: Party Order Origination Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Party Order Origination Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Party Order Origination Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Party Order Origination Disclosure Instruction: No Value"
  end

  return "Party Order Origination Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Party Order Origination Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_order_origination_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Free Text 5 Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction = {}

-- Size: Free Text 5 Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction.size = 1

-- Display: Free Text 5 Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Free Text 5 Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Free Text 5 Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Free Text 5 Disclosure Instruction: No Value"
  end

  return "Free Text 5 Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Free Text 5 Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_5_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Last Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction = {}

-- Size: Last Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction.size = 1

-- Display: Last Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Last Qty Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Last Qty Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Last Qty Disclosure Instruction: No Value"
  end

  return "Last Qty Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Last Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.last_qty_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Last Px Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction = {}

-- Size: Last Px Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction.size = 1

-- Display: Last Px Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Last Px Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Last Px Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Last Px Disclosure Instruction: No Value"
  end

  return "Last Px Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Last Px Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.last_px_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Leaves Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction = {}

-- Size: Leaves Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction.size = 1

-- Display: Leaves Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Leaves Qty Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Leaves Qty Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Leaves Qty Disclosure Instruction: No Value"
  end

  return "Leaves Qty Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Leaves Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leaves_qty_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Price Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction = {}

-- Size: Price Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.size = 1

-- Display: Price Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Price Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Price Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Price Disclosure Instruction: No Value"
  end

  return "Price Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Price Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.price_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Side Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction = {}

-- Size: Side Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.size = 1

-- Display: Side Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Side Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Side Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Side Disclosure Instruction: No Value"
  end

  return "Side Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Side Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Target Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader = {}

-- Size: Target Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.size = 4

-- Display: Target Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Target Party Id Executing Trader: No Value"
  end

  return "Target Party Id Executing Trader: "..value
end

-- Dissect: Target Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_id_executing_trader, range, value, display)

  return offset + length, value
end

-- Target Parties Comp
eurex_derivatives_eti_t7_v13_0.target_parties_comp = {}

-- Size: Target Parties Comp
eurex_derivatives_eti_t7_v13_0.target_parties_comp.size =
  eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.quote_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_status.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_status_information.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Target Parties Comp
eurex_derivatives_eti_t7_v13_0.target_parties_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Target Parties Comp
eurex_derivatives_eti_t7_v13_0.target_parties_comp.fields = function(buffer, offset, packet, parent, target_parties_comp_index)
  local index = offset

  -- Implicit Target Parties Comp Index
  if target_parties_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_parties_comp_index, target_parties_comp_index)
    iteration:set_generated()
  end

  -- Target Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Side Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Price Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, price_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Leaves Qty Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, leaves_qty_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.leaves_qty_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Last Px Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, last_px_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.last_px_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Last Qty Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, last_qty_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.last_qty_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Free Text 5 Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, free_text_5_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.free_text_5_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Party Order Origination Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_order_origination_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.party_order_origination_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Quote Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, quote_instruction = eurex_derivatives_eti_t7_v13_0.quote_instruction.dissect(buffer, index, packet, parent)

  -- Charge Id Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, charge_id_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.charge_id_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Target Party Executing Firm: 5 Byte Ascii String Nullable
  index, target_party_executing_firm = eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Target Party Executing Trader: 6 Byte Ascii String Nullable
  index, target_party_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Detail Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, party_detail_status = eurex_derivatives_eti_t7_v13_0.party_detail_status.dissect(buffer, index, packet, parent)

  -- Party Detail Status Information: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_detail_status_information = eurex_derivatives_eti_t7_v13_0.party_detail_status_information.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Target Parties Comp
eurex_derivatives_eti_t7_v13_0.target_parties_comp.dissect = function(buffer, offset, packet, parent, target_parties_comp_index)
  if show.target_parties_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_parties_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.target_parties_comp.fields(buffer, offset, packet, parent, target_parties_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.target_parties_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.target_parties_comp.fields(buffer, offset, packet, parent, target_parties_comp_index)
  end
end

-- Charge Id
eurex_derivatives_eti_t7_v13_0.charge_id = {}

-- Size: Charge Id
eurex_derivatives_eti_t7_v13_0.charge_id.size = 132

-- Display: Charge Id
eurex_derivatives_eti_t7_v13_0.charge_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Charge Id: No Value"
  end

  return "Charge Id: "..value
end

-- Dissect: Charge Id
eurex_derivatives_eti_t7_v13_0.charge_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.charge_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.charge_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.charge_id, range, value, display)

  return offset + length, value
end

-- Party Order Origination Trader
eurex_derivatives_eti_t7_v13_0.party_order_origination_trader = {}

-- Size: Party Order Origination Trader
eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.size = 132

-- Display: Party Order Origination Trader
eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Order Origination Trader: No Value"
  end

  return "Party Order Origination Trader: "..value
end

-- Dissect: Party Order Origination Trader
eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_order_origination_trader, range, value, display)

  return offset + length, value
end

-- Free Text 5
eurex_derivatives_eti_t7_v13_0.free_text_5 = {}

-- Size: Free Text 5
eurex_derivatives_eti_t7_v13_0.free_text_5.size = 132

-- Display: Free Text 5
eurex_derivatives_eti_t7_v13_0.free_text_5.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Free Text 5: No Value"
  end

  return "Free Text 5: "..value
end

-- Dissect: Free Text 5
eurex_derivatives_eti_t7_v13_0.free_text_5.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.free_text_5.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.free_text_5.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.free_text_5, range, value, display)

  return offset + length, value
end

-- Quote Condition
eurex_derivatives_eti_t7_v13_0.quote_condition = {}

-- Size: Quote Condition
eurex_derivatives_eti_t7_v13_0.quote_condition.size = 1

-- Display: Quote Condition
eurex_derivatives_eti_t7_v13_0.quote_condition.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Quote Condition: No Value"
  end

  if value == "A" then
    return "Quote Condition: Active (A)"
  end
  if value == "B" then
    return "Quote Condition: Closed (B)"
  end
  if value == "z" then
    return "Quote Condition: Suspended (z)"
  end
  if value == "8" then
    return "Quote Condition: Expired (8)"
  end

  return "Quote Condition: Unknown("..value..")"
end

-- Dissect: Quote Condition
eurex_derivatives_eti_t7_v13_0.quote_condition.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_condition.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.quote_condition.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_condition, range, value, display)

  return offset + length, value
end

-- Respondent Type
eurex_derivatives_eti_t7_v13_0.respondent_type = {}

-- Size: Respondent Type
eurex_derivatives_eti_t7_v13_0.respondent_type.size = 1

-- Display: Respondent Type
eurex_derivatives_eti_t7_v13_0.respondent_type.display = function(value)
  if value == 1 then
    return "Respondent Type: All Market Participants (1)"
  end
  if value == 102 then
    return "Respondent Type: Anonymous (102)"
  end
  if value == 0xFF then
    return "Respondent Type: No Value"
  end

  return "Respondent Type: Unknown("..value..")"
end

-- Dissect: Respondent Type
eurex_derivatives_eti_t7_v13_0.respondent_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.respondent_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.respondent_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.respondent_type, range, value, display)

  return offset + length, value
end

-- Quote Sub Type
eurex_derivatives_eti_t7_v13_0.quote_sub_type = {}

-- Size: Quote Sub Type
eurex_derivatives_eti_t7_v13_0.quote_sub_type.size = 1

-- Display: Quote Sub Type
eurex_derivatives_eti_t7_v13_0.quote_sub_type.display = function(value)
  if value == 1 then
    return "Quote Sub Type: Working Delta (1)"
  end
  if value == 2 then
    return "Quote Sub Type: Basis Trade (2)"
  end
  if value == 3 then
    return "Quote Sub Type: Regular (3)"
  end
  if value == 4 then
    return "Quote Sub Type: Negotiate Underlying Outside Exchange (4)"
  end
  if value == 5 then
    return "Quote Sub Type: Vola Strategy Fix (5)"
  end
  if value == 6 then
    return "Quote Sub Type: Vola Strategy Negotiate Underlying (6)"
  end
  if value == 0xFF then
    return "Quote Sub Type: No Value"
  end

  return "Quote Sub Type: Unknown("..value..")"
end

-- Dissect: Quote Sub Type
eurex_derivatives_eti_t7_v13_0.quote_sub_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_sub_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_sub_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_sub_type, range, value, display)

  return offset + length, value
end

-- Quote Type
eurex_derivatives_eti_t7_v13_0.quote_type = {}

-- Size: Quote Type
eurex_derivatives_eti_t7_v13_0.quote_type.size = 1

-- Display: Quote Type
eurex_derivatives_eti_t7_v13_0.quote_type.display = function(value)
  if value == 0 then
    return "Quote Type: Indicative (0)"
  end
  if value == 1 then
    return "Quote Type: Tradeable (1)"
  end
  if value == 100 then
    return "Quote Type: Tradeable Boc (100)"
  end
  if value == 0xFF then
    return "Quote Type: No Value"
  end

  return "Quote Type: Unknown("..value..")"
end

-- Dissect: Quote Type
eurex_derivatives_eti_t7_v13_0.quote_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_type, range, value, display)

  return offset + length, value
end

-- Show Last Deal On Closure
eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure = {}

-- Size: Show Last Deal On Closure
eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.size = 1

-- Display: Show Last Deal On Closure
eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.display = function(value)
  if value == 0 then
    return "Show Last Deal On Closure: No (0)"
  end
  if value == 1 then
    return "Show Last Deal On Closure: Yes (1)"
  end
  if value == 0xFF then
    return "Show Last Deal On Closure: No Value"
  end

  return "Show Last Deal On Closure: Unknown("..value..")"
end

-- Dissect: Show Last Deal On Closure
eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.show_last_deal_on_closure, range, value, display)

  return offset + length, value
end

-- Number Of Resp Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction = {}

-- Size: Number Of Resp Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.size = 1

-- Display: Number Of Resp Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Number Of Resp Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Number Of Resp Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Number Of Resp Disclosure Instruction: No Value"
  end

  return "Number Of Resp Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Number Of Resp Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.number_of_resp_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- No Target Party I Ds
eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds = {}

-- Size: No Target Party I Ds
eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.size = 1

-- Display: No Target Party I Ds
eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Target Party I Ds: No Value"
  end

  return "No Target Party I Ds: "..value
end

-- Dissect: No Target Party I Ds
eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_target_party_i_ds, range, value, display)

  return offset + length, value
end

-- Order Qty
eurex_derivatives_eti_t7_v13_0.order_qty = {}

-- Size: Order Qty
eurex_derivatives_eti_t7_v13_0.order_qty.size = 8

-- Display: Order Qty
eurex_derivatives_eti_t7_v13_0.order_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Order Qty: No Value"
  end

  return "Order Qty: "..value
end

-- Translate: Order Qty
eurex_derivatives_eti_t7_v13_0.order_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Order Qty
eurex_derivatives_eti_t7_v13_0.order_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.order_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.order_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_qty, range, value, display)

  return offset + length, value
end

-- Offer Px
eurex_derivatives_eti_t7_v13_0.offer_px = {}

-- Size: Offer Px
eurex_derivatives_eti_t7_v13_0.offer_px.size = 8

-- Display: Offer Px
eurex_derivatives_eti_t7_v13_0.offer_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Offer Px: No Value"
  end

  return "Offer Px: "..value
end

-- Translate: Offer Px
eurex_derivatives_eti_t7_v13_0.offer_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Offer Px
eurex_derivatives_eti_t7_v13_0.offer_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.offer_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.offer_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.offer_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.offer_px, range, value, display)

  return offset + length, value
end

-- Bid Px
eurex_derivatives_eti_t7_v13_0.bid_px = {}

-- Size: Bid Px
eurex_derivatives_eti_t7_v13_0.bid_px.size = 8

-- Display: Bid Px
eurex_derivatives_eti_t7_v13_0.bid_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Bid Px: No Value"
  end

  return "Bid Px: "..value
end

-- Translate: Bid Px
eurex_derivatives_eti_t7_v13_0.bid_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Bid Px
eurex_derivatives_eti_t7_v13_0.bid_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.bid_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.bid_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.bid_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.bid_px, range, value, display)

  return offset + length, value
end

-- Underlying Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage = {}

-- Size: Underlying Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.size = 8

-- Display: Underlying Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Underlying Delta Percentage: No Value"
  end

  return "Underlying Delta Percentage: "..value
end

-- Translate: Underlying Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Underlying Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_delta_percentage, range, value, display)

  return offset + length, value
end

-- Quote Ref Price
eurex_derivatives_eti_t7_v13_0.quote_ref_price = {}

-- Size: Quote Ref Price
eurex_derivatives_eti_t7_v13_0.quote_ref_price.size = 8

-- Display: Quote Ref Price
eurex_derivatives_eti_t7_v13_0.quote_ref_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Quote Ref Price: No Value"
  end

  return "Quote Ref Price: "..value
end

-- Translate: Quote Ref Price
eurex_derivatives_eti_t7_v13_0.quote_ref_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Quote Ref Price
eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_ref_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.quote_ref_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.quote_ref_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_ref_price, range, value, display)

  return offset + length, value
end

-- Srqs Update Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request = {}

-- Read runtime size of: Srqs Update Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Update Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Update Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.fields = function(buffer, offset, packet, parent, size_of_srqs_update_negotiation_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- No Target Party I Ds: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_target_party_i_ds = eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.dissect(buffer, index, packet, parent)

  -- Number Of Resp Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, number_of_resp_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Show Last Deal On Closure: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, show_last_deal_on_closure = eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.dissect(buffer, index, packet, parent)

  -- Quote Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_type = eurex_derivatives_eti_t7_v13_0.quote_type.dissect(buffer, index, packet, parent)

  -- Quote Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, quote_sub_type = eurex_derivatives_eti_t7_v13_0.quote_sub_type.dissect(buffer, index, packet, parent)

  -- Respondent Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, respondent_type = eurex_derivatives_eti_t7_v13_0.respondent_type.dissect(buffer, index, packet, parent)

  -- Trade Aggregation Trans Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, trade_aggregation_trans_type = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect(buffer, index, packet, parent)

  -- Quote Condition: 1 Byte Ascii String Enum with 4 values
  index, quote_condition = eurex_derivatives_eti_t7_v13_0.quote_condition.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Party Order Origination Trader: 132 Byte Ascii String Nullable
  index, party_order_origination_trader = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.dissect(buffer, index, packet, parent)

  -- Charge Id: 132 Byte Ascii String Nullable
  index, charge_id = eurex_derivatives_eti_t7_v13_0.charge_id.dissect(buffer, index, packet, parent)

  -- Repeating: Target Parties Comp
  for target_parties_comp_index = 1, no_target_party_i_ds do
    index, target_parties_comp = eurex_derivatives_eti_t7_v13_0.target_parties_comp.dissect(buffer, index, packet, parent, target_parties_comp_index)
  end

  return index
end

-- Dissect: Srqs Update Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_update_negotiation_request = eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_update_negotiation_request then
    local range = buffer(offset, size_of_srqs_update_negotiation_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_update_negotiation_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.fields(buffer, offset, packet, parent, size_of_srqs_update_negotiation_request)

  return offset + size_of_srqs_update_negotiation_request
end

-- Underlying Price Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value = {}

-- Size: Underlying Price Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.size = 8

-- Display: Underlying Price Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Underlying Price Stip Value: No Value"
  end

  return "Underlying Price Stip Value: "..value
end

-- Translate: Underlying Price Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Underlying Price Stip Value
eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_price_stip_value, range, value, display)

  return offset + length, value
end

-- Srqs Update Deal Status Request
eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request = {}

-- Read runtime size of: Srqs Update Deal Status Request
eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Update Deal Status Request
eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Update Deal Status Request
eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.fields = function(buffer, offset, packet, parent, size_of_srqs_update_deal_status_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Underlying Price Stip Value: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_price_stip_value = eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_id = eurex_derivatives_eti_t7_v13_0.trade_id.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Update Deal Status Request
eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_update_deal_status_request = eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_update_deal_status_request then
    local range = buffer(offset, size_of_srqs_update_deal_status_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_update_deal_status_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.fields(buffer, offset, packet, parent, size_of_srqs_update_deal_status_request)

  return offset + size_of_srqs_update_deal_status_request
end

-- Srqs Status Broadcast
eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast = {}

-- Read runtime size of: Srqs Status Broadcast
eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Status Broadcast
eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Status Broadcast
eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.fields = function(buffer, offset, packet, parent, size_of_srqs_status_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Trad Ses Event: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, trad_ses_event = eurex_derivatives_eti_t7_v13_0.trad_ses_event.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Status Broadcast
eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_status_broadcast = eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_status_broadcast then
    local range = buffer(offset, size_of_srqs_status_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_status_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.fields(buffer, offset, packet, parent, size_of_srqs_status_broadcast)

  return offset + size_of_srqs_status_broadcast
end

-- Srqs Response
eurex_derivatives_eti_t7_v13_0.srqs_response = {}

-- Read runtime size of: Srqs Response
eurex_derivatives_eti_t7_v13_0.srqs_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Response
eurex_derivatives_eti_t7_v13_0.srqs_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Response
eurex_derivatives_eti_t7_v13_0.srqs_response.fields = function(buffer, offset, packet, parent, size_of_srqs_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Response
eurex_derivatives_eti_t7_v13_0.srqs_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_response = eurex_derivatives_eti_t7_v13_0.srqs_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_response then
    local range = buffer(offset, size_of_srqs_response)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_response.fields(buffer, offset, packet, parent, size_of_srqs_response)

  return offset + size_of_srqs_response
end

-- Quoting Status
eurex_derivatives_eti_t7_v13_0.quoting_status = {}

-- Size: Quoting Status
eurex_derivatives_eti_t7_v13_0.quoting_status.size = 1

-- Display: Quoting Status
eurex_derivatives_eti_t7_v13_0.quoting_status.display = function(value)
  if value == 1 then
    return "Quoting Status: Open Active (1)"
  end
  if value == 2 then
    return "Quoting Status: Open Idle (2)"
  end
  if value == 3 then
    return "Quoting Status: Closed Inactive (3)"
  end
  if value == 0xFF then
    return "Quoting Status: No Value"
  end

  return "Quoting Status: Unknown("..value..")"
end

-- Dissect: Quoting Status
eurex_derivatives_eti_t7_v13_0.quoting_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quoting_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quoting_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quoting_status, range, value, display)

  return offset + length, value
end

-- Srqs Quoting Status Request
eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request = {}

-- Read runtime size of: Srqs Quoting Status Request
eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Quoting Status Request
eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Quoting Status Request
eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.fields = function(buffer, offset, packet, parent, size_of_srqs_quoting_status_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Quoting Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quoting_status = eurex_derivatives_eti_t7_v13_0.quoting_status.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Quoting Status Request
eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_quoting_status_request = eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_quoting_status_request then
    local range = buffer(offset, size_of_srqs_quoting_status_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quoting_status_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.fields(buffer, offset, packet, parent, size_of_srqs_quoting_status_request)

  return offset + size_of_srqs_quoting_status_request
end

-- Srqs Quote Snapshot Request
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request = {}

-- Read runtime size of: Srqs Quote Snapshot Request
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Quote Snapshot Request
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Quote Snapshot Request
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.fields = function(buffer, offset, packet, parent, size_of_srqs_quote_snapshot_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Quote Snapshot Request
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_quote_snapshot_request = eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_quote_snapshot_request then
    local range = buffer(offset, size_of_srqs_quote_snapshot_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_snapshot_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.fields(buffer, offset, packet, parent, size_of_srqs_quote_snapshot_request)

  return offset + size_of_srqs_quote_snapshot_request
end

-- Firm Negotiation Id
eurex_derivatives_eti_t7_v13_0.firm_negotiation_id = {}

-- Size: Firm Negotiation Id
eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.size = 20

-- Display: Firm Negotiation Id
eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Firm Negotiation Id: No Value"
  end

  return "Firm Negotiation Id: "..value
end

-- Dissect: Firm Negotiation Id
eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.firm_negotiation_id, range, value, display)

  return offset + length, value
end

-- Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_id_executing_trader = {}

-- Size: Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.size = 4

-- Display: Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Party Id Executing Trader: No Value"
  end

  return "Party Id Executing Trader: "..value
end

-- Dissect: Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_executing_trader, range, value, display)

  return offset + length, value
end

-- Offer Size
eurex_derivatives_eti_t7_v13_0.offer_size = {}

-- Size: Offer Size
eurex_derivatives_eti_t7_v13_0.offer_size.size = 8

-- Display: Offer Size
eurex_derivatives_eti_t7_v13_0.offer_size.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Offer Size: No Value"
  end

  return "Offer Size: "..value
end

-- Translate: Offer Size
eurex_derivatives_eti_t7_v13_0.offer_size.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Offer Size
eurex_derivatives_eti_t7_v13_0.offer_size.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.offer_size.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.offer_size.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.offer_size.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.offer_size, range, value, display)

  return offset + length, value
end

-- Bid Size
eurex_derivatives_eti_t7_v13_0.bid_size = {}

-- Size: Bid Size
eurex_derivatives_eti_t7_v13_0.bid_size.size = 8

-- Display: Bid Size
eurex_derivatives_eti_t7_v13_0.bid_size.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Bid Size: No Value"
  end

  return "Bid Size: "..value
end

-- Translate: Bid Size
eurex_derivatives_eti_t7_v13_0.bid_size.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Bid Size
eurex_derivatives_eti_t7_v13_0.bid_size.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.bid_size.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.bid_size.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.bid_size.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.bid_size, range, value, display)

  return offset + length, value
end

-- Secondary Quote Id
eurex_derivatives_eti_t7_v13_0.secondary_quote_id = {}

-- Size: Secondary Quote Id
eurex_derivatives_eti_t7_v13_0.secondary_quote_id.size = 8

-- Display: Secondary Quote Id
eurex_derivatives_eti_t7_v13_0.secondary_quote_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Secondary Quote Id: No Value"
  end

  return "Secondary Quote Id: "..value
end

-- Dissect: Secondary Quote Id
eurex_derivatives_eti_t7_v13_0.secondary_quote_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.secondary_quote_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.secondary_quote_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.secondary_quote_id, range, value, display)

  return offset + length, value
end

-- Quote Id
eurex_derivatives_eti_t7_v13_0.quote_id = {}

-- Size: Quote Id
eurex_derivatives_eti_t7_v13_0.quote_id.size = 8

-- Display: Quote Id
eurex_derivatives_eti_t7_v13_0.quote_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Quote Id: No Value"
  end

  return "Quote Id: "..value
end

-- Dissect: Quote Id
eurex_derivatives_eti_t7_v13_0.quote_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.quote_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_id, range, value, display)

  return offset + length, value
end

-- Expire Time
eurex_derivatives_eti_t7_v13_0.expire_time = {}

-- Size: Expire Time
eurex_derivatives_eti_t7_v13_0.expire_time.size = 8

-- Display: Expire Time
eurex_derivatives_eti_t7_v13_0.expire_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Expire Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Expire Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Expire Time
eurex_derivatives_eti_t7_v13_0.expire_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.expire_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.expire_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.expire_time, range, value, display)

  return offset + length, value
end

-- Srqs Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp = {}

-- Size: Srqs Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.transact_time.size + 
  eurex_derivatives_eti_t7_v13_0.expire_time.size + 
  eurex_derivatives_eti_t7_v13_0.quote_id.size + 
  eurex_derivatives_eti_t7_v13_0.secondary_quote_id.size + 
  eurex_derivatives_eti_t7_v13_0.bid_px.size + 
  eurex_derivatives_eti_t7_v13_0.bid_size.size + 
  eurex_derivatives_eti_t7_v13_0.offer_px.size + 
  eurex_derivatives_eti_t7_v13_0.offer_size.size + 
  eurex_derivatives_eti_t7_v13_0.underlying_px.size + 
  eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.size + 
  eurex_derivatives_eti_t7_v13_0.quote_ref_price.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.negotiation_id.size + 
  eurex_derivatives_eti_t7_v13_0.quoting_status.size + 
  eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.party_entering_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Srqs Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.fields = function(buffer, offset, packet, parent, srqs_quote_entry_grp_comp_index)
  local index = offset

  -- Implicit Srqs Quote Entry Grp Comp Index
  if srqs_quote_entry_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_entry_grp_comp_index, srqs_quote_entry_grp_comp_index)
    iteration:set_generated()
  end

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Expire Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, expire_time = eurex_derivatives_eti_t7_v13_0.expire_time.dissect(buffer, index, packet, parent)

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  -- Secondary Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, secondary_quote_id = eurex_derivatives_eti_t7_v13_0.secondary_quote_id.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Bid Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_size = eurex_derivatives_eti_t7_v13_0.bid_size.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Offer Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_size = eurex_derivatives_eti_t7_v13_0.offer_size.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Quoting Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quoting_status = eurex_derivatives_eti_t7_v13_0.quoting_status.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.dissect = function(buffer, offset, packet, parent, srqs_quote_entry_grp_comp_index)
  if show.srqs_quote_entry_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_entry_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.fields(buffer, offset, packet, parent, srqs_quote_entry_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.fields(buffer, offset, packet, parent, srqs_quote_entry_grp_comp_index)
  end
end

-- No Quote Entries
eurex_derivatives_eti_t7_v13_0.no_quote_entries = {}

-- Size: No Quote Entries
eurex_derivatives_eti_t7_v13_0.no_quote_entries.size = 1

-- Display: No Quote Entries
eurex_derivatives_eti_t7_v13_0.no_quote_entries.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Quote Entries: No Value"
  end

  return "No Quote Entries: "..value
end

-- Dissect: No Quote Entries
eurex_derivatives_eti_t7_v13_0.no_quote_entries.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_quote_entries.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_quote_entries.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_entries, range, value, display)

  return offset + length, value
end

-- Srqs Quote Snapshot Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification = {}

-- Read runtime size of: Srqs Quote Snapshot Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Quote Snapshot Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Quote Snapshot Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_quote_snapshot_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- No Quote Entries: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_quote_entries = eurex_derivatives_eti_t7_v13_0.no_quote_entries.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Srqs Quote Entry Grp Comp
  for srqs_quote_entry_grp_comp_index = 1, no_quote_entries do
    index, srqs_quote_entry_grp_comp = eurex_derivatives_eti_t7_v13_0.srqs_quote_entry_grp_comp.dissect(buffer, index, packet, parent, srqs_quote_entry_grp_comp_index)
  end

  return index
end

-- Dissect: Srqs Quote Snapshot Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_quote_snapshot_notification = eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_quote_snapshot_notification then
    local range = buffer(offset, size_of_srqs_quote_snapshot_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_snapshot_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.fields(buffer, offset, packet, parent, size_of_srqs_quote_snapshot_notification)

  return offset + size_of_srqs_quote_snapshot_notification
end

-- Quote Req Id
eurex_derivatives_eti_t7_v13_0.quote_req_id = {}

-- Size: Quote Req Id
eurex_derivatives_eti_t7_v13_0.quote_req_id.size = 20

-- Display: Quote Req Id
eurex_derivatives_eti_t7_v13_0.quote_req_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Quote Req Id: No Value"
  end

  return "Quote Req Id: "..value
end

-- Dissect: Quote Req Id
eurex_derivatives_eti_t7_v13_0.quote_req_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_req_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.quote_req_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_req_id, range, value, display)

  return offset + length, value
end

-- Srqs Quote Response
eurex_derivatives_eti_t7_v13_0.srqs_quote_response = {}

-- Read runtime size of: Srqs Quote Response
eurex_derivatives_eti_t7_v13_0.srqs_quote_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Quote Response
eurex_derivatives_eti_t7_v13_0.srqs_quote_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Quote Response
eurex_derivatives_eti_t7_v13_0.srqs_quote_response.fields = function(buffer, offset, packet, parent, size_of_srqs_quote_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Quote Req Id: 20 Byte Ascii String Nullable
  index, quote_req_id = eurex_derivatives_eti_t7_v13_0.quote_req_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Quote Response
eurex_derivatives_eti_t7_v13_0.srqs_quote_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_quote_response = eurex_derivatives_eti_t7_v13_0.srqs_quote_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_quote_response then
    local range = buffer(offset, size_of_srqs_quote_response)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_quote_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_quote_response.fields(buffer, offset, packet, parent, size_of_srqs_quote_response)

  return offset + size_of_srqs_quote_response
end

-- Quote Cancel Reason
eurex_derivatives_eti_t7_v13_0.quote_cancel_reason = {}

-- Size: Quote Cancel Reason
eurex_derivatives_eti_t7_v13_0.quote_cancel_reason.size = 1

-- Display: Quote Cancel Reason
eurex_derivatives_eti_t7_v13_0.quote_cancel_reason.display = function(value)
  if value == 5 then
    return "Quote Cancel Reason: Expired (5)"
  end
  if value == 0xFF then
    return "Quote Cancel Reason: No Value"
  end

  return "Quote Cancel Reason: Unknown("..value..")"
end

-- Dissect: Quote Cancel Reason
eurex_derivatives_eti_t7_v13_0.quote_cancel_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_cancel_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_cancel_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_cancel_reason, range, value, display)

  return offset + length, value
end

-- Srqs Quote Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_notification = {}

-- Read runtime size of: Srqs Quote Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Quote Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Quote Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_quote_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  -- Secondary Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, secondary_quote_id = eurex_derivatives_eti_t7_v13_0.secondary_quote_id.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Bid Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_size = eurex_derivatives_eti_t7_v13_0.bid_size.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Offer Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_size = eurex_derivatives_eti_t7_v13_0.offer_size.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Expire Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, expire_time = eurex_derivatives_eti_t7_v13_0.expire_time.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Quoting Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quoting_status = eurex_derivatives_eti_t7_v13_0.quoting_status.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Quote Cancel Reason: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, quote_cancel_reason = eurex_derivatives_eti_t7_v13_0.quote_cancel_reason.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Quote Req Id: 20 Byte Ascii String Nullable
  index, quote_req_id = eurex_derivatives_eti_t7_v13_0.quote_req_id.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Quote Notification
eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_quote_notification = eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_quote_notification then
    local range = buffer(offset, size_of_srqs_quote_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.fields(buffer, offset, packet, parent, size_of_srqs_quote_notification)

  return offset + size_of_srqs_quote_notification
end

-- Leg Side
eurex_derivatives_eti_t7_v13_0.leg_side = {}

-- Size: Leg Side
eurex_derivatives_eti_t7_v13_0.leg_side.size = 1

-- Display: Leg Side
eurex_derivatives_eti_t7_v13_0.leg_side.display = function(value)
  if value == 1 then
    return "Leg Side: Buy (1)"
  end
  if value == 2 then
    return "Leg Side: Sell (2)"
  end
  if value == 0xFF then
    return "Leg Side: No Value"
  end

  return "Leg Side: Unknown("..value..")"
end

-- Dissect: Leg Side
eurex_derivatives_eti_t7_v13_0.leg_side.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_side.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.leg_side.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_side, range, value, display)

  return offset + length, value
end

-- Leg Security Type
eurex_derivatives_eti_t7_v13_0.leg_security_type = {}

-- Size: Leg Security Type
eurex_derivatives_eti_t7_v13_0.leg_security_type.size = 1

-- Display: Leg Security Type
eurex_derivatives_eti_t7_v13_0.leg_security_type.display = function(value)
  if value == 1 then
    return "Leg Security Type: Multileg Instrument (1)"
  end
  if value == 2 then
    return "Leg Security Type: Underlying Leg (2)"
  end
  if value == 0xFF then
    return "Leg Security Type: No Value"
  end

  return "Leg Security Type: Unknown("..value..")"
end

-- Dissect: Leg Security Type
eurex_derivatives_eti_t7_v13_0.leg_security_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_security_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.leg_security_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_security_type, range, value, display)

  return offset + length, value
end

-- Leg Symbol
eurex_derivatives_eti_t7_v13_0.leg_symbol = {}

-- Size: Leg Symbol
eurex_derivatives_eti_t7_v13_0.leg_symbol.size = 4

-- Display: Leg Symbol
eurex_derivatives_eti_t7_v13_0.leg_symbol.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Leg Symbol: No Value"
  end

  return "Leg Symbol: "..value
end

-- Dissect: Leg Symbol
eurex_derivatives_eti_t7_v13_0.leg_symbol.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_symbol.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.leg_symbol.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_symbol, range, value, display)

  return offset + length, value
end

-- Leg Ratio Qty
eurex_derivatives_eti_t7_v13_0.leg_ratio_qty = {}

-- Size: Leg Ratio Qty
eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.size = 4

-- Display: Leg Ratio Qty
eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Leg Ratio Qty: No Value"
  end

  return "Leg Ratio Qty: "..value
end

-- Dissect: Leg Ratio Qty
eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_ratio_qty, range, value, display)

  return offset + length, value
end

-- Quot Req Legs Grp Comp
eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp = {}

-- Size: Quot Req Legs Grp Comp
eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_security_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.size + 
  eurex_derivatives_eti_t7_v13_0.leg_symbol.size + 
  eurex_derivatives_eti_t7_v13_0.leg_security_type.size + 
  eurex_derivatives_eti_t7_v13_0.leg_side.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Quot Req Legs Grp Comp
eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quot Req Legs Grp Comp
eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.fields = function(buffer, offset, packet, parent, quot_req_legs_grp_comp_index)
  local index = offset

  -- Implicit Quot Req Legs Grp Comp Index
  if quot_req_legs_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quot_req_legs_grp_comp_index, quot_req_legs_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, leg_security_id = eurex_derivatives_eti_t7_v13_0.leg_security_id.dissect(buffer, index, packet, parent)

  -- Leg Ratio Qty: 4 Byte Unsigned Fixed Width Integer Nullable
  index, leg_ratio_qty = eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.dissect(buffer, index, packet, parent)

  -- Leg Symbol: 4 Byte Signed Fixed Width Integer Nullable
  index, leg_symbol = eurex_derivatives_eti_t7_v13_0.leg_symbol.dissect(buffer, index, packet, parent)

  -- Leg Security Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, leg_security_type = eurex_derivatives_eti_t7_v13_0.leg_security_type.dissect(buffer, index, packet, parent)

  -- Leg Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, leg_side = eurex_derivatives_eti_t7_v13_0.leg_side.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Quot Req Legs Grp Comp
eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.dissect = function(buffer, offset, packet, parent, quot_req_legs_grp_comp_index)
  if show.quot_req_legs_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quot_req_legs_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.fields(buffer, offset, packet, parent, quot_req_legs_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.fields(buffer, offset, packet, parent, quot_req_legs_grp_comp_index)
  end
end

-- Order Qty Is Locked
eurex_derivatives_eti_t7_v13_0.order_qty_is_locked = {}

-- Size: Order Qty Is Locked
eurex_derivatives_eti_t7_v13_0.order_qty_is_locked.size = 1

-- Display: Order Qty Is Locked
eurex_derivatives_eti_t7_v13_0.order_qty_is_locked.display = function(value)
  if value == 0 then
    return "Order Qty Is Locked: No (0)"
  end
  if value == 1 then
    return "Order Qty Is Locked: Yes (1)"
  end
  if value == 0xFF then
    return "Order Qty Is Locked: No Value"
  end

  return "Order Qty Is Locked: Unknown("..value..")"
end

-- Dissect: Order Qty Is Locked
eurex_derivatives_eti_t7_v13_0.order_qty_is_locked.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_qty_is_locked.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_qty_is_locked.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_qty_is_locked, range, value, display)

  return offset + length, value
end

-- Side Is Locked
eurex_derivatives_eti_t7_v13_0.side_is_locked = {}

-- Size: Side Is Locked
eurex_derivatives_eti_t7_v13_0.side_is_locked.size = 1

-- Display: Side Is Locked
eurex_derivatives_eti_t7_v13_0.side_is_locked.display = function(value)
  if value == 0 then
    return "Side Is Locked: No (0)"
  end
  if value == 1 then
    return "Side Is Locked: Yes (1)"
  end
  if value == 0xFF then
    return "Side Is Locked: No Value"
  end

  return "Side Is Locked: Unknown("..value..")"
end

-- Dissect: Side Is Locked
eurex_derivatives_eti_t7_v13_0.side_is_locked.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_is_locked.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.side_is_locked.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_is_locked, range, value, display)

  return offset + length, value
end

-- Offer Px Is Locked
eurex_derivatives_eti_t7_v13_0.offer_px_is_locked = {}

-- Size: Offer Px Is Locked
eurex_derivatives_eti_t7_v13_0.offer_px_is_locked.size = 1

-- Display: Offer Px Is Locked
eurex_derivatives_eti_t7_v13_0.offer_px_is_locked.display = function(value)
  if value == 0 then
    return "Offer Px Is Locked: No (0)"
  end
  if value == 1 then
    return "Offer Px Is Locked: Yes (1)"
  end
  if value == 0xFF then
    return "Offer Px Is Locked: No Value"
  end

  return "Offer Px Is Locked: Unknown("..value..")"
end

-- Dissect: Offer Px Is Locked
eurex_derivatives_eti_t7_v13_0.offer_px_is_locked.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.offer_px_is_locked.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.offer_px_is_locked.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.offer_px_is_locked, range, value, display)

  return offset + length, value
end

-- Bid Px Is Locked
eurex_derivatives_eti_t7_v13_0.bid_px_is_locked = {}

-- Size: Bid Px Is Locked
eurex_derivatives_eti_t7_v13_0.bid_px_is_locked.size = 1

-- Display: Bid Px Is Locked
eurex_derivatives_eti_t7_v13_0.bid_px_is_locked.display = function(value)
  if value == 0 then
    return "Bid Px Is Locked: No (0)"
  end
  if value == 1 then
    return "Bid Px Is Locked: Yes (1)"
  end
  if value == 0xFF then
    return "Bid Px Is Locked: No Value"
  end

  return "Bid Px Is Locked: Unknown("..value..")"
end

-- Dissect: Bid Px Is Locked
eurex_derivatives_eti_t7_v13_0.bid_px_is_locked.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.bid_px_is_locked.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.bid_px_is_locked.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.bid_px_is_locked, range, value, display)

  return offset + length, value
end

-- Number Of Respondents
eurex_derivatives_eti_t7_v13_0.number_of_respondents = {}

-- Size: Number Of Respondents
eurex_derivatives_eti_t7_v13_0.number_of_respondents.size = 4

-- Display: Number Of Respondents
eurex_derivatives_eti_t7_v13_0.number_of_respondents.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Number Of Respondents: No Value"
  end

  return "Number Of Respondents: "..value
end

-- Dissect: Number Of Respondents
eurex_derivatives_eti_t7_v13_0.number_of_respondents.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.number_of_respondents.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.number_of_respondents.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.number_of_respondents, range, value, display)

  return offset + length, value
end

-- Trade To Request Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio = {}

-- Size: Trade To Request Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.size = 8

-- Display: Trade To Request Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Trade To Request Ratio: No Value"
  end

  return "Trade To Request Ratio: "..value
end

-- Translate: Trade To Request Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Trade To Request Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_request_ratio, range, value, display)

  return offset + length, value
end

-- Srqs Open Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification = {}

-- Read runtime size of: Srqs Open Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Open Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Open Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_open_negotiation_requester_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Expire Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, expire_time = eurex_derivatives_eti_t7_v13_0.expire_time.dissect(buffer, index, packet, parent)

  -- Trade To Request Ratio: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trade_to_request_ratio = eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Security Sub Type: 4 Byte Signed Fixed Width Integer Nullable
  index, security_sub_type = eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect(buffer, index, packet, parent)

  -- Number Of Respondents: 4 Byte Unsigned Fixed Width Integer Nullable
  index, number_of_respondents = eurex_derivatives_eti_t7_v13_0.number_of_respondents.dissect(buffer, index, packet, parent)

  -- Quote Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_type = eurex_derivatives_eti_t7_v13_0.quote_type.dissect(buffer, index, packet, parent)

  -- Quote Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, quote_sub_type = eurex_derivatives_eti_t7_v13_0.quote_sub_type.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- No Target Party I Ds: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_target_party_i_ds = eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Number Of Resp Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, number_of_resp_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Respondent Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, respondent_type = eurex_derivatives_eti_t7_v13_0.respondent_type.dissect(buffer, index, packet, parent)

  -- Show Last Deal On Closure: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, show_last_deal_on_closure = eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.dissect(buffer, index, packet, parent)

  -- Bid Px Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, bid_px_is_locked = eurex_derivatives_eti_t7_v13_0.bid_px_is_locked.dissect(buffer, index, packet, parent)

  -- Offer Px Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, offer_px_is_locked = eurex_derivatives_eti_t7_v13_0.offer_px_is_locked.dissect(buffer, index, packet, parent)

  -- Side Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_is_locked = eurex_derivatives_eti_t7_v13_0.side_is_locked.dissect(buffer, index, packet, parent)

  -- Order Qty Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_qty_is_locked = eurex_derivatives_eti_t7_v13_0.order_qty_is_locked.dissect(buffer, index, packet, parent)

  -- Trade Aggregation Trans Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, trade_aggregation_trans_type = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect(buffer, index, packet, parent)

  -- Quote Condition: 1 Byte Ascii String Enum with 4 values
  index, quote_condition = eurex_derivatives_eti_t7_v13_0.quote_condition.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Party Order Origination Trader: 132 Byte Ascii String Nullable
  index, party_order_origination_trader = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.dissect(buffer, index, packet, parent)

  -- Charge Id: 132 Byte Ascii String Nullable
  index, charge_id = eurex_derivatives_eti_t7_v13_0.charge_id.dissect(buffer, index, packet, parent)

  -- Repeating: Quot Req Legs Grp Comp
  for quot_req_legs_grp_comp_index = 1, no_legs do
    index, quot_req_legs_grp_comp = eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.dissect(buffer, index, packet, parent, quot_req_legs_grp_comp_index)
  end

  -- Repeating: Target Parties Comp
  for target_parties_comp_index = 1, no_target_party_i_ds do
    index, target_parties_comp = eurex_derivatives_eti_t7_v13_0.target_parties_comp.dissect(buffer, index, packet, parent, target_parties_comp_index)
  end

  return index
end

-- Dissect: Srqs Open Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_open_negotiation_requester_notification = eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_open_negotiation_requester_notification then
    local range = buffer(offset, size_of_srqs_open_negotiation_requester_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_open_negotiation_requester_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.fields(buffer, offset, packet, parent, size_of_srqs_open_negotiation_requester_notification)

  return offset + size_of_srqs_open_negotiation_requester_notification
end

-- Valid Until Time
eurex_derivatives_eti_t7_v13_0.valid_until_time = {}

-- Size: Valid Until Time
eurex_derivatives_eti_t7_v13_0.valid_until_time.size = 8

-- Display: Valid Until Time
eurex_derivatives_eti_t7_v13_0.valid_until_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Valid Until Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Valid Until Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Valid Until Time
eurex_derivatives_eti_t7_v13_0.valid_until_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.valid_until_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.valid_until_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.valid_until_time, range, value, display)

  return offset + length, value
end

-- Srqs Open Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request = {}

-- Read runtime size of: Srqs Open Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Open Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Open Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.fields = function(buffer, offset, packet, parent, size_of_srqs_open_negotiation_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Valid Until Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, valid_until_time = eurex_derivatives_eti_t7_v13_0.valid_until_time.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Security Sub Type: 4 Byte Signed Fixed Width Integer Nullable
  index, security_sub_type = eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect(buffer, index, packet, parent)

  -- Quote Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_type = eurex_derivatives_eti_t7_v13_0.quote_type.dissect(buffer, index, packet, parent)

  -- Quote Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, quote_sub_type = eurex_derivatives_eti_t7_v13_0.quote_sub_type.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- No Target Party I Ds: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_target_party_i_ds = eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.dissect(buffer, index, packet, parent)

  -- Number Of Resp Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, number_of_resp_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Respondent Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, respondent_type = eurex_derivatives_eti_t7_v13_0.respondent_type.dissect(buffer, index, packet, parent)

  -- Show Last Deal On Closure: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, show_last_deal_on_closure = eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.dissect(buffer, index, packet, parent)

  -- Bid Px Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, bid_px_is_locked = eurex_derivatives_eti_t7_v13_0.bid_px_is_locked.dissect(buffer, index, packet, parent)

  -- Offer Px Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, offer_px_is_locked = eurex_derivatives_eti_t7_v13_0.offer_px_is_locked.dissect(buffer, index, packet, parent)

  -- Side Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_is_locked = eurex_derivatives_eti_t7_v13_0.side_is_locked.dissect(buffer, index, packet, parent)

  -- Order Qty Is Locked: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_qty_is_locked = eurex_derivatives_eti_t7_v13_0.order_qty_is_locked.dissect(buffer, index, packet, parent)

  -- Trade Aggregation Trans Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, trade_aggregation_trans_type = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect(buffer, index, packet, parent)

  -- Quote Condition: 1 Byte Ascii String Enum with 4 values
  index, quote_condition = eurex_derivatives_eti_t7_v13_0.quote_condition.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Quote Req Id: 20 Byte Ascii String Nullable
  index, quote_req_id = eurex_derivatives_eti_t7_v13_0.quote_req_id.dissect(buffer, index, packet, parent)

  -- Party Order Origination Trader: 132 Byte Ascii String Nullable
  index, party_order_origination_trader = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.dissect(buffer, index, packet, parent)

  -- Charge Id: 132 Byte Ascii String Nullable
  index, charge_id = eurex_derivatives_eti_t7_v13_0.charge_id.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Quot Req Legs Grp Comp
  for quot_req_legs_grp_comp_index = 1, no_legs do
    index, quot_req_legs_grp_comp = eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.dissect(buffer, index, packet, parent, quot_req_legs_grp_comp_index)
  end

  -- Repeating: Target Parties Comp
  for target_parties_comp_index = 1, no_target_party_i_ds do
    index, target_parties_comp = eurex_derivatives_eti_t7_v13_0.target_parties_comp.dissect(buffer, index, packet, parent, target_parties_comp_index)
  end

  return index
end

-- Dissect: Srqs Open Negotiation Request
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_open_negotiation_request = eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_open_negotiation_request then
    local range = buffer(offset, size_of_srqs_open_negotiation_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_open_negotiation_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.fields(buffer, offset, packet, parent, size_of_srqs_open_negotiation_request)

  return offset + size_of_srqs_open_negotiation_request
end

-- Trade To Quote Ratio Position
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position = {}

-- Size: Trade To Quote Ratio Position
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position.size = 2

-- Display: Trade To Quote Ratio Position
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Trade To Quote Ratio Position: No Value"
  end

  return "Trade To Quote Ratio Position: "..value
end

-- Dissect: Trade To Quote Ratio Position
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_quote_ratio_position, range, value, display)

  return offset + length, value
end

-- Trade To Quote Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio = {}

-- Size: Trade To Quote Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.size = 8

-- Display: Trade To Quote Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Trade To Quote Ratio: No Value"
  end

  return "Trade To Quote Ratio: "..value
end

-- Translate: Trade To Quote Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Trade To Quote Ratio
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_quote_ratio, range, value, display)

  return offset + length, value
end

-- Negotiation Start Time
eurex_derivatives_eti_t7_v13_0.negotiation_start_time = {}

-- Size: Negotiation Start Time
eurex_derivatives_eti_t7_v13_0.negotiation_start_time.size = 8

-- Display: Negotiation Start Time
eurex_derivatives_eti_t7_v13_0.negotiation_start_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Negotiation Start Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Negotiation Start Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Negotiation Start Time
eurex_derivatives_eti_t7_v13_0.negotiation_start_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.negotiation_start_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.negotiation_start_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.negotiation_start_time, range, value, display)

  return offset + length, value
end

-- Srqs Open Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification = {}

-- Read runtime size of: Srqs Open Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Open Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Open Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_open_negotiation_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Negotiation Start Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_start_time = eurex_derivatives_eti_t7_v13_0.negotiation_start_time.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Expire Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, expire_time = eurex_derivatives_eti_t7_v13_0.expire_time.dissect(buffer, index, packet, parent)

  -- Trade To Request Ratio: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trade_to_request_ratio = eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.dissect(buffer, index, packet, parent)

  -- Trade To Quote Ratio: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trade_to_quote_ratio = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Security Sub Type: 4 Byte Signed Fixed Width Integer Nullable
  index, security_sub_type = eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect(buffer, index, packet, parent)

  -- Number Of Respondents: 4 Byte Unsigned Fixed Width Integer Nullable
  index, number_of_respondents = eurex_derivatives_eti_t7_v13_0.number_of_respondents.dissect(buffer, index, packet, parent)

  -- Trade To Quote Ratio Position: 2 Byte Unsigned Fixed Width Integer Nullable
  index, trade_to_quote_ratio_position = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position.dissect(buffer, index, packet, parent)

  -- Quote Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_type = eurex_derivatives_eti_t7_v13_0.quote_type.dissect(buffer, index, packet, parent)

  -- Quote Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, quote_sub_type = eurex_derivatives_eti_t7_v13_0.quote_sub_type.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Respondent Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, respondent_type = eurex_derivatives_eti_t7_v13_0.respondent_type.dissect(buffer, index, packet, parent)

  -- Trade Aggregation Trans Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, trade_aggregation_trans_type = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect(buffer, index, packet, parent)

  -- Quote Condition: 1 Byte Ascii String Enum with 4 values
  index, quote_condition = eurex_derivatives_eti_t7_v13_0.quote_condition.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Target Party Executing Firm: 5 Byte Ascii String Nullable
  index, target_party_executing_firm = eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Target Party Executing Trader: 6 Byte Ascii String Nullable
  index, target_party_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Party Order Origination Trader: 132 Byte Ascii String Nullable
  index, party_order_origination_trader = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.dissect(buffer, index, packet, parent)

  -- Charge Id: 132 Byte Ascii String Nullable
  index, charge_id = eurex_derivatives_eti_t7_v13_0.charge_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Quot Req Legs Grp Comp
  for quot_req_legs_grp_comp_index = 1, no_legs do
    index, quot_req_legs_grp_comp = eurex_derivatives_eti_t7_v13_0.quot_req_legs_grp_comp.dissect(buffer, index, packet, parent, quot_req_legs_grp_comp_index)
  end

  return index
end

-- Dissect: Srqs Open Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_open_negotiation_notification = eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_open_negotiation_notification then
    local range = buffer(offset, size_of_srqs_open_negotiation_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_open_negotiation_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.fields(buffer, offset, packet, parent, size_of_srqs_open_negotiation_notification)

  return offset + size_of_srqs_open_negotiation_notification
end

-- Effective Time
eurex_derivatives_eti_t7_v13_0.effective_time = {}

-- Size: Effective Time
eurex_derivatives_eti_t7_v13_0.effective_time.size = 8

-- Display: Effective Time
eurex_derivatives_eti_t7_v13_0.effective_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Effective Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Effective Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Effective Time
eurex_derivatives_eti_t7_v13_0.effective_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.effective_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.effective_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.effective_time, range, value, display)

  return offset + length, value
end

-- Srqs Negotiation Status Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification = {}

-- Read runtime size of: Srqs Negotiation Status Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Negotiation Status Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Negotiation Status Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_negotiation_status_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Effective Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, effective_time = eurex_derivatives_eti_t7_v13_0.effective_time.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Quote Condition: 1 Byte Ascii String Enum with 4 values
  index, quote_condition = eurex_derivatives_eti_t7_v13_0.quote_condition.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Negotiation Status Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_negotiation_status_notification = eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_negotiation_status_notification then
    local range = buffer(offset, size_of_srqs_negotiation_status_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_negotiation_status_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.fields(buffer, offset, packet, parent, size_of_srqs_negotiation_status_notification)

  return offset + size_of_srqs_negotiation_status_notification
end

-- Last Update Time
eurex_derivatives_eti_t7_v13_0.last_update_time = {}

-- Size: Last Update Time
eurex_derivatives_eti_t7_v13_0.last_update_time.size = 8

-- Display: Last Update Time
eurex_derivatives_eti_t7_v13_0.last_update_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Last Update Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Last Update Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Last Update Time
eurex_derivatives_eti_t7_v13_0.last_update_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.last_update_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.last_update_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.last_update_time, range, value, display)

  return offset + length, value
end

-- Trd Reg Ts Execution Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_execution_time = {}

-- Size: Trd Reg Ts Execution Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_execution_time.size = 8

-- Display: Trd Reg Ts Execution Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_execution_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Trd Reg Ts Execution Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Trd Reg Ts Execution Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Trd Reg Ts Execution Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_execution_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_execution_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_execution_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_execution_time, range, value, display)

  return offset + length, value
end

-- Srqs Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification = {}

-- Read runtime size of: Srqs Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_negotiation_requester_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Execution Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_execution_time = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_execution_time.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Effective Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, effective_time = eurex_derivatives_eti_t7_v13_0.effective_time.dissect(buffer, index, packet, parent)

  -- Last Update Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_update_time = eurex_derivatives_eti_t7_v13_0.last_update_time.dissect(buffer, index, packet, parent)

  -- Trade To Request Ratio: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trade_to_request_ratio = eurex_derivatives_eti_t7_v13_0.trade_to_request_ratio.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Number Of Respondents: 4 Byte Unsigned Fixed Width Integer Nullable
  index, number_of_respondents = eurex_derivatives_eti_t7_v13_0.number_of_respondents.dissect(buffer, index, packet, parent)

  -- Quote Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_type = eurex_derivatives_eti_t7_v13_0.quote_type.dissect(buffer, index, packet, parent)

  -- Quote Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, quote_sub_type = eurex_derivatives_eti_t7_v13_0.quote_sub_type.dissect(buffer, index, packet, parent)

  -- Respondent Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, respondent_type = eurex_derivatives_eti_t7_v13_0.respondent_type.dissect(buffer, index, packet, parent)

  -- No Target Party I Ds: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_target_party_i_ds = eurex_derivatives_eti_t7_v13_0.no_target_party_i_ds.dissect(buffer, index, packet, parent)

  -- Number Of Resp Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, number_of_resp_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.number_of_resp_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Show Last Deal On Closure: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, show_last_deal_on_closure = eurex_derivatives_eti_t7_v13_0.show_last_deal_on_closure.dissect(buffer, index, packet, parent)

  -- Trade Aggregation Trans Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, trade_aggregation_trans_type = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect(buffer, index, packet, parent)

  -- Quote Condition: 1 Byte Ascii String Enum with 4 values
  index, quote_condition = eurex_derivatives_eti_t7_v13_0.quote_condition.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Party Order Origination Trader: 132 Byte Ascii String Nullable
  index, party_order_origination_trader = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.dissect(buffer, index, packet, parent)

  -- Charge Id: 132 Byte Ascii String Nullable
  index, charge_id = eurex_derivatives_eti_t7_v13_0.charge_id.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Target Parties Comp
  for target_parties_comp_index = 1, no_target_party_i_ds do
    index, target_parties_comp = eurex_derivatives_eti_t7_v13_0.target_parties_comp.dissect(buffer, index, packet, parent, target_parties_comp_index)
  end

  return index
end

-- Dissect: Srqs Negotiation Requester Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_negotiation_requester_notification = eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_negotiation_requester_notification then
    local range = buffer(offset, size_of_srqs_negotiation_requester_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_negotiation_requester_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.fields(buffer, offset, packet, parent, size_of_srqs_negotiation_requester_notification)

  return offset + size_of_srqs_negotiation_requester_notification
end

-- Srqs Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification = {}

-- Read runtime size of: Srqs Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_negotiation_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Effective Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, effective_time = eurex_derivatives_eti_t7_v13_0.effective_time.dissect(buffer, index, packet, parent)

  -- Last Update Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_update_time = eurex_derivatives_eti_t7_v13_0.last_update_time.dissect(buffer, index, packet, parent)

  -- Trade To Quote Ratio: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trade_to_quote_ratio = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Number Of Respondents: 4 Byte Unsigned Fixed Width Integer Nullable
  index, number_of_respondents = eurex_derivatives_eti_t7_v13_0.number_of_respondents.dissect(buffer, index, packet, parent)

  -- Trade To Quote Ratio Position: 2 Byte Unsigned Fixed Width Integer Nullable
  index, trade_to_quote_ratio_position = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_position.dissect(buffer, index, packet, parent)

  -- Quote Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_type = eurex_derivatives_eti_t7_v13_0.quote_type.dissect(buffer, index, packet, parent)

  -- Quote Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, quote_sub_type = eurex_derivatives_eti_t7_v13_0.quote_sub_type.dissect(buffer, index, packet, parent)

  -- Quote Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, quote_instruction = eurex_derivatives_eti_t7_v13_0.quote_instruction.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Trade Aggregation Trans Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, trade_aggregation_trans_type = eurex_derivatives_eti_t7_v13_0.trade_aggregation_trans_type.dissect(buffer, index, packet, parent)

  -- Quote Condition: 1 Byte Ascii String Enum with 4 values
  index, quote_condition = eurex_derivatives_eti_t7_v13_0.quote_condition.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Target Party Executing Firm: 5 Byte Ascii String Nullable
  index, target_party_executing_firm = eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Target Party Executing Trader: 6 Byte Ascii String Nullable
  index, target_party_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Party Order Origination Trader: 132 Byte Ascii String Nullable
  index, party_order_origination_trader = eurex_derivatives_eti_t7_v13_0.party_order_origination_trader.dissect(buffer, index, packet, parent)

  -- Charge Id: 132 Byte Ascii String Nullable
  index, charge_id = eurex_derivatives_eti_t7_v13_0.charge_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Negotiation Notification
eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_negotiation_notification = eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_negotiation_notification then
    local range = buffer(offset, size_of_srqs_negotiation_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_negotiation_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.fields(buffer, offset, packet, parent, size_of_srqs_negotiation_notification)

  return offset + size_of_srqs_negotiation_notification
end

-- Party Detail Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader = {}

-- Size: Party Detail Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.size = 6

-- Display: Party Detail Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Detail Executing Trader: No Value"
  end

  return "Party Detail Executing Trader: "..value
end

-- Dissect: Party Detail Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_executing_trader, range, value, display)

  return offset + length, value
end

-- Smart Party Detail Grp Comp
eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp = {}

-- Size: Smart Party Detail Grp Comp
eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_5.size

-- Display: Smart Party Detail Grp Comp
eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Smart Party Detail Grp Comp
eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.fields = function(buffer, offset, packet, parent, smart_party_detail_grp_comp_index)
  local index = offset

  -- Implicit Smart Party Detail Grp Comp Index
  if smart_party_detail_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.smart_party_detail_grp_comp_index, smart_party_detail_grp_comp_index)
    iteration:set_generated()
  end

  -- Party Detail Executing Unit: 5 Byte Ascii String Nullable
  index, party_detail_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.dissect(buffer, index, packet, parent)

  -- Party Detail Executing Trader: 6 Byte Ascii String Nullable
  index, party_detail_executing_trader = eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Smart Party Detail Grp Comp
eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.dissect = function(buffer, offset, packet, parent, smart_party_detail_grp_comp_index)
  if show.smart_party_detail_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.smart_party_detail_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.fields(buffer, offset, packet, parent, smart_party_detail_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.fields(buffer, offset, packet, parent, smart_party_detail_grp_comp_index)
  end
end

-- No Party Details
eurex_derivatives_eti_t7_v13_0.no_party_details = {}

-- Size: No Party Details
eurex_derivatives_eti_t7_v13_0.no_party_details.size = 2

-- Display: No Party Details
eurex_derivatives_eti_t7_v13_0.no_party_details.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Party Details: No Value"
  end

  return "No Party Details: "..value
end

-- Dissect: No Party Details
eurex_derivatives_eti_t7_v13_0.no_party_details.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_party_details.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_party_details.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_party_details, range, value, display)

  return offset + length, value
end

-- Srqs Inquire Smart Respondent Response
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response = {}

-- Read runtime size of: Srqs Inquire Smart Respondent Response
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Inquire Smart Respondent Response
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Inquire Smart Respondent Response
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.fields = function(buffer, offset, packet, parent, size_of_srqs_inquire_smart_respondent_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- No Party Details: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_party_details = eurex_derivatives_eti_t7_v13_0.no_party_details.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Smart Party Detail Grp Comp
  for smart_party_detail_grp_comp_index = 1, no_party_details do
    index, smart_party_detail_grp_comp = eurex_derivatives_eti_t7_v13_0.smart_party_detail_grp_comp.dissect(buffer, index, packet, parent, smart_party_detail_grp_comp_index)
  end

  return index
end

-- Dissect: Srqs Inquire Smart Respondent Response
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_inquire_smart_respondent_response = eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_inquire_smart_respondent_response then
    local range = buffer(offset, size_of_srqs_inquire_smart_respondent_response)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_inquire_smart_respondent_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.fields(buffer, offset, packet, parent, size_of_srqs_inquire_smart_respondent_response)

  return offset + size_of_srqs_inquire_smart_respondent_response
end

-- Trade To Quote Ratio Ranking
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_ranking = {}

-- Size: Trade To Quote Ratio Ranking
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_ranking.size = 1

-- Display: Trade To Quote Ratio Ranking
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_ranking.display = function(value)
  if value == 1 then
    return "Trade To Quote Ratio Ranking: Low (1)"
  end
  if value == 2 then
    return "Trade To Quote Ratio Ranking: Medium (2)"
  end
  if value == 3 then
    return "Trade To Quote Ratio Ranking: High (3)"
  end
  if value == 0xFF then
    return "Trade To Quote Ratio Ranking: No Value"
  end

  return "Trade To Quote Ratio Ranking: Unknown("..value..")"
end

-- Dissect: Trade To Quote Ratio Ranking
eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_ranking.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_ranking.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_ranking.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_to_quote_ratio_ranking, range, value, display)

  return offset + length, value
end

-- Enlight Rfq Avg Resp Rate Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_rate_ranking = {}

-- Size: Enlight Rfq Avg Resp Rate Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_rate_ranking.size = 1

-- Display: Enlight Rfq Avg Resp Rate Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_rate_ranking.display = function(value)
  if value == 1 then
    return "Enlight Rfq Avg Resp Rate Ranking: Low (1)"
  end
  if value == 2 then
    return "Enlight Rfq Avg Resp Rate Ranking: Medium (2)"
  end
  if value == 3 then
    return "Enlight Rfq Avg Resp Rate Ranking: High (3)"
  end
  if value == 0xFF then
    return "Enlight Rfq Avg Resp Rate Ranking: No Value"
  end

  return "Enlight Rfq Avg Resp Rate Ranking: Unknown("..value..")"
end

-- Dissect: Enlight Rfq Avg Resp Rate Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_rate_ranking.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_rate_ranking.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_rate_ranking.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enlight_rfq_avg_resp_rate_ranking, range, value, display)

  return offset + length, value
end

-- Enlight Rfq Avg Resp Time Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_time_ranking = {}

-- Size: Enlight Rfq Avg Resp Time Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_time_ranking.size = 1

-- Display: Enlight Rfq Avg Resp Time Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_time_ranking.display = function(value)
  if value == 1 then
    return "Enlight Rfq Avg Resp Time Ranking: Low (1)"
  end
  if value == 2 then
    return "Enlight Rfq Avg Resp Time Ranking: Medium (2)"
  end
  if value == 3 then
    return "Enlight Rfq Avg Resp Time Ranking: High (3)"
  end
  if value == 0xFF then
    return "Enlight Rfq Avg Resp Time Ranking: No Value"
  end

  return "Enlight Rfq Avg Resp Time Ranking: Unknown("..value..")"
end

-- Dissect: Enlight Rfq Avg Resp Time Ranking
eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_time_ranking.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_time_ranking.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_time_ranking.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enlight_rfq_avg_resp_time_ranking, range, value, display)

  return offset + length, value
end

-- Eurex Volume Ranking
eurex_derivatives_eti_t7_v13_0.eurex_volume_ranking = {}

-- Size: Eurex Volume Ranking
eurex_derivatives_eti_t7_v13_0.eurex_volume_ranking.size = 1

-- Display: Eurex Volume Ranking
eurex_derivatives_eti_t7_v13_0.eurex_volume_ranking.display = function(value)
  if value == 1 then
    return "Eurex Volume Ranking: Low (1)"
  end
  if value == 2 then
    return "Eurex Volume Ranking: Medium (2)"
  end
  if value == 3 then
    return "Eurex Volume Ranking: High (3)"
  end
  if value == 0xFF then
    return "Eurex Volume Ranking: No Value"
  end

  return "Eurex Volume Ranking: Unknown("..value..")"
end

-- Dissect: Eurex Volume Ranking
eurex_derivatives_eti_t7_v13_0.eurex_volume_ranking.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.eurex_volume_ranking.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.eurex_volume_ranking.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.eurex_volume_ranking, range, value, display)

  return offset + length, value
end

-- Srqs Inquire Smart Respondent Request
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request = {}

-- Read runtime size of: Srqs Inquire Smart Respondent Request
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Inquire Smart Respondent Request
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Inquire Smart Respondent Request
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.fields = function(buffer, offset, packet, parent, size_of_srqs_inquire_smart_respondent_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Eurex Volume Ranking: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, eurex_volume_ranking = eurex_derivatives_eti_t7_v13_0.eurex_volume_ranking.dissect(buffer, index, packet, parent)

  -- Enlight Rfq Avg Resp Time Ranking: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, enlight_rfq_avg_resp_time_ranking = eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_time_ranking.dissect(buffer, index, packet, parent)

  -- Enlight Rfq Avg Resp Rate Ranking: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, enlight_rfq_avg_resp_rate_ranking = eurex_derivatives_eti_t7_v13_0.enlight_rfq_avg_resp_rate_ranking.dissect(buffer, index, packet, parent)

  -- Trade To Quote Ratio Ranking: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trade_to_quote_ratio_ranking = eurex_derivatives_eti_t7_v13_0.trade_to_quote_ratio_ranking.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Inquire Smart Respondent Request
eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_inquire_smart_respondent_request = eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_inquire_smart_respondent_request then
    local range = buffer(offset, size_of_srqs_inquire_smart_respondent_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_inquire_smart_respondent_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.fields(buffer, offset, packet, parent, size_of_srqs_inquire_smart_respondent_request)

  return offset + size_of_srqs_inquire_smart_respondent_request
end

-- Srqs Hit Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp = {}

-- Size: Srqs Hit Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.order_qty.size + 
  eurex_derivatives_eti_t7_v13_0.quote_id.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Srqs Hit Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Hit Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.fields = function(buffer, offset, packet, parent, srqs_hit_quote_grp_comp_index)
  local index = offset

  -- Implicit Srqs Hit Quote Grp Comp Index
  if srqs_hit_quote_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_hit_quote_grp_comp_index, srqs_hit_quote_grp_comp_index)
    iteration:set_generated()
  end

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Hit Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.dissect = function(buffer, offset, packet, parent, srqs_hit_quote_grp_comp_index)
  if show.srqs_hit_quote_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_hit_quote_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.fields(buffer, offset, packet, parent, srqs_hit_quote_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.fields(buffer, offset, packet, parent, srqs_hit_quote_grp_comp_index)
  end
end

-- Firm Trade Id
eurex_derivatives_eti_t7_v13_0.firm_trade_id = {}

-- Size: Firm Trade Id
eurex_derivatives_eti_t7_v13_0.firm_trade_id.size = 20

-- Display: Firm Trade Id
eurex_derivatives_eti_t7_v13_0.firm_trade_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Firm Trade Id: No Value"
  end

  return "Firm Trade Id: "..value
end

-- Dissect: Firm Trade Id
eurex_derivatives_eti_t7_v13_0.firm_trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.firm_trade_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.firm_trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.firm_trade_id, range, value, display)

  return offset + length, value
end

-- No Srqs Quote Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps = {}

-- Size: No Srqs Quote Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps.size = 1

-- Display: No Srqs Quote Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Srqs Quote Grps: No Value"
  end

  return "No Srqs Quote Grps: "..value
end

-- Dissect: No Srqs Quote Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_srqs_quote_grps, range, value, display)

  return offset + length, value
end

-- Hedging Instruction
eurex_derivatives_eti_t7_v13_0.hedging_instruction = {}

-- Size: Hedging Instruction
eurex_derivatives_eti_t7_v13_0.hedging_instruction.size = 1

-- Display: Hedging Instruction
eurex_derivatives_eti_t7_v13_0.hedging_instruction.display = function(value)
  if value == 1 then
    return "Hedging Instruction: On Close (1)"
  end
  if value == 0xFF then
    return "Hedging Instruction: No Value"
  end

  return "Hedging Instruction: Unknown("..value..")"
end

-- Dissect: Hedging Instruction
eurex_derivatives_eti_t7_v13_0.hedging_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.hedging_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.hedging_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.hedging_instruction, range, value, display)

  return offset + length, value
end

-- Srqs Hit Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request = {}

-- Read runtime size of: Srqs Hit Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Hit Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Hit Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.fields = function(buffer, offset, packet, parent, size_of_srqs_hit_quote_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Valid Until Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, valid_until_time = eurex_derivatives_eti_t7_v13_0.valid_until_time.dissect(buffer, index, packet, parent)

  -- Underlying Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_qty = eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect(buffer, index, packet, parent)

  -- Underlying Price Stip Value: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_price_stip_value = eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Hedging Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, hedging_instruction = eurex_derivatives_eti_t7_v13_0.hedging_instruction.dissect(buffer, index, packet, parent)

  -- No Srqs Quote Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_srqs_quote_grps = eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Firm Trade Id: 20 Byte Ascii String Nullable
  index, firm_trade_id = eurex_derivatives_eti_t7_v13_0.firm_trade_id.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Srqs Hit Quote Grp Comp
  for srqs_hit_quote_grp_comp_index = 1, no_srqs_quote_grps do
    index, srqs_hit_quote_grp_comp = eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_grp_comp.dissect(buffer, index, packet, parent, srqs_hit_quote_grp_comp_index)
  end

  return index
end

-- Dissect: Srqs Hit Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_hit_quote_request = eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_hit_quote_request then
    local range = buffer(offset, size_of_srqs_hit_quote_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_hit_quote_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.fields(buffer, offset, packet, parent, size_of_srqs_hit_quote_request)

  return offset + size_of_srqs_hit_quote_request
end

-- Srqs Enter Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request = {}

-- Read runtime size of: Srqs Enter Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Enter Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Enter Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.fields = function(buffer, offset, packet, parent, size_of_srqs_enter_quote_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Bid Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_size = eurex_derivatives_eti_t7_v13_0.bid_size.dissect(buffer, index, packet, parent)

  -- Offer Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_size = eurex_derivatives_eti_t7_v13_0.offer_size.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Quote Ref Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_ref_price = eurex_derivatives_eti_t7_v13_0.quote_ref_price.dissect(buffer, index, packet, parent)

  -- Valid Until Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, valid_until_time = eurex_derivatives_eti_t7_v13_0.valid_until_time.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Enter Quote Request
eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_enter_quote_request = eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_enter_quote_request then
    local range = buffer(offset, size_of_srqs_enter_quote_request)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_enter_quote_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.fields(buffer, offset, packet, parent, size_of_srqs_enter_quote_request)

  return offset + size_of_srqs_enter_quote_request
end

-- Srqs Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp = {}

-- Size: Srqs Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.quote_id.size

-- Display: Srqs Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.fields = function(buffer, offset, packet, parent, srqs_quote_grp_comp_index)
  local index = offset

  -- Implicit Srqs Quote Grp Comp Index
  if srqs_quote_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_grp_comp_index, srqs_quote_grp_comp_index)
    iteration:set_generated()
  end

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Quote Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.dissect = function(buffer, offset, packet, parent, srqs_quote_grp_comp_index)
  if show.srqs_quote_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_quote_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.fields(buffer, offset, packet, parent, srqs_quote_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.fields(buffer, offset, packet, parent, srqs_quote_grp_comp_index)
  end
end

-- Secondary Trade Id
eurex_derivatives_eti_t7_v13_0.secondary_trade_id = {}

-- Size: Secondary Trade Id
eurex_derivatives_eti_t7_v13_0.secondary_trade_id.size = 4

-- Display: Secondary Trade Id
eurex_derivatives_eti_t7_v13_0.secondary_trade_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Secondary Trade Id: No Value"
  end

  return "Secondary Trade Id: "..value
end

-- Dissect: Secondary Trade Id
eurex_derivatives_eti_t7_v13_0.secondary_trade_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.secondary_trade_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.secondary_trade_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.secondary_trade_id, range, value, display)

  return offset + length, value
end

-- Srqs Deal Response
eurex_derivatives_eti_t7_v13_0.srqs_deal_response = {}

-- Read runtime size of: Srqs Deal Response
eurex_derivatives_eti_t7_v13_0.srqs_deal_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Deal Response
eurex_derivatives_eti_t7_v13_0.srqs_deal_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Deal Response
eurex_derivatives_eti_t7_v13_0.srqs_deal_response.fields = function(buffer, offset, packet, parent, size_of_srqs_deal_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_id = eurex_derivatives_eti_t7_v13_0.trade_id.dissect(buffer, index, packet, parent)

  -- Secondary Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, secondary_trade_id = eurex_derivatives_eti_t7_v13_0.secondary_trade_id.dissect(buffer, index, packet, parent)

  -- No Srqs Quote Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_srqs_quote_grps = eurex_derivatives_eti_t7_v13_0.no_srqs_quote_grps.dissect(buffer, index, packet, parent)

  -- Firm Trade Id: 20 Byte Ascii String Nullable
  index, firm_trade_id = eurex_derivatives_eti_t7_v13_0.firm_trade_id.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Repeating: Srqs Quote Grp Comp
  for srqs_quote_grp_comp_index = 1, no_srqs_quote_grps do
    index, srqs_quote_grp_comp = eurex_derivatives_eti_t7_v13_0.srqs_quote_grp_comp.dissect(buffer, index, packet, parent, srqs_quote_grp_comp_index)
  end

  return index
end

-- Dissect: Srqs Deal Response
eurex_derivatives_eti_t7_v13_0.srqs_deal_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_deal_response = eurex_derivatives_eti_t7_v13_0.srqs_deal_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_deal_response then
    local range = buffer(offset, size_of_srqs_deal_response)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_deal_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_deal_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_deal_response.fields(buffer, offset, packet, parent, size_of_srqs_deal_response)

  return offset + size_of_srqs_deal_response
end

-- Target Party Entering Trader
eurex_derivatives_eti_t7_v13_0.target_party_entering_trader = {}

-- Size: Target Party Entering Trader
eurex_derivatives_eti_t7_v13_0.target_party_entering_trader.size = 6

-- Display: Target Party Entering Trader
eurex_derivatives_eti_t7_v13_0.target_party_entering_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Target Party Entering Trader: No Value"
  end

  return "Target Party Entering Trader: "..value
end

-- Dissect: Target Party Entering Trader
eurex_derivatives_eti_t7_v13_0.target_party_entering_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.target_party_entering_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.target_party_entering_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_entering_trader, range, value, display)

  return offset + length, value
end

-- Srqs Target Party Trd Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp = {}

-- Size: Srqs Target Party Trd Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.side_last_qty.size + 
  eurex_derivatives_eti_t7_v13_0.quote_id.size + 
  eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.target_party_entering_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: Srqs Target Party Trd Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Target Party Trd Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.fields = function(buffer, offset, packet, parent, srqs_target_party_trd_grp_comp_index)
  local index = offset

  -- Implicit Srqs Target Party Trd Grp Comp Index
  if srqs_target_party_trd_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_target_party_trd_grp_comp_index, srqs_target_party_trd_grp_comp_index)
    iteration:set_generated()
  end

  -- Side Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, side_last_qty = eurex_derivatives_eti_t7_v13_0.side_last_qty.dissect(buffer, index, packet, parent)

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Target Party Executing Firm: 5 Byte Ascii String Nullable
  index, target_party_executing_firm = eurex_derivatives_eti_t7_v13_0.target_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Target Party Executing Trader: 6 Byte Ascii String Nullable
  index, target_party_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Target Party Entering Trader: 6 Byte Ascii String Nullable
  index, target_party_entering_trader = eurex_derivatives_eti_t7_v13_0.target_party_entering_trader.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Srqs Target Party Trd Grp Comp
eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.dissect = function(buffer, offset, packet, parent, srqs_target_party_trd_grp_comp_index)
  if show.srqs_target_party_trd_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_target_party_trd_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.fields(buffer, offset, packet, parent, srqs_target_party_trd_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.fields(buffer, offset, packet, parent, srqs_target_party_trd_grp_comp_index)
  end
end

-- Root Party Entering Trader
eurex_derivatives_eti_t7_v13_0.root_party_entering_trader = {}

-- Size: Root Party Entering Trader
eurex_derivatives_eti_t7_v13_0.root_party_entering_trader.size = 6

-- Display: Root Party Entering Trader
eurex_derivatives_eti_t7_v13_0.root_party_entering_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Entering Trader: No Value"
  end

  return "Root Party Entering Trader: "..value
end

-- Dissect: Root Party Entering Trader
eurex_derivatives_eti_t7_v13_0.root_party_entering_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_entering_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_entering_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_entering_trader, range, value, display)

  return offset + length, value
end

-- No Srqs Target Party Trd Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps = {}

-- Size: No Srqs Target Party Trd Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps.size = 1

-- Display: No Srqs Target Party Trd Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Srqs Target Party Trd Grps: No Value"
  end

  return "No Srqs Target Party Trd Grps: "..value
end

-- Dissect: No Srqs Target Party Trd Grps
eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_srqs_target_party_trd_grps, range, value, display)

  return offset + length, value
end

-- Trade Request Result
eurex_derivatives_eti_t7_v13_0.trade_request_result = {}

-- Size: Trade Request Result
eurex_derivatives_eti_t7_v13_0.trade_request_result.size = 1

-- Display: Trade Request Result
eurex_derivatives_eti_t7_v13_0.trade_request_result.display = function(value)
  if value == 100 then
    return "Trade Request Result: Cancelpending (100)"
  end
  if value == 101 then
    return "Trade Request Result: Canceldeclined (101)"
  end
  if value == 102 then
    return "Trade Request Result: Cancelapproved (102)"
  end
  if value == 0xFF then
    return "Trade Request Result: No Value"
  end

  return "Trade Request Result: Unknown("..value..")"
end

-- Dissect: Trade Request Result
eurex_derivatives_eti_t7_v13_0.trade_request_result.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trade_request_result.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trade_request_result.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trade_request_result, range, value, display)

  return offset + length, value
end

-- Requesting Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.requesting_party_sub_id_type = {}

-- Size: Requesting Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.requesting_party_sub_id_type.size = 2

-- Display: Requesting Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.requesting_party_sub_id_type.display = function(value)
  if value == 5000 then
    return "Requesting Party Sub Id Type: Requester (5000)"
  end
  if value == 5001 then
    return "Requesting Party Sub Id Type: Responder (5001)"
  end
  if value == 5002 then
    return "Requesting Party Sub Id Type: Both (5002)"
  end
  if value == 5003 then
    return "Requesting Party Sub Id Type: System (5003)"
  end
  if value == 0xFFFF then
    return "Requesting Party Sub Id Type: No Value"
  end

  return "Requesting Party Sub Id Type: Unknown("..value..")"
end

-- Dissect: Requesting Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.requesting_party_sub_id_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.requesting_party_sub_id_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.requesting_party_sub_id_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_sub_id_type, range, value, display)

  return offset + length, value
end

-- Srqs Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_deal_notification = {}

-- Read runtime size of: Srqs Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_deal_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Underlying Price Stip Value: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_price_stip_value = eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_id = eurex_derivatives_eti_t7_v13_0.trade_id.dissect(buffer, index, packet, parent)

  -- Requesting Party Sub Id Type: 2 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, requesting_party_sub_id_type = eurex_derivatives_eti_t7_v13_0.requesting_party_sub_id_type.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Trade Request Result: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trade_request_result = eurex_derivatives_eti_t7_v13_0.trade_request_result.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- No Srqs Target Party Trd Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_srqs_target_party_trd_grps = eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps.dissect(buffer, index, packet, parent)

  -- Root Party Executing Firm: 5 Byte Ascii String Nullable
  index, root_party_executing_firm = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Executing Trader: 6 Byte Ascii String Nullable
  index, root_party_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Entering Trader: 6 Byte Ascii String Nullable
  index, root_party_entering_trader = eurex_derivatives_eti_t7_v13_0.root_party_entering_trader.dissect(buffer, index, packet, parent)

  -- Firm Trade Id: 20 Byte Ascii String Nullable
  index, firm_trade_id = eurex_derivatives_eti_t7_v13_0.firm_trade_id.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Repeating: Srqs Target Party Trd Grp Comp
  for srqs_target_party_trd_grp_comp_index = 1, no_srqs_target_party_trd_grps do
    index, srqs_target_party_trd_grp_comp = eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.dissect(buffer, index, packet, parent, srqs_target_party_trd_grp_comp_index)
  end

  return index
end

-- Dissect: Srqs Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_deal_notification = eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_deal_notification then
    local range = buffer(offset, size_of_srqs_deal_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_deal_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.fields(buffer, offset, packet, parent, size_of_srqs_deal_notification)

  return offset + size_of_srqs_deal_notification
end

-- Md Sub Book Type
eurex_derivatives_eti_t7_v13_0.md_sub_book_type = {}

-- Size: Md Sub Book Type
eurex_derivatives_eti_t7_v13_0.md_sub_book_type.size = 1

-- Display: Md Sub Book Type
eurex_derivatives_eti_t7_v13_0.md_sub_book_type.display = function(value)
  if value == 1 then
    return "Md Sub Book Type: Implied (1)"
  end
  if value == 2 then
    return "Md Sub Book Type: Volume Weighted Average (2)"
  end
  if value == 0xFF then
    return "Md Sub Book Type: No Value"
  end

  return "Md Sub Book Type: Unknown("..value..")"
end

-- Dissect: Md Sub Book Type
eurex_derivatives_eti_t7_v13_0.md_sub_book_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.md_sub_book_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.md_sub_book_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.md_sub_book_type, range, value, display)

  return offset + length, value
end

-- Md Book Type
eurex_derivatives_eti_t7_v13_0.md_book_type = {}

-- Size: Md Book Type
eurex_derivatives_eti_t7_v13_0.md_book_type.size = 1

-- Display: Md Book Type
eurex_derivatives_eti_t7_v13_0.md_book_type.display = function(value)
  if value == 1 then
    return "Md Book Type: Top Of Book (1)"
  end
  if value == 2 then
    return "Md Book Type: Price Depth (2)"
  end
  if value == 0xFF then
    return "Md Book Type: No Value"
  end

  return "Md Book Type: Unknown("..value..")"
end

-- Dissect: Md Book Type
eurex_derivatives_eti_t7_v13_0.md_book_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.md_book_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.md_book_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.md_book_type, range, value, display)

  return offset + length, value
end

-- Best Offer Size
eurex_derivatives_eti_t7_v13_0.best_offer_size = {}

-- Size: Best Offer Size
eurex_derivatives_eti_t7_v13_0.best_offer_size.size = 8

-- Display: Best Offer Size
eurex_derivatives_eti_t7_v13_0.best_offer_size.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Best Offer Size: No Value"
  end

  return "Best Offer Size: "..value
end

-- Translate: Best Offer Size
eurex_derivatives_eti_t7_v13_0.best_offer_size.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Best Offer Size
eurex_derivatives_eti_t7_v13_0.best_offer_size.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.best_offer_size.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.best_offer_size.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.best_offer_size.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.best_offer_size, range, value, display)

  return offset + length, value
end

-- Best Offer Px
eurex_derivatives_eti_t7_v13_0.best_offer_px = {}

-- Size: Best Offer Px
eurex_derivatives_eti_t7_v13_0.best_offer_px.size = 8

-- Display: Best Offer Px
eurex_derivatives_eti_t7_v13_0.best_offer_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Best Offer Px: No Value"
  end

  return "Best Offer Px: "..value
end

-- Translate: Best Offer Px
eurex_derivatives_eti_t7_v13_0.best_offer_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Best Offer Px
eurex_derivatives_eti_t7_v13_0.best_offer_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.best_offer_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.best_offer_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.best_offer_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.best_offer_px, range, value, display)

  return offset + length, value
end

-- Best Bid Size
eurex_derivatives_eti_t7_v13_0.best_bid_size = {}

-- Size: Best Bid Size
eurex_derivatives_eti_t7_v13_0.best_bid_size.size = 8

-- Display: Best Bid Size
eurex_derivatives_eti_t7_v13_0.best_bid_size.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Best Bid Size: No Value"
  end

  return "Best Bid Size: "..value
end

-- Translate: Best Bid Size
eurex_derivatives_eti_t7_v13_0.best_bid_size.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Best Bid Size
eurex_derivatives_eti_t7_v13_0.best_bid_size.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.best_bid_size.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.best_bid_size.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.best_bid_size.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.best_bid_size, range, value, display)

  return offset + length, value
end

-- Best Bid Px
eurex_derivatives_eti_t7_v13_0.best_bid_px = {}

-- Size: Best Bid Px
eurex_derivatives_eti_t7_v13_0.best_bid_px.size = 8

-- Display: Best Bid Px
eurex_derivatives_eti_t7_v13_0.best_bid_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Best Bid Px: No Value"
  end

  return "Best Bid Px: "..value
end

-- Translate: Best Bid Px
eurex_derivatives_eti_t7_v13_0.best_bid_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Best Bid Px
eurex_derivatives_eti_t7_v13_0.best_bid_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.best_bid_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.best_bid_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.best_bid_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.best_bid_px, range, value, display)

  return offset + length, value
end

-- Order Book Item Grp Comp
eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp = {}

-- Size: Order Book Item Grp Comp
eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.best_bid_px.size + 
  eurex_derivatives_eti_t7_v13_0.best_bid_size.size + 
  eurex_derivatives_eti_t7_v13_0.best_offer_px.size + 
  eurex_derivatives_eti_t7_v13_0.best_offer_size.size + 
  eurex_derivatives_eti_t7_v13_0.md_book_type.size + 
  eurex_derivatives_eti_t7_v13_0.md_sub_book_type.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Order Book Item Grp Comp
eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Order Book Item Grp Comp
eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.fields = function(buffer, offset, packet, parent, order_book_item_grp_comp_index)
  local index = offset

  -- Implicit Order Book Item Grp Comp Index
  if order_book_item_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_book_item_grp_comp_index, order_book_item_grp_comp_index)
    iteration:set_generated()
  end

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Best Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, best_bid_px = eurex_derivatives_eti_t7_v13_0.best_bid_px.dissect(buffer, index, packet, parent)

  -- Best Bid Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, best_bid_size = eurex_derivatives_eti_t7_v13_0.best_bid_size.dissect(buffer, index, packet, parent)

  -- Best Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, best_offer_px = eurex_derivatives_eti_t7_v13_0.best_offer_px.dissect(buffer, index, packet, parent)

  -- Best Offer Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, best_offer_size = eurex_derivatives_eti_t7_v13_0.best_offer_size.dissect(buffer, index, packet, parent)

  -- Md Book Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, md_book_type = eurex_derivatives_eti_t7_v13_0.md_book_type.dissect(buffer, index, packet, parent)

  -- Md Sub Book Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, md_sub_book_type = eurex_derivatives_eti_t7_v13_0.md_sub_book_type.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Order Book Item Grp Comp
eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.dissect = function(buffer, offset, packet, parent, order_book_item_grp_comp_index)
  if show.order_book_item_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_book_item_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.fields(buffer, offset, packet, parent, order_book_item_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.fields(buffer, offset, packet, parent, order_book_item_grp_comp_index)
  end
end

-- No Order Book Items
eurex_derivatives_eti_t7_v13_0.no_order_book_items = {}

-- Size: No Order Book Items
eurex_derivatives_eti_t7_v13_0.no_order_book_items.size = 1

-- Display: No Order Book Items
eurex_derivatives_eti_t7_v13_0.no_order_book_items.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Order Book Items: No Value"
  end

  return "No Order Book Items: "..value
end

-- Dissect: No Order Book Items
eurex_derivatives_eti_t7_v13_0.no_order_book_items.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_order_book_items.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_order_book_items.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_order_book_items, range, value, display)

  return offset + length, value
end

-- Underlying Effective Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage = {}

-- Size: Underlying Effective Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.size = 8

-- Display: Underlying Effective Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Underlying Effective Delta Percentage: No Value"
  end

  return "Underlying Effective Delta Percentage: "..value
end

-- Translate: Underlying Effective Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Underlying Effective Delta Percentage
eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.underlying_effective_delta_percentage, range, value, display)

  return offset + length, value
end

-- Srqs Create Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification = {}

-- Read runtime size of: Srqs Create Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Srqs Create Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Srqs Create Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.fields = function(buffer, offset, packet, parent, size_of_srqs_create_deal_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_qty = eurex_derivatives_eti_t7_v13_0.last_qty.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Expire Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, expire_time = eurex_derivatives_eti_t7_v13_0.expire_time.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Underlying Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_delta_percentage.dissect(buffer, index, packet, parent)

  -- Underlying Effective Delta Percentage: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_effective_delta_percentage = eurex_derivatives_eti_t7_v13_0.underlying_effective_delta_percentage.dissect(buffer, index, packet, parent)

  -- Underlying Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_qty = eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect(buffer, index, packet, parent)

  -- Underlying Price Stip Value: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_price_stip_value = eurex_derivatives_eti_t7_v13_0.underlying_price_stip_value.dissect(buffer, index, packet, parent)

  -- Negotiation Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, negotiation_id = eurex_derivatives_eti_t7_v13_0.negotiation_id.dissect(buffer, index, packet, parent)

  -- Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_id = eurex_derivatives_eti_t7_v13_0.trade_id.dissect(buffer, index, packet, parent)

  -- Orig Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, orig_trade_id = eurex_derivatives_eti_t7_v13_0.orig_trade_id.dissect(buffer, index, packet, parent)

  -- Trd Rpt Status: 1 Byte Unsigned Fixed Width Integer Enum with 8 values
  index, trd_rpt_status = eurex_derivatives_eti_t7_v13_0.trd_rpt_status.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- No Order Book Items: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_book_items = eurex_derivatives_eti_t7_v13_0.no_order_book_items.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Hedging Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, hedging_instruction = eurex_derivatives_eti_t7_v13_0.hedging_instruction.dissect(buffer, index, packet, parent)

  -- No Srqs Target Party Trd Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_srqs_target_party_trd_grps = eurex_derivatives_eti_t7_v13_0.no_srqs_target_party_trd_grps.dissect(buffer, index, packet, parent)

  -- Root Party Executing Firm: 5 Byte Ascii String Nullable
  index, root_party_executing_firm = eurex_derivatives_eti_t7_v13_0.root_party_executing_firm.dissect(buffer, index, packet, parent)

  -- Root Party Executing Trader: 6 Byte Ascii String Nullable
  index, root_party_executing_trader = eurex_derivatives_eti_t7_v13_0.root_party_executing_trader.dissect(buffer, index, packet, parent)

  -- Root Party Entering Trader: 6 Byte Ascii String Nullable
  index, root_party_entering_trader = eurex_derivatives_eti_t7_v13_0.root_party_entering_trader.dissect(buffer, index, packet, parent)

  -- Firm Trade Id: 20 Byte Ascii String Nullable
  index, firm_trade_id = eurex_derivatives_eti_t7_v13_0.firm_trade_id.dissect(buffer, index, packet, parent)

  -- Firm Negotiation Id: 20 Byte Ascii String Nullable
  index, firm_negotiation_id = eurex_derivatives_eti_t7_v13_0.firm_negotiation_id.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Free Text 5: 132 Byte Ascii String Nullable
  index, free_text_5 = eurex_derivatives_eti_t7_v13_0.free_text_5.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Repeating: Order Book Item Grp Comp
  for order_book_item_grp_comp_index = 1, no_order_book_items do
    index, order_book_item_grp_comp = eurex_derivatives_eti_t7_v13_0.order_book_item_grp_comp.dissect(buffer, index, packet, parent, order_book_item_grp_comp_index)
  end

  -- Repeating: Srqs Target Party Trd Grp Comp
  for srqs_target_party_trd_grp_comp_index = 1, no_srqs_target_party_trd_grps do
    index, srqs_target_party_trd_grp_comp = eurex_derivatives_eti_t7_v13_0.srqs_target_party_trd_grp_comp.dissect(buffer, index, packet, parent, srqs_target_party_trd_grp_comp_index)
  end

  return index
end

-- Dissect: Srqs Create Deal Notification
eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_srqs_create_deal_notification = eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.srqs_create_deal_notification then
    local range = buffer(offset, size_of_srqs_create_deal_notification)
    local display = eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.srqs_create_deal_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.fields(buffer, offset, packet, parent, size_of_srqs_create_deal_notification)

  return offset + size_of_srqs_create_deal_notification
end

-- Requesting Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm = {}

-- Size: Requesting Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm.size = 9

-- Display: Requesting Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Requesting Party Clearing Firm: No Value"
  end

  return "Requesting Party Clearing Firm: "..value
end

-- Dissect: Requesting Party Clearing Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_clearing_firm, range, value, display)

  return offset + length, value
end

-- Requesting Party Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm = {}

-- Size: Requesting Party Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm.size = 9

-- Display: Requesting Party Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Requesting Party Entering Firm: No Value"
  end

  return "Requesting Party Entering Firm: "..value
end

-- Dissect: Requesting Party Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_entering_firm, range, value, display)

  return offset + length, value
end

-- Risk Limit Action
eurex_derivatives_eti_t7_v13_0.risk_limit_action = {}

-- Size: Risk Limit Action
eurex_derivatives_eti_t7_v13_0.risk_limit_action.size = 1

-- Display: Risk Limit Action
eurex_derivatives_eti_t7_v13_0.risk_limit_action.display = function(value)
  if value == 0 then
    return "Risk Limit Action: Queue Inbound (0)"
  end
  if value == 2 then
    return "Risk Limit Action: Reject (2)"
  end
  if value == 4 then
    return "Risk Limit Action: Warning (4)"
  end
  if value == 0xFF then
    return "Risk Limit Action: No Value"
  end

  return "Risk Limit Action: Unknown("..value..")"
end

-- Dissect: Risk Limit Action
eurex_derivatives_eti_t7_v13_0.risk_limit_action.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_action.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_action.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_action, range, value, display)

  return offset + length, value
end

-- List Update Action
eurex_derivatives_eti_t7_v13_0.list_update_action = {}

-- Size: List Update Action
eurex_derivatives_eti_t7_v13_0.list_update_action.size = 1

-- Display: List Update Action
eurex_derivatives_eti_t7_v13_0.list_update_action.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "List Update Action: No Value"
  end

  if value == "A" then
    return "List Update Action: Add (A)"
  end
  if value == "D" then
    return "List Update Action: Delete (D)"
  end

  return "List Update Action: Unknown("..value..")"
end

-- Dissect: List Update Action
eurex_derivatives_eti_t7_v13_0.list_update_action.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.list_update_action.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.list_update_action.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.list_update_action, range, value, display)

  return offset + length, value
end

-- Inventory Check Type
eurex_derivatives_eti_t7_v13_0.inventory_check_type = {}

-- Size: Inventory Check Type
eurex_derivatives_eti_t7_v13_0.inventory_check_type.size = 1

-- Display: Inventory Check Type
eurex_derivatives_eti_t7_v13_0.inventory_check_type.display = function(value)
  if value == 0 then
    return "Inventory Check Type: Donotcheck (0)"
  end
  if value == 1 then
    return "Inventory Check Type: Check (1)"
  end
  if value == 0xFF then
    return "Inventory Check Type: No Value"
  end

  return "Inventory Check Type: Unknown("..value..")"
end

-- Dissect: Inventory Check Type
eurex_derivatives_eti_t7_v13_0.inventory_check_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.inventory_check_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.inventory_check_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inventory_check_type, range, value, display)

  return offset + length, value
end

-- Market Id
eurex_derivatives_eti_t7_v13_0.market_id = {}

-- Size: Market Id
eurex_derivatives_eti_t7_v13_0.market_id.size = 2

-- Display: Market Id
eurex_derivatives_eti_t7_v13_0.market_id.display = function(value)
  if value == 1 then
    return "Market Id: Xeur (1)"
  end
  if value == 2 then
    return "Market Id: Xeee (2)"
  end
  if value == 12 then
    return "Market Id: Nodx (12)"
  end
  if value == 0xFFFF then
    return "Market Id: No Value"
  end

  return "Market Id: Unknown("..value..")"
end

-- Dissect: Market Id
eurex_derivatives_eti_t7_v13_0.market_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.market_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.market_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.market_id, range, value, display)

  return offset + length, value
end

-- Requesting Party Id Executing System
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system = {}

-- Size: Requesting Party Id Executing System
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.size = 4

-- Display: Requesting Party Id Executing System
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.display = function(value)
  if value == 1 then
    return "Requesting Party Id Executing System: Eurex Clearing (1)"
  end
  if value == 2 then
    return "Requesting Party Id Executing System: T 7 (2)"
  end
  if value == 0xFFFFFFFF then
    return "Requesting Party Id Executing System: No Value"
  end

  return "Requesting Party Id Executing System: Unknown("..value..")"
end

-- Dissect: Requesting Party Id Executing System
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_id_executing_system, range, value, display)

  return offset + length, value
end

-- Party Detail Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit = {}

-- Size: Party Detail Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit.size = 4

-- Display: Party Detail Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Party Detail Id Executing Unit: No Value"
  end

  return "Party Detail Id Executing Unit: "..value
end

-- Dissect: Party Detail Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_id_executing_unit, range, value, display)

  return offset + length, value
end

-- Risk Notification Broadcast
eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast = {}

-- Read runtime size of: Risk Notification Broadcast
eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Risk Notification Broadcast
eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Risk Notification Broadcast
eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.fields = function(buffer, offset, packet, parent, size_of_risk_notification_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Party Detail Id Executing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_detail_id_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit.dissect(buffer, index, packet, parent)

  -- Requesting Party Id Executing System: 4 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, requesting_party_id_executing_system = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.dissect(buffer, index, packet, parent)

  -- Market Id: 2 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, market_id = eurex_derivatives_eti_t7_v13_0.market_id.dissect(buffer, index, packet, parent)

  -- Inventory Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, inventory_check_type = eurex_derivatives_eti_t7_v13_0.inventory_check_type.dissect(buffer, index, packet, parent)

  -- List Update Action: 1 Byte Ascii String Enum with 2 values
  index, list_update_action = eurex_derivatives_eti_t7_v13_0.list_update_action.dissect(buffer, index, packet, parent)

  -- Risk Limit Action: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, risk_limit_action = eurex_derivatives_eti_t7_v13_0.risk_limit_action.dissect(buffer, index, packet, parent)

  -- Requesting Party Entering Firm: 9 Byte Ascii String Nullable
  index, requesting_party_entering_firm = eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm.dissect(buffer, index, packet, parent)

  -- Requesting Party Clearing Firm: 9 Byte Ascii String Nullable
  index, requesting_party_clearing_firm = eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Risk Notification Broadcast
eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_risk_notification_broadcast = eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.risk_notification_broadcast then
    local range = buffer(offset, size_of_risk_notification_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_notification_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.fields(buffer, offset, packet, parent, size_of_risk_notification_broadcast)

  return offset + size_of_risk_notification_broadcast
end

-- Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request = {}

-- Read runtime size of: Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.fields = function(buffer, offset, packet, parent, size_of_reverse_tes_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Reversal Reason Text: 132 Byte Ascii String Nullable
  index, reversal_reason_text = eurex_derivatives_eti_t7_v13_0.reversal_reason_text.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_reverse_tes_trade_request = eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.reverse_tes_trade_request then
    local range = buffer(offset, size_of_reverse_tes_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.reverse_tes_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.fields(buffer, offset, packet, parent, size_of_reverse_tes_trade_request)

  return offset + size_of_reverse_tes_trade_request
end

-- Appl Total Message Count
eurex_derivatives_eti_t7_v13_0.appl_total_message_count = {}

-- Size: Appl Total Message Count
eurex_derivatives_eti_t7_v13_0.appl_total_message_count.size = 2

-- Display: Appl Total Message Count
eurex_derivatives_eti_t7_v13_0.appl_total_message_count.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Appl Total Message Count: No Value"
  end

  return "Appl Total Message Count: "..value
end

-- Dissect: Appl Total Message Count
eurex_derivatives_eti_t7_v13_0.appl_total_message_count.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_total_message_count.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_total_message_count.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_total_message_count, range, value, display)

  return offset + length, value
end

-- Ref Appl Last Seq Num
eurex_derivatives_eti_t7_v13_0.ref_appl_last_seq_num = {}

-- Size: Ref Appl Last Seq Num
eurex_derivatives_eti_t7_v13_0.ref_appl_last_seq_num.size = 8

-- Display: Ref Appl Last Seq Num
eurex_derivatives_eti_t7_v13_0.ref_appl_last_seq_num.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Ref Appl Last Seq Num: No Value"
  end

  return "Ref Appl Last Seq Num: "..value
end

-- Dissect: Ref Appl Last Seq Num
eurex_derivatives_eti_t7_v13_0.ref_appl_last_seq_num.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.ref_appl_last_seq_num.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.ref_appl_last_seq_num.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ref_appl_last_seq_num, range, value, display)

  return offset + length, value
end

-- Appl End Seq Num
eurex_derivatives_eti_t7_v13_0.appl_end_seq_num = {}

-- Size: Appl End Seq Num
eurex_derivatives_eti_t7_v13_0.appl_end_seq_num.size = 8

-- Display: Appl End Seq Num
eurex_derivatives_eti_t7_v13_0.appl_end_seq_num.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Appl End Seq Num: No Value"
  end

  return "Appl End Seq Num: "..value
end

-- Dissect: Appl End Seq Num
eurex_derivatives_eti_t7_v13_0.appl_end_seq_num.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_end_seq_num.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.appl_end_seq_num.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_end_seq_num, range, value, display)

  return offset + length, value
end

-- Retransmit Response
eurex_derivatives_eti_t7_v13_0.retransmit_response = {}

-- Read runtime size of: Retransmit Response
eurex_derivatives_eti_t7_v13_0.retransmit_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Retransmit Response
eurex_derivatives_eti_t7_v13_0.retransmit_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Retransmit Response
eurex_derivatives_eti_t7_v13_0.retransmit_response.fields = function(buffer, offset, packet, parent, size_of_retransmit_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Appl End Seq Num: 8 Byte Unsigned Fixed Width Integer Nullable
  index, appl_end_seq_num = eurex_derivatives_eti_t7_v13_0.appl_end_seq_num.dissect(buffer, index, packet, parent)

  -- Ref Appl Last Seq Num: 8 Byte Unsigned Fixed Width Integer Nullable
  index, ref_appl_last_seq_num = eurex_derivatives_eti_t7_v13_0.ref_appl_last_seq_num.dissect(buffer, index, packet, parent)

  -- Appl Total Message Count: 2 Byte Unsigned Fixed Width Integer Nullable
  index, appl_total_message_count = eurex_derivatives_eti_t7_v13_0.appl_total_message_count.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Retransmit Response
eurex_derivatives_eti_t7_v13_0.retransmit_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_retransmit_response = eurex_derivatives_eti_t7_v13_0.retransmit_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.retransmit_response then
    local range = buffer(offset, size_of_retransmit_response)
    local display = eurex_derivatives_eti_t7_v13_0.retransmit_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.retransmit_response.fields(buffer, offset, packet, parent, size_of_retransmit_response)

  return offset + size_of_retransmit_response
end

-- Appl Beg Seq Num
eurex_derivatives_eti_t7_v13_0.appl_beg_seq_num = {}

-- Size: Appl Beg Seq Num
eurex_derivatives_eti_t7_v13_0.appl_beg_seq_num.size = 8

-- Display: Appl Beg Seq Num
eurex_derivatives_eti_t7_v13_0.appl_beg_seq_num.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Appl Beg Seq Num: No Value"
  end

  return "Appl Beg Seq Num: "..value
end

-- Dissect: Appl Beg Seq Num
eurex_derivatives_eti_t7_v13_0.appl_beg_seq_num.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_beg_seq_num.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.appl_beg_seq_num.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_beg_seq_num, range, value, display)

  return offset + length, value
end

-- Retransmit Request
eurex_derivatives_eti_t7_v13_0.retransmit_request = {}

-- Read runtime size of: Retransmit Request
eurex_derivatives_eti_t7_v13_0.retransmit_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Retransmit Request
eurex_derivatives_eti_t7_v13_0.retransmit_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Retransmit Request
eurex_derivatives_eti_t7_v13_0.retransmit_request.fields = function(buffer, offset, packet, parent, size_of_retransmit_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Appl Beg Seq Num: 8 Byte Unsigned Fixed Width Integer Nullable
  index, appl_beg_seq_num = eurex_derivatives_eti_t7_v13_0.appl_beg_seq_num.dissect(buffer, index, packet, parent)

  -- Appl End Seq Num: 8 Byte Unsigned Fixed Width Integer Nullable
  index, appl_end_seq_num = eurex_derivatives_eti_t7_v13_0.appl_end_seq_num.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Ref Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, ref_appl_id = eurex_derivatives_eti_t7_v13_0.ref_appl_id.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Retransmit Request
eurex_derivatives_eti_t7_v13_0.retransmit_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_retransmit_request = eurex_derivatives_eti_t7_v13_0.retransmit_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.retransmit_request then
    local range = buffer(offset, size_of_retransmit_request)
    local display = eurex_derivatives_eti_t7_v13_0.retransmit_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.retransmit_request.fields(buffer, offset, packet, parent, size_of_retransmit_request)

  return offset + size_of_retransmit_request
end

-- Appl End Msg Id
eurex_derivatives_eti_t7_v13_0.appl_end_msg_id = {}

-- Size: Appl End Msg Id
eurex_derivatives_eti_t7_v13_0.appl_end_msg_id.size = 16

-- Display: Appl End Msg Id
eurex_derivatives_eti_t7_v13_0.appl_end_msg_id.display = function(value)
  return "Appl End Msg Id: "..value
end

-- Dissect: Appl End Msg Id
eurex_derivatives_eti_t7_v13_0.appl_end_msg_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_end_msg_id.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.appl_end_msg_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_end_msg_id, range, value, display)

  return offset + length, value
end

-- Retransmit Me Message Response
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response = {}

-- Read runtime size of: Retransmit Me Message Response
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Retransmit Me Message Response
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Retransmit Me Message Response
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.fields = function(buffer, offset, packet, parent, size_of_retransmit_me_message_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Appl Total Message Count: 2 Byte Unsigned Fixed Width Integer Nullable
  index, appl_total_message_count = eurex_derivatives_eti_t7_v13_0.appl_total_message_count.dissect(buffer, index, packet, parent)

  -- Appl End Msg Id: 16 Byte
  index, appl_end_msg_id = eurex_derivatives_eti_t7_v13_0.appl_end_msg_id.dissect(buffer, index, packet, parent)

  -- Ref Appl Last Msg Id: 16 Byte
  index, ref_appl_last_msg_id = eurex_derivatives_eti_t7_v13_0.ref_appl_last_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Retransmit Me Message Response
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_retransmit_me_message_response = eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.retransmit_me_message_response then
    local range = buffer(offset, size_of_retransmit_me_message_response)
    local display = eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_me_message_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.fields(buffer, offset, packet, parent, size_of_retransmit_me_message_response)

  return offset + size_of_retransmit_me_message_response
end

-- Appl Beg Msg Id
eurex_derivatives_eti_t7_v13_0.appl_beg_msg_id = {}

-- Size: Appl Beg Msg Id
eurex_derivatives_eti_t7_v13_0.appl_beg_msg_id.size = 16

-- Display: Appl Beg Msg Id
eurex_derivatives_eti_t7_v13_0.appl_beg_msg_id.display = function(value)
  return "Appl Beg Msg Id: "..value
end

-- Dissect: Appl Beg Msg Id
eurex_derivatives_eti_t7_v13_0.appl_beg_msg_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_beg_msg_id.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.appl_beg_msg_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_beg_msg_id, range, value, display)

  return offset + length, value
end

-- Retransmit Me Message Request
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request = {}

-- Read runtime size of: Retransmit Me Message Request
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Retransmit Me Message Request
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Retransmit Me Message Request
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.fields = function(buffer, offset, packet, parent, size_of_retransmit_me_message_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Subscription Scope: 4 Byte Unsigned Fixed Width Integer Nullable
  index, subscription_scope = eurex_derivatives_eti_t7_v13_0.subscription_scope.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Ref Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, ref_appl_id = eurex_derivatives_eti_t7_v13_0.ref_appl_id.dissect(buffer, index, packet, parent)

  -- Appl Beg Msg Id: 16 Byte
  index, appl_beg_msg_id = eurex_derivatives_eti_t7_v13_0.appl_beg_msg_id.dissect(buffer, index, packet, parent)

  -- Appl End Msg Id: 16 Byte
  index, appl_end_msg_id = eurex_derivatives_eti_t7_v13_0.appl_end_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Retransmit Me Message Request
eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_retransmit_me_message_request = eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.retransmit_me_message_request then
    local range = buffer(offset, size_of_retransmit_me_message_request)
    local display = eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.retransmit_me_message_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.fields(buffer, offset, packet, parent, size_of_retransmit_me_message_request)

  return offset + size_of_retransmit_me_message_request
end

-- Session Status
eurex_derivatives_eti_t7_v13_0.session_status = {}

-- Size: Session Status
eurex_derivatives_eti_t7_v13_0.session_status.size = 1

-- Display: Session Status
eurex_derivatives_eti_t7_v13_0.session_status.display = function(value)
  if value == 0 then
    return "Session Status: Active (0)"
  end
  if value == 4 then
    return "Session Status: Logout (4)"
  end
  if value == 0xFF then
    return "Session Status: No Value"
  end

  return "Session Status: Unknown("..value..")"
end

-- Dissect: Session Status
eurex_derivatives_eti_t7_v13_0.session_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.session_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.session_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.session_status, range, value, display)

  return offset + length, value
end

-- Session Reject Reason
eurex_derivatives_eti_t7_v13_0.session_reject_reason = {}

-- Size: Session Reject Reason
eurex_derivatives_eti_t7_v13_0.session_reject_reason.size = 4

-- Display: Session Reject Reason
eurex_derivatives_eti_t7_v13_0.session_reject_reason.display = function(value)
  if value == 1 then
    return "Session Reject Reason: Required Tag Missing (1)"
  end
  if value == 5 then
    return "Session Reject Reason: Valueisincorrect (5)"
  end
  if value == 7 then
    return "Session Reject Reason: Decryptionproblem (7)"
  end
  if value == 11 then
    return "Session Reject Reason: Invalid Msg Id (11)"
  end
  if value == 16 then
    return "Session Reject Reason: Incorrect Num In Groupcount (16)"
  end
  if value == 99 then
    return "Session Reject Reason: Other (99)"
  end
  if value == 100 then
    return "Session Reject Reason: Throttle Limit Exceeded (100)"
  end
  if value == 101 then
    return "Session Reject Reason: Exposure Limit Exceeded (101)"
  end
  if value == 102 then
    return "Session Reject Reason: Service Temporarily Not Available (102)"
  end
  if value == 103 then
    return "Session Reject Reason: Service Not Available (103)"
  end
  if value == 105 then
    return "Session Reject Reason: Outboundconversionerror (105)"
  end
  if value == 152 then
    return "Session Reject Reason: Heartbeat Violation (152)"
  end
  if value == 200 then
    return "Session Reject Reason: Internaltechnicalerror (200)"
  end
  if value == 210 then
    return "Session Reject Reason: Validation Error (210)"
  end
  if value == 211 then
    return "Session Reject Reason: User Already Logged In (211)"
  end
  if value == 216 then
    return "Session Reject Reason: Gateway Is Standby (216)"
  end
  if value == 217 then
    return "Session Reject Reason: Session Login Limit Reached (217)"
  end
  if value == 223 then
    return "Session Reject Reason: User Entitlement Data Timeout (223)"
  end
  if value == 224 then
    return "Session Reject Reason: Ps Gateway Session Limit Reached (224)"
  end
  if value == 225 then
    return "Session Reject Reason: User Login Limit Reached (225)"
  end
  if value == 226 then
    return "Session Reject Reason: Outstanding Logins Bu Limit Reached (226)"
  end
  if value == 227 then
    return "Session Reject Reason: Outstanding Logins Session Limit Reached (227)"
  end
  if value == 228 then
    return "Session Reject Reason: Password Timestamp Not In Grace Period (228)"
  end
  if value == 10000 then
    return "Session Reject Reason: Order Not Found (10000)"
  end
  if value == 10001 then
    return "Session Reject Reason: Price Not Reasonable (10001)"
  end
  if value == 10002 then
    return "Session Reject Reason: Client Order Id Not Unique (10002)"
  end
  if value == 10003 then
    return "Session Reject Reason: Quote Activation In Progress (10003)"
  end
  if value == 10006 then
    return "Session Reject Reason: Stop Bid Price Not Reasonable (10006)"
  end
  if value == 10007 then
    return "Session Reject Reason: Stop Ask Price Not Reasonable (10007)"
  end
  if value == 10008 then
    return "Session Reject Reason: Order Not Executable Within Validity (10008)"
  end
  if value == 10010 then
    return "Session Reject Reason: Create Ci Throttle Exceeded (10010)"
  end
  if value == 10011 then
    return "Session Reject Reason: Transaction Not Allowed In Current State (10011)"
  end
  if value == 10013 then
    return "Session Reject Reason: Required Min Lot Size Not Reached (10013)"
  end
  if value == 0xFFFFFFFF then
    return "Session Reject Reason: No Value"
  end

  return "Session Reject Reason: Unknown("..value..")"
end

-- Dissect: Session Reject Reason
eurex_derivatives_eti_t7_v13_0.session_reject_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.session_reject_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.session_reject_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.session_reject_reason, range, value, display)

  return offset + length, value
end

-- Reject
eurex_derivatives_eti_t7_v13_0.reject = {}

-- Read runtime size of: Reject
eurex_derivatives_eti_t7_v13_0.reject.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Reject
eurex_derivatives_eti_t7_v13_0.reject.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Reject
eurex_derivatives_eti_t7_v13_0.reject.fields = function(buffer, offset, packet, parent, size_of_reject)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Session Reject Reason: 4 Byte Unsigned Fixed Width Integer Enum with 34 values
  index, session_reject_reason = eurex_derivatives_eti_t7_v13_0.session_reject_reason.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- Session Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, session_status = eurex_derivatives_eti_t7_v13_0.session_status.dissect(buffer, index, packet, parent)

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Reject
eurex_derivatives_eti_t7_v13_0.reject.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_reject = eurex_derivatives_eti_t7_v13_0.reject.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.reject then
    local range = buffer(offset, size_of_reject)
    local display = eurex_derivatives_eti_t7_v13_0.reject.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.reject, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.reject.fields(buffer, offset, packet, parent, size_of_reject)

  return offset + size_of_reject
end

-- Exec Id
eurex_derivatives_eti_t7_v13_0.exec_id = {}

-- Size: Exec Id
eurex_derivatives_eti_t7_v13_0.exec_id.size = 8

-- Display: Exec Id
eurex_derivatives_eti_t7_v13_0.exec_id.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Exec Id: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Exec Id: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Exec Id
eurex_derivatives_eti_t7_v13_0.exec_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.exec_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.exec_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.exec_id, range, value, display)

  return offset + length, value
end

-- Rfq Response
eurex_derivatives_eti_t7_v13_0.rfq_response = {}

-- Read runtime size of: Rfq Response
eurex_derivatives_eti_t7_v13_0.rfq_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Rfq Response
eurex_derivatives_eti_t7_v13_0.rfq_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Rfq Response
eurex_derivatives_eti_t7_v13_0.rfq_response.fields = function(buffer, offset, packet, parent, size_of_rfq_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Rfq Response
eurex_derivatives_eti_t7_v13_0.rfq_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_rfq_response = eurex_derivatives_eti_t7_v13_0.rfq_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.rfq_response then
    local range = buffer(offset, size_of_rfq_response)
    local display = eurex_derivatives_eti_t7_v13_0.rfq_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rfq_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.rfq_response.fields(buffer, offset, packet, parent, size_of_rfq_response)

  return offset + size_of_rfq_response
end

-- Rfq Request
eurex_derivatives_eti_t7_v13_0.rfq_request = {}

-- Read runtime size of: Rfq Request
eurex_derivatives_eti_t7_v13_0.rfq_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Rfq Request
eurex_derivatives_eti_t7_v13_0.rfq_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Rfq Request
eurex_derivatives_eti_t7_v13_0.rfq_request.fields = function(buffer, offset, packet, parent, size_of_rfq_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Rfq Request
eurex_derivatives_eti_t7_v13_0.rfq_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_rfq_request = eurex_derivatives_eti_t7_v13_0.rfq_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.rfq_request then
    local range = buffer(offset, size_of_rfq_request)
    local display = eurex_derivatives_eti_t7_v13_0.rfq_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.rfq_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.rfq_request.fields(buffer, offset, packet, parent, size_of_rfq_request)

  return offset + size_of_rfq_request
end

-- No Quote Events Index
eurex_derivatives_eti_t7_v13_0.no_quote_events_index = {}

-- Size: No Quote Events Index
eurex_derivatives_eti_t7_v13_0.no_quote_events_index.size = 1

-- Display: No Quote Events Index
eurex_derivatives_eti_t7_v13_0.no_quote_events_index.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Quote Events Index: No Value"
  end

  return "No Quote Events Index: "..value
end

-- Dissect: No Quote Events Index
eurex_derivatives_eti_t7_v13_0.no_quote_events_index.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_quote_events_index.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_quote_events_index.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_events_index, range, value, display)

  return offset + length, value
end

-- Leg Exec Id
eurex_derivatives_eti_t7_v13_0.leg_exec_id = {}

-- Size: Leg Exec Id
eurex_derivatives_eti_t7_v13_0.leg_exec_id.size = 4

-- Display: Leg Exec Id
eurex_derivatives_eti_t7_v13_0.leg_exec_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Leg Exec Id: No Value"
  end

  return "Leg Exec Id: "..value
end

-- Dissect: Leg Exec Id
eurex_derivatives_eti_t7_v13_0.leg_exec_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_exec_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.leg_exec_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_exec_id, range, value, display)

  return offset + length, value
end

-- Leg Last Qty
eurex_derivatives_eti_t7_v13_0.leg_last_qty = {}

-- Size: Leg Last Qty
eurex_derivatives_eti_t7_v13_0.leg_last_qty.size = 8

-- Display: Leg Last Qty
eurex_derivatives_eti_t7_v13_0.leg_last_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Leg Last Qty: No Value"
  end

  return "Leg Last Qty: "..value
end

-- Translate: Leg Last Qty
eurex_derivatives_eti_t7_v13_0.leg_last_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Leg Last Qty
eurex_derivatives_eti_t7_v13_0.leg_last_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_last_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.leg_last_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.leg_last_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_last_qty, range, value, display)

  return offset + length, value
end

-- Leg Last Px
eurex_derivatives_eti_t7_v13_0.leg_last_px = {}

-- Size: Leg Last Px
eurex_derivatives_eti_t7_v13_0.leg_last_px.size = 8

-- Display: Leg Last Px
eurex_derivatives_eti_t7_v13_0.leg_last_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Leg Last Px: No Value"
  end

  return "Leg Last Px: "..value
end

-- Translate: Leg Last Px
eurex_derivatives_eti_t7_v13_0.leg_last_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Leg Last Px
eurex_derivatives_eti_t7_v13_0.leg_last_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_last_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.leg_last_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.leg_last_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_last_px, range, value, display)

  return offset + length, value
end

-- Quote Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp = {}

-- Size: Quote Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_security_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_last_px.size + 
  eurex_derivatives_eti_t7_v13_0.leg_last_qty.size + 
  eurex_derivatives_eti_t7_v13_0.leg_exec_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_side.size + 
  eurex_derivatives_eti_t7_v13_0.no_quote_events_index.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Quote Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.fields = function(buffer, offset, packet, parent, quote_leg_exec_grp_comp_index)
  local index = offset

  -- Implicit Quote Leg Exec Grp Comp Index
  if quote_leg_exec_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_leg_exec_grp_comp_index, quote_leg_exec_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, leg_security_id = eurex_derivatives_eti_t7_v13_0.leg_security_id.dissect(buffer, index, packet, parent)

  -- Leg Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_last_px = eurex_derivatives_eti_t7_v13_0.leg_last_px.dissect(buffer, index, packet, parent)

  -- Leg Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_last_qty = eurex_derivatives_eti_t7_v13_0.leg_last_qty.dissect(buffer, index, packet, parent)

  -- Leg Exec Id: 4 Byte Signed Fixed Width Integer Nullable
  index, leg_exec_id = eurex_derivatives_eti_t7_v13_0.leg_exec_id.dissect(buffer, index, packet, parent)

  -- Leg Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, leg_side = eurex_derivatives_eti_t7_v13_0.leg_side.dissect(buffer, index, packet, parent)

  -- No Quote Events Index: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_quote_events_index = eurex_derivatives_eti_t7_v13_0.no_quote_events_index.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Quote Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.dissect = function(buffer, offset, packet, parent, quote_leg_exec_grp_comp_index)
  if show.quote_leg_exec_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_leg_exec_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.fields(buffer, offset, packet, parent, quote_leg_exec_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.fields(buffer, offset, packet, parent, quote_leg_exec_grp_comp_index)
  end
end

-- Quote Event Reason
eurex_derivatives_eti_t7_v13_0.quote_event_reason = {}

-- Size: Quote Event Reason
eurex_derivatives_eti_t7_v13_0.quote_event_reason.size = 1

-- Display: Quote Event Reason
eurex_derivatives_eti_t7_v13_0.quote_event_reason.display = function(value)
  if value == 14 then
    return "Quote Event Reason: Pendingcancellationexecuted (14)"
  end
  if value == 15 then
    return "Quote Event Reason: Invalidprice (15)"
  end
  if value == 16 then
    return "Quote Event Reason: Crossrejected (16)"
  end
  if value == 17 then
    return "Quote Event Reason: Bookor Cancel (17)"
  end
  if value == 18 then
    return "Quote Event Reason: Plp (18)"
  end
  if value == 0xFF then
    return "Quote Event Reason: No Value"
  end

  return "Quote Event Reason: Unknown("..value..")"
end

-- Dissect: Quote Event Reason
eurex_derivatives_eti_t7_v13_0.quote_event_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_reason, range, value, display)

  return offset + length, value
end

-- Quote Event Liquidity Ind
eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind = {}

-- Size: Quote Event Liquidity Ind
eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind.size = 1

-- Display: Quote Event Liquidity Ind
eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind.display = function(value)
  if value == 1 then
    return "Quote Event Liquidity Ind: Added Liquidity (1)"
  end
  if value == 2 then
    return "Quote Event Liquidity Ind: Removed Liquidity (2)"
  end
  if value == 4 then
    return "Quote Event Liquidity Ind: Auction (4)"
  end
  if value == 0xFF then
    return "Quote Event Liquidity Ind: No Value"
  end

  return "Quote Event Liquidity Ind: Unknown("..value..")"
end

-- Dissect: Quote Event Liquidity Ind
eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_liquidity_ind, range, value, display)

  return offset + length, value
end

-- Quote Event Side
eurex_derivatives_eti_t7_v13_0.quote_event_side = {}

-- Size: Quote Event Side
eurex_derivatives_eti_t7_v13_0.quote_event_side.size = 1

-- Display: Quote Event Side
eurex_derivatives_eti_t7_v13_0.quote_event_side.display = function(value)
  if value == 1 then
    return "Quote Event Side: Buy (1)"
  end
  if value == 2 then
    return "Quote Event Side: Sell (2)"
  end
  if value == 0xFF then
    return "Quote Event Side: No Value"
  end

  return "Quote Event Side: Unknown("..value..")"
end

-- Dissect: Quote Event Side
eurex_derivatives_eti_t7_v13_0.quote_event_side.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_side.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_side.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_side, range, value, display)

  return offset + length, value
end

-- Quote Event Type
eurex_derivatives_eti_t7_v13_0.quote_event_type = {}

-- Size: Quote Event Type
eurex_derivatives_eti_t7_v13_0.quote_event_type.size = 1

-- Display: Quote Event Type
eurex_derivatives_eti_t7_v13_0.quote_event_type.display = function(value)
  if value == 2 then
    return "Quote Event Type: Modifiedquoteside (2)"
  end
  if value == 3 then
    return "Quote Event Type: Removedquoteside (3)"
  end
  if value == 4 then
    return "Quote Event Type: Partiallyfilled (4)"
  end
  if value == 5 then
    return "Quote Event Type: Filled (5)"
  end
  if value == 6 then
    return "Quote Event Type: Removed Quantity (6)"
  end
  if value == 0xFF then
    return "Quote Event Type: No Value"
  end

  return "Quote Event Type: Unknown("..value..")"
end

-- Dissect: Quote Event Type
eurex_derivatives_eti_t7_v13_0.quote_event_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_type, range, value, display)

  return offset + length, value
end

-- Quote Event Exec Id
eurex_derivatives_eti_t7_v13_0.quote_event_exec_id = {}

-- Size: Quote Event Exec Id
eurex_derivatives_eti_t7_v13_0.quote_event_exec_id.size = 4

-- Display: Quote Event Exec Id
eurex_derivatives_eti_t7_v13_0.quote_event_exec_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Quote Event Exec Id: No Value"
  end

  return "Quote Event Exec Id: "..value
end

-- Dissect: Quote Event Exec Id
eurex_derivatives_eti_t7_v13_0.quote_event_exec_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_exec_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_exec_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_exec_id, range, value, display)

  return offset + length, value
end

-- Quote Event Match Id
eurex_derivatives_eti_t7_v13_0.quote_event_match_id = {}

-- Size: Quote Event Match Id
eurex_derivatives_eti_t7_v13_0.quote_event_match_id.size = 4

-- Display: Quote Event Match Id
eurex_derivatives_eti_t7_v13_0.quote_event_match_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Quote Event Match Id: No Value"
  end

  return "Quote Event Match Id: "..value
end

-- Dissect: Quote Event Match Id
eurex_derivatives_eti_t7_v13_0.quote_event_match_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_match_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_match_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_match_id, range, value, display)

  return offset + length, value
end

-- Quote Msg Id
eurex_derivatives_eti_t7_v13_0.quote_msg_id = {}

-- Size: Quote Msg Id
eurex_derivatives_eti_t7_v13_0.quote_msg_id.size = 8

-- Display: Quote Msg Id
eurex_derivatives_eti_t7_v13_0.quote_msg_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Quote Msg Id: No Value"
  end

  return "Quote Msg Id: "..value
end

-- Dissect: Quote Msg Id
eurex_derivatives_eti_t7_v13_0.quote_msg_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_msg_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.quote_msg_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_msg_id, range, value, display)

  return offset + length, value
end

-- Quote Event Qty
eurex_derivatives_eti_t7_v13_0.quote_event_qty = {}

-- Size: Quote Event Qty
eurex_derivatives_eti_t7_v13_0.quote_event_qty.size = 8

-- Display: Quote Event Qty
eurex_derivatives_eti_t7_v13_0.quote_event_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Quote Event Qty: No Value"
  end

  return "Quote Event Qty: "..value
end

-- Translate: Quote Event Qty
eurex_derivatives_eti_t7_v13_0.quote_event_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Quote Event Qty
eurex_derivatives_eti_t7_v13_0.quote_event_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.quote_event_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_qty, range, value, display)

  return offset + length, value
end

-- Quote Event Px
eurex_derivatives_eti_t7_v13_0.quote_event_px = {}

-- Size: Quote Event Px
eurex_derivatives_eti_t7_v13_0.quote_event_px.size = 8

-- Display: Quote Event Px
eurex_derivatives_eti_t7_v13_0.quote_event_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Quote Event Px: No Value"
  end

  return "Quote Event Px: "..value
end

-- Translate: Quote Event Px
eurex_derivatives_eti_t7_v13_0.quote_event_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Quote Event Px
eurex_derivatives_eti_t7_v13_0.quote_event_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_event_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.quote_event_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.quote_event_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_px, range, value, display)

  return offset + length, value
end

-- Quote Event Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp = {}

-- Size: Quote Event Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_px.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_qty.size + 
  eurex_derivatives_eti_t7_v13_0.quote_msg_id.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_exec_id.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_type.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_side.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind.size + 
  eurex_derivatives_eti_t7_v13_0.quote_event_reason.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Quote Event Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Event Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.fields = function(buffer, offset, packet, parent, quote_event_grp_comp_index)
  local index = offset

  -- Implicit Quote Event Grp Comp Index
  if quote_event_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_grp_comp_index, quote_event_grp_comp_index)
    iteration:set_generated()
  end

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Quote Event Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_event_px = eurex_derivatives_eti_t7_v13_0.quote_event_px.dissect(buffer, index, packet, parent)

  -- Quote Event Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_event_qty = eurex_derivatives_eti_t7_v13_0.quote_event_qty.dissect(buffer, index, packet, parent)

  -- Quote Msg Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_msg_id = eurex_derivatives_eti_t7_v13_0.quote_msg_id.dissect(buffer, index, packet, parent)

  -- Quote Event Match Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, quote_event_match_id = eurex_derivatives_eti_t7_v13_0.quote_event_match_id.dissect(buffer, index, packet, parent)

  -- Quote Event Exec Id: 4 Byte Signed Fixed Width Integer Nullable
  index, quote_event_exec_id = eurex_derivatives_eti_t7_v13_0.quote_event_exec_id.dissect(buffer, index, packet, parent)

  -- Quote Event Type: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, quote_event_type = eurex_derivatives_eti_t7_v13_0.quote_event_type.dissect(buffer, index, packet, parent)

  -- Quote Event Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, quote_event_side = eurex_derivatives_eti_t7_v13_0.quote_event_side.dissect(buffer, index, packet, parent)

  -- Quote Event Liquidity Ind: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_event_liquidity_ind = eurex_derivatives_eti_t7_v13_0.quote_event_liquidity_ind.dissect(buffer, index, packet, parent)

  -- Quote Event Reason: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, quote_event_reason = eurex_derivatives_eti_t7_v13_0.quote_event_reason.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Quote Event Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.dissect = function(buffer, offset, packet, parent, quote_event_grp_comp_index)
  if show.quote_event_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_event_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.fields(buffer, offset, packet, parent, quote_event_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.fields(buffer, offset, packet, parent, quote_event_grp_comp_index)
  end
end

-- No Quote Events
eurex_derivatives_eti_t7_v13_0.no_quote_events = {}

-- Size: No Quote Events
eurex_derivatives_eti_t7_v13_0.no_quote_events.size = 1

-- Display: No Quote Events
eurex_derivatives_eti_t7_v13_0.no_quote_events.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Quote Events: No Value"
  end

  return "No Quote Events: "..value
end

-- Dissect: No Quote Events
eurex_derivatives_eti_t7_v13_0.no_quote_events.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_quote_events.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_quote_events.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_events, range, value, display)

  return offset + length, value
end

-- No Leg Execs
eurex_derivatives_eti_t7_v13_0.no_leg_execs = {}

-- Size: No Leg Execs
eurex_derivatives_eti_t7_v13_0.no_leg_execs.size = 2

-- Display: No Leg Execs
eurex_derivatives_eti_t7_v13_0.no_leg_execs.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Leg Execs: No Value"
  end

  return "No Leg Execs: "..value
end

-- Dissect: No Leg Execs
eurex_derivatives_eti_t7_v13_0.no_leg_execs.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_leg_execs.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_leg_execs.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_leg_execs, range, value, display)

  return offset + length, value
end

-- Quote Execution Report
eurex_derivatives_eti_t7_v13_0.quote_execution_report = {}

-- Read runtime size of: Quote Execution Report
eurex_derivatives_eti_t7_v13_0.quote_execution_report.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Quote Execution Report
eurex_derivatives_eti_t7_v13_0.quote_execution_report.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Execution Report
eurex_derivatives_eti_t7_v13_0.quote_execution_report.fields = function(buffer, offset, packet, parent, size_of_quote_execution_report)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- No Leg Execs: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_execs = eurex_derivatives_eti_t7_v13_0.no_leg_execs.dissect(buffer, index, packet, parent)

  -- No Quote Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_quote_events = eurex_derivatives_eti_t7_v13_0.no_quote_events.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Repeating: Quote Event Grp Comp
  for quote_event_grp_comp_index = 1, no_quote_events do
    index, quote_event_grp_comp = eurex_derivatives_eti_t7_v13_0.quote_event_grp_comp.dissect(buffer, index, packet, parent, quote_event_grp_comp_index)
  end

  -- Repeating: Quote Leg Exec Grp Comp
  for quote_leg_exec_grp_comp_index = 1, no_leg_execs do
    index, quote_leg_exec_grp_comp = eurex_derivatives_eti_t7_v13_0.quote_leg_exec_grp_comp.dissect(buffer, index, packet, parent, quote_leg_exec_grp_comp_index)
  end

  return index
end

-- Dissect: Quote Execution Report
eurex_derivatives_eti_t7_v13_0.quote_execution_report.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_quote_execution_report = eurex_derivatives_eti_t7_v13_0.quote_execution_report.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.quote_execution_report then
    local range = buffer(offset, size_of_quote_execution_report)
    local display = eurex_derivatives_eti_t7_v13_0.quote_execution_report.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_execution_report, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.quote_execution_report.fields(buffer, offset, packet, parent, size_of_quote_execution_report)

  return offset + size_of_quote_execution_report
end

-- Not Affected Security Id
eurex_derivatives_eti_t7_v13_0.not_affected_security_id = {}

-- Size: Not Affected Security Id
eurex_derivatives_eti_t7_v13_0.not_affected_security_id.size = 8

-- Display: Not Affected Security Id
eurex_derivatives_eti_t7_v13_0.not_affected_security_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Not Affected Security Id: No Value"
  end

  return "Not Affected Security Id: "..value
end

-- Dissect: Not Affected Security Id
eurex_derivatives_eti_t7_v13_0.not_affected_security_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.not_affected_security_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.not_affected_security_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_security_id, range, value, display)

  return offset + length, value
end

-- Not Affected Securities Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp = {}

-- Size: Not Affected Securities Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.not_affected_security_id.size

-- Display: Not Affected Securities Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Not Affected Securities Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.fields = function(buffer, offset, packet, parent, not_affected_securities_grp_comp_index)
  local index = offset

  -- Implicit Not Affected Securities Grp Comp Index
  if not_affected_securities_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_securities_grp_comp_index, not_affected_securities_grp_comp_index)
    iteration:set_generated()
  end

  -- Not Affected Security Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, not_affected_security_id = eurex_derivatives_eti_t7_v13_0.not_affected_security_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Not Affected Securities Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.dissect = function(buffer, offset, packet, parent, not_affected_securities_grp_comp_index)
  if show.not_affected_securities_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_securities_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.fields(buffer, offset, packet, parent, not_affected_securities_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.fields(buffer, offset, packet, parent, not_affected_securities_grp_comp_index)
  end
end

-- No Not Affected Securities
eurex_derivatives_eti_t7_v13_0.no_not_affected_securities = {}

-- Size: No Not Affected Securities
eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.size = 2

-- Display: No Not Affected Securities
eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Not Affected Securities: No Value"
  end

  return "No Not Affected Securities: "..value
end

-- Dissect: No Not Affected Securities
eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_not_affected_securities, range, value, display)

  return offset + length, value
end

-- Mass Action Report Id
eurex_derivatives_eti_t7_v13_0.mass_action_report_id = {}

-- Size: Mass Action Report Id
eurex_derivatives_eti_t7_v13_0.mass_action_report_id.size = 8

-- Display: Mass Action Report Id
eurex_derivatives_eti_t7_v13_0.mass_action_report_id.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Mass Action Report Id: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Mass Action Report Id: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Mass Action Report Id
eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_report_id, range, value, display)

  return offset + length, value
end

-- Quote Activation Response
eurex_derivatives_eti_t7_v13_0.quote_activation_response = {}

-- Read runtime size of: Quote Activation Response
eurex_derivatives_eti_t7_v13_0.quote_activation_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Quote Activation Response
eurex_derivatives_eti_t7_v13_0.quote_activation_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Activation Response
eurex_derivatives_eti_t7_v13_0.quote_activation_response.fields = function(buffer, offset, packet, parent, size_of_quote_activation_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  -- No Not Affected Securities: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_not_affected_securities = eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Not Affected Securities Grp Comp
  for not_affected_securities_grp_comp_index = 1, no_not_affected_securities do
    index, not_affected_securities_grp_comp = eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.dissect(buffer, index, packet, parent, not_affected_securities_grp_comp_index)
  end

  return index
end

-- Dissect: Quote Activation Response
eurex_derivatives_eti_t7_v13_0.quote_activation_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_quote_activation_response = eurex_derivatives_eti_t7_v13_0.quote_activation_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.quote_activation_response then
    local range = buffer(offset, size_of_quote_activation_response)
    local display = eurex_derivatives_eti_t7_v13_0.quote_activation_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_activation_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.quote_activation_response.fields(buffer, offset, packet, parent, size_of_quote_activation_response)

  return offset + size_of_quote_activation_response
end

-- Mass Action Sub Type
eurex_derivatives_eti_t7_v13_0.mass_action_sub_type = {}

-- Size: Mass Action Sub Type
eurex_derivatives_eti_t7_v13_0.mass_action_sub_type.size = 1

-- Display: Mass Action Sub Type
eurex_derivatives_eti_t7_v13_0.mass_action_sub_type.display = function(value)
  if value == 1 then
    return "Mass Action Sub Type: Bookor Cancel (1)"
  end
  if value == 0xFF then
    return "Mass Action Sub Type: No Value"
  end

  return "Mass Action Sub Type: Unknown("..value..")"
end

-- Dissect: Mass Action Sub Type
eurex_derivatives_eti_t7_v13_0.mass_action_sub_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mass_action_sub_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.mass_action_sub_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_sub_type, range, value, display)

  return offset + length, value
end

-- Mass Action Type
eurex_derivatives_eti_t7_v13_0.mass_action_type = {}

-- Size: Mass Action Type
eurex_derivatives_eti_t7_v13_0.mass_action_type.size = 1

-- Display: Mass Action Type
eurex_derivatives_eti_t7_v13_0.mass_action_type.display = function(value)
  if value == 1 then
    return "Mass Action Type: Suspendquotes (1)"
  end
  if value == 2 then
    return "Mass Action Type: Releasequotes (2)"
  end
  if value == 3 then
    return "Mass Action Type: Suspenddeletequotes (3)"
  end
  if value == 0xFF then
    return "Mass Action Type: No Value"
  end

  return "Mass Action Type: Unknown("..value..")"
end

-- Dissect: Mass Action Type
eurex_derivatives_eti_t7_v13_0.mass_action_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mass_action_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.mass_action_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_type, range, value, display)

  return offset + length, value
end

-- Target Party Id Session Id
eurex_derivatives_eti_t7_v13_0.target_party_id_session_id = {}

-- Size: Target Party Id Session Id
eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.size = 4

-- Display: Target Party Id Session Id
eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Target Party Id Session Id: No Value"
  end

  return "Target Party Id Session Id: "..value
end

-- Dissect: Target Party Id Session Id
eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_id_session_id, range, value, display)

  return offset + length, value
end

-- Quote Activation Request
eurex_derivatives_eti_t7_v13_0.quote_activation_request = {}

-- Read runtime size of: Quote Activation Request
eurex_derivatives_eti_t7_v13_0.quote_activation_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Quote Activation Request
eurex_derivatives_eti_t7_v13_0.quote_activation_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Activation Request
eurex_derivatives_eti_t7_v13_0.quote_activation_request.fields = function(buffer, offset, packet, parent, size_of_quote_activation_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Mass Action Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, mass_action_type = eurex_derivatives_eti_t7_v13_0.mass_action_type.dissect(buffer, index, packet, parent)

  -- Mass Action Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, mass_action_sub_type = eurex_derivatives_eti_t7_v13_0.mass_action_sub_type.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Quote Activation Request
eurex_derivatives_eti_t7_v13_0.quote_activation_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_quote_activation_request = eurex_derivatives_eti_t7_v13_0.quote_activation_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.quote_activation_request then
    local range = buffer(offset, size_of_quote_activation_request)
    local display = eurex_derivatives_eti_t7_v13_0.quote_activation_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_activation_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.quote_activation_request.fields(buffer, offset, packet, parent, size_of_quote_activation_request)

  return offset + size_of_quote_activation_request
end

-- Mass Action Reason
eurex_derivatives_eti_t7_v13_0.mass_action_reason = {}

-- Size: Mass Action Reason
eurex_derivatives_eti_t7_v13_0.mass_action_reason.size = 1

-- Display: Mass Action Reason
eurex_derivatives_eti_t7_v13_0.mass_action_reason.display = function(value)
  if value == 0 then
    return "Mass Action Reason: No Special Reason (0)"
  end
  if value == 1 then
    return "Mass Action Reason: Stop Trading (1)"
  end
  if value == 2 then
    return "Mass Action Reason: Emergency (2)"
  end
  if value == 3 then
    return "Mass Action Reason: Market Maker Protection (3)"
  end
  if value == 6 then
    return "Mass Action Reason: Session Loss (6)"
  end
  if value == 7 then
    return "Mass Action Reason: Duplicate Session Login (7)"
  end
  if value == 8 then
    return "Mass Action Reason: Clearing Risk Control (8)"
  end
  if value == 100 then
    return "Mass Action Reason: Internal Connection Loss (100)"
  end
  if value == 105 then
    return "Mass Action Reason: Product State Halt (105)"
  end
  if value == 106 then
    return "Mass Action Reason: Product State Holiday (106)"
  end
  if value == 107 then
    return "Mass Action Reason: Instrument Suspended (107)"
  end
  if value == 109 then
    return "Mass Action Reason: Complex Instrument Deletion (109)"
  end
  if value == 110 then
    return "Mass Action Reason: Volatility Interruption (110)"
  end
  if value == 111 then
    return "Mass Action Reason: Producttemporarilynottradeable (111)"
  end
  if value == 117 then
    return "Mass Action Reason: Memberdisable (117)"
  end
  if value == 121 then
    return "Mass Action Reason: Scaled Simple Instrument Deletion (121)"
  end
  if value == 0xFF then
    return "Mass Action Reason: No Value"
  end

  return "Mass Action Reason: Unknown("..value..")"
end

-- Dissect: Mass Action Reason
eurex_derivatives_eti_t7_v13_0.mass_action_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mass_action_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.mass_action_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_action_reason, range, value, display)

  return offset + length, value
end

-- Party Id Entering Trader
eurex_derivatives_eti_t7_v13_0.party_id_entering_trader = {}

-- Size: Party Id Entering Trader
eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.size = 4

-- Display: Party Id Entering Trader
eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Party Id Entering Trader: No Value"
  end

  return "Party Id Entering Trader: "..value
end

-- Dissect: Party Id Entering Trader
eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_entering_trader, range, value, display)

  return offset + length, value
end

-- Quote Activation Notification
eurex_derivatives_eti_t7_v13_0.quote_activation_notification = {}

-- Read runtime size of: Quote Activation Notification
eurex_derivatives_eti_t7_v13_0.quote_activation_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Quote Activation Notification
eurex_derivatives_eti_t7_v13_0.quote_activation_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Activation Notification
eurex_derivatives_eti_t7_v13_0.quote_activation_notification.fields = function(buffer, offset, packet, parent, size_of_quote_activation_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Party Id Entering Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_entering_trader = eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.dissect(buffer, index, packet, parent)

  -- No Not Affected Securities: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_not_affected_securities = eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.dissect(buffer, index, packet, parent)

  -- Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect(buffer, index, packet, parent)

  -- Mass Action Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, mass_action_type = eurex_derivatives_eti_t7_v13_0.mass_action_type.dissect(buffer, index, packet, parent)

  -- Mass Action Sub Type: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, mass_action_sub_type = eurex_derivatives_eti_t7_v13_0.mass_action_sub_type.dissect(buffer, index, packet, parent)

  -- Mass Action Reason: 1 Byte Unsigned Fixed Width Integer Enum with 17 values
  index, mass_action_reason = eurex_derivatives_eti_t7_v13_0.mass_action_reason.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Not Affected Securities Grp Comp
  for not_affected_securities_grp_comp_index = 1, no_not_affected_securities do
    index, not_affected_securities_grp_comp = eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.dissect(buffer, index, packet, parent, not_affected_securities_grp_comp_index)
  end

  return index
end

-- Dissect: Quote Activation Notification
eurex_derivatives_eti_t7_v13_0.quote_activation_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_quote_activation_notification = eurex_derivatives_eti_t7_v13_0.quote_activation_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.quote_activation_notification then
    local range = buffer(offset, size_of_quote_activation_notification)
    local display = eurex_derivatives_eti_t7_v13_0.quote_activation_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_activation_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.quote_activation_notification.fields(buffer, offset, packet, parent, size_of_quote_activation_notification)

  return offset + size_of_quote_activation_notification
end

-- Risk Limit Type
eurex_derivatives_eti_t7_v13_0.risk_limit_type = {}

-- Size: Risk Limit Type
eurex_derivatives_eti_t7_v13_0.risk_limit_type.size = 1

-- Display: Risk Limit Type
eurex_derivatives_eti_t7_v13_0.risk_limit_type.display = function(value)
  if value == 4 then
    return "Risk Limit Type: Longlimit (4)"
  end
  if value == 5 then
    return "Risk Limit Type: Shortlimit (5)"
  end
  if value == 0xFF then
    return "Risk Limit Type: No Value"
  end

  return "Risk Limit Type: Unknown("..value..")"
end

-- Dissect: Risk Limit Type
eurex_derivatives_eti_t7_v13_0.risk_limit_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_type, range, value, display)

  return offset + length, value
end

-- Risk Limit Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_qty = {}

-- Size: Risk Limit Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_qty.size = 8

-- Display: Risk Limit Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Risk Limit Qty: No Value"
  end

  return "Risk Limit Qty: "..value
end

-- Translate: Risk Limit Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Risk Limit Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.risk_limit_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_qty, range, value, display)

  return offset + length, value
end

-- Risk Limit Qty Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp = {}

-- Size: Risk Limit Qty Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.risk_limit_qty.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_type.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Risk Limit Qty Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Risk Limit Qty Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.fields = function(buffer, offset, packet, parent, risk_limit_qty_grp_comp_index)
  local index = offset

  -- Implicit Risk Limit Qty Grp Comp Index
  if risk_limit_qty_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_qty_grp_comp_index, risk_limit_qty_grp_comp_index)
    iteration:set_generated()
  end

  -- Risk Limit Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, risk_limit_qty = eurex_derivatives_eti_t7_v13_0.risk_limit_qty.dissect(buffer, index, packet, parent)

  -- Risk Limit Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, risk_limit_type = eurex_derivatives_eti_t7_v13_0.risk_limit_type.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Risk Limit Qty Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.dissect = function(buffer, offset, packet, parent, risk_limit_qty_grp_comp_index)
  if show.risk_limit_qty_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_qty_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.fields(buffer, offset, packet, parent, risk_limit_qty_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.fields(buffer, offset, packet, parent, risk_limit_qty_grp_comp_index)
  end
end

-- Risk Limit Group
eurex_derivatives_eti_t7_v13_0.risk_limit_group = {}

-- Size: Risk Limit Group
eurex_derivatives_eti_t7_v13_0.risk_limit_group.size = 3

-- Display: Risk Limit Group
eurex_derivatives_eti_t7_v13_0.risk_limit_group.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Risk Limit Group: No Value"
  end

  return "Risk Limit Group: "..value
end

-- Dissect: Risk Limit Group
eurex_derivatives_eti_t7_v13_0.risk_limit_group.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_group.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_group.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_group, range, value, display)

  return offset + length, value
end

-- No Risk Limits Qty
eurex_derivatives_eti_t7_v13_0.no_risk_limits_qty = {}

-- Size: No Risk Limits Qty
eurex_derivatives_eti_t7_v13_0.no_risk_limits_qty.size = 1

-- Display: No Risk Limits Qty
eurex_derivatives_eti_t7_v13_0.no_risk_limits_qty.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Risk Limits Qty: No Value"
  end

  return "No Risk Limits Qty: "..value
end

-- Dissect: No Risk Limits Qty
eurex_derivatives_eti_t7_v13_0.no_risk_limits_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_risk_limits_qty.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_risk_limits_qty.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_risk_limits_qty, range, value, display)

  return offset + length, value
end

-- Risk Limit Platform
eurex_derivatives_eti_t7_v13_0.risk_limit_platform = {}

-- Size: Risk Limit Platform
eurex_derivatives_eti_t7_v13_0.risk_limit_platform.size = 1

-- Display: Risk Limit Platform
eurex_derivatives_eti_t7_v13_0.risk_limit_platform.display = function(value)
  if value == 0 then
    return "Risk Limit Platform: On Book (0)"
  end
  if value == 1 then
    return "Risk Limit Platform: Off Book (1)"
  end
  if value == 0xFF then
    return "Risk Limit Platform: No Value"
  end

  return "Risk Limit Platform: Unknown("..value..")"
end

-- Dissect: Risk Limit Platform
eurex_derivatives_eti_t7_v13_0.risk_limit_platform.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_platform.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_platform.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_platform, range, value, display)

  return offset + length, value
end

-- Quote Weighting Coefficient
eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient = {}

-- Size: Quote Weighting Coefficient
eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.size = 8

-- Display: Quote Weighting Coefficient
eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Quote Weighting Coefficient: No Value"
  end

  return "Quote Weighting Coefficient: "..value
end

-- Translate: Quote Weighting Coefficient
eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Quote Weighting Coefficient
eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_weighting_coefficient, range, value, display)

  return offset + length, value
end

-- Netting Coefficient
eurex_derivatives_eti_t7_v13_0.netting_coefficient = {}

-- Size: Netting Coefficient
eurex_derivatives_eti_t7_v13_0.netting_coefficient.size = 8

-- Display: Netting Coefficient
eurex_derivatives_eti_t7_v13_0.netting_coefficient.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Netting Coefficient: No Value"
  end

  return "Netting Coefficient: "..value
end

-- Translate: Netting Coefficient
eurex_derivatives_eti_t7_v13_0.netting_coefficient.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Netting Coefficient
eurex_derivatives_eti_t7_v13_0.netting_coefficient.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.netting_coefficient.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.netting_coefficient.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.netting_coefficient.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.netting_coefficient, range, value, display)

  return offset + length, value
end

-- Pre Trade Risk Limits Definition Request
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request = {}

-- Read runtime size of: Pre Trade Risk Limits Definition Request
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Pre Trade Risk Limits Definition Request
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Pre Trade Risk Limits Definition Request
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.fields = function(buffer, offset, packet, parent, size_of_pre_trade_risk_limits_definition_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Netting Coefficient: 8 Byte Unsigned Fixed Width Integer Nullable
  index, netting_coefficient = eurex_derivatives_eti_t7_v13_0.netting_coefficient.dissect(buffer, index, packet, parent)

  -- Quote Weighting Coefficient: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_weighting_coefficient = eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Risk Limit Platform: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, risk_limit_platform = eurex_derivatives_eti_t7_v13_0.risk_limit_platform.dissect(buffer, index, packet, parent)

  -- No Risk Limits Qty: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_risk_limits_qty = eurex_derivatives_eti_t7_v13_0.no_risk_limits_qty.dissect(buffer, index, packet, parent)

  -- Party Detail Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, party_detail_status = eurex_derivatives_eti_t7_v13_0.party_detail_status.dissect(buffer, index, packet, parent)

  -- Risk Limit Group: 3 Byte Ascii String Nullable
  index, risk_limit_group = eurex_derivatives_eti_t7_v13_0.risk_limit_group.dissect(buffer, index, packet, parent)

  -- Party Detail Executing Unit: 5 Byte Ascii String Nullable
  index, party_detail_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Repeating: Risk Limit Qty Grp Comp
  for risk_limit_qty_grp_comp_index = 1, no_risk_limits_qty do
    index, risk_limit_qty_grp_comp = eurex_derivatives_eti_t7_v13_0.risk_limit_qty_grp_comp.dissect(buffer, index, packet, parent, risk_limit_qty_grp_comp_index)
  end

  return index
end

-- Dissect: Pre Trade Risk Limits Definition Request
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_pre_trade_risk_limits_definition_request = eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.pre_trade_risk_limits_definition_request then
    local range = buffer(offset, size_of_pre_trade_risk_limits_definition_request)
    local display = eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pre_trade_risk_limits_definition_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.fields(buffer, offset, packet, parent, size_of_pre_trade_risk_limits_definition_request)

  return offset + size_of_pre_trade_risk_limits_definition_request
end

-- Risk Limit Violation Indicator
eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator = {}

-- Size: Risk Limit Violation Indicator
eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator.size = 1

-- Display: Risk Limit Violation Indicator
eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator.display = function(value)
  if value == 0 then
    return "Risk Limit Violation Indicator: No (0)"
  end
  if value == 1 then
    return "Risk Limit Violation Indicator: Yes (1)"
  end
  if value == 0xFF then
    return "Risk Limit Violation Indicator: No Value"
  end

  return "Risk Limit Violation Indicator: Unknown("..value..")"
end

-- Dissect: Risk Limit Violation Indicator
eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_violation_indicator, range, value, display)

  return offset + length, value
end

-- Risk Limit Requesting Party Role
eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role = {}

-- Size: Risk Limit Requesting Party Role
eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role.size = 1

-- Display: Risk Limit Requesting Party Role
eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role.display = function(value)
  if value == 4 then
    return "Risk Limit Requesting Party Role: Clearingfirm (4)"
  end
  if value == 22 then
    return "Risk Limit Requesting Party Role: Exchange (22)"
  end
  if value == 59 then
    return "Risk Limit Requesting Party Role: Executingunit (59)"
  end
  if value == 0xFF then
    return "Risk Limit Requesting Party Role: No Value"
  end

  return "Risk Limit Requesting Party Role: Unknown("..value..")"
end

-- Dissect: Risk Limit Requesting Party Role
eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_requesting_party_role, range, value, display)

  return offset + length, value
end

-- Activation Date
eurex_derivatives_eti_t7_v13_0.activation_date = {}

-- Size: Activation Date
eurex_derivatives_eti_t7_v13_0.activation_date.size = 4

-- Display: Activation Date
eurex_derivatives_eti_t7_v13_0.activation_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Activation Date: No Value"
  end

  return "Activation Date: "..value
end

-- Dissect: Activation Date
eurex_derivatives_eti_t7_v13_0.activation_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.activation_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.activation_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.activation_date, range, value, display)

  return offset + length, value
end

-- Risk Limit Net Position Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty = {}

-- Size: Risk Limit Net Position Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.size = 8

-- Display: Risk Limit Net Position Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Risk Limit Net Position Qty: No Value"
  end

  return "Risk Limit Net Position Qty: "..value
end

-- Translate: Risk Limit Net Position Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Risk Limit Net Position Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_net_position_qty, range, value, display)

  return offset + length, value
end

-- Risk Limit Open Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty = {}

-- Size: Risk Limit Open Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.size = 8

-- Display: Risk Limit Open Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Risk Limit Open Qty: No Value"
  end

  return "Risk Limit Open Qty: "..value
end

-- Translate: Risk Limit Open Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Risk Limit Open Qty
eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_open_qty, range, value, display)

  return offset + length, value
end

-- Risk Limits Rpt Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp = {}

-- Size: Risk Limits Rpt Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.risk_limit_qty.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.size + 
  eurex_derivatives_eti_t7_v13_0.netting_coefficient.size + 
  eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.size + 
  eurex_derivatives_eti_t7_v13_0.activation_date.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_type.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator.size + 
  eurex_derivatives_eti_t7_v13_0.risk_limit_group.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Risk Limits Rpt Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Risk Limits Rpt Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.fields = function(buffer, offset, packet, parent, risk_limits_rpt_grp_comp_index)
  local index = offset

  -- Implicit Risk Limits Rpt Grp Comp Index
  if risk_limits_rpt_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limits_rpt_grp_comp_index, risk_limits_rpt_grp_comp_index)
    iteration:set_generated()
  end

  -- Risk Limit Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, risk_limit_qty = eurex_derivatives_eti_t7_v13_0.risk_limit_qty.dissect(buffer, index, packet, parent)

  -- Risk Limit Open Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, risk_limit_open_qty = eurex_derivatives_eti_t7_v13_0.risk_limit_open_qty.dissect(buffer, index, packet, parent)

  -- Risk Limit Net Position Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, risk_limit_net_position_qty = eurex_derivatives_eti_t7_v13_0.risk_limit_net_position_qty.dissect(buffer, index, packet, parent)

  -- Netting Coefficient: 8 Byte Unsigned Fixed Width Integer Nullable
  index, netting_coefficient = eurex_derivatives_eti_t7_v13_0.netting_coefficient.dissect(buffer, index, packet, parent)

  -- Quote Weighting Coefficient: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_weighting_coefficient = eurex_derivatives_eti_t7_v13_0.quote_weighting_coefficient.dissect(buffer, index, packet, parent)

  -- Activation Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, activation_date = eurex_derivatives_eti_t7_v13_0.activation_date.dissect(buffer, index, packet, parent)

  -- Risk Limit Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, risk_limit_type = eurex_derivatives_eti_t7_v13_0.risk_limit_type.dissect(buffer, index, packet, parent)

  -- Risk Limit Requesting Party Role: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, risk_limit_requesting_party_role = eurex_derivatives_eti_t7_v13_0.risk_limit_requesting_party_role.dissect(buffer, index, packet, parent)

  -- Risk Limit Violation Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, risk_limit_violation_indicator = eurex_derivatives_eti_t7_v13_0.risk_limit_violation_indicator.dissect(buffer, index, packet, parent)

  -- Risk Limit Group: 3 Byte Ascii String Nullable
  index, risk_limit_group = eurex_derivatives_eti_t7_v13_0.risk_limit_group.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Risk Limits Rpt Grp Comp
eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.dissect = function(buffer, offset, packet, parent, risk_limits_rpt_grp_comp_index)
  if show.risk_limits_rpt_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limits_rpt_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.fields(buffer, offset, packet, parent, risk_limits_rpt_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.fields(buffer, offset, packet, parent, risk_limits_rpt_grp_comp_index)
  end
end

-- No Risk Limits
eurex_derivatives_eti_t7_v13_0.no_risk_limits = {}

-- Size: No Risk Limits
eurex_derivatives_eti_t7_v13_0.no_risk_limits.size = 1

-- Display: No Risk Limits
eurex_derivatives_eti_t7_v13_0.no_risk_limits.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Risk Limits: No Value"
  end

  return "No Risk Limits: "..value
end

-- Dissect: No Risk Limits
eurex_derivatives_eti_t7_v13_0.no_risk_limits.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_risk_limits.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_risk_limits.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_risk_limits, range, value, display)

  return offset + length, value
end

-- Risk Limit Report Id
eurex_derivatives_eti_t7_v13_0.risk_limit_report_id = {}

-- Size: Risk Limit Report Id
eurex_derivatives_eti_t7_v13_0.risk_limit_report_id.size = 8

-- Display: Risk Limit Report Id
eurex_derivatives_eti_t7_v13_0.risk_limit_report_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Risk Limit Report Id: No Value"
  end

  return "Risk Limit Report Id: "..value
end

-- Dissect: Risk Limit Report Id
eurex_derivatives_eti_t7_v13_0.risk_limit_report_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.risk_limit_report_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.risk_limit_report_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.risk_limit_report_id, range, value, display)

  return offset + length, value
end

-- Pre Trade Risk Limit Response
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response = {}

-- Read runtime size of: Pre Trade Risk Limit Response
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Pre Trade Risk Limit Response
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Pre Trade Risk Limit Response
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.fields = function(buffer, offset, packet, parent, size_of_pre_trade_risk_limit_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Risk Limit Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, risk_limit_report_id = eurex_derivatives_eti_t7_v13_0.risk_limit_report_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- No Risk Limits: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_risk_limits = eurex_derivatives_eti_t7_v13_0.no_risk_limits.dissect(buffer, index, packet, parent)

  -- Party Detail Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, party_detail_status = eurex_derivatives_eti_t7_v13_0.party_detail_status.dissect(buffer, index, packet, parent)

  -- Risk Limit Platform: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, risk_limit_platform = eurex_derivatives_eti_t7_v13_0.risk_limit_platform.dissect(buffer, index, packet, parent)

  -- Party Detail Executing Unit: 5 Byte Ascii String Nullable
  index, party_detail_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Repeating: Risk Limits Rpt Grp Comp
  for risk_limits_rpt_grp_comp_index = 1, no_risk_limits do
    index, risk_limits_rpt_grp_comp = eurex_derivatives_eti_t7_v13_0.risk_limits_rpt_grp_comp.dissect(buffer, index, packet, parent, risk_limits_rpt_grp_comp_index)
  end

  return index
end

-- Dissect: Pre Trade Risk Limit Response
eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_pre_trade_risk_limit_response = eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.pre_trade_risk_limit_response then
    local range = buffer(offset, size_of_pre_trade_risk_limit_response)
    local display = eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pre_trade_risk_limit_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.fields(buffer, offset, packet, parent, size_of_pre_trade_risk_limit_response)

  return offset + size_of_pre_trade_risk_limit_response
end

-- Ping Response
eurex_derivatives_eti_t7_v13_0.ping_response = {}

-- Read runtime size of: Ping Response
eurex_derivatives_eti_t7_v13_0.ping_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Ping Response
eurex_derivatives_eti_t7_v13_0.ping_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Ping Response
eurex_derivatives_eti_t7_v13_0.ping_response.fields = function(buffer, offset, packet, parent, size_of_ping_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Ping Response
eurex_derivatives_eti_t7_v13_0.ping_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_ping_response = eurex_derivatives_eti_t7_v13_0.ping_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.ping_response then
    local range = buffer(offset, size_of_ping_response)
    local display = eurex_derivatives_eti_t7_v13_0.ping_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ping_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.ping_response.fields(buffer, offset, packet, parent, size_of_ping_response)

  return offset + size_of_ping_response
end

-- Ping Request
eurex_derivatives_eti_t7_v13_0.ping_request = {}

-- Read runtime size of: Ping Request
eurex_derivatives_eti_t7_v13_0.ping_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Ping Request
eurex_derivatives_eti_t7_v13_0.ping_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Ping Request
eurex_derivatives_eti_t7_v13_0.ping_request.fields = function(buffer, offset, packet, parent, size_of_ping_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Ping Request
eurex_derivatives_eti_t7_v13_0.ping_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_ping_request = eurex_derivatives_eti_t7_v13_0.ping_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.ping_request then
    local range = buffer(offset, size_of_ping_request)
    local display = eurex_derivatives_eti_t7_v13_0.ping_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ping_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.ping_request.fields(buffer, offset, packet, parent, size_of_ping_request)

  return offset + size_of_ping_request
end

-- Party Entitlements Update Report
eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report = {}

-- Read runtime size of: Party Entitlements Update Report
eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Party Entitlements Update Report
eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Party Entitlements Update Report
eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.fields = function(buffer, offset, packet, parent, size_of_party_entitlements_update_report)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Party Detail Id Executing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_detail_id_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_unit.dissect(buffer, index, packet, parent)

  -- Requesting Party Id Executing System: 4 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, requesting_party_id_executing_system = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.dissect(buffer, index, packet, parent)

  -- Market Id: 2 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, market_id = eurex_derivatives_eti_t7_v13_0.market_id.dissect(buffer, index, packet, parent)

  -- List Update Action: 1 Byte Ascii String Enum with 2 values
  index, list_update_action = eurex_derivatives_eti_t7_v13_0.list_update_action.dissect(buffer, index, packet, parent)

  -- Requesting Party Entering Firm: 9 Byte Ascii String Nullable
  index, requesting_party_entering_firm = eurex_derivatives_eti_t7_v13_0.requesting_party_entering_firm.dissect(buffer, index, packet, parent)

  -- Requesting Party Clearing Firm: 9 Byte Ascii String Nullable
  index, requesting_party_clearing_firm = eurex_derivatives_eti_t7_v13_0.requesting_party_clearing_firm.dissect(buffer, index, packet, parent)

  -- Party Detail Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, party_detail_status = eurex_derivatives_eti_t7_v13_0.party_detail_status.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Party Entitlements Update Report
eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_party_entitlements_update_report = eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.party_entitlements_update_report then
    local range = buffer(offset, size_of_party_entitlements_update_report)
    local display = eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_entitlements_update_report, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.fields(buffer, offset, packet, parent, size_of_party_entitlements_update_report)

  return offset + size_of_party_entitlements_update_report
end

-- Requesting Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_id_entering_firm = {}

-- Size: Requesting Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_id_entering_firm.size = 1

-- Display: Requesting Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_id_entering_firm.display = function(value)
  if value == 1 then
    return "Requesting Party Id Entering Firm: Participant (1)"
  end
  if value == 2 then
    return "Requesting Party Id Entering Firm: Market Supervision (2)"
  end
  if value == 0xFF then
    return "Requesting Party Id Entering Firm: No Value"
  end

  return "Requesting Party Id Entering Firm: Unknown("..value..")"
end

-- Dissect: Requesting Party Id Entering Firm
eurex_derivatives_eti_t7_v13_0.requesting_party_id_entering_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.requesting_party_id_entering_firm.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.requesting_party_id_entering_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_id_entering_firm, range, value, display)

  return offset + length, value
end

-- Party Action Type
eurex_derivatives_eti_t7_v13_0.party_action_type = {}

-- Size: Party Action Type
eurex_derivatives_eti_t7_v13_0.party_action_type.size = 1

-- Display: Party Action Type
eurex_derivatives_eti_t7_v13_0.party_action_type.display = function(value)
  if value == 1 then
    return "Party Action Type: Halt Trading (1)"
  end
  if value == 2 then
    return "Party Action Type: Reinstate (2)"
  end
  if value == 0xFF then
    return "Party Action Type: No Value"
  end

  return "Party Action Type: Unknown("..value..")"
end

-- Dissect: Party Action Type
eurex_derivatives_eti_t7_v13_0.party_action_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_action_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_action_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_action_type, range, value, display)

  return offset + length, value
end

-- Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_id_executing_unit = {}

-- Size: Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_id_executing_unit.size = 4

-- Display: Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_id_executing_unit.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Party Id Executing Unit: No Value"
  end

  return "Party Id Executing Unit: "..value
end

-- Dissect: Party Id Executing Unit
eurex_derivatives_eti_t7_v13_0.party_id_executing_unit.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_executing_unit.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_executing_unit.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_executing_unit, range, value, display)

  return offset + length, value
end

-- Requesting Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_trader = {}

-- Size: Requesting Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_trader.size = 4

-- Display: Requesting Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_trader.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Requesting Party Id Executing Trader: No Value"
  end

  return "Requesting Party Id Executing Trader: "..value
end

-- Dissect: Requesting Party Id Executing Trader
eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_trader.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.requesting_party_id_executing_trader, range, value, display)

  return offset + length, value
end

-- Party Action Report
eurex_derivatives_eti_t7_v13_0.party_action_report = {}

-- Read runtime size of: Party Action Report
eurex_derivatives_eti_t7_v13_0.party_action_report.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Party Action Report
eurex_derivatives_eti_t7_v13_0.party_action_report.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Party Action Report
eurex_derivatives_eti_t7_v13_0.party_action_report.fields = function(buffer, offset, packet, parent, size_of_party_action_report)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Trade Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, trade_date = eurex_derivatives_eti_t7_v13_0.trade_date.dissect(buffer, index, packet, parent)

  -- Requesting Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, requesting_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Id Executing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_executing_unit = eurex_derivatives_eti_t7_v13_0.party_id_executing_unit.dissect(buffer, index, packet, parent)

  -- Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Requesting Party Id Executing System: 4 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, requesting_party_id_executing_system = eurex_derivatives_eti_t7_v13_0.requesting_party_id_executing_system.dissect(buffer, index, packet, parent)

  -- Market Id: 2 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, market_id = eurex_derivatives_eti_t7_v13_0.market_id.dissect(buffer, index, packet, parent)

  -- Party Action Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_action_type = eurex_derivatives_eti_t7_v13_0.party_action_type.dissect(buffer, index, packet, parent)

  -- Requesting Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, requesting_party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.requesting_party_id_entering_firm.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Party Action Report
eurex_derivatives_eti_t7_v13_0.party_action_report.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_party_action_report = eurex_derivatives_eti_t7_v13_0.party_action_report.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.party_action_report then
    local range = buffer(offset, size_of_party_action_report)
    local display = eurex_derivatives_eti_t7_v13_0.party_action_report.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_action_report, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.party_action_report.fields(buffer, offset, packet, parent, size_of_party_action_report)

  return offset + size_of_party_action_report
end

-- Order Event Reason
eurex_derivatives_eti_t7_v13_0.order_event_reason = {}

-- Size: Order Event Reason
eurex_derivatives_eti_t7_v13_0.order_event_reason.size = 1

-- Display: Order Event Reason
eurex_derivatives_eti_t7_v13_0.order_event_reason.display = function(value)
  if value == 100 then
    return "Order Event Reason: Smp (100)"
  end
  if value == 0xFF then
    return "Order Event Reason: No Value"
  end

  return "Order Event Reason: Unknown("..value..")"
end

-- Dissect: Order Event Reason
eurex_derivatives_eti_t7_v13_0.order_event_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_event_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_event_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_reason, range, value, display)

  return offset + length, value
end

-- Order Event Match Id
eurex_derivatives_eti_t7_v13_0.order_event_match_id = {}

-- Size: Order Event Match Id
eurex_derivatives_eti_t7_v13_0.order_event_match_id.size = 4

-- Display: Order Event Match Id
eurex_derivatives_eti_t7_v13_0.order_event_match_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Order Event Match Id: No Value"
  end

  return "Order Event Match Id: "..value
end

-- Dissect: Order Event Match Id
eurex_derivatives_eti_t7_v13_0.order_event_match_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_event_match_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_event_match_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_match_id, range, value, display)

  return offset + length, value
end

-- Order Event Qty
eurex_derivatives_eti_t7_v13_0.order_event_qty = {}

-- Size: Order Event Qty
eurex_derivatives_eti_t7_v13_0.order_event_qty.size = 8

-- Display: Order Event Qty
eurex_derivatives_eti_t7_v13_0.order_event_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Order Event Qty: No Value"
  end

  return "Order Event Qty: "..value
end

-- Translate: Order Event Qty
eurex_derivatives_eti_t7_v13_0.order_event_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Order Event Qty
eurex_derivatives_eti_t7_v13_0.order_event_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_event_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.order_event_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.order_event_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_qty, range, value, display)

  return offset + length, value
end

-- Order Event Px
eurex_derivatives_eti_t7_v13_0.order_event_px = {}

-- Size: Order Event Px
eurex_derivatives_eti_t7_v13_0.order_event_px.size = 8

-- Display: Order Event Px
eurex_derivatives_eti_t7_v13_0.order_event_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Order Event Px: No Value"
  end

  return "Order Event Px: "..value
end

-- Translate: Order Event Px
eurex_derivatives_eti_t7_v13_0.order_event_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Order Event Px
eurex_derivatives_eti_t7_v13_0.order_event_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_event_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.order_event_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.order_event_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_px, range, value, display)

  return offset + length, value
end

-- Order Event Grp Comp
eurex_derivatives_eti_t7_v13_0.order_event_grp_comp = {}

-- Size: Order Event Grp Comp
eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.order_event_px.size + 
  eurex_derivatives_eti_t7_v13_0.order_event_qty.size + 
  eurex_derivatives_eti_t7_v13_0.order_event_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.order_event_reason.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: Order Event Grp Comp
eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Order Event Grp Comp
eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.fields = function(buffer, offset, packet, parent, order_event_grp_comp_index)
  local index = offset

  -- Implicit Order Event Grp Comp Index
  if order_event_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_grp_comp_index, order_event_grp_comp_index)
    iteration:set_generated()
  end

  -- Order Event Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_event_px = eurex_derivatives_eti_t7_v13_0.order_event_px.dissect(buffer, index, packet, parent)

  -- Order Event Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_event_qty = eurex_derivatives_eti_t7_v13_0.order_event_qty.dissect(buffer, index, packet, parent)

  -- Order Event Match Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, order_event_match_id = eurex_derivatives_eti_t7_v13_0.order_event_match_id.dissect(buffer, index, packet, parent)

  -- Order Event Reason: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_event_reason = eurex_derivatives_eti_t7_v13_0.order_event_reason.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Order Event Grp Comp
eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect = function(buffer, offset, packet, parent, order_event_grp_comp_index)
  if show.order_event_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_event_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.fields(buffer, offset, packet, parent, order_event_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.fields(buffer, offset, packet, parent, order_event_grp_comp_index)
  end
end

-- Fill Ref Id
eurex_derivatives_eti_t7_v13_0.fill_ref_id = {}

-- Size: Fill Ref Id
eurex_derivatives_eti_t7_v13_0.fill_ref_id.size = 1

-- Display: Fill Ref Id
eurex_derivatives_eti_t7_v13_0.fill_ref_id.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "Fill Ref Id: No Value"
  end

  return "Fill Ref Id: "..value
end

-- Dissect: Fill Ref Id
eurex_derivatives_eti_t7_v13_0.fill_ref_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fill_ref_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.fill_ref_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fill_ref_id, range, value, display)

  return offset + length, value
end

-- Instrmnt Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp = {}

-- Size: Instrmnt Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_security_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_last_px.size + 
  eurex_derivatives_eti_t7_v13_0.leg_last_qty.size + 
  eurex_derivatives_eti_t7_v13_0.leg_exec_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_side.size + 
  eurex_derivatives_eti_t7_v13_0.fill_ref_id.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Instrmnt Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Instrmnt Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.fields = function(buffer, offset, packet, parent, instrmnt_leg_exec_grp_comp_index)
  local index = offset

  -- Implicit Instrmnt Leg Exec Grp Comp Index
  if instrmnt_leg_exec_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrmnt_leg_exec_grp_comp_index, instrmnt_leg_exec_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, leg_security_id = eurex_derivatives_eti_t7_v13_0.leg_security_id.dissect(buffer, index, packet, parent)

  -- Leg Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_last_px = eurex_derivatives_eti_t7_v13_0.leg_last_px.dissect(buffer, index, packet, parent)

  -- Leg Last Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_last_qty = eurex_derivatives_eti_t7_v13_0.leg_last_qty.dissect(buffer, index, packet, parent)

  -- Leg Exec Id: 4 Byte Signed Fixed Width Integer Nullable
  index, leg_exec_id = eurex_derivatives_eti_t7_v13_0.leg_exec_id.dissect(buffer, index, packet, parent)

  -- Leg Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, leg_side = eurex_derivatives_eti_t7_v13_0.leg_side.dissect(buffer, index, packet, parent)

  -- Fill Ref Id: 1 Byte Unsigned Fixed Width Integer Nullable
  index, fill_ref_id = eurex_derivatives_eti_t7_v13_0.fill_ref_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Instrmnt Leg Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.dissect = function(buffer, offset, packet, parent, instrmnt_leg_exec_grp_comp_index)
  if show.instrmnt_leg_exec_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrmnt_leg_exec_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.fields(buffer, offset, packet, parent, instrmnt_leg_exec_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.fields(buffer, offset, packet, parent, instrmnt_leg_exec_grp_comp_index)
  end
end

-- Fill Liquidity Ind
eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind = {}

-- Size: Fill Liquidity Ind
eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind.size = 1

-- Display: Fill Liquidity Ind
eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind.display = function(value)
  if value == 1 then
    return "Fill Liquidity Ind: Added Liquidity (1)"
  end
  if value == 2 then
    return "Fill Liquidity Ind: Removed Liquidity (2)"
  end
  if value == 4 then
    return "Fill Liquidity Ind: Auction (4)"
  end
  if value == 5 then
    return "Fill Liquidity Ind: Triggered Stop Order (5)"
  end
  if value == 6 then
    return "Fill Liquidity Ind: Triggered Oco Order (6)"
  end
  if value == 7 then
    return "Fill Liquidity Ind: Triggered Market Order (7)"
  end
  if value == 0xFF then
    return "Fill Liquidity Ind: No Value"
  end

  return "Fill Liquidity Ind: Unknown("..value..")"
end

-- Dissect: Fill Liquidity Ind
eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fill_liquidity_ind, range, value, display)

  return offset + length, value
end

-- Fill Exec Id
eurex_derivatives_eti_t7_v13_0.fill_exec_id = {}

-- Size: Fill Exec Id
eurex_derivatives_eti_t7_v13_0.fill_exec_id.size = 4

-- Display: Fill Exec Id
eurex_derivatives_eti_t7_v13_0.fill_exec_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Fill Exec Id: No Value"
  end

  return "Fill Exec Id: "..value
end

-- Dissect: Fill Exec Id
eurex_derivatives_eti_t7_v13_0.fill_exec_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fill_exec_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.fill_exec_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fill_exec_id, range, value, display)

  return offset + length, value
end

-- Fill Match Id
eurex_derivatives_eti_t7_v13_0.fill_match_id = {}

-- Size: Fill Match Id
eurex_derivatives_eti_t7_v13_0.fill_match_id.size = 4

-- Display: Fill Match Id
eurex_derivatives_eti_t7_v13_0.fill_match_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Fill Match Id: No Value"
  end

  return "Fill Match Id: "..value
end

-- Dissect: Fill Match Id
eurex_derivatives_eti_t7_v13_0.fill_match_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fill_match_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.fill_match_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fill_match_id, range, value, display)

  return offset + length, value
end

-- Fill Qty
eurex_derivatives_eti_t7_v13_0.fill_qty = {}

-- Size: Fill Qty
eurex_derivatives_eti_t7_v13_0.fill_qty.size = 8

-- Display: Fill Qty
eurex_derivatives_eti_t7_v13_0.fill_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Fill Qty: No Value"
  end

  return "Fill Qty: "..value
end

-- Translate: Fill Qty
eurex_derivatives_eti_t7_v13_0.fill_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Fill Qty
eurex_derivatives_eti_t7_v13_0.fill_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fill_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.fill_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.fill_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fill_qty, range, value, display)

  return offset + length, value
end

-- Fill Px
eurex_derivatives_eti_t7_v13_0.fill_px = {}

-- Size: Fill Px
eurex_derivatives_eti_t7_v13_0.fill_px.size = 8

-- Display: Fill Px
eurex_derivatives_eti_t7_v13_0.fill_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Fill Px: No Value"
  end

  return "Fill Px: "..value
end

-- Translate: Fill Px
eurex_derivatives_eti_t7_v13_0.fill_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Fill Px
eurex_derivatives_eti_t7_v13_0.fill_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fill_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.fill_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.fill_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fill_px, range, value, display)

  return offset + length, value
end

-- Fills Grp Comp
eurex_derivatives_eti_t7_v13_0.fills_grp_comp = {}

-- Size: Fills Grp Comp
eurex_derivatives_eti_t7_v13_0.fills_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.fill_px.size + 
  eurex_derivatives_eti_t7_v13_0.fill_qty.size + 
  eurex_derivatives_eti_t7_v13_0.fill_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.fill_exec_id.size + 
  eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Fills Grp Comp
eurex_derivatives_eti_t7_v13_0.fills_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Fills Grp Comp
eurex_derivatives_eti_t7_v13_0.fills_grp_comp.fields = function(buffer, offset, packet, parent, fills_grp_comp_index)
  local index = offset

  -- Implicit Fills Grp Comp Index
  if fills_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fills_grp_comp_index, fills_grp_comp_index)
    iteration:set_generated()
  end

  -- Fill Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, fill_px = eurex_derivatives_eti_t7_v13_0.fill_px.dissect(buffer, index, packet, parent)

  -- Fill Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, fill_qty = eurex_derivatives_eti_t7_v13_0.fill_qty.dissect(buffer, index, packet, parent)

  -- Fill Match Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, fill_match_id = eurex_derivatives_eti_t7_v13_0.fill_match_id.dissect(buffer, index, packet, parent)

  -- Fill Exec Id: 4 Byte Signed Fixed Width Integer Nullable
  index, fill_exec_id = eurex_derivatives_eti_t7_v13_0.fill_exec_id.dissect(buffer, index, packet, parent)

  -- Fill Liquidity Ind: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, fill_liquidity_ind = eurex_derivatives_eti_t7_v13_0.fill_liquidity_ind.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Fills Grp Comp
eurex_derivatives_eti_t7_v13_0.fills_grp_comp.dissect = function(buffer, offset, packet, parent, fills_grp_comp_index)
  if show.fills_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fills_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.fills_grp_comp.fields(buffer, offset, packet, parent, fills_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.fills_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.fills_grp_comp.fields(buffer, offset, packet, parent, fills_grp_comp_index)
  end
end

-- No Order Events
eurex_derivatives_eti_t7_v13_0.no_order_events = {}

-- Size: No Order Events
eurex_derivatives_eti_t7_v13_0.no_order_events.size = 1

-- Display: No Order Events
eurex_derivatives_eti_t7_v13_0.no_order_events.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Order Events: No Value"
  end

  return "No Order Events: "..value
end

-- Dissect: No Order Events
eurex_derivatives_eti_t7_v13_0.no_order_events.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_order_events.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_order_events.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_order_events, range, value, display)

  return offset + length, value
end

-- No Fills
eurex_derivatives_eti_t7_v13_0.no_fills = {}

-- Size: No Fills
eurex_derivatives_eti_t7_v13_0.no_fills.size = 1

-- Display: No Fills
eurex_derivatives_eti_t7_v13_0.no_fills.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Fills: No Value"
  end

  return "No Fills: "..value
end

-- Dissect: No Fills
eurex_derivatives_eti_t7_v13_0.no_fills.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_fills.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_fills.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_fills, range, value, display)

  return offset + length, value
end

-- Transaction Delay Indicator
eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator = {}

-- Size: Transaction Delay Indicator
eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.size = 1

-- Display: Transaction Delay Indicator
eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.display = function(value)
  if value == 0 then
    return "Transaction Delay Indicator: Notdelayed (0)"
  end
  if value == 1 then
    return "Transaction Delay Indicator: Delayed (1)"
  end
  if value == 0xFF then
    return "Transaction Delay Indicator: No Value"
  end

  return "Transaction Delay Indicator: Unknown("..value..")"
end

-- Dissect: Transaction Delay Indicator
eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.transaction_delay_indicator, range, value, display)

  return offset + length, value
end

-- Crossed Indicator
eurex_derivatives_eti_t7_v13_0.crossed_indicator = {}

-- Size: Crossed Indicator
eurex_derivatives_eti_t7_v13_0.crossed_indicator.size = 1

-- Display: Crossed Indicator
eurex_derivatives_eti_t7_v13_0.crossed_indicator.display = function(value)
  if value == 0 then
    return "Crossed Indicator: Nocrossing (0)"
  end
  if value == 1 then
    return "Crossed Indicator: Crossrejected (1)"
  end
  if value == 0xFF then
    return "Crossed Indicator: No Value"
  end

  return "Crossed Indicator: Unknown("..value..")"
end

-- Dissect: Crossed Indicator
eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.crossed_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.crossed_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.crossed_indicator, range, value, display)

  return offset + length, value
end

-- Triggered
eurex_derivatives_eti_t7_v13_0.triggered = {}

-- Size: Triggered
eurex_derivatives_eti_t7_v13_0.triggered.size = 1

-- Display: Triggered
eurex_derivatives_eti_t7_v13_0.triggered.display = function(value)
  if value == 0 then
    return "Triggered: Nottriggered (0)"
  end
  if value == 1 then
    return "Triggered: Triggered Stop (1)"
  end
  if value == 2 then
    return "Triggered: Triggered Oco (2)"
  end
  if value == 0xFF then
    return "Triggered: No Value"
  end

  return "Triggered: Unknown("..value..")"
end

-- Dissect: Triggered
eurex_derivatives_eti_t7_v13_0.triggered.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.triggered.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.triggered.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.triggered, range, value, display)

  return offset + length, value
end

-- Exec Type
eurex_derivatives_eti_t7_v13_0.exec_type = {}

-- Size: Exec Type
eurex_derivatives_eti_t7_v13_0.exec_type.size = 1

-- Display: Exec Type
eurex_derivatives_eti_t7_v13_0.exec_type.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Exec Type: No Value"
  end

  if value == "0" then
    return "Exec Type: New (0)"
  end
  if value == "4" then
    return "Exec Type: Canceled (4)"
  end
  if value == "5" then
    return "Exec Type: Replaced (5)"
  end
  if value == "6" then
    return "Exec Type: Pending Cancele (6)"
  end
  if value == "9" then
    return "Exec Type: Suspended (9)"
  end
  if value == "D" then
    return "Exec Type: Restated (D)"
  end
  if value == "L" then
    return "Exec Type: Triggered (L)"
  end
  if value == "F" then
    return "Exec Type: Trade (F)"
  end

  return "Exec Type: Unknown("..value..")"
end

-- Dissect: Exec Type
eurex_derivatives_eti_t7_v13_0.exec_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.exec_type.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.exec_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.exec_type, range, value, display)

  return offset + length, value
end

-- Ord Status
eurex_derivatives_eti_t7_v13_0.ord_status = {}

-- Size: Ord Status
eurex_derivatives_eti_t7_v13_0.ord_status.size = 1

-- Display: Ord Status
eurex_derivatives_eti_t7_v13_0.ord_status.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Ord Status: No Value"
  end

  if value == "0" then
    return "Ord Status: New (0)"
  end
  if value == "1" then
    return "Ord Status: Partiallyfilled (1)"
  end
  if value == "2" then
    return "Ord Status: Filled (2)"
  end
  if value == "4" then
    return "Ord Status: Canceled (4)"
  end
  if value == "6" then
    return "Ord Status: Pending Cancel (6)"
  end
  if value == "9" then
    return "Ord Status: Suspended (9)"
  end

  return "Ord Status: Unknown("..value..")"
end

-- Dissect: Ord Status
eurex_derivatives_eti_t7_v13_0.ord_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.ord_status.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.ord_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ord_status, range, value, display)

  return offset + length, value
end

-- Exec Restatement Reason
eurex_derivatives_eti_t7_v13_0.exec_restatement_reason = {}

-- Size: Exec Restatement Reason
eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.size = 2

-- Display: Exec Restatement Reason
eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.display = function(value)
  if value == 1 then
    return "Exec Restatement Reason: Order Book Restatement (1)"
  end
  if value == 101 then
    return "Exec Restatement Reason: Order Added (101)"
  end
  if value == 102 then
    return "Exec Restatement Reason: Order Modified (102)"
  end
  if value == 103 then
    return "Exec Restatement Reason: Order Cancelled (103)"
  end
  if value == 105 then
    return "Exec Restatement Reason: Ioc Order Cancelled (105)"
  end
  if value == 107 then
    return "Exec Restatement Reason: Fok Order Cancelled (107)"
  end
  if value == 108 then
    return "Exec Restatement Reason: Book Order Executed (108)"
  end
  if value == 114 then
    return "Exec Restatement Reason: Changedto Ioc (114)"
  end
  if value == 117 then
    return "Exec Restatement Reason: Memberdisable (117)"
  end
  if value == 122 then
    return "Exec Restatement Reason: Instrument State Change (122)"
  end
  if value == 135 then
    return "Exec Restatement Reason: Market Order Triggered (135)"
  end
  if value == 149 then
    return "Exec Restatement Reason: Cao Order Activated (149)"
  end
  if value == 150 then
    return "Exec Restatement Reason: Cao Order Inactivated (150)"
  end
  if value == 151 then
    return "Exec Restatement Reason: Oao Order Activated (151)"
  end
  if value == 152 then
    return "Exec Restatement Reason: Oao Order Inactivated (152)"
  end
  if value == 153 then
    return "Exec Restatement Reason: Aao Order Activated (153)"
  end
  if value == 154 then
    return "Exec Restatement Reason: Aao Order Inactivated (154)"
  end
  if value == 164 then
    return "Exec Restatement Reason: Oco Order Triggered (164)"
  end
  if value == 172 then
    return "Exec Restatement Reason: Stop Order Triggered (172)"
  end
  if value == 181 then
    return "Exec Restatement Reason: Ownership Changed (181)"
  end
  if value == 197 then
    return "Exec Restatement Reason: Order Cancellation Pending (197)"
  end
  if value == 199 then
    return "Exec Restatement Reason: Pending Cancellation Executed (199)"
  end
  if value == 212 then
    return "Exec Restatement Reason: Boc Order Cancelled (212)"
  end
  if value == 261 then
    return "Exec Restatement Reason: Panic Cancel (261)"
  end
  if value == 302 then
    return "Exec Restatement Reason: Market Order Uncrossing (302)"
  end
  if value == 340 then
    return "Exec Restatement Reason: Clip Execution (340)"
  end
  if value == 343 then
    return "Exec Restatement Reason: Clip Arrangementtimeout (343)"
  end
  if value == 344 then
    return "Exec Restatement Reason: Clip Arrangement Validation (344)"
  end
  if value == 346 then
    return "Exec Restatement Reason: Cross Order Added (346)"
  end
  if value == 347 then
    return "Exec Restatement Reason: Cross Order Cancelled (347)"
  end
  if value == 0xFFFF then
    return "Exec Restatement Reason: No Value"
  end

  return "Exec Restatement Reason: Unknown("..value..")"
end

-- Dissect: Exec Restatement Reason
eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.exec_restatement_reason, range, value, display)

  return offset + length, value
end

-- Cxl Qty
eurex_derivatives_eti_t7_v13_0.cxl_qty = {}

-- Size: Cxl Qty
eurex_derivatives_eti_t7_v13_0.cxl_qty.size = 8

-- Display: Cxl Qty
eurex_derivatives_eti_t7_v13_0.cxl_qty.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Cxl Qty: No Value"
  end

  return "Cxl Qty: "..value
end

-- Translate: Cxl Qty
eurex_derivatives_eti_t7_v13_0.cxl_qty.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Cxl Qty
eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cxl_qty.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.cxl_qty.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.cxl_qty.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cxl_qty, range, value, display)

  return offset + length, value
end

-- Trd Reg Ts Time Priority
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority = {}

-- Size: Trd Reg Ts Time Priority
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.size = 8

-- Display: Trd Reg Ts Time Priority
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Trd Reg Ts Time Priority: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Trd Reg Ts Time Priority: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Trd Reg Ts Time Priority
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_time_priority, range, value, display)

  return offset + length, value
end

-- Trd Reg Ts Entry Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time = {}

-- Size: Trd Reg Ts Entry Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.size = 8

-- Display: Trd Reg Ts Entry Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Trd Reg Ts Entry Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Trd Reg Ts Entry Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Trd Reg Ts Entry Time
eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trd_reg_ts_entry_time, range, value, display)

  return offset + length, value
end

-- Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id = {}

-- Size: Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.size = 8

-- Display: Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Orig Cl Ord Id: No Value"
  end

  return "Orig Cl Ord Id: "..value
end

-- Dissect: Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.orig_cl_ord_id, range, value, display)

  return offset + length, value
end

-- Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.response_header_me_comp = {}

-- Size: Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.response_header_me_comp.size =
  eurex_derivatives_eti_t7_v13_0.request_time.size + 
  eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.size + 
  eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.size + 
  eurex_derivatives_eti_t7_v13_0.response_in.size + 
  eurex_derivatives_eti_t7_v13_0.sending_time.size + 
  eurex_derivatives_eti_t7_v13_0.msg_seq_num.size + 
  eurex_derivatives_eti_t7_v13_0.partition_id.size + 
  eurex_derivatives_eti_t7_v13_0.appl_id.size + 
  eurex_derivatives_eti_t7_v13_0.appl_msg_id.size + 
  eurex_derivatives_eti_t7_v13_0.last_fragment.size

-- Display: Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.response_header_me_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.response_header_me_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Request Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, request_time = eurex_derivatives_eti_t7_v13_0.request_time.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time In: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_in = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_in.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time Out: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_out = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_out.dissect(buffer, index, packet, parent)

  -- Response In: 8 Byte Unsigned Fixed Width Integer Nullable
  index, response_in = eurex_derivatives_eti_t7_v13_0.response_in.dissect(buffer, index, packet, parent)

  -- Sending Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, sending_time = eurex_derivatives_eti_t7_v13_0.sending_time.dissect(buffer, index, packet, parent)

  -- Msg Seq Num: 4 Byte Unsigned Fixed Width Integer Nullable
  index, msg_seq_num = eurex_derivatives_eti_t7_v13_0.msg_seq_num.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, appl_id = eurex_derivatives_eti_t7_v13_0.appl_id.dissect(buffer, index, packet, parent)

  -- Appl Msg Id: 16 Byte
  index, appl_msg_id = eurex_derivatives_eti_t7_v13_0.appl_msg_id.dissect(buffer, index, packet, parent)

  -- Last Fragment: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, last_fragment = eurex_derivatives_eti_t7_v13_0.last_fragment.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Response Header Me Comp
eurex_derivatives_eti_t7_v13_0.response_header_me_comp.dissect = function(buffer, offset, packet, parent)
  if show.response_header_me_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.response_header_me_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.response_header_me_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.response_header_me_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.response_header_me_comp.fields(buffer, offset, packet, parent)
  end
end

-- Order Exec Response
eurex_derivatives_eti_t7_v13_0.order_exec_response = {}

-- Read runtime size of: Order Exec Response
eurex_derivatives_eti_t7_v13_0.order_exec_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Order Exec Response
eurex_derivatives_eti_t7_v13_0.order_exec_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Order Exec Response
eurex_derivatives_eti_t7_v13_0.order_exec_response.fields = function(buffer, offset, packet, parent, size_of_order_exec_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Me Comp: Struct of 10 fields
  index, response_header_me_comp = eurex_derivatives_eti_t7_v13_0.response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Entry Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_entry_time = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time Priority: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_priority = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- No Leg Execs: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_execs = eurex_derivatives_eti_t7_v13_0.no_leg_execs.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Triggered: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, triggered = eurex_derivatives_eti_t7_v13_0.triggered.dissect(buffer, index, packet, parent)

  -- Crossed Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, crossed_indicator = eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect(buffer, index, packet, parent)

  -- Transaction Delay Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transaction_delay_indicator = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect(buffer, index, packet, parent)

  -- No Fills: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_fills = eurex_derivatives_eti_t7_v13_0.no_fills.dissect(buffer, index, packet, parent)

  -- No Order Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_events = eurex_derivatives_eti_t7_v13_0.no_order_events.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Fills Grp Comp
  for fills_grp_comp_index = 1, no_fills do
    index, fills_grp_comp = eurex_derivatives_eti_t7_v13_0.fills_grp_comp.dissect(buffer, index, packet, parent, fills_grp_comp_index)
  end

  -- Repeating: Instrmnt Leg Exec Grp Comp
  for instrmnt_leg_exec_grp_comp_index = 1, no_leg_execs do
    index, instrmnt_leg_exec_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.dissect(buffer, index, packet, parent, instrmnt_leg_exec_grp_comp_index)
  end

  -- Repeating: Order Event Grp Comp
  for order_event_grp_comp_index = 1, no_order_events do
    index, order_event_grp_comp = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect(buffer, index, packet, parent, order_event_grp_comp_index)
  end

  return index
end

-- Dissect: Order Exec Response
eurex_derivatives_eti_t7_v13_0.order_exec_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_order_exec_response = eurex_derivatives_eti_t7_v13_0.order_exec_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.order_exec_response then
    local range = buffer(offset, size_of_order_exec_response)
    local display = eurex_derivatives_eti_t7_v13_0.order_exec_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_exec_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.order_exec_response.fields(buffer, offset, packet, parent, size_of_order_exec_response)

  return offset + size_of_order_exec_response
end

-- Leg Position Effect
eurex_derivatives_eti_t7_v13_0.leg_position_effect = {}

-- Size: Leg Position Effect
eurex_derivatives_eti_t7_v13_0.leg_position_effect.size = 1

-- Display: Leg Position Effect
eurex_derivatives_eti_t7_v13_0.leg_position_effect.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Leg Position Effect: No Value"
  end

  if value == "C" then
    return "Leg Position Effect: Close (C)"
  end
  if value == "O" then
    return "Leg Position Effect: Open (O)"
  end

  return "Leg Position Effect: Unknown("..value..")"
end

-- Dissect: Leg Position Effect
eurex_derivatives_eti_t7_v13_0.leg_position_effect.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_position_effect.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.leg_position_effect.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_position_effect, range, value, display)

  return offset + length, value
end

-- Leg Account
eurex_derivatives_eti_t7_v13_0.leg_account = {}

-- Size: Leg Account
eurex_derivatives_eti_t7_v13_0.leg_account.size = 2

-- Display: Leg Account
eurex_derivatives_eti_t7_v13_0.leg_account.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Leg Account: No Value"
  end

  return "Leg Account: "..value
end

-- Dissect: Leg Account
eurex_derivatives_eti_t7_v13_0.leg_account.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_account.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.leg_account.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_account, range, value, display)

  return offset + length, value
end

-- Leg Ord Grp Comp
eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp = {}

-- Size: Leg Ord Grp Comp
eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_account.size + 
  eurex_derivatives_eti_t7_v13_0.leg_position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.pad_5.size

-- Display: Leg Ord Grp Comp
eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Leg Ord Grp Comp
eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.fields = function(buffer, offset, packet, parent, leg_ord_grp_comp_index)
  local index = offset

  -- Implicit Leg Ord Grp Comp Index
  if leg_ord_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_ord_grp_comp_index, leg_ord_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Account: 2 Byte Ascii String Nullable
  index, leg_account = eurex_derivatives_eti_t7_v13_0.leg_account.dissect(buffer, index, packet, parent)

  -- Leg Position Effect: 1 Byte Ascii String Enum with 2 values
  index, leg_position_effect = eurex_derivatives_eti_t7_v13_0.leg_position_effect.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Leg Ord Grp Comp
eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.dissect = function(buffer, offset, packet, parent, leg_ord_grp_comp_index)
  if show.leg_ord_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_ord_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.fields(buffer, offset, packet, parent, leg_ord_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.fields(buffer, offset, packet, parent, leg_ord_grp_comp_index)
  end
end

-- No Leg Onbooks
eurex_derivatives_eti_t7_v13_0.no_leg_onbooks = {}

-- Size: No Leg Onbooks
eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.size = 1

-- Display: No Leg Onbooks
eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Leg Onbooks: No Value"
  end

  return "No Leg Onbooks: "..value
end

-- Dissect: No Leg Onbooks
eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_leg_onbooks, range, value, display)

  return offset + length, value
end

-- Fix Cl Ord Id
eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id = {}

-- Size: Fix Cl Ord Id
eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.size = 20

-- Display: Fix Cl Ord Id
eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Fix Cl Ord Id: No Value"
  end

  return "Fix Cl Ord Id: "..value
end

-- Dissect: Fix Cl Ord Id
eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fix_cl_ord_id, range, value, display)

  return offset + length, value
end

-- Appl Seq Indicator
eurex_derivatives_eti_t7_v13_0.appl_seq_indicator = {}

-- Size: Appl Seq Indicator
eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.size = 1

-- Display: Appl Seq Indicator
eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.display = function(value)
  if value == 0 then
    return "Appl Seq Indicator: No Recovery Required (0)"
  end
  if value == 1 then
    return "Appl Seq Indicator: Recovery Required (1)"
  end
  if value == 0xFF then
    return "Appl Seq Indicator: No Value"
  end

  return "Appl Seq Indicator: Unknown("..value..")"
end

-- Dissect: Appl Seq Indicator
eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_seq_indicator, range, value, display)

  return offset + length, value
end

-- Trading Session Sub Id
eurex_derivatives_eti_t7_v13_0.trading_session_sub_id = {}

-- Size: Trading Session Sub Id
eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.size = 1

-- Display: Trading Session Sub Id
eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.display = function(value)
  if value == 2 then
    return "Trading Session Sub Id: Openingauction (2)"
  end
  if value == 4 then
    return "Trading Session Sub Id: Closingauction (4)"
  end
  if value == 8 then
    return "Trading Session Sub Id: Any Auction (8)"
  end
  if value == 0xFF then
    return "Trading Session Sub Id: No Value"
  end

  return "Trading Session Sub Id: Unknown("..value..")"
end

-- Dissect: Trading Session Sub Id
eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trading_session_sub_id, range, value, display)

  return offset + length, value
end

-- Exec Inst
eurex_derivatives_eti_t7_v13_0.exec_inst = {}

-- Size: Exec Inst
eurex_derivatives_eti_t7_v13_0.exec_inst.size = 1

-- Display: Exec Inst
eurex_derivatives_eti_t7_v13_0.exec_inst.display = function(value)
  if value == 1 then
    return "Exec Inst: H (1)"
  end
  if value == 2 then
    return "Exec Inst: Q (2)"
  end
  if value == 3 then
    return "Exec Inst: Hq (3)"
  end
  if value == 5 then
    return "Exec Inst: H 6 (5)"
  end
  if value == 6 then
    return "Exec Inst: Q 6 (6)"
  end
  if value == 0xFF then
    return "Exec Inst: No Value"
  end

  return "Exec Inst: Unknown("..value..")"
end

-- Dissect: Exec Inst
eurex_derivatives_eti_t7_v13_0.exec_inst.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.exec_inst.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.exec_inst.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.exec_inst, range, value, display)

  return offset + length, value
end

-- Time In Force
eurex_derivatives_eti_t7_v13_0.time_in_force = {}

-- Size: Time In Force
eurex_derivatives_eti_t7_v13_0.time_in_force.size = 1

-- Display: Time In Force
eurex_derivatives_eti_t7_v13_0.time_in_force.display = function(value)
  if value == 0 then
    return "Time In Force: Day (0)"
  end
  if value == 1 then
    return "Time In Force: Gtc (1)"
  end
  if value == 3 then
    return "Time In Force: Ioc (3)"
  end
  if value == 4 then
    return "Time In Force: Fok (4)"
  end
  if value == 6 then
    return "Time In Force: Gtd (6)"
  end
  if value == 0xFF then
    return "Time In Force: No Value"
  end

  return "Time In Force: Unknown("..value..")"
end

-- Dissect: Time In Force
eurex_derivatives_eti_t7_v13_0.time_in_force.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.time_in_force.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.time_in_force.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.time_in_force, range, value, display)

  return offset + length, value
end

-- Self Match Prevention Instruction
eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction = {}

-- Size: Self Match Prevention Instruction
eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.size = 1

-- Display: Self Match Prevention Instruction
eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.display = function(value)
  if value == 100 then
    return "Self Match Prevention Instruction: Crossrejected Bu (100)"
  end
  if value == 101 then
    return "Self Match Prevention Instruction: Crossrejected Market (101)"
  end
  if value == 0xFF then
    return "Self Match Prevention Instruction: No Value"
  end

  return "Self Match Prevention Instruction: Unknown("..value..")"
end

-- Dissect: Self Match Prevention Instruction
eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.self_match_prevention_instruction, range, value, display)

  return offset + length, value
end

-- Party Id Session Id
eurex_derivatives_eti_t7_v13_0.party_id_session_id = {}

-- Size: Party Id Session Id
eurex_derivatives_eti_t7_v13_0.party_id_session_id.size = 4

-- Display: Party Id Session Id
eurex_derivatives_eti_t7_v13_0.party_id_session_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Party Id Session Id: No Value"
  end

  return "Party Id Session Id: "..value
end

-- Dissect: Party Id Session Id
eurex_derivatives_eti_t7_v13_0.party_id_session_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_session_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_session_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_session_id, range, value, display)

  return offset + length, value
end

-- Match Inst Cross Id
eurex_derivatives_eti_t7_v13_0.match_inst_cross_id = {}

-- Size: Match Inst Cross Id
eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.size = 4

-- Display: Match Inst Cross Id
eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Match Inst Cross Id: No Value"
  end

  return "Match Inst Cross Id: "..value
end

-- Dissect: Match Inst Cross Id
eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.match_inst_cross_id, range, value, display)

  return offset + length, value
end

-- Expire Date
eurex_derivatives_eti_t7_v13_0.expire_date = {}

-- Size: Expire Date
eurex_derivatives_eti_t7_v13_0.expire_date.size = 4

-- Display: Expire Date
eurex_derivatives_eti_t7_v13_0.expire_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Expire Date: No Value"
  end

  return "Expire Date: "..value
end

-- Dissect: Expire Date
eurex_derivatives_eti_t7_v13_0.expire_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.expire_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.expire_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.expire_date, range, value, display)

  return offset + length, value
end

-- Stop Px
eurex_derivatives_eti_t7_v13_0.stop_px = {}

-- Size: Stop Px
eurex_derivatives_eti_t7_v13_0.stop_px.size = 8

-- Display: Stop Px
eurex_derivatives_eti_t7_v13_0.stop_px.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Stop Px: No Value"
  end

  return "Stop Px: "..value
end

-- Translate: Stop Px
eurex_derivatives_eti_t7_v13_0.stop_px.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Stop Px
eurex_derivatives_eti_t7_v13_0.stop_px.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.stop_px.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.stop_px.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.stop_px.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.stop_px, range, value, display)

  return offset + length, value
end

-- Order Exec Report Broadcast
eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast = {}

-- Read runtime size of: Order Exec Report Broadcast
eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Order Exec Report Broadcast
eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Order Exec Report Broadcast
eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.fields = function(buffer, offset, packet, parent, size_of_order_exec_report_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Entry Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_entry_time = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time Priority: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_priority = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Stop Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, stop_px = eurex_derivatives_eti_t7_v13_0.stop_px.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Mass Order Report Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, mass_order_report_id = eurex_derivatives_eti_t7_v13_0.mass_order_report_id.dissect(buffer, index, packet, parent)

  -- Expire Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, expire_date = eurex_derivatives_eti_t7_v13_0.expire_date.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Party Id Executing Unit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_executing_unit = eurex_derivatives_eti_t7_v13_0.party_id_executing_unit.dissect(buffer, index, packet, parent)

  -- Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_session_id = eurex_derivatives_eti_t7_v13_0.party_id_session_id.dissect(buffer, index, packet, parent)

  -- Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Id Entering Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_entering_trader = eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.dissect(buffer, index, packet, parent)

  -- No Leg Execs: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_execs = eurex_derivatives_eti_t7_v13_0.no_leg_execs.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Trading Session Sub Id: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_session_sub_id = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- No Fills: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_fills = eurex_derivatives_eti_t7_v13_0.no_fills.dissect(buffer, index, packet, parent)

  -- No Leg Onbooks: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_onbooks = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect(buffer, index, packet, parent)

  -- No Order Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_events = eurex_derivatives_eti_t7_v13_0.no_order_events.dissect(buffer, index, packet, parent)

  -- Triggered: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, triggered = eurex_derivatives_eti_t7_v13_0.triggered.dissect(buffer, index, packet, parent)

  -- Crossed Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, crossed_indicator = eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Repeating: Leg Ord Grp Comp
  for leg_ord_grp_comp_index = 1, no_leg_onbooks do
    index, leg_ord_grp_comp = eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.dissect(buffer, index, packet, parent, leg_ord_grp_comp_index)
  end

  -- Repeating: Fills Grp Comp
  for fills_grp_comp_index = 1, no_fills do
    index, fills_grp_comp = eurex_derivatives_eti_t7_v13_0.fills_grp_comp.dissect(buffer, index, packet, parent, fills_grp_comp_index)
  end

  -- Repeating: Instrmnt Leg Exec Grp Comp
  for instrmnt_leg_exec_grp_comp_index = 1, no_leg_execs do
    index, instrmnt_leg_exec_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.dissect(buffer, index, packet, parent, instrmnt_leg_exec_grp_comp_index)
  end

  -- Repeating: Order Event Grp Comp
  for order_event_grp_comp_index = 1, no_order_events do
    index, order_event_grp_comp = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect(buffer, index, packet, parent, order_event_grp_comp_index)
  end

  return index
end

-- Dissect: Order Exec Report Broadcast
eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_order_exec_report_broadcast = eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.order_exec_report_broadcast then
    local range = buffer(offset, size_of_order_exec_report_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_exec_report_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.fields(buffer, offset, packet, parent, size_of_order_exec_report_broadcast)

  return offset + size_of_order_exec_report_broadcast
end

-- Order Exec Notification
eurex_derivatives_eti_t7_v13_0.order_exec_notification = {}

-- Read runtime size of: Order Exec Notification
eurex_derivatives_eti_t7_v13_0.order_exec_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Order Exec Notification
eurex_derivatives_eti_t7_v13_0.order_exec_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Order Exec Notification
eurex_derivatives_eti_t7_v13_0.order_exec_notification.fields = function(buffer, offset, packet, parent, size_of_order_exec_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Mass Order Report Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, mass_order_report_id = eurex_derivatives_eti_t7_v13_0.mass_order_report_id.dissect(buffer, index, packet, parent)

  -- No Leg Execs: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_execs = eurex_derivatives_eti_t7_v13_0.no_leg_execs.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Triggered: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, triggered = eurex_derivatives_eti_t7_v13_0.triggered.dissect(buffer, index, packet, parent)

  -- Crossed Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, crossed_indicator = eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- No Fills: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_fills = eurex_derivatives_eti_t7_v13_0.no_fills.dissect(buffer, index, packet, parent)

  -- No Order Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_events = eurex_derivatives_eti_t7_v13_0.no_order_events.dissect(buffer, index, packet, parent)

  -- Repeating: Fills Grp Comp
  for fills_grp_comp_index = 1, no_fills do
    index, fills_grp_comp = eurex_derivatives_eti_t7_v13_0.fills_grp_comp.dissect(buffer, index, packet, parent, fills_grp_comp_index)
  end

  -- Repeating: Instrmnt Leg Exec Grp Comp
  for instrmnt_leg_exec_grp_comp_index = 1, no_leg_execs do
    index, instrmnt_leg_exec_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.dissect(buffer, index, packet, parent, instrmnt_leg_exec_grp_comp_index)
  end

  -- Repeating: Order Event Grp Comp
  for order_event_grp_comp_index = 1, no_order_events do
    index, order_event_grp_comp = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect(buffer, index, packet, parent, order_event_grp_comp_index)
  end

  return index
end

-- Dissect: Order Exec Notification
eurex_derivatives_eti_t7_v13_0.order_exec_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_order_exec_notification = eurex_derivatives_eti_t7_v13_0.order_exec_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.order_exec_notification then
    local range = buffer(offset, size_of_order_exec_notification)
    local display = eurex_derivatives_eti_t7_v13_0.order_exec_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_exec_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.order_exec_notification.fields(buffer, offset, packet, parent, size_of_order_exec_notification)

  return offset + size_of_order_exec_notification
end

-- Headline
eurex_derivatives_eti_t7_v13_0.headline = {}

-- Size: Headline
eurex_derivatives_eti_t7_v13_0.headline.size = 256

-- Display: Headline
eurex_derivatives_eti_t7_v13_0.headline.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Headline: No Value"
  end

  return "Headline: "..value
end

-- Dissect: Headline
eurex_derivatives_eti_t7_v13_0.headline.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.headline.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.headline.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.headline, range, value, display)

  return offset + length, value
end

-- Orig Time
eurex_derivatives_eti_t7_v13_0.orig_time = {}

-- Size: Orig Time
eurex_derivatives_eti_t7_v13_0.orig_time.size = 8

-- Display: Orig Time
eurex_derivatives_eti_t7_v13_0.orig_time.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Orig Time: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Orig Time: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Orig Time
eurex_derivatives_eti_t7_v13_0.orig_time.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.orig_time.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.orig_time.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.orig_time, range, value, display)

  return offset + length, value
end

-- News Broadcast
eurex_derivatives_eti_t7_v13_0.news_broadcast = {}

-- Read runtime size of: News Broadcast
eurex_derivatives_eti_t7_v13_0.news_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: News Broadcast
eurex_derivatives_eti_t7_v13_0.news_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: News Broadcast
eurex_derivatives_eti_t7_v13_0.news_broadcast.fields = function(buffer, offset, packet, parent, size_of_news_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Orig Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_time = eurex_derivatives_eti_t7_v13_0.orig_time.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- Headline: 256 Byte Ascii String Nullable
  index, headline = eurex_derivatives_eti_t7_v13_0.headline.dissect(buffer, index, packet, parent)

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: News Broadcast
eurex_derivatives_eti_t7_v13_0.news_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_news_broadcast = eurex_derivatives_eti_t7_v13_0.news_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.news_broadcast then
    local range = buffer(offset, size_of_news_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.news_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.news_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.news_broadcast.fields(buffer, offset, packet, parent, size_of_news_broadcast)

  return offset + size_of_news_broadcast
end

-- Value Check Type Value
eurex_derivatives_eti_t7_v13_0.value_check_type_value = {}

-- Size: Value Check Type Value
eurex_derivatives_eti_t7_v13_0.value_check_type_value.size = 1

-- Display: Value Check Type Value
eurex_derivatives_eti_t7_v13_0.value_check_type_value.display = function(value)
  if value == 0 then
    return "Value Check Type Value: Donotcheck (0)"
  end
  if value == 1 then
    return "Value Check Type Value: Check (1)"
  end
  if value == 0xFF then
    return "Value Check Type Value: No Value"
  end

  return "Value Check Type Value: Unknown("..value..")"
end

-- Dissect: Value Check Type Value
eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.value_check_type_value.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.value_check_type_value.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.value_check_type_value, range, value, display)

  return offset + length, value
end

-- Price Validity Check Type
eurex_derivatives_eti_t7_v13_0.price_validity_check_type = {}

-- Size: Price Validity Check Type
eurex_derivatives_eti_t7_v13_0.price_validity_check_type.size = 1

-- Display: Price Validity Check Type
eurex_derivatives_eti_t7_v13_0.price_validity_check_type.display = function(value)
  if value == 0 then
    return "Price Validity Check Type: None (0)"
  end
  if value == 1 then
    return "Price Validity Check Type: Optional (1)"
  end
  if value == 2 then
    return "Price Validity Check Type: Mandatory (2)"
  end
  if value == 0xFF then
    return "Price Validity Check Type: No Value"
  end

  return "Price Validity Check Type: Unknown("..value..")"
end

-- Dissect: Price Validity Check Type
eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.price_validity_check_type, range, value, display)

  return offset + length, value
end

-- Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.enrichment_rule_id = {}

-- Size: Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.size = 2

-- Display: Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Enrichment Rule Id: No Value"
  end

  return "Enrichment Rule Id: "..value
end

-- Dissect: Enrichment Rule Id
eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enrichment_rule_id, range, value, display)

  return offset + length, value
end

-- Simple Security Id
eurex_derivatives_eti_t7_v13_0.simple_security_id = {}

-- Size: Simple Security Id
eurex_derivatives_eti_t7_v13_0.simple_security_id.size = 4

-- Display: Simple Security Id
eurex_derivatives_eti_t7_v13_0.simple_security_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Simple Security Id: No Value"
  end

  return "Simple Security Id: "..value
end

-- Dissect: Simple Security Id
eurex_derivatives_eti_t7_v13_0.simple_security_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.simple_security_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.simple_security_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.simple_security_id, range, value, display)

  return offset + length, value
end

-- New Order Single Short Request
eurex_derivatives_eti_t7_v13_0.new_order_single_short_request = {}

-- Read runtime size of: New Order Single Short Request
eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Single Short Request
eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Single Short Request
eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.fields = function(buffer, offset, packet, parent, size_of_new_order_single_short_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Simple Security Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, simple_security_id = eurex_derivatives_eti_t7_v13_0.simple_security_id.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Order Single Short Request
eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_single_short_request = eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_single_short_request then
    local range = buffer(offset, size_of_new_order_single_short_request)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_single_short_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.fields(buffer, offset, packet, parent, size_of_new_order_single_short_request)

  return offset + size_of_new_order_single_short_request
end

-- New Order Single Request
eurex_derivatives_eti_t7_v13_0.new_order_single_request = {}

-- Read runtime size of: New Order Single Request
eurex_derivatives_eti_t7_v13_0.new_order_single_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Single Request
eurex_derivatives_eti_t7_v13_0.new_order_single_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Single Request
eurex_derivatives_eti_t7_v13_0.new_order_single_request.fields = function(buffer, offset, packet, parent, size_of_new_order_single_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Stop Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, stop_px = eurex_derivatives_eti_t7_v13_0.stop_px.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Expire Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, expire_date = eurex_derivatives_eti_t7_v13_0.expire_date.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Trading Session Sub Id: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_session_sub_id = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Order Single Request
eurex_derivatives_eti_t7_v13_0.new_order_single_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_single_request = eurex_derivatives_eti_t7_v13_0.new_order_single_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_single_request then
    local range = buffer(offset, size_of_new_order_single_request)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_single_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_single_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_single_request.fields(buffer, offset, packet, parent, size_of_new_order_single_request)

  return offset + size_of_new_order_single_request
end

-- Check Sum Correction
eurex_derivatives_eti_t7_v13_0.check_sum_correction = {}

-- Size: Check Sum Correction
eurex_derivatives_eti_t7_v13_0.check_sum_correction.size = 2

-- Display: Check Sum Correction
eurex_derivatives_eti_t7_v13_0.check_sum_correction.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Check Sum Correction: No Value"
  end

  return "Check Sum Correction: "..value
end

-- Dissect: Check Sum Correction
eurex_derivatives_eti_t7_v13_0.check_sum_correction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.check_sum_correction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.check_sum_correction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.check_sum_correction, range, value, display)

  return offset + length, value
end

-- Pad 11
eurex_derivatives_eti_t7_v13_0.pad_11 = {}

-- Size: Pad 11
eurex_derivatives_eti_t7_v13_0.pad_11.size = 1

-- Display: Pad 11
eurex_derivatives_eti_t7_v13_0.pad_11.display = function(value)
  return "Pad 11: "..value
end

-- Dissect: Pad 11
eurex_derivatives_eti_t7_v13_0.pad_11.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_11.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_11.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_11, range, value, display)

  return offset + length, value
end

-- Pad 41
eurex_derivatives_eti_t7_v13_0.pad_41 = {}

-- Size: Pad 41
eurex_derivatives_eti_t7_v13_0.pad_41.size = 4

-- Display: Pad 41
eurex_derivatives_eti_t7_v13_0.pad_41.display = function(value)
  return "Pad 41: "..value
end

-- Dissect: Pad 41
eurex_derivatives_eti_t7_v13_0.pad_41.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_41.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_41.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_41, range, value, display)

  return offset + length, value
end

-- New Order Short Request
eurex_derivatives_eti_t7_v13_0.new_order_short_request = {}

-- Read runtime size of: New Order Short Request
eurex_derivatives_eti_t7_v13_0.new_order_short_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Short Request
eurex_derivatives_eti_t7_v13_0.new_order_short_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Short Request
eurex_derivatives_eti_t7_v13_0.new_order_short_request.fields = function(buffer, offset, packet, parent, size_of_new_order_short_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Pad 41: 4 Byte
  index, pad_41 = eurex_derivatives_eti_t7_v13_0.pad_41.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Pad 11: 1 Byte
  index, pad_11 = eurex_derivatives_eti_t7_v13_0.pad_11.dissect(buffer, index, packet, parent)

  -- Check Sum Correction: 2 Byte Unsigned Fixed Width Integer Nullable
  index, check_sum_correction = eurex_derivatives_eti_t7_v13_0.check_sum_correction.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Order Short Request
eurex_derivatives_eti_t7_v13_0.new_order_short_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_short_request = eurex_derivatives_eti_t7_v13_0.new_order_short_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_short_request then
    local range = buffer(offset, size_of_new_order_short_request)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_short_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_short_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_short_request.fields(buffer, offset, packet, parent, size_of_new_order_short_request)

  return offset + size_of_new_order_short_request
end

-- New Order Response
eurex_derivatives_eti_t7_v13_0.new_order_response = {}

-- Read runtime size of: New Order Response
eurex_derivatives_eti_t7_v13_0.new_order_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Response
eurex_derivatives_eti_t7_v13_0.new_order_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Response
eurex_derivatives_eti_t7_v13_0.new_order_response.fields = function(buffer, offset, packet, parent, size_of_new_order_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Me Comp: Struct of 10 fields
  index, response_header_me_comp = eurex_derivatives_eti_t7_v13_0.response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Entry Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_entry_time = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_entry_time.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time Priority: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_priority = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Crossed Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, crossed_indicator = eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Triggered: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, triggered = eurex_derivatives_eti_t7_v13_0.triggered.dissect(buffer, index, packet, parent)

  -- Transaction Delay Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transaction_delay_indicator = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect(buffer, index, packet, parent)

  -- No Order Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_events = eurex_derivatives_eti_t7_v13_0.no_order_events.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Order Event Grp Comp
  for order_event_grp_comp_index = 1, no_order_events do
    index, order_event_grp_comp = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect(buffer, index, packet, parent, order_event_grp_comp_index)
  end

  return index
end

-- Dissect: New Order Response
eurex_derivatives_eti_t7_v13_0.new_order_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_response = eurex_derivatives_eti_t7_v13_0.new_order_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_response then
    local range = buffer(offset, size_of_new_order_response)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_response.fields(buffer, offset, packet, parent, size_of_new_order_response)

  return offset + size_of_new_order_response
end

-- Pad 22
eurex_derivatives_eti_t7_v13_0.pad_22 = {}

-- Size: Pad 22
eurex_derivatives_eti_t7_v13_0.pad_22.size = 2

-- Display: Pad 22
eurex_derivatives_eti_t7_v13_0.pad_22.display = function(value)
  return "Pad 22: "..value
end

-- Dissect: Pad 22
eurex_derivatives_eti_t7_v13_0.pad_22.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_22.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_22.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_22, range, value, display)

  return offset + length, value
end

-- New Order Request
eurex_derivatives_eti_t7_v13_0.new_order_request = {}

-- Read runtime size of: New Order Request
eurex_derivatives_eti_t7_v13_0.new_order_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Request
eurex_derivatives_eti_t7_v13_0.new_order_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Request
eurex_derivatives_eti_t7_v13_0.new_order_request.fields = function(buffer, offset, packet, parent, size_of_new_order_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Stop Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, stop_px = eurex_derivatives_eti_t7_v13_0.stop_px.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Expire Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, expire_date = eurex_derivatives_eti_t7_v13_0.expire_date.dissect(buffer, index, packet, parent)

  -- Trading Session Sub Id: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_session_sub_id = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- No Leg Onbooks: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_onbooks = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Check Sum Correction: 2 Byte Unsigned Fixed Width Integer Nullable
  index, check_sum_correction = eurex_derivatives_eti_t7_v13_0.check_sum_correction.dissect(buffer, index, packet, parent)

  -- Pad 22: 2 Byte
  index, pad_22 = eurex_derivatives_eti_t7_v13_0.pad_22.dissect(buffer, index, packet, parent)

  -- Repeating: Leg Ord Grp Comp
  for leg_ord_grp_comp_index = 1, no_leg_onbooks do
    index, leg_ord_grp_comp = eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.dissect(buffer, index, packet, parent, leg_ord_grp_comp_index)
  end

  return index
end

-- Dissect: New Order Request
eurex_derivatives_eti_t7_v13_0.new_order_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_request = eurex_derivatives_eti_t7_v13_0.new_order_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_request then
    local range = buffer(offset, size_of_new_order_request)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_request.fields(buffer, offset, packet, parent, size_of_new_order_request)

  return offset + size_of_new_order_request
end

-- New Order Nr Response
eurex_derivatives_eti_t7_v13_0.new_order_nr_response = {}

-- Read runtime size of: New Order Nr Response
eurex_derivatives_eti_t7_v13_0.new_order_nr_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Nr Response
eurex_derivatives_eti_t7_v13_0.new_order_nr_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Nr Response
eurex_derivatives_eti_t7_v13_0.new_order_nr_response.fields = function(buffer, offset, packet, parent, size_of_new_order_nr_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Crossed Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, crossed_indicator = eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Triggered: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, triggered = eurex_derivatives_eti_t7_v13_0.triggered.dissect(buffer, index, packet, parent)

  -- Transaction Delay Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transaction_delay_indicator = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect(buffer, index, packet, parent)

  -- No Order Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_events = eurex_derivatives_eti_t7_v13_0.no_order_events.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Order Event Grp Comp
  for order_event_grp_comp_index = 1, no_order_events do
    index, order_event_grp_comp = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect(buffer, index, packet, parent, order_event_grp_comp_index)
  end

  return index
end

-- Dissect: New Order Nr Response
eurex_derivatives_eti_t7_v13_0.new_order_nr_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_nr_response = eurex_derivatives_eti_t7_v13_0.new_order_nr_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_nr_response then
    local range = buffer(offset, size_of_new_order_nr_response)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_nr_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_nr_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_nr_response.fields(buffer, offset, packet, parent, size_of_new_order_nr_response)

  return offset + size_of_new_order_nr_response
end

-- New Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request = {}

-- Read runtime size of: New Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.fields = function(buffer, offset, packet, parent, size_of_new_order_complex_short_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_complex_short_request = eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_complex_short_request then
    local range = buffer(offset, size_of_new_order_complex_short_request)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_complex_short_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.fields(buffer, offset, packet, parent, size_of_new_order_complex_short_request)

  return offset + size_of_new_order_complex_short_request
end

-- New Order Complex Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_request = {}

-- Read runtime size of: New Order Complex Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: New Order Complex Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Order Complex Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_request.fields = function(buffer, offset, packet, parent, size_of_new_order_complex_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Expire Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, expire_date = eurex_derivatives_eti_t7_v13_0.expire_date.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- No Leg Onbooks: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_onbooks = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Repeating: Leg Ord Grp Comp
  for leg_ord_grp_comp_index = 1, no_leg_onbooks do
    index, leg_ord_grp_comp = eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.dissect(buffer, index, packet, parent, leg_ord_grp_comp_index)
  end

  return index
end

-- Dissect: New Order Complex Request
eurex_derivatives_eti_t7_v13_0.new_order_complex_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_new_order_complex_request = eurex_derivatives_eti_t7_v13_0.new_order_complex_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.new_order_complex_request then
    local range = buffer(offset, size_of_new_order_complex_request)
    local display = eurex_derivatives_eti_t7_v13_0.new_order_complex_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_order_complex_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.new_order_complex_request.fields(buffer, offset, packet, parent, size_of_new_order_complex_request)

  return offset + size_of_new_order_complex_request
end

-- Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp = {}

-- Size: Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.fields = function(buffer, offset, packet, parent, side_alloc_grp_comp_index)
  local index = offset

  -- Implicit Side Alloc Grp Comp Index
  if side_alloc_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_comp_index, side_alloc_grp_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Individual Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, individual_alloc_id = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.dissect(buffer, index, packet, parent)

  -- Tes Enrichment Rule Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.tes_enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.dissect = function(buffer, offset, packet, parent, side_alloc_grp_comp_index)
  if show.side_alloc_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_alloc_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.fields(buffer, offset, packet, parent, side_alloc_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.fields(buffer, offset, packet, parent, side_alloc_grp_comp_index)
  end
end

-- Modify Tes Trade Request
eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request = {}

-- Read runtime size of: Modify Tes Trade Request
eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Tes Trade Request
eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Tes Trade Request
eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.fields = function(buffer, offset, packet, parent, size_of_modify_tes_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Related Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_px = eurex_derivatives_eti_t7_v13_0.related_px.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- No Side Allocs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_side_allocs = eurex_derivatives_eti_t7_v13_0.no_side_allocs.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- Swap Clearer: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, swap_clearer = eurex_derivatives_eti_t7_v13_0.swap_clearer.dissect(buffer, index, packet, parent)

  -- Trade Report Text: 20 Byte Ascii String Nullable
  index, trade_report_text = eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Repeating: Side Alloc Grp Comp
  for side_alloc_grp_comp_index = 1, no_side_allocs do
    index, side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.dissect(buffer, index, packet, parent, side_alloc_grp_comp_index)
  end

  -- Repeating: Trd Instrmnt Leg Grp Comp
  for trd_instrmnt_leg_grp_comp_index = 1, no_legs do
    index, trd_instrmnt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.dissect(buffer, index, packet, parent, trd_instrmnt_leg_grp_comp_index)
  end

  return index
end

-- Dissect: Modify Tes Trade Request
eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_tes_trade_request = eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_tes_trade_request then
    local range = buffer(offset, size_of_modify_tes_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_tes_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.fields(buffer, offset, packet, parent, size_of_modify_tes_trade_request)

  return offset + size_of_modify_tes_trade_request
end

-- Modify Order Single Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request = {}

-- Read runtime size of: Modify Order Single Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Single Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Single Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.fields = function(buffer, offset, packet, parent, size_of_modify_order_single_short_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Simple Security Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, simple_security_id = eurex_derivatives_eti_t7_v13_0.simple_security_id.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Modify Order Single Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_single_short_request = eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_single_short_request then
    local range = buffer(offset, size_of_modify_order_single_short_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_single_short_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.fields(buffer, offset, packet, parent, size_of_modify_order_single_short_request)

  return offset + size_of_modify_order_single_short_request
end

-- Ownership Indicator
eurex_derivatives_eti_t7_v13_0.ownership_indicator = {}

-- Size: Ownership Indicator
eurex_derivatives_eti_t7_v13_0.ownership_indicator.size = 1

-- Display: Ownership Indicator
eurex_derivatives_eti_t7_v13_0.ownership_indicator.display = function(value)
  if value == 0 then
    return "Ownership Indicator: No Changeof Ownership (0)"
  end
  if value == 1 then
    return "Ownership Indicator: Changeto Executing Trader (1)"
  end
  if value == 0xFF then
    return "Ownership Indicator: No Value"
  end

  return "Ownership Indicator: Unknown("..value..")"
end

-- Dissect: Ownership Indicator
eurex_derivatives_eti_t7_v13_0.ownership_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.ownership_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.ownership_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.ownership_indicator, range, value, display)

  return offset + length, value
end

-- Modify Order Single Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_request = {}

-- Read runtime size of: Modify Order Single Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Single Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Single Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_request.fields = function(buffer, offset, packet, parent, size_of_modify_order_single_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Stop Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, stop_px = eurex_derivatives_eti_t7_v13_0.stop_px.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Expire Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, expire_date = eurex_derivatives_eti_t7_v13_0.expire_date.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Trading Session Sub Id: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_session_sub_id = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Ownership Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, ownership_indicator = eurex_derivatives_eti_t7_v13_0.ownership_indicator.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Modify Order Single Request
eurex_derivatives_eti_t7_v13_0.modify_order_single_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_single_request = eurex_derivatives_eti_t7_v13_0.modify_order_single_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_single_request then
    local range = buffer(offset, size_of_modify_order_single_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_single_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_single_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_single_request.fields(buffer, offset, packet, parent, size_of_modify_order_single_request)

  return offset + size_of_modify_order_single_request
end

-- Modify Order Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_short_request = {}

-- Read runtime size of: Modify Order Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_short_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_short_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_short_request.fields = function(buffer, offset, packet, parent, size_of_modify_order_short_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Pad 41: 4 Byte
  index, pad_41 = eurex_derivatives_eti_t7_v13_0.pad_41.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Pad 11: 1 Byte
  index, pad_11 = eurex_derivatives_eti_t7_v13_0.pad_11.dissect(buffer, index, packet, parent)

  -- Check Sum Correction: 2 Byte Unsigned Fixed Width Integer Nullable
  index, check_sum_correction = eurex_derivatives_eti_t7_v13_0.check_sum_correction.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Modify Order Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_short_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_short_request = eurex_derivatives_eti_t7_v13_0.modify_order_short_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_short_request then
    local range = buffer(offset, size_of_modify_order_short_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_short_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_short_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_short_request.fields(buffer, offset, packet, parent, size_of_modify_order_short_request)

  return offset + size_of_modify_order_short_request
end

-- Modify Order Response
eurex_derivatives_eti_t7_v13_0.modify_order_response = {}

-- Read runtime size of: Modify Order Response
eurex_derivatives_eti_t7_v13_0.modify_order_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Response
eurex_derivatives_eti_t7_v13_0.modify_order_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Response
eurex_derivatives_eti_t7_v13_0.modify_order_response.fields = function(buffer, offset, packet, parent, size_of_modify_order_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Me Comp: Struct of 10 fields
  index, response_header_me_comp = eurex_derivatives_eti_t7_v13_0.response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Trd Reg Ts Time Priority: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trd_reg_ts_time_priority = eurex_derivatives_eti_t7_v13_0.trd_reg_ts_time_priority.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Crossed Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, crossed_indicator = eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Triggered: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, triggered = eurex_derivatives_eti_t7_v13_0.triggered.dissect(buffer, index, packet, parent)

  -- Transaction Delay Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transaction_delay_indicator = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect(buffer, index, packet, parent)

  -- No Order Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_events = eurex_derivatives_eti_t7_v13_0.no_order_events.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Order Event Grp Comp
  for order_event_grp_comp_index = 1, no_order_events do
    index, order_event_grp_comp = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect(buffer, index, packet, parent, order_event_grp_comp_index)
  end

  return index
end

-- Dissect: Modify Order Response
eurex_derivatives_eti_t7_v13_0.modify_order_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_response = eurex_derivatives_eti_t7_v13_0.modify_order_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_response then
    local range = buffer(offset, size_of_modify_order_response)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_response.fields(buffer, offset, packet, parent, size_of_modify_order_response)

  return offset + size_of_modify_order_response
end

-- Pad 23
eurex_derivatives_eti_t7_v13_0.pad_23 = {}

-- Size: Pad 23
eurex_derivatives_eti_t7_v13_0.pad_23.size = 2

-- Display: Pad 23
eurex_derivatives_eti_t7_v13_0.pad_23.display = function(value)
  return "Pad 23: "..value
end

-- Dissect: Pad 23
eurex_derivatives_eti_t7_v13_0.pad_23.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pad_23.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.pad_23.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pad_23, range, value, display)

  return offset + length, value
end

-- Modify Order Request
eurex_derivatives_eti_t7_v13_0.modify_order_request = {}

-- Read runtime size of: Modify Order Request
eurex_derivatives_eti_t7_v13_0.modify_order_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Request
eurex_derivatives_eti_t7_v13_0.modify_order_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Request
eurex_derivatives_eti_t7_v13_0.modify_order_request.fields = function(buffer, offset, packet, parent, size_of_modify_order_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Stop Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, stop_px = eurex_derivatives_eti_t7_v13_0.stop_px.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Expire Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, expire_date = eurex_derivatives_eti_t7_v13_0.expire_date.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Trading Session Sub Id: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_session_sub_id = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.dissect(buffer, index, packet, parent)

  -- Ownership Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, ownership_indicator = eurex_derivatives_eti_t7_v13_0.ownership_indicator.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- No Leg Onbooks: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_onbooks = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Check Sum Correction: 2 Byte Unsigned Fixed Width Integer Nullable
  index, check_sum_correction = eurex_derivatives_eti_t7_v13_0.check_sum_correction.dissect(buffer, index, packet, parent)

  -- Pad 23: 2 Byte
  index, pad_23 = eurex_derivatives_eti_t7_v13_0.pad_23.dissect(buffer, index, packet, parent)

  -- Repeating: Leg Ord Grp Comp
  for leg_ord_grp_comp_index = 1, no_leg_onbooks do
    index, leg_ord_grp_comp = eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.dissect(buffer, index, packet, parent, leg_ord_grp_comp_index)
  end

  return index
end

-- Dissect: Modify Order Request
eurex_derivatives_eti_t7_v13_0.modify_order_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_request = eurex_derivatives_eti_t7_v13_0.modify_order_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_request then
    local range = buffer(offset, size_of_modify_order_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_request.fields(buffer, offset, packet, parent, size_of_modify_order_request)

  return offset + size_of_modify_order_request
end

-- Modify Order Nr Response
eurex_derivatives_eti_t7_v13_0.modify_order_nr_response = {}

-- Read runtime size of: Modify Order Nr Response
eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Nr Response
eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Nr Response
eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.fields = function(buffer, offset, packet, parent, size_of_modify_order_nr_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Crossed Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, crossed_indicator = eurex_derivatives_eti_t7_v13_0.crossed_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Triggered: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, triggered = eurex_derivatives_eti_t7_v13_0.triggered.dissect(buffer, index, packet, parent)

  -- Transaction Delay Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transaction_delay_indicator = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect(buffer, index, packet, parent)

  -- No Order Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_events = eurex_derivatives_eti_t7_v13_0.no_order_events.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Order Event Grp Comp
  for order_event_grp_comp_index = 1, no_order_events do
    index, order_event_grp_comp = eurex_derivatives_eti_t7_v13_0.order_event_grp_comp.dissect(buffer, index, packet, parent, order_event_grp_comp_index)
  end

  return index
end

-- Dissect: Modify Order Nr Response
eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_nr_response = eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_nr_response then
    local range = buffer(offset, size_of_modify_order_nr_response)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_nr_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.fields(buffer, offset, packet, parent, size_of_modify_order_nr_response)

  return offset + size_of_modify_order_nr_response
end

-- Modify Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request = {}

-- Read runtime size of: Modify Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.fields = function(buffer, offset, packet, parent, size_of_modify_order_complex_short_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Modify Order Complex Short Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_complex_short_request = eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_complex_short_request then
    local range = buffer(offset, size_of_modify_order_complex_short_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_complex_short_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.fields(buffer, offset, packet, parent, size_of_modify_order_complex_short_request)

  return offset + size_of_modify_order_complex_short_request
end

-- Modify Order Complex Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_request = {}

-- Read runtime size of: Modify Order Complex Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Order Complex Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Order Complex Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.fields = function(buffer, offset, packet, parent, size_of_modify_order_complex_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Expire Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, expire_date = eurex_derivatives_eti_t7_v13_0.expire_date.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Appl Seq Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, appl_seq_indicator = eurex_derivatives_eti_t7_v13_0.appl_seq_indicator.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Ord Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, ord_type = eurex_derivatives_eti_t7_v13_0.ord_type.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Time In Force: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, time_in_force = eurex_derivatives_eti_t7_v13_0.time_in_force.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Ownership Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, ownership_indicator = eurex_derivatives_eti_t7_v13_0.ownership_indicator.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- No Leg Onbooks: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_onbooks = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect(buffer, index, packet, parent)

  -- Repeating: Leg Ord Grp Comp
  for leg_ord_grp_comp_index = 1, no_leg_onbooks do
    index, leg_ord_grp_comp = eurex_derivatives_eti_t7_v13_0.leg_ord_grp_comp.dissect(buffer, index, packet, parent, leg_ord_grp_comp_index)
  end

  return index
end

-- Dissect: Modify Order Complex Request
eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_order_complex_request = eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_order_complex_request then
    local range = buffer(offset, size_of_modify_order_complex_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_order_complex_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.fields(buffer, offset, packet, parent, size_of_modify_order_complex_request)

  return offset + size_of_modify_order_complex_request
end

-- Instrmt Match Side Id
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id = {}

-- Size: Instrmt Match Side Id
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size = 1

-- Display: Instrmt Match Side Id
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "Instrmt Match Side Id: No Value"
  end

  return "Instrmt Match Side Id: "..value
end

-- Dissect: Instrmt Match Side Id
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_match_side_id, range, value, display)

  return offset + length, value
end

-- Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.party_sub_id_type = {}

-- Size: Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.party_sub_id_type.size = 2

-- Display: Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.party_sub_id_type.display = function(value)
  if value == 14001 then
    return "Party Sub Id Type: Buyer (14001)"
  end
  if value == 14002 then
    return "Party Sub Id Type: Seller (14002)"
  end
  if value == 0xFFFF then
    return "Party Sub Id Type: No Value"
  end

  return "Party Sub Id Type: Unknown("..value..")"
end

-- Dissect: Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.party_sub_id_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_sub_id_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_sub_id_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_sub_id_type, range, value, display)

  return offset + length, value
end

-- Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp = {}

-- Size: Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_sub_id_type.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size + 
  eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.fields = function(buffer, offset, packet, parent, basket_side_alloc_grp_comp_index)
  local index = offset

  -- Implicit Basket Side Alloc Grp Comp Index
  if basket_side_alloc_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_grp_comp_index, basket_side_alloc_grp_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Individual Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, individual_alloc_id = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.dissect(buffer, index, packet, parent)

  -- Party Sub Id Type: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_sub_id_type = eurex_derivatives_eti_t7_v13_0.party_sub_id_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Instrmt Match Side Id: 1 Byte Unsigned Fixed Width Integer Nullable
  index, instrmt_match_side_id = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.dissect(buffer, index, packet, parent)

  -- Trade Alloc Status: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_alloc_status = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.dissect = function(buffer, offset, packet, parent, basket_side_alloc_grp_comp_index)
  if show.basket_side_alloc_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.fields(buffer, offset, packet, parent, basket_side_alloc_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.fields(buffer, offset, packet, parent, basket_side_alloc_grp_comp_index)
  end
end

-- Effect On Basket
eurex_derivatives_eti_t7_v13_0.effect_on_basket = {}

-- Size: Effect On Basket
eurex_derivatives_eti_t7_v13_0.effect_on_basket.size = 1

-- Display: Effect On Basket
eurex_derivatives_eti_t7_v13_0.effect_on_basket.display = function(value)
  if value == 1 then
    return "Effect On Basket: Add Volume (1)"
  end
  if value == 2 then
    return "Effect On Basket: Remove Volume (2)"
  end
  if value == 0xFF then
    return "Effect On Basket: No Value"
  end

  return "Effect On Basket: Unknown("..value..")"
end

-- Dissect: Effect On Basket
eurex_derivatives_eti_t7_v13_0.effect_on_basket.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.effect_on_basket.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.effect_on_basket.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.effect_on_basket, range, value, display)

  return offset + length, value
end

-- Side Trd Sub Typ
eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ = {}

-- Size: Side Trd Sub Typ
eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.size = 2

-- Display: Side Trd Sub Typ
eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.display = function(value)
  if value == 2001 then
    return "Side Trd Sub Typ: Block Trade (2001)"
  end
  if value == 2004 then
    return "Side Trd Sub Typ: Tradeat Market (2004)"
  end
  if value == 0xFFFF then
    return "Side Trd Sub Typ: No Value"
  end

  return "Side Trd Sub Typ: Unknown("..value..")"
end

-- Dissect: Side Trd Sub Typ
eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_trd_sub_typ, range, value, display)

  return offset + length, value
end

-- Side Market Segment Id
eurex_derivatives_eti_t7_v13_0.side_market_segment_id = {}

-- Size: Side Market Segment Id
eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size = 4

-- Display: Side Market Segment Id
eurex_derivatives_eti_t7_v13_0.side_market_segment_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Side Market Segment Id: No Value"
  end

  return "Side Market Segment Id: "..value
end

-- Dissect: Side Market Segment Id
eurex_derivatives_eti_t7_v13_0.side_market_segment_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_market_segment_id, range, value, display)

  return offset + length, value
end

-- Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp = {}

-- Size: Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.last_px.size + 
  eurex_derivatives_eti_t7_v13_0.trans_bkd_time.size + 
  eurex_derivatives_eti_t7_v13_0.related_close_price.size + 
  eurex_derivatives_eti_t7_v13_0.clearing_trade_price.size + 
  eurex_derivatives_eti_t7_v13_0.package_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.size + 
  eurex_derivatives_eti_t7_v13_0.product_complex.size + 
  eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.size + 
  eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size + 
  eurex_derivatives_eti_t7_v13_0.effect_on_basket.size + 
  eurex_derivatives_eti_t7_v13_0.trade_report_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.fields = function(buffer, offset, packet, parent, instrmt_match_side_grp_comp_index)
  local index = offset

  -- Implicit Instrmt Match Side Grp Comp Index
  if instrmt_match_side_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_match_side_grp_comp_index, instrmt_match_side_grp_comp_index)
    iteration:set_generated()
  end

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Clearing Trade Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, clearing_trade_price = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Side Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, side_market_segment_id = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.dissect(buffer, index, packet, parent)

  -- Side Trd Sub Typ: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_trd_sub_typ = eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Instrmt Match Side Id: 1 Byte Unsigned Fixed Width Integer Nullable
  index, instrmt_match_side_id = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.dissect(buffer, index, packet, parent)

  -- Effect On Basket: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, effect_on_basket = eurex_derivatives_eti_t7_v13_0.effect_on_basket.dissect(buffer, index, packet, parent)

  -- Trade Report Text: 20 Byte Ascii String Nullable
  index, trade_report_text = eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.dissect = function(buffer, offset, packet, parent, instrmt_match_side_grp_comp_index)
  if show.instrmt_match_side_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_match_side_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.fields(buffer, offset, packet, parent, instrmt_match_side_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.fields(buffer, offset, packet, parent, instrmt_match_side_grp_comp_index)
  end
end

-- Root Party Contra Trader
eurex_derivatives_eti_t7_v13_0.root_party_contra_trader = {}

-- Size: Root Party Contra Trader
eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.size = 6

-- Display: Root Party Contra Trader
eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Contra Trader: No Value"
  end

  return "Root Party Contra Trader: "..value
end

-- Dissect: Root Party Contra Trader
eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_contra_trader, range, value, display)

  return offset + length, value
end

-- Root Party Contra Firm
eurex_derivatives_eti_t7_v13_0.root_party_contra_firm = {}

-- Size: Root Party Contra Firm
eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.size = 5

-- Display: Root Party Contra Firm
eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Root Party Contra Firm: No Value"
  end

  return "Root Party Contra Firm: "..value
end

-- Dissect: Root Party Contra Firm
eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_contra_firm, range, value, display)

  return offset + length, value
end

-- Root Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type = {}

-- Size: Root Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.size = 2

-- Display: Root Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.display = function(value)
  if value == 4001 then
    return "Root Party Sub Id Type: Buyer (4001)"
  end
  if value == 4002 then
    return "Root Party Sub Id Type: Seller (4002)"
  end
  if value == 4003 then
    return "Root Party Sub Id Type: Broker (4003)"
  end
  if value == 0xFFFF then
    return "Root Party Sub Id Type: No Value"
  end

  return "Root Party Sub Id Type: Unknown("..value..")"
end

-- Dissect: Root Party Sub Id Type
eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.root_party_sub_id_type, range, value, display)

  return offset + length, value
end

-- Basket Root Party Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp = {}

-- Size: Basket Root Party Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.size + 
  eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.size + 
  eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.size + 
  eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Basket Root Party Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Root Party Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.fields = function(buffer, offset, packet, parent, basket_root_party_grp_comp_index)
  local index = offset

  -- Implicit Basket Root Party Grp Comp Index
  if basket_root_party_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_root_party_grp_comp_index, basket_root_party_grp_comp_index)
    iteration:set_generated()
  end

  -- Root Party Sub Id Type: 2 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, root_party_sub_id_type = eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.dissect(buffer, index, packet, parent)

  -- Root Party Contra Firm: 5 Byte Ascii String Nullable
  index, root_party_contra_firm = eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.dissect(buffer, index, packet, parent)

  -- Root Party Contra Trader: 6 Byte Ascii String Nullable
  index, root_party_contra_trader = eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.dissect(buffer, index, packet, parent)

  -- Basket Side Trade Report Id: 20 Byte Ascii String Nullable
  index, basket_side_trade_report_id = eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Basket Root Party Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect = function(buffer, offset, packet, parent, basket_root_party_grp_comp_index)
  if show.basket_root_party_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_root_party_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.fields(buffer, offset, packet, parent, basket_root_party_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.fields(buffer, offset, packet, parent, basket_root_party_grp_comp_index)
  end
end

-- Basket Trade Report Text
eurex_derivatives_eti_t7_v13_0.basket_trade_report_text = {}

-- Size: Basket Trade Report Text
eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.size = 20

-- Display: Basket Trade Report Text
eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Basket Trade Report Text: No Value"
  end

  return "Basket Trade Report Text: "..value
end

-- Dissect: Basket Trade Report Text
eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_trade_report_text, range, value, display)

  return offset + length, value
end

-- No Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides = {}

-- Size: No Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.size = 1

-- Display: No Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Instrmt Match Sides: No Value"
  end

  return "No Instrmt Match Sides: "..value
end

-- Dissect: No Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_instrmt_match_sides, range, value, display)

  return offset + length, value
end

-- No Basket Root Party Grps
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps = {}

-- Size: No Basket Root Party Grps
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.size = 1

-- Display: No Basket Root Party Grps
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Basket Root Party Grps: No Value"
  end

  return "No Basket Root Party Grps: "..value
end

-- Dissect: No Basket Root Party Grps
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_basket_root_party_grps, range, value, display)

  return offset + length, value
end

-- No Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc = {}

-- Size: No Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.size = 2

-- Display: No Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Basket Side Alloc: No Value"
  end

  return "No Basket Side Alloc: "..value
end

-- Dissect: No Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_basket_side_alloc, range, value, display)

  return offset + length, value
end

-- Maturity Month Year
eurex_derivatives_eti_t7_v13_0.maturity_month_year = {}

-- Size: Maturity Month Year
eurex_derivatives_eti_t7_v13_0.maturity_month_year.size = 4

-- Display: Maturity Month Year
eurex_derivatives_eti_t7_v13_0.maturity_month_year.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Maturity Month Year: No Value"
  end

  return "Maturity Month Year: "..value
end

-- Dissect: Maturity Month Year
eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.maturity_month_year.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.maturity_month_year.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.maturity_month_year, range, value, display)

  return offset + length, value
end

-- Basket Exec Id
eurex_derivatives_eti_t7_v13_0.basket_exec_id = {}

-- Size: Basket Exec Id
eurex_derivatives_eti_t7_v13_0.basket_exec_id.size = 4

-- Display: Basket Exec Id
eurex_derivatives_eti_t7_v13_0.basket_exec_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Basket Exec Id: No Value"
  end

  return "Basket Exec Id: "..value
end

-- Dissect: Basket Exec Id
eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_exec_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.basket_exec_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_exec_id, range, value, display)

  return offset + length, value
end

-- Modify Basket Trade Request
eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request = {}

-- Read runtime size of: Modify Basket Trade Request
eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Modify Basket Trade Request
eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Modify Basket Trade Request
eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.fields = function(buffer, offset, packet, parent, size_of_modify_basket_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- No Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- No Basket Root Party Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_root_party_grps = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.dissect(buffer, index, packet, parent)

  -- No Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Root Party Grp Comp
  for basket_root_party_grp_comp_index = 1, no_basket_root_party_grps do
    index, basket_root_party_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect(buffer, index, packet, parent, basket_root_party_grp_comp_index)
  end

  -- Repeating: Instrmt Match Side Grp Comp
  for instrmt_match_side_grp_comp_index = 1, no_instrmt_match_sides do
    index, instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, instrmt_match_side_grp_comp_index)
  end

  -- Repeating: Basket Side Alloc Grp Comp
  for basket_side_alloc_grp_comp_index = 1, no_basket_side_alloc do
    index, basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, basket_side_alloc_grp_comp_index)
  end

  return index
end

-- Dissect: Modify Basket Trade Request
eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_modify_basket_trade_request = eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.modify_basket_trade_request then
    local range = buffer(offset, size_of_modify_basket_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.modify_basket_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.fields(buffer, offset, packet, parent, size_of_modify_basket_trade_request)

  return offset + size_of_modify_basket_trade_request
end

-- Quote Entry Status
eurex_derivatives_eti_t7_v13_0.quote_entry_status = {}

-- Size: Quote Entry Status
eurex_derivatives_eti_t7_v13_0.quote_entry_status.size = 1

-- Display: Quote Entry Status
eurex_derivatives_eti_t7_v13_0.quote_entry_status.display = function(value)
  if value == 0 then
    return "Quote Entry Status: Accepted (0)"
  end
  if value == 5 then
    return "Quote Entry Status: Rejected (5)"
  end
  if value == 6 then
    return "Quote Entry Status: Removedand Rejected (6)"
  end
  if value == 10 then
    return "Quote Entry Status: Pending (10)"
  end
  if value == 0xFF then
    return "Quote Entry Status: No Value"
  end

  return "Quote Entry Status: Unknown("..value..")"
end

-- Dissect: Quote Entry Status
eurex_derivatives_eti_t7_v13_0.quote_entry_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_entry_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_entry_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_status, range, value, display)

  return offset + length, value
end

-- Quote Entry Reject Reason
eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason = {}

-- Size: Quote Entry Reject Reason
eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason.size = 4

-- Display: Quote Entry Reject Reason
eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason.display = function(value)
  if value == 1 then
    return "Quote Entry Reject Reason: Unknown Security (1)"
  end
  if value == 6 then
    return "Quote Entry Reject Reason: Duplicate Quote (6)"
  end
  if value == 8 then
    return "Quote Entry Reject Reason: Invalid Price (8)"
  end
  if value == 16 then
    return "Quote Entry Reject Reason: No Reference Price Available (16)"
  end
  if value == 100 then
    return "Quote Entry Reject Reason: No Single Sided Quotes (100)"
  end
  if value == 103 then
    return "Quote Entry Reject Reason: Invalid Quoting Model (103)"
  end
  if value == 106 then
    return "Quote Entry Reject Reason: Invalid Size (106)"
  end
  if value == 107 then
    return "Quote Entry Reject Reason: Invalid Underlying Price (107)"
  end
  if value == 108 then
    return "Quote Entry Reject Reason: Bid Price Not Reasonable (108)"
  end
  if value == 109 then
    return "Quote Entry Reject Reason: Ask Price Not Reasonable (109)"
  end
  if value == 110 then
    return "Quote Entry Reject Reason: Bid Price Exceeds Range (110)"
  end
  if value == 111 then
    return "Quote Entry Reject Reason: Ask Price Exceeds Range (111)"
  end
  if value == 115 then
    return "Quote Entry Reject Reason: Instrument State Freeze (115)"
  end
  if value == 116 then
    return "Quote Entry Reject Reason: Deletion Already Pending (116)"
  end
  if value == 119 then
    return "Quote Entry Reject Reason: Entitlement Not Assigned For Underlying (119)"
  end
  if value == 124 then
    return "Quote Entry Reject Reason: Currently Not Tradeable On Book (124)"
  end
  if value == 125 then
    return "Quote Entry Reject Reason: Quantity Limit Exceeded (125)"
  end
  if value == 126 then
    return "Quote Entry Reject Reason: Value Limit Exceeded (126)"
  end
  if value == 127 then
    return "Quote Entry Reject Reason: Invalid Quote Spread (127)"
  end
  if value == 128 then
    return "Quote Entry Reject Reason: Bookor Cancel (128)"
  end
  if value == 131 then
    return "Quote Entry Reject Reason: Cant Proc In Curr Instr State (131)"
  end
  if value == 134 then
    return "Quote Entry Reject Reason: Invalid Quote Type (134)"
  end
  if value == 143 then
    return "Quote Entry Reject Reason: Tradingindicationrunningfortrader (143)"
  end
  if value == 144 then
    return "Quote Entry Reject Reason: On Book Tradingdisabledfor Instrument Type (144)"
  end
  if value == 147 then
    return "Quote Entry Reject Reason: Liquidityproviderprotectionbidsidecancelled (147)"
  end
  if value == 148 then
    return "Quote Entry Reject Reason: Liquidityproviderprotectionasksidecancelled (148)"
  end
  if value == 155 then
    return "Quote Entry Reject Reason: Outside Quoting Period (155)"
  end
  if value == 156 then
    return "Quote Entry Reject Reason: Match Price Not On Price Step (156)"
  end
  if value == 161 then
    return "Quote Entry Reject Reason: Quantity Limit Exceeds Tsl (161)"
  end
  if value == 163 then
    return "Quote Entry Reject Reason: Too Many Ordersand Quotesin Order Book (163)"
  end
  if value == 166 then
    return "Quote Entry Reject Reason: Contractcannotbetradedduetoinsufficienteligibility (166)"
  end
  if value == 167 then
    return "Quote Entry Reject Reason: Underlying Price Timeout (167)"
  end
  if value == 168 then
    return "Quote Entry Reject Reason: Bu Suspend Arp Level 3 Soft Breach (168)"
  end
  if value == 169 then
    return "Quote Entry Reject Reason: No Clearing Product Assignment (169)"
  end
  if value == 0xFFFFFFFF then
    return "Quote Entry Reject Reason: No Value"
  end

  return "Quote Entry Reject Reason: Unknown("..value..")"
end

-- Dissect: Quote Entry Reject Reason
eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_reject_reason, range, value, display)

  return offset + length, value
end

-- Cxl Size
eurex_derivatives_eti_t7_v13_0.cxl_size = {}

-- Size: Cxl Size
eurex_derivatives_eti_t7_v13_0.cxl_size.size = 8

-- Display: Cxl Size
eurex_derivatives_eti_t7_v13_0.cxl_size.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Cxl Size: No Value"
  end

  return "Cxl Size: "..value
end

-- Translate: Cxl Size
eurex_derivatives_eti_t7_v13_0.cxl_size.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Cxl Size
eurex_derivatives_eti_t7_v13_0.cxl_size.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cxl_size.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.cxl_size.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.cxl_size.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cxl_size, range, value, display)

  return offset + length, value
end

-- Quote Entry Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp = {}

-- Size: Quote Entry Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.cxl_size.size + 
  eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason.size + 
  eurex_derivatives_eti_t7_v13_0.quote_entry_status.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Quote Entry Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Entry Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.fields = function(buffer, offset, packet, parent, quote_entry_ack_grp_comp_index)
  local index = offset

  -- Implicit Quote Entry Ack Grp Comp Index
  if quote_entry_ack_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_ack_grp_comp_index, quote_entry_ack_grp_comp_index)
    iteration:set_generated()
  end

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Cxl Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_size = eurex_derivatives_eti_t7_v13_0.cxl_size.dissect(buffer, index, packet, parent)

  -- Quote Entry Reject Reason: 4 Byte Unsigned Fixed Width Integer Enum with 35 values
  index, quote_entry_reject_reason = eurex_derivatives_eti_t7_v13_0.quote_entry_reject_reason.dissect(buffer, index, packet, parent)

  -- Quote Entry Status: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, quote_entry_status = eurex_derivatives_eti_t7_v13_0.quote_entry_status.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Quote Entry Ack Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.dissect = function(buffer, offset, packet, parent, quote_entry_ack_grp_comp_index)
  if show.quote_entry_ack_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_ack_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.fields(buffer, offset, packet, parent, quote_entry_ack_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.fields(buffer, offset, packet, parent, quote_entry_ack_grp_comp_index)
  end
end

-- No Quote Side Entries
eurex_derivatives_eti_t7_v13_0.no_quote_side_entries = {}

-- Size: No Quote Side Entries
eurex_derivatives_eti_t7_v13_0.no_quote_side_entries.size = 1

-- Display: No Quote Side Entries
eurex_derivatives_eti_t7_v13_0.no_quote_side_entries.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Quote Side Entries: No Value"
  end

  return "No Quote Side Entries: "..value
end

-- Dissect: No Quote Side Entries
eurex_derivatives_eti_t7_v13_0.no_quote_side_entries.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_quote_side_entries.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_quote_side_entries.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_quote_side_entries, range, value, display)

  return offset + length, value
end

-- Quote Response Id
eurex_derivatives_eti_t7_v13_0.quote_response_id = {}

-- Size: Quote Response Id
eurex_derivatives_eti_t7_v13_0.quote_response_id.size = 8

-- Display: Quote Response Id
eurex_derivatives_eti_t7_v13_0.quote_response_id.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Quote Response Id: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Quote Response Id: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Quote Response Id
eurex_derivatives_eti_t7_v13_0.quote_response_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_response_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.quote_response_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_response_id, range, value, display)

  return offset + length, value
end

-- Mass Quote Response
eurex_derivatives_eti_t7_v13_0.mass_quote_response = {}

-- Read runtime size of: Mass Quote Response
eurex_derivatives_eti_t7_v13_0.mass_quote_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Mass Quote Response
eurex_derivatives_eti_t7_v13_0.mass_quote_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Mass Quote Response
eurex_derivatives_eti_t7_v13_0.mass_quote_response.fields = function(buffer, offset, packet, parent, size_of_mass_quote_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  -- Quote Response Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_response_id = eurex_derivatives_eti_t7_v13_0.quote_response_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- No Quote Side Entries: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_quote_side_entries = eurex_derivatives_eti_t7_v13_0.no_quote_side_entries.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Repeating: Quote Entry Ack Grp Comp
  for quote_entry_ack_grp_comp_index = 1, no_quote_side_entries do
    index, quote_entry_ack_grp_comp = eurex_derivatives_eti_t7_v13_0.quote_entry_ack_grp_comp.dissect(buffer, index, packet, parent, quote_entry_ack_grp_comp_index)
  end

  return index
end

-- Dissect: Mass Quote Response
eurex_derivatives_eti_t7_v13_0.mass_quote_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_mass_quote_response = eurex_derivatives_eti_t7_v13_0.mass_quote_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.mass_quote_response then
    local range = buffer(offset, size_of_mass_quote_response)
    local display = eurex_derivatives_eti_t7_v13_0.mass_quote_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_quote_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.mass_quote_response.fields(buffer, offset, packet, parent, size_of_mass_quote_response)

  return offset + size_of_mass_quote_response
end

-- Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp = {}

-- Size: Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.bid_px.size + 
  eurex_derivatives_eti_t7_v13_0.bid_size.size + 
  eurex_derivatives_eti_t7_v13_0.offer_px.size + 
  eurex_derivatives_eti_t7_v13_0.offer_size.size

-- Display: Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.fields = function(buffer, offset, packet, parent, quote_entry_grp_comp_index)
  local index = offset

  -- Implicit Quote Entry Grp Comp Index
  if quote_entry_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_grp_comp_index, quote_entry_grp_comp_index)
    iteration:set_generated()
  end

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Bid Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_px = eurex_derivatives_eti_t7_v13_0.bid_px.dissect(buffer, index, packet, parent)

  -- Bid Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, bid_size = eurex_derivatives_eti_t7_v13_0.bid_size.dissect(buffer, index, packet, parent)

  -- Offer Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_px = eurex_derivatives_eti_t7_v13_0.offer_px.dissect(buffer, index, packet, parent)

  -- Offer Size: 8 Byte Unsigned Fixed Width Integer Nullable
  index, offer_size = eurex_derivatives_eti_t7_v13_0.offer_size.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Quote Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.dissect = function(buffer, offset, packet, parent, quote_entry_grp_comp_index)
  if show.quote_entry_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_entry_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.fields(buffer, offset, packet, parent, quote_entry_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.fields(buffer, offset, packet, parent, quote_entry_grp_comp_index)
  end
end

-- Quote Size Type
eurex_derivatives_eti_t7_v13_0.quote_size_type = {}

-- Size: Quote Size Type
eurex_derivatives_eti_t7_v13_0.quote_size_type.size = 1

-- Display: Quote Size Type
eurex_derivatives_eti_t7_v13_0.quote_size_type.display = function(value)
  if value == 1 then
    return "Quote Size Type: Total Size (1)"
  end
  if value == 2 then
    return "Quote Size Type: Open Size (2)"
  end
  if value == 0xFF then
    return "Quote Size Type: No Value"
  end

  return "Quote Size Type: Unknown("..value..")"
end

-- Dissect: Quote Size Type
eurex_derivatives_eti_t7_v13_0.quote_size_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quote_size_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quote_size_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quote_size_type, range, value, display)

  return offset + length, value
end

-- Mass Quote Request
eurex_derivatives_eti_t7_v13_0.mass_quote_request = {}

-- Read runtime size of: Mass Quote Request
eurex_derivatives_eti_t7_v13_0.mass_quote_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Mass Quote Request
eurex_derivatives_eti_t7_v13_0.mass_quote_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Mass Quote Request
eurex_derivatives_eti_t7_v13_0.mass_quote_request.fields = function(buffer, offset, packet, parent, size_of_mass_quote_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Quote Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, quote_id = eurex_derivatives_eti_t7_v13_0.quote_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Quote Size Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, quote_size_type = eurex_derivatives_eti_t7_v13_0.quote_size_type.dissect(buffer, index, packet, parent)

  -- Quote Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, quote_type = eurex_derivatives_eti_t7_v13_0.quote_type.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- No Quote Entries: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_quote_entries = eurex_derivatives_eti_t7_v13_0.no_quote_entries.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  -- Repeating: Quote Entry Grp Comp
  for quote_entry_grp_comp_index = 1, no_quote_entries do
    index, quote_entry_grp_comp = eurex_derivatives_eti_t7_v13_0.quote_entry_grp_comp.dissect(buffer, index, packet, parent, quote_entry_grp_comp_index)
  end

  return index
end

-- Dissect: Mass Quote Request
eurex_derivatives_eti_t7_v13_0.mass_quote_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_mass_quote_request = eurex_derivatives_eti_t7_v13_0.mass_quote_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.mass_quote_request then
    local range = buffer(offset, size_of_mass_quote_request)
    local display = eurex_derivatives_eti_t7_v13_0.mass_quote_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_quote_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.mass_quote_request.fields(buffer, offset, packet, parent, size_of_mass_quote_request)

  return offset + size_of_mass_quote_request
end

-- Mass Order Request Id
eurex_derivatives_eti_t7_v13_0.mass_order_request_id = {}

-- Size: Mass Order Request Id
eurex_derivatives_eti_t7_v13_0.mass_order_request_id.size = 8

-- Display: Mass Order Request Id
eurex_derivatives_eti_t7_v13_0.mass_order_request_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Mass Order Request Id: No Value"
  end

  return "Mass Order Request Id: "..value
end

-- Dissect: Mass Order Request Id
eurex_derivatives_eti_t7_v13_0.mass_order_request_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mass_order_request_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.mass_order_request_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order_request_id, range, value, display)

  return offset + length, value
end

-- Mass Order Ack
eurex_derivatives_eti_t7_v13_0.mass_order_ack = {}

-- Read runtime size of: Mass Order Ack
eurex_derivatives_eti_t7_v13_0.mass_order_ack.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Mass Order Ack
eurex_derivatives_eti_t7_v13_0.mass_order_ack.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Mass Order Ack
eurex_derivatives_eti_t7_v13_0.mass_order_ack.fields = function(buffer, offset, packet, parent, size_of_mass_order_ack)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Order Request Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_order_request_id = eurex_derivatives_eti_t7_v13_0.mass_order_request_id.dissect(buffer, index, packet, parent)

  -- Mass Order Report Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, mass_order_report_id = eurex_derivatives_eti_t7_v13_0.mass_order_report_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Mass Order Ack
eurex_derivatives_eti_t7_v13_0.mass_order_ack.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_mass_order_ack = eurex_derivatives_eti_t7_v13_0.mass_order_ack.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.mass_order_ack then
    local range = buffer(offset, size_of_mass_order_ack)
    local display = eurex_derivatives_eti_t7_v13_0.mass_order_ack.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order_ack, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.mass_order_ack.fields(buffer, offset, packet, parent, size_of_mass_order_ack)

  return offset + size_of_mass_order_ack
end

-- Order Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp = {}

-- Size: Order Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.price.size + 
  eurex_derivatives_eti_t7_v13_0.order_qty.size + 
  eurex_derivatives_eti_t7_v13_0.market_segment_id.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size + 
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.product_complex.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Order Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Order Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.fields = function(buffer, offset, packet, parent, order_entry_grp_comp_index)
  local index = offset

  -- Implicit Order Entry Grp Comp Index
  if order_entry_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_entry_grp_comp_index, order_entry_grp_comp_index)
    iteration:set_generated()
  end

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Order Entry Grp Comp
eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.dissect = function(buffer, offset, packet, parent, order_entry_grp_comp_index)
  if show.order_entry_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_entry_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.fields(buffer, offset, packet, parent, order_entry_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.fields(buffer, offset, packet, parent, order_entry_grp_comp_index)
  end
end

-- No Order Entries
eurex_derivatives_eti_t7_v13_0.no_order_entries = {}

-- Size: No Order Entries
eurex_derivatives_eti_t7_v13_0.no_order_entries.size = 1

-- Display: No Order Entries
eurex_derivatives_eti_t7_v13_0.no_order_entries.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Order Entries: No Value"
  end

  return "No Order Entries: "..value
end

-- Dissect: No Order Entries
eurex_derivatives_eti_t7_v13_0.no_order_entries.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_order_entries.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_order_entries.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_order_entries, range, value, display)

  return offset + length, value
end

-- Mass Order
eurex_derivatives_eti_t7_v13_0.mass_order = {}

-- Read runtime size of: Mass Order
eurex_derivatives_eti_t7_v13_0.mass_order.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Mass Order
eurex_derivatives_eti_t7_v13_0.mass_order.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Mass Order
eurex_derivatives_eti_t7_v13_0.mass_order.fields = function(buffer, offset, packet, parent, size_of_mass_order)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Mass Order Request Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_order_request_id = eurex_derivatives_eti_t7_v13_0.mass_order_request_id.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Trading Session Sub Id: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_session_sub_id = eurex_derivatives_eti_t7_v13_0.trading_session_sub_id.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- No Order Entries: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_order_entries = eurex_derivatives_eti_t7_v13_0.no_order_entries.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Order Entry Grp Comp
  for order_entry_grp_comp_index = 1, no_order_entries do
    index, order_entry_grp_comp = eurex_derivatives_eti_t7_v13_0.order_entry_grp_comp.dissect(buffer, index, packet, parent, order_entry_grp_comp_index)
  end

  return index
end

-- Dissect: Mass Order
eurex_derivatives_eti_t7_v13_0.mass_order.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_mass_order = eurex_derivatives_eti_t7_v13_0.mass_order.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.mass_order then
    local range = buffer(offset, size_of_mass_order)
    local display = eurex_derivatives_eti_t7_v13_0.mass_order.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mass_order, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.mass_order.fields(buffer, offset, packet, parent, size_of_mass_order)

  return offset + size_of_mass_order
end

-- Mm Parameter Definition Response
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response = {}

-- Read runtime size of: Mm Parameter Definition Response
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Mm Parameter Definition Response
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Mm Parameter Definition Response
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.fields = function(buffer, offset, packet, parent, size_of_mm_parameter_definition_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Mm Parameter Definition Response
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_mm_parameter_definition_response = eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.mm_parameter_definition_response then
    local range = buffer(offset, size_of_mm_parameter_definition_response)
    local display = eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_definition_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.fields(buffer, offset, packet, parent, size_of_mm_parameter_definition_response)

  return offset + size_of_mm_parameter_definition_response
end

-- Pct Count
eurex_derivatives_eti_t7_v13_0.pct_count = {}

-- Size: Pct Count
eurex_derivatives_eti_t7_v13_0.pct_count.size = 4

-- Display: Pct Count
eurex_derivatives_eti_t7_v13_0.pct_count.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Pct Count: No Value"
  end

  return "Pct Count: "..value
end

-- Dissect: Pct Count
eurex_derivatives_eti_t7_v13_0.pct_count.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.pct_count.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.pct_count.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.pct_count, range, value, display)

  return offset + length, value
end

-- Mm Risk Limit Action Type
eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type = {}

-- Size: Mm Risk Limit Action Type
eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.size = 1

-- Display: Mm Risk Limit Action Type
eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.display = function(value)
  if value == 1 then
    return "Mm Risk Limit Action Type: Quote Inactivate (1)"
  end
  if value == 2 then
    return "Mm Risk Limit Action Type: Quote Inactivate And Delete (2)"
  end
  if value == 0xFF then
    return "Mm Risk Limit Action Type: No Value"
  end

  return "Mm Risk Limit Action Type: Unknown("..value..")"
end

-- Dissect: Mm Risk Limit Action Type
eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mm_risk_limit_action_type, range, value, display)

  return offset + length, value
end

-- Vega
eurex_derivatives_eti_t7_v13_0.vega = {}

-- Size: Vega
eurex_derivatives_eti_t7_v13_0.vega.size = 8

-- Display: Vega
eurex_derivatives_eti_t7_v13_0.vega.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Vega: No Value"
  end

  return "Vega: "..value
end

-- Translate: Vega
eurex_derivatives_eti_t7_v13_0.vega.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Vega
eurex_derivatives_eti_t7_v13_0.vega.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.vega.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.vega.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.vega.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.vega, range, value, display)

  return offset + length, value
end

-- Delta
eurex_derivatives_eti_t7_v13_0.delta = {}

-- Size: Delta
eurex_derivatives_eti_t7_v13_0.delta.size = 8

-- Display: Delta
eurex_derivatives_eti_t7_v13_0.delta.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Delta: No Value"
  end

  return "Delta: "..value
end

-- Translate: Delta
eurex_derivatives_eti_t7_v13_0.delta.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/10000
end

-- Dissect: Delta
eurex_derivatives_eti_t7_v13_0.delta.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.delta.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.delta.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.delta.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delta, range, value, display)

  return offset + length, value
end

-- Exposure Duration
eurex_derivatives_eti_t7_v13_0.exposure_duration = {}

-- Size: Exposure Duration
eurex_derivatives_eti_t7_v13_0.exposure_duration.size = 8

-- Display: Exposure Duration
eurex_derivatives_eti_t7_v13_0.exposure_duration.display = function(value)
  -- Check if field has value
  if value == Int64(0x00000000, 0x80000000) then
    return "Exposure Duration: No Value"
  end

  return "Exposure Duration: "..value
end

-- Dissect: Exposure Duration
eurex_derivatives_eti_t7_v13_0.exposure_duration.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.exposure_duration.size
  local range = buffer(offset, length)
  local value = range:le_int64()
  local display = eurex_derivatives_eti_t7_v13_0.exposure_duration.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.exposure_duration, range, value, display)

  return offset + length, value
end

-- Mm Parameter Definition Request
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request = {}

-- Read runtime size of: Mm Parameter Definition Request
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Mm Parameter Definition Request
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Mm Parameter Definition Request
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.fields = function(buffer, offset, packet, parent, size_of_mm_parameter_definition_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Exposure Duration: 8 Byte Signed Fixed Width Integer Nullable
  index, exposure_duration = eurex_derivatives_eti_t7_v13_0.exposure_duration.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Delta: 8 Byte Unsigned Fixed Width Integer Nullable
  index, delta = eurex_derivatives_eti_t7_v13_0.delta.dissect(buffer, index, packet, parent)

  -- Vega: 8 Byte Unsigned Fixed Width Integer Nullable
  index, vega = eurex_derivatives_eti_t7_v13_0.vega.dissect(buffer, index, packet, parent)

  -- Mm Risk Limit Action Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, mm_risk_limit_action_type = eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Pct Count: 4 Byte Signed Fixed Width Integer Nullable
  index, pct_count = eurex_derivatives_eti_t7_v13_0.pct_count.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Mm Parameter Definition Request
eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_mm_parameter_definition_request = eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.mm_parameter_definition_request then
    local range = buffer(offset, size_of_mm_parameter_definition_request)
    local display = eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_definition_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.fields(buffer, offset, packet, parent, size_of_mm_parameter_definition_request)

  return offset + size_of_mm_parameter_definition_request
end

-- Logout Response
eurex_derivatives_eti_t7_v13_0.logout_response = {}

-- Read runtime size of: Logout Response
eurex_derivatives_eti_t7_v13_0.logout_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Logout Response
eurex_derivatives_eti_t7_v13_0.logout_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Logout Response
eurex_derivatives_eti_t7_v13_0.logout_response.fields = function(buffer, offset, packet, parent, size_of_logout_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Logout Response
eurex_derivatives_eti_t7_v13_0.logout_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_logout_response = eurex_derivatives_eti_t7_v13_0.logout_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.logout_response then
    local range = buffer(offset, size_of_logout_response)
    local display = eurex_derivatives_eti_t7_v13_0.logout_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.logout_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.logout_response.fields(buffer, offset, packet, parent, size_of_logout_response)

  return offset + size_of_logout_response
end

-- Logout Request
eurex_derivatives_eti_t7_v13_0.logout_request = {}

-- Read runtime size of: Logout Request
eurex_derivatives_eti_t7_v13_0.logout_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Logout Request
eurex_derivatives_eti_t7_v13_0.logout_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Logout Request
eurex_derivatives_eti_t7_v13_0.logout_request.fields = function(buffer, offset, packet, parent, size_of_logout_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Logout Request
eurex_derivatives_eti_t7_v13_0.logout_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_logout_request = eurex_derivatives_eti_t7_v13_0.logout_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.logout_request then
    local range = buffer(offset, size_of_logout_request)
    local display = eurex_derivatives_eti_t7_v13_0.logout_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.logout_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.logout_request.fields(buffer, offset, packet, parent, size_of_logout_request)

  return offset + size_of_logout_request
end

-- Public Key
eurex_derivatives_eti_t7_v13_0.public_key = {}

-- Display: Public Key
eurex_derivatives_eti_t7_v13_0.public_key.display = function(value)
  return "Public Key: "..value
end

-- Dissect runtime sized field: Public Key
eurex_derivatives_eti_t7_v13_0.public_key.dissect = function(buffer, offset, packet, parent, size)
  local range = buffer(offset, size)
  local value = range:string()
  local display = eurex_derivatives_eti_t7_v13_0.public_key.display(value, packet, parent, size)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.public_key, range, value, display)

  return offset + size, value
end

-- Default Cstm Appl Ver Sub Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_sub_id = {}

-- Size: Default Cstm Appl Ver Sub Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_sub_id.size = 5

-- Display: Default Cstm Appl Ver Sub Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_sub_id.display = function(value)
  if value == "D0003" then
    return "Default Cstm Appl Ver Sub Id: Derivatives (D0003)"
  end

  return "Default Cstm Appl Ver Sub Id: Unknown("..value..")"
end

-- Dissect: Default Cstm Appl Ver Sub Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_sub_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_sub_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_sub_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.default_cstm_appl_ver_sub_id, range, value, display)

  return offset + length, value
end

-- Default Cstm Appl Ver Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id = {}

-- Size: Default Cstm Appl Ver Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.size = 30

-- Display: Default Cstm Appl Ver Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Default Cstm Appl Ver Id: No Value"
  end

  return "Default Cstm Appl Ver Id: "..value
end

-- Dissect: Default Cstm Appl Ver Id
eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.default_cstm_appl_ver_id, range, value, display)

  return offset + length, value
end

-- Trad Ses Mode
eurex_derivatives_eti_t7_v13_0.trad_ses_mode = {}

-- Size: Trad Ses Mode
eurex_derivatives_eti_t7_v13_0.trad_ses_mode.size = 1

-- Display: Trad Ses Mode
eurex_derivatives_eti_t7_v13_0.trad_ses_mode.display = function(value)
  if value == 1 then
    return "Trad Ses Mode: Testing (1)"
  end
  if value == 2 then
    return "Trad Ses Mode: Simulated (2)"
  end
  if value == 3 then
    return "Trad Ses Mode: Production (3)"
  end
  if value == 4 then
    return "Trad Ses Mode: Acceptance (4)"
  end
  if value == 5 then
    return "Trad Ses Mode: Disaster Recovery (5)"
  end
  if value == 0xFF then
    return "Trad Ses Mode: No Value"
  end

  return "Trad Ses Mode: Unknown("..value..")"
end

-- Dissect: Trad Ses Mode
eurex_derivatives_eti_t7_v13_0.trad_ses_mode.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.trad_ses_mode.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.trad_ses_mode.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.trad_ses_mode, range, value, display)

  return offset + length, value
end

-- Public Key Len
eurex_derivatives_eti_t7_v13_0.public_key_len = {}

-- Size: Public Key Len
eurex_derivatives_eti_t7_v13_0.public_key_len.size = 2

-- Display: Public Key Len
eurex_derivatives_eti_t7_v13_0.public_key_len.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Public Key Len: No Value"
  end

  return "Public Key Len: "..value
end

-- Dissect: Public Key Len
eurex_derivatives_eti_t7_v13_0.public_key_len.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.public_key_len.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.public_key_len.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.public_key_len, range, value, display)

  return offset + length, value
end

-- Latest Public Key Seq No
eurex_derivatives_eti_t7_v13_0.latest_public_key_seq_no = {}

-- Size: Latest Public Key Seq No
eurex_derivatives_eti_t7_v13_0.latest_public_key_seq_no.size = 4

-- Display: Latest Public Key Seq No
eurex_derivatives_eti_t7_v13_0.latest_public_key_seq_no.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Latest Public Key Seq No: No Value"
  end

  return "Latest Public Key Seq No: "..value
end

-- Dissect: Latest Public Key Seq No
eurex_derivatives_eti_t7_v13_0.latest_public_key_seq_no.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.latest_public_key_seq_no.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.latest_public_key_seq_no.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.latest_public_key_seq_no, range, value, display)

  return offset + length, value
end

-- Session Instance Id
eurex_derivatives_eti_t7_v13_0.session_instance_id = {}

-- Size: Session Instance Id
eurex_derivatives_eti_t7_v13_0.session_instance_id.size = 4

-- Display: Session Instance Id
eurex_derivatives_eti_t7_v13_0.session_instance_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Session Instance Id: No Value"
  end

  return "Session Instance Id: "..value
end

-- Dissect: Session Instance Id
eurex_derivatives_eti_t7_v13_0.session_instance_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.session_instance_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.session_instance_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.session_instance_id, range, value, display)

  return offset + length, value
end

-- Heart Bt Int
eurex_derivatives_eti_t7_v13_0.heart_bt_int = {}

-- Size: Heart Bt Int
eurex_derivatives_eti_t7_v13_0.heart_bt_int.size = 4

-- Display: Heart Bt Int
eurex_derivatives_eti_t7_v13_0.heart_bt_int.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Heart Bt Int: No Value"
  end

  return "Heart Bt Int: "..value
end

-- Dissect: Heart Bt Int
eurex_derivatives_eti_t7_v13_0.heart_bt_int.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.heart_bt_int.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.heart_bt_int.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.heart_bt_int, range, value, display)

  return offset + length, value
end

-- Logon Response
eurex_derivatives_eti_t7_v13_0.logon_response = {}

-- Read runtime size of: Logon Response
eurex_derivatives_eti_t7_v13_0.logon_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Logon Response
eurex_derivatives_eti_t7_v13_0.logon_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Logon Response
eurex_derivatives_eti_t7_v13_0.logon_response.fields = function(buffer, offset, packet, parent, size_of_logon_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Throttle Time Interval: 8 Byte Signed Fixed Width Integer Nullable
  index, throttle_time_interval = eurex_derivatives_eti_t7_v13_0.throttle_time_interval.dissect(buffer, index, packet, parent)

  -- Throttle No Msgs: 4 Byte Unsigned Fixed Width Integer Nullable
  index, throttle_no_msgs = eurex_derivatives_eti_t7_v13_0.throttle_no_msgs.dissect(buffer, index, packet, parent)

  -- Throttle Disconnect Limit: 4 Byte Unsigned Fixed Width Integer Nullable
  index, throttle_disconnect_limit = eurex_derivatives_eti_t7_v13_0.throttle_disconnect_limit.dissect(buffer, index, packet, parent)

  -- Heart Bt Int: 4 Byte Unsigned Fixed Width Integer Nullable
  index, heart_bt_int = eurex_derivatives_eti_t7_v13_0.heart_bt_int.dissect(buffer, index, packet, parent)

  -- Session Instance Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, session_instance_id = eurex_derivatives_eti_t7_v13_0.session_instance_id.dissect(buffer, index, packet, parent)

  -- Latest Public Key Seq No: 4 Byte Unsigned Fixed Width Integer Nullable
  index, latest_public_key_seq_no = eurex_derivatives_eti_t7_v13_0.latest_public_key_seq_no.dissect(buffer, index, packet, parent)

  -- Public Key Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, public_key_len = eurex_derivatives_eti_t7_v13_0.public_key_len.dissect(buffer, index, packet, parent)

  -- Market Id: 2 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, market_id = eurex_derivatives_eti_t7_v13_0.market_id.dissect(buffer, index, packet, parent)

  -- Trad Ses Mode: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, trad_ses_mode = eurex_derivatives_eti_t7_v13_0.trad_ses_mode.dissect(buffer, index, packet, parent)

  -- Default Cstm Appl Ver Id: 30 Byte Ascii String Nullable
  index, default_cstm_appl_ver_id = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.dissect(buffer, index, packet, parent)

  -- Default Cstm Appl Ver Sub Id: 5 Byte Ascii String Enum with 1 values
  index, default_cstm_appl_ver_sub_id = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_sub_id.dissect(buffer, index, packet, parent)

  -- Runtime Size Of: Public Key
  index, public_key = eurex_derivatives_eti_t7_v13_0.public_key.dissect(buffer, index, packet, parent, public_key_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Logon Response
eurex_derivatives_eti_t7_v13_0.logon_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_logon_response = eurex_derivatives_eti_t7_v13_0.logon_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.logon_response then
    local range = buffer(offset, size_of_logon_response)
    local display = eurex_derivatives_eti_t7_v13_0.logon_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.logon_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.logon_response.fields(buffer, offset, packet, parent, size_of_logon_response)

  return offset + size_of_logon_response
end

-- Application System Vendor
eurex_derivatives_eti_t7_v13_0.application_system_vendor = {}

-- Size: Application System Vendor
eurex_derivatives_eti_t7_v13_0.application_system_vendor.size = 30

-- Display: Application System Vendor
eurex_derivatives_eti_t7_v13_0.application_system_vendor.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Application System Vendor: No Value"
  end

  return "Application System Vendor: "..value
end

-- Dissect: Application System Vendor
eurex_derivatives_eti_t7_v13_0.application_system_vendor.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.application_system_vendor.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.application_system_vendor.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.application_system_vendor, range, value, display)

  return offset + length, value
end

-- Application System Version
eurex_derivatives_eti_t7_v13_0.application_system_version = {}

-- Size: Application System Version
eurex_derivatives_eti_t7_v13_0.application_system_version.size = 30

-- Display: Application System Version
eurex_derivatives_eti_t7_v13_0.application_system_version.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Application System Version: No Value"
  end

  return "Application System Version: "..value
end

-- Dissect: Application System Version
eurex_derivatives_eti_t7_v13_0.application_system_version.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.application_system_version.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.application_system_version.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.application_system_version, range, value, display)

  return offset + length, value
end

-- Application System Name
eurex_derivatives_eti_t7_v13_0.application_system_name = {}

-- Size: Application System Name
eurex_derivatives_eti_t7_v13_0.application_system_name.size = 30

-- Display: Application System Name
eurex_derivatives_eti_t7_v13_0.application_system_name.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Application System Name: No Value"
  end

  return "Application System Name: "..value
end

-- Dissect: Application System Name
eurex_derivatives_eti_t7_v13_0.application_system_name.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.application_system_name.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.application_system_name.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.application_system_name, range, value, display)

  return offset + length, value
end

-- Fix Engine Vendor
eurex_derivatives_eti_t7_v13_0.fix_engine_vendor = {}

-- Size: Fix Engine Vendor
eurex_derivatives_eti_t7_v13_0.fix_engine_vendor.size = 30

-- Display: Fix Engine Vendor
eurex_derivatives_eti_t7_v13_0.fix_engine_vendor.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Fix Engine Vendor: No Value"
  end

  return "Fix Engine Vendor: "..value
end

-- Dissect: Fix Engine Vendor
eurex_derivatives_eti_t7_v13_0.fix_engine_vendor.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fix_engine_vendor.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.fix_engine_vendor.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fix_engine_vendor, range, value, display)

  return offset + length, value
end

-- Fix Engine Version
eurex_derivatives_eti_t7_v13_0.fix_engine_version = {}

-- Size: Fix Engine Version
eurex_derivatives_eti_t7_v13_0.fix_engine_version.size = 30

-- Display: Fix Engine Version
eurex_derivatives_eti_t7_v13_0.fix_engine_version.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Fix Engine Version: No Value"
  end

  return "Fix Engine Version: "..value
end

-- Dissect: Fix Engine Version
eurex_derivatives_eti_t7_v13_0.fix_engine_version.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fix_engine_version.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.fix_engine_version.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fix_engine_version, range, value, display)

  return offset + length, value
end

-- Fix Engine Name
eurex_derivatives_eti_t7_v13_0.fix_engine_name = {}

-- Size: Fix Engine Name
eurex_derivatives_eti_t7_v13_0.fix_engine_name.size = 30

-- Display: Fix Engine Name
eurex_derivatives_eti_t7_v13_0.fix_engine_name.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Fix Engine Name: No Value"
  end

  return "Fix Engine Name: "..value
end

-- Dissect: Fix Engine Name
eurex_derivatives_eti_t7_v13_0.fix_engine_name.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.fix_engine_name.size
  local range = buffer(offset, length)

  -- parse last octet
  local last = buffer(offset + length - 1, 1):uint()

  -- read full string or up to first zero
  local value = ''
  if last == 0 then
    value = range:stringz()
  else
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.fix_engine_name.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.fix_engine_name, range, value, display)

  return offset + length, value
end

-- Order Routing Indicator
eurex_derivatives_eti_t7_v13_0.order_routing_indicator = {}

-- Size: Order Routing Indicator
eurex_derivatives_eti_t7_v13_0.order_routing_indicator.size = 1

-- Display: Order Routing Indicator
eurex_derivatives_eti_t7_v13_0.order_routing_indicator.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Order Routing Indicator: No Value"
  end

  if value == "Y" then
    return "Order Routing Indicator: Yes (Y)"
  end
  if value == "N" then
    return "Order Routing Indicator: No (N)"
  end

  return "Order Routing Indicator: Unknown("..value..")"
end

-- Dissect: Order Routing Indicator
eurex_derivatives_eti_t7_v13_0.order_routing_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_routing_indicator.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.order_routing_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_routing_indicator, range, value, display)

  return offset + length, value
end

-- Appl Usage Quotes
eurex_derivatives_eti_t7_v13_0.appl_usage_quotes = {}

-- Size: Appl Usage Quotes
eurex_derivatives_eti_t7_v13_0.appl_usage_quotes.size = 1

-- Display: Appl Usage Quotes
eurex_derivatives_eti_t7_v13_0.appl_usage_quotes.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Appl Usage Quotes: No Value"
  end

  if value == "A" then
    return "Appl Usage Quotes: Automated (A)"
  end
  if value == "M" then
    return "Appl Usage Quotes: Manual (M)"
  end
  if value == "B" then
    return "Appl Usage Quotes: Auto Select (B)"
  end
  if value == "N" then
    return "Appl Usage Quotes: None (N)"
  end

  return "Appl Usage Quotes: Unknown("..value..")"
end

-- Dissect: Appl Usage Quotes
eurex_derivatives_eti_t7_v13_0.appl_usage_quotes.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_usage_quotes.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.appl_usage_quotes.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_usage_quotes, range, value, display)

  return offset + length, value
end

-- Appl Usage Orders
eurex_derivatives_eti_t7_v13_0.appl_usage_orders = {}

-- Size: Appl Usage Orders
eurex_derivatives_eti_t7_v13_0.appl_usage_orders.size = 1

-- Display: Appl Usage Orders
eurex_derivatives_eti_t7_v13_0.appl_usage_orders.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Appl Usage Orders: No Value"
  end

  if value == "A" then
    return "Appl Usage Orders: Automated (A)"
  end
  if value == "M" then
    return "Appl Usage Orders: Manual (M)"
  end
  if value == "B" then
    return "Appl Usage Orders: Auto Select (B)"
  end
  if value == "N" then
    return "Appl Usage Orders: None (N)"
  end

  return "Appl Usage Orders: Unknown("..value..")"
end

-- Dissect: Appl Usage Orders
eurex_derivatives_eti_t7_v13_0.appl_usage_orders.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_usage_orders.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.appl_usage_orders.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_usage_orders, range, value, display)

  return offset + length, value
end

-- Logon Request Encrypted
eurex_derivatives_eti_t7_v13_0.logon_request_encrypted = {}

-- Read runtime size of: Logon Request Encrypted
eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Logon Request Encrypted
eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Logon Request Encrypted
eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.fields = function(buffer, offset, packet, parent, size_of_logon_request_encrypted)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Heart Bt Int: 4 Byte Unsigned Fixed Width Integer Nullable
  index, heart_bt_int = eurex_derivatives_eti_t7_v13_0.heart_bt_int.dissect(buffer, index, packet, parent)

  -- Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_session_id = eurex_derivatives_eti_t7_v13_0.party_id_session_id.dissect(buffer, index, packet, parent)

  -- Default Cstm Appl Ver Id: 30 Byte Ascii String Nullable
  index, default_cstm_appl_ver_id = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.dissect(buffer, index, packet, parent)

  -- Encrypted Password: 684 Byte Ascii String Nullable
  index, encrypted_password = eurex_derivatives_eti_t7_v13_0.encrypted_password.dissect(buffer, index, packet, parent)

  -- Appl Usage Orders: 1 Byte Ascii String Enum with 4 values
  index, appl_usage_orders = eurex_derivatives_eti_t7_v13_0.appl_usage_orders.dissect(buffer, index, packet, parent)

  -- Appl Usage Quotes: 1 Byte Ascii String Enum with 4 values
  index, appl_usage_quotes = eurex_derivatives_eti_t7_v13_0.appl_usage_quotes.dissect(buffer, index, packet, parent)

  -- Order Routing Indicator: 1 Byte Ascii String Enum with 2 values
  index, order_routing_indicator = eurex_derivatives_eti_t7_v13_0.order_routing_indicator.dissect(buffer, index, packet, parent)

  -- Fix Engine Name: 30 Byte Ascii String Nullable
  index, fix_engine_name = eurex_derivatives_eti_t7_v13_0.fix_engine_name.dissect(buffer, index, packet, parent)

  -- Fix Engine Version: 30 Byte Ascii String Nullable
  index, fix_engine_version = eurex_derivatives_eti_t7_v13_0.fix_engine_version.dissect(buffer, index, packet, parent)

  -- Fix Engine Vendor: 30 Byte Ascii String Nullable
  index, fix_engine_vendor = eurex_derivatives_eti_t7_v13_0.fix_engine_vendor.dissect(buffer, index, packet, parent)

  -- Application System Name: 30 Byte Ascii String Nullable
  index, application_system_name = eurex_derivatives_eti_t7_v13_0.application_system_name.dissect(buffer, index, packet, parent)

  -- Application System Version: 30 Byte Ascii String Nullable
  index, application_system_version = eurex_derivatives_eti_t7_v13_0.application_system_version.dissect(buffer, index, packet, parent)

  -- Application System Vendor: 30 Byte Ascii String Nullable
  index, application_system_vendor = eurex_derivatives_eti_t7_v13_0.application_system_vendor.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Logon Request Encrypted
eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_logon_request_encrypted = eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.logon_request_encrypted then
    local range = buffer(offset, size_of_logon_request_encrypted)
    local display = eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.logon_request_encrypted, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.fields(buffer, offset, packet, parent, size_of_logon_request_encrypted)

  return offset + size_of_logon_request_encrypted
end

-- Logon Request
eurex_derivatives_eti_t7_v13_0.logon_request = {}

-- Read runtime size of: Logon Request
eurex_derivatives_eti_t7_v13_0.logon_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Logon Request
eurex_derivatives_eti_t7_v13_0.logon_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Logon Request
eurex_derivatives_eti_t7_v13_0.logon_request.fields = function(buffer, offset, packet, parent, size_of_logon_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Heart Bt Int: 4 Byte Unsigned Fixed Width Integer Nullable
  index, heart_bt_int = eurex_derivatives_eti_t7_v13_0.heart_bt_int.dissect(buffer, index, packet, parent)

  -- Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_session_id = eurex_derivatives_eti_t7_v13_0.party_id_session_id.dissect(buffer, index, packet, parent)

  -- Default Cstm Appl Ver Id: 30 Byte Ascii String Nullable
  index, default_cstm_appl_ver_id = eurex_derivatives_eti_t7_v13_0.default_cstm_appl_ver_id.dissect(buffer, index, packet, parent)

  -- Password: 32 Byte Ascii String Nullable
  index, password = eurex_derivatives_eti_t7_v13_0.password.dissect(buffer, index, packet, parent)

  -- Appl Usage Orders: 1 Byte Ascii String Enum with 4 values
  index, appl_usage_orders = eurex_derivatives_eti_t7_v13_0.appl_usage_orders.dissect(buffer, index, packet, parent)

  -- Appl Usage Quotes: 1 Byte Ascii String Enum with 4 values
  index, appl_usage_quotes = eurex_derivatives_eti_t7_v13_0.appl_usage_quotes.dissect(buffer, index, packet, parent)

  -- Order Routing Indicator: 1 Byte Ascii String Enum with 2 values
  index, order_routing_indicator = eurex_derivatives_eti_t7_v13_0.order_routing_indicator.dissect(buffer, index, packet, parent)

  -- Fix Engine Name: 30 Byte Ascii String Nullable
  index, fix_engine_name = eurex_derivatives_eti_t7_v13_0.fix_engine_name.dissect(buffer, index, packet, parent)

  -- Fix Engine Version: 30 Byte Ascii String Nullable
  index, fix_engine_version = eurex_derivatives_eti_t7_v13_0.fix_engine_version.dissect(buffer, index, packet, parent)

  -- Fix Engine Vendor: 30 Byte Ascii String Nullable
  index, fix_engine_vendor = eurex_derivatives_eti_t7_v13_0.fix_engine_vendor.dissect(buffer, index, packet, parent)

  -- Application System Name: 30 Byte Ascii String Nullable
  index, application_system_name = eurex_derivatives_eti_t7_v13_0.application_system_name.dissect(buffer, index, packet, parent)

  -- Application System Version: 30 Byte Ascii String Nullable
  index, application_system_version = eurex_derivatives_eti_t7_v13_0.application_system_version.dissect(buffer, index, packet, parent)

  -- Application System Vendor: 30 Byte Ascii String Nullable
  index, application_system_vendor = eurex_derivatives_eti_t7_v13_0.application_system_vendor.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Logon Request
eurex_derivatives_eti_t7_v13_0.logon_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_logon_request = eurex_derivatives_eti_t7_v13_0.logon_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.logon_request then
    local range = buffer(offset, size_of_logon_request)
    local display = eurex_derivatives_eti_t7_v13_0.logon_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.logon_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.logon_request.fields(buffer, offset, packet, parent, size_of_logon_request)

  return offset + size_of_logon_request
end

-- User Status
eurex_derivatives_eti_t7_v13_0.user_status = {}

-- Size: User Status
eurex_derivatives_eti_t7_v13_0.user_status.size = 1

-- Display: User Status
eurex_derivatives_eti_t7_v13_0.user_status.display = function(value)
  if value == 7 then
    return "User Status: Userforcedlogout (7)"
  end
  if value == 10 then
    return "User Status: Userstopped (10)"
  end
  if value == 11 then
    return "User Status: Userreleased (11)"
  end
  if value == 0xFF then
    return "User Status: No Value"
  end

  return "User Status: Unknown("..value..")"
end

-- Dissect: User Status
eurex_derivatives_eti_t7_v13_0.user_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.user_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.user_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.user_status, range, value, display)

  return offset + length, value
end

-- Legal Notification Broadcast
eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast = {}

-- Read runtime size of: Legal Notification Broadcast
eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Legal Notification Broadcast
eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Legal Notification Broadcast
eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.fields = function(buffer, offset, packet, parent, size_of_legal_notification_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- User Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, user_status = eurex_derivatives_eti_t7_v13_0.user_status.dissect(buffer, index, packet, parent)

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Legal Notification Broadcast
eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_legal_notification_broadcast = eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.legal_notification_broadcast then
    local range = buffer(offset, size_of_legal_notification_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.legal_notification_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.fields(buffer, offset, packet, parent, size_of_legal_notification_broadcast)

  return offset + size_of_legal_notification_broadcast
end

-- Party Detail Desk Id
eurex_derivatives_eti_t7_v13_0.party_detail_desk_id = {}

-- Size: Party Detail Desk Id
eurex_derivatives_eti_t7_v13_0.party_detail_desk_id.size = 3

-- Display: Party Detail Desk Id
eurex_derivatives_eti_t7_v13_0.party_detail_desk_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Detail Desk Id: No Value"
  end

  return "Party Detail Desk Id: "..value
end

-- Dissect: Party Detail Desk Id
eurex_derivatives_eti_t7_v13_0.party_detail_desk_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_desk_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_desk_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_desk_id, range, value, display)

  return offset + length, value
end

-- Party Detail Role Qualifier
eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier = {}

-- Size: Party Detail Role Qualifier
eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier.size = 1

-- Display: Party Detail Role Qualifier
eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier.display = function(value)
  if value == 10 then
    return "Party Detail Role Qualifier: Trader (10)"
  end
  if value == 11 then
    return "Party Detail Role Qualifier: Head Trader (11)"
  end
  if value == 12 then
    return "Party Detail Role Qualifier: Supervisor (12)"
  end
  if value == 0xFF then
    return "Party Detail Role Qualifier: No Value"
  end

  return "Party Detail Role Qualifier: Unknown("..value..")"
end

-- Dissect: Party Detail Role Qualifier
eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_role_qualifier, range, value, display)

  return offset + length, value
end

-- Party Detail Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader = {}

-- Size: Party Detail Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader.size = 4

-- Display: Party Detail Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Party Detail Id Executing Trader: No Value"
  end

  return "Party Detail Id Executing Trader: "..value
end

-- Dissect: Party Detail Id Executing Trader
eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_detail_id_executing_trader, range, value, display)

  return offset + length, value
end

-- Party Details Grp Comp
eurex_derivatives_eti_t7_v13_0.party_details_grp_comp = {}

-- Size: Party Details Grp Comp
eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_status.size + 
  eurex_derivatives_eti_t7_v13_0.party_detail_desk_id.size + 
  eurex_derivatives_eti_t7_v13_0.pad_1.size

-- Display: Party Details Grp Comp
eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Party Details Grp Comp
eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.fields = function(buffer, offset, packet, parent, party_details_grp_comp_index)
  local index = offset

  -- Implicit Party Details Grp Comp Index
  if party_details_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_details_grp_comp_index, party_details_grp_comp_index)
    iteration:set_generated()
  end

  -- Party Detail Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_detail_id_executing_trader = eurex_derivatives_eti_t7_v13_0.party_detail_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Detail Executing Trader: 6 Byte Ascii String Nullable
  index, party_detail_executing_trader = eurex_derivatives_eti_t7_v13_0.party_detail_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Detail Role Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, party_detail_role_qualifier = eurex_derivatives_eti_t7_v13_0.party_detail_role_qualifier.dissect(buffer, index, packet, parent)

  -- Party Detail Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, party_detail_status = eurex_derivatives_eti_t7_v13_0.party_detail_status.dissect(buffer, index, packet, parent)

  -- Party Detail Desk Id: 3 Byte Ascii String Nullable
  index, party_detail_desk_id = eurex_derivatives_eti_t7_v13_0.party_detail_desk_id.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Party Details Grp Comp
eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.dissect = function(buffer, offset, packet, parent, party_details_grp_comp_index)
  if show.party_details_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_details_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.fields(buffer, offset, packet, parent, party_details_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.fields(buffer, offset, packet, parent, party_details_grp_comp_index)
  end
end

-- Last Entity Processed
eurex_derivatives_eti_t7_v13_0.last_entity_processed = {}

-- Size: Last Entity Processed
eurex_derivatives_eti_t7_v13_0.last_entity_processed.size = 16

-- Display: Last Entity Processed
eurex_derivatives_eti_t7_v13_0.last_entity_processed.display = function(value)
  return "Last Entity Processed: "..value
end

-- Dissect: Last Entity Processed
eurex_derivatives_eti_t7_v13_0.last_entity_processed.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.last_entity_processed.size
  local range = buffer(offset, length)
  local value = range:bytes():tohex(false, " ")
  local display = eurex_derivatives_eti_t7_v13_0.last_entity_processed.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.last_entity_processed, range, value, display)

  return offset + length, value
end

-- Inquire User Response
eurex_derivatives_eti_t7_v13_0.inquire_user_response = {}

-- Read runtime size of: Inquire User Response
eurex_derivatives_eti_t7_v13_0.inquire_user_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire User Response
eurex_derivatives_eti_t7_v13_0.inquire_user_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire User Response
eurex_derivatives_eti_t7_v13_0.inquire_user_response.fields = function(buffer, offset, packet, parent, size_of_inquire_user_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Last Entity Processed: 16 Byte
  index, last_entity_processed = eurex_derivatives_eti_t7_v13_0.last_entity_processed.dissect(buffer, index, packet, parent)

  -- No Party Details: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_party_details = eurex_derivatives_eti_t7_v13_0.no_party_details.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Party Details Grp Comp
  for party_details_grp_comp_index = 1, no_party_details do
    index, party_details_grp_comp = eurex_derivatives_eti_t7_v13_0.party_details_grp_comp.dissect(buffer, index, packet, parent, party_details_grp_comp_index)
  end

  return index
end

-- Dissect: Inquire User Response
eurex_derivatives_eti_t7_v13_0.inquire_user_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_user_response = eurex_derivatives_eti_t7_v13_0.inquire_user_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_user_response then
    local range = buffer(offset, size_of_inquire_user_response)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_user_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_user_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_user_response.fields(buffer, offset, packet, parent, size_of_inquire_user_response)

  return offset + size_of_inquire_user_response
end

-- Inquire User Request
eurex_derivatives_eti_t7_v13_0.inquire_user_request = {}

-- Read runtime size of: Inquire User Request
eurex_derivatives_eti_t7_v13_0.inquire_user_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire User Request
eurex_derivatives_eti_t7_v13_0.inquire_user_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire User Request
eurex_derivatives_eti_t7_v13_0.inquire_user_request.fields = function(buffer, offset, packet, parent, size_of_inquire_user_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Last Entity Processed: 16 Byte
  index, last_entity_processed = eurex_derivatives_eti_t7_v13_0.last_entity_processed.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Inquire User Request
eurex_derivatives_eti_t7_v13_0.inquire_user_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_user_request = eurex_derivatives_eti_t7_v13_0.inquire_user_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_user_request then
    local range = buffer(offset, size_of_inquire_user_request)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_user_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_user_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_user_request.fields(buffer, offset, packet, parent, size_of_inquire_user_request)

  return offset + size_of_inquire_user_request
end

-- Session Sub Mode
eurex_derivatives_eti_t7_v13_0.session_sub_mode = {}

-- Size: Session Sub Mode
eurex_derivatives_eti_t7_v13_0.session_sub_mode.size = 1

-- Display: Session Sub Mode
eurex_derivatives_eti_t7_v13_0.session_sub_mode.display = function(value)
  if value == 0 then
    return "Session Sub Mode: Regulartradingsession (0)"
  end
  if value == 2 then
    return "Session Sub Mode: Regular Back Officesession (2)"
  end
  if value == 0xFF then
    return "Session Sub Mode: No Value"
  end

  return "Session Sub Mode: Unknown("..value..")"
end

-- Dissect: Session Sub Mode
eurex_derivatives_eti_t7_v13_0.session_sub_mode.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.session_sub_mode.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.session_sub_mode.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.session_sub_mode, range, value, display)

  return offset + length, value
end

-- Session Mode
eurex_derivatives_eti_t7_v13_0.session_mode = {}

-- Size: Session Mode
eurex_derivatives_eti_t7_v13_0.session_mode.size = 1

-- Display: Session Mode
eurex_derivatives_eti_t7_v13_0.session_mode.display = function(value)
  if value == 1 then
    return "Session Mode: Etihf (1)"
  end
  if value == 2 then
    return "Session Mode: Etilf (2)"
  end
  if value == 3 then
    return "Session Mode: Gui (3)"
  end
  if value == 4 then
    return "Session Mode: Fixlf (4)"
  end
  if value == 0xFF then
    return "Session Mode: No Value"
  end

  return "Session Mode: Unknown("..value..")"
end

-- Dissect: Session Mode
eurex_derivatives_eti_t7_v13_0.session_mode.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.session_mode.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.session_mode.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.session_mode, range, value, display)

  return offset + length, value
end

-- Sessions Grp Comp
eurex_derivatives_eti_t7_v13_0.sessions_grp_comp = {}

-- Size: Sessions Grp Comp
eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.party_id_session_id.size + 
  eurex_derivatives_eti_t7_v13_0.session_mode.size + 
  eurex_derivatives_eti_t7_v13_0.session_sub_mode.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Sessions Grp Comp
eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Sessions Grp Comp
eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.fields = function(buffer, offset, packet, parent, sessions_grp_comp_index)
  local index = offset

  -- Implicit Sessions Grp Comp Index
  if sessions_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.sessions_grp_comp_index, sessions_grp_comp_index)
    iteration:set_generated()
  end

  -- Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_session_id = eurex_derivatives_eti_t7_v13_0.party_id_session_id.dissect(buffer, index, packet, parent)

  -- Session Mode: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, session_mode = eurex_derivatives_eti_t7_v13_0.session_mode.dissect(buffer, index, packet, parent)

  -- Session Sub Mode: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, session_sub_mode = eurex_derivatives_eti_t7_v13_0.session_sub_mode.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Sessions Grp Comp
eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.dissect = function(buffer, offset, packet, parent, sessions_grp_comp_index)
  if show.sessions_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.sessions_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.fields(buffer, offset, packet, parent, sessions_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.fields(buffer, offset, packet, parent, sessions_grp_comp_index)
  end
end

-- No Sessions
eurex_derivatives_eti_t7_v13_0.no_sessions = {}

-- Size: No Sessions
eurex_derivatives_eti_t7_v13_0.no_sessions.size = 2

-- Display: No Sessions
eurex_derivatives_eti_t7_v13_0.no_sessions.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Sessions: No Value"
  end

  return "No Sessions: "..value
end

-- Dissect: No Sessions
eurex_derivatives_eti_t7_v13_0.no_sessions.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_sessions.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_sessions.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_sessions, range, value, display)

  return offset + length, value
end

-- Inquire Session List Response
eurex_derivatives_eti_t7_v13_0.inquire_session_list_response = {}

-- Read runtime size of: Inquire Session List Response
eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Session List Response
eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Session List Response
eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.fields = function(buffer, offset, packet, parent, size_of_inquire_session_list_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- No Sessions: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_sessions = eurex_derivatives_eti_t7_v13_0.no_sessions.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Sessions Grp Comp
  for sessions_grp_comp_index = 1, no_sessions do
    index, sessions_grp_comp = eurex_derivatives_eti_t7_v13_0.sessions_grp_comp.dissect(buffer, index, packet, parent, sessions_grp_comp_index)
  end

  return index
end

-- Dissect: Inquire Session List Response
eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_session_list_response = eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_session_list_response then
    local range = buffer(offset, size_of_inquire_session_list_response)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_session_list_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.fields(buffer, offset, packet, parent, size_of_inquire_session_list_response)

  return offset + size_of_inquire_session_list_response
end

-- Inquire Session List Request
eurex_derivatives_eti_t7_v13_0.inquire_session_list_request = {}

-- Read runtime size of: Inquire Session List Request
eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Session List Request
eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Session List Request
eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.fields = function(buffer, offset, packet, parent, size_of_inquire_session_list_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Inquire Session List Request
eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_session_list_request = eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_session_list_request then
    local range = buffer(offset, size_of_inquire_session_list_request)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_session_list_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.fields(buffer, offset, packet, parent, size_of_inquire_session_list_request)

  return offset + size_of_inquire_session_list_request
end

-- Party Executing Unit
eurex_derivatives_eti_t7_v13_0.party_executing_unit = {}

-- Size: Party Executing Unit
eurex_derivatives_eti_t7_v13_0.party_executing_unit.size = 5

-- Display: Party Executing Unit
eurex_derivatives_eti_t7_v13_0.party_executing_unit.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Party Executing Unit: No Value"
  end

  return "Party Executing Unit: "..value
end

-- Dissect: Party Executing Unit
eurex_derivatives_eti_t7_v13_0.party_executing_unit.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_executing_unit.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.party_executing_unit.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_executing_unit, range, value, display)

  return offset + length, value
end

-- Inquire Pre Trade Risk Limits Request
eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request = {}

-- Read runtime size of: Inquire Pre Trade Risk Limits Request
eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Pre Trade Risk Limits Request
eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Pre Trade Risk Limits Request
eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.fields = function(buffer, offset, packet, parent, size_of_inquire_pre_trade_risk_limits_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Risk Limit Platform: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, risk_limit_platform = eurex_derivatives_eti_t7_v13_0.risk_limit_platform.dissect(buffer, index, packet, parent)

  -- Party Executing Unit: 5 Byte Ascii String Nullable
  index, party_executing_unit = eurex_derivatives_eti_t7_v13_0.party_executing_unit.dissect(buffer, index, packet, parent)

  -- Risk Limit Group: 3 Byte Ascii String Nullable
  index, risk_limit_group = eurex_derivatives_eti_t7_v13_0.risk_limit_group.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Inquire Pre Trade Risk Limits Request
eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_pre_trade_risk_limits_request = eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_pre_trade_risk_limits_request then
    local range = buffer(offset, size_of_inquire_pre_trade_risk_limits_request)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_pre_trade_risk_limits_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.fields(buffer, offset, packet, parent, size_of_inquire_pre_trade_risk_limits_request)

  return offset + size_of_inquire_pre_trade_risk_limits_request
end

-- Margin Based Risk Limit Short
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short = {}

-- Size: Margin Based Risk Limit Short
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.size = 8

-- Display: Margin Based Risk Limit Short
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Margin Based Risk Limit Short: No Value"
  end

  return "Margin Based Risk Limit Short: "..value
end

-- Translate: Margin Based Risk Limit Short
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Margin Based Risk Limit Short
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.margin_based_risk_limit_short, range, value, display)

  return offset + length, value
end

-- Margin Based Risk Limit Long
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long = {}

-- Size: Margin Based Risk Limit Long
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.size = 8

-- Display: Margin Based Risk Limit Long
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Margin Based Risk Limit Long: No Value"
  end

  return "Margin Based Risk Limit Long: "..value
end

-- Translate: Margin Based Risk Limit Long
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Margin Based Risk Limit Long
eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.margin_based_risk_limit_long, range, value, display)

  return offset + length, value
end

-- Inquire Margin Based Risk Limit Response
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response = {}

-- Read runtime size of: Inquire Margin Based Risk Limit Response
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Margin Based Risk Limit Response
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Margin Based Risk Limit Response
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.fields = function(buffer, offset, packet, parent, size_of_inquire_margin_based_risk_limit_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Margin Based Risk Limit Long: 8 Byte Unsigned Fixed Width Integer Nullable
  index, margin_based_risk_limit_long = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_long.dissect(buffer, index, packet, parent)

  -- Margin Based Risk Limit Short: 8 Byte Unsigned Fixed Width Integer Nullable
  index, margin_based_risk_limit_short = eurex_derivatives_eti_t7_v13_0.margin_based_risk_limit_short.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Inquire Margin Based Risk Limit Response
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_margin_based_risk_limit_response = eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_margin_based_risk_limit_response then
    local range = buffer(offset, size_of_inquire_margin_based_risk_limit_response)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_margin_based_risk_limit_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.fields(buffer, offset, packet, parent, size_of_inquire_margin_based_risk_limit_response)

  return offset + size_of_inquire_margin_based_risk_limit_response
end

-- Inquire Margin Based Risk Limit Request
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request = {}

-- Read runtime size of: Inquire Margin Based Risk Limit Request
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Margin Based Risk Limit Request
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Margin Based Risk Limit Request
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.fields = function(buffer, offset, packet, parent, size_of_inquire_margin_based_risk_limit_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Partition Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, partition_id = eurex_derivatives_eti_t7_v13_0.partition_id.dissect(buffer, index, packet, parent)

  -- Party Detail Executing Unit: 5 Byte Ascii String Nullable
  index, party_detail_executing_unit = eurex_derivatives_eti_t7_v13_0.party_detail_executing_unit.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Inquire Margin Based Risk Limit Request
eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_margin_based_risk_limit_request = eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_margin_based_risk_limit_request then
    local range = buffer(offset, size_of_inquire_margin_based_risk_limit_request)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_margin_based_risk_limit_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.fields(buffer, offset, packet, parent, size_of_inquire_margin_based_risk_limit_request)

  return offset + size_of_inquire_margin_based_risk_limit_request
end

-- Mm Parameter Grp Comp
eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp = {}

-- Size: Mm Parameter Grp Comp
eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.exposure_duration.size + 
  eurex_derivatives_eti_t7_v13_0.cum_qty.size + 
  eurex_derivatives_eti_t7_v13_0.delta.size + 
  eurex_derivatives_eti_t7_v13_0.vega.size + 
  eurex_derivatives_eti_t7_v13_0.pct_count.size + 
  eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.size + 
  eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Mm Parameter Grp Comp
eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Mm Parameter Grp Comp
eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.fields = function(buffer, offset, packet, parent, mm_parameter_grp_comp_index)
  local index = offset

  -- Implicit Mm Parameter Grp Comp Index
  if mm_parameter_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_grp_comp_index, mm_parameter_grp_comp_index)
    iteration:set_generated()
  end

  -- Exposure Duration: 8 Byte Signed Fixed Width Integer Nullable
  index, exposure_duration = eurex_derivatives_eti_t7_v13_0.exposure_duration.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Delta: 8 Byte Unsigned Fixed Width Integer Nullable
  index, delta = eurex_derivatives_eti_t7_v13_0.delta.dissect(buffer, index, packet, parent)

  -- Vega: 8 Byte Unsigned Fixed Width Integer Nullable
  index, vega = eurex_derivatives_eti_t7_v13_0.vega.dissect(buffer, index, packet, parent)

  -- Pct Count: 4 Byte Signed Fixed Width Integer Nullable
  index, pct_count = eurex_derivatives_eti_t7_v13_0.pct_count.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Mm Risk Limit Action Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, mm_risk_limit_action_type = eurex_derivatives_eti_t7_v13_0.mm_risk_limit_action_type.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Mm Parameter Grp Comp
eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.dissect = function(buffer, offset, packet, parent, mm_parameter_grp_comp_index)
  if show.mm_parameter_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.fields(buffer, offset, packet, parent, mm_parameter_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.fields(buffer, offset, packet, parent, mm_parameter_grp_comp_index)
  end
end

-- No Mm Parameters
eurex_derivatives_eti_t7_v13_0.no_mm_parameters = {}

-- Size: No Mm Parameters
eurex_derivatives_eti_t7_v13_0.no_mm_parameters.size = 1

-- Display: No Mm Parameters
eurex_derivatives_eti_t7_v13_0.no_mm_parameters.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Mm Parameters: No Value"
  end

  return "No Mm Parameters: "..value
end

-- Dissect: No Mm Parameters
eurex_derivatives_eti_t7_v13_0.no_mm_parameters.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_mm_parameters.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_mm_parameters.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_mm_parameters, range, value, display)

  return offset + length, value
end

-- Mm Parameter Report Id
eurex_derivatives_eti_t7_v13_0.mm_parameter_report_id = {}

-- Size: Mm Parameter Report Id
eurex_derivatives_eti_t7_v13_0.mm_parameter_report_id.size = 8

-- Display: Mm Parameter Report Id
eurex_derivatives_eti_t7_v13_0.mm_parameter_report_id.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Mm Parameter Report Id: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Mm Parameter Report Id: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Mm Parameter Report Id
eurex_derivatives_eti_t7_v13_0.mm_parameter_report_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.mm_parameter_report_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.mm_parameter_report_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.mm_parameter_report_id, range, value, display)

  return offset + length, value
end

-- Inquire Mm Parameter Response
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response = {}

-- Read runtime size of: Inquire Mm Parameter Response
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Mm Parameter Response
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Mm Parameter Response
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.fields = function(buffer, offset, packet, parent, size_of_inquire_mm_parameter_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mm Parameter Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mm_parameter_report_id = eurex_derivatives_eti_t7_v13_0.mm_parameter_report_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- No Mm Parameters: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_mm_parameters = eurex_derivatives_eti_t7_v13_0.no_mm_parameters.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  -- Repeating: Mm Parameter Grp Comp
  for mm_parameter_grp_comp_index = 1, no_mm_parameters do
    index, mm_parameter_grp_comp = eurex_derivatives_eti_t7_v13_0.mm_parameter_grp_comp.dissect(buffer, index, packet, parent, mm_parameter_grp_comp_index)
  end

  return index
end

-- Dissect: Inquire Mm Parameter Response
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_mm_parameter_response = eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_mm_parameter_response then
    local range = buffer(offset, size_of_inquire_mm_parameter_response)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_mm_parameter_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.fields(buffer, offset, packet, parent, size_of_inquire_mm_parameter_response)

  return offset + size_of_inquire_mm_parameter_response
end

-- Inquire Mm Parameter Request
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request = {}

-- Read runtime size of: Inquire Mm Parameter Request
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Mm Parameter Request
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Mm Parameter Request
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.fields = function(buffer, offset, packet, parent, size_of_inquire_mm_parameter_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Inquire Mm Parameter Request
eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_mm_parameter_request = eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_mm_parameter_request then
    local range = buffer(offset, size_of_inquire_mm_parameter_request)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_mm_parameter_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.fields(buffer, offset, packet, parent, size_of_inquire_mm_parameter_request)

  return offset + size_of_inquire_mm_parameter_request
end

-- Party Id Origination Market
eurex_derivatives_eti_t7_v13_0.party_id_origination_market = {}

-- Size: Party Id Origination Market
eurex_derivatives_eti_t7_v13_0.party_id_origination_market.size = 1

-- Display: Party Id Origination Market
eurex_derivatives_eti_t7_v13_0.party_id_origination_market.display = function(value)
  if value == 1 then
    return "Party Id Origination Market: Xkfe (1)"
  end
  if value == 0xFF then
    return "Party Id Origination Market: No Value"
  end

  return "Party Id Origination Market: Unknown("..value..")"
end

-- Dissect: Party Id Origination Market
eurex_derivatives_eti_t7_v13_0.party_id_origination_market.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.party_id_origination_market.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.party_id_origination_market.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.party_id_origination_market, range, value, display)

  return offset + length, value
end

-- Enrichment Rules Grp Comp
eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp = {}

-- Size: Enrichment Rules Grp Comp
eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_origination_market.size + 
  eurex_derivatives_eti_t7_v13_0.account.size + 
  eurex_derivatives_eti_t7_v13_0.position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_1.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_2.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_3.size + 
  eurex_derivatives_eti_t7_v13_0.pad_1.size

-- Display: Enrichment Rules Grp Comp
eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Enrichment Rules Grp Comp
eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.fields = function(buffer, offset, packet, parent, enrichment_rules_grp_comp_index)
  local index = offset

  -- Implicit Enrichment Rules Grp Comp Index
  if enrichment_rules_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enrichment_rules_grp_comp_index, enrichment_rules_grp_comp_index)
    iteration:set_generated()
  end

  -- Enrichment Rule Id: 2 Byte Unsigned Fixed Width Integer Nullable
  index, enrichment_rule_id = eurex_derivatives_eti_t7_v13_0.enrichment_rule_id.dissect(buffer, index, packet, parent)

  -- Party Id Origination Market: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, party_id_origination_market = eurex_derivatives_eti_t7_v13_0.party_id_origination_market.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Enrichment Rules Grp Comp
eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.dissect = function(buffer, offset, packet, parent, enrichment_rules_grp_comp_index)
  if show.enrichment_rules_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enrichment_rules_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.fields(buffer, offset, packet, parent, enrichment_rules_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.fields(buffer, offset, packet, parent, enrichment_rules_grp_comp_index)
  end
end

-- No Enrichment Rules
eurex_derivatives_eti_t7_v13_0.no_enrichment_rules = {}

-- Size: No Enrichment Rules
eurex_derivatives_eti_t7_v13_0.no_enrichment_rules.size = 2

-- Display: No Enrichment Rules
eurex_derivatives_eti_t7_v13_0.no_enrichment_rules.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Enrichment Rules: No Value"
  end

  return "No Enrichment Rules: "..value
end

-- Dissect: No Enrichment Rules
eurex_derivatives_eti_t7_v13_0.no_enrichment_rules.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_enrichment_rules.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_enrichment_rules.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_enrichment_rules, range, value, display)

  return offset + length, value
end

-- Inquire Enrichment Rule Id List Response
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response = {}

-- Read runtime size of: Inquire Enrichment Rule Id List Response
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Enrichment Rule Id List Response
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Enrichment Rule Id List Response
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.fields = function(buffer, offset, packet, parent, size_of_inquire_enrichment_rule_id_list_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Last Entity Processed: 16 Byte
  index, last_entity_processed = eurex_derivatives_eti_t7_v13_0.last_entity_processed.dissect(buffer, index, packet, parent)

  -- No Enrichment Rules: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_enrichment_rules = eurex_derivatives_eti_t7_v13_0.no_enrichment_rules.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Enrichment Rules Grp Comp
  for enrichment_rules_grp_comp_index = 1, no_enrichment_rules do
    index, enrichment_rules_grp_comp = eurex_derivatives_eti_t7_v13_0.enrichment_rules_grp_comp.dissect(buffer, index, packet, parent, enrichment_rules_grp_comp_index)
  end

  return index
end

-- Dissect: Inquire Enrichment Rule Id List Response
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_enrichment_rule_id_list_response = eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_enrichment_rule_id_list_response then
    local range = buffer(offset, size_of_inquire_enrichment_rule_id_list_response)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_enrichment_rule_id_list_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.fields(buffer, offset, packet, parent, size_of_inquire_enrichment_rule_id_list_response)

  return offset + size_of_inquire_enrichment_rule_id_list_response
end

-- Inquire Enrichment Rule Id List Request
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request = {}

-- Read runtime size of: Inquire Enrichment Rule Id List Request
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Inquire Enrichment Rule Id List Request
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Inquire Enrichment Rule Id List Request
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.fields = function(buffer, offset, packet, parent, size_of_inquire_enrichment_rule_id_list_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Last Entity Processed: 16 Byte
  index, last_entity_processed = eurex_derivatives_eti_t7_v13_0.last_entity_processed.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Inquire Enrichment Rule Id List Request
eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_inquire_enrichment_rule_id_list_request = eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.inquire_enrichment_rule_id_list_request then
    local range = buffer(offset, size_of_inquire_enrichment_rule_id_list_request)
    local display = eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.inquire_enrichment_rule_id_list_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.fields(buffer, offset, packet, parent, size_of_inquire_enrichment_rule_id_list_request)

  return offset + size_of_inquire_enrichment_rule_id_list_request
end

-- Heartbeat Notification
eurex_derivatives_eti_t7_v13_0.heartbeat_notification = {}

-- Read runtime size of: Heartbeat Notification
eurex_derivatives_eti_t7_v13_0.heartbeat_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Heartbeat Notification
eurex_derivatives_eti_t7_v13_0.heartbeat_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Heartbeat Notification
eurex_derivatives_eti_t7_v13_0.heartbeat_notification.fields = function(buffer, offset, packet, parent, size_of_heartbeat_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Notif Header Comp: Struct of 1 fields
  index, notif_header_comp = eurex_derivatives_eti_t7_v13_0.notif_header_comp.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Heartbeat Notification
eurex_derivatives_eti_t7_v13_0.heartbeat_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_heartbeat_notification = eurex_derivatives_eti_t7_v13_0.heartbeat_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.heartbeat_notification then
    local range = buffer(offset, size_of_heartbeat_notification)
    local display = eurex_derivatives_eti_t7_v13_0.heartbeat_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.heartbeat_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.heartbeat_notification.fields(buffer, offset, packet, parent, size_of_heartbeat_notification)

  return offset + size_of_heartbeat_notification
end

-- Heartbeat
eurex_derivatives_eti_t7_v13_0.heartbeat = {}

-- Read runtime size of: Heartbeat
eurex_derivatives_eti_t7_v13_0.heartbeat.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Heartbeat
eurex_derivatives_eti_t7_v13_0.heartbeat.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Heartbeat
eurex_derivatives_eti_t7_v13_0.heartbeat.fields = function(buffer, offset, packet, parent, size_of_heartbeat)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Heartbeat
eurex_derivatives_eti_t7_v13_0.heartbeat.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_heartbeat = eurex_derivatives_eti_t7_v13_0.heartbeat.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.heartbeat then
    local range = buffer(offset, size_of_heartbeat)
    local display = eurex_derivatives_eti_t7_v13_0.heartbeat.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.heartbeat, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.heartbeat.fields(buffer, offset, packet, parent, size_of_heartbeat)

  return offset + size_of_heartbeat
end

-- Forced User Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification = {}

-- Read runtime size of: Forced User Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Forced User Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Forced User Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.fields = function(buffer, offset, packet, parent, size_of_forced_user_logout_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Notif Header Comp: Struct of 1 fields
  index, notif_header_comp = eurex_derivatives_eti_t7_v13_0.notif_header_comp.dissect(buffer, index, packet, parent)

  -- Username: 4 Byte Unsigned Fixed Width Integer Nullable
  index, username = eurex_derivatives_eti_t7_v13_0.username.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- User Status: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, user_status = eurex_derivatives_eti_t7_v13_0.user_status.dissect(buffer, index, packet, parent)

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Forced User Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_forced_user_logout_notification = eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.forced_user_logout_notification then
    local range = buffer(offset, size_of_forced_user_logout_notification)
    local display = eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.forced_user_logout_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.fields(buffer, offset, packet, parent, size_of_forced_user_logout_notification)

  return offset + size_of_forced_user_logout_notification
end

-- Forced Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_logout_notification = {}

-- Read runtime size of: Forced Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_logout_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Forced Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_logout_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Forced Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_logout_notification.fields = function(buffer, offset, packet, parent, size_of_forced_logout_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Notif Header Comp: Struct of 1 fields
  index, notif_header_comp = eurex_derivatives_eti_t7_v13_0.notif_header_comp.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Forced Logout Notification
eurex_derivatives_eti_t7_v13_0.forced_logout_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_forced_logout_notification = eurex_derivatives_eti_t7_v13_0.forced_logout_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.forced_logout_notification then
    local range = buffer(offset, size_of_forced_logout_notification)
    local display = eurex_derivatives_eti_t7_v13_0.forced_logout_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.forced_logout_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.forced_logout_notification.fields(buffer, offset, packet, parent, size_of_forced_logout_notification)

  return offset + size_of_forced_logout_notification
end

-- Enter Tes Trade Request
eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request = {}

-- Read runtime size of: Enter Tes Trade Request
eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Enter Tes Trade Request
eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Enter Tes Trade Request
eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.fields = function(buffer, offset, packet, parent, size_of_enter_tes_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Underlying Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_px = eurex_derivatives_eti_t7_v13_0.underlying_px.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Related Trade Quantity: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_quantity = eurex_derivatives_eti_t7_v13_0.related_trade_quantity.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Related Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_px = eurex_derivatives_eti_t7_v13_0.related_px.dissect(buffer, index, packet, parent)

  -- Underlying Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_qty = eurex_derivatives_eti_t7_v13_0.underlying_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Underlying Settlement Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_settlement_date = eurex_derivatives_eti_t7_v13_0.underlying_settlement_date.dissect(buffer, index, packet, parent)

  -- Underlying Maturity Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, underlying_maturity_date = eurex_derivatives_eti_t7_v13_0.underlying_maturity_date.dissect(buffer, index, packet, parent)

  -- Related Trade Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, related_trade_id = eurex_derivatives_eti_t7_v13_0.related_trade_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- No Side Allocs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_side_allocs = eurex_derivatives_eti_t7_v13_0.no_side_allocs.dissect(buffer, index, packet, parent)

  -- No Events: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_events = eurex_derivatives_eti_t7_v13_0.no_events.dissect(buffer, index, packet, parent)

  -- No Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_legs = eurex_derivatives_eti_t7_v13_0.no_legs.dissect(buffer, index, packet, parent)

  -- No Instr Attrib: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instr_attrib = eurex_derivatives_eti_t7_v13_0.no_instr_attrib.dissect(buffer, index, packet, parent)

  -- No Underlying Stips: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_underlying_stips = eurex_derivatives_eti_t7_v13_0.no_underlying_stips.dissect(buffer, index, packet, parent)

  -- Party Id Settlement Location: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, party_id_settlement_location = eurex_derivatives_eti_t7_v13_0.party_id_settlement_location.dissect(buffer, index, packet, parent)

  -- Hedge Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, hedge_type = eurex_derivatives_eti_t7_v13_0.hedge_type.dissect(buffer, index, packet, parent)

  -- Swap Clearer: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, swap_clearer = eurex_derivatives_eti_t7_v13_0.swap_clearer.dissect(buffer, index, packet, parent)

  -- Trade Report Text: 20 Byte Ascii String Nullable
  index, trade_report_text = eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Underlying Security Id: 12 Byte Ascii String Nullable
  index, underlying_security_id = eurex_derivatives_eti_t7_v13_0.underlying_security_id.dissect(buffer, index, packet, parent)

  -- Underlying Security Desc: 30 Byte Ascii String Nullable
  index, underlying_security_desc = eurex_derivatives_eti_t7_v13_0.underlying_security_desc.dissect(buffer, index, packet, parent)

  -- Underlying Currency: 3 Byte Ascii String Nullable
  index, underlying_currency = eurex_derivatives_eti_t7_v13_0.underlying_currency.dissect(buffer, index, packet, parent)

  -- Underlying Issuer: 30 Byte Ascii String Nullable
  index, underlying_issuer = eurex_derivatives_eti_t7_v13_0.underlying_issuer.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Repeating: Side Alloc Grp Comp
  for side_alloc_grp_comp_index = 1, no_side_allocs do
    index, side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.side_alloc_grp_comp.dissect(buffer, index, packet, parent, side_alloc_grp_comp_index)
  end

  -- Repeating: Trd Instrmnt Leg Grp Comp
  for trd_instrmnt_leg_grp_comp_index = 1, no_legs do
    index, trd_instrmnt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.trd_instrmnt_leg_grp_comp.dissect(buffer, index, packet, parent, trd_instrmnt_leg_grp_comp_index)
  end

  -- Repeating: Instrument Event Grp Comp
  for instrument_event_grp_comp_index = 1, no_events do
    index, instrument_event_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_event_grp_comp.dissect(buffer, index, packet, parent, instrument_event_grp_comp_index)
  end

  -- Repeating: Instrument Attribute Grp Comp
  for instrument_attribute_grp_comp_index = 1, no_instr_attrib do
    index, instrument_attribute_grp_comp = eurex_derivatives_eti_t7_v13_0.instrument_attribute_grp_comp.dissect(buffer, index, packet, parent, instrument_attribute_grp_comp_index)
  end

  -- Repeating: Underlying Stip Grp Comp
  for underlying_stip_grp_comp_index = 1, no_underlying_stips do
    index, underlying_stip_grp_comp = eurex_derivatives_eti_t7_v13_0.underlying_stip_grp_comp.dissect(buffer, index, packet, parent, underlying_stip_grp_comp_index)
  end

  return index
end

-- Dissect: Enter Tes Trade Request
eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_enter_tes_trade_request = eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.enter_tes_trade_request then
    local range = buffer(offset, size_of_enter_tes_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enter_tes_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.fields(buffer, offset, packet, parent, size_of_enter_tes_trade_request)

  return offset + size_of_enter_tes_trade_request
end

-- Leg Input Source
eurex_derivatives_eti_t7_v13_0.leg_input_source = {}

-- Size: Leg Input Source
eurex_derivatives_eti_t7_v13_0.leg_input_source.size = 1

-- Display: Leg Input Source
eurex_derivatives_eti_t7_v13_0.leg_input_source.display = function(value)
  if value == 1 then
    return "Leg Input Source: Client Broker (1)"
  end
  if value == 2 then
    return "Leg Input Source: Proprietary Broker (2)"
  end
  if value == 3 then
    return "Leg Input Source: Buy Side (3)"
  end
  if value == 4 then
    return "Leg Input Source: Sell Side (4)"
  end
  if value == 0xFF then
    return "Leg Input Source: No Value"
  end

  return "Leg Input Source: Unknown("..value..")"
end

-- Dissect: Leg Input Source
eurex_derivatives_eti_t7_v13_0.leg_input_source.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.leg_input_source.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.leg_input_source.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.leg_input_source, range, value, display)

  return offset + length, value
end

-- Side Cross Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp = {}

-- Size: Side Cross Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_input_source.size + 
  eurex_derivatives_eti_t7_v13_0.leg_position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.leg_account.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Side Cross Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Side Cross Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.fields = function(buffer, offset, packet, parent, side_cross_leg_grp_comp_index)
  local index = offset

  -- Implicit Side Cross Leg Grp Comp Index
  if side_cross_leg_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_cross_leg_grp_comp_index, side_cross_leg_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Input Source: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, leg_input_source = eurex_derivatives_eti_t7_v13_0.leg_input_source.dissect(buffer, index, packet, parent)

  -- Leg Position Effect: 1 Byte Ascii String Enum with 2 values
  index, leg_position_effect = eurex_derivatives_eti_t7_v13_0.leg_position_effect.dissect(buffer, index, packet, parent)

  -- Leg Account: 2 Byte Ascii String Nullable
  index, leg_account = eurex_derivatives_eti_t7_v13_0.leg_account.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Side Cross Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.dissect = function(buffer, offset, packet, parent, side_cross_leg_grp_comp_index)
  if show.side_cross_leg_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_cross_leg_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.fields(buffer, offset, packet, parent, side_cross_leg_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.fields(buffer, offset, packet, parent, side_cross_leg_grp_comp_index)
  end
end

-- Side Compliance Text
eurex_derivatives_eti_t7_v13_0.side_compliance_text = {}

-- Size: Side Compliance Text
eurex_derivatives_eti_t7_v13_0.side_compliance_text.size = 20

-- Display: Side Compliance Text
eurex_derivatives_eti_t7_v13_0.side_compliance_text.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Side Compliance Text: No Value"
  end

  return "Side Compliance Text: "..value
end

-- Dissect: Side Compliance Text
eurex_derivatives_eti_t7_v13_0.side_compliance_text.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.side_compliance_text.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.side_compliance_text.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.side_compliance_text, range, value, display)

  return offset + length, value
end

-- Input Source
eurex_derivatives_eti_t7_v13_0.input_source = {}

-- Size: Input Source
eurex_derivatives_eti_t7_v13_0.input_source.size = 1

-- Display: Input Source
eurex_derivatives_eti_t7_v13_0.input_source.display = function(value)
  if value == 1 then
    return "Input Source: Client Broker (1)"
  end
  if value == 2 then
    return "Input Source: Proprietary Broker (2)"
  end
  if value == 0xFF then
    return "Input Source: No Value"
  end

  return "Input Source: Unknown("..value..")"
end

-- Dissect: Input Source
eurex_derivatives_eti_t7_v13_0.input_source.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.input_source.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.input_source.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.input_source, range, value, display)

  return offset + length, value
end

-- Maximum Price
eurex_derivatives_eti_t7_v13_0.maximum_price = {}

-- Size: Maximum Price
eurex_derivatives_eti_t7_v13_0.maximum_price.size = 8

-- Display: Maximum Price
eurex_derivatives_eti_t7_v13_0.maximum_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Maximum Price: No Value"
  end

  return "Maximum Price: "..value
end

-- Translate: Maximum Price
eurex_derivatives_eti_t7_v13_0.maximum_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Maximum Price
eurex_derivatives_eti_t7_v13_0.maximum_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.maximum_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.maximum_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.maximum_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.maximum_price, range, value, display)

  return offset + length, value
end

-- Cross Request Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp = {}

-- Size: Cross Request Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.party_id_client_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.size + 
  eurex_derivatives_eti_t7_v13_0.executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.maximum_price.size + 
  eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.size + 
  eurex_derivatives_eti_t7_v13_0.input_source.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.size + 
  eurex_derivatives_eti_t7_v13_0.trading_capacity.size + 
  eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.size + 
  eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.size + 
  eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.size + 
  eurex_derivatives_eti_t7_v13_0.order_origination.size + 
  eurex_derivatives_eti_t7_v13_0.position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.size + 
  eurex_derivatives_eti_t7_v13_0.account.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_position_account.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_1.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_2.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_3.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.size + 
  eurex_derivatives_eti_t7_v13_0.side_compliance_text.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_location_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_end_client_identification.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Cross Request Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Cross Request Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.fields = function(buffer, offset, packet, parent, cross_request_side_grp_comp_index)
  local index = offset

  -- Implicit Cross Request Side Grp Comp Index
  if cross_request_side_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_side_grp_comp_index, cross_request_side_grp_comp_index)
    iteration:set_generated()
  end

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Maximum Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, maximum_price = eurex_derivatives_eti_t7_v13_0.maximum_price.dissect(buffer, index, packet, parent)

  -- Match Inst Cross Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, match_inst_cross_id = eurex_derivatives_eti_t7_v13_0.match_inst_cross_id.dissect(buffer, index, packet, parent)

  -- Input Source: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, input_source = eurex_derivatives_eti_t7_v13_0.input_source.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Self Match Prevention Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, self_match_prevention_instruction = eurex_derivatives_eti_t7_v13_0.self_match_prevention_instruction.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Side Compliance Text: 20 Byte Ascii String Nullable
  index, side_compliance_text = eurex_derivatives_eti_t7_v13_0.side_compliance_text.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Cross Request Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.dissect = function(buffer, offset, packet, parent, cross_request_side_grp_comp_index)
  if show.cross_request_side_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_side_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.fields(buffer, offset, packet, parent, cross_request_side_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.fields(buffer, offset, packet, parent, cross_request_side_grp_comp_index)
  end
end

-- Order Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.order_qty_disclosure_instruction = {}

-- Size: Order Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.order_qty_disclosure_instruction.size = 1

-- Display: Order Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.order_qty_disclosure_instruction.display = function(value)
  if value == 0 then
    return "Order Qty Disclosure Instruction: No (0)"
  end
  if value == 1 then
    return "Order Qty Disclosure Instruction: Yes (1)"
  end
  if value == 0xFF then
    return "Order Qty Disclosure Instruction: No Value"
  end

  return "Order Qty Disclosure Instruction: Unknown("..value..")"
end

-- Dissect: Order Qty Disclosure Instruction
eurex_derivatives_eti_t7_v13_0.order_qty_disclosure_instruction.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.order_qty_disclosure_instruction.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.order_qty_disclosure_instruction.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.order_qty_disclosure_instruction, range, value, display)

  return offset + length, value
end

-- Cross Prioritization
eurex_derivatives_eti_t7_v13_0.cross_prioritization = {}

-- Size: Cross Prioritization
eurex_derivatives_eti_t7_v13_0.cross_prioritization.size = 1

-- Display: Cross Prioritization
eurex_derivatives_eti_t7_v13_0.cross_prioritization.display = function(value)
  if value == 1 then
    return "Cross Prioritization: Buyside (1)"
  end
  if value == 2 then
    return "Cross Prioritization: Sellside (2)"
  end
  if value == 0xFF then
    return "Cross Prioritization: No Value"
  end

  return "Cross Prioritization: Unknown("..value..")"
end

-- Dissect: Cross Prioritization
eurex_derivatives_eti_t7_v13_0.cross_prioritization.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cross_prioritization.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.cross_prioritization.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_prioritization, range, value, display)

  return offset + length, value
end

-- Cross Type
eurex_derivatives_eti_t7_v13_0.cross_type = {}

-- Size: Cross Type
eurex_derivatives_eti_t7_v13_0.cross_type.size = 1

-- Display: Cross Type
eurex_derivatives_eti_t7_v13_0.cross_type.display = function(value)
  if value == 2 then
    return "Cross Type: Cross Ioc (2)"
  end
  if value == 3 then
    return "Cross Type: Crossoneside (3)"
  end
  if value == 0xFF then
    return "Cross Type: No Value"
  end

  return "Cross Type: Unknown("..value..")"
end

-- Dissect: Cross Type
eurex_derivatives_eti_t7_v13_0.cross_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cross_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.cross_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_type, range, value, display)

  return offset + length, value
end

-- Cross Request Type
eurex_derivatives_eti_t7_v13_0.cross_request_type = {}

-- Size: Cross Request Type
eurex_derivatives_eti_t7_v13_0.cross_request_type.size = 1

-- Display: Cross Request Type
eurex_derivatives_eti_t7_v13_0.cross_request_type.display = function(value)
  if value == 1 then
    return "Cross Request Type: Cross (1)"
  end
  if value == 2 then
    return "Cross Request Type: Clip (2)"
  end
  if value == 0xFF then
    return "Cross Request Type: No Value"
  end

  return "Cross Request Type: Unknown("..value..")"
end

-- Dissect: Cross Request Type
eurex_derivatives_eti_t7_v13_0.cross_request_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cross_request_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.cross_request_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_type, range, value, display)

  return offset + length, value
end

-- No Cross Legs
eurex_derivatives_eti_t7_v13_0.no_cross_legs = {}

-- Size: No Cross Legs
eurex_derivatives_eti_t7_v13_0.no_cross_legs.size = 1

-- Display: No Cross Legs
eurex_derivatives_eti_t7_v13_0.no_cross_legs.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Cross Legs: No Value"
  end

  return "No Cross Legs: "..value
end

-- Dissect: No Cross Legs
eurex_derivatives_eti_t7_v13_0.no_cross_legs.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_cross_legs.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_cross_legs.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_cross_legs, range, value, display)

  return offset + length, value
end

-- No Sides
eurex_derivatives_eti_t7_v13_0.no_sides = {}

-- Size: No Sides
eurex_derivatives_eti_t7_v13_0.no_sides.size = 1

-- Display: No Sides
eurex_derivatives_eti_t7_v13_0.no_sides.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Sides: No Value"
  end

  return "No Sides: "..value
end

-- Dissect: No Sides
eurex_derivatives_eti_t7_v13_0.no_sides.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_sides.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_sides.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_sides, range, value, display)

  return offset + length, value
end

-- Cross Request Id
eurex_derivatives_eti_t7_v13_0.cross_request_id = {}

-- Size: Cross Request Id
eurex_derivatives_eti_t7_v13_0.cross_request_id.size = 4

-- Display: Cross Request Id
eurex_derivatives_eti_t7_v13_0.cross_request_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Cross Request Id: No Value"
  end

  return "Cross Request Id: "..value
end

-- Dissect: Cross Request Id
eurex_derivatives_eti_t7_v13_0.cross_request_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cross_request_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.cross_request_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_id, range, value, display)

  return offset + length, value
end

-- Cross Id
eurex_derivatives_eti_t7_v13_0.cross_id = {}

-- Size: Cross Id
eurex_derivatives_eti_t7_v13_0.cross_id.size = 4

-- Display: Cross Id
eurex_derivatives_eti_t7_v13_0.cross_id.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Cross Id: No Value"
  end

  return "Cross Id: "..value
end

-- Dissect: Cross Id
eurex_derivatives_eti_t7_v13_0.cross_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.cross_id.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.cross_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_id, range, value, display)

  return offset + length, value
end

-- Enter Clip Request
eurex_derivatives_eti_t7_v13_0.enter_clip_request = {}

-- Read runtime size of: Enter Clip Request
eurex_derivatives_eti_t7_v13_0.enter_clip_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Enter Clip Request
eurex_derivatives_eti_t7_v13_0.enter_clip_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Enter Clip Request
eurex_derivatives_eti_t7_v13_0.enter_clip_request.fields = function(buffer, offset, packet, parent, size_of_enter_clip_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Cross Id: 4 Byte Signed Fixed Width Integer Nullable
  index, cross_id = eurex_derivatives_eti_t7_v13_0.cross_id.dissect(buffer, index, packet, parent)

  -- Cross Request Id: 4 Byte Signed Fixed Width Integer Nullable
  index, cross_request_id = eurex_derivatives_eti_t7_v13_0.cross_request_id.dissect(buffer, index, packet, parent)

  -- No Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_sides = eurex_derivatives_eti_t7_v13_0.no_sides.dissect(buffer, index, packet, parent)

  -- No Cross Legs: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_cross_legs = eurex_derivatives_eti_t7_v13_0.no_cross_legs.dissect(buffer, index, packet, parent)

  -- Cross Request Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, cross_request_type = eurex_derivatives_eti_t7_v13_0.cross_request_type.dissect(buffer, index, packet, parent)

  -- Cross Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, cross_type = eurex_derivatives_eti_t7_v13_0.cross_type.dissect(buffer, index, packet, parent)

  -- Cross Prioritization: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, cross_prioritization = eurex_derivatives_eti_t7_v13_0.cross_prioritization.dissect(buffer, index, packet, parent)

  -- Side Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.side_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Price Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, price_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.price_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Order Qty Disclosure Instruction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_qty_disclosure_instruction = eurex_derivatives_eti_t7_v13_0.order_qty_disclosure_instruction.dissect(buffer, index, packet, parent)

  -- Price Validity Check Type: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, price_validity_check_type = eurex_derivatives_eti_t7_v13_0.price_validity_check_type.dissect(buffer, index, packet, parent)

  -- Value Check Type Value: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, value_check_type_value = eurex_derivatives_eti_t7_v13_0.value_check_type_value.dissect(buffer, index, packet, parent)

  -- Root Party Contra Firm: 5 Byte Ascii String Nullable
  index, root_party_contra_firm = eurex_derivatives_eti_t7_v13_0.root_party_contra_firm.dissect(buffer, index, packet, parent)

  -- Root Party Contra Trader: 6 Byte Ascii String Nullable
  index, root_party_contra_trader = eurex_derivatives_eti_t7_v13_0.root_party_contra_trader.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Cross Request Side Grp Comp
  for cross_request_side_grp_comp_index = 1, no_sides do
    index, cross_request_side_grp_comp = eurex_derivatives_eti_t7_v13_0.cross_request_side_grp_comp.dissect(buffer, index, packet, parent, cross_request_side_grp_comp_index)
  end

  -- Repeating: Side Cross Leg Grp Comp
  for side_cross_leg_grp_comp_index = 1, no_cross_legs do
    index, side_cross_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.side_cross_leg_grp_comp.dissect(buffer, index, packet, parent, side_cross_leg_grp_comp_index)
  end

  return index
end

-- Dissect: Enter Clip Request
eurex_derivatives_eti_t7_v13_0.enter_clip_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_enter_clip_request = eurex_derivatives_eti_t7_v13_0.enter_clip_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.enter_clip_request then
    local range = buffer(offset, size_of_enter_clip_request)
    local display = eurex_derivatives_eti_t7_v13_0.enter_clip_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enter_clip_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.enter_clip_request.fields(buffer, offset, packet, parent, size_of_enter_clip_request)

  return offset + size_of_enter_clip_request
end

-- Basket Anonymity
eurex_derivatives_eti_t7_v13_0.basket_anonymity = {}

-- Size: Basket Anonymity
eurex_derivatives_eti_t7_v13_0.basket_anonymity.size = 1

-- Display: Basket Anonymity
eurex_derivatives_eti_t7_v13_0.basket_anonymity.display = function(value)
  if value == 0 then
    return "Basket Anonymity: No (0)"
  end
  if value == 1 then
    return "Basket Anonymity: Yes (1)"
  end
  if value == 0xFF then
    return "Basket Anonymity: No Value"
  end

  return "Basket Anonymity: Unknown("..value..")"
end

-- Dissect: Basket Anonymity
eurex_derivatives_eti_t7_v13_0.basket_anonymity.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_anonymity.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.basket_anonymity.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_anonymity, range, value, display)

  return offset + length, value
end

-- Basket Trade Report Type
eurex_derivatives_eti_t7_v13_0.basket_trade_report_type = {}

-- Size: Basket Trade Report Type
eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.size = 1

-- Display: Basket Trade Report Type
eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.display = function(value)
  if value == 0 then
    return "Basket Trade Report Type: Submit (0)"
  end
  if value == 4 then
    return "Basket Trade Report Type: Addendum (4)"
  end
  if value == 5 then
    return "Basket Trade Report Type: No Was Substitue (5)"
  end
  if value == 19 then
    return "Basket Trade Report Type: Terminate (19)"
  end
  if value == 0xFF then
    return "Basket Trade Report Type: No Value"
  end

  return "Basket Trade Report Type: Unknown("..value..")"
end

-- Dissect: Basket Trade Report Type
eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_trade_report_type, range, value, display)

  return offset + length, value
end

-- Enter Basket Trade Request
eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request = {}

-- Read runtime size of: Enter Basket Trade Request
eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Enter Basket Trade Request
eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Enter Basket Trade Request
eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.fields = function(buffer, offset, packet, parent, size_of_enter_basket_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- No Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- No Basket Root Party Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_root_party_grps = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.dissect(buffer, index, packet, parent)

  -- No Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- Basket Anonymity: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, basket_anonymity = eurex_derivatives_eti_t7_v13_0.basket_anonymity.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Root Party Grp Comp
  for basket_root_party_grp_comp_index = 1, no_basket_root_party_grps do
    index, basket_root_party_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect(buffer, index, packet, parent, basket_root_party_grp_comp_index)
  end

  -- Repeating: Instrmt Match Side Grp Comp
  for instrmt_match_side_grp_comp_index = 1, no_instrmt_match_sides do
    index, instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, instrmt_match_side_grp_comp_index)
  end

  -- Repeating: Basket Side Alloc Grp Comp
  for basket_side_alloc_grp_comp_index = 1, no_basket_side_alloc do
    index, basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, basket_side_alloc_grp_comp_index)
  end

  return index
end

-- Dissect: Enter Basket Trade Request
eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_enter_basket_trade_request = eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.enter_basket_trade_request then
    local range = buffer(offset, size_of_enter_basket_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.enter_basket_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.fields(buffer, offset, packet, parent, size_of_enter_basket_trade_request)

  return offset + size_of_enter_basket_trade_request
end

-- Delete Tes Trade Request
eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request = {}

-- Read runtime size of: Delete Tes Trade Request
eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Tes Trade Request
eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Tes Trade Request
eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.fields = function(buffer, offset, packet, parent, size_of_delete_tes_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Tes Trade Request
eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_tes_trade_request = eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_tes_trade_request then
    local range = buffer(offset, size_of_delete_tes_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_tes_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.fields(buffer, offset, packet, parent, size_of_delete_tes_trade_request)

  return offset + size_of_delete_tes_trade_request
end

-- Delete Order Single Request
eurex_derivatives_eti_t7_v13_0.delete_order_single_request = {}

-- Read runtime size of: Delete Order Single Request
eurex_derivatives_eti_t7_v13_0.delete_order_single_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Order Single Request
eurex_derivatives_eti_t7_v13_0.delete_order_single_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Order Single Request
eurex_derivatives_eti_t7_v13_0.delete_order_single_request.fields = function(buffer, offset, packet, parent, size_of_delete_order_single_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Order Single Request
eurex_derivatives_eti_t7_v13_0.delete_order_single_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_order_single_request = eurex_derivatives_eti_t7_v13_0.delete_order_single_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_order_single_request then
    local range = buffer(offset, size_of_delete_order_single_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_order_single_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_single_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_order_single_request.fields(buffer, offset, packet, parent, size_of_delete_order_single_request)

  return offset + size_of_delete_order_single_request
end

-- Delete Order Response
eurex_derivatives_eti_t7_v13_0.delete_order_response = {}

-- Read runtime size of: Delete Order Response
eurex_derivatives_eti_t7_v13_0.delete_order_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Order Response
eurex_derivatives_eti_t7_v13_0.delete_order_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Order Response
eurex_derivatives_eti_t7_v13_0.delete_order_response.fields = function(buffer, offset, packet, parent, size_of_delete_order_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Me Comp: Struct of 10 fields
  index, response_header_me_comp = eurex_derivatives_eti_t7_v13_0.response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Transaction Delay Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transaction_delay_indicator = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Order Response
eurex_derivatives_eti_t7_v13_0.delete_order_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_order_response = eurex_derivatives_eti_t7_v13_0.delete_order_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_order_response then
    local range = buffer(offset, size_of_delete_order_response)
    local display = eurex_derivatives_eti_t7_v13_0.delete_order_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_order_response.fields(buffer, offset, packet, parent, size_of_delete_order_response)

  return offset + size_of_delete_order_response
end

-- Delete Order Request
eurex_derivatives_eti_t7_v13_0.delete_order_request = {}

-- Read runtime size of: Delete Order Request
eurex_derivatives_eti_t7_v13_0.delete_order_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Order Request
eurex_derivatives_eti_t7_v13_0.delete_order_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Order Request
eurex_derivatives_eti_t7_v13_0.delete_order_request.fields = function(buffer, offset, packet, parent, size_of_delete_order_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Order Request
eurex_derivatives_eti_t7_v13_0.delete_order_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_order_request = eurex_derivatives_eti_t7_v13_0.delete_order_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_order_request then
    local range = buffer(offset, size_of_delete_order_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_order_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_order_request.fields(buffer, offset, packet, parent, size_of_delete_order_request)

  return offset + size_of_delete_order_request
end

-- Delete Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_order_nr_response = {}

-- Read runtime size of: Delete Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.fields = function(buffer, offset, packet, parent, size_of_delete_order_nr_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Transaction Delay Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, transaction_delay_indicator = eurex_derivatives_eti_t7_v13_0.transaction_delay_indicator.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_order_nr_response = eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_order_nr_response then
    local range = buffer(offset, size_of_delete_order_nr_response)
    local display = eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_nr_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.fields(buffer, offset, packet, parent, size_of_delete_order_nr_response)

  return offset + size_of_delete_order_nr_response
end

-- Delete Order Complex Request
eurex_derivatives_eti_t7_v13_0.delete_order_complex_request = {}

-- Read runtime size of: Delete Order Complex Request
eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Order Complex Request
eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Order Complex Request
eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.fields = function(buffer, offset, packet, parent, size_of_delete_order_complex_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Order Complex Request
eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_order_complex_request = eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_order_complex_request then
    local range = buffer(offset, size_of_delete_order_complex_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_complex_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.fields(buffer, offset, packet, parent, size_of_delete_order_complex_request)

  return offset + size_of_delete_order_complex_request
end

-- Delete Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_order_broadcast = {}

-- Read runtime size of: Delete Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.fields = function(buffer, offset, packet, parent, size_of_delete_order_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cl_ord_id = eurex_derivatives_eti_t7_v13_0.cl_ord_id.dissect(buffer, index, packet, parent)

  -- Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.orig_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Party Id Entering Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_entering_trader = eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.dissect(buffer, index, packet, parent)

  -- Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_session_id = eurex_derivatives_eti_t7_v13_0.party_id_session_id.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Fix Cl Ord Id: 20 Byte Ascii String Nullable
  index, fix_cl_ord_id = eurex_derivatives_eti_t7_v13_0.fix_cl_ord_id.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_order_broadcast = eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_order_broadcast then
    local range = buffer(offset, size_of_delete_order_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_order_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.fields(buffer, offset, packet, parent, size_of_delete_order_broadcast)

  return offset + size_of_delete_order_broadcast
end

-- Delete Clip Request
eurex_derivatives_eti_t7_v13_0.delete_clip_request = {}

-- Read runtime size of: Delete Clip Request
eurex_derivatives_eti_t7_v13_0.delete_clip_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Clip Request
eurex_derivatives_eti_t7_v13_0.delete_clip_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Clip Request
eurex_derivatives_eti_t7_v13_0.delete_clip_request.fields = function(buffer, offset, packet, parent, size_of_delete_clip_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Cross Request Id: 4 Byte Signed Fixed Width Integer Nullable
  index, cross_request_id = eurex_derivatives_eti_t7_v13_0.cross_request_id.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Clip Request
eurex_derivatives_eti_t7_v13_0.delete_clip_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_clip_request = eurex_derivatives_eti_t7_v13_0.delete_clip_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_clip_request then
    local range = buffer(offset, size_of_delete_clip_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_clip_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_clip_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_clip_request.fields(buffer, offset, packet, parent, size_of_delete_clip_request)

  return offset + size_of_delete_clip_request
end

-- Delete Basket Trade Request
eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request = {}

-- Read runtime size of: Delete Basket Trade Request
eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete Basket Trade Request
eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete Basket Trade Request
eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.fields = function(buffer, offset, packet, parent, size_of_delete_basket_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete Basket Trade Request
eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_basket_trade_request = eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_basket_trade_request then
    local range = buffer(offset, size_of_delete_basket_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_basket_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.fields(buffer, offset, packet, parent, size_of_delete_basket_trade_request)

  return offset + size_of_delete_basket_trade_request
end

-- Delete All Quote Response
eurex_derivatives_eti_t7_v13_0.delete_all_quote_response = {}

-- Read runtime size of: Delete All Quote Response
eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Quote Response
eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Quote Response
eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.fields = function(buffer, offset, packet, parent, size_of_delete_all_quote_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  -- No Not Affected Securities: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_not_affected_securities = eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Not Affected Securities Grp Comp
  for not_affected_securities_grp_comp_index = 1, no_not_affected_securities do
    index, not_affected_securities_grp_comp = eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.dissect(buffer, index, packet, parent, not_affected_securities_grp_comp_index)
  end

  return index
end

-- Dissect: Delete All Quote Response
eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_quote_response = eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_quote_response then
    local range = buffer(offset, size_of_delete_all_quote_response)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_quote_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.fields(buffer, offset, packet, parent, size_of_delete_all_quote_response)

  return offset + size_of_delete_all_quote_response
end

-- Delete All Quote Request
eurex_derivatives_eti_t7_v13_0.delete_all_quote_request = {}

-- Read runtime size of: Delete All Quote Request
eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Quote Request
eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Quote Request
eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.fields = function(buffer, offset, packet, parent, size_of_delete_all_quote_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete All Quote Request
eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_quote_request = eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_quote_request then
    local range = buffer(offset, size_of_delete_all_quote_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_quote_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.fields(buffer, offset, packet, parent, size_of_delete_all_quote_request)

  return offset + size_of_delete_all_quote_request
end

-- Target Party Id Desk Id
eurex_derivatives_eti_t7_v13_0.target_party_id_desk_id = {}

-- Size: Target Party Id Desk Id
eurex_derivatives_eti_t7_v13_0.target_party_id_desk_id.size = 3

-- Display: Target Party Id Desk Id
eurex_derivatives_eti_t7_v13_0.target_party_id_desk_id.display = function(value)
  -- Check if field has value
  if value == nil or value == '' then
    return "Target Party Id Desk Id: No Value"
  end

  return "Target Party Id Desk Id: "..value
end

-- Dissect: Target Party Id Desk Id
eurex_derivatives_eti_t7_v13_0.target_party_id_desk_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.target_party_id_desk_id.size
  local range = buffer(offset, length)
  local value = trim_right_spaces(range:string())
  local display = eurex_derivatives_eti_t7_v13_0.target_party_id_desk_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.target_party_id_desk_id, range, value, display)

  return offset + length, value
end

-- Delete All Quote Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast = {}

-- Read runtime size of: Delete All Quote Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Quote Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Quote Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.fields = function(buffer, offset, packet, parent, size_of_delete_all_quote_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Party Id Entering Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_entering_trader = eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.dissect(buffer, index, packet, parent)

  -- Target Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- No Not Affected Securities: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_not_affected_securities = eurex_derivatives_eti_t7_v13_0.no_not_affected_securities.dissect(buffer, index, packet, parent)

  -- Mass Action Reason: 1 Byte Unsigned Fixed Width Integer Enum with 17 values
  index, mass_action_reason = eurex_derivatives_eti_t7_v13_0.mass_action_reason.dissect(buffer, index, packet, parent)

  -- Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect(buffer, index, packet, parent)

  -- Target Party Id Desk Id: 3 Byte Ascii String Nullable
  index, target_party_id_desk_id = eurex_derivatives_eti_t7_v13_0.target_party_id_desk_id.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- Repeating: Not Affected Securities Grp Comp
  for not_affected_securities_grp_comp_index = 1, no_not_affected_securities do
    index, not_affected_securities_grp_comp = eurex_derivatives_eti_t7_v13_0.not_affected_securities_grp_comp.dissect(buffer, index, packet, parent, not_affected_securities_grp_comp_index)
  end

  return index
end

-- Dissect: Delete All Quote Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_quote_broadcast = eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_quote_broadcast then
    local range = buffer(offset, size_of_delete_all_quote_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_quote_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.fields(buffer, offset, packet, parent, size_of_delete_all_quote_broadcast)

  return offset + size_of_delete_all_quote_broadcast
end

-- Affected Order Request Id
eurex_derivatives_eti_t7_v13_0.affected_order_request_id = {}

-- Size: Affected Order Request Id
eurex_derivatives_eti_t7_v13_0.affected_order_request_id.size = 4

-- Display: Affected Order Request Id
eurex_derivatives_eti_t7_v13_0.affected_order_request_id.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Affected Order Request Id: No Value"
  end

  return "Affected Order Request Id: "..value
end

-- Dissect: Affected Order Request Id
eurex_derivatives_eti_t7_v13_0.affected_order_request_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.affected_order_request_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.affected_order_request_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.affected_order_request_id, range, value, display)

  return offset + length, value
end

-- Affected Order Requests Grp Comp
eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp = {}

-- Size: Affected Order Requests Grp Comp
eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.affected_order_request_id.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Affected Order Requests Grp Comp
eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Affected Order Requests Grp Comp
eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.fields = function(buffer, offset, packet, parent, affected_order_requests_grp_comp_index)
  local index = offset

  -- Implicit Affected Order Requests Grp Comp Index
  if affected_order_requests_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.affected_order_requests_grp_comp_index, affected_order_requests_grp_comp_index)
    iteration:set_generated()
  end

  -- Affected Order Request Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, affected_order_request_id = eurex_derivatives_eti_t7_v13_0.affected_order_request_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Affected Order Requests Grp Comp
eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.dissect = function(buffer, offset, packet, parent, affected_order_requests_grp_comp_index)
  if show.affected_order_requests_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.affected_order_requests_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.fields(buffer, offset, packet, parent, affected_order_requests_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.fields(buffer, offset, packet, parent, affected_order_requests_grp_comp_index)
  end
end

-- Not Aff Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id = {}

-- Size: Not Aff Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id.size = 8

-- Display: Not Aff Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Not Aff Orig Cl Ord Id: No Value"
  end

  return "Not Aff Orig Cl Ord Id: "..value
end

-- Dissect: Not Aff Orig Cl Ord Id
eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.not_aff_orig_cl_ord_id, range, value, display)

  return offset + length, value
end

-- Not Affected Order Id
eurex_derivatives_eti_t7_v13_0.not_affected_order_id = {}

-- Size: Not Affected Order Id
eurex_derivatives_eti_t7_v13_0.not_affected_order_id.size = 8

-- Display: Not Affected Order Id
eurex_derivatives_eti_t7_v13_0.not_affected_order_id.display = function(value)
  -- Check if field has value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Not Affected Order Id: No Value"
  end

  return "Not Affected Order Id: "..value
end

-- Dissect: Not Affected Order Id
eurex_derivatives_eti_t7_v13_0.not_affected_order_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.not_affected_order_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.not_affected_order_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_order_id, range, value, display)

  return offset + length, value
end

-- Not Affected Orders Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp = {}

-- Size: Not Affected Orders Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.not_affected_order_id.size + 
  eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id.size

-- Display: Not Affected Orders Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Not Affected Orders Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.fields = function(buffer, offset, packet, parent, not_affected_orders_grp_comp_index)
  local index = offset

  -- Implicit Not Affected Orders Grp Comp Index
  if not_affected_orders_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_orders_grp_comp_index, not_affected_orders_grp_comp_index)
    iteration:set_generated()
  end

  -- Not Affected Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, not_affected_order_id = eurex_derivatives_eti_t7_v13_0.not_affected_order_id.dissect(buffer, index, packet, parent)

  -- Not Aff Orig Cl Ord Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, not_aff_orig_cl_ord_id = eurex_derivatives_eti_t7_v13_0.not_aff_orig_cl_ord_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Not Affected Orders Grp Comp
eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.dissect = function(buffer, offset, packet, parent, not_affected_orders_grp_comp_index)
  if show.not_affected_orders_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.not_affected_orders_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.fields(buffer, offset, packet, parent, not_affected_orders_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.fields(buffer, offset, packet, parent, not_affected_orders_grp_comp_index)
  end
end

-- No Affected Order Requests
eurex_derivatives_eti_t7_v13_0.no_affected_order_requests = {}

-- Size: No Affected Order Requests
eurex_derivatives_eti_t7_v13_0.no_affected_order_requests.size = 2

-- Display: No Affected Order Requests
eurex_derivatives_eti_t7_v13_0.no_affected_order_requests.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Affected Order Requests: No Value"
  end

  return "No Affected Order Requests: "..value
end

-- Dissect: No Affected Order Requests
eurex_derivatives_eti_t7_v13_0.no_affected_order_requests.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_affected_order_requests.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_affected_order_requests.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_affected_order_requests, range, value, display)

  return offset + length, value
end

-- No Not Affected Orders
eurex_derivatives_eti_t7_v13_0.no_not_affected_orders = {}

-- Size: No Not Affected Orders
eurex_derivatives_eti_t7_v13_0.no_not_affected_orders.size = 2

-- Display: No Not Affected Orders
eurex_derivatives_eti_t7_v13_0.no_not_affected_orders.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Not Affected Orders: No Value"
  end

  return "No Not Affected Orders: "..value
end

-- Dissect: No Not Affected Orders
eurex_derivatives_eti_t7_v13_0.no_not_affected_orders.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_not_affected_orders.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_not_affected_orders.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_not_affected_orders, range, value, display)

  return offset + length, value
end

-- Delete All Order Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_response = {}

-- Read runtime size of: Delete All Order Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Order Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Order Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_response.fields = function(buffer, offset, packet, parent, size_of_delete_all_order_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Me Comp: Struct of 10 fields
  index, response_header_me_comp = eurex_derivatives_eti_t7_v13_0.response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  -- No Not Affected Orders: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_not_affected_orders = eurex_derivatives_eti_t7_v13_0.no_not_affected_orders.dissect(buffer, index, packet, parent)

  -- No Affected Order Requests: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_affected_order_requests = eurex_derivatives_eti_t7_v13_0.no_affected_order_requests.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Repeating: Not Affected Orders Grp Comp
  for not_affected_orders_grp_comp_index = 1, no_not_affected_orders do
    index, not_affected_orders_grp_comp = eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.dissect(buffer, index, packet, parent, not_affected_orders_grp_comp_index)
  end

  -- Repeating: Affected Order Requests Grp Comp
  for affected_order_requests_grp_comp_index = 1, no_affected_order_requests do
    index, affected_order_requests_grp_comp = eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.dissect(buffer, index, packet, parent, affected_order_requests_grp_comp_index)
  end

  return index
end

-- Dissect: Delete All Order Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_order_response = eurex_derivatives_eti_t7_v13_0.delete_all_order_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_order_response then
    local range = buffer(offset, size_of_delete_all_order_response)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_order_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_order_response.fields(buffer, offset, packet, parent, size_of_delete_all_order_response)

  return offset + size_of_delete_all_order_response
end

-- Delete All Order Request
eurex_derivatives_eti_t7_v13_0.delete_all_order_request = {}

-- Read runtime size of: Delete All Order Request
eurex_derivatives_eti_t7_v13_0.delete_all_order_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Order Request
eurex_derivatives_eti_t7_v13_0.delete_all_order_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Order Request
eurex_derivatives_eti_t7_v13_0.delete_all_order_request.fields = function(buffer, offset, packet, parent, size_of_delete_all_order_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete All Order Request
eurex_derivatives_eti_t7_v13_0.delete_all_order_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_order_request = eurex_derivatives_eti_t7_v13_0.delete_all_order_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_order_request then
    local range = buffer(offset, size_of_delete_all_order_request)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_order_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_order_request.fields(buffer, offset, packet, parent, size_of_delete_all_order_request)

  return offset + size_of_delete_all_order_request
end

-- Delete All Order Quote Event Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast = {}

-- Read runtime size of: Delete All Order Quote Event Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Order Quote Event Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Order Quote Event Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.fields = function(buffer, offset, packet, parent, size_of_delete_all_order_quote_event_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Mass Action Reason: 1 Byte Unsigned Fixed Width Integer Enum with 17 values
  index, mass_action_reason = eurex_derivatives_eti_t7_v13_0.mass_action_reason.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete All Order Quote Event Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_order_quote_event_broadcast = eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_order_quote_event_broadcast then
    local range = buffer(offset, size_of_delete_all_order_quote_event_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_quote_event_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.fields(buffer, offset, packet, parent, size_of_delete_all_order_quote_event_broadcast)

  return offset + size_of_delete_all_order_quote_event_broadcast
end

-- Delete All Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response = {}

-- Read runtime size of: Delete All Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.fields = function(buffer, offset, packet, parent, size_of_delete_all_order_nr_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Delete All Order Nr Response
eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_order_nr_response = eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_order_nr_response then
    local range = buffer(offset, size_of_delete_all_order_nr_response)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_nr_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.fields(buffer, offset, packet, parent, size_of_delete_all_order_nr_response)

  return offset + size_of_delete_all_order_nr_response
end

-- Delete All Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast = {}

-- Read runtime size of: Delete All Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Delete All Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Delete All Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.fields = function(buffer, offset, packet, parent, size_of_delete_all_order_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Mass Action Report Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, mass_action_report_id = eurex_derivatives_eti_t7_v13_0.mass_action_report_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, price = eurex_derivatives_eti_t7_v13_0.price.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Session Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_session_id = eurex_derivatives_eti_t7_v13_0.target_party_id_session_id.dissect(buffer, index, packet, parent)

  -- Target Party Id Executing Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, target_party_id_executing_trader = eurex_derivatives_eti_t7_v13_0.target_party_id_executing_trader.dissect(buffer, index, packet, parent)

  -- Party Id Entering Trader: 4 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_entering_trader = eurex_derivatives_eti_t7_v13_0.party_id_entering_trader.dissect(buffer, index, packet, parent)

  -- No Not Affected Orders: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_not_affected_orders = eurex_derivatives_eti_t7_v13_0.no_not_affected_orders.dissect(buffer, index, packet, parent)

  -- No Affected Order Requests: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_affected_order_requests = eurex_derivatives_eti_t7_v13_0.no_affected_order_requests.dissect(buffer, index, packet, parent)

  -- Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect(buffer, index, packet, parent)

  -- Mass Action Reason: 1 Byte Unsigned Fixed Width Integer Enum with 17 values
  index, mass_action_reason = eurex_derivatives_eti_t7_v13_0.mass_action_reason.dissect(buffer, index, packet, parent)

  -- Exec Inst: 1 Byte Unsigned Fixed Width Integer Enum with 6 values
  index, exec_inst = eurex_derivatives_eti_t7_v13_0.exec_inst.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Repeating: Not Affected Orders Grp Comp
  for not_affected_orders_grp_comp_index = 1, no_not_affected_orders do
    index, not_affected_orders_grp_comp = eurex_derivatives_eti_t7_v13_0.not_affected_orders_grp_comp.dissect(buffer, index, packet, parent, not_affected_orders_grp_comp_index)
  end

  -- Repeating: Affected Order Requests Grp Comp
  for affected_order_requests_grp_comp_index = 1, no_affected_order_requests do
    index, affected_order_requests_grp_comp = eurex_derivatives_eti_t7_v13_0.affected_order_requests_grp_comp.dissect(buffer, index, packet, parent, affected_order_requests_grp_comp_index)
  end

  return index
end

-- Dissect: Delete All Order Broadcast
eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_delete_all_order_broadcast = eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.delete_all_order_broadcast then
    local range = buffer(offset, size_of_delete_all_order_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.delete_all_order_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.fields(buffer, offset, packet, parent, size_of_delete_all_order_broadcast)

  return offset + size_of_delete_all_order_broadcast
end

-- Cross Request Response
eurex_derivatives_eti_t7_v13_0.cross_request_response = {}

-- Read runtime size of: Cross Request Response
eurex_derivatives_eti_t7_v13_0.cross_request_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Cross Request Response
eurex_derivatives_eti_t7_v13_0.cross_request_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Cross Request Response
eurex_derivatives_eti_t7_v13_0.cross_request_response.fields = function(buffer, offset, packet, parent, size_of_cross_request_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Cross Request Response
eurex_derivatives_eti_t7_v13_0.cross_request_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_cross_request_response = eurex_derivatives_eti_t7_v13_0.cross_request_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.cross_request_response then
    local range = buffer(offset, size_of_cross_request_response)
    local display = eurex_derivatives_eti_t7_v13_0.cross_request_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.cross_request_response.fields(buffer, offset, packet, parent, size_of_cross_request_response)

  return offset + size_of_cross_request_response
end

-- Cross Request
eurex_derivatives_eti_t7_v13_0.cross_request = {}

-- Read runtime size of: Cross Request
eurex_derivatives_eti_t7_v13_0.cross_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Cross Request
eurex_derivatives_eti_t7_v13_0.cross_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Cross Request
eurex_derivatives_eti_t7_v13_0.cross_request.fields = function(buffer, offset, packet, parent, size_of_cross_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Order Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_qty = eurex_derivatives_eti_t7_v13_0.order_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Cross Request
eurex_derivatives_eti_t7_v13_0.cross_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_cross_request = eurex_derivatives_eti_t7_v13_0.cross_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.cross_request then
    local range = buffer(offset, size_of_cross_request)
    local display = eurex_derivatives_eti_t7_v13_0.cross_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.cross_request.fields(buffer, offset, packet, parent, size_of_cross_request)

  return offset + size_of_cross_request
end

-- Cross Request Ack Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp = {}

-- Size: Cross Request Ack Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.order_id.size + 
  eurex_derivatives_eti_t7_v13_0.input_source.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Cross Request Ack Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Cross Request Ack Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.fields = function(buffer, offset, packet, parent, cross_request_ack_side_grp_comp_index)
  local index = offset

  -- Implicit Cross Request Ack Side Grp Comp Index
  if cross_request_ack_side_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_ack_side_grp_comp_index, cross_request_ack_side_grp_comp_index)
    iteration:set_generated()
  end

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Input Source: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, input_source = eurex_derivatives_eti_t7_v13_0.input_source.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Cross Request Ack Side Grp Comp
eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.dissect = function(buffer, offset, packet, parent, cross_request_ack_side_grp_comp_index)
  if show.cross_request_ack_side_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.cross_request_ack_side_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.fields(buffer, offset, packet, parent, cross_request_ack_side_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.fields(buffer, offset, packet, parent, cross_request_ack_side_grp_comp_index)
  end
end

-- Implied Check Price Indicator
eurex_derivatives_eti_t7_v13_0.implied_check_price_indicator = {}

-- Size: Implied Check Price Indicator
eurex_derivatives_eti_t7_v13_0.implied_check_price_indicator.size = 1

-- Display: Implied Check Price Indicator
eurex_derivatives_eti_t7_v13_0.implied_check_price_indicator.display = function(value)
  if value == 0 then
    return "Implied Check Price Indicator: No (0)"
  end
  if value == 1 then
    return "Implied Check Price Indicator: Yes (1)"
  end
  if value == 0xFF then
    return "Implied Check Price Indicator: No Value"
  end

  return "Implied Check Price Indicator: Unknown("..value..")"
end

-- Dissect: Implied Check Price Indicator
eurex_derivatives_eti_t7_v13_0.implied_check_price_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.implied_check_price_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.implied_check_price_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.implied_check_price_indicator, range, value, display)

  return offset + length, value
end

-- Clip Response
eurex_derivatives_eti_t7_v13_0.clip_response = {}

-- Read runtime size of: Clip Response
eurex_derivatives_eti_t7_v13_0.clip_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Clip Response
eurex_derivatives_eti_t7_v13_0.clip_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Clip Response
eurex_derivatives_eti_t7_v13_0.clip_response.fields = function(buffer, offset, packet, parent, size_of_clip_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Cross Request Id: 4 Byte Signed Fixed Width Integer Nullable
  index, cross_request_id = eurex_derivatives_eti_t7_v13_0.cross_request_id.dissect(buffer, index, packet, parent)

  -- No Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_sides = eurex_derivatives_eti_t7_v13_0.no_sides.dissect(buffer, index, packet, parent)

  -- Implied Check Price Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, implied_check_price_indicator = eurex_derivatives_eti_t7_v13_0.implied_check_price_indicator.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Cross Request Ack Side Grp Comp
  for cross_request_ack_side_grp_comp_index = 1, no_sides do
    index, cross_request_ack_side_grp_comp = eurex_derivatives_eti_t7_v13_0.cross_request_ack_side_grp_comp.dissect(buffer, index, packet, parent, cross_request_ack_side_grp_comp_index)
  end

  return index
end

-- Dissect: Clip Response
eurex_derivatives_eti_t7_v13_0.clip_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_clip_response = eurex_derivatives_eti_t7_v13_0.clip_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.clip_response then
    local range = buffer(offset, size_of_clip_response)
    local display = eurex_derivatives_eti_t7_v13_0.clip_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.clip_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.clip_response.fields(buffer, offset, packet, parent, size_of_clip_response)

  return offset + size_of_clip_response
end

-- Clip Execution Notification
eurex_derivatives_eti_t7_v13_0.clip_execution_notification = {}

-- Read runtime size of: Clip Execution Notification
eurex_derivatives_eti_t7_v13_0.clip_execution_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Clip Execution Notification
eurex_derivatives_eti_t7_v13_0.clip_execution_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Clip Execution Notification
eurex_derivatives_eti_t7_v13_0.clip_execution_notification.fields = function(buffer, offset, packet, parent, size_of_clip_execution_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Leaves Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leaves_qty = eurex_derivatives_eti_t7_v13_0.leaves_qty.dissect(buffer, index, packet, parent)

  -- Cum Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cum_qty = eurex_derivatives_eti_t7_v13_0.cum_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- No Leg Execs: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_execs = eurex_derivatives_eti_t7_v13_0.no_leg_execs.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Match Type: 1 Byte Unsigned Fixed Width Integer Enum with 7 values
  index, match_type = eurex_derivatives_eti_t7_v13_0.match_type.dissect(buffer, index, packet, parent)

  -- No Fills: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_fills = eurex_derivatives_eti_t7_v13_0.no_fills.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Fills Grp Comp
  for fills_grp_comp_index = 1, no_fills do
    index, fills_grp_comp = eurex_derivatives_eti_t7_v13_0.fills_grp_comp.dissect(buffer, index, packet, parent, fills_grp_comp_index)
  end

  -- Repeating: Instrmnt Leg Exec Grp Comp
  for instrmnt_leg_exec_grp_comp_index = 1, no_leg_execs do
    index, instrmnt_leg_exec_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmnt_leg_exec_grp_comp.dissect(buffer, index, packet, parent, instrmnt_leg_exec_grp_comp_index)
  end

  return index
end

-- Dissect: Clip Execution Notification
eurex_derivatives_eti_t7_v13_0.clip_execution_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_clip_execution_notification = eurex_derivatives_eti_t7_v13_0.clip_execution_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.clip_execution_notification then
    local range = buffer(offset, size_of_clip_execution_notification)
    local display = eurex_derivatives_eti_t7_v13_0.clip_execution_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.clip_execution_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.clip_execution_notification.fields(buffer, offset, packet, parent, size_of_clip_execution_notification)

  return offset + size_of_clip_execution_notification
end

-- Clip Deletion Notification
eurex_derivatives_eti_t7_v13_0.clip_deletion_notification = {}

-- Read runtime size of: Clip Deletion Notification
eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Clip Deletion Notification
eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Clip Deletion Notification
eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.fields = function(buffer, offset, packet, parent, size_of_clip_deletion_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Me Comp: Struct of 10 fields
  index, rbc_header_me_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_me_comp.dissect(buffer, index, packet, parent)

  -- Order Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, order_id = eurex_derivatives_eti_t7_v13_0.order_id.dissect(buffer, index, packet, parent)

  -- Exec Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, exec_id = eurex_derivatives_eti_t7_v13_0.exec_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Cxl Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, cxl_qty = eurex_derivatives_eti_t7_v13_0.cxl_qty.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Exec Restatement Reason: 2 Byte Unsigned Fixed Width Integer Enum with 31 values
  index, exec_restatement_reason = eurex_derivatives_eti_t7_v13_0.exec_restatement_reason.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Ord Status: 1 Byte Ascii String Enum with 6 values
  index, ord_status = eurex_derivatives_eti_t7_v13_0.ord_status.dissect(buffer, index, packet, parent)

  -- Exec Type: 1 Byte Ascii String Enum with 8 values
  index, exec_type = eurex_derivatives_eti_t7_v13_0.exec_type.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Clip Deletion Notification
eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_clip_deletion_notification = eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.clip_deletion_notification then
    local range = buffer(offset, size_of_clip_deletion_notification)
    local display = eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.clip_deletion_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.fields(buffer, offset, packet, parent, size_of_clip_deletion_notification)

  return offset + size_of_clip_deletion_notification
end

-- Appl Id Status
eurex_derivatives_eti_t7_v13_0.appl_id_status = {}

-- Size: Appl Id Status
eurex_derivatives_eti_t7_v13_0.appl_id_status.size = 4

-- Display: Appl Id Status
eurex_derivatives_eti_t7_v13_0.appl_id_status.display = function(value)
  if value == 105 then
    return "Appl Id Status: Outboundconversionerror (105)"
  end
  if value == 0xFFFFFFFF then
    return "Appl Id Status: No Value"
  end

  return "Appl Id Status: Unknown("..value..")"
end

-- Dissect: Appl Id Status
eurex_derivatives_eti_t7_v13_0.appl_id_status.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.appl_id_status.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.appl_id_status.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.appl_id_status, range, value, display)

  return offset + length, value
end

-- Broadcast Error Notification
eurex_derivatives_eti_t7_v13_0.broadcast_error_notification = {}

-- Read runtime size of: Broadcast Error Notification
eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Broadcast Error Notification
eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Broadcast Error Notification
eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.fields = function(buffer, offset, packet, parent, size_of_broadcast_error_notification)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Notif Header Comp: Struct of 1 fields
  index, notif_header_comp = eurex_derivatives_eti_t7_v13_0.notif_header_comp.dissect(buffer, index, packet, parent)

  -- Appl Id Status: 4 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, appl_id_status = eurex_derivatives_eti_t7_v13_0.appl_id_status.dissect(buffer, index, packet, parent)

  -- Ref Appl Sub Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, ref_appl_sub_id = eurex_derivatives_eti_t7_v13_0.ref_appl_sub_id.dissect(buffer, index, packet, parent)

  -- Var Text Len: 2 Byte Unsigned Fixed Width Integer Nullable
  index, var_text_len = eurex_derivatives_eti_t7_v13_0.var_text_len.dissect(buffer, index, packet, parent)

  -- Ref Appl Id: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, ref_appl_id = eurex_derivatives_eti_t7_v13_0.ref_appl_id.dissect(buffer, index, packet, parent)

  -- Session Status: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, session_status = eurex_derivatives_eti_t7_v13_0.session_status.dissect(buffer, index, packet, parent)

  -- Runtime Size Of: Var Text
  index, var_text = eurex_derivatives_eti_t7_v13_0.var_text.dissect(buffer, index, packet, parent, var_text_len)

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  -- Runtime optional field: Alignment Padding
  local alignment_padding = nil

  local alignment_padding_exists = body_len ~= index

  if alignment_padding_exists then

    -- Runtime Size Of: Alignment Padding
    local size_of_alignment_padding = body_len - index

    -- Alignment Padding: 0 Byte
    index, alignment_padding = eurex_derivatives_eti_t7_v13_0.alignment_padding.dissect(buffer, index, packet, parent, size_of_alignment_padding)
  end

  return index
end

-- Dissect: Broadcast Error Notification
eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_broadcast_error_notification = eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.broadcast_error_notification then
    local range = buffer(offset, size_of_broadcast_error_notification)
    local display = eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.broadcast_error_notification, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.fields(buffer, offset, packet, parent, size_of_broadcast_error_notification)

  return offset + size_of_broadcast_error_notification
end

-- New Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp = {}

-- Size: New Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_sub_id_type.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size + 
  eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: New Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.fields = function(buffer, offset, packet, parent, new_basket_side_alloc_grp_comp_index)
  local index = offset

  -- Implicit New Basket Side Alloc Grp Comp Index
  if new_basket_side_alloc_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_side_alloc_grp_comp_index, new_basket_side_alloc_grp_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Individual Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, individual_alloc_id = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.dissect(buffer, index, packet, parent)

  -- Party Sub Id Type: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_sub_id_type = eurex_derivatives_eti_t7_v13_0.party_sub_id_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Instrmt Match Side Id: 1 Byte Unsigned Fixed Width Integer Nullable
  index, instrmt_match_side_id = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.dissect(buffer, index, packet, parent)

  -- Trade Alloc Status: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_alloc_status = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.dissect = function(buffer, offset, packet, parent, new_basket_side_alloc_grp_comp_index)
  if show.new_basket_side_alloc_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_side_alloc_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.fields(buffer, offset, packet, parent, new_basket_side_alloc_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.fields(buffer, offset, packet, parent, new_basket_side_alloc_grp_comp_index)
  end
end

-- Old Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp = {}

-- Size: Old Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.individual_alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_sub_id_type.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size + 
  eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: Old Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Old Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.fields = function(buffer, offset, packet, parent, old_basket_side_alloc_grp_comp_index)
  local index = offset

  -- Implicit Old Basket Side Alloc Grp Comp Index
  if old_basket_side_alloc_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_side_alloc_grp_comp_index, old_basket_side_alloc_grp_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Individual Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, individual_alloc_id = eurex_derivatives_eti_t7_v13_0.individual_alloc_id.dissect(buffer, index, packet, parent)

  -- Party Sub Id Type: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_sub_id_type = eurex_derivatives_eti_t7_v13_0.party_sub_id_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Instrmt Match Side Id: 1 Byte Unsigned Fixed Width Integer Nullable
  index, instrmt_match_side_id = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.dissect(buffer, index, packet, parent)

  -- Trade Alloc Status: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_alloc_status = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Old Basket Side Alloc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.dissect = function(buffer, offset, packet, parent, old_basket_side_alloc_grp_comp_index)
  if show.old_basket_side_alloc_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_side_alloc_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.fields(buffer, offset, packet, parent, old_basket_side_alloc_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.fields(buffer, offset, packet, parent, old_basket_side_alloc_grp_comp_index)
  end
end

-- New Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp = {}

-- Size: New Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.last_px.size + 
  eurex_derivatives_eti_t7_v13_0.trans_bkd_time.size + 
  eurex_derivatives_eti_t7_v13_0.related_close_price.size + 
  eurex_derivatives_eti_t7_v13_0.clearing_trade_price.size + 
  eurex_derivatives_eti_t7_v13_0.package_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.size + 
  eurex_derivatives_eti_t7_v13_0.product_complex.size + 
  eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.size + 
  eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size + 
  eurex_derivatives_eti_t7_v13_0.effect_on_basket.size + 
  eurex_derivatives_eti_t7_v13_0.trade_report_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: New Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.fields = function(buffer, offset, packet, parent, new_basket_instrmt_match_side_grp_comp_index)
  local index = offset

  -- Implicit New Basket Instrmt Match Side Grp Comp Index
  if new_basket_instrmt_match_side_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_instrmt_match_side_grp_comp_index, new_basket_instrmt_match_side_grp_comp_index)
    iteration:set_generated()
  end

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Clearing Trade Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, clearing_trade_price = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Side Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, side_market_segment_id = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.dissect(buffer, index, packet, parent)

  -- Side Trd Sub Typ: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_trd_sub_typ = eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Instrmt Match Side Id: 1 Byte Unsigned Fixed Width Integer Nullable
  index, instrmt_match_side_id = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.dissect(buffer, index, packet, parent)

  -- Effect On Basket: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, effect_on_basket = eurex_derivatives_eti_t7_v13_0.effect_on_basket.dissect(buffer, index, packet, parent)

  -- Trade Report Text: 20 Byte Ascii String Nullable
  index, trade_report_text = eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.dissect = function(buffer, offset, packet, parent, new_basket_instrmt_match_side_grp_comp_index)
  if show.new_basket_instrmt_match_side_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_instrmt_match_side_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.fields(buffer, offset, packet, parent, new_basket_instrmt_match_side_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.fields(buffer, offset, packet, parent, new_basket_instrmt_match_side_grp_comp_index)
  end
end

-- Old Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp = {}

-- Size: Old Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.last_px.size + 
  eurex_derivatives_eti_t7_v13_0.trans_bkd_time.size + 
  eurex_derivatives_eti_t7_v13_0.related_close_price.size + 
  eurex_derivatives_eti_t7_v13_0.clearing_trade_price.size + 
  eurex_derivatives_eti_t7_v13_0.package_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.size + 
  eurex_derivatives_eti_t7_v13_0.product_complex.size + 
  eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.size + 
  eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.size + 
  eurex_derivatives_eti_t7_v13_0.effect_on_basket.size + 
  eurex_derivatives_eti_t7_v13_0.trade_report_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Old Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Old Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.fields = function(buffer, offset, packet, parent, old_basket_instrmt_match_side_grp_comp_index)
  local index = offset

  -- Implicit Old Basket Instrmt Match Side Grp Comp Index
  if old_basket_instrmt_match_side_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_instrmt_match_side_grp_comp_index, old_basket_instrmt_match_side_grp_comp_index)
    iteration:set_generated()
  end

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Clearing Trade Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, clearing_trade_price = eurex_derivatives_eti_t7_v13_0.clearing_trade_price.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Side Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, side_market_segment_id = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.dissect(buffer, index, packet, parent)

  -- Side Trd Sub Typ: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_trd_sub_typ = eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Instrmt Match Side Id: 1 Byte Unsigned Fixed Width Integer Nullable
  index, instrmt_match_side_id = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_id.dissect(buffer, index, packet, parent)

  -- Effect On Basket: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, effect_on_basket = eurex_derivatives_eti_t7_v13_0.effect_on_basket.dissect(buffer, index, packet, parent)

  -- Trade Report Text: 20 Byte Ascii String Nullable
  index, trade_report_text = eurex_derivatives_eti_t7_v13_0.trade_report_text.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Old Basket Instrmt Match Side Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.dissect = function(buffer, offset, packet, parent, old_basket_instrmt_match_side_grp_comp_index)
  if show.old_basket_instrmt_match_side_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_instrmt_match_side_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.fields(buffer, offset, packet, parent, old_basket_instrmt_match_side_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.fields(buffer, offset, packet, parent, old_basket_instrmt_match_side_grp_comp_index)
  end
end

-- New Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp = {}

-- Size: New Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.trade_report_id.size + 
  eurex_derivatives_eti_t7_v13_0.maturity_month_year.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_3.size

-- Display: New Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Pad 3: 3 Byte
  index, pad_3 = eurex_derivatives_eti_t7_v13_0.pad_3.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.dissect = function(buffer, offset, packet, parent)
  if show.new_basket_data_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_data_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.fields(buffer, offset, packet, parent)
  end
end

-- Old Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp = {}

-- Size: Old Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.basket_exec_id.size + 
  eurex_derivatives_eti_t7_v13_0.trade_report_id.size + 
  eurex_derivatives_eti_t7_v13_0.maturity_month_year.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Old Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Old Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Old Basket Data Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.dissect = function(buffer, offset, packet, parent)
  if show.old_basket_data_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_data_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.fields(buffer, offset, packet, parent)
  end
end

-- No New Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc = {}

-- Size: No New Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc.size = 2

-- Display: No New Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No New Basket Side Alloc: No Value"
  end

  return "No New Basket Side Alloc: "..value
end

-- Dissect: No New Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_new_basket_side_alloc, range, value, display)

  return offset + length, value
end

-- No Old Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc = {}

-- Size: No Old Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc.size = 2

-- Display: No Old Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "No Old Basket Side Alloc: No Value"
  end

  return "No Old Basket Side Alloc: "..value
end

-- Dissect: No Old Basket Side Alloc
eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_old_basket_side_alloc, range, value, display)

  return offset + length, value
end

-- No New Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides = {}

-- Size: No New Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides.size = 1

-- Display: No New Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No New Basket Instrmt Match Sides: No Value"
  end

  return "No New Basket Instrmt Match Sides: "..value
end

-- Dissect: No New Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_new_basket_instrmt_match_sides, range, value, display)

  return offset + length, value
end

-- No Old Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides = {}

-- Size: No Old Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides.size = 1

-- Display: No Old Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Old Basket Instrmt Match Sides: No Value"
  end

  return "No Old Basket Instrmt Match Sides: "..value
end

-- Dissect: No Old Basket Instrmt Match Sides
eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_old_basket_instrmt_match_sides, range, value, display)

  return offset + length, value
end

-- Basket Roll Request
eurex_derivatives_eti_t7_v13_0.basket_roll_request = {}

-- Read runtime size of: Basket Roll Request
eurex_derivatives_eti_t7_v13_0.basket_roll_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Basket Roll Request
eurex_derivatives_eti_t7_v13_0.basket_roll_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Roll Request
eurex_derivatives_eti_t7_v13_0.basket_roll_request.fields = function(buffer, offset, packet, parent, size_of_basket_roll_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- No Basket Root Party Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_root_party_grps = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.dissect(buffer, index, packet, parent)

  -- No Old Basket Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_old_basket_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- No New Basket Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_new_basket_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- No Old Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_old_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- No New Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_new_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Root Party Grp Comp
  for basket_root_party_grp_comp_index = 1, no_basket_root_party_grps do
    index, basket_root_party_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect(buffer, index, packet, parent, basket_root_party_grp_comp_index)
  end

  -- Old Basket Data Grp Comp: Struct of 7 fields
  index, old_basket_data_grp_comp = eurex_derivatives_eti_t7_v13_0.old_basket_data_grp_comp.dissect(buffer, index, packet, parent)

  -- New Basket Data Grp Comp: Struct of 5 fields
  index, new_basket_data_grp_comp = eurex_derivatives_eti_t7_v13_0.new_basket_data_grp_comp.dissect(buffer, index, packet, parent)

  -- Repeating: Old Basket Instrmt Match Side Grp Comp
  for old_basket_instrmt_match_side_grp_comp_index = 1, no_old_basket_instrmt_match_sides do
    index, old_basket_instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, old_basket_instrmt_match_side_grp_comp_index)
  end

  -- Repeating: New Basket Instrmt Match Side Grp Comp
  for new_basket_instrmt_match_side_grp_comp_index = 1, no_new_basket_instrmt_match_sides do
    index, new_basket_instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, new_basket_instrmt_match_side_grp_comp_index)
  end

  -- Repeating: Old Basket Side Alloc Grp Comp
  for old_basket_side_alloc_grp_comp_index = 1, no_old_basket_side_alloc do
    index, old_basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, old_basket_side_alloc_grp_comp_index)
  end

  -- Repeating: New Basket Side Alloc Grp Comp
  for new_basket_side_alloc_grp_comp_index = 1, no_new_basket_side_alloc do
    index, new_basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, new_basket_side_alloc_grp_comp_index)
  end

  return index
end

-- Dissect: Basket Roll Request
eurex_derivatives_eti_t7_v13_0.basket_roll_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_basket_roll_request = eurex_derivatives_eti_t7_v13_0.basket_roll_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.basket_roll_request then
    local range = buffer(offset, size_of_basket_roll_request)
    local display = eurex_derivatives_eti_t7_v13_0.basket_roll_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_roll_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.basket_roll_request.fields(buffer, offset, packet, parent, size_of_basket_roll_request)

  return offset + size_of_basket_roll_request
end

-- New Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp = {}

-- Size: New Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.transact_time.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.trade_report_id.size + 
  eurex_derivatives_eti_t7_v13_0.maturity_month_year.size + 
  eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: New Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: New Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Orig Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: New Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.dissect = function(buffer, offset, packet, parent)
  if show.new_basket_data_bc_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.new_basket_data_bc_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.fields(buffer, offset, packet, parent)
  end
end

-- Old Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp = {}

-- Size: Old Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.transact_time.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.size + 
  eurex_derivatives_eti_t7_v13_0.trade_report_id.size + 
  eurex_derivatives_eti_t7_v13_0.maturity_month_year.size + 
  eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.size + 
  eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Old Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Old Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Orig Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Old Basket Data Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.dissect = function(buffer, offset, packet, parent)
  if show.old_basket_data_bc_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.old_basket_data_bc_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.fields(buffer, offset, packet, parent)
  end
end

-- No Basket Root Party Grps Bc
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc = {}

-- Size: No Basket Root Party Grps Bc
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc.size = 1

-- Display: No Basket Root Party Grps Bc
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "No Basket Root Party Grps Bc: No Value"
  end

  return "No Basket Root Party Grps Bc: "..value
end

-- Dissect: No Basket Root Party Grps Bc
eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.no_basket_root_party_grps_bc, range, value, display)

  return offset + length, value
end

-- Basket Roll Broadcast
eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast = {}

-- Read runtime size of: Basket Roll Broadcast
eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Basket Roll Broadcast
eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Roll Broadcast
eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.fields = function(buffer, offset, packet, parent, size_of_basket_roll_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- No Basket Root Party Grps Bc: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_root_party_grps_bc = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc.dissect(buffer, index, packet, parent)

  -- No Old Basket Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_old_basket_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_old_basket_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- No New Basket Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_new_basket_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_new_basket_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  -- No Old Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_old_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_old_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- No New Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_new_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_new_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Basket Anonymity: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, basket_anonymity = eurex_derivatives_eti_t7_v13_0.basket_anonymity.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Root Party Grp Comp
  for basket_root_party_grp_comp_index = 1, no_basket_root_party_grps_bc do
    index, basket_root_party_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect(buffer, index, packet, parent, basket_root_party_grp_comp_index)
  end

  -- Old Basket Data Bc Grp Comp: Struct of 9 fields
  index, old_basket_data_bc_grp_comp = eurex_derivatives_eti_t7_v13_0.old_basket_data_bc_grp_comp.dissect(buffer, index, packet, parent)

  -- New Basket Data Bc Grp Comp: Struct of 9 fields
  index, new_basket_data_bc_grp_comp = eurex_derivatives_eti_t7_v13_0.new_basket_data_bc_grp_comp.dissect(buffer, index, packet, parent)

  -- Repeating: Old Basket Instrmt Match Side Grp Comp
  for old_basket_instrmt_match_side_grp_comp_index = 1, no_old_basket_instrmt_match_sides do
    index, old_basket_instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.old_basket_instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, old_basket_instrmt_match_side_grp_comp_index)
  end

  -- Repeating: New Basket Instrmt Match Side Grp Comp
  for new_basket_instrmt_match_side_grp_comp_index = 1, no_new_basket_instrmt_match_sides do
    index, new_basket_instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.new_basket_instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, new_basket_instrmt_match_side_grp_comp_index)
  end

  -- Repeating: Old Basket Side Alloc Grp Comp
  for old_basket_side_alloc_grp_comp_index = 1, no_old_basket_side_alloc do
    index, old_basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.old_basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, old_basket_side_alloc_grp_comp_index)
  end

  -- Repeating: New Basket Side Alloc Grp Comp
  for new_basket_side_alloc_grp_comp_index = 1, no_new_basket_side_alloc do
    index, new_basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.new_basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, new_basket_side_alloc_grp_comp_index)
  end

  return index
end

-- Dissect: Basket Roll Broadcast
eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_basket_roll_broadcast = eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.basket_roll_broadcast then
    local range = buffer(offset, size_of_basket_roll_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_roll_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.fields(buffer, offset, packet, parent, size_of_basket_roll_broadcast)

  return offset + size_of_basket_roll_broadcast
end

-- Basket Response
eurex_derivatives_eti_t7_v13_0.basket_response = {}

-- Read runtime size of: Basket Response
eurex_derivatives_eti_t7_v13_0.basket_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Basket Response
eurex_derivatives_eti_t7_v13_0.basket_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Response
eurex_derivatives_eti_t7_v13_0.basket_response.fields = function(buffer, offset, packet, parent, size_of_basket_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Response Header Comp: Struct of 4 fields
  index, response_header_comp = eurex_derivatives_eti_t7_v13_0.response_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Basket Response
eurex_derivatives_eti_t7_v13_0.basket_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_basket_response = eurex_derivatives_eti_t7_v13_0.basket_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.basket_response then
    local range = buffer(offset, size_of_basket_response)
    local display = eurex_derivatives_eti_t7_v13_0.basket_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.basket_response.fields(buffer, offset, packet, parent, size_of_basket_response)

  return offset + size_of_basket_response
end

-- Basket Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp = {}

-- Size: Basket Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.package_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size + 
  eurex_derivatives_eti_t7_v13_0.alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.size + 
  eurex_derivatives_eti_t7_v13_0.pad_2.size

-- Display: Basket Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.fields = function(buffer, offset, packet, parent, basket_exec_grp_comp_index)
  local index = offset

  -- Implicit Basket Exec Grp Comp Index
  if basket_exec_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_exec_grp_comp_index, basket_exec_grp_comp_index)
    iteration:set_generated()
  end

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Side Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, side_market_segment_id = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.dissect(buffer, index, packet, parent)

  -- Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_id = eurex_derivatives_eti_t7_v13_0.alloc_id.dissect(buffer, index, packet, parent)

  -- Side Trd Sub Typ: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_trd_sub_typ = eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Basket Exec Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.dissect = function(buffer, offset, packet, parent, basket_exec_grp_comp_index)
  if show.basket_exec_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_exec_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.fields(buffer, offset, packet, parent, basket_exec_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.fields(buffer, offset, packet, parent, basket_exec_grp_comp_index)
  end
end

-- Basket Execution Broadcast
eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast = {}

-- Read runtime size of: Basket Execution Broadcast
eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Basket Execution Broadcast
eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Execution Broadcast
eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.fields = function(buffer, offset, packet, parent, size_of_basket_execution_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Orig Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- No Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Basket Side Trade Report Id: 20 Byte Ascii String Nullable
  index, basket_side_trade_report_id = eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Exec Grp Comp
  for basket_exec_grp_comp_index = 1, no_instrmt_match_sides do
    index, basket_exec_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_exec_grp_comp.dissect(buffer, index, packet, parent, basket_exec_grp_comp_index)
  end

  return index
end

-- Dissect: Basket Execution Broadcast
eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_basket_execution_broadcast = eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.basket_execution_broadcast then
    local range = buffer(offset, size_of_basket_execution_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_execution_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.fields(buffer, offset, packet, parent, size_of_basket_execution_broadcast)

  return offset + size_of_basket_execution_broadcast
end

-- Basket Delete Broadcast
eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast = {}

-- Read runtime size of: Basket Delete Broadcast
eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Basket Delete Broadcast
eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Delete Broadcast
eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.fields = function(buffer, offset, packet, parent, size_of_basket_delete_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Delete Reason: 1 Byte Unsigned Fixed Width Integer Enum with 11 values
  index, delete_reason = eurex_derivatives_eti_t7_v13_0.delete_reason.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Basket Delete Broadcast
eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_basket_delete_broadcast = eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.basket_delete_broadcast then
    local range = buffer(offset, size_of_basket_delete_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_delete_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.fields(buffer, offset, packet, parent, size_of_basket_delete_broadcast)

  return offset + size_of_basket_delete_broadcast
end

-- Basket Broadcast
eurex_derivatives_eti_t7_v13_0.basket_broadcast = {}

-- Read runtime size of: Basket Broadcast
eurex_derivatives_eti_t7_v13_0.basket_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Basket Broadcast
eurex_derivatives_eti_t7_v13_0.basket_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Broadcast
eurex_derivatives_eti_t7_v13_0.basket_broadcast.fields = function(buffer, offset, packet, parent, size_of_basket_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- No Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- No Basket Root Party Grps Bc: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_root_party_grps_bc = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps_bc.dissect(buffer, index, packet, parent)

  -- No Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- Basket Anonymity: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, basket_anonymity = eurex_derivatives_eti_t7_v13_0.basket_anonymity.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Root Party Grp Comp
  for basket_root_party_grp_comp_index = 1, no_basket_root_party_grps_bc do
    index, basket_root_party_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect(buffer, index, packet, parent, basket_root_party_grp_comp_index)
  end

  -- Repeating: Instrmt Match Side Grp Comp
  for instrmt_match_side_grp_comp_index = 1, no_instrmt_match_sides do
    index, instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, instrmt_match_side_grp_comp_index)
  end

  -- Repeating: Basket Side Alloc Grp Comp
  for basket_side_alloc_grp_comp_index = 1, no_basket_side_alloc do
    index, basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, basket_side_alloc_grp_comp_index)
  end

  return index
end

-- Dissect: Basket Broadcast
eurex_derivatives_eti_t7_v13_0.basket_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_basket_broadcast = eurex_derivatives_eti_t7_v13_0.basket_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.basket_broadcast then
    local range = buffer(offset, size_of_basket_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.basket_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.basket_broadcast.fields(buffer, offset, packet, parent, size_of_basket_broadcast)

  return offset + size_of_basket_broadcast
end

-- Basket Side Alloc Ext Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp = {}

-- Size: Basket Side Alloc Ext Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.security_id.size + 
  eurex_derivatives_eti_t7_v13_0.last_px.size + 
  eurex_derivatives_eti_t7_v13_0.trans_bkd_time.size + 
  eurex_derivatives_eti_t7_v13_0.related_close_price.size + 
  eurex_derivatives_eti_t7_v13_0.package_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size + 
  eurex_derivatives_eti_t7_v13_0.alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.size + 
  eurex_derivatives_eti_t7_v13_0.party_sub_id_type.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.effect_on_basket.size + 
  eurex_derivatives_eti_t7_v13_0.trading_capacity.size + 
  eurex_derivatives_eti_t7_v13_0.trade_alloc_status.size + 
  eurex_derivatives_eti_t7_v13_0.product_complex.size + 
  eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.account.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_1.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_2.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_3.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_position_account.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_location_id.size + 
  eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.size + 
  eurex_derivatives_eti_t7_v13_0.compliance_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_4.size

-- Display: Basket Side Alloc Ext Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Side Alloc Ext Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.fields = function(buffer, offset, packet, parent, basket_side_alloc_ext_bc_grp_comp_index)
  local index = offset

  -- Implicit Basket Side Alloc Ext Bc Grp Comp Index
  if basket_side_alloc_ext_bc_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_bc_grp_comp_index, basket_side_alloc_ext_bc_grp_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Px: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_px = eurex_derivatives_eti_t7_v13_0.last_px.dissect(buffer, index, packet, parent)

  -- Trans Bkd Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, trans_bkd_time = eurex_derivatives_eti_t7_v13_0.trans_bkd_time.dissect(buffer, index, packet, parent)

  -- Related Close Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, related_close_price = eurex_derivatives_eti_t7_v13_0.related_close_price.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Side Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, side_market_segment_id = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.dissect(buffer, index, packet, parent)

  -- Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_id = eurex_derivatives_eti_t7_v13_0.alloc_id.dissect(buffer, index, packet, parent)

  -- Side Trd Sub Typ: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side_trd_sub_typ = eurex_derivatives_eti_t7_v13_0.side_trd_sub_typ.dissect(buffer, index, packet, parent)

  -- Party Sub Id Type: 2 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_sub_id_type = eurex_derivatives_eti_t7_v13_0.party_sub_id_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Effect On Basket: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, effect_on_basket = eurex_derivatives_eti_t7_v13_0.effect_on_basket.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Trade Alloc Status: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_alloc_status = eurex_derivatives_eti_t7_v13_0.trade_alloc_status.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Trade Publish Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, trade_publish_indicator = eurex_derivatives_eti_t7_v13_0.trade_publish_indicator.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Basket Side Alloc Ext Bc Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.dissect = function(buffer, offset, packet, parent, basket_side_alloc_ext_bc_grp_comp_index)
  if show.basket_side_alloc_ext_bc_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_bc_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.fields(buffer, offset, packet, parent, basket_side_alloc_ext_bc_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.fields(buffer, offset, packet, parent, basket_side_alloc_ext_bc_grp_comp_index)
  end
end

-- Basket Approve Broadcast
eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast = {}

-- Read runtime size of: Basket Approve Broadcast
eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Basket Approve Broadcast
eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Approve Broadcast
eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.fields = function(buffer, offset, packet, parent, size_of_basket_approve_broadcast)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Rbc Header Comp: Struct of 8 fields
  index, rbc_header_comp = eurex_derivatives_eti_t7_v13_0.rbc_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Orig Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, orig_basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.orig_basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Transact Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, transact_time = eurex_derivatives_eti_t7_v13_0.transact_time.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- No Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- Optional Early Termination Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, optional_early_termination_indicator = eurex_derivatives_eti_t7_v13_0.optional_early_termination_indicator.dissect(buffer, index, packet, parent)

  -- Message Event Source: 1 Byte Ascii String Enum with 4 values
  index, message_event_source = eurex_derivatives_eti_t7_v13_0.message_event_source.dissect(buffer, index, packet, parent)

  -- No Basket Root Party Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_root_party_grps = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.dissect(buffer, index, packet, parent)

  -- Party Id Entering Firm: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_entering_firm = eurex_derivatives_eti_t7_v13_0.party_id_entering_firm.dissect(buffer, index, packet, parent)

  -- Party Entering Trader: 6 Byte Ascii String Nullable
  index, party_entering_trader = eurex_derivatives_eti_t7_v13_0.party_entering_trader.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Root Party Grp Comp
  for basket_root_party_grp_comp_index = 1, no_basket_root_party_grps do
    index, basket_root_party_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect(buffer, index, packet, parent, basket_root_party_grp_comp_index)
  end

  -- Repeating: Basket Side Alloc Ext Bc Grp Comp
  for basket_side_alloc_ext_bc_grp_comp_index = 1, no_basket_side_alloc do
    index, basket_side_alloc_ext_bc_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_bc_grp_comp.dissect(buffer, index, packet, parent, basket_side_alloc_ext_bc_grp_comp_index)
  end

  return index
end

-- Dissect: Basket Approve Broadcast
eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_basket_approve_broadcast = eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.basket_approve_broadcast then
    local range = buffer(offset, size_of_basket_approve_broadcast)
    local display = eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_approve_broadcast, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.fields(buffer, offset, packet, parent, size_of_basket_approve_broadcast)

  return offset + size_of_basket_approve_broadcast
end

-- Approve Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request = {}

-- Read runtime size of: Approve Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Approve Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Approve Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.fields = function(buffer, offset, packet, parent, size_of_approve_tes_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_id = eurex_derivatives_eti_t7_v13_0.alloc_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Party End Client Identification: 20 Byte Ascii String Nullable
  index, party_end_client_identification = eurex_derivatives_eti_t7_v13_0.party_end_client_identification.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Approve Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_approve_tes_trade_request = eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.approve_tes_trade_request then
    local range = buffer(offset, size_of_approve_tes_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.approve_tes_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.fields(buffer, offset, packet, parent, size_of_approve_tes_trade_request)

  return offset + size_of_approve_tes_trade_request
end

-- Approve Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request = {}

-- Read runtime size of: Approve Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Approve Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Approve Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.fields = function(buffer, offset, packet, parent, size_of_approve_reverse_tes_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_id = eurex_derivatives_eti_t7_v13_0.alloc_id.dissect(buffer, index, packet, parent)

  -- Tes Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, tes_exec_id = eurex_derivatives_eti_t7_v13_0.tes_exec_id.dissect(buffer, index, packet, parent)

  -- Related Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, related_market_segment_id = eurex_derivatives_eti_t7_v13_0.related_market_segment_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Approve Reverse Tes Trade Request
eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_approve_reverse_tes_trade_request = eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.approve_reverse_tes_trade_request then
    local range = buffer(offset, size_of_approve_reverse_tes_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.approve_reverse_tes_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.fields(buffer, offset, packet, parent, size_of_approve_reverse_tes_trade_request)

  return offset + size_of_approve_reverse_tes_trade_request
end

-- Basket Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp = {}

-- Size: Basket Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.alloc_qty.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_client_id.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.size + 
  eurex_derivatives_eti_t7_v13_0.executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.package_id.size + 
  eurex_derivatives_eti_t7_v13_0.side_market_segment_id.size + 
  eurex_derivatives_eti_t7_v13_0.alloc_id.size + 
  eurex_derivatives_eti_t7_v13_0.side.size + 
  eurex_derivatives_eti_t7_v13_0.position_effect.size + 
  eurex_derivatives_eti_t7_v13_0.trading_capacity.size + 
  eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.size + 
  eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.size + 
  eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.size + 
  eurex_derivatives_eti_t7_v13_0.order_origination.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_executing_trader.size + 
  eurex_derivatives_eti_t7_v13_0.account.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_1.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_2.size + 
  eurex_derivatives_eti_t7_v13_0.free_text_3.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_position_account.size + 
  eurex_derivatives_eti_t7_v13_0.party_id_location_id.size + 
  eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.size + 
  eurex_derivatives_eti_t7_v13_0.compliance_text.size + 
  eurex_derivatives_eti_t7_v13_0.pad_7.size

-- Display: Basket Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Basket Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.fields = function(buffer, offset, packet, parent, basket_side_alloc_ext_grp_comp_index)
  local index = offset

  -- Implicit Basket Side Alloc Ext Grp Comp Index
  if basket_side_alloc_ext_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_grp_comp_index, basket_side_alloc_ext_grp_comp_index)
    iteration:set_generated()
  end

  -- Alloc Qty: 8 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_qty = eurex_derivatives_eti_t7_v13_0.alloc_qty.dissect(buffer, index, packet, parent)

  -- Party Id Client Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_client_id = eurex_derivatives_eti_t7_v13_0.party_id_client_id.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker: 8 Byte Unsigned Fixed Width Integer Nullable
  index, party_id_investment_decision_maker = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker.dissect(buffer, index, packet, parent)

  -- Executing Trader: 8 Byte Unsigned Fixed Width Integer Nullable
  index, executing_trader = eurex_derivatives_eti_t7_v13_0.executing_trader.dissect(buffer, index, packet, parent)

  -- Package Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, package_id = eurex_derivatives_eti_t7_v13_0.package_id.dissect(buffer, index, packet, parent)

  -- Side Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, side_market_segment_id = eurex_derivatives_eti_t7_v13_0.side_market_segment_id.dissect(buffer, index, packet, parent)

  -- Alloc Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, alloc_id = eurex_derivatives_eti_t7_v13_0.alloc_id.dissect(buffer, index, packet, parent)

  -- Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, side = eurex_derivatives_eti_t7_v13_0.side.dissect(buffer, index, packet, parent)

  -- Position Effect: 1 Byte Ascii String Enum with 2 values
  index, position_effect = eurex_derivatives_eti_t7_v13_0.position_effect.dissect(buffer, index, packet, parent)

  -- Trading Capacity: 1 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, trading_capacity = eurex_derivatives_eti_t7_v13_0.trading_capacity.dissect(buffer, index, packet, parent)

  -- Order Attribute Liquidity Provision: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_liquidity_provision = eurex_derivatives_eti_t7_v13_0.order_attribute_liquidity_provision.dissect(buffer, index, packet, parent)

  -- Executing Trader Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, executing_trader_qualifier = eurex_derivatives_eti_t7_v13_0.executing_trader_qualifier.dissect(buffer, index, packet, parent)

  -- Party Id Investment Decision Maker Qualifier: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, party_id_investment_decision_maker_qualifier = eurex_derivatives_eti_t7_v13_0.party_id_investment_decision_maker_qualifier.dissect(buffer, index, packet, parent)

  -- Order Attribute Risk Reduction: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, order_attribute_risk_reduction = eurex_derivatives_eti_t7_v13_0.order_attribute_risk_reduction.dissect(buffer, index, packet, parent)

  -- Order Origination: 1 Byte Unsigned Fixed Width Integer Enum with 2 values
  index, order_origination = eurex_derivatives_eti_t7_v13_0.order_origination.dissect(buffer, index, packet, parent)

  -- Party Executing Firm: 5 Byte Ascii String Nullable
  index, party_executing_firm = eurex_derivatives_eti_t7_v13_0.party_executing_firm.dissect(buffer, index, packet, parent)

  -- Party Executing Trader: 6 Byte Ascii String Nullable
  index, party_executing_trader = eurex_derivatives_eti_t7_v13_0.party_executing_trader.dissect(buffer, index, packet, parent)

  -- Account: 2 Byte Ascii String Nullable
  index, account = eurex_derivatives_eti_t7_v13_0.account.dissect(buffer, index, packet, parent)

  -- Free Text 1: 12 Byte Ascii String Nullable
  index, free_text_1 = eurex_derivatives_eti_t7_v13_0.free_text_1.dissect(buffer, index, packet, parent)

  -- Free Text 2: 12 Byte Ascii String Nullable
  index, free_text_2 = eurex_derivatives_eti_t7_v13_0.free_text_2.dissect(buffer, index, packet, parent)

  -- Free Text 3: 12 Byte Ascii String Nullable
  index, free_text_3 = eurex_derivatives_eti_t7_v13_0.free_text_3.dissect(buffer, index, packet, parent)

  -- Party Id Take Up Trading Firm: 5 Byte Ascii String Nullable
  index, party_id_take_up_trading_firm = eurex_derivatives_eti_t7_v13_0.party_id_take_up_trading_firm.dissect(buffer, index, packet, parent)

  -- Party Id Order Origination Firm: 7 Byte Ascii String Nullable
  index, party_id_order_origination_firm = eurex_derivatives_eti_t7_v13_0.party_id_order_origination_firm.dissect(buffer, index, packet, parent)

  -- Party Id Beneficiary: 9 Byte Ascii String Nullable
  index, party_id_beneficiary = eurex_derivatives_eti_t7_v13_0.party_id_beneficiary.dissect(buffer, index, packet, parent)

  -- Party Id Position Account: 32 Byte Ascii String Nullable
  index, party_id_position_account = eurex_derivatives_eti_t7_v13_0.party_id_position_account.dissect(buffer, index, packet, parent)

  -- Party Id Location Id: 2 Byte Ascii String Nullable
  index, party_id_location_id = eurex_derivatives_eti_t7_v13_0.party_id_location_id.dissect(buffer, index, packet, parent)

  -- Cust Order Handling Inst: 1 Byte Ascii String Enum with 6 values
  index, cust_order_handling_inst = eurex_derivatives_eti_t7_v13_0.cust_order_handling_inst.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Basket Side Alloc Ext Grp Comp
eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.dissect = function(buffer, offset, packet, parent, basket_side_alloc_ext_grp_comp_index)
  if show.basket_side_alloc_ext_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.basket_side_alloc_ext_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.fields(buffer, offset, packet, parent, basket_side_alloc_ext_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.fields(buffer, offset, packet, parent, basket_side_alloc_ext_grp_comp_index)
  end
end

-- Approve Basket Trade Request
eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request = {}

-- Read runtime size of: Approve Basket Trade Request
eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Approve Basket Trade Request
eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Approve Basket Trade Request
eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.fields = function(buffer, offset, packet, parent, size_of_approve_basket_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Root Party Sub Id Type: 2 Byte Unsigned Fixed Width Integer Enum with 4 values
  index, root_party_sub_id_type = eurex_derivatives_eti_t7_v13_0.root_party_sub_id_type.dissect(buffer, index, packet, parent)

  -- No Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Basket Side Trade Report Id: 20 Byte Ascii String Nullable
  index, basket_side_trade_report_id = eurex_derivatives_eti_t7_v13_0.basket_side_trade_report_id.dissect(buffer, index, packet, parent)

  -- Pad 5: 5 Byte
  index, pad_5 = eurex_derivatives_eti_t7_v13_0.pad_5.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Side Alloc Ext Grp Comp
  for basket_side_alloc_ext_grp_comp_index = 1, no_basket_side_alloc do
    index, basket_side_alloc_ext_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_ext_grp_comp.dissect(buffer, index, packet, parent, basket_side_alloc_ext_grp_comp_index)
  end

  return index
end

-- Dissect: Approve Basket Trade Request
eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_approve_basket_trade_request = eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.approve_basket_trade_request then
    local range = buffer(offset, size_of_approve_basket_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.approve_basket_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.fields(buffer, offset, packet, parent, size_of_approve_basket_trade_request)

  return offset + size_of_approve_basket_trade_request
end

-- Amend Basket Trade Request
eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request = {}

-- Read runtime size of: Amend Basket Trade Request
eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Amend Basket Trade Request
eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Amend Basket Trade Request
eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.fields = function(buffer, offset, packet, parent, size_of_amend_basket_trade_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Basket Trd Match Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, basket_trd_match_id = eurex_derivatives_eti_t7_v13_0.basket_trd_match_id.dissect(buffer, index, packet, parent)

  -- Basket Exec Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_exec_id = eurex_derivatives_eti_t7_v13_0.basket_exec_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Maturity Month Year: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_month_year = eurex_derivatives_eti_t7_v13_0.maturity_month_year.dissect(buffer, index, packet, parent)

  -- Basket Profile Id: 4 Byte Unsigned Fixed Width Integer Nullable
  index, basket_profile_id = eurex_derivatives_eti_t7_v13_0.basket_profile_id.dissect(buffer, index, packet, parent)

  -- Trd Type: 2 Byte Unsigned Fixed Width Integer Enum with 12 values
  index, trd_type = eurex_derivatives_eti_t7_v13_0.trd_type.dissect(buffer, index, packet, parent)

  -- No Basket Side Alloc: 2 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_side_alloc = eurex_derivatives_eti_t7_v13_0.no_basket_side_alloc.dissect(buffer, index, packet, parent)

  -- Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 10 values
  index, trade_report_type = eurex_derivatives_eti_t7_v13_0.trade_report_type.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Type: 1 Byte Unsigned Fixed Width Integer Enum with 5 values
  index, basket_trade_report_type = eurex_derivatives_eti_t7_v13_0.basket_trade_report_type.dissect(buffer, index, packet, parent)

  -- No Basket Root Party Grps: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_basket_root_party_grps = eurex_derivatives_eti_t7_v13_0.no_basket_root_party_grps.dissect(buffer, index, packet, parent)

  -- No Instrmt Match Sides: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_instrmt_match_sides = eurex_derivatives_eti_t7_v13_0.no_instrmt_match_sides.dissect(buffer, index, packet, parent)

  -- Basket Trade Report Text: 20 Byte Ascii String Nullable
  index, basket_trade_report_text = eurex_derivatives_eti_t7_v13_0.basket_trade_report_text.dissect(buffer, index, packet, parent)

  -- Trade Report Id: 20 Byte Ascii String Nullable
  index, trade_report_id = eurex_derivatives_eti_t7_v13_0.trade_report_id.dissect(buffer, index, packet, parent)

  -- Repeating: Basket Root Party Grp Comp
  for basket_root_party_grp_comp_index = 1, no_basket_root_party_grps do
    index, basket_root_party_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_root_party_grp_comp.dissect(buffer, index, packet, parent, basket_root_party_grp_comp_index)
  end

  -- Repeating: Instrmt Match Side Grp Comp
  for instrmt_match_side_grp_comp_index = 1, no_instrmt_match_sides do
    index, instrmt_match_side_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmt_match_side_grp_comp.dissect(buffer, index, packet, parent, instrmt_match_side_grp_comp_index)
  end

  -- Repeating: Basket Side Alloc Grp Comp
  for basket_side_alloc_grp_comp_index = 1, no_basket_side_alloc do
    index, basket_side_alloc_grp_comp = eurex_derivatives_eti_t7_v13_0.basket_side_alloc_grp_comp.dissect(buffer, index, packet, parent, basket_side_alloc_grp_comp_index)
  end

  return index
end

-- Dissect: Amend Basket Trade Request
eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_amend_basket_trade_request = eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.amend_basket_trade_request then
    local range = buffer(offset, size_of_amend_basket_trade_request)
    local display = eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.amend_basket_trade_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.fields(buffer, offset, packet, parent, size_of_amend_basket_trade_request)

  return offset + size_of_amend_basket_trade_request
end

-- Implied Market Indicator
eurex_derivatives_eti_t7_v13_0.implied_market_indicator = {}

-- Size: Implied Market Indicator
eurex_derivatives_eti_t7_v13_0.implied_market_indicator.size = 1

-- Display: Implied Market Indicator
eurex_derivatives_eti_t7_v13_0.implied_market_indicator.display = function(value)
  if value == 0 then
    return "Implied Market Indicator: Notimplied (0)"
  end
  if value == 3 then
    return "Implied Market Indicator: Impliedinout (3)"
  end
  if value == 0xFF then
    return "Implied Market Indicator: No Value"
  end

  return "Implied Market Indicator: Unknown("..value..")"
end

-- Dissect: Implied Market Indicator
eurex_derivatives_eti_t7_v13_0.implied_market_indicator.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.implied_market_indicator.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.implied_market_indicator.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.implied_market_indicator, range, value, display)

  return offset + length, value
end

-- Multileg Model
eurex_derivatives_eti_t7_v13_0.multileg_model = {}

-- Size: Multileg Model
eurex_derivatives_eti_t7_v13_0.multileg_model.size = 1

-- Display: Multileg Model
eurex_derivatives_eti_t7_v13_0.multileg_model.display = function(value)
  if value == 0 then
    return "Multileg Model: Predefined Multileg Security (0)"
  end
  if value == 1 then
    return "Multileg Model: Userdefined Multleg (1)"
  end
  if value == 0xFF then
    return "Multileg Model: No Value"
  end

  return "Multileg Model: Unknown("..value..")"
end

-- Dissect: Multileg Model
eurex_derivatives_eti_t7_v13_0.multileg_model.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.multileg_model.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.multileg_model.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.multileg_model, range, value, display)

  return offset + length, value
end

-- Quantity Scaling Factor
eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor = {}

-- Size: Quantity Scaling Factor
eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.size = 2

-- Display: Quantity Scaling Factor
eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.display = function(value)
  -- Check if field has value
  if value == 0xFFFF then
    return "Quantity Scaling Factor: No Value"
  end

  return "Quantity Scaling Factor: "..value
end

-- Dissect: Quantity Scaling Factor
eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.quantity_scaling_factor, range, value, display)

  return offset + length, value
end

-- Security Response Id
eurex_derivatives_eti_t7_v13_0.security_response_id = {}

-- Size: Security Response Id
eurex_derivatives_eti_t7_v13_0.security_response_id.size = 8

-- Display: Security Response Id
eurex_derivatives_eti_t7_v13_0.security_response_id.display = function(value)
  -- Check null sentinel value
  if value == UInt64(0xFFFFFFFF, 0xFFFFFFFF) then
    return "Security Response Id: No Value"
  end
  -- Parse unix timestamp
  local seconds = math.floor(value:tonumber()/1000000000)
  local nanoseconds = value:tonumber()%1000000000

  return "Security Response Id: "..os.date("%x %H:%M:%S.", seconds)..string.format("%09d", nanoseconds)
end

-- Dissect: Security Response Id
eurex_derivatives_eti_t7_v13_0.security_response_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.security_response_id.size
  local range = buffer(offset, length)
  local value = range:le_uint64()
  local display = eurex_derivatives_eti_t7_v13_0.security_response_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.security_response_id, range, value, display)

  return offset + length, value
end

-- Add Scaled Simple Instrument Response
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response = {}

-- Read runtime size of: Add Scaled Simple Instrument Response
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Add Scaled Simple Instrument Response
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Add Scaled Simple Instrument Response
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.fields = function(buffer, offset, packet, parent, size_of_add_scaled_simple_instrument_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Update Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_update_time = eurex_derivatives_eti_t7_v13_0.last_update_time.dissect(buffer, index, packet, parent)

  -- Security Response Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, security_response_id = eurex_derivatives_eti_t7_v13_0.security_response_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Quantity Scaling Factor: 2 Byte Unsigned Fixed Width Integer Nullable
  index, quantity_scaling_factor = eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.dissect(buffer, index, packet, parent)

  -- Multileg Model: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, multileg_model = eurex_derivatives_eti_t7_v13_0.multileg_model.dissect(buffer, index, packet, parent)

  -- Implied Market Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, implied_market_indicator = eurex_derivatives_eti_t7_v13_0.implied_market_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Add Scaled Simple Instrument Response
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_add_scaled_simple_instrument_response = eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.add_scaled_simple_instrument_response then
    local range = buffer(offset, size_of_add_scaled_simple_instrument_response)
    local display = eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.add_scaled_simple_instrument_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.fields(buffer, offset, packet, parent, size_of_add_scaled_simple_instrument_response)

  return offset + size_of_add_scaled_simple_instrument_response
end

-- Add Scaled Simple Instrument Request
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request = {}

-- Read runtime size of: Add Scaled Simple Instrument Request
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Add Scaled Simple Instrument Request
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Add Scaled Simple Instrument Request
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.fields = function(buffer, offset, packet, parent, size_of_add_scaled_simple_instrument_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Related Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, related_security_id = eurex_derivatives_eti_t7_v13_0.related_security_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Quantity Scaling Factor: 2 Byte Unsigned Fixed Width Integer Nullable
  index, quantity_scaling_factor = eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.dissect(buffer, index, packet, parent)

  -- Multileg Model: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, multileg_model = eurex_derivatives_eti_t7_v13_0.multileg_model.dissect(buffer, index, packet, parent)

  -- Pad 1: 1 Byte
  index, pad_1 = eurex_derivatives_eti_t7_v13_0.pad_1.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Add Scaled Simple Instrument Request
eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_add_scaled_simple_instrument_request = eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.add_scaled_simple_instrument_request then
    local range = buffer(offset, size_of_add_scaled_simple_instrument_request)
    local display = eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.add_scaled_simple_instrument_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.fields(buffer, offset, packet, parent, size_of_add_scaled_simple_instrument_request)

  return offset + size_of_add_scaled_simple_instrument_request
end

-- Exercise Style
eurex_derivatives_eti_t7_v13_0.exercise_style = {}

-- Size: Exercise Style
eurex_derivatives_eti_t7_v13_0.exercise_style.size = 1

-- Display: Exercise Style
eurex_derivatives_eti_t7_v13_0.exercise_style.display = function(value)
  if value == 0 then
    return "Exercise Style: European (0)"
  end
  if value == 1 then
    return "Exercise Style: American (1)"
  end
  if value == 0xFF then
    return "Exercise Style: No Value"
  end

  return "Exercise Style: Unknown("..value..")"
end

-- Dissect: Exercise Style
eurex_derivatives_eti_t7_v13_0.exercise_style.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.exercise_style.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.exercise_style.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.exercise_style, range, value, display)

  return offset + length, value
end

-- Put Or Call
eurex_derivatives_eti_t7_v13_0.put_or_call = {}

-- Size: Put Or Call
eurex_derivatives_eti_t7_v13_0.put_or_call.size = 1

-- Display: Put Or Call
eurex_derivatives_eti_t7_v13_0.put_or_call.display = function(value)
  if value == 0 then
    return "Put Or Call: Put (0)"
  end
  if value == 1 then
    return "Put Or Call: Call (1)"
  end
  if value == 0xFF then
    return "Put Or Call: No Value"
  end

  return "Put Or Call: Unknown("..value..")"
end

-- Dissect: Put Or Call
eurex_derivatives_eti_t7_v13_0.put_or_call.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.put_or_call.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.put_or_call.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.put_or_call, range, value, display)

  return offset + length, value
end

-- Opt Attribute
eurex_derivatives_eti_t7_v13_0.opt_attribute = {}

-- Size: Opt Attribute
eurex_derivatives_eti_t7_v13_0.opt_attribute.size = 1

-- Display: Opt Attribute
eurex_derivatives_eti_t7_v13_0.opt_attribute.display = function(value)
  -- Check if field has value
  if value == 0xFF then
    return "Opt Attribute: No Value"
  end

  return "Opt Attribute: "..value
end

-- Dissect: Opt Attribute
eurex_derivatives_eti_t7_v13_0.opt_attribute.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.opt_attribute.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.opt_attribute.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.opt_attribute, range, value, display)

  return offset + length, value
end

-- Settl Method
eurex_derivatives_eti_t7_v13_0.settl_method = {}

-- Size: Settl Method
eurex_derivatives_eti_t7_v13_0.settl_method.size = 1

-- Display: Settl Method
eurex_derivatives_eti_t7_v13_0.settl_method.display = function(value)
  -- Check if field has value
  if value == nil or value == 0 then
    return "Settl Method: No Value"
  end

  if value == "C" then
    return "Settl Method: Cash Settlement (C)"
  end
  if value == "P" then
    return "Settl Method: Physical Settlement (P)"
  end

  return "Settl Method: Unknown("..value..")"
end

-- Dissect: Settl Method
eurex_derivatives_eti_t7_v13_0.settl_method.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.settl_method.size
  local range = buffer(offset, length)

  -- parse as byte
  local value = range:uint()

  -- check if value is non zero
  if value ~= 0 then
    value = range:string()
  end

  local display = eurex_derivatives_eti_t7_v13_0.settl_method.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.settl_method, range, value, display)

  return offset + length, value
end

-- Contract Date
eurex_derivatives_eti_t7_v13_0.contract_date = {}

-- Size: Contract Date
eurex_derivatives_eti_t7_v13_0.contract_date.size = 4

-- Display: Contract Date
eurex_derivatives_eti_t7_v13_0.contract_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Contract Date: No Value"
  end

  return "Contract Date: "..value
end

-- Dissect: Contract Date
eurex_derivatives_eti_t7_v13_0.contract_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.contract_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.contract_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.contract_date, range, value, display)

  return offset + length, value
end

-- Maturity Date
eurex_derivatives_eti_t7_v13_0.maturity_date = {}

-- Size: Maturity Date
eurex_derivatives_eti_t7_v13_0.maturity_date.size = 4

-- Display: Maturity Date
eurex_derivatives_eti_t7_v13_0.maturity_date.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Maturity Date: No Value"
  end

  return "Maturity Date: "..value
end

-- Dissect: Maturity Date
eurex_derivatives_eti_t7_v13_0.maturity_date.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.maturity_date.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.maturity_date.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.maturity_date, range, value, display)

  return offset + length, value
end

-- Strike Price
eurex_derivatives_eti_t7_v13_0.strike_price = {}

-- Size: Strike Price
eurex_derivatives_eti_t7_v13_0.strike_price.size = 8

-- Display: Strike Price
eurex_derivatives_eti_t7_v13_0.strike_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Strike Price: No Value"
  end

  return "Strike Price: "..value
end

-- Translate: Strike Price
eurex_derivatives_eti_t7_v13_0.strike_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Strike Price
eurex_derivatives_eti_t7_v13_0.strike_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.strike_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.strike_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.strike_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.strike_price, range, value, display)

  return offset + length, value
end

-- Add Flexible Instrument Response
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response = {}

-- Read runtime size of: Add Flexible Instrument Response
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Add Flexible Instrument Response
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Add Flexible Instrument Response
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.fields = function(buffer, offset, packet, parent, size_of_add_flexible_instrument_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Security Response Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, security_response_id = eurex_derivatives_eti_t7_v13_0.security_response_id.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Strike Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, strike_price = eurex_derivatives_eti_t7_v13_0.strike_price.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Maturity Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_date = eurex_derivatives_eti_t7_v13_0.maturity_date.dissect(buffer, index, packet, parent)

  -- Contract Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, contract_date = eurex_derivatives_eti_t7_v13_0.contract_date.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- Settl Method: 1 Byte Ascii String Enum with 2 values
  index, settl_method = eurex_derivatives_eti_t7_v13_0.settl_method.dissect(buffer, index, packet, parent)

  -- Opt Attribute: 1 Byte Unsigned Fixed Width Integer Nullable
  index, opt_attribute = eurex_derivatives_eti_t7_v13_0.opt_attribute.dissect(buffer, index, packet, parent)

  -- Put Or Call: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, put_or_call = eurex_derivatives_eti_t7_v13_0.put_or_call.dissect(buffer, index, packet, parent)

  -- Exercise Style: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, exercise_style = eurex_derivatives_eti_t7_v13_0.exercise_style.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Add Flexible Instrument Response
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_add_flexible_instrument_response = eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.add_flexible_instrument_response then
    local range = buffer(offset, size_of_add_flexible_instrument_response)
    local display = eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.add_flexible_instrument_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.fields(buffer, offset, packet, parent, size_of_add_flexible_instrument_response)

  return offset + size_of_add_flexible_instrument_response
end

-- Add Flexible Instrument Request
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request = {}

-- Read runtime size of: Add Flexible Instrument Request
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Add Flexible Instrument Request
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Add Flexible Instrument Request
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.fields = function(buffer, offset, packet, parent, size_of_add_flexible_instrument_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Strike Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, strike_price = eurex_derivatives_eti_t7_v13_0.strike_price.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Maturity Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, maturity_date = eurex_derivatives_eti_t7_v13_0.maturity_date.dissect(buffer, index, packet, parent)

  -- Contract Date: 4 Byte Unsigned Fixed Width Integer Nullable
  index, contract_date = eurex_derivatives_eti_t7_v13_0.contract_date.dissect(buffer, index, packet, parent)

  -- Settl Method: 1 Byte Ascii String Enum with 2 values
  index, settl_method = eurex_derivatives_eti_t7_v13_0.settl_method.dissect(buffer, index, packet, parent)

  -- Opt Attribute: 1 Byte Unsigned Fixed Width Integer Nullable
  index, opt_attribute = eurex_derivatives_eti_t7_v13_0.opt_attribute.dissect(buffer, index, packet, parent)

  -- Put Or Call: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, put_or_call = eurex_derivatives_eti_t7_v13_0.put_or_call.dissect(buffer, index, packet, parent)

  -- Exercise Style: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, exercise_style = eurex_derivatives_eti_t7_v13_0.exercise_style.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 4: 4 Byte
  index, pad_4 = eurex_derivatives_eti_t7_v13_0.pad_4.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Add Flexible Instrument Request
eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_add_flexible_instrument_request = eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.add_flexible_instrument_request then
    local range = buffer(offset, size_of_add_flexible_instrument_request)
    local display = eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.add_flexible_instrument_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.fields(buffer, offset, packet, parent, size_of_add_flexible_instrument_request)

  return offset + size_of_add_flexible_instrument_request
end

-- Instrmt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp = {}

-- Size: Instrmt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.size =
  eurex_derivatives_eti_t7_v13_0.leg_security_id.size + 
  eurex_derivatives_eti_t7_v13_0.leg_price.size + 
  eurex_derivatives_eti_t7_v13_0.leg_symbol.size + 
  eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.size + 
  eurex_derivatives_eti_t7_v13_0.leg_side.size + 
  eurex_derivatives_eti_t7_v13_0.leg_security_type.size + 
  eurex_derivatives_eti_t7_v13_0.pad_6.size

-- Display: Instrmt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Instrmt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.fields = function(buffer, offset, packet, parent, instrmt_leg_grp_comp_index)
  local index = offset

  -- Implicit Instrmt Leg Grp Comp Index
  if instrmt_leg_grp_comp_index ~= nil then
    local iteration = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_leg_grp_comp_index, instrmt_leg_grp_comp_index)
    iteration:set_generated()
  end

  -- Leg Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, leg_security_id = eurex_derivatives_eti_t7_v13_0.leg_security_id.dissect(buffer, index, packet, parent)

  -- Leg Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, leg_price = eurex_derivatives_eti_t7_v13_0.leg_price.dissect(buffer, index, packet, parent)

  -- Leg Symbol: 4 Byte Signed Fixed Width Integer Nullable
  index, leg_symbol = eurex_derivatives_eti_t7_v13_0.leg_symbol.dissect(buffer, index, packet, parent)

  -- Leg Ratio Qty: 4 Byte Unsigned Fixed Width Integer Nullable
  index, leg_ratio_qty = eurex_derivatives_eti_t7_v13_0.leg_ratio_qty.dissect(buffer, index, packet, parent)

  -- Leg Side: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, leg_side = eurex_derivatives_eti_t7_v13_0.leg_side.dissect(buffer, index, packet, parent)

  -- Leg Security Type: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, leg_security_type = eurex_derivatives_eti_t7_v13_0.leg_security_type.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Instrmt Leg Grp Comp
eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.dissect = function(buffer, offset, packet, parent, instrmt_leg_grp_comp_index)
  if show.instrmt_leg_grp_comp then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.instrmt_leg_grp_comp, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.fields(buffer, offset, packet, parent, instrmt_leg_grp_comp_index)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.fields(buffer, offset, packet, parent, instrmt_leg_grp_comp_index)
  end
end

-- Number Of Securities
eurex_derivatives_eti_t7_v13_0.number_of_securities = {}

-- Size: Number Of Securities
eurex_derivatives_eti_t7_v13_0.number_of_securities.size = 4

-- Display: Number Of Securities
eurex_derivatives_eti_t7_v13_0.number_of_securities.display = function(value)
  -- Check if field has value
  if value == 0x80000000 then
    return "Number Of Securities: No Value"
  end

  return "Number Of Securities: "..value
end

-- Dissect: Number Of Securities
eurex_derivatives_eti_t7_v13_0.number_of_securities.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.number_of_securities.size
  local range = buffer(offset, length)
  local value = range:le_int()
  local display = eurex_derivatives_eti_t7_v13_0.number_of_securities.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.number_of_securities, range, value, display)

  return offset + length, value
end

-- High Limit Price
eurex_derivatives_eti_t7_v13_0.high_limit_price = {}

-- Size: High Limit Price
eurex_derivatives_eti_t7_v13_0.high_limit_price.size = 8

-- Display: High Limit Price
eurex_derivatives_eti_t7_v13_0.high_limit_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "High Limit Price: No Value"
  end

  return "High Limit Price: "..value
end

-- Translate: High Limit Price
eurex_derivatives_eti_t7_v13_0.high_limit_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: High Limit Price
eurex_derivatives_eti_t7_v13_0.high_limit_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.high_limit_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.high_limit_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.high_limit_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.high_limit_price, range, value, display)

  return offset + length, value
end

-- Low Limit Price
eurex_derivatives_eti_t7_v13_0.low_limit_price = {}

-- Size: Low Limit Price
eurex_derivatives_eti_t7_v13_0.low_limit_price.size = 8

-- Display: Low Limit Price
eurex_derivatives_eti_t7_v13_0.low_limit_price.display = function(raw, value)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return "Low Limit Price: No Value"
  end

  return "Low Limit Price: "..value
end

-- Translate: Low Limit Price
eurex_derivatives_eti_t7_v13_0.low_limit_price.translate = function(raw)
  -- Check null sentinel value
  if raw == UInt64(0x00000000, 0x80000000) then
    return 0/0
  end

  return raw:tonumber()/100000000
end

-- Dissect: Low Limit Price
eurex_derivatives_eti_t7_v13_0.low_limit_price.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.low_limit_price.size
  local range = buffer(offset, length)
  local raw = range:le_uint64()
  local value = eurex_derivatives_eti_t7_v13_0.low_limit_price.translate(raw)
  local display = eurex_derivatives_eti_t7_v13_0.low_limit_price.display(raw, value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.low_limit_price, range, value, display)

  return offset + length, value
end

-- Add Complex Instrument Response
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response = {}

-- Read runtime size of: Add Complex Instrument Response
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Add Complex Instrument Response
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Add Complex Instrument Response
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.fields = function(buffer, offset, packet, parent, size_of_add_complex_instrument_response)
  local index = offset

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Nr Response Header Me Comp: Struct of 8 fields
  index, nr_response_header_me_comp = eurex_derivatives_eti_t7_v13_0.nr_response_header_me_comp.dissect(buffer, index, packet, parent)

  -- Low Limit Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, low_limit_price = eurex_derivatives_eti_t7_v13_0.low_limit_price.dissect(buffer, index, packet, parent)

  -- High Limit Price: 8 Byte Unsigned Fixed Width Integer Nullable
  index, high_limit_price = eurex_derivatives_eti_t7_v13_0.high_limit_price.dissect(buffer, index, packet, parent)

  -- Security Id: 8 Byte Signed Fixed Width Integer Nullable
  index, security_id = eurex_derivatives_eti_t7_v13_0.security_id.dissect(buffer, index, packet, parent)

  -- Last Update Time: 8 Byte Unsigned Fixed Width Integer Nullable
  index, last_update_time = eurex_derivatives_eti_t7_v13_0.last_update_time.dissect(buffer, index, packet, parent)

  -- Security Response Id: 8 Byte Unsigned Fixed Width Integer Nullable
  index, security_response_id = eurex_derivatives_eti_t7_v13_0.security_response_id.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Number Of Securities: 4 Byte Signed Fixed Width Integer Nullable
  index, number_of_securities = eurex_derivatives_eti_t7_v13_0.number_of_securities.dissect(buffer, index, packet, parent)

  -- Security Sub Type: 4 Byte Signed Fixed Width Integer Nullable
  index, security_sub_type = eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect(buffer, index, packet, parent)

  -- Quantity Scaling Factor: 2 Byte Unsigned Fixed Width Integer Nullable
  index, quantity_scaling_factor = eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.dissect(buffer, index, packet, parent)

  -- Multileg Model: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, multileg_model = eurex_derivatives_eti_t7_v13_0.multileg_model.dissect(buffer, index, packet, parent)

  -- Implied Market Indicator: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, implied_market_indicator = eurex_derivatives_eti_t7_v13_0.implied_market_indicator.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- No Leg Onbooks: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_onbooks = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect(buffer, index, packet, parent)

  -- Pad 6: 6 Byte
  index, pad_6 = eurex_derivatives_eti_t7_v13_0.pad_6.dissect(buffer, index, packet, parent)

  -- Repeating: Instrmt Leg Grp Comp
  for instrmt_leg_grp_comp_index = 1, no_leg_onbooks do
    index, instrmt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.dissect(buffer, index, packet, parent, instrmt_leg_grp_comp_index)
  end

  return index
end

-- Dissect: Add Complex Instrument Response
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_add_complex_instrument_response = eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.add_complex_instrument_response then
    local range = buffer(offset, size_of_add_complex_instrument_response)
    local display = eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.add_complex_instrument_response, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.fields(buffer, offset, packet, parent, size_of_add_complex_instrument_response)

  return offset + size_of_add_complex_instrument_response
end

-- Add Complex Instrument Request
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request = {}

-- Read runtime size of: Add Complex Instrument Request
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.size = function(buffer, offset)
  local index = offset

  -- Dependency element: Body Len
  local body_len = buffer(offset - 6, 4):le_uint()

  return body_len - 6
end

-- Display: Add Complex Instrument Request
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Add Complex Instrument Request
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.fields = function(buffer, offset, packet, parent, size_of_add_complex_instrument_request)
  local index = offset

  -- Network Msg Id: 8 Byte Ascii String Nullable
  index, network_msg_id = eurex_derivatives_eti_t7_v13_0.network_msg_id.dissect(buffer, index, packet, parent)

  -- Pad 2: 2 Byte
  index, pad_2 = eurex_derivatives_eti_t7_v13_0.pad_2.dissect(buffer, index, packet, parent)

  -- Request Header Comp: Struct of 2 fields
  index, request_header_comp = eurex_derivatives_eti_t7_v13_0.request_header_comp.dissect(buffer, index, packet, parent)

  -- Market Segment Id: 4 Byte Signed Fixed Width Integer Nullable
  index, market_segment_id = eurex_derivatives_eti_t7_v13_0.market_segment_id.dissect(buffer, index, packet, parent)

  -- Security Sub Type: 4 Byte Signed Fixed Width Integer Nullable
  index, security_sub_type = eurex_derivatives_eti_t7_v13_0.security_sub_type.dissect(buffer, index, packet, parent)

  -- Quantity Scaling Factor: 2 Byte Unsigned Fixed Width Integer Nullable
  index, quantity_scaling_factor = eurex_derivatives_eti_t7_v13_0.quantity_scaling_factor.dissect(buffer, index, packet, parent)

  -- Product Complex: 1 Byte Unsigned Fixed Width Integer Enum with 14 values
  index, product_complex = eurex_derivatives_eti_t7_v13_0.product_complex.dissect(buffer, index, packet, parent)

  -- No Leg Onbooks: 1 Byte Unsigned Fixed Width Integer Nullable
  index, no_leg_onbooks = eurex_derivatives_eti_t7_v13_0.no_leg_onbooks.dissect(buffer, index, packet, parent)

  -- Multileg Model: 1 Byte Unsigned Fixed Width Integer Enum with 3 values
  index, multileg_model = eurex_derivatives_eti_t7_v13_0.multileg_model.dissect(buffer, index, packet, parent)

  -- Compliance Text: 20 Byte Ascii String Nullable
  index, compliance_text = eurex_derivatives_eti_t7_v13_0.compliance_text.dissect(buffer, index, packet, parent)

  -- Pad 7: 7 Byte
  index, pad_7 = eurex_derivatives_eti_t7_v13_0.pad_7.dissect(buffer, index, packet, parent)

  -- Repeating: Instrmt Leg Grp Comp
  for instrmt_leg_grp_comp_index = 1, no_leg_onbooks do
    index, instrmt_leg_grp_comp = eurex_derivatives_eti_t7_v13_0.instrmt_leg_grp_comp.dissect(buffer, index, packet, parent, instrmt_leg_grp_comp_index)
  end

  return index
end

-- Dissect: Add Complex Instrument Request
eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.dissect = function(buffer, offset, packet, parent)
  -- Parse runtime size
  local size_of_add_complex_instrument_request = eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.size(buffer, offset)

  -- Optionally add struct element to protocol tree
  if show.add_complex_instrument_request then
    local range = buffer(offset, size_of_add_complex_instrument_request)
    local display = eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.display(buffer, packet, parent)
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.add_complex_instrument_request, range, display)
  end

  eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.fields(buffer, offset, packet, parent, size_of_add_complex_instrument_request)

  return offset + size_of_add_complex_instrument_request
end

-- Payload
eurex_derivatives_eti_t7_v13_0.payload = {}

-- Size: Payload
eurex_derivatives_eti_t7_v13_0.payload.size = function(buffer, offset, template_id)
  -- Size of Add Complex Instrument Request
  if template_id == 10301 then
    return eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.size(buffer, offset)
  end
  -- Size of Add Complex Instrument Response
  if template_id == 10302 then
    return eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.size(buffer, offset)
  end
  -- Size of Add Flexible Instrument Request
  if template_id == 10309 then
    return eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.size(buffer, offset)
  end
  -- Size of Add Flexible Instrument Response
  if template_id == 10310 then
    return eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.size(buffer, offset)
  end
  -- Size of Add Scaled Simple Instrument Request
  if template_id == 10327 then
    return eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.size(buffer, offset)
  end
  -- Size of Add Scaled Simple Instrument Response
  if template_id == 10328 then
    return eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.size(buffer, offset)
  end
  -- Size of Amend Basket Trade Request
  if template_id == 10629 then
    return eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.size(buffer, offset)
  end
  -- Size of Approve Basket Trade Request
  if template_id == 10623 then
    return eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.size(buffer, offset)
  end
  -- Size of Approve Reverse Tes Trade Request
  if template_id == 10631 then
    return eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.size(buffer, offset)
  end
  -- Size of Approve Tes Trade Request
  if template_id == 10603 then
    return eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.size(buffer, offset)
  end
  -- Size of Basket Approve Broadcast
  if template_id == 10627 then
    return eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.size(buffer, offset)
  end
  -- Size of Basket Broadcast
  if template_id == 10625 then
    return eurex_derivatives_eti_t7_v13_0.basket_broadcast.size(buffer, offset)
  end
  -- Size of Basket Delete Broadcast
  if template_id == 10626 then
    return eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.size(buffer, offset)
  end
  -- Size of Basket Execution Broadcast
  if template_id == 10628 then
    return eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.size(buffer, offset)
  end
  -- Size of Basket Response
  if template_id == 10624 then
    return eurex_derivatives_eti_t7_v13_0.basket_response.size(buffer, offset)
  end
  -- Size of Basket Roll Broadcast
  if template_id == 10634 then
    return eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.size(buffer, offset)
  end
  -- Size of Basket Roll Request
  if template_id == 10633 then
    return eurex_derivatives_eti_t7_v13_0.basket_roll_request.size(buffer, offset)
  end
  -- Size of Broadcast Error Notification
  if template_id == 10032 then
    return eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.size(buffer, offset)
  end
  -- Size of Clip Deletion Notification
  if template_id == 10134 then
    return eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.size(buffer, offset)
  end
  -- Size of Clip Execution Notification
  if template_id == 10135 then
    return eurex_derivatives_eti_t7_v13_0.clip_execution_notification.size(buffer, offset)
  end
  -- Size of Clip Response
  if template_id == 10133 then
    return eurex_derivatives_eti_t7_v13_0.clip_response.size(buffer, offset)
  end
  -- Size of Cross Request
  if template_id == 10118 then
    return eurex_derivatives_eti_t7_v13_0.cross_request.size(buffer, offset)
  end
  -- Size of Cross Request Response
  if template_id == 10119 then
    return eurex_derivatives_eti_t7_v13_0.cross_request_response.size(buffer, offset)
  end
  -- Size of Delete All Order Broadcast
  if template_id == 10122 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.size(buffer, offset)
  end
  -- Size of Delete All Order Nr Response
  if template_id == 10124 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.size(buffer, offset)
  end
  -- Size of Delete All Order Quote Event Broadcast
  if template_id == 10308 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.size(buffer, offset)
  end
  -- Size of Delete All Order Request
  if template_id == 10120 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_request.size(buffer, offset)
  end
  -- Size of Delete All Order Response
  if template_id == 10121 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_response.size(buffer, offset)
  end
  -- Size of Delete All Quote Broadcast
  if template_id == 10410 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.size(buffer, offset)
  end
  -- Size of Delete All Quote Request
  if template_id == 10408 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.size(buffer, offset)
  end
  -- Size of Delete All Quote Response
  if template_id == 10409 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.size(buffer, offset)
  end
  -- Size of Delete Basket Trade Request
  if template_id == 10622 then
    return eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.size(buffer, offset)
  end
  -- Size of Delete Clip Request
  if template_id == 10132 then
    return eurex_derivatives_eti_t7_v13_0.delete_clip_request.size(buffer, offset)
  end
  -- Size of Delete Order Broadcast
  if template_id == 10112 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.size(buffer, offset)
  end
  -- Size of Delete Order Complex Request
  if template_id == 10123 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.size(buffer, offset)
  end
  -- Size of Delete Order Nr Response
  if template_id == 10111 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.size(buffer, offset)
  end
  -- Size of Delete Order Request
  if template_id == 10142 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_request.size(buffer, offset)
  end
  -- Size of Delete Order Response
  if template_id == 10110 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_response.size(buffer, offset)
  end
  -- Size of Delete Order Single Request
  if template_id == 10109 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_single_request.size(buffer, offset)
  end
  -- Size of Delete Tes Trade Request
  if template_id == 10602 then
    return eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.size(buffer, offset)
  end
  -- Size of Enter Basket Trade Request
  if template_id == 10620 then
    return eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.size(buffer, offset)
  end
  -- Size of Enter Clip Request
  if template_id == 10131 then
    return eurex_derivatives_eti_t7_v13_0.enter_clip_request.size(buffer, offset)
  end
  -- Size of Enter Tes Trade Request
  if template_id == 10600 then
    return eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.size(buffer, offset)
  end
  -- Size of Forced Logout Notification
  if template_id == 10012 then
    return eurex_derivatives_eti_t7_v13_0.forced_logout_notification.size(buffer, offset)
  end
  -- Size of Forced User Logout Notification
  if template_id == 10043 then
    return eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.size(buffer, offset)
  end
  -- Size of Heartbeat
  if template_id == 10011 then
    return eurex_derivatives_eti_t7_v13_0.heartbeat.size(buffer, offset)
  end
  -- Size of Heartbeat Notification
  if template_id == 10023 then
    return eurex_derivatives_eti_t7_v13_0.heartbeat_notification.size(buffer, offset)
  end
  -- Size of Inquire Enrichment Rule Id List Request
  if template_id == 10040 then
    return eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.size(buffer, offset)
  end
  -- Size of Inquire Enrichment Rule Id List Response
  if template_id == 10041 then
    return eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.size(buffer, offset)
  end
  -- Size of Inquire Mm Parameter Request
  if template_id == 10305 then
    return eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.size(buffer, offset)
  end
  -- Size of Inquire Mm Parameter Response
  if template_id == 10306 then
    return eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.size(buffer, offset)
  end
  -- Size of Inquire Margin Based Risk Limit Request
  if template_id == 10323 then
    return eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.size(buffer, offset)
  end
  -- Size of Inquire Margin Based Risk Limit Response
  if template_id == 10324 then
    return eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.size(buffer, offset)
  end
  -- Size of Inquire Pre Trade Risk Limits Request
  if template_id == 10311 then
    return eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.size(buffer, offset)
  end
  -- Size of Inquire Session List Request
  if template_id == 10035 then
    return eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.size(buffer, offset)
  end
  -- Size of Inquire Session List Response
  if template_id == 10036 then
    return eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.size(buffer, offset)
  end
  -- Size of Inquire User Request
  if template_id == 10038 then
    return eurex_derivatives_eti_t7_v13_0.inquire_user_request.size(buffer, offset)
  end
  -- Size of Inquire User Response
  if template_id == 10039 then
    return eurex_derivatives_eti_t7_v13_0.inquire_user_response.size(buffer, offset)
  end
  -- Size of Legal Notification Broadcast
  if template_id == 10037 then
    return eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.size(buffer, offset)
  end
  -- Size of Logon Request
  if template_id == 10000 then
    return eurex_derivatives_eti_t7_v13_0.logon_request.size(buffer, offset)
  end
  -- Size of Logon Request Encrypted
  if template_id == 19000 then
    return eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.size(buffer, offset)
  end
  -- Size of Logon Response
  if template_id == 10001 then
    return eurex_derivatives_eti_t7_v13_0.logon_response.size(buffer, offset)
  end
  -- Size of Logout Request
  if template_id == 10002 then
    return eurex_derivatives_eti_t7_v13_0.logout_request.size(buffer, offset)
  end
  -- Size of Logout Response
  if template_id == 10003 then
    return eurex_derivatives_eti_t7_v13_0.logout_response.size(buffer, offset)
  end
  -- Size of Mm Parameter Definition Request
  if template_id == 10303 then
    return eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.size(buffer, offset)
  end
  -- Size of Mm Parameter Definition Response
  if template_id == 10304 then
    return eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.size(buffer, offset)
  end
  -- Size of Mass Order
  if template_id == 10115 then
    return eurex_derivatives_eti_t7_v13_0.mass_order.size(buffer, offset)
  end
  -- Size of Mass Order Ack
  if template_id == 10116 then
    return eurex_derivatives_eti_t7_v13_0.mass_order_ack.size(buffer, offset)
  end
  -- Size of Mass Quote Request
  if template_id == 10405 then
    return eurex_derivatives_eti_t7_v13_0.mass_quote_request.size(buffer, offset)
  end
  -- Size of Mass Quote Response
  if template_id == 10406 then
    return eurex_derivatives_eti_t7_v13_0.mass_quote_response.size(buffer, offset)
  end
  -- Size of Modify Basket Trade Request
  if template_id == 10621 then
    return eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.size(buffer, offset)
  end
  -- Size of Modify Order Complex Request
  if template_id == 10114 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.size(buffer, offset)
  end
  -- Size of Modify Order Complex Short Request
  if template_id == 10130 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.size(buffer, offset)
  end
  -- Size of Modify Order Nr Response
  if template_id == 10108 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.size(buffer, offset)
  end
  -- Size of Modify Order Request
  if template_id == 10140 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_request.size(buffer, offset)
  end
  -- Size of Modify Order Response
  if template_id == 10107 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_response.size(buffer, offset)
  end
  -- Size of Modify Order Short Request
  if template_id == 10141 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_short_request.size(buffer, offset)
  end
  -- Size of Modify Order Single Request
  if template_id == 10106 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_single_request.size(buffer, offset)
  end
  -- Size of Modify Order Single Short Request
  if template_id == 10126 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.size(buffer, offset)
  end
  -- Size of Modify Tes Trade Request
  if template_id == 10601 then
    return eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.size(buffer, offset)
  end
  -- Size of New Order Complex Request
  if template_id == 10113 then
    return eurex_derivatives_eti_t7_v13_0.new_order_complex_request.size(buffer, offset)
  end
  -- Size of New Order Complex Short Request
  if template_id == 10129 then
    return eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.size(buffer, offset)
  end
  -- Size of New Order Nr Response
  if template_id == 10102 then
    return eurex_derivatives_eti_t7_v13_0.new_order_nr_response.size(buffer, offset)
  end
  -- Size of New Order Request
  if template_id == 10138 then
    return eurex_derivatives_eti_t7_v13_0.new_order_request.size(buffer, offset)
  end
  -- Size of New Order Response
  if template_id == 10101 then
    return eurex_derivatives_eti_t7_v13_0.new_order_response.size(buffer, offset)
  end
  -- Size of New Order Short Request
  if template_id == 10139 then
    return eurex_derivatives_eti_t7_v13_0.new_order_short_request.size(buffer, offset)
  end
  -- Size of New Order Single Request
  if template_id == 10100 then
    return eurex_derivatives_eti_t7_v13_0.new_order_single_request.size(buffer, offset)
  end
  -- Size of New Order Single Short Request
  if template_id == 10125 then
    return eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.size(buffer, offset)
  end
  -- Size of News Broadcast
  if template_id == 10031 then
    return eurex_derivatives_eti_t7_v13_0.news_broadcast.size(buffer, offset)
  end
  -- Size of Order Exec Notification
  if template_id == 10104 then
    return eurex_derivatives_eti_t7_v13_0.order_exec_notification.size(buffer, offset)
  end
  -- Size of Order Exec Report Broadcast
  if template_id == 10117 then
    return eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.size(buffer, offset)
  end
  -- Size of Order Exec Response
  if template_id == 10103 then
    return eurex_derivatives_eti_t7_v13_0.order_exec_response.size(buffer, offset)
  end
  -- Size of Party Action Report
  if template_id == 10042 then
    return eurex_derivatives_eti_t7_v13_0.party_action_report.size(buffer, offset)
  end
  -- Size of Party Entitlements Update Report
  if template_id == 10034 then
    return eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.size(buffer, offset)
  end
  -- Size of Ping Request
  if template_id == 10320 then
    return eurex_derivatives_eti_t7_v13_0.ping_request.size(buffer, offset)
  end
  -- Size of Ping Response
  if template_id == 10321 then
    return eurex_derivatives_eti_t7_v13_0.ping_response.size(buffer, offset)
  end
  -- Size of Pre Trade Risk Limit Response
  if template_id == 10313 then
    return eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.size(buffer, offset)
  end
  -- Size of Pre Trade Risk Limits Definition Request
  if template_id == 10312 then
    return eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.size(buffer, offset)
  end
  -- Size of Quote Activation Notification
  if template_id == 10411 then
    return eurex_derivatives_eti_t7_v13_0.quote_activation_notification.size(buffer, offset)
  end
  -- Size of Quote Activation Request
  if template_id == 10403 then
    return eurex_derivatives_eti_t7_v13_0.quote_activation_request.size(buffer, offset)
  end
  -- Size of Quote Activation Response
  if template_id == 10404 then
    return eurex_derivatives_eti_t7_v13_0.quote_activation_response.size(buffer, offset)
  end
  -- Size of Quote Execution Report
  if template_id == 10407 then
    return eurex_derivatives_eti_t7_v13_0.quote_execution_report.size(buffer, offset)
  end
  -- Size of Rfq Request
  if template_id == 10401 then
    return eurex_derivatives_eti_t7_v13_0.rfq_request.size(buffer, offset)
  end
  -- Size of Rfq Response
  if template_id == 10402 then
    return eurex_derivatives_eti_t7_v13_0.rfq_response.size(buffer, offset)
  end
  -- Size of Reject
  if template_id == 10010 then
    return eurex_derivatives_eti_t7_v13_0.reject.size(buffer, offset)
  end
  -- Size of Retransmit Me Message Request
  if template_id == 10026 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.size(buffer, offset)
  end
  -- Size of Retransmit Me Message Response
  if template_id == 10027 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.size(buffer, offset)
  end
  -- Size of Retransmit Request
  if template_id == 10008 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_request.size(buffer, offset)
  end
  -- Size of Retransmit Response
  if template_id == 10009 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_response.size(buffer, offset)
  end
  -- Size of Reverse Tes Trade Request
  if template_id == 10630 then
    return eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.size(buffer, offset)
  end
  -- Size of Risk Notification Broadcast
  if template_id == 10033 then
    return eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.size(buffer, offset)
  end
  -- Size of Srqs Create Deal Notification
  if template_id == 10708 then
    return eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.size(buffer, offset)
  end
  -- Size of Srqs Deal Notification
  if template_id == 10709 then
    return eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.size(buffer, offset)
  end
  -- Size of Srqs Deal Response
  if template_id == 10705 then
    return eurex_derivatives_eti_t7_v13_0.srqs_deal_response.size(buffer, offset)
  end
  -- Size of Srqs Enter Quote Request
  if template_id == 10702 then
    return eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.size(buffer, offset)
  end
  -- Size of Srqs Hit Quote Request
  if template_id == 10704 then
    return eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.size(buffer, offset)
  end
  -- Size of Srqs Inquire Smart Respondent Request
  if template_id == 10718 then
    return eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.size(buffer, offset)
  end
  -- Size of Srqs Inquire Smart Respondent Response
  if template_id == 10719 then
    return eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.size(buffer, offset)
  end
  -- Size of Srqs Negotiation Notification
  if template_id == 10713 then
    return eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.size(buffer, offset)
  end
  -- Size of Srqs Negotiation Requester Notification
  if template_id == 10712 then
    return eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.size(buffer, offset)
  end
  -- Size of Srqs Negotiation Status Notification
  if template_id == 10715 then
    return eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.size(buffer, offset)
  end
  -- Size of Srqs Open Negotiation Notification
  if template_id == 10711 then
    return eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.size(buffer, offset)
  end
  -- Size of Srqs Open Negotiation Request
  if template_id == 10700 then
    return eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.size(buffer, offset)
  end
  -- Size of Srqs Open Negotiation Requester Notification
  if template_id == 10710 then
    return eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.size(buffer, offset)
  end
  -- Size of Srqs Quote Notification
  if template_id == 10707 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.size(buffer, offset)
  end
  -- Size of Srqs Quote Response
  if template_id == 10703 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_response.size(buffer, offset)
  end
  -- Size of Srqs Quote Snapshot Notification
  if template_id == 10723 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.size(buffer, offset)
  end
  -- Size of Srqs Quote Snapshot Request
  if template_id == 10720 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.size(buffer, offset)
  end
  -- Size of Srqs Quoting Status Request
  if template_id == 10717 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.size(buffer, offset)
  end
  -- Size of Srqs Response
  if template_id == 10722 then
    return eurex_derivatives_eti_t7_v13_0.srqs_response.size(buffer, offset)
  end
  -- Size of Srqs Status Broadcast
  if template_id == 10714 then
    return eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.size(buffer, offset)
  end
  -- Size of Srqs Update Deal Status Request
  if template_id == 10706 then
    return eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.size(buffer, offset)
  end
  -- Size of Srqs Update Negotiation Request
  if template_id == 10701 then
    return eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.size(buffer, offset)
  end
  -- Size of Service Availability Broadcast
  if template_id == 10030 then
    return eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.size(buffer, offset)
  end
  -- Size of Service Availability Market Broadcast
  if template_id == 10044 then
    return eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.size(buffer, offset)
  end
  -- Size of Status Broadcast
  if template_id == 10045 then
    return eurex_derivatives_eti_t7_v13_0.status_broadcast.size(buffer, offset)
  end
  -- Size of Subscribe Request
  if template_id == 10025 then
    return eurex_derivatives_eti_t7_v13_0.subscribe_request.size(buffer, offset)
  end
  -- Size of Subscribe Response
  if template_id == 10005 then
    return eurex_derivatives_eti_t7_v13_0.subscribe_response.size(buffer, offset)
  end
  -- Size of Tes Approve Broadcast
  if template_id == 10607 then
    return eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.size(buffer, offset)
  end
  -- Size of Tes Broadcast
  if template_id == 10604 then
    return eurex_derivatives_eti_t7_v13_0.tes_broadcast.size(buffer, offset)
  end
  -- Size of Tes Delete Broadcast
  if template_id == 10606 then
    return eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.size(buffer, offset)
  end
  -- Size of Tes Execution Broadcast
  if template_id == 10610 then
    return eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.size(buffer, offset)
  end
  -- Size of Tes Response
  if template_id == 10611 then
    return eurex_derivatives_eti_t7_v13_0.tes_response.size(buffer, offset)
  end
  -- Size of Tes Reversal Broadcast
  if template_id == 10632 then
    return eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.size(buffer, offset)
  end
  -- Size of Tes Trade Broadcast
  if template_id == 10614 then
    return eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.size(buffer, offset)
  end
  -- Size of Tes Trading Session Status Broadcast
  if template_id == 10615 then
    return eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.size(buffer, offset)
  end
  -- Size of Tes Upload Broadcast
  if template_id == 10613 then
    return eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.size(buffer, offset)
  end
  -- Size of Tm Trading Session Status Broadcast
  if template_id == 10501 then
    return eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.size(buffer, offset)
  end
  -- Size of Throttle Update Notification
  if template_id == 10028 then
    return eurex_derivatives_eti_t7_v13_0.throttle_update_notification.size(buffer, offset)
  end
  -- Size of Trade Broadcast
  if template_id == 10500 then
    return eurex_derivatives_eti_t7_v13_0.trade_broadcast.size(buffer, offset)
  end
  -- Size of Trading Session Status Broadcast
  if template_id == 10307 then
    return eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.size(buffer, offset)
  end
  -- Size of Unsubscribe Request
  if template_id == 10006 then
    return eurex_derivatives_eti_t7_v13_0.unsubscribe_request.size(buffer, offset)
  end
  -- Size of Unsubscribe Response
  if template_id == 10007 then
    return eurex_derivatives_eti_t7_v13_0.unsubscribe_response.size(buffer, offset)
  end
  -- Size of Update Remaining Risk Allowance Base Request
  if template_id == 10325 then
    return eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.size(buffer, offset)
  end
  -- Size of Update Remaining Risk Allowance Base Response
  if template_id == 10326 then
    return eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.size(buffer, offset)
  end
  -- Size of Upload Tes Trade Request
  if template_id == 10612 then
    return eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.size(buffer, offset)
  end
  -- Size of User Login Request
  if template_id == 10018 then
    return eurex_derivatives_eti_t7_v13_0.user_login_request.size(buffer, offset)
  end
  -- Size of User Login Request Encrypted
  if template_id == 19018 then
    return eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.size(buffer, offset)
  end
  -- Size of User Login Response
  if template_id == 10019 then
    return eurex_derivatives_eti_t7_v13_0.user_login_response.size(buffer, offset)
  end
  -- Size of User Logout Request
  if template_id == 10029 then
    return eurex_derivatives_eti_t7_v13_0.user_logout_request.size(buffer, offset)
  end
  -- Size of User Logout Response
  if template_id == 10024 then
    return eurex_derivatives_eti_t7_v13_0.user_logout_response.size(buffer, offset)
  end

  return 0
end

-- Display: Payload
eurex_derivatives_eti_t7_v13_0.payload.display = function(buffer, offset, packet, parent)
  return ""
end

-- Dissect Branches: Payload
eurex_derivatives_eti_t7_v13_0.payload.branches = function(buffer, offset, packet, parent, template_id)
  -- Dissect Add Complex Instrument Request
  if template_id == 10301 then
    return eurex_derivatives_eti_t7_v13_0.add_complex_instrument_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Add Complex Instrument Response
  if template_id == 10302 then
    return eurex_derivatives_eti_t7_v13_0.add_complex_instrument_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Add Flexible Instrument Request
  if template_id == 10309 then
    return eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Add Flexible Instrument Response
  if template_id == 10310 then
    return eurex_derivatives_eti_t7_v13_0.add_flexible_instrument_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Add Scaled Simple Instrument Request
  if template_id == 10327 then
    return eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Add Scaled Simple Instrument Response
  if template_id == 10328 then
    return eurex_derivatives_eti_t7_v13_0.add_scaled_simple_instrument_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Amend Basket Trade Request
  if template_id == 10629 then
    return eurex_derivatives_eti_t7_v13_0.amend_basket_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Approve Basket Trade Request
  if template_id == 10623 then
    return eurex_derivatives_eti_t7_v13_0.approve_basket_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Approve Reverse Tes Trade Request
  if template_id == 10631 then
    return eurex_derivatives_eti_t7_v13_0.approve_reverse_tes_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Approve Tes Trade Request
  if template_id == 10603 then
    return eurex_derivatives_eti_t7_v13_0.approve_tes_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Basket Approve Broadcast
  if template_id == 10627 then
    return eurex_derivatives_eti_t7_v13_0.basket_approve_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Basket Broadcast
  if template_id == 10625 then
    return eurex_derivatives_eti_t7_v13_0.basket_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Basket Delete Broadcast
  if template_id == 10626 then
    return eurex_derivatives_eti_t7_v13_0.basket_delete_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Basket Execution Broadcast
  if template_id == 10628 then
    return eurex_derivatives_eti_t7_v13_0.basket_execution_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Basket Response
  if template_id == 10624 then
    return eurex_derivatives_eti_t7_v13_0.basket_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Basket Roll Broadcast
  if template_id == 10634 then
    return eurex_derivatives_eti_t7_v13_0.basket_roll_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Basket Roll Request
  if template_id == 10633 then
    return eurex_derivatives_eti_t7_v13_0.basket_roll_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Broadcast Error Notification
  if template_id == 10032 then
    return eurex_derivatives_eti_t7_v13_0.broadcast_error_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Clip Deletion Notification
  if template_id == 10134 then
    return eurex_derivatives_eti_t7_v13_0.clip_deletion_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Clip Execution Notification
  if template_id == 10135 then
    return eurex_derivatives_eti_t7_v13_0.clip_execution_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Clip Response
  if template_id == 10133 then
    return eurex_derivatives_eti_t7_v13_0.clip_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Cross Request
  if template_id == 10118 then
    return eurex_derivatives_eti_t7_v13_0.cross_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Cross Request Response
  if template_id == 10119 then
    return eurex_derivatives_eti_t7_v13_0.cross_request_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Order Broadcast
  if template_id == 10122 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Order Nr Response
  if template_id == 10124 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_nr_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Order Quote Event Broadcast
  if template_id == 10308 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_quote_event_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Order Request
  if template_id == 10120 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Order Response
  if template_id == 10121 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_order_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Quote Broadcast
  if template_id == 10410 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_quote_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Quote Request
  if template_id == 10408 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_quote_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete All Quote Response
  if template_id == 10409 then
    return eurex_derivatives_eti_t7_v13_0.delete_all_quote_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Basket Trade Request
  if template_id == 10622 then
    return eurex_derivatives_eti_t7_v13_0.delete_basket_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Clip Request
  if template_id == 10132 then
    return eurex_derivatives_eti_t7_v13_0.delete_clip_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Order Broadcast
  if template_id == 10112 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Order Complex Request
  if template_id == 10123 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_complex_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Order Nr Response
  if template_id == 10111 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_nr_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Order Request
  if template_id == 10142 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Order Response
  if template_id == 10110 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Order Single Request
  if template_id == 10109 then
    return eurex_derivatives_eti_t7_v13_0.delete_order_single_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Delete Tes Trade Request
  if template_id == 10602 then
    return eurex_derivatives_eti_t7_v13_0.delete_tes_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Enter Basket Trade Request
  if template_id == 10620 then
    return eurex_derivatives_eti_t7_v13_0.enter_basket_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Enter Clip Request
  if template_id == 10131 then
    return eurex_derivatives_eti_t7_v13_0.enter_clip_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Enter Tes Trade Request
  if template_id == 10600 then
    return eurex_derivatives_eti_t7_v13_0.enter_tes_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Forced Logout Notification
  if template_id == 10012 then
    return eurex_derivatives_eti_t7_v13_0.forced_logout_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Forced User Logout Notification
  if template_id == 10043 then
    return eurex_derivatives_eti_t7_v13_0.forced_user_logout_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Heartbeat
  if template_id == 10011 then
    return eurex_derivatives_eti_t7_v13_0.heartbeat.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Heartbeat Notification
  if template_id == 10023 then
    return eurex_derivatives_eti_t7_v13_0.heartbeat_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Enrichment Rule Id List Request
  if template_id == 10040 then
    return eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Enrichment Rule Id List Response
  if template_id == 10041 then
    return eurex_derivatives_eti_t7_v13_0.inquire_enrichment_rule_id_list_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Mm Parameter Request
  if template_id == 10305 then
    return eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Mm Parameter Response
  if template_id == 10306 then
    return eurex_derivatives_eti_t7_v13_0.inquire_mm_parameter_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Margin Based Risk Limit Request
  if template_id == 10323 then
    return eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Margin Based Risk Limit Response
  if template_id == 10324 then
    return eurex_derivatives_eti_t7_v13_0.inquire_margin_based_risk_limit_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Pre Trade Risk Limits Request
  if template_id == 10311 then
    return eurex_derivatives_eti_t7_v13_0.inquire_pre_trade_risk_limits_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Session List Request
  if template_id == 10035 then
    return eurex_derivatives_eti_t7_v13_0.inquire_session_list_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire Session List Response
  if template_id == 10036 then
    return eurex_derivatives_eti_t7_v13_0.inquire_session_list_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire User Request
  if template_id == 10038 then
    return eurex_derivatives_eti_t7_v13_0.inquire_user_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Inquire User Response
  if template_id == 10039 then
    return eurex_derivatives_eti_t7_v13_0.inquire_user_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Legal Notification Broadcast
  if template_id == 10037 then
    return eurex_derivatives_eti_t7_v13_0.legal_notification_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Logon Request
  if template_id == 10000 then
    return eurex_derivatives_eti_t7_v13_0.logon_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Logon Request Encrypted
  if template_id == 19000 then
    return eurex_derivatives_eti_t7_v13_0.logon_request_encrypted.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Logon Response
  if template_id == 10001 then
    return eurex_derivatives_eti_t7_v13_0.logon_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Logout Request
  if template_id == 10002 then
    return eurex_derivatives_eti_t7_v13_0.logout_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Logout Response
  if template_id == 10003 then
    return eurex_derivatives_eti_t7_v13_0.logout_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Mm Parameter Definition Request
  if template_id == 10303 then
    return eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Mm Parameter Definition Response
  if template_id == 10304 then
    return eurex_derivatives_eti_t7_v13_0.mm_parameter_definition_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Mass Order
  if template_id == 10115 then
    return eurex_derivatives_eti_t7_v13_0.mass_order.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Mass Order Ack
  if template_id == 10116 then
    return eurex_derivatives_eti_t7_v13_0.mass_order_ack.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Mass Quote Request
  if template_id == 10405 then
    return eurex_derivatives_eti_t7_v13_0.mass_quote_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Mass Quote Response
  if template_id == 10406 then
    return eurex_derivatives_eti_t7_v13_0.mass_quote_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Basket Trade Request
  if template_id == 10621 then
    return eurex_derivatives_eti_t7_v13_0.modify_basket_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Complex Request
  if template_id == 10114 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_complex_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Complex Short Request
  if template_id == 10130 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_complex_short_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Nr Response
  if template_id == 10108 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_nr_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Request
  if template_id == 10140 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Response
  if template_id == 10107 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Short Request
  if template_id == 10141 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_short_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Single Request
  if template_id == 10106 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_single_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Order Single Short Request
  if template_id == 10126 then
    return eurex_derivatives_eti_t7_v13_0.modify_order_single_short_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Modify Tes Trade Request
  if template_id == 10601 then
    return eurex_derivatives_eti_t7_v13_0.modify_tes_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Complex Request
  if template_id == 10113 then
    return eurex_derivatives_eti_t7_v13_0.new_order_complex_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Complex Short Request
  if template_id == 10129 then
    return eurex_derivatives_eti_t7_v13_0.new_order_complex_short_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Nr Response
  if template_id == 10102 then
    return eurex_derivatives_eti_t7_v13_0.new_order_nr_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Request
  if template_id == 10138 then
    return eurex_derivatives_eti_t7_v13_0.new_order_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Response
  if template_id == 10101 then
    return eurex_derivatives_eti_t7_v13_0.new_order_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Short Request
  if template_id == 10139 then
    return eurex_derivatives_eti_t7_v13_0.new_order_short_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Single Request
  if template_id == 10100 then
    return eurex_derivatives_eti_t7_v13_0.new_order_single_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect New Order Single Short Request
  if template_id == 10125 then
    return eurex_derivatives_eti_t7_v13_0.new_order_single_short_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect News Broadcast
  if template_id == 10031 then
    return eurex_derivatives_eti_t7_v13_0.news_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Order Exec Notification
  if template_id == 10104 then
    return eurex_derivatives_eti_t7_v13_0.order_exec_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Order Exec Report Broadcast
  if template_id == 10117 then
    return eurex_derivatives_eti_t7_v13_0.order_exec_report_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Order Exec Response
  if template_id == 10103 then
    return eurex_derivatives_eti_t7_v13_0.order_exec_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Party Action Report
  if template_id == 10042 then
    return eurex_derivatives_eti_t7_v13_0.party_action_report.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Party Entitlements Update Report
  if template_id == 10034 then
    return eurex_derivatives_eti_t7_v13_0.party_entitlements_update_report.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Ping Request
  if template_id == 10320 then
    return eurex_derivatives_eti_t7_v13_0.ping_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Ping Response
  if template_id == 10321 then
    return eurex_derivatives_eti_t7_v13_0.ping_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Pre Trade Risk Limit Response
  if template_id == 10313 then
    return eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limit_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Pre Trade Risk Limits Definition Request
  if template_id == 10312 then
    return eurex_derivatives_eti_t7_v13_0.pre_trade_risk_limits_definition_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Quote Activation Notification
  if template_id == 10411 then
    return eurex_derivatives_eti_t7_v13_0.quote_activation_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Quote Activation Request
  if template_id == 10403 then
    return eurex_derivatives_eti_t7_v13_0.quote_activation_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Quote Activation Response
  if template_id == 10404 then
    return eurex_derivatives_eti_t7_v13_0.quote_activation_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Quote Execution Report
  if template_id == 10407 then
    return eurex_derivatives_eti_t7_v13_0.quote_execution_report.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Rfq Request
  if template_id == 10401 then
    return eurex_derivatives_eti_t7_v13_0.rfq_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Rfq Response
  if template_id == 10402 then
    return eurex_derivatives_eti_t7_v13_0.rfq_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Reject
  if template_id == 10010 then
    return eurex_derivatives_eti_t7_v13_0.reject.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Retransmit Me Message Request
  if template_id == 10026 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_me_message_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Retransmit Me Message Response
  if template_id == 10027 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_me_message_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Retransmit Request
  if template_id == 10008 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Retransmit Response
  if template_id == 10009 then
    return eurex_derivatives_eti_t7_v13_0.retransmit_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Reverse Tes Trade Request
  if template_id == 10630 then
    return eurex_derivatives_eti_t7_v13_0.reverse_tes_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Risk Notification Broadcast
  if template_id == 10033 then
    return eurex_derivatives_eti_t7_v13_0.risk_notification_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Create Deal Notification
  if template_id == 10708 then
    return eurex_derivatives_eti_t7_v13_0.srqs_create_deal_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Deal Notification
  if template_id == 10709 then
    return eurex_derivatives_eti_t7_v13_0.srqs_deal_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Deal Response
  if template_id == 10705 then
    return eurex_derivatives_eti_t7_v13_0.srqs_deal_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Enter Quote Request
  if template_id == 10702 then
    return eurex_derivatives_eti_t7_v13_0.srqs_enter_quote_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Hit Quote Request
  if template_id == 10704 then
    return eurex_derivatives_eti_t7_v13_0.srqs_hit_quote_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Inquire Smart Respondent Request
  if template_id == 10718 then
    return eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Inquire Smart Respondent Response
  if template_id == 10719 then
    return eurex_derivatives_eti_t7_v13_0.srqs_inquire_smart_respondent_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Negotiation Notification
  if template_id == 10713 then
    return eurex_derivatives_eti_t7_v13_0.srqs_negotiation_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Negotiation Requester Notification
  if template_id == 10712 then
    return eurex_derivatives_eti_t7_v13_0.srqs_negotiation_requester_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Negotiation Status Notification
  if template_id == 10715 then
    return eurex_derivatives_eti_t7_v13_0.srqs_negotiation_status_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Open Negotiation Notification
  if template_id == 10711 then
    return eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Open Negotiation Request
  if template_id == 10700 then
    return eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Open Negotiation Requester Notification
  if template_id == 10710 then
    return eurex_derivatives_eti_t7_v13_0.srqs_open_negotiation_requester_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Quote Notification
  if template_id == 10707 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Quote Response
  if template_id == 10703 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Quote Snapshot Notification
  if template_id == 10723 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Quote Snapshot Request
  if template_id == 10720 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quote_snapshot_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Quoting Status Request
  if template_id == 10717 then
    return eurex_derivatives_eti_t7_v13_0.srqs_quoting_status_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Response
  if template_id == 10722 then
    return eurex_derivatives_eti_t7_v13_0.srqs_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Status Broadcast
  if template_id == 10714 then
    return eurex_derivatives_eti_t7_v13_0.srqs_status_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Update Deal Status Request
  if template_id == 10706 then
    return eurex_derivatives_eti_t7_v13_0.srqs_update_deal_status_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Srqs Update Negotiation Request
  if template_id == 10701 then
    return eurex_derivatives_eti_t7_v13_0.srqs_update_negotiation_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Service Availability Broadcast
  if template_id == 10030 then
    return eurex_derivatives_eti_t7_v13_0.service_availability_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Service Availability Market Broadcast
  if template_id == 10044 then
    return eurex_derivatives_eti_t7_v13_0.service_availability_market_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Status Broadcast
  if template_id == 10045 then
    return eurex_derivatives_eti_t7_v13_0.status_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Subscribe Request
  if template_id == 10025 then
    return eurex_derivatives_eti_t7_v13_0.subscribe_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Subscribe Response
  if template_id == 10005 then
    return eurex_derivatives_eti_t7_v13_0.subscribe_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Approve Broadcast
  if template_id == 10607 then
    return eurex_derivatives_eti_t7_v13_0.tes_approve_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Broadcast
  if template_id == 10604 then
    return eurex_derivatives_eti_t7_v13_0.tes_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Delete Broadcast
  if template_id == 10606 then
    return eurex_derivatives_eti_t7_v13_0.tes_delete_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Execution Broadcast
  if template_id == 10610 then
    return eurex_derivatives_eti_t7_v13_0.tes_execution_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Response
  if template_id == 10611 then
    return eurex_derivatives_eti_t7_v13_0.tes_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Reversal Broadcast
  if template_id == 10632 then
    return eurex_derivatives_eti_t7_v13_0.tes_reversal_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Trade Broadcast
  if template_id == 10614 then
    return eurex_derivatives_eti_t7_v13_0.tes_trade_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Trading Session Status Broadcast
  if template_id == 10615 then
    return eurex_derivatives_eti_t7_v13_0.tes_trading_session_status_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tes Upload Broadcast
  if template_id == 10613 then
    return eurex_derivatives_eti_t7_v13_0.tes_upload_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Tm Trading Session Status Broadcast
  if template_id == 10501 then
    return eurex_derivatives_eti_t7_v13_0.tm_trading_session_status_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Throttle Update Notification
  if template_id == 10028 then
    return eurex_derivatives_eti_t7_v13_0.throttle_update_notification.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Trade Broadcast
  if template_id == 10500 then
    return eurex_derivatives_eti_t7_v13_0.trade_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Trading Session Status Broadcast
  if template_id == 10307 then
    return eurex_derivatives_eti_t7_v13_0.trading_session_status_broadcast.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Unsubscribe Request
  if template_id == 10006 then
    return eurex_derivatives_eti_t7_v13_0.unsubscribe_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Unsubscribe Response
  if template_id == 10007 then
    return eurex_derivatives_eti_t7_v13_0.unsubscribe_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Update Remaining Risk Allowance Base Request
  if template_id == 10325 then
    return eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Update Remaining Risk Allowance Base Response
  if template_id == 10326 then
    return eurex_derivatives_eti_t7_v13_0.update_remaining_risk_allowance_base_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect Upload Tes Trade Request
  if template_id == 10612 then
    return eurex_derivatives_eti_t7_v13_0.upload_tes_trade_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect User Login Request
  if template_id == 10018 then
    return eurex_derivatives_eti_t7_v13_0.user_login_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect User Login Request Encrypted
  if template_id == 19018 then
    return eurex_derivatives_eti_t7_v13_0.user_login_request_encrypted.dissect(buffer, offset, packet, parent)
  end
  -- Dissect User Login Response
  if template_id == 10019 then
    return eurex_derivatives_eti_t7_v13_0.user_login_response.dissect(buffer, offset, packet, parent)
  end
  -- Dissect User Logout Request
  if template_id == 10029 then
    return eurex_derivatives_eti_t7_v13_0.user_logout_request.dissect(buffer, offset, packet, parent)
  end
  -- Dissect User Logout Response
  if template_id == 10024 then
    return eurex_derivatives_eti_t7_v13_0.user_logout_response.dissect(buffer, offset, packet, parent)
  end

  return offset
end

-- Dissect: Payload
eurex_derivatives_eti_t7_v13_0.payload.dissect = function(buffer, offset, packet, parent, template_id)
  if not show.payload then
    return eurex_derivatives_eti_t7_v13_0.payload.branches(buffer, offset, packet, parent, template_id)
  end

  -- Calculate size and check that branch is not empty
  local size = eurex_derivatives_eti_t7_v13_0.payload.size(buffer, offset, template_id)
  if size == 0 then
    return offset
  end

  -- Dissect Element
  local range = buffer(offset, size)
  local display = eurex_derivatives_eti_t7_v13_0.payload.display(buffer, packet, parent)
  local element = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.payload, range, display)

  return eurex_derivatives_eti_t7_v13_0.payload.branches(buffer, offset, packet, parent, template_id)
end

-- Template Id
eurex_derivatives_eti_t7_v13_0.template_id = {}

-- Size: Template Id
eurex_derivatives_eti_t7_v13_0.template_id.size = 2

-- Display: Template Id
eurex_derivatives_eti_t7_v13_0.template_id.display = function(value)
  if value == 0xFFFF then
    return "Template Id: No Value"
  end
  if value == 10301 then
    return "Template Id: Add Complex Instrument Request (10301)"
  end
  if value == 10302 then
    return "Template Id: Add Complex Instrument Response (10302)"
  end
  if value == 10309 then
    return "Template Id: Add Flexible Instrument Request (10309)"
  end
  if value == 10310 then
    return "Template Id: Add Flexible Instrument Response (10310)"
  end
  if value == 10327 then
    return "Template Id: Add Scaled Simple Instrument Request (10327)"
  end
  if value == 10328 then
    return "Template Id: Add Scaled Simple Instrument Response (10328)"
  end
  if value == 10629 then
    return "Template Id: Amend Basket Trade Request (10629)"
  end
  if value == 10623 then
    return "Template Id: Approve Basket Trade Request (10623)"
  end
  if value == 10631 then
    return "Template Id: Approve Reverse Tes Trade Request (10631)"
  end
  if value == 10603 then
    return "Template Id: Approve Tes Trade Request (10603)"
  end
  if value == 10627 then
    return "Template Id: Basket Approve Broadcast (10627)"
  end
  if value == 10625 then
    return "Template Id: Basket Broadcast (10625)"
  end
  if value == 10626 then
    return "Template Id: Basket Delete Broadcast (10626)"
  end
  if value == 10628 then
    return "Template Id: Basket Execution Broadcast (10628)"
  end
  if value == 10624 then
    return "Template Id: Basket Response (10624)"
  end
  if value == 10634 then
    return "Template Id: Basket Roll Broadcast (10634)"
  end
  if value == 10633 then
    return "Template Id: Basket Roll Request (10633)"
  end
  if value == 10032 then
    return "Template Id: Broadcast Error Notification (10032)"
  end
  if value == 10134 then
    return "Template Id: Clip Deletion Notification (10134)"
  end
  if value == 10135 then
    return "Template Id: Clip Execution Notification (10135)"
  end
  if value == 10133 then
    return "Template Id: Clip Response (10133)"
  end
  if value == 10118 then
    return "Template Id: Cross Request (10118)"
  end
  if value == 10119 then
    return "Template Id: Cross Request Response (10119)"
  end
  if value == 10122 then
    return "Template Id: Delete All Order Broadcast (10122)"
  end
  if value == 10124 then
    return "Template Id: Delete All Order Nr Response (10124)"
  end
  if value == 10308 then
    return "Template Id: Delete All Order Quote Event Broadcast (10308)"
  end
  if value == 10120 then
    return "Template Id: Delete All Order Request (10120)"
  end
  if value == 10121 then
    return "Template Id: Delete All Order Response (10121)"
  end
  if value == 10410 then
    return "Template Id: Delete All Quote Broadcast (10410)"
  end
  if value == 10408 then
    return "Template Id: Delete All Quote Request (10408)"
  end
  if value == 10409 then
    return "Template Id: Delete All Quote Response (10409)"
  end
  if value == 10622 then
    return "Template Id: Delete Basket Trade Request (10622)"
  end
  if value == 10132 then
    return "Template Id: Delete Clip Request (10132)"
  end
  if value == 10112 then
    return "Template Id: Delete Order Broadcast (10112)"
  end
  if value == 10123 then
    return "Template Id: Delete Order Complex Request (10123)"
  end
  if value == 10111 then
    return "Template Id: Delete Order Nr Response (10111)"
  end
  if value == 10142 then
    return "Template Id: Delete Order Request (10142)"
  end
  if value == 10110 then
    return "Template Id: Delete Order Response (10110)"
  end
  if value == 10109 then
    return "Template Id: Delete Order Single Request (10109)"
  end
  if value == 10602 then
    return "Template Id: Delete Tes Trade Request (10602)"
  end
  if value == 10620 then
    return "Template Id: Enter Basket Trade Request (10620)"
  end
  if value == 10131 then
    return "Template Id: Enter Clip Request (10131)"
  end
  if value == 10600 then
    return "Template Id: Enter Tes Trade Request (10600)"
  end
  if value == 10012 then
    return "Template Id: Forced Logout Notification (10012)"
  end
  if value == 10043 then
    return "Template Id: Forced User Logout Notification (10043)"
  end
  if value == 10011 then
    return "Template Id: Heartbeat (10011)"
  end
  if value == 10023 then
    return "Template Id: Heartbeat Notification (10023)"
  end
  if value == 10040 then
    return "Template Id: Inquire Enrichment Rule Id List Request (10040)"
  end
  if value == 10041 then
    return "Template Id: Inquire Enrichment Rule Id List Response (10041)"
  end
  if value == 10305 then
    return "Template Id: Inquire Mm Parameter Request (10305)"
  end
  if value == 10306 then
    return "Template Id: Inquire Mm Parameter Response (10306)"
  end
  if value == 10323 then
    return "Template Id: Inquire Margin Based Risk Limit Request (10323)"
  end
  if value == 10324 then
    return "Template Id: Inquire Margin Based Risk Limit Response (10324)"
  end
  if value == 10311 then
    return "Template Id: Inquire Pre Trade Risk Limits Request (10311)"
  end
  if value == 10035 then
    return "Template Id: Inquire Session List Request (10035)"
  end
  if value == 10036 then
    return "Template Id: Inquire Session List Response (10036)"
  end
  if value == 10038 then
    return "Template Id: Inquire User Request (10038)"
  end
  if value == 10039 then
    return "Template Id: Inquire User Response (10039)"
  end
  if value == 10037 then
    return "Template Id: Legal Notification Broadcast (10037)"
  end
  if value == 10000 then
    return "Template Id: Logon Request (10000)"
  end
  if value == 19000 then
    return "Template Id: Logon Request Encrypted (19000)"
  end
  if value == 10001 then
    return "Template Id: Logon Response (10001)"
  end
  if value == 10002 then
    return "Template Id: Logout Request (10002)"
  end
  if value == 10003 then
    return "Template Id: Logout Response (10003)"
  end
  if value == 10303 then
    return "Template Id: Mm Parameter Definition Request (10303)"
  end
  if value == 10304 then
    return "Template Id: Mm Parameter Definition Response (10304)"
  end
  if value == 10115 then
    return "Template Id: Mass Order (10115)"
  end
  if value == 10116 then
    return "Template Id: Mass Order Ack (10116)"
  end
  if value == 10405 then
    return "Template Id: Mass Quote Request (10405)"
  end
  if value == 10406 then
    return "Template Id: Mass Quote Response (10406)"
  end
  if value == 10621 then
    return "Template Id: Modify Basket Trade Request (10621)"
  end
  if value == 10114 then
    return "Template Id: Modify Order Complex Request (10114)"
  end
  if value == 10130 then
    return "Template Id: Modify Order Complex Short Request (10130)"
  end
  if value == 10108 then
    return "Template Id: Modify Order Nr Response (10108)"
  end
  if value == 10140 then
    return "Template Id: Modify Order Request (10140)"
  end
  if value == 10107 then
    return "Template Id: Modify Order Response (10107)"
  end
  if value == 10141 then
    return "Template Id: Modify Order Short Request (10141)"
  end
  if value == 10106 then
    return "Template Id: Modify Order Single Request (10106)"
  end
  if value == 10126 then
    return "Template Id: Modify Order Single Short Request (10126)"
  end
  if value == 10601 then
    return "Template Id: Modify Tes Trade Request (10601)"
  end
  if value == 10113 then
    return "Template Id: New Order Complex Request (10113)"
  end
  if value == 10129 then
    return "Template Id: New Order Complex Short Request (10129)"
  end
  if value == 10102 then
    return "Template Id: New Order Nr Response (10102)"
  end
  if value == 10138 then
    return "Template Id: New Order Request (10138)"
  end
  if value == 10101 then
    return "Template Id: New Order Response (10101)"
  end
  if value == 10139 then
    return "Template Id: New Order Short Request (10139)"
  end
  if value == 10100 then
    return "Template Id: New Order Single Request (10100)"
  end
  if value == 10125 then
    return "Template Id: New Order Single Short Request (10125)"
  end
  if value == 10031 then
    return "Template Id: News Broadcast (10031)"
  end
  if value == 10104 then
    return "Template Id: Order Exec Notification (10104)"
  end
  if value == 10117 then
    return "Template Id: Order Exec Report Broadcast (10117)"
  end
  if value == 10103 then
    return "Template Id: Order Exec Response (10103)"
  end
  if value == 10042 then
    return "Template Id: Party Action Report (10042)"
  end
  if value == 10034 then
    return "Template Id: Party Entitlements Update Report (10034)"
  end
  if value == 10320 then
    return "Template Id: Ping Request (10320)"
  end
  if value == 10321 then
    return "Template Id: Ping Response (10321)"
  end
  if value == 10313 then
    return "Template Id: Pre Trade Risk Limit Response (10313)"
  end
  if value == 10312 then
    return "Template Id: Pre Trade Risk Limits Definition Request (10312)"
  end
  if value == 10411 then
    return "Template Id: Quote Activation Notification (10411)"
  end
  if value == 10403 then
    return "Template Id: Quote Activation Request (10403)"
  end
  if value == 10404 then
    return "Template Id: Quote Activation Response (10404)"
  end
  if value == 10407 then
    return "Template Id: Quote Execution Report (10407)"
  end
  if value == 10401 then
    return "Template Id: Rfq Request (10401)"
  end
  if value == 10402 then
    return "Template Id: Rfq Response (10402)"
  end
  if value == 10010 then
    return "Template Id: Reject (10010)"
  end
  if value == 10026 then
    return "Template Id: Retransmit Me Message Request (10026)"
  end
  if value == 10027 then
    return "Template Id: Retransmit Me Message Response (10027)"
  end
  if value == 10008 then
    return "Template Id: Retransmit Request (10008)"
  end
  if value == 10009 then
    return "Template Id: Retransmit Response (10009)"
  end
  if value == 10630 then
    return "Template Id: Reverse Tes Trade Request (10630)"
  end
  if value == 10033 then
    return "Template Id: Risk Notification Broadcast (10033)"
  end
  if value == 10708 then
    return "Template Id: Srqs Create Deal Notification (10708)"
  end
  if value == 10709 then
    return "Template Id: Srqs Deal Notification (10709)"
  end
  if value == 10705 then
    return "Template Id: Srqs Deal Response (10705)"
  end
  if value == 10702 then
    return "Template Id: Srqs Enter Quote Request (10702)"
  end
  if value == 10704 then
    return "Template Id: Srqs Hit Quote Request (10704)"
  end
  if value == 10718 then
    return "Template Id: Srqs Inquire Smart Respondent Request (10718)"
  end
  if value == 10719 then
    return "Template Id: Srqs Inquire Smart Respondent Response (10719)"
  end
  if value == 10713 then
    return "Template Id: Srqs Negotiation Notification (10713)"
  end
  if value == 10712 then
    return "Template Id: Srqs Negotiation Requester Notification (10712)"
  end
  if value == 10715 then
    return "Template Id: Srqs Negotiation Status Notification (10715)"
  end
  if value == 10711 then
    return "Template Id: Srqs Open Negotiation Notification (10711)"
  end
  if value == 10700 then
    return "Template Id: Srqs Open Negotiation Request (10700)"
  end
  if value == 10710 then
    return "Template Id: Srqs Open Negotiation Requester Notification (10710)"
  end
  if value == 10707 then
    return "Template Id: Srqs Quote Notification (10707)"
  end
  if value == 10703 then
    return "Template Id: Srqs Quote Response (10703)"
  end
  if value == 10723 then
    return "Template Id: Srqs Quote Snapshot Notification (10723)"
  end
  if value == 10720 then
    return "Template Id: Srqs Quote Snapshot Request (10720)"
  end
  if value == 10717 then
    return "Template Id: Srqs Quoting Status Request (10717)"
  end
  if value == 10722 then
    return "Template Id: Srqs Response (10722)"
  end
  if value == 10714 then
    return "Template Id: Srqs Status Broadcast (10714)"
  end
  if value == 10706 then
    return "Template Id: Srqs Update Deal Status Request (10706)"
  end
  if value == 10701 then
    return "Template Id: Srqs Update Negotiation Request (10701)"
  end
  if value == 10030 then
    return "Template Id: Service Availability Broadcast (10030)"
  end
  if value == 10044 then
    return "Template Id: Service Availability Market Broadcast (10044)"
  end
  if value == 10045 then
    return "Template Id: Status Broadcast (10045)"
  end
  if value == 10025 then
    return "Template Id: Subscribe Request (10025)"
  end
  if value == 10005 then
    return "Template Id: Subscribe Response (10005)"
  end
  if value == 10607 then
    return "Template Id: Tes Approve Broadcast (10607)"
  end
  if value == 10604 then
    return "Template Id: Tes Broadcast (10604)"
  end
  if value == 10606 then
    return "Template Id: Tes Delete Broadcast (10606)"
  end
  if value == 10610 then
    return "Template Id: Tes Execution Broadcast (10610)"
  end
  if value == 10611 then
    return "Template Id: Tes Response (10611)"
  end
  if value == 10632 then
    return "Template Id: Tes Reversal Broadcast (10632)"
  end
  if value == 10614 then
    return "Template Id: Tes Trade Broadcast (10614)"
  end
  if value == 10615 then
    return "Template Id: Tes Trading Session Status Broadcast (10615)"
  end
  if value == 10613 then
    return "Template Id: Tes Upload Broadcast (10613)"
  end
  if value == 10501 then
    return "Template Id: Tm Trading Session Status Broadcast (10501)"
  end
  if value == 10028 then
    return "Template Id: Throttle Update Notification (10028)"
  end
  if value == 10500 then
    return "Template Id: Trade Broadcast (10500)"
  end
  if value == 10307 then
    return "Template Id: Trading Session Status Broadcast (10307)"
  end
  if value == 10006 then
    return "Template Id: Unsubscribe Request (10006)"
  end
  if value == 10007 then
    return "Template Id: Unsubscribe Response (10007)"
  end
  if value == 10325 then
    return "Template Id: Update Remaining Risk Allowance Base Request (10325)"
  end
  if value == 10326 then
    return "Template Id: Update Remaining Risk Allowance Base Response (10326)"
  end
  if value == 10612 then
    return "Template Id: Upload Tes Trade Request (10612)"
  end
  if value == 10018 then
    return "Template Id: User Login Request (10018)"
  end
  if value == 19018 then
    return "Template Id: User Login Request Encrypted (19018)"
  end
  if value == 10019 then
    return "Template Id: User Login Response (10019)"
  end
  if value == 10029 then
    return "Template Id: User Logout Request (10029)"
  end
  if value == 10024 then
    return "Template Id: User Logout Response (10024)"
  end

  return "Template Id: Unknown("..value..")"
end

-- Dissect: Template Id
eurex_derivatives_eti_t7_v13_0.template_id.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.template_id.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.template_id.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.template_id, range, value, display)

  return offset + length, value
end

-- Body Len
eurex_derivatives_eti_t7_v13_0.body_len = {}

-- Size: Body Len
eurex_derivatives_eti_t7_v13_0.body_len.size = 4

-- Display: Body Len
eurex_derivatives_eti_t7_v13_0.body_len.display = function(value)
  -- Check if field has value
  if value == 0xFFFFFFFF then
    return "Body Len: No Value"
  end

  return "Body Len: "..value
end

-- Dissect: Body Len
eurex_derivatives_eti_t7_v13_0.body_len.dissect = function(buffer, offset, packet, parent)
  local length = eurex_derivatives_eti_t7_v13_0.body_len.size
  local range = buffer(offset, length)
  local value = range:le_uint()
  local display = eurex_derivatives_eti_t7_v13_0.body_len.display(value, buffer, offset, packet, parent)

  parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.body_len, range, value, display)

  return offset + length, value
end

-- Message Header
eurex_derivatives_eti_t7_v13_0.message_header = {}

-- Size: Message Header
eurex_derivatives_eti_t7_v13_0.message_header.size =
  eurex_derivatives_eti_t7_v13_0.body_len.size + 
  eurex_derivatives_eti_t7_v13_0.template_id.size

-- Display: Message Header
eurex_derivatives_eti_t7_v13_0.message_header.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Message Header
eurex_derivatives_eti_t7_v13_0.message_header.fields = function(buffer, offset, packet, parent)
  local index = offset

  -- Body Len: 4 Byte Unsigned Fixed Width Integer Nullable
  index, body_len = eurex_derivatives_eti_t7_v13_0.body_len.dissect(buffer, index, packet, parent)

  -- Template Id: 2 Byte Unsigned Fixed Width Integer Enum with 162 values
  index, template_id = eurex_derivatives_eti_t7_v13_0.template_id.dissect(buffer, index, packet, parent)

  return index
end

-- Dissect: Message Header
eurex_derivatives_eti_t7_v13_0.message_header.dissect = function(buffer, offset, packet, parent)
  if show.message_header then
    -- Optionally add element to protocol tree
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.message_header, buffer(offset, 0))
    local index = eurex_derivatives_eti_t7_v13_0.message_header.fields(buffer, offset, packet, parent)
    local length = index - offset
    parent:set_len(length)
    local display = eurex_derivatives_eti_t7_v13_0.message_header.display(packet, parent, length)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    return eurex_derivatives_eti_t7_v13_0.message_header.fields(buffer, offset, packet, parent)
  end
end

-- Message
eurex_derivatives_eti_t7_v13_0.message = {}

-- Display: Message
eurex_derivatives_eti_t7_v13_0.message.display = function(packet, parent, length)
  return ""
end

-- Dissect Fields: Message
eurex_derivatives_eti_t7_v13_0.message.fields = function(buffer, offset, packet, parent, size_of_message)
  local index = offset

  -- Message Header: Struct of 2 fields
  index, message_header = eurex_derivatives_eti_t7_v13_0.message_header.dissect(buffer, index, packet, parent)

  -- Dependency element: Template Id
  local template_id = buffer(index - 2, 2):le_uint()

  -- Payload: Runtime Type with 161 branches
  index = eurex_derivatives_eti_t7_v13_0.payload.dissect(buffer, index, packet, parent, template_id)

  return index
end

-- Dissect: Message
eurex_derivatives_eti_t7_v13_0.message.dissect = function(buffer, offset, packet, parent, size_of_message)
  local index = offset + size_of_message

  -- Optionally add group/struct element to protocol tree
  if show.message then
    parent = parent:add(omi_eurex_derivatives_eti_t7_v13_0.fields.message, buffer(offset, 0))
    local current = eurex_derivatives_eti_t7_v13_0.message.fields(buffer, offset, packet, parent, size_of_message)
    parent:set_len(size_of_message)
    local display = eurex_derivatives_eti_t7_v13_0.message.display(buffer, packet, parent)
    parent:append_text(display)

    return index, parent
  else
    -- Skip element, add fields directly
    eurex_derivatives_eti_t7_v13_0.message.fields(buffer, offset, packet, parent, size_of_message)

    return index
  end
end

-- Remaining Bytes For: Message
local message_bytes_remaining = function(buffer, index, available)
  -- Calculate the number of bytes remaining
  local remaining = available - index

  -- Check if packet size can be read
  if remaining < eurex_derivatives_eti_t7_v13_0.message_header.size then
    return -DESEGMENT_ONE_MORE_SEGMENT
  end

  -- Parse runtime size
  local current = buffer(index, 4):le_uint()

  -- Check if enough bytes remain
  if remaining < current then
    return -(current - remaining)
  end

  return remaining, current
end

-- Packet
eurex_derivatives_eti_t7_v13_0.packet = {}

-- Dissect Packet
eurex_derivatives_eti_t7_v13_0.packet.dissect = function(buffer, packet, parent)
  local index = 0

  -- Dependency for Message
  local end_of_payload = buffer:len()

  -- Message: Struct of 2 fields
  while index < end_of_payload do

    -- Are minimum number of bytes are available?
    local available, size_of_message = message_bytes_remaining(buffer, index, end_of_payload)

    if available > 0 then
      index = eurex_derivatives_eti_t7_v13_0.message.dissect(buffer, index, packet, parent, size_of_message)
    else
      -- More bytes needed, so set packet information
      packet.desegment_offset = index
      packet.desegment_len = -(available)

      break
    end
  end

  return index
end


-----------------------------------------------------------------------
-- Protocol Dissector and Components
-----------------------------------------------------------------------

-- Initialize Dissector
function omi_eurex_derivatives_eti_t7_v13_0.init()
end

-- Dissector for Eurex Derivatives Eti T7 13.0
function omi_eurex_derivatives_eti_t7_v13_0.dissector(buffer, packet, parent)

  -- Set protocol name
  packet.cols.protocol = omi_eurex_derivatives_eti_t7_v13_0.name

  -- Dissect protocol
  local protocol = parent:add(omi_eurex_derivatives_eti_t7_v13_0, buffer(), omi_eurex_derivatives_eti_t7_v13_0.description, "("..buffer:len().." Bytes)")
  return eurex_derivatives_eti_t7_v13_0.packet.dissect(buffer, packet, protocol)
end

-- Register With Tcp Table
local tcp_table = DissectorTable.get("tcp.port")
tcp_table:add(65333, omi_eurex_derivatives_eti_t7_v13_0)


-----------------------------------------------------------------------
-- Protocol Heuristics
-----------------------------------------------------------------------

-- Verify size of packet
eurex_derivatives_eti_t7_v13_0.packet.requiredsize = function(buffer)

  return true
end

-- Dissector Heuristic for Eurex Derivatives Eti T7 13.0
local function omi_eurex_derivatives_eti_t7_v13_0_heuristic(buffer, packet, parent)
  -- Verify packet length
  if not eurex_derivatives_eti_t7_v13_0.packet.requiredsize(buffer) then return false end

  -- Protocol is valid, set conversation and dissect this packet
  packet.conversation = omi_eurex_derivatives_eti_t7_v13_0
  omi_eurex_derivatives_eti_t7_v13_0.dissector(buffer, packet, parent)

  return true
end

-- Register Heuristic for Eurex Derivatives Eti T7 13.0
omi_eurex_derivatives_eti_t7_v13_0:register_heuristic("tcp", omi_eurex_derivatives_eti_t7_v13_0_heuristic)

-----------------------------------------------------------------------
-- Lua dissectors are an easily edited and modified cross-platform dissection solution.
-- Feel free to modify. Enjoy.
-----------------------------------------------------------------------
-- 
-- Protocol:
--   Organization: Eurex Exchange
--   Version: 13.0
--   Date: Friday, September 20, 2024
--   Specification: T7_R.13.0_Enhanced_Trading_Interface_-_Derivatives_Message_Reference_Version_3.pdf
-- 
-- Script:
--   Generator: 1.5.0.0
--   Compiler: 2.0
--   License: Public/GPLv3
--   Authors: Omi Developers
-- 
-- This dissector script was generated by The Open Markets Initiative (Omi).
-- 
-- For full Omi information:
-- https://github.com/Open-Markets-Initiative/Directory
-----------------------------------------------------------------------
