public void write_uses_closure(uses_closure _uses_closure)
		{
			write_uses_list(_uses_closure);
			if (_uses_closure.listunitsections == null)
			{
				bw.Write((byte)0);
			}
			else
			{
				bw.Write((byte)1);
				bw.Write(_uses_closure.listunitsections.Count);
				for(Int32 ssyy_i = 0; ssyy_i < _uses_closure.listunitsections.Count; ssyy_i++)
				{
					if (_uses_closure.listunitsections[ssyy_i] == null)
					{
						bw.Write((byte)0);
					}
					else
					{
						bw.Write((byte)1);
						_uses_closure.listunitsections[ssyy_i].visit(this);
					}
				}
			}
		}
		public void visit(uses_closure _uses_closure)
		{
			bw.Write((Int16)208);
			write_uses_closure(_uses_closure);
		}
		public void read_uses_closure(uses_closure _uses_closure)
		{
			read_uses_list(_uses_closure);
			if (br.ReadByte() == 0)
			{
				_uses_closure.listunitsections = null;
			}
			else
			{
				_uses_closure.listunitsections = new List<uses_list>();
				Int32 ssyy_count = br.ReadInt32();
				for(Int32 ssyy_i = 0; ssyy_i < ssyy_count; ssyy_i++)
				{
					_uses_closure.listunitsections.Add(_read_node() as uses_list);
				}
			}
		}
 public override void visit(uses_closure uc)
 {
     var i = 0;
     foreach (var ul in uc.listunitsections)
     {
         if (i>0)
             visit_node(ul);
         i++;
     }
 }
		public void visit(uses_closure _uses_closure)
		{
			read_uses_closure(_uses_closure);
		}