public ParticipantTimelineAdvanced(JObject ancientGolemAssistsPerMinCountsO,
            JObject ancientGolemKillsPerMinCountsO,
            JObject assistedLaneDeathsPerMinDeltasO,
            JObject assistedLaneKillsPerMinDeltasO,
            JObject baronAssistsPerMinCountsO,
            JObject baronKillsPerMinCountsO,
            JObject creepsPerMinDeltasO,
            JObject csDiffPerMinDeltasO,
            JObject damageTakenDiffPerMinDeltasO,
            JObject damageTakenPerMinDeltasO,
            JObject dragonAssistsPerMinCountsO,
            JObject dragonKillsPerMinCountsO,
            JObject elderLizardAssistsPerMinCountsO,
            JObject elderLizardKillsPerMinCountsO,
            JObject goldPerMinDeltasO,
            JObject inhibitorAssistsPerMinCountsO,
            JObject inhibitorKillsPerMinCountsO,
            string lane,
            string role,
            JObject towerAssistsPerMinCountsO,
            JObject towerKillsPerMinCountsO,
            JObject towerKillsPerMinDeltasO,
            JObject vilemawAssistsPerMinCountsO,
            JObject vilemawKillsPerMinCountsO,
            JObject wardsPerMinDeltasO,
            JObject xpDiffPerMinDeltasO,
            JObject xpPerMinDeltasO)
        {
            if (ancientGolemAssistsPerMinCountsO != null)
            {
                this.ancientGolemAssistsPerMinCounts = LoadParticipantTimelineData(ancientGolemAssistsPerMinCountsO);
            }

            if (ancientGolemKillsPerMinCounts != null)
            {
                this.ancientGolemKillsPerMinCounts = LoadParticipantTimelineData(ancientGolemKillsPerMinCountsO);
            }

            if (assistedLaneDeathsPerMinDeltas != null)
            {
                this.assistedLaneDeathsPerMinDeltas = LoadParticipantTimelineData(assistedLaneDeathsPerMinDeltasO);
            }

            if (assistedLaneKillsPerMinDeltas != null)
            {
                this.assistedLaneKillsPerMinDeltas = LoadParticipantTimelineData(assistedLaneKillsPerMinDeltasO);
            }

            if (baronAssistsPerMinCounts != null)
            {
                this.baronAssistsPerMinCounts = LoadParticipantTimelineData(baronAssistsPerMinCountsO);
            }

            if (baronKillsPerMinCounts != null)
            {
                this.baronKillsPerMinCounts = LoadParticipantTimelineData(baronKillsPerMinCountsO);
            }

            if (creepsPerMinDeltas != null)
            {
                this.creepsPerMinDeltas = LoadParticipantTimelineData(creepsPerMinDeltasO);
            }

            if (csDiffPerMinDeltas != null)
            {
                this.csDiffPerMinDeltas = LoadParticipantTimelineData(csDiffPerMinDeltasO);
            }

            if (damageTakenDiffPerMinDeltas != null)
            {
                this.damageTakenDiffPerMinDeltas = LoadParticipantTimelineData(damageTakenDiffPerMinDeltasO);
            }

            if (damageTakenPerMinDeltas != null)
            {
                this.damageTakenPerMinDeltas = LoadParticipantTimelineData(damageTakenPerMinDeltasO);
            }

            if (dragonAssistsPerMinCounts != null)
            {
                this.dragonAssistsPerMinCounts = LoadParticipantTimelineData(dragonAssistsPerMinCountsO);
            }

            if (dragonKillsPerMinCounts != null)
            {
                this.dragonKillsPerMinCounts = LoadParticipantTimelineData(dragonKillsPerMinCountsO);
            }

            if (elderLizardAssistsPerMinCounts != null)
            {
                this.elderLizardAssistsPerMinCounts = LoadParticipantTimelineData(elderLizardAssistsPerMinCountsO);
            }

            if (elderLizardKillsPerMinCounts != null)
            {
                this.elderLizardKillsPerMinCounts = LoadParticipantTimelineData(elderLizardKillsPerMinCountsO);
            }

            if (goldPerMinDeltas != null)
            {
                this.goldPerMinDeltas = LoadParticipantTimelineData(goldPerMinDeltasO);
            }

            if (inhibitorAssistsPerMinCounts != null)
            {
                this.inhibitorAssistsPerMinCounts = LoadParticipantTimelineData(inhibitorAssistsPerMinCountsO);
            }

            if (inhibitorKillsPerMinCounts != null)
            {
                this.inhibitorKillsPerMinCounts = LoadParticipantTimelineData(inhibitorKillsPerMinCountsO);
            }

            this.lane = lane;
            this.role = role;

            if (towerAssistsPerMinCounts != null)
            {
                this.towerAssistsPerMinCounts = LoadParticipantTimelineData(towerAssistsPerMinCountsO);
            }

            if (towerKillsPerMinCounts != null)
            {
                this.towerKillsPerMinCounts = LoadParticipantTimelineData(towerKillsPerMinCountsO);
            }

            if (towerKillsPerMinDeltas != null)
            {
                this.towerKillsPerMinDeltas = LoadParticipantTimelineData(towerKillsPerMinDeltasO);
            }

            if (vilemawAssistsPerMinCounts != null)
            {
                this.vilemawAssistsPerMinCounts = LoadParticipantTimelineData(vilemawAssistsPerMinCountsO);
            }

            if (vilemawKillsPerMinCounts != null)
            {
                this.vilemawKillsPerMinCounts = LoadParticipantTimelineData(vilemawKillsPerMinCountsO);
            }

            if (wardsPerMinDeltas != null)
            {
                this.wardsPerMinDeltas = LoadParticipantTimelineData(wardsPerMinDeltasO);
            }

            if (xpDiffPerMinDeltas != null)
            {
                this.xpDiffPerMinDeltas = LoadParticipantTimelineData(xpDiffPerMinDeltasO);
            }

            if (xpPerMinDeltas != null)
            {
                this.xpPerMinDeltas = LoadParticipantTimelineData(xpPerMinDeltasO);
            }
        }
        public ParticipantTimelineAdvanced(JObject ancientGolemAssistsPerMinCountsO,
                                           JObject ancientGolemKillsPerMinCountsO,
                                           JObject assistedLaneDeathsPerMinDeltasO,
                                           JObject assistedLaneKillsPerMinDeltasO,
                                           JObject baronAssistsPerMinCountsO,
                                           JObject baronKillsPerMinCountsO,
                                           JObject creepsPerMinDeltasO,
                                           JObject csDiffPerMinDeltasO,
                                           JObject damageTakenDiffPerMinDeltasO,
                                           JObject damageTakenPerMinDeltasO,
                                           JObject dragonAssistsPerMinCountsO,
                                           JObject dragonKillsPerMinCountsO,
                                           JObject elderLizardAssistsPerMinCountsO,
                                           JObject elderLizardKillsPerMinCountsO,
                                           JObject goldPerMinDeltasO,
                                           JObject inhibitorAssistsPerMinCountsO,
                                           JObject inhibitorKillsPerMinCountsO,
                                           string lane,
                                           string role,
                                           JObject towerAssistsPerMinCountsO,
                                           JObject towerKillsPerMinCountsO,
                                           JObject towerKillsPerMinDeltasO,
                                           JObject vilemawAssistsPerMinCountsO,
                                           JObject vilemawKillsPerMinCountsO,
                                           JObject wardsPerMinDeltasO,
                                           JObject xpDiffPerMinDeltasO,
                                           JObject xpPerMinDeltasO)
        {
            if (ancientGolemAssistsPerMinCountsO != null)
            {
                this.ancientGolemAssistsPerMinCounts = LoadParticipantTimelineData(ancientGolemAssistsPerMinCountsO);
            }

            if (ancientGolemKillsPerMinCounts != null)
            {
                this.ancientGolemKillsPerMinCounts = LoadParticipantTimelineData(ancientGolemKillsPerMinCountsO);
            }

            if (assistedLaneDeathsPerMinDeltas != null)
            {
                this.assistedLaneDeathsPerMinDeltas = LoadParticipantTimelineData(assistedLaneDeathsPerMinDeltasO);
            }

            if (assistedLaneKillsPerMinDeltas != null)
            {
                this.assistedLaneKillsPerMinDeltas = LoadParticipantTimelineData(assistedLaneKillsPerMinDeltasO);
            }

            if (baronAssistsPerMinCounts != null)
            {
                this.baronAssistsPerMinCounts = LoadParticipantTimelineData(baronAssistsPerMinCountsO);
            }

            if (baronKillsPerMinCounts != null)
            {
                this.baronKillsPerMinCounts = LoadParticipantTimelineData(baronKillsPerMinCountsO);
            }

            if (creepsPerMinDeltas != null)
            {
                this.creepsPerMinDeltas = LoadParticipantTimelineData(creepsPerMinDeltasO);
            }

            if (csDiffPerMinDeltas != null)
            {
                this.csDiffPerMinDeltas = LoadParticipantTimelineData(csDiffPerMinDeltasO);
            }

            if (damageTakenDiffPerMinDeltas != null)
            {
                this.damageTakenDiffPerMinDeltas = LoadParticipantTimelineData(damageTakenDiffPerMinDeltasO);
            }

            if (damageTakenPerMinDeltas != null)
            {
                this.damageTakenPerMinDeltas = LoadParticipantTimelineData(damageTakenPerMinDeltasO);
            }

            if (dragonAssistsPerMinCounts != null)
            {
                this.dragonAssistsPerMinCounts = LoadParticipantTimelineData(dragonAssistsPerMinCountsO);
            }

            if (dragonKillsPerMinCounts != null)
            {
                this.dragonKillsPerMinCounts = LoadParticipantTimelineData(dragonKillsPerMinCountsO);
            }

            if (elderLizardAssistsPerMinCounts != null)
            {
                this.elderLizardAssistsPerMinCounts = LoadParticipantTimelineData(elderLizardAssistsPerMinCountsO);
            }

            if (elderLizardKillsPerMinCounts != null)
            {
                this.elderLizardKillsPerMinCounts = LoadParticipantTimelineData(elderLizardKillsPerMinCountsO);
            }

            if (goldPerMinDeltas != null)
            {
                this.goldPerMinDeltas = LoadParticipantTimelineData(goldPerMinDeltasO);
            }

            if (inhibitorAssistsPerMinCounts != null)
            {
                this.inhibitorAssistsPerMinCounts = LoadParticipantTimelineData(inhibitorAssistsPerMinCountsO);
            }

            if (inhibitorKillsPerMinCounts != null)
            {
                this.inhibitorKillsPerMinCounts = LoadParticipantTimelineData(inhibitorKillsPerMinCountsO);
            }

            this.lane = lane;
            this.role = role;

            if (towerAssistsPerMinCounts != null)
            {
                this.towerAssistsPerMinCounts = LoadParticipantTimelineData(towerAssistsPerMinCountsO);
            }

            if (towerKillsPerMinCounts != null)
            {
                this.towerKillsPerMinCounts = LoadParticipantTimelineData(towerKillsPerMinCountsO);
            }

            if (towerKillsPerMinDeltas != null)
            {
                this.towerKillsPerMinDeltas = LoadParticipantTimelineData(towerKillsPerMinDeltasO);
            }

            if (vilemawAssistsPerMinCounts != null)
            {
                this.vilemawAssistsPerMinCounts = LoadParticipantTimelineData(vilemawAssistsPerMinCountsO);
            }

            if (vilemawKillsPerMinCounts != null)
            {
                this.vilemawKillsPerMinCounts = LoadParticipantTimelineData(vilemawKillsPerMinCountsO);
            }

            if (wardsPerMinDeltas != null)
            {
                this.wardsPerMinDeltas = LoadParticipantTimelineData(wardsPerMinDeltasO);
            }

            if (xpDiffPerMinDeltas != null)
            {
                this.xpDiffPerMinDeltas = LoadParticipantTimelineData(xpDiffPerMinDeltasO);
            }

            if (xpPerMinDeltas != null)
            {
                this.xpPerMinDeltas = LoadParticipantTimelineData(xpPerMinDeltasO);
            }
        }