
# Handjob (loops)

image cho_hj mid = Movie(
    play="images/CG/cho_bj/hj/loops/mid.webm",
    image="images/CG/cho_bj/hj/loops/mid.webp",
    start_image="images/CG/cho_bj/hj/loops/mid.webp"
    )
image cho_hj mid annoyed = Movie(
    play="images/CG/cho_bj/hj/loops/mid_annoyed.webm",
    image="images/CG/cho_bj/hj/loops/mid_annoyed.webp",
    start_image="images/CG/cho_bj/hj/loops/mid_annoyed.webp"
    )
image cho_hj mid blush = Movie(
    play="images/CG/cho_bj/hj/loops/mid_blush.webm",
    image="images/CG/cho_bj/hj/loops/mid_blush.webp",
    start_image="images/CG/cho_bj/hj/loops/mid_blush.webp"
    )
image cho_hj mid blush fast = Movie(
    play="images/CG/cho_bj/hj/loops/mid_blush_fast.webm",
    image="images/CG/cho_bj/hj/loops/mid_blush.webp",
    start_image="images/CG/cho_bj/hj/loops/mid_blush.webp"
    )
image cho_hj up = Movie(
    play="images/CG/cho_bj/hj/loops/up.webm",
    image="images/CG/cho_bj/hj/loops/up.webp",
    start_image="images/CG/cho_bj/hj/loops/up.webp"
    )
image cho_hj up blush = Movie(
    play="images/CG/cho_bj/hj/loops/up_blush.webm",
    image="images/CG/cho_bj/hj/loops/up_blush.webp",
    start_image="images/CG/cho_bj/hj/loops/up_blush.webp"
    )

# Handjob Topless (loops)
image cho_hj topless mid = Movie(
    play="images/CG/cho_bj/hj/loops/topless/mid.webm",
    image="images/CG/cho_bj/hj/loops/topless/mid.webp",
    start_image="images/CG/cho_bj/hj/loops/topless/mid.webp"
    )
image cho_hj topless mid smile = Movie(
    play="images/CG/cho_bj/hj/loops/topless/mid_smile.webm",
    image="images/CG/cho_bj/hj/loops/topless/mid_smile.webp",
    start_image="images/CG/cho_bj/hj/loops/topless/mid_smile.webp"
    )
image cho_hj topless mid smile fast = Movie(
    play="images/CG/cho_bj/hj/loops/topless/mid_smile_fast.webm",
    image="images/CG/cho_bj/hj/loops/topless/mid_smile.webp",
    start_image="images/CG/cho_bj/hj/loops/topless/mid_smile.webp"
    )
image cho_hj topless up = Movie(
    play="images/CG/cho_bj/hj/loops/topless/up.webm",
    image="images/CG/cho_bj/hj/loops/topless/up.webp",
    start_image="images/CG/cho_bj/hj/loops/topless/up.webp"
    )

image cho_hj topless up blush = Movie(
    play="images/CG/cho_bj/hj/loops/topless/up_blush.webm",
    image="images/CG/cho_bj/hj/loops/topless/up_blush.webp",
    start_image="images/CG/cho_bj/hj/loops/topless/up_blush.webp"
    )

# Handjob (nonloops)

image cho_hj cum face = Movie(
    play="images/CG/cho_bj/hj/nonloops/cum_face.webm",
    image="images/CG/cho_bj/hj/nonloops/cum_face_end.webp",
    start_image="images/CG/cho_bj/hj/nonloops/cum_face.webp",
    loop=False
    )
image cho_hj cum tits = Movie(
    play="images/CG/cho_bj/hj/nonloops/cum_tits.webm",
    image="images/CG/cho_bj/hj/nonloops/cum_tits_end.webp",
    start_image="images/CG/cho_bj/hj/nonloops/cum_tits.webp",
    loop=False
    )
image cho_hj cum face tits = Movie(
    play="images/CG/cho_bj/hj/nonloops/cum_face_tits.webm",
    image="images/CG/cho_bj/hj/nonloops/cum_face_tits_end.webp",
    start_image="images/CG/cho_bj/hj/nonloops/cum_face_tits.webp",
    loop=False
    )

image cho_hj topless cum tits = Movie(
    play="images/CG/cho_bj/hj/nonloops/topless/cum_tits.webm",
    image="images/CG/cho_bj/hj/nonloops/topless/cum_tits_end.webp",
    start_image="images/CG/cho_bj/hj/nonloops/topless/cum_tits.webp",
    loop=False
    )

image cho_hj topless cum face tits = Movie(
    play="images/CG/cho_bj/hj/nonloops/topless/cum_face_tits.webm",
    image="images/CG/cho_bj/hj/nonloops/topless/cum_face_tits_end.webp",
    start_image="images/CG/cho_bj/hj/nonloops/topless/cum_face_tits.webp",
    loop=False
    )

# Blowjob (loops)

image cho_bj lick = Movie(
    play="images/CG/cho_bj/bj/loops/lick.webm",
    image="images/CG/cho_bj/bj/loops/lick.webp",
    start_image="images/CG/cho_bj/bj/loops/lick.webp"
    )

# Blowjob Topless (loops)

image cho_bj topless lick = Movie(
    play="images/CG/cho_bj/bj/loops/topless/lick.webm",
    image="images/CG/cho_bj/bj/loops/topless/lick.webp",
    start_image="images/CG/cho_bj/bj/loops/topless/lick.webp"
    )

image cho_bj topless suck = Movie(
    play="images/CG/cho_bj/bj/loops/topless/suck.webm",
    image="images/CG/cho_bj/bj/loops/topless/suck.webp",
    start_image="images/CG/cho_bj/bj/loops/topless/suck.webp"
    )

image cho_bj topless suck closed = Movie(
    play="images/CG/cho_bj/bj/loops/topless/suck_closed.webm",
    image="images/CG/cho_bj/bj/loops/topless/suck_closed.webp",
    start_image="images/CG/cho_bj/bj/loops/topless/suck_closed.webp"
    )

image cho_bj topless suck medium = Movie(
    play="images/CG/cho_bj/bj/loops/topless/suck_medium.webm",
    image="images/CG/cho_bj/bj/loops/topless/suck_medium.webp",
    start_image="images/CG/cho_bj/bj/loops/topless/suck_medium.webp"
    )

image cho_bj topless suck medium up = Movie(
    play="images/CG/cho_bj/bj/loops/topless/suck_medium_up.webm",
    image="images/CG/cho_bj/bj/loops/topless/suck_medium_up.webp",
    start_image="images/CG/cho_bj/bj/loops/topless/suck_medium_up.webp"
    )

image cho_bj topless suck deep = Movie(
    play="images/CG/cho_bj/bj/loops/topless/suck_deep.webm",
    image="images/CG/cho_bj/bj/loops/topless/suck_deep.webp",
    start_image="images/CG/cho_bj/bj/loops/topless/suck_deep.webp"
    )

# Blowjob (nonloops)

image cho_bj lick fail = Movie(
    play="images/CG/cho_bj/bj/nonloops/lick_fail.webm",
    image="images/CG/cho_bj/bj/nonloops/lick_fail_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/lick_fail.webp",
    loop=False
    )
image cho_bj lick success = Movie(
    play="images/CG/cho_bj/bj/nonloops/lick_success.webm",
    image="images/CG/cho_bj/bj/nonloops/lick_success.webp",
    start_image="images/CG/cho_bj/bj/nonloops/lick_success.webp",
    loop=False
    )
image cho_bj lick start = Movie(
    play="images/CG/cho_bj/bj/nonloops/lick_start.webm",
    image="images/CG/cho_bj/bj/nonloops/lick_start_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/lick_start.webp",
    loop=False
    )

# Blowjob Topless (nonloops)

image cho_bj topless lick success = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/lick_success.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/lick_success.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/lick_success.webp",
    loop=False
    )

image cho_bj topless lick start = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/lick_start.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/lick_start_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/lick_start.webp",
    loop=False
    )

image cho_bj topless lick exit = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/lick_exit.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/lick_exit_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/lick_exit.webp",
    loop=False
    )

image cho_bj topless suck start = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_start.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_start_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_start.webp",
    loop=False
    )

image cho_bj topless suck closed success = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_closed_success.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_start.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_start.webp",
    loop=False
    )

image cho_bj topless suck closed fail = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_closed_fail.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_fail_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_fail.webp",
    loop=False
    )

image cho_bj topless suck closed fail exit = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_closed_fail_exit.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_fail_exit_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_fail_exit.webp",
    loop=False
    )

image cho_bj topless suck closed start = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_closed_start.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_start_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_start.webp",
    loop=False
    )

image cho_bj topless suck closed exit = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_closed_exit.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_exit_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_closed_exit.webp",
    loop=False
    )

image cho_bj topless suck medium start = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_medium_start.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_medium_start_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_medium_start.webp",
    loop=False
    )

image cho_bj topless suck deep start = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/suck_deep_start.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/suck_deep_start_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/suck_deep_start.webp",
    loop=False
    )

image cho_bj topless cum mouth = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/cum_mouth.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/cum_mouth_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/cum_mouth.webp",
    loop=False
    )

image cho_bj topless cum swallow = Movie(
    play="images/CG/cho_bj/bj/nonloops/topless/cum_swallow.webm",
    image="images/CG/cho_bj/bj/nonloops/topless/cum_swallow_end.webp",
    start_image="images/CG/cho_bj/bj/nonloops/topless/cum_swallow.webp",
    loop=False
    )

image cho_bj_desk_idle:
    zoom 0.25
    "images/CG/cho_bj_desk/idle.webp"

image cho_bj_desk_idle_overlay:
    zoom 0.25
    "images/CG/cho_bj_desk/overlay_idle.webp"

image cho_bj_desk_idle_mask:
    zoom 0.25
    "images/CG/cho_bj_desk/mask_idle.webp"

image cho_bj_desk_idle_snape:
    zoom 0.25
    "images/CG/cho_bj_desk/bj_out.webp"

image cho_bj_desk_idle_snape_no_spit:
    zoom 0.25
    "images/CG/cho_bj_desk/bj_out_no_spit.webp"

image cho_bj_desk_hj:
    zoom 0.25
    "images/CG/cho_bj_desk/hj_down.webp" #with dissolve
    pause 0.66
    "images/CG/cho_bj_desk/hj_up.webp" #with dissolve
    pause 0.66
    repeat

image cho_bj_desk_hj_overlay:
    zoom 0.25
    "images/CG/cho_bj_desk/overlay.webp"

image cho_bj_desk_hj_mask:
    zoom 0.25
    "images/CG/cho_bj_desk/mask.webp"

image cho_bj_desk_bj:
    zoom 0.25
    "images/CG/cho_bj_desk/bj_out.webp" #with dissolve
    pause 0.66
    "images/CG/cho_bj_desk/bj_in.webp" #with dissolve
    pause 0.66
    repeat

image cho_bj_desk_bj_fast:
    zoom 0.25
    "images/CG/cho_bj_desk/bj_out.webp" #with dissolve
    pause 0.33
    "images/CG/cho_bj_desk/bj_in.webp" #with dissolve
    pause 0.33
    repeat

image cho_bj_desk_bj_overlay:
    zoom 0.25
    "images/CG/cho_bj_desk/overlay.webp"

image cho_bj_desk_bj_mask:
    zoom 0.25
    "images/CG/cho_bj_desk/mask.webp"

image cho_under_desk_idle = Xray("cho_bj_desk_idle", "cho_bj_desk_idle_overlay", "cho_bj_desk_idle_mask")
image cho_under_desk_idle_snape = Xray("cho_bj_desk_idle_snape", "cho_bj_desk_bj_overlay", "cho_bj_desk_bj_mask")
image cho_under_desk_handjob = Xray("cho_bj_desk_hj", "cho_bj_desk_hj_overlay", "cho_bj_desk_hj_mask")
image cho_under_desk_blowjob = Xray("cho_bj_desk_bj", "cho_bj_desk_bj_overlay", "cho_bj_desk_bj_mask")
image cho_under_desk_blowjob_fast = Xray("cho_bj_desk_bj", "cho_bj_desk_bj_overlay", "cho_bj_desk_bj_mask")
image cho_under_desk_idle_snape_no_spit = Xray("cho_bj_desk_idle_snape_no_spit", "cho_bj_desk_bj_overlay", "cho_bj_desk_bj_mask")

transform softblink:
    animation

    choice:
        linear 1.0 alpha 0.0
        linear 1.0 alpha 1.0
    choice:
        linear 2.0 alpha 0.0
        linear 2.0 alpha 1.0
    choice:
        linear 3.0 alpha 0.0
        linear 3.0 alpha 1.0

    repeat

image dustparticles_big = SnowBlossom(At("images/CG/cho_sex/blob.webp", softblink), start=0.01, border=100, count=50, fast=True,  yspeed=(-50, -40),  xspeed=(-100,100), horizontal=True)
image dustparticles_medium = SnowBlossom(At(Transform("images/CG/cho_sex/blob.webp", zoom=0.5), softblink), start=0.0075, border=75, count=50, fast=True,  yspeed=(-25, -20),  xspeed=(-50,50), horizontal=True)
image dustparticles_small = SnowBlossom(At(Transform("images/CG/cho_sex/blob.webp", zoom=0.25), softblink), start=0.005, border=100, count=75, fast=True,  yspeed=(-12, -10),  xspeed=(-25,25), horizontal=True)

layeredimage dustfloating:
    fit "contain"
    fit_first True

    always "dustparticles_big"
    always "dustparticles_medium"
    always "dustparticles_small"

image cho_sex idle:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/idle/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/idle/blink.webp"
                pause 0.1
                "images/CG/cho_sex/idle/cho.webp"
                pause 0.1
                "images/CG/cho_sex/idle/blink.webp"
            choice:
                "images/CG/cho_sex/idle/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.025 xzoom 1.01 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/idle/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/idle/penis.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

image cho_sex up:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/penis.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yoffset absolute(2.1)
            linear 2.0 yoffset absolute(0)
            repeat

image cho_sex up jerking:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/genie_masturbate.webp" with d1
            pause 0.25
            "images/CG/cho_sex/up/genie_masturbate2.webp" with d1
            pause 0.25
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        zoom 0.25
        "images/CG/cho_sex/up/speed.webp"

image cho_sex up taste:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up_taste/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up_taste/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up_taste/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up_taste/blink.webp"
            choice:
                "images/CG/cho_sex/up_taste/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up_taste/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up_taste/penis.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yoffset absolute(2.1)
            linear 2.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up_taste/cum_inside.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yoffset absolute(2.1)
            linear 2.0 yoffset absolute(0)
            repeat

image cho_sex up taste outside:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up_taste/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up_taste/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up_taste/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up_taste/blink.webp"
            choice:
                "images/CG/cho_sex/up_taste/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up_taste/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up_taste/penis.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up_taste/cum_outside_stage3.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

image cho_sex insert:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/insert/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/insert/blink.webp"
                pause 0.1
                "images/CG/cho_sex/insert/cho.webp"
                pause 0.1
                "images/CG/cho_sex/insert/blink.webp"
            choice:
                "images/CG/cho_sex/insert/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/insert/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

image cho_sex insert cum inside:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/insert/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/insert/blink.webp"
                pause 0.1
                "images/CG/cho_sex/insert/cho.webp"
                pause 0.1
                "images/CG/cho_sex/insert/blink.webp"
            choice:
                "images/CG/cho_sex/insert/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/insert/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            yoffset 3
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/insert/cum_inside.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

image cho_sex up inside:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/penis_inside.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

image cho_sex up cum inside:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            yoffset 3

            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/penis_inside.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/cum_inside.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

image cho_sex up cum outside:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            yoffset absolute(3)

            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/penis.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            yoffset absolute(2.9)
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-1.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(2.9)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/cum_outside.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            yoffset absolute(2.9)
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-1.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(2.9)
            repeat

image cho_sex up cum outside stage1:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie_masturbate.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/cum_outside_stage1.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

image cho_sex up cum outside stage2:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie_masturbate.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/cum_outside_stage2.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

image cho_sex up cum outside stage3:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/penis.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-1.7)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(2.5)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/cum_outside_stage3.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-1.7)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(2.5)
            repeat

image cho_sex up cum outside stage0:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/up/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/up/blink.webp"
                pause 0.1
                "images/CG/cho_sex/up/cho.webp"
                pause 0.1
                "images/CG/cho_sex/up/blink.webp"
            choice:
                "images/CG/cho_sex/up/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/genie_masturbate.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/up/cum_outside_spurt.webp"

        block:
            subpixel True
            xzoom 1.01
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 1.0 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.01 yoffset absolute(0)
            repeat

image cho_sex middle:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/middle/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/middle/blink.webp"
                pause 0.1
                "images/CG/cho_sex/middle/cho.webp"
                pause 0.1
                "images/CG/cho_sex/middle/blink.webp"
            choice:
                "images/CG/cho_sex/middle/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 0.99 yoffset absolute(-1.3)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/middle/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

image cho_sex middle cum inside:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/middle/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/middle/blink.webp"
                pause 0.1
                "images/CG/cho_sex/middle/cho.webp"
                pause 0.1
                "images/CG/cho_sex/middle/blink.webp"
            choice:
                "images/CG/cho_sex/middle/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 0.99 yoffset absolute(-1.3)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/middle/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/middle/cum_inside.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

image cho_sex down:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/down/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/down/blink.webp"
                pause 0.1
                "images/CG/cho_sex/down/cho.webp"
                pause 0.1
                "images/CG/cho_sex/down/blink.webp"
            choice:
                "images/CG/cho_sex/down/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 0.99 yoffset absolute(-1.3)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/down/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

image cho_sex loop cho mid:
    "images/CG/cho_sex/middle/cho.webp"

    choice:
        pause 4
    choice:
        pause 3
    choice:
        pause 2

    choice:
        "images/CG/cho_sex/middle/blink.webp"
        pause 0.1
        "images/CG/cho_sex/middle/cho.webp"
        pause 0.1
        "images/CG/cho_sex/middle/blink.webp"
    choice:
        "images/CG/cho_sex/middle/blink.webp"

    pause 0.1
    repeat

image cho_sex loop cho down:
    "images/CG/cho_sex/down/cho.webp"

    choice:
        pause 4
    choice:
        pause 3
    choice:
        pause 2

    choice:
        "images/CG/cho_sex/down/blink.webp"
        pause 0.1
        "images/CG/cho_sex/down/cho.webp"
        pause 0.1
        "images/CG/cho_sex/down/blink.webp"
    choice:
        "images/CG/cho_sex/down/blink.webp"

    pause 0.1
    repeat

image cho_sex loop slow:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "cho_sex loop cho down" with d1
            pause 0.55
            "cho_sex loop cho mid" with d1
            pause 0.55
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 0.99 yoffset absolute(-1.3)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/down/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

image cho_sex loop fast:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "cho_sex loop cho down" with d1
            pause 0.33
            "cho_sex loop cho mid" with d1
            pause 0.33
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.01 xzoom 0.99 yoffset absolute(-1.3)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/down/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(3)
            repeat

    contains:
        zoom 0.25
        "images/CG/cho_sex/speed.webp"

        # block:
        #     ypos 7
        #     pause 0.33
        #     ypos -7
        #     pause 0.33
        #     repeat

image cho_sex idle creampie:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/idle/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/idle/blink.webp"
                pause 0.1
                "images/CG/cho_sex/idle/cho.webp"
                pause 0.1
                "images/CG/cho_sex/idle/blink.webp"
            choice:
                "images/CG/cho_sex/idle/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.025 xzoom 1.01 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/idle/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/idle/creampie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

image cho_sex idle cum inside:

    contains:
        zoom 0.25
        "images/CG/cho_sex/background.webp"

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25

        parallel:
            "images/CG/cho_sex/idle/cho.webp"

            choice:
                pause 4
            choice:
                pause 3
            choice:
                pause 2

            choice:
                "images/CG/cho_sex/idle/blink.webp"
                pause 0.1
                "images/CG/cho_sex/idle/cho.webp"
                pause 0.1
                "images/CG/cho_sex/idle/blink.webp"
            choice:
                "images/CG/cho_sex/idle/blink.webp"

            pause 0.1
            repeat

        parallel:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.025 xzoom 1.01 yoffset absolute(-3.4)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/idle/genie.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

    contains:
        anchor (0.5, 0.5)
        align (0.5, 0.5)
        zoom 0.25
        "images/CG/cho_sex/idle/penis_cum_inside.webp"

        block:
            subpixel True
            xzoom 1.0
            yzoom 1.0
            linear 2.0 yzoom 1.05 xzoom 0.99 yoffset absolute(-6.8)
            linear 2.0 yzoom 1.0 xzoom 1.0 yoffset absolute(0)
            repeat

layeredimage cho_strip_personal_t3_e3_lying:
    fit "cover"
    fit_first True

    always "cho_strip_personal_t3_e3_background"

    attribute tonks_body default
    group tonks_blush auto prefix "tonks_blush":
        attribute neutral null default
    group tonks_eyes auto prefix "tonks_eyes":
        attribute open_look_at_cho default
    group tonks_mouth auto prefix "tonks_mouth":
        attribute base default

    attribute cho_body default
    group cho_blush auto prefix "cho_blush":
        attribute neutral null default
    group cho_eyes auto prefix "cho_eyes":
        attribute open_look_at_tonks default
    group cho_mouth auto prefix "cho_mouth":
        attribute base default

    always "cho_strip_personal_t3_e3_foreground"
    always "cho_strip_personal_t3_e3_lying_hands"

    group cum multiple auto prefix "cum"

    group desk_cum multiple prefix "desk_cum":
        attribute spurt "cho_strip_personal_t3_e3_desk_cum_spurt"
        attribute post "cho_strip_personal_t3_e3_desk_cum_post"

transform desk_cum_spurt_fly:
    on start:
        ypos 1200
        easeout 0.75 ypos 0

layeredimage cho_strip_personal_t3_e3_on_knees:
    fit "cover"
    fit_first True

    always "cho_strip_personal_t3_e3_background"

    group cho_body auto prefix "cho_body":
        attribute idle default
        attribute grab_spread
    attribute cho_ass_spread default if_all ["tonks_body_grab_spread"]

    attribute cho_handprint null
    attribute cho_handprint_normal default if_all ["cho_handprint"] if_any ["tonks_body_idle", "tonks_body_grab"]
    attribute cho_handprint_spread default if_all ["cho_handprint", "tonks_body_grab_spread"]

    attribute cho_wetness null
    attribute cho_wetness_normal default if_all ["cho_wetness"] if_any ["tonks_body_idle", "tonks_body_grab"]
    attribute cho_wetness_spread default if_all ["cho_wetness", "tonks_body_grab_spread"]

    group cho_blush auto prefix "cho_blush":
        attribute neutral null default
    group cho_eyes auto prefix "cho_eyes":
        attribute open_look_at_tonks default
    group cho_mouth auto prefix "cho_mouth":
        attribute base default

    group tonks_body auto prefix "tonks_body":
        attribute idle default
    attribute tonks_assfix default if_all ["cho_body_grab_spread"]
    attribute tonks_ass_spread default if_all ["cho_body_grab_spread"]

    attribute tonks_wetness null
    attribute tonks_wetness_normal default if_all ["tonks_wetness"] if_not ["cho_body_grab_spread"]
    attribute tonks_wetness_spread default if_all ["tonks_wetness", "cho_body_grab_spread"]

    group tonks_blush auto prefix "tonks_blush":
        attribute neutral null default
    group tonks_eyes auto prefix "tonks_eyes":
        attribute open_look_at_cho default
    group tonks_mouth auto prefix "tonks_mouth":
        attribute base default

    attribute cho_armfix_grab_spread default if_any ["cho_body_grab", "cho_body_grab_spread"]
    attribute cho_armfix_idle default if_all ["cho_body_idle"]

    always "cho_strip_personal_t3_e3_foreground"

    group desk_cum prefix "desk_cum":
        attribute spurt "cho_strip_personal_t3_e3_desk_cum_spurt" at desk_cum_spurt_fly
        attribute post "cho_strip_personal_t3_e3_desk_cum_post"

layeredimage cho_strip_personal_t3_e3_cho_staring:
    fit "cover"
    fit_first True

    always "cho_strip_personal_t3_e3_background"

    group cho_body auto prefix "cho_body":
        attribute idle default

    group cho_blush auto prefix "cho_blush":
        attribute neutral null default
    group cho_eyes auto prefix "cho_eyes":
        attribute wide_look_at_tits default
    group cho_mouth auto prefix "cho_mouth":
        attribute open default

    attribute tonks_body default
    group tonks_blush auto prefix "tonks_blush":
        attribute neutral null default
    group tonks_eyes auto prefix "tonks_eyes":
        attribute open_mid default
    group tonks_mouth auto prefix "tonks_mouth":
        attribute smile default

    always "cho_strip_personal_t3_e3_foreground"
    always "cho_strip_personal_t3_e3_cho_staring_hands"

layeredimage cho_handjob:
    fit "cover"
    fit_first True

    always "cho_handjob_background"

    group cho_body auto prefix "cho_body":
        attribute bending default
        # attribute stroke_down
        # attribute stroke_up
        # attribute stroke_idle
        # attribute idle
        # attribute idle2
        attribute none null

    group skirt:
        attribute skirt null default
        attribute no_skirt null

    attribute cho_bending_skirt default if_all ["cho_body_bending", "skirt"]
    attribute cho_stroke_down_skirt default if_all ["cho_body_stroke_down", "skirt"]
    attribute cho_stroke_up_skirt default if_all ["cho_body_stroke_up", "skirt"]
    attribute cho_stroke_idle_skirt default if_all ["cho_body_stroke_idle", "skirt"]
    attribute cho_idle_skirt default if_all ["cho_body_idle", "skirt"]
    attribute cho_idle2_skirt default if_all ["cho_body_idle2", "skirt"]

    group shirt:
        attribute shirt null default
        attribute shirt_open null
        attribute no_shirt null

    attribute cho_bending_shirt default if_all ["cho_body_bending", "shirt"]
    attribute cho_bending_shirt_open default if_all ["cho_body_bending", "shirt_open"]

    attribute cho_stroke_down_shirt default if_all ["cho_body_stroke_down", "shirt"]
    attribute cho_stroke_up_shirt default if_all ["cho_body_stroke_up", "shirt"]
    attribute cho_stroke_idle_shirt default if_all ["cho_body_stroke_idle", "shirt"]
    attribute cho_idle_shirt default if_all ["cho_body_idle", "shirt"]
    attribute cho_idle2_shirt default if_all ["cho_body_idle2", "shirt"]

    attribute cho_stroke_down_shirt_open default if_all ["cho_body_stroke_down", "shirt_open"]
    attribute cho_stroke_up_shirt_open default if_all ["cho_body_stroke_up", "shirt_open"]
    attribute cho_stroke_idle_shirt_open default if_all ["cho_body_stroke_idle", "shirt_open"]
    attribute cho_idle_shirt_open default if_all ["cho_body_idle", "shirt_open"]
    attribute cho_idle2_shirt_open default if_all ["cho_body_idle2", "shirt_open"]

    attribute cho_skirt_fix default if_all ["no_shirt", "skirt"]

    group eyes auto prefix "eyes" if_not ["cho_body_bending"]:
        attribute open_forward default

    group mouth auto prefix "mouth" if_not ["cho_body_bending"]:
        attribute base default

    group eyebrows auto prefix "eyebrows" if_not ["cho_body_bending"]:
        attribute base default
    
    attribute cho_hair_fringe default if_any ["cho_body_stand", "cho_body_idle", "cho_body_idle2", "cho_body_stroke_idle", "cho_body_stroke_down", "cho_body_stroke_up"]

    group penis auto prefix "penis":
        attribute soft default
        attribute none null

    attribute hand_stroke_down default if_all ["cho_body_stroke_down"]
    attribute hand_stroke_up default if_all ["cho_body_stroke_up"]
    attribute hand_stroke_idle default if_all ["cho_body_stroke_idle"]
    attribute hand_stroke_down_wet default if_all ["cho_body_stroke_down", "penis_hard_spit_on_shaft"]
    attribute hand_stroke_up_wet default if_all ["cho_body_stroke_up", "penis_hard_spit_on_shaft"]
    attribute hand_stroke_idle_wet default if_all ["cho_body_stroke_idle", "penis_hard_spit_on_shaft"]

    group genie prefix "genie":
        attribute robed default
        attribute unrobed

    group effects multiple auto prefix "effects"

    group speedlines auto prefix "speedlines"

    group cum auto prefix "cum" 

