public void Read (TProtocol iprot)
 {
   TField field;
   iprot.ReadStructBegin();
   while (true)
   {
     field = iprot.ReadFieldBegin();
     if (field.Type == TType.Stop) { 
       break;
     }
     switch (field.ID)
     {
       case 1:
         if (field.Type == TType.Map) {
           {
             MissionStepByMissionIdConfigMap = new Dictionary<int, List<Config.MissionStepConfig>>();
             TMap _map55 = iprot.ReadMapBegin();
             for( int _i56 = 0; _i56 < _map55.Count; ++_i56)
             {
               int _key57;
               List<Config.MissionStepConfig> _val58;
               _key57 = iprot.ReadI32();
               {
                 _val58 = new List<Config.MissionStepConfig>();
                 TList _list59 = iprot.ReadListBegin();
                 for( int _i60 = 0; _i60 < _list59.Count; ++_i60)
                 {
                   Config.MissionStepConfig _elem61 = new Config.MissionStepConfig();
                   _elem61 = new Config.MissionStepConfig();
                   _elem61.Read(iprot);
                   _val58.Add(_elem61);
                 }
                 iprot.ReadListEnd();
               }
               MissionStepByMissionIdConfigMap[_key57] = _val58;
             }
             iprot.ReadMapEnd();
           }
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       case 2:
         if (field.Type == TType.Map) {
           {
             MissionStepByStepIdConfigMap = new Dictionary<int, Config.MissionStepConfig>();
             TMap _map62 = iprot.ReadMapBegin();
             for( int _i63 = 0; _i63 < _map62.Count; ++_i63)
             {
               int _key64;
               Config.MissionStepConfig _val65;
               _key64 = iprot.ReadI32();
               _val65 = new Config.MissionStepConfig();
               _val65.Read(iprot);
               MissionStepByStepIdConfigMap[_key64] = _val65;
             }
             iprot.ReadMapEnd();
           }
         } else { 
           TProtocolUtil.Skip(iprot, field.Type);
         }
         break;
       default: 
         TProtocolUtil.Skip(iprot, field.Type);
         break;
     }
     iprot.ReadFieldEnd();
   }
   iprot.ReadStructEnd();
 }
        public void Read(TProtocol iprot)
        {
            TField field;

            iprot.ReadStructBegin();
            while (true)
            {
                field = iprot.ReadFieldBegin();
                if (field.Type == TType.Stop)
                {
                    break;
                }
                switch (field.ID)
                {
                case 1:
                    if (field.Type == TType.Map)
                    {
                        {
                            MissionStepByMissionIdConfigMap = new Dictionary <int, List <Config.MissionStepConfig> >();
                            TMap _map55 = iprot.ReadMapBegin();
                            for (int _i56 = 0; _i56 < _map55.Count; ++_i56)
                            {
                                int _key57;
                                List <Config.MissionStepConfig> _val58;
                                _key57 = iprot.ReadI32();
                                {
                                    _val58 = new List <Config.MissionStepConfig>();
                                    TList _list59 = iprot.ReadListBegin();
                                    for (int _i60 = 0; _i60 < _list59.Count; ++_i60)
                                    {
                                        Config.MissionStepConfig _elem61 = new Config.MissionStepConfig();
                                        _elem61 = new Config.MissionStepConfig();
                                        _elem61.Read(iprot);
                                        _val58.Add(_elem61);
                                    }
                                    iprot.ReadListEnd();
                                }
                                MissionStepByMissionIdConfigMap[_key57] = _val58;
                            }
                            iprot.ReadMapEnd();
                        }
                    }
                    else
                    {
                        TProtocolUtil.Skip(iprot, field.Type);
                    }
                    break;

                case 2:
                    if (field.Type == TType.Map)
                    {
                        {
                            MissionStepByStepIdConfigMap = new Dictionary <int, Config.MissionStepConfig>();
                            TMap _map62 = iprot.ReadMapBegin();
                            for (int _i63 = 0; _i63 < _map62.Count; ++_i63)
                            {
                                int _key64;
                                Config.MissionStepConfig _val65;
                                _key64 = iprot.ReadI32();
                                _val65 = new Config.MissionStepConfig();
                                _val65.Read(iprot);
                                MissionStepByStepIdConfigMap[_key64] = _val65;
                            }
                            iprot.ReadMapEnd();
                        }
                    }
                    else
                    {
                        TProtocolUtil.Skip(iprot, field.Type);
                    }
                    break;

                default:
                    TProtocolUtil.Skip(iprot, field.Type);
                    break;
                }
                iprot.ReadFieldEnd();
            }
            iprot.ReadStructEnd();
        }