public void GatherProperties(PlayableDirector director, IPropertyCollector driver)
        {
            if (!(director == null) && !s_ProcessedDirectors.Contains(director))
            {
                s_ProcessedDirectors.Add(director);
                GameObject val = GetGameObjectBinding(director);
                if (val != null)
                {
                    if (active)
                    {
                        driver.AddFromName(val, "m_IsActive");
                    }

                    if (updateDirector)
                    {
                        foreach (PlayableDirector item in GetComponent <PlayableDirector>(val))
                        {
                            if (!(item == null))
                            {
                                TimelineAsset timelineAsset = item.playableAsset as TimelineAsset;
                                if (!(timelineAsset == null))
                                {
                                    timelineAsset.GatherProperties(item, driver);
                                }
                            }
                        }
                    }
                }
                s_ProcessedDirectors.Remove(director);
            }
        }