<html>
<head>
<title>WEBP animation reftest: when animation ends, compare its last frame against the reference static WEBP image.</title>
<script>
    if (window.testRunner)
        testRunner.dumpAsText(true);

    window.onload = function() {
        if (window.testRunner)
            testRunner.waitUntilDone();

        window.setTimeout(function() {
            if (window.testRunner)
                testRunner.notifyDone();
        }, 300);
    }
</script>
<style>
img { margin: 1px; }
</style>
</head>
<body style="margin: 1px">
<img src=resources/awebp00.webp><img src=resources/awebp01.webp><img src=resources/awebp02.webp><img src=resources/awebp03.webp><br>
<img src=resources/awebp04.webp><img src=resources/awebp05.webp><img src=resources/awebp06.webp><img src=resources/awebp07.webp><br>
<img src=resources/awebp08.webp><img src=resources/awebp09.webp>
</body>
</html>
