IncursionAtziriActiveShrineStrongboxEssenceRareMonsterAliveSpiritActivatedRogueExile
구덩이의 원시세포
CategoryDemon악마
IconEnemyEvasion IconEnemyResistanceColdWeak IconEnemyResistanceLightning
stance movement speed +% final [-66]
ignore actor scale from stats [1]
Primordium of the Pit
SpectreY
Spectre OverrideMetadata/Monsters/LeagueAbyss/Pit/PrimordialMonster3AbyssSpectre
Area심연 지하
Tagsabyssal, demon, medium_movement, melee, not_int, not_str, pit_faction, Unarmed_onhit_audio
Packs
  • 구덩이의 원시세포, 구덩이의 사냥개, 구덩이의 진균종
  • 심연 지하: 구덩이의 질주자, 구덩이의 원시세포, 구덩이의 사냥개
  • 심연 지하: 구덩이의 목자, 구덩이의 진균종, 구덩이의 원시세포
  • 생명력
    65%
    회피
    +25%
    저항
    IconEnemyResistanceFire0 IconEnemyResistanceCold-30 IconEnemyResistanceLightning30 IconEnemyResistanceChaos0
    Damage
    78%
    정확도
    100%
    Attack Distance
    4 ~ 8
    공격 속도
    1.5 Second
    Damage Spread
    ±20%
    경험치
    65%
    Model Size
    80%
    Type
    PrimordialMonster3Abyss
    Metadata
    PrimordialMonster3Abyss
    레벨
    22
    생명력
    198
    Damage
    32
    주문 피해
    32
    정확도
    316
    공격 속도
    1.5
    경험치
    517
    Minion Life
    655
    Minion Damage
    46
    Minion Armour
    106
    MeleeAtAnimationSpeed
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser, AttackInPlace
    기본 공격
    Base Damage: 26—39
    치명타 명중 확률: 5%
    공격 속도: 1.5 초
    action attack or cast time uses animation length [1]
    projectile uses contact position [1]
    skill can fire wand projectiles [1]
    use scaled contact offset [1]
    iconbasicattack
    GSAbyssPrimordialMonsterScreech
    Triggerable, Spell, Damage, AttackInPlace
    치명타 명중 확률: 6%
    시전 속도: 1 초
    16.47~49.41 번개 피해
    action attack or cast time uses animation length [1]
    is area damage [1]
    spell maximum action distance +% [-80]
    DTTPrimordialBeast3LeapAttack
    Spell, Movement, AttackInPlace
    시전 속도: 1 초
    action attack or cast time uses animation length [1]
    leap slam minimum distance [25]
    spell maximum action distance +% [-40]
    walk emerge extra distance [-10]
    GAPrimordialMonster3Leap
    Triggerable, Attack, AttackInPlace
    Base Damage: 26—39
    치명타 명중 확률: 5%
    공격 피해: 115%
    공격 속도: 1.5 초
    주는 공격 피해 15% 증폭
    action attack or cast time uses animation length [1]
    is area damage [1]

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    
    Actor
    {
    	basic_action = "ChangeToStance1"
    	basic_action = "ChangeToStance2"
    }
    
    Transitionable {}
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/LeagueAbyss/Pit/PrimordialMonster3Abyss"] = {
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        name = "Primordium of the Pit",
        life = 0.65,
        damage = 0.78,
        damageSpread = 0.2,
        attackTime = 1.5,
        attackRange = 8,
        accuracy = 1,
        skillList = {
            "MeleeAtAnimationSpeed",
            "GAPrimordialMonster3Leap",
            "DTTPrimordialBeast3LeapAttack",
            "GSAbyssPrimordialMonsterScreech",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MeleeAtAnimationSpeed"] = {
        name = "Basic Attack",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.RangedAttack] = true,
            [SkillType.MirageArcherCanUse] = true,
            [SkillType.Projectile] = true,
            [SkillType.MeleeSingleTarget] = true,
            [SkillType.Melee] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            melee = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "skill_can_fire_arrows",
            "skill_can_fire_wand_projectiles",
            "action_attack_or_cast_time_uses_animation_length",
            "projectile_uses_contact_position",
            "use_scaled_contact_offset",
        },
        levels = {
            [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPrimordialMonster3Leap"] = {
        name = "GAPrimordialMonster3Leap",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Attack] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {baseMultiplier = 1.15, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["DTTPrimordialBeast3LeapAttack"] = {
        name = "DTTPrimordialBeast3LeapAttack",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Movement] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            spell = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "walk_emerge_extra_distance",
            "leap_slam_minimum_distance",
            "spell_maximum_action_distance_+%",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {-10, 25, -40, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSAbyssPrimordialMonsterScreech"] = {
        name = "GSAbyssPrimordialMonsterScreech",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "geometry_spell",
        castTime = 1,
        baseFlags = {
            spell = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "spell_maximum_action_distance_+%",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {0.5, 1.5, -80, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    
    FamilyNothing
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    stance movement speed +% final [-66]
    FamilyStance
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • stance movement speed +% final -66 — -66 Global Unscalable Value
  • ignore actor scale from stats [1]
    FamilyMonsterIgnoreActorScaleFromStats
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • ignore actor scale from stats 1 — 1 Global Unscalable Value
  • 구덩이의 원시세포
    CategoryDemon악마
    IconEnemyEvasion IconEnemyResistanceColdWeak IconEnemyResistanceLightning
    stance movement speed +% final [-66]
    ignore actor scale from stats [1]
    Primordium of the Pit
    SpectreN
    Tagsabyssal, demon, medium_movement, melee, not_int, not_str, pit_faction, Unarmed_onhit_audio
    Packs
  • 부화기 여왕 이그룰로그, 구덩이의 질주자, 구덩이의 목자, 구덩이의 원시세포, 구덩이의 사냥개
  • 생명력
    65%
    회피
    +25%
    저항
    IconEnemyResistanceFire0 IconEnemyResistanceCold-30 IconEnemyResistanceLightning30 IconEnemyResistanceChaos0
    Damage
    78%
    정확도
    100%
    Attack Distance
    4 ~ 8
    공격 속도
    1.5 Second
    Damage Spread
    ±20%
    경험치
    65%
    Model Size
    80%
    Type
    PrimordialMonster3Abyss
    Metadata
    PrimordialMonster3AbyssNoEmerge
    레벨
    68
    생명력
    5,042
    Damage
    182
    주문 피해
    182
    정확도
    2,502
    공격 속도
    1.5
    경험치
    18,612
    Minion Life
    4,505
    Minion Damage
    756
    Minion Armour
    2,413
    MeleeAtAnimationSpeed
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser, AttackInPlace
    기본 공격
    Base Damage: 145—218
    치명타 명중 확률: 5%
    공격 속도: 1.5 초
    action attack or cast time uses animation length [1]
    projectile uses contact position [1]
    skill can fire wand projectiles [1]
    use scaled contact offset [1]
    iconbasicattack
    GSAbyssPrimordialMonsterScreech
    Triggerable, Spell, Damage, AttackInPlace
    치명타 명중 확률: 6%
    시전 속도: 1 초
    90.87~272.6 번개 피해
    action attack or cast time uses animation length [1]
    is area damage [1]
    spell maximum action distance +% [-80]
    DTTPrimordialBeast3LeapAttack
    Spell, Movement, AttackInPlace
    시전 속도: 1 초
    action attack or cast time uses animation length [1]
    leap slam minimum distance [25]
    spell maximum action distance +% [-40]
    walk emerge extra distance [-10]
    GAPrimordialMonster3Leap
    Triggerable, Attack, AttackInPlace
    Base Damage: 145—218
    치명타 명중 확률: 5%
    공격 피해: 115%
    공격 속도: 1.5 초
    주는 공격 피해 15% 증폭
    action attack or cast time uses animation length [1]
    is area damage [1]

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    
    Actor
    {
    	basic_action = "ChangeToStance1"
    	basic_action = "ChangeToStance2"
    }
    
    Transitionable {}
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/LeagueAbyss/Pit/PrimordialMonster3AbyssNoEmerge"] = {
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        name = "Primordium of the Pit",
        life = 0.65,
        damage = 0.78,
        damageSpread = 0.2,
        attackTime = 1.5,
        attackRange = 8,
        accuracy = 1,
        skillList = {
            "MeleeAtAnimationSpeed",
            "GAPrimordialMonster3Leap",
            "DTTPrimordialBeast3LeapAttack",
            "GSAbyssPrimordialMonsterScreech",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MeleeAtAnimationSpeed"] = {
        name = "Basic Attack",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.RangedAttack] = true,
            [SkillType.MirageArcherCanUse] = true,
            [SkillType.Projectile] = true,
            [SkillType.MeleeSingleTarget] = true,
            [SkillType.Melee] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            melee = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "skill_can_fire_arrows",
            "skill_can_fire_wand_projectiles",
            "action_attack_or_cast_time_uses_animation_length",
            "projectile_uses_contact_position",
            "use_scaled_contact_offset",
        },
        levels = {
            [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPrimordialMonster3Leap"] = {
        name = "GAPrimordialMonster3Leap",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Attack] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {baseMultiplier = 1.15, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["DTTPrimordialBeast3LeapAttack"] = {
        name = "DTTPrimordialBeast3LeapAttack",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Movement] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            spell = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "walk_emerge_extra_distance",
            "leap_slam_minimum_distance",
            "spell_maximum_action_distance_+%",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {-10, 25, -40, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSAbyssPrimordialMonsterScreech"] = {
        name = "GSAbyssPrimordialMonsterScreech",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "geometry_spell",
        castTime = 1,
        baseFlags = {
            spell = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "spell_maximum_action_distance_+%",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {0.5, 1.5, -80, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    
    FamilyNothing
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    stance movement speed +% final [-66]
    FamilyStance
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • stance movement speed +% final -66 — -66 Global Unscalable Value
  • ignore actor scale from stats [1]
    FamilyMonsterIgnoreActorScaleFromStats
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • ignore actor scale from stats 1 — 1 Global Unscalable Value
  • 구덩이의 원시세포
    CategoryDemon악마
    IconEnemyEvasion IconEnemyResistanceColdWeak IconEnemyResistanceLightning
    stance movement speed +% final [-66]
    ignore actor scale from stats [1]
    Primordium of the Pit
    SpectreY
    Tagsabyssal, demon, medium_movement, melee, not_int, not_str, pit_faction, Unarmed_onhit_audio
    생명력
    65%
    회피
    +25%
    저항
    IconEnemyResistanceFire0 IconEnemyResistanceCold-30 IconEnemyResistanceLightning30 IconEnemyResistanceChaos0
    Damage
    78%
    정확도
    100%
    Attack Distance
    4 ~ 8
    공격 속도
    1.5 Second
    Damage Spread
    ±20%
    경험치
    65%
    Model Size
    80%
    Type
    PrimordialMonster3Abyss
    Metadata
    PrimordialMonster3AbyssSpectre
    레벨
    68
    생명력
    5,042
    Damage
    182
    주문 피해
    182
    정확도
    2,502
    공격 속도
    1.5
    경험치
    18,612
    Minion Life
    4,505
    Minion Damage
    756
    Minion Armour
    2,413
    MeleeAtAnimationSpeed
    Attack, RangedAttack, MirageArcherCanUse, Projectile, MeleeSingleTarget, Melee, ProjectilesFromUser, AttackInPlace
    기본 공격
    Base Damage: 145—218
    치명타 명중 확률: 5%
    공격 속도: 1.5 초
    action attack or cast time uses animation length [1]
    projectile uses contact position [1]
    skill can fire wand projectiles [1]
    use scaled contact offset [1]
    iconbasicattack
    GSAbyssPrimordialMonsterScreech
    Triggerable, Spell, Damage, AttackInPlace
    치명타 명중 확률: 6%
    시전 속도: 1 초
    90.87~272.6 번개 피해
    action attack or cast time uses animation length [1]
    is area damage [1]
    spell maximum action distance +% [-80]
    DTTPrimordialBeast3LeapAttack
    Spell, Movement, AttackInPlace
    시전 속도: 1 초
    action attack or cast time uses animation length [1]
    leap slam minimum distance [25]
    spell maximum action distance +% [-40]
    walk emerge extra distance [-10]
    GAPrimordialMonster3Leap
    Triggerable, Attack, AttackInPlace
    Base Damage: 145—218
    치명타 명중 확률: 5%
    공격 피해: 115%
    공격 속도: 1.5 초
    주는 공격 피해 15% 증폭
    action attack or cast time uses animation length [1]
    is area damage [1]

    Object Type

    version 2
    extends "Metadata/Monsters/Monster"
    
    Actor
    {
    	basic_action = "ChangeToStance1"
    	basic_action = "ChangeToStance2"
    }
    
    Transitionable {}
    -- src\Data\Spectres.lua
    minions["Metadata/Monsters/LeagueAbyss/Pit/PrimordialMonster3AbyssSpectre"] = {
        fireResist = 0,
        coldResist = 0,
        lightningResist = 0,
        chaosResist = 0,
        name = "Primordium of the Pit",
        life = 0.65,
        damage = 0.78,
        damageSpread = 0.2,
        attackTime = 1.5,
        attackRange = 8,
        accuracy = 1,
        skillList = {
            "MeleeAtAnimationSpeed",
            "GAPrimordialMonster3Leap",
            "DTTPrimordialBeast3LeapAttack",
            "GSAbyssPrimordialMonsterScreech",
        },
        modList = {
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["MeleeAtAnimationSpeed"] = {
        name = "Basic Attack",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Attack] = true,
            [SkillType.RangedAttack] = true,
            [SkillType.MirageArcherCanUse] = true,
            [SkillType.Projectile] = true,
            [SkillType.MeleeSingleTarget] = true,
            [SkillType.Melee] = true,
            [SkillType.ProjectilesFromUser] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            melee = true,
            projectile = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "skill_can_fire_arrows",
            "skill_can_fire_wand_projectiles",
            "action_attack_or_cast_time_uses_animation_length",
            "projectile_uses_contact_position",
            "use_scaled_contact_offset",
        },
        levels = {
            [1] = {levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GAPrimordialMonster3Leap"] = {
        name = "GAPrimordialMonster3Leap",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Attack] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            attack = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {baseMultiplier = 1.15, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["DTTPrimordialBeast3LeapAttack"] = {
        name = "DTTPrimordialBeast3LeapAttack",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Spell] = true,
            [SkillType.Movement] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "skill_stat_descriptions",
        castTime = 1,
        baseFlags = {
            spell = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "walk_emerge_extra_distance",
            "leap_slam_minimum_distance",
            "spell_maximum_action_distance_+%",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {-10, 25, -40, levelRequirement = 1, statInterpolation = {},  cost = { }, },
        },
    }
    -- src\Data\Skills\spectre.lua
    skills["GSAbyssPrimordialMonsterScreech"] = {
        name = "GSAbyssPrimordialMonsterScreech",
        hidden = true,
        color = ,
        baseEffectiveness = 0,
        incrementalEffectiveness = 0,
        skillTypes = {
            [SkillType.Triggerable] = true,
            [SkillType.Spell] = true,
            [SkillType.Damage] = true,
            [SkillType.AttackInPlace] = true,
        },
        statDescriptionScope = "geometry_spell",
        castTime = 1,
        baseFlags = {
            spell = true,
            area = true,
        },
        baseMods = {
        },
        qualityStats = {
        },
        stats = {
            "spell_minimum_base_lightning_damage",
            "spell_maximum_base_lightning_damage",
            "spell_maximum_action_distance_+%",
            "is_area_damage",
            "action_attack_or_cast_time_uses_animation_length",
        },
        levels = {
            [1] = {0.5, 1.5, -80, critChance = 6, levelRequirement = 1, statInterpolation = {3, 3},  cost = { }, },
        },
    }
    
    FamilyNothing
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    stance movement speed +% final [-66]
    FamilyStance
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • stance movement speed +% final -66 — -66 Global Unscalable Value
  • ignore actor scale from stats [1]
    FamilyMonsterIgnoreActorScaleFromStats
    DomainsMonster (3)
    GenerationType고유 (3)
    Req. level1
    Stats
  • ignore actor scale from stats 1 — 1 Global Unscalable Value
  • Edit

    Wikis Content is available under CC BY-NC-SA 3.0 unless otherwise noted.