<?php
namespace App\Worldspan\LineParser\Types\Line;

/**
 *
 * @author Lucian Sirbu
 */
class RH extends \App\Worldspan\LineParser\Types\WorldspanBaseLine
{
	protected $extractRegexp = "/^(?P<rawData>H\\\\.+)/sm";

	protected $children = [
         /**
         * This record contains information on hotels booked through the Worldspan Automated Hotel System
         * The hotel segment has been expanded and beginning with this Level, so has the size of Record H
         */

        ['key'=> 'key',                               'type'=> 'Constant',                                  'len'=> 2,     'val'=> 'H\\',                'req'=> true,],              // Record identifier
        ['key'=> 'SegmentNumber',                     'type'=> 'Integer',                                   'len'=> [1, 3],                         'req'=> false,],             // Segment number
        ['key'=> '#014',                              'type'=> 'Separator',                                                                              'req'=> false,],             // Field Separator
        ['key'=> 'HotelChainCode',                    'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> 2,                                   'req'=> false,],             // Hotel Chain Code (See Note 19)
        ['key'=> '#016',                              'type'=> 'Separator',                                                                              'req'=> false,],             // Field Separator
        ['key'=> 'HotelChainName',                    'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 30],                        'req'=> false,],             // Hotel Chain Name
        ['key'=> '#018',                              'type'=> 'Separator',                                                                              'req'=> false,],             // Field Separator
        ['key'=> 'StatusCode',                        'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> 2,                                   'req'=> false,],             // Status Code
        ['key'=> 'NumberOfRooms',                     'type'=> 'Integer',                                   'len'=> 3,                                   'req'=> false,],             // Number of rooms
        ['key'=> '#021',                              'type'=> 'Separator',                                                                              'req'=> false,],             // Field Separator
        ['key'=> 'CityCode',                          'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> 3,                                   'req'=> false,],             // City Code
        ['key'=> 'InDate',                            'type'=> 'Date',                                      'len'=> 5,     'fmt'=> 'DDMMM',              'req'=> false,],             // In Date
        ['key'=> 'OutDate',                           'type'=> 'Date',                                      'len'=> 5,     'fmt'=> 'DDMMM',              'req'=> false,],             // Out Date
        ['key'=> '#025',                              'type'=> 'Separator',                                                                              'req'=> false,],             // Field Separator
        ['key'=> 'HotelPropertyCode',                 'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 5],                         'req'=> false,],             // Hotel Property Code (blank if unknown)
        ['key'=> '#027',                              'type'=> 'Separator',                                                                              'req'=> false,],             // Field Separator
        ['key'=> 'HotelPropertyName',                 'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 30],                        'req'=> false,],             // Hotel Property Name
        ['key'=> '#029',                              'type'=> 'Separator',                                                                              'req'=> false,],             // Field Separator

        ['key'=> 'complex:20',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'NP-',                'req'=> true,],              // Number of Persons field identifier
            ['key'=> 'NumberOfPersonsInEachRoom',         'type'=> 'Integer',           'len'=> [1, 2],                         'req'=> false,],             // Number of Persons in each room
		]],
        ['key'=> '#032',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:22',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                  'len'=> 2,     'val'=> 'R-',                 'req'=> true,],              // Room Type field identifier
            ['key'=> 'RoomType',                          'type'=> 'StringDelimitedByChar', 'val'=>'\\',        'len'=> [0, 10],                        'req'=> false,],             // Room Type
		]],
        ['key'=> '#035',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:24',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                  'len'=> 3,     'val'=> 'RS-',                'req'=> true,],              // System Rate field identifier (See Note 15)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                  'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'SystemRateAmount',                  'type'=> 'FloatRaw',                                  'len'=> [1, 10],                        'req'=> false,],             // System Rate amount
            ['key'=> 'blank',                             'type'=> 'Constant',                                  'len'=> 1,     'val'=> '\ ',                 'req'=> false,],             // Blank
            ['key'=> 'SystemRatePlan',                    'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 21],                        'req'=> false,],             // System Rate Plan (See Note 8)
		]],
        ['key'=> '#041',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:26',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                           'len'=> 3,     'val'=> 'RT-',                'req'=> true,],              // Rate Override field identifier (see note 4)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'RateOverrideAmount',                'type'=> 'FloatRaw',                                           'len'=> [1, 10],                        'req'=> false,],             // Rate Override amount
		]],
        ['key'=> '#045',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:28',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                           'len'=> 3,     'val'=> 'RQ-',                'req'=> true,],              // Rate Quote field identifier (see note 4)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'RateQuoteAmount',                   'type'=> 'FloatRaw',                                           'len'=> [1, 10],                        'req'=> false,],             // Rate Quote amount
		]],
        ['key'=> '#049',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:30',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                           'len'=> 3,     'val'=> 'RG-',                'req'=> true,],              // Rate Guarantee field identifier (see note 4)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'RateGuaranteeAmount',               'type'=> 'FloatRaw',                                           'len'=> [1, 10],                        'req'=> false,],             // Rate Guarantee amount
		]],
        ['key'=> '#053',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:32',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RCMA',               'req'=> true,],              // Rate Change May Apply (see note 7)
		]],
        ['key'=> '#055',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:34',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                  'len'=> 4,     'val'=> 'RQ1-',               'req'=> true,],              // Rate Quote field identifier (see note 5 & 6)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                  'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'RateQuoteAmount',                   'type'=> 'FloatRaw',                                  'len'=> [1, 10],                        'req'=> false,],             // Rate Quote amount
		]],
        ['key'=> '#059',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:36',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                  'len'=> 4,     'val'=> 'RG1-',               'req'=> true,],              // Rate Guarantee field identifier (see note 5 & 6)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                  'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'RateGuaranteeAmount',               'type'=> 'FloatRaw',                                  'len'=> [1, 10],                        'req'=> false,],             // Rate Guarantee amount
		]],
        ['key'=> '#063',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:38',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RT1-',               'req'=> true,],              // Rate Override field identifier (see note 5 & 6)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'RateOverrideAmount',                'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Rate Override amount
		]],
        ['key'=> '#067',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:40',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'ROE-',               'req'=> true,],              // Rate of Exchange field identifier (see note 3)
            ['key'=> 'DateOfExchangeRate',                'type'=> 'Date',              'len'=> 5,     'fmt'=> 'DDMMM',              'req'=> false,],             // date of exchange rate
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // delimiter
            ['key'=> 'CurrencyCodeOfIssuingLocation',     'type'=> 'Alphanumeric',      'len'=> 3,                                   'req'=> false,],             // Currency code of issuing location
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // delimiter
            ['key'=> 'CountryCodeOfHotelRate',            'type'=> 'Alphanumeric',      'len'=> 2,                                   'req'=> false,],             // Country code of Hotel Rate
            ['key'=> 'RateOfExchange',                    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Rate of Exchange
		]],
        ['key'=> '#075',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:42',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',                                  'len'=> 3,     'val'=> 'RD-',                'req'=> true,],              // Room Description field identifier
            ['key'=> 'RoomDescription',                   'type'=> 'StringDelimitedByChar', 'val'=>'\\',        'len'=> [0, 50],                        'req'=> false,],             // Room Description
		]],
        ['key'=> '#078',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:44',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RTD-',               'req'=> true,],              // Rate Description field identifier
            ['key'=> 'RateDescription',                   'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 50],                        'req'=> false,],             // Rate Description
		]],
        ['key'=> '#081',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:46',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'RL-',                'req'=> true,],              // Room Location field identifier
            ['key'=> 'RoomLocation',                      'type'=> 'Alphanumeric',      'len'=> 2,                                   'req'=> false,],             // Room Location (See Note 9)
		]],
        ['key'=> '#084',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:48',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'BS-',                'req'=> true,],              // Booking Source field identifier
            ['key'=> 'BookingSource',                     'type'=> 'Integer',           'len'=> 8,                                   'req'=> false,],             // Booking Source
		]],
        ['key'=> '#087',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:50',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'NM-',                'req'=> true,],              // Guest Name field identifier
            ['key'=> 'GuestName',                         'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 28],                        'req'=> false,],             // Guest Name (see Note 16)
		]],
        ['key'=> '#090',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:52',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CD-',                'req'=> true,],              // Corporate Discount field identifier
            ['key'=> 'CorporateDiscountAccountNumber',    'type'=> 'StringDelimitedByChar', 'val'=>'\\',        'len'=> [0, 20],                        'req'=> false,],             // Corporate Discount account number
		]],
        ['key'=> '#093',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:54',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'FT-',                'req'=> true,],              // Frequent Traveler field identifier
            ['key'=> 'FrequentTravelerNumber',            'type'=> 'StringDelimitedByChar', 'val'=>'\\',        'len'=> [0, 13],                        'req'=> false,],             // Frequent Traveler number
		]],
        ['key'=> '#096',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:56',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'FG-',                'req'=> true,],              // Frequent Guest field identifier
            ['key'=> 'FrequentGuestNumber',               'type'=> 'StringDelimitedByChar', 'val'=>'\\',        'len'=> [0, 17],                        'req'=> false,],             // Frequent Guest number
		]],
        ['key'=> '#099',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:58',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 2,     'val'=> 'G-',                 'req'=> true,],              // Guarantee field identifier
            ['key'=> 'GuaranteeInformation',              'type'=> 'StringDelimitedByChar', 'val'=>'\\',        'len'=> [0, 90],                        'req'=> false,],             // Guarantee information (See Note 10)
		]],
        ['key'=> '#102',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:60',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 2,     'val'=> 'W-',                 'req'=> true,],              // Written Confirmation field identifier (see Note 14)
		]],
        ['key'=> '#104',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:62',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'AR1-',               'req'=> true,],              // First Room Amenities field identifier
            ['key'=> 'FirstRoomAmenity',                  'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 6],                         'req'=> false,],             // First Room Amenity
		]],
        ['key'=> '#107',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:64',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'AR2-',               'req'=> true,],              // Second Room Amenities field identifier
            ['key'=> 'SecondRoomAmenity',                 'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 6],                         'req'=> false,],             // Second Room Amenity
		]],
        ['key'=> '#110',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:66',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'AR3-',               'req'=> true,],              // Third Room Amenities field identifier
            ['key'=> 'ThirdRoomAmenity',                  'type'=> 'StringDelimitedByChar', 'val'=>'/',         'len'=> [0, 6],                         'req'=> false,],             // Third Room Amenity
		]],
        ['key'=> '#113',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:68',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'RA-',                'req'=> true,],              // Adult Rollaway field identifier
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'AdultRollawayAmount',               'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Adult Rollaway amount
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 1,     'val'=> '-',                  'req'=> true,],              // hyphen
            ['key'=> 'NumberOfAdultRollaways',            'type'=> 'Integer',           'len'=> 1,                                   'req'=> false,],             // number of Adult Rollaways
		]],
        ['key'=> '#119',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:70',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'RC-',                'req'=> true,],              // Child Rollaway field identifier
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'ChildRollawayAmount',               'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Child Rollaway amount
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 1,     'val'=> '-',                  'req'=> true,],              // hyphen
            ['key'=> 'NumberOfChildRollaways',            'type'=> 'Integer',           'len'=> 1,                                   'req'=> false,],             // number of Child Rollaways
		]],
        ['key'=> '#125',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:72',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CR-',                'req'=> true,],              // Crib field identifier
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'CribAmount',                        'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Crib amount
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 1,     'val'=> '-',                  'req'=> true,],              // hyphen
            ['key'=> 'NumberOfCribs',                     'type'=> 'Integer',           'len'=> 1,                                   'req'=> false,],             // number of Cribs
		]],
        ['key'=> '#131',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:74',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EC-',                'req'=> true,],              // Extra Child field identifier
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'ExtraChildAmount',                  'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Extra Child amount
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 1,     'val'=> '-',                  'req'=> true,],              // hyphen
            ['key'=> 'NumberOfExtraChildren',             'type'=> 'Integer',           'len'=> 1,                                   'req'=> false,],             // number of Extra Children
		]],
        ['key'=> '#137',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:76',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EX-',                'req'=> true,],              // Extra Adult field identifier
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'ExtraAdultAmount',                  'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Extra Adult amount
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 1,     'val'=> '-',                  'req'=> true,],              // hyphen
            ['key'=> 'NumberOfExtraAdults',               'type'=> 'Integer',           'len'=> 1,                                   'req'=> false,],             // number of Extra Adults
		]],
        ['key'=> '#143',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:78',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'Mxx-',               'req'=> true,],              // Meal Plan field identifier (See Note 11)
            ['key'=> 'CurrencyCode',                      'type'=> 'Currency',                                           'len'=> 3,                                   'req'=> false,],             // Currency Code
            ['key'=> 'MealPlanAmount',                    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Meal Plan Amount
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 1,     'val'=> '-',                  'req'=> true,],              // hyphen
            ['key'=> 'NumberOfMeals',                     'type'=> 'Integer',           'len'=> 1,                                   'req'=> false,],             // number of Meals
		]],
        ['key'=> '#149',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:80',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'IT-',                'req'=> true,],              // Tour Code field identifier
            ['key'=> 'TourCode',                          'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 13],                        'req'=> false,],             // Tour Code
		]],
        ['key'=> '#152',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:82',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'ARR-',               'req'=> true,],              // Arrival Information field identifier
            ['key'=> 'ArrivalInformation',                'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 15],                        'req'=> false,],             // Arrival Information
		]],
        ['key'=> '#155',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:84',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'PUP-',               'req'=> true,],              // Limo Pickup field identifier
            ['key'=> 'PickupInformation',                 'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 90],                        'req'=> false,],             // Pickup Information
		]],
        ['key'=> '#158',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:86',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'CXP-',               'req'=> true,],              // Cancellation Requirements field identifier
            ['key'=> 'CancellationPenaltyInformation',    'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 240],                       'req'=> false,],             // Cancellation/Penalty information
		]],
        ['key'=> '#161',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:88',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'CKP-',               'req'=> true,],              // Early Checkout penalty field identifier
            ['key'=> 'EarlyCheckoutPenaltyDetails',       'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 128],                       'req'=> false,],             // Early Check-out penalty details
		]],
        ['key'=> '#164',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:90',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RG2-',               'req'=> true,],              // Room rate change 2 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 2 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                 'req'=> false,],             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#170',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:92',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RG3-',               'req'=> true,],              // Room rate change 3 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 3 field identifier
            ['key'=> 'RoomRateChange3',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional),             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#176',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:94',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RG4-',               'req'=> true,],              // Room rate change 4 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 4 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)    'req'=> false, ),             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#182',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:96',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RG5-',               'req'=> true,],              // Room rate change 5 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 5 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#188',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:98',                        'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RG6-',               'req'=> true,],              // Room rate change 6 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 6 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#194',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:100',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RQ2-',               'req'=> true,],              // Room rate change 2 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 2 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#200',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:102',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RQ3-',               'req'=> true,],              // Room rate change 3 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 3 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#206',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:104',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RQ4-',               'req'=> true,],              // Room rate change 4 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 4 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#212',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:106',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RQ5-',               'req'=> true,],              // Room rate change 5 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 5 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#218',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:108',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RQ6-',               'req'=> true,],              // Room rate change 6 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 6 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#224',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:110',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RT2-',               'req'=> true,],              // Room rate change 2 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 2 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#230',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:112',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RT3-',               'req'=> true,],              // Room rate change 3 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 3 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#236',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:114',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RT4-',               'req'=> true,],              // Room rate change 4 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 4 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#242',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:116',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RT5-',               'req'=> true,],              // Room rate change 5 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 5 field identifier
            ['key'=> 'RoomRateChange2',                   'type'=> 'StringDelimitedByChar','len'=> 7,  'val'=> '/',                  'req'=> false,],             // length date/month/year (yr optional)             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#248',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:118',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'RT6-',               'req'=> true,],              // Room rate change 6 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'EFF',                'req'=> false,],             // Effective date for rate change 6 field identifier
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 7,     'val'=> 'ddmmmyyvariable',    'req'=> false,],             // length date/month/year (yr optional)
            ['key'=> '',                                  'type'=> 'Constant',          'len'=> 1,     'val'=> '/',                  'req'=> false,],             // item separator
            ['key'=> 'VariableLengthRateChangeAmount',    'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // variable length rate change amount
		]],
        ['key'=> '#254',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:120',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'TTL-',               'req'=> true,],              // Total Room Rate Amt Field Identifier (see note 21)
            ['key'=> 'TotalRoomRateAmount',               'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Total Room Rate amount
		]],
        ['key'=> '#257',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:122',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'BAS-',               'req'=> true,],              // Base Room Rate field identifier
            ['key'=> 'BaseRoomRateAmount',                'type'=> 'FloatRaw',          'len'=> [1, 10],                        'req'=> false,],             // Base Room Rate Amount
		]],
        ['key'=> '#260',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:124',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'TAX-',               'req'=> true,],              // Room tax field identifier
            ['key'=> 'RoomTaxPercentageAmount',           'type'=> 'FloatRaw',          'len'=> [1, 5],                         'req'=> false,],             // Room tax percentage amount
		]],
        ['key'=> '#263',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:126',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'TX1-',               'req'=> true,],              // Additional room tax field identifier
            ['key'=> 'RoomTaxPercentageAmount',           'type'=> 'FloatRaw',          'len'=> [1, 5],                         'req'=> false,],             // Room tax percentage amount
		]],
        ['key'=> '#266',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:128',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'SVC-',               'req'=> true,],              // Service charge field identifier
            ['key'=> 'ServiceChargePercentageAmount',     'type'=> 'FloatRaw',          'len'=> [1, 5],                         'req'=> false,],             // Service charge percentage amount
		]],
        ['key'=> '#269',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:130',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'SUR-',               'req'=> true,],              // Room surcharges field identifier
            ['key'=> 'RoomSurchargeAmount',               'type'=> 'FloatRaw',          'len'=> [1, 6],                         'req'=> false,],             // Room surcharge amount
		]],
        ['key'=> '#272',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:132',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'TTD-',               'req'=> true,],              // Total Rate Details
            ['key'=> 'TotalRateDetailsInformation',       'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 128],                       'req'=> false,],             // Total rate details information
		]],
        ['key'=> '#275',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field separator

        ['key'=> 'complex:134',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'SI-',                'req'=> true,],              // Supplementary Information field identifier
            ['key'=> 'SupplementaryInformation',          'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 90],                        'req'=> false,],             // Supplementary Information (See Notes 12 & 13)
		]],
        ['key'=> '#278',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:136',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'SP-',                'req'=> true,],              // Special Information field identifier
            ['key'=> 'SpecialInformation',                'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 90],                        'req'=> false,],             // Special Information
		]],
        ['key'=> '#281',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:138',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CM-',                'req'=> true,],              // Commission field identifier
            ['key'=> 'CommissionPercentAndorAmount',      'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 19],                        'req'=> false,],             // Commission percent and/or amount
		]],
        ['key'=> '#284',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:140',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CV-',                'req'=> true,],              // Vendor Commission field identifier
            ['key'=> 'VendorCommissionInformation',       'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 19],                        'req'=> false,],             // Vendor Commission information
		]],
        ['key'=> '#287',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:142',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CF-',                'req'=> true,],              // Confirmation Number field identifier
            ['key'=> 'ConfirmationNumber',                'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 25],                        'req'=> false,],             // Confirmation Number
		]],
        ['key'=> '#290',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:144',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CX-',                'req'=> true,],              // Cancellation Number field identifier
            ['key'=> 'CancellationNumber',                'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 25],                        'req'=> false,],             // Cancellation Number
		]],
        ['key'=> '#293',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:146',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'TX-',                'req'=> true,],              // Tax Rate field identifier
            ['key'=> 'TaxRate',                           'type'=> 'FloatRaw',          'len'=> [1, 5],                         'req'=> false,],             // Tax Rate
		]],
        ['key'=> '#296',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:148',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'HA1-',               'req'=> true,],              // First Hotel Address field identifier
            ['key'=> 'FirstHotelAddressLine',             'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 30],                        'req'=> false,],             // First Hotel Address line
		]],
        ['key'=> '#299',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:150',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'HA2-',               'req'=> true,],              // Second Hotel Address field identifier
            ['key'=> 'SecondHotelAddressLine',            'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 30],                        'req'=> false,],             // Second Hotel Address line
		]],
        ['key'=> '#302',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:152',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'SCC-',               'req'=> true,],              // State Code/Country Code field identifier
            ['key'=> 'StateCodeCountryCodeForHotel',      'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 3],                         'req'=> false,],             // State Code/Country Code for Hotel
		]],
        ['key'=> '#305',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:154',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'ZIP-',               'req'=> true,],              // Hotel Postal Code identifier
            ['key'=> 'PostalCodeForHotel',                'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 10],                        'req'=> false,],             // Postal Code for Hotel
		]],
        ['key'=> '#308',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:156',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'PH-',                'req'=> true,],              // Hotel Phone field identifier
            ['key'=> 'HotelPhoneNumber',                  'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 12],                        'req'=> false,],             // Hotel Phone number
		]],
        ['key'=> '#311',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:158',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 4,     'val'=> 'FAX-',               'req'=> true,],              // Hotel Facsimile Number
            ['key'=> 'HotelFacsimileNumber',              'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 12],                        'req'=> false,],             // Hotel Facsimile Number
		]],
        ['key'=> '#314',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator

        ['key'=> 'complex:160',                       'type'=> 'Complex', 'merge'=>true,                                         'req'=> false, 'children'=> [
            ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CI-',                'req'=> true,],              // Check-In Time field identifier
            ['key'=> 'CheckInTime',                       'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 6],                         'req'=> false,],             // Check-In Time
		]],
        ['key'=> '#317',                              'type'=> 'Separator',                                                      'req'=> false,],             // Field Separator
        ['key'=> 'key',                               'type'=> 'Constant',          'len'=> 3,     'val'=> 'CO-',                'req'=> false,],             // Check-Out Time field identifier
        ['key'=> 'CheckOutTime',                      'type'=> 'StringDelimitedByChar', 'val'=>'\\',         'len'=> [0, 6],                         'req'=> false,],             // Check-Out Time


	];
}