layeredimage cho_masturbate_lockers:
    fit "cover"
    fit_first True

    always "cho_masturbate_lockers_background"

    group cho_body auto prefix "cho_body":
        attribute idle default

    group eyes auto prefix "eyes":
        attribute forward default

    group mouth auto prefix "mouth":
        attribute base default

    group eyebrows auto prefix "eyebrows":
        attribute base default

    group blush auto prefix "blush"

    group effects auto prefix "effects" multiple

    always "cho_masturbate_lockers_hair"

    group cum auto prefix "cum" multiple

layeredimage cho_facefuck:
    fit "cover"
    fit_first True

    always "cho_facefuck_background"

    group cum:
        attribute throatpie null
        attribute cumshot null
        attribute cumshot2 null

    group spit multiple:
        attribute spit_on_face null
        attribute spit_on_mouth null

    group eyebrows prefix "eyebrows":
        attribute raised null
        attribute low null
        attribute angry null
        attribute worried null default

    group eyes prefix "eyes":
        attribute shut null
        attribute right null
        attribute left null
        attribute down null
        attribute up null default
        attribute ahegao null
        attribute stare null
        attribute narrow_right null
        attribute narrow_left null
        attribute narrow_down null
        attribute narrow_up null
        attribute narrow_ahegao null
        attribute narrow_stare null

    attribute no_shirt null
    attribute tears null
    attribute cheekbulge null
    attribute mouth_bubbles null

    group blush multiple prefix "blush":
        attribute heavy null
        attribute choking null


    group cho auto variant "shadow"
    group cho auto variant "arms"
    group genie auto variant "body"
    group cho auto variant "body"
    group cho auto variant "shirt" if_not ["no_shirt"]
    group cho auto variant "head"
    group genie auto variant "penis"
    group cho auto variant "tears" if_all ["tears"]
    group cho auto variant "cheekbulge" if_all ["cheekbulge"]
    group cho auto variant "blush_heavy" if_all ["blush_heavy"]
    group cho auto variant "blush_choking" if_all ["blush_choking"]
    group cho auto variant "eyebrows_raised" if_all ["eyebrows_raised"]
    group cho auto variant "eyebrows_low" if_all ["eyebrows_low"]
    group cho auto variant "eyebrows_angry" if_all ["eyebrows_angry"]
    group cho auto variant "eyebrows_worried" if_all ["eyebrows_worried"]
    group cho auto variant "eyes_shut" if_all ["eyes_shut"]
    group cho auto variant "eyes_right" if_all ["eyes_right"]
    group cho auto variant "eyes_left" if_all ["eyes_left"]
    group cho auto variant "eyes_down" if_all ["eyes_down"]
    group cho auto variant "eyes_up" if_all ["eyes_up"]
    group cho auto variant "eyes_ahegao" if_all ["eyes_ahegao"]
    group cho auto variant "eyes_stare" if_all ["eyes_stare"]
    group cho auto variant "eyes_narrow_right" if_all ["eyes_narrow_right"]
    group cho auto variant "eyes_narrow_left" if_all ["eyes_narrow_left"]
    group cho auto variant "eyes_narrow_down" if_all ["eyes_narrow_down"]
    group cho auto variant "eyes_narrow_up" if_all ["eyes_narrow_up"]
    group cho auto variant "eyes_narrow_ahegao" if_all ["eyes_narrow_ahegao"]
    group cho auto variant "eyes_narrow_stare" if_all ["eyes_narrow_stare"]
    group cho auto variant "spit_mouth" if_all ["spit_on_mouth"]
    group cho auto variant "spit_face" if_all ["spit_on_face"]
    group cho auto variant "mouth_bubbles" if_all ["mouth_bubbles"]
    group genie auto variant "cum_throatpie" if_all ["throatpie"]
    group genie auto variant "cum_cumshot" if_all ["cumshot"]
    group genie auto variant "cum_cumshot2" if_all ["cumshot2"]
    group cho auto variant "hair"
    group genie auto variant "hands"
    group effects auto prefix "effects" multiple


layeredimage cho_quidditch_outro bedroom:
    fit "cover"
    fit_first True

    always "cho_quidditch_outro_bedroom_background"

    attribute potion

layeredimage cho_quidditch_outro pitch:
    fit "cover"
    fit_first True

    always "cho_quidditch_outro_pitch_background"

    group snape auto prefix "snape"

    always "cho_quidditch_outro_pitch_overlay"
