<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>108864</bug_id>
          
          <creation_ts>2013-02-04 14:53:41 -0800</creation_ts>
          <short_desc>[wk2] REGRESSION (r138858): GIFs don&apos;t start playing when they come out of background tabs</short_desc>
          <delta_ts>2013-07-29 06:55:05 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>114680</dependson>
    
    <dependson>119217</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>dstockwell</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>koivisto</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>824792</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-02-04 14:53:41 -0800</bug_when>
    <thetext>Steps to Reproduce:

1. Open a tab to an animated gif.
2. Open a tab to about:blank.
3. Switch between them, sometimes waiting a few seconds.

Eventually you&apos;ll manage to freeze the GIF.

&lt;rdar://problem/13140489&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873269</commentid>
    <comment_count>1</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-10 15:34:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/148143</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873270</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-10 15:34:39 -0700</bug_when>
    <thetext>Err, wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874012</commentid>
    <comment_count>3</comment_count>
      <attachid>197649</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-11 12:00:55 -0700</bug_when>
    <thetext>Created attachment 197649
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874022</commentid>
    <comment_count>4</comment_count>
      <attachid>197649</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-04-11 12:23:52 -0700</bug_when>
    <thetext>Comment on attachment 197649
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=197649&amp;action=review

&gt; Source/WebCore/dom/Document.cpp:6171
&gt; +        CachedResourceHandle&lt;CachedResource&gt; resource = it-&gt;value;

Can this be a const CachedResourceHandle&amp; instead to avoid copying? Or is copying the handle valuable in some way?

&gt; Source/WebCore/dom/Document.h:1218
&gt; +    void advanceAllAnimatedImages();

Is this the best class for this function? For example, should it be in the cached resource loader instead? Seems to be mission-creep for Document.

&gt; Source/WebCore/platform/graphics/BitmapImage.h:186
&gt;      void reportMemoryUsage(MemoryObjectInfo*) const OVERRIDE;

Yuck, missing virtual keyword.

&gt; Source/WebCore/platform/graphics/BitmapImage.h:188
&gt; +    bool canAnimate();

Should this be const?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2006
&gt; +            for (Frame* frame = m_page-&gt;mainFrame(); frame; frame = frame-&gt;tree()-&gt;traverseNext()) {

I think this needs a why comment. A very brief one, and one that answers the questions the code itself doesn’t.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2007
&gt; +                if (Document* document = frame-&gt;document())

Is this null check really needed? I don’t think we allow frames in the frame tree that have null documents. But obviously if I am wrong we will regret it later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874045</commentid>
    <comment_count>5</comment_count>
      <attachid>197649</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-11 12:38:23 -0700</bug_when>
    <thetext>Comment on attachment 197649
patch

View in context: https://bugs.webkit.org/attachment.cgi?id=197649&amp;action=review

&gt; Source/WebCore/dom/Document.cpp:6167
&gt; +void Document::advanceAllAnimatedImages()
&gt; +{

Something like resumeAnimatingImages() would be more clear about the purpose of this function.

Perhaps this could go to AnimationController? It seems we already use resumeAnimations() for other animation types. I feel this doesn&apos;t belong to the Document as it generally does not deal with rendering. The amount of includes you need to add points to this as well.

&gt; Source/WebCore/dom/Document.cpp:6188
&gt; +        CachedResourceHandle&lt;CachedResource&gt; resource = it-&gt;value;
&gt; +
&gt; +        if (!resource || !resource-&gt;isImage())
&gt; +            continue;
&gt; +
&gt; +        CachedImage* cachedImage = static_cast&lt;CachedImage*&gt;(resource.get());
&gt; +        if (!cachedImage-&gt;hasImage())
&gt; +            continue;
&gt; +
&gt; +        Image* image = cachedImage-&gt;image();
&gt; +        if (!image-&gt;isBitmapImage())
&gt; +            continue;
&gt; +
&gt; +        BitmapImage* bitmapImage = static_cast&lt;BitmapImage*&gt;(image);
&gt; +        if (!bitmapImage-&gt;canAnimate())
&gt; +            continue;
&gt; +
&gt; +        cachedImage-&gt;animationAdvanced(bitmapImage);

I would remove the empty lines.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:2010
&gt;          m_page-&gt;didMoveOnscreen();
&gt;          
&gt; -        if (!pageWasInWindow)
&gt; +        if (!pageWasInWindow) {
&gt;              WebProcess::shared().pageDidEnterWindow(this);
&gt; +            
&gt; +            for (Frame* frame = m_page-&gt;mainFrame(); frame; frame = frame-&gt;tree()-&gt;traverseNext()) {
&gt; +                if (Document* document = frame-&gt;document())
&gt; +                    document-&gt;advanceAllAnimatedImages();
&gt; +            }
&gt; +        }

This code should probably done in WebCore side under Page::didMoveOnscreen(). Or maybe it should use the MediaCanStartListener mechanism. I don&apos;t think it belongs to WebKit2 in any case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874049</commentid>
    <comment_count>6</comment_count>
      <attachid>197649</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-11 12:40:37 -0700</bug_when>
    <thetext>Comment on attachment 197649
patch

Oops, didn&apos;t mean to change the r=darin status. But please consider the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874057</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-04-11 12:48:13 -0700</bug_when>
    <thetext>I think it’s fine to remove my review flag. Our comments were pointing in the same direction and I feel confident Tim wants to do another cut at this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874203</commentid>
    <comment_count>8</comment_count>
      <attachid>197680</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-11 15:08:59 -0700</bug_when>
    <thetext>Created attachment 197680
revised patch, moved to AnimationController</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874205</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-11 15:10:30 -0700</bug_when>
    <thetext>Attachment 197680 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/page/animation/AnimationController.cpp&apos;, u&apos;Source/WebCore/page/animation/AnimationControllerPrivate.h&apos;, u&apos;Source/WebCore/platform/graphics/BitmapImage.cpp&apos;, u&apos;Source/WebCore/platform/graphics/BitmapImage.h&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;]&quot; exit_code: 1
Source/WebCore/page/animation/AnimationControllerPrivate.h:86:  The parameter name &quot;document&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874207</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-11 15:11:16 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebCore/platform/graphics/BitmapImage.h:188
&gt; &gt; +    bool canAnimate();
&gt; 
&gt; Should this be const?

I wish, but one of the things it calls can mutate the BitmapImage because of caching. Probably a use for &apos;mutable&apos;, but I&apos;d rather not touch it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874209</commentid>
    <comment_count>11</comment_count>
      <attachid>197680</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-11 15:12:18 -0700</bug_when>
    <thetext>Comment on attachment 197680
revised patch, moved to AnimationController

AnimationController is just about CSS animations/keyframes. It should not do anything with images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874234</commentid>
    <comment_count>12</comment_count>
      <attachid>197683</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-11 15:49:01 -0700</bug_when>
    <thetext>Created attachment 197683
patch

frameview? grasping at straws after talking to simon :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874427</commentid>
    <comment_count>13</comment_count>
      <attachid>197683</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-04-12 01:28:43 -0700</bug_when>
    <thetext>Comment on attachment 197683
patch

Ok, though FrameView is oversized and not a great place for this either. One option would be to add

static void CachedImage::resumeAnimationsForLoader(CachedResourceLoader*)

which would be called by FrameView::resumeAnimatingImages().

But really, it would be good to have one place for controlling all animation types. AnimationController would be a fine name for one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874912</commentid>
    <comment_count>14</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-04-12 12:50:39 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 197683 [details])
&gt; Ok, though FrameView is oversized and not a great place for this either. One option would be to add
&gt; 
&gt; static void CachedImage::resumeAnimationsForLoader(CachedResourceLoader*)
&gt; 
&gt; which would be called by FrameView::resumeAnimatingImages().
&gt; 
&gt; But really, it would be good to have one place for controlling all animation types. AnimationController would be a fine name for one.

So a long term plan might be to rename AnimationController to CSSAnimationController. However, it&apos;s not clear to me that it makes sense for GIF animations to be lumped in with CSS/SVG animations. GIF animations are just images with slightly special behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>874921</commentid>
    <comment_count>15</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-04-12 13:16:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/148300</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197649</attachid>
            <date>2013-04-11 12:00:55 -0700</date>
            <delta_ts>2013-04-11 15:08:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>gif.diff</filename>
            <type>text/plain</type>
            <size>6852</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNDlkZjNlLi43MGI4NGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTMtMDQtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjEzODg1OCk6IEdJRnMgZG9uJ3Qgc3RhcnQgcGxheWluZyB3
aGVuIHRoZXkgY29tZSBvdXQgb2YgYmFja2dyb3VuZCB0YWJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzEzMTQwNDg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogV2ViQ29yZS5leHAuaW46IEV4cG9ydCBEb2N1bWVudDo6YWR2YW5jZUFsbEFuaW1h
dGVkSW1hZ2VzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6YWR2YW5jZUFsbEFuaW1hdGVkSW1hZ2VzKTogQWRkZWQuCisgICAgICAgIEl0
ZXJhdGUgdGhyb3VnaCBhbGwgb2YgdGhlIGRvY3VtZW50J3MgY2FjaGVkIHJlc291cmNlcy4gSWYg
dGhleSBhcmUgYml0bWFwIGltYWdlcworICAgICAgICB3aGljaCBjbGFpbSB0byBiZSBhbmltYXRh
YmxlLCBub3RpZnkgdGhlIGltYWdlJ3Mgb2JzZXJ2ZXJzIHRoYXQgdGhlIGFuaW1hdGlvbiBhZHZh
bmNlZAorICAgICAgICBieSBvbmUgZnJhbWUuIEluIHJlYWxpdHksIHRoZSBpbWFnZSBpcyBzdGls
bCBvbiB0aGUgc2FtZSBmcmFtZSwgYnV0IHdpbGwgbm93IGJlIHJlcGFpbnRlZCwKKyAgICAgICAg
cmVzdGFydGluZyB0aGUgYW5pbWF0aW9uIGxvb3AuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6
CisgICAgICAgIChEb2N1bWVudCk6IEFkZCBhZHZhbmNlQWxsQW5pbWF0ZWRJbWFnZXMuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Qml0bWFwSW1hZ2U6OmNhbkFuaW1hdGUpOiBBZGRlZC4gCisgICAgICAgIFJldHVybiB3aGV0
aGVyIG9yIG5vdCB0aGUgaW1hZ2Ugc2hvdWxkIGFuaW1hdGUgKGNsYWltcyB0byBhbmltYXRlLCBo
YXMgbm90IGFscmVhZHkKKyAgICAgICAgZmluaXNoZWQgaXRzIGFuaW1hdGlvbiwgYW5kIGhhcyBh
biBJbWFnZU9ic2VydmVyKSAqYW5kKiBoYXMgbW9yZSB0aGFuIG9uZSBmcmFtZS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oOgorICAgICAgICAoQml0bWFwSW1hZ2Up
OiBBZGQgY2FuQW5pbWF0ZS4KKwogMjAxMy0wNC0xMCAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTMwNDcyNjY+IEV4dGVybmFs
IFhNTCBlbnRpdGllcyBhcmUgbm90IGxvYWRlZCB3aXRoIG1vZGVybiBsaWJ4bWwyCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCmluZGV4IGZjOWQwZWUuLjllM2VlODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBA
IC0xMDA2LDYgKzEwMDYsNyBAQCBfX1pON1dlYkNvcmU4RG9jdW1lbnQyMHN0eWxlUmVzb2x2ZXJD
aGFuZ2VkRU5TXzIzU3R5bGVSZXNvbHZlclVwZGF0ZUZsYWdFCiBfX1pON1dlYkNvcmU4RG9jdW1l
bnQyMmNyZWF0ZURvY3VtZW50RnJhZ21lbnRFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MjNkaWRB
ZGRXaGVlbEV2ZW50SGFuZGxlckV2CiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyNGFkZE1lZGlhQ2Fu
U3RhcnRMaXN0ZW5lckVQTlNfMjFNZWRpYUNhblN0YXJ0TGlzdGVuZXJFCitfX1pON1dlYkNvcmU4
RG9jdW1lbnQyNGFkdmFuY2VBbGxBbmltYXRlZEltYWdlc0V2CiBfX1pON1dlYkNvcmU4RG9jdW1l
bnQyNHNldFNob3VsZENyZWF0ZVJlbmRlcmVyc0ViCiBfX1pON1dlYkNvcmU4RG9jdW1lbnQyNXNj
aGVkdWxlRm9yY2VkU3R5bGVSZWNhbGNFdgogX19aTjdXZWJDb3JlOERvY3VtZW50MjZkaWRSZW1v
dmVXaGVlbEV2ZW50SGFuZGxlckV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmOWU3MDU0
Li42MDlkZTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTMyLDEyICszMiwxNSBAQAog
I2luY2x1ZGUgIkFuaW1hdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJBdHRyLmgiCiAjaW5j
bHVkZSAiQXR0cmlidXRlLmgiCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKICNpbmNsdWRlICJD
REFUQVNlY3Rpb24uaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRlICJDU1NTdHls
ZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCisjaW5j
bHVkZSAiQ2FjaGVkSW1hZ2UuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZS5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVk
ZSAiQ2hyb21lQ2xpZW50LmgiCkBAIC02MTYwLDQgKzYxNjMsMzAgQEAgdm9pZCBEb2N1bWVudDo6
ZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxEb2N1bWVudD4qIHRpbWVy
KQogICAgIG1fYXNzb2NpYXRlZEZvcm1Db250cm9scy5jbGVhcigpOwogfQogCit2b2lkIERvY3Vt
ZW50OjphZHZhbmNlQWxsQW5pbWF0ZWRJbWFnZXMoKQoreworICAgIGNvbnN0IENhY2hlZFJlc291
cmNlTG9hZGVyOjpEb2N1bWVudFJlc291cmNlTWFwJiByZXNvdXJjZXMgPSBtX2NhY2hlZFJlc291
cmNlTG9hZGVyLT5hbGxDYWNoZWRSZXNvdXJjZXMoKTsKKworICAgIGZvciAoQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXI6OkRvY3VtZW50UmVzb3VyY2VNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcmVzb3Vy
Y2VzLmJlZ2luKCksIGVuZCA9IHJlc291cmNlcy5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7Cisg
ICAgICAgIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFJlc291cmNlPiByZXNvdXJjZSA9IGl0
LT52YWx1ZTsKKworICAgICAgICBpZiAoIXJlc291cmNlIHx8ICFyZXNvdXJjZS0+aXNJbWFnZSgp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZElt
YWdlID0gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1hZ2UqPihyZXNvdXJjZS5nZXQoKSk7CisgICAgICAg
IGlmICghY2FjaGVkSW1hZ2UtPmhhc0ltYWdlKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKwor
ICAgICAgICBJbWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZS0+aW1hZ2UoKTsKKyAgICAgICAgaWYg
KCFpbWFnZS0+aXNCaXRtYXBJbWFnZSgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgQml0bWFwSW1hZ2UqIGJpdG1hcEltYWdlID0gc3RhdGljX2Nhc3Q8Qml0bWFwSW1hZ2UqPihp
bWFnZSk7CisgICAgICAgIGlmICghYml0bWFwSW1hZ2UtPmNhbkFuaW1hdGUoKSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworCisgICAgICAgIGNhY2hlZEltYWdlLT5hbmltYXRpb25BZHZhbmNlZChi
aXRtYXBJbWFnZSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDJiZGE3ZWQuLmE0YzQ2OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0xMjE0LDYgKzEyMTQsOCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEZPTlRfTE9BRF9FVkVOVFMp
CiAgICAgUGFzc1JlZlB0cjxGb250TG9hZGVyPiBmb250bG9hZGVyKCk7CiAjZW5kaWYKKyAgICAK
KyAgICB2b2lkIGFkdmFuY2VBbGxBbmltYXRlZEltYWdlcygpOwogCiBwcm90ZWN0ZWQ6CiAgICAg
RG9jdW1lbnQoRnJhbWUqLCBjb25zdCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
aW5kZXggMzgxNTAxZC4uNjk5NGRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNTczLDYgKzU3MywxMSBAQCBDb2xvciBCaXRt
YXBJbWFnZTo6c29saWRDb2xvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc29saWRDb2xvcjsK
IH0KKyAgICAKK2Jvb2wgQml0bWFwSW1hZ2U6OmNhbkFuaW1hdGUoKQoreworICAgIHJldHVybiBz
aG91bGRBbmltYXRlKCkgJiYgZnJhbWVDb3VudCgpID4gMTsKK30KIAogdm9pZCBCaXRtYXBJbWFn
ZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykg
Y29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5oCmluZGV4IGI3ZDVmOTIuLjZhY2Y4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMTg0LDYgKzE4NCw4IEBAIHB1YmxpYzoKICNl
bmRpZgogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3QgT1ZFUlJJREU7CisgICAgCisgICAgYm9vbCBjYW5BbmltYXRlKCk7CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCB1cGRhdGVTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzlmZjkyYS4uMjkyZDY2
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTA0LTExICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIxMzg4NTgp
OiBHSUZzIGRvbid0IHN0YXJ0IHBsYXlpbmcgd2hlbiB0aGV5IGNvbWUgb3V0IG9mIGJhY2tncm91
bmQgdGFicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA4ODY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMzE0MDQ4OT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiBhIFdlYlBhZ2UgZ29lcyBmcm9t
IG91dC1vZi13aW5kb3cgdG8gaW4td2luZG93LCBjYWxsIERvY3VtZW50OjphZHZhbmNlQWxsQW5p
bWF0ZWRJbWFnZXMsCisgICAgICAgIHdoaWNoIHdpbGwgY2F1c2UgaW1hZ2UgYW5pbWF0aW9uIGxv
b3BzIHRvIGJlIHJlc3RhcnRlZC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0SXNJbldpbmRvdyk6CisKIDIw
MTMtMDQtMTAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgW3drMl0gVW4tcG9sbHV0ZSBUQ0FEQSBtZXRob2RzIHdpdGggIlBhZ2VPdmVybGF5TGF5ZXJN
YXA6Oml0ZXJhdG9yIGVuZCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCA4MWNjYThlLi5hOThlMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMDAwLDggKzIwMDAsMTQgQEAgdm9p
ZCBXZWJQYWdlOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKIAogICAgICAgICBtX3Bh
Z2UtPmRpZE1vdmVPbnNjcmVlbigpOwogICAgICAgICAKLSAgICAgICAgaWYgKCFwYWdlV2FzSW5X
aW5kb3cpCisgICAgICAgIGlmICghcGFnZVdhc0luV2luZG93KSB7CiAgICAgICAgICAgICBXZWJQ
cm9jZXNzOjpzaGFyZWQoKS5wYWdlRGlkRW50ZXJXaW5kb3codGhpcyk7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGZvciAoRnJhbWUqIGZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsgZnJh
bWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS0+dHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgICAg
ICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCisgICAgICAg
ICAgICAgICAgICAgIGRvY3VtZW50LT5hZHZhbmNlQWxsQW5pbWF0ZWRJbWFnZXMoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIG1fcGFnZS0+c2V0SXNJbldpbmRvdyhp
c0luV2luZG93KTsK
</data>
<flag name="review"
          id="219554"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197680</attachid>
            <date>2013-04-11 15:08:59 -0700</date>
            <delta_ts>2013-04-11 15:49:01 -0700</delta_ts>
            <desc>revised patch, moved to AnimationController</desc>
            <filename>gif.diff</filename>
            <type>text/plain</type>
            <size>7233</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNDlkZjNlLi5kOGM1NjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjgg
QEAKKzIwMTMtMDQtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjEzODg1OCk6IEdJRnMgZG9uJ3Qgc3RhcnQgcGxheWluZyB3
aGVuIHRoZXkgY29tZSBvdXQgb2YgYmFja2dyb3VuZCB0YWJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzEzMTQwNDg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW5nSW1h
Z2VzRm9yRG9jdW1lbnQpOiBBZGRlZC4KKyAgICAgICAgSXRlcmF0ZSB0aHJvdWdoIGFsbCBvZiB0
aGUgZG9jdW1lbnQncyBjYWNoZWQgcmVzb3VyY2VzLiBJZiB0aGV5IGFyZSBiaXRtYXAgaW1hZ2Vz
CisgICAgICAgIHdoaWNoIGNsYWltIHRvIGJlIGFuaW1hdGFibGUsIG5vdGlmeSB0aGUgaW1hZ2Un
cyBvYnNlcnZlcnMgdGhhdCB0aGUgYW5pbWF0aW9uIGFkdmFuY2VkCisgICAgICAgIGJ5IG9uZSBm
cmFtZS4gSW4gcmVhbGl0eSwgdGhlIGltYWdlIGlzIHN0aWxsIG9uIHRoZSBzYW1lIGZyYW1lLCBi
dXQgd2lsbCBub3cgYmUgcmVwYWludGVkLAorICAgICAgICByZXN0YXJ0aW5nIHRoZSBhbmltYXRp
b24gbG9vcC4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpy
ZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQpOgorICAgICAgICBXaGVuIHJlc3VtaW5nIGFuaW1h
dGlvbnMsIGFsc28gY2F1c2UgYSByZXBhaW50IG9mIGFsbCBhbmltYXRlZCBpbWFnZXMuCisgICAg
ICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaDoKKyAgICAg
ICAgKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKTogQWRkIHJlc3VtZUFuaW1hdGluZ0ltYWdl
c0ZvckRvY3VtZW50LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYW5BbmltYXRlKTogQWRkZWQuIAor
ICAgICAgICBSZXR1cm4gd2hldGhlciBvciBub3QgdGhlIGltYWdlIHNob3VsZCBhbmltYXRlIChj
bGFpbXMgdG8gYW5pbWF0ZSwgaGFzIG5vdCBhbHJlYWR5CisgICAgICAgIGZpbmlzaGVkIGl0cyBh
bmltYXRpb24sIGFuZCBoYXMgYW4gSW1hZ2VPYnNlcnZlcikgKmFuZCogaGFzIG1vcmUgdGhhbiBv
bmUgZnJhbWUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAg
ICAgICAgKEJpdG1hcEltYWdlKTogQWRkIGNhbkFuaW1hdGUuCisKIDIwMTMtMDQtMTAgIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzEzMDQ3MjY2PiBFeHRlcm5hbCBYTUwgZW50aXRpZXMgYXJlIG5vdCBsb2FkZWQgd2l0aCBtb2Rl
cm4gbGlieG1sMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25Db250cm9sbGVyLmNwcAppbmRleCBkNDdlZDRkLi41MzU1ZWFkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcApA
QCAtMzEsOCArMzEsMTEgQEAKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKICNpbmNsdWRl
ICJBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgi
CiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlBbmltYXRpb24u
aCIKKyNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9h
ZGVyLmgiCiAjaW5jbHVkZSAiQ29tcG9zaXRlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkBAIC0yOTMsNiArMjk2LDMwIEBAIHZvaWQgQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnN1c3BlbmRBbmltYXRpb25zRm9yRG9jdW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50CiAgICAgdXBkYXRlQW5pbWF0aW9uVGltZXIoKTsKIH0KIAordm9pZCBB
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6cmVzdW1lQW5pbWF0aW5nSW1hZ2VzRm9yRG9jdW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIC8vIERyYXdpbmcgbW9kZWxzIHdoaWNoIGNh
Y2hlIHBhaW50ZWQgY29udGVudCB3aGlsZSBvdXQtb2Ytd2luZG93IChXZWJLaXQyJ3MgY29tcG9z
aXRlZCBkcmF3aW5nIGFyZWFzLCBldGMuKQorICAgIC8vIHJlcXVpcmUgdGhhdCB3ZSByZXBhaW50
IGFuaW1hdGVkIGltYWdlcyB0byBraWNrc3RhcnQgdGhlIGFuaW1hdGlvbiBsb29wLgorCisgICAg
Y29uc3QgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVzb3VyY2VNYXAmIHJlc291cmNl
cyA9IGRvY3VtZW50LT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5hbGxDYWNoZWRSZXNvdXJjZXMo
KTsKKworICAgIGZvciAoQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVzb3VyY2VNYXA6
OmNvbnN0X2l0ZXJhdG9yIGl0ID0gcmVzb3VyY2VzLmJlZ2luKCksIGVuZCA9IHJlc291cmNlcy5l
bmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIGNvbnN0IENhY2hlZFJlc291cmNlSGFu
ZGxlPENhY2hlZFJlc291cmNlPiYgcmVzb3VyY2UgPSBpdC0+dmFsdWU7CisgICAgICAgIGlmICgh
cmVzb3VyY2UgfHwgIXJlc291cmNlLT5pc0ltYWdlKCkpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgQ2FjaGVkSW1hZ2UqIGNhY2hlZEltYWdlID0gc3RhdGljX2Nhc3Q8Q2FjaGVkSW1h
Z2UqPihyZXNvdXJjZS5nZXQoKSk7CisgICAgICAgIGlmICghY2FjaGVkSW1hZ2UtPmhhc0ltYWdl
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgSW1hZ2UqIGltYWdlID0gY2FjaGVk
SW1hZ2UtPmltYWdlKCk7CisgICAgICAgIGlmICghaW1hZ2UtPmlzQml0bWFwSW1hZ2UoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBCaXRtYXBJbWFnZSogYml0bWFwSW1hZ2UgPSBz
dGF0aWNfY2FzdDxCaXRtYXBJbWFnZSo+KGltYWdlKTsKKyAgICAgICAgaWYgKCFiaXRtYXBJbWFn
ZS0+Y2FuQW5pbWF0ZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNhY2hlZElt
YWdlLT5hbmltYXRpb25BZHZhbmNlZChiaXRtYXBJbWFnZSk7CisgICAgfQorfQorCiB2b2lkIEFu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpyZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50KQogewogICAgIHNldEJlZ2luQW5pbWF0aW9uVXBkYXRlVGltZShjQmVn
aW5BbmltYXRpb25VcGRhdGVUaW1lTm90U2V0KTsKQEAgLTMwNyw2ICszMzQsOCBAQCB2b2lkIEFu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpyZXN1bWVBbmltYXRpb25zRm9yRG9jdW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgIH0KICAgICAKICAgICB1cGRhdGVBbmltYXRpb25UaW1lcigp
OworCisgICAgcmVzdW1lQW5pbWF0aW5nSW1hZ2VzRm9yRG9jdW1lbnQoZG9jdW1lbnQpOwogfQog
CiBib29sIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpwYXVzZUFuaW1hdGlvbkF0VGltZShS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIGRvdWJsZSB0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggOGEyOTJmMy4uYjIyNDhkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZS5oCkBAIC04Myw2ICs4Myw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3VzcGVuZEFu
aW1hdGlvbnNGb3JEb2N1bWVudChEb2N1bWVudCopOwogICAgIHZvaWQgcmVzdW1lQW5pbWF0aW9u
c0ZvckRvY3VtZW50KERvY3VtZW50Kik7CisgICAgdm9pZCByZXN1bWVBbmltYXRpbmdJbWFnZXNG
b3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpOwogCiAgICAgYm9vbCBpc1J1bm5pbmdBbmlt
YXRpb25PblJlbmRlcmVyKFJlbmRlck9iamVjdCosIENTU1Byb3BlcnR5SUQsIGJvb2wgaXNSdW5u
aW5nTm93KSBjb25zdDsKICAgICBib29sIGlzUnVubmluZ0FjY2VsZXJhdGVkQW5pbWF0aW9uT25S
ZW5kZXJlcihSZW5kZXJPYmplY3QqLCBDU1NQcm9wZXJ0eUlELCBib29sIGlzUnVubmluZ05vdykg
Y29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAKaW5kZXggMzgxNTAxZC4uNjk5NGRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNTczLDYgKzU3MywxMSBAQCBDb2xv
ciBCaXRtYXBJbWFnZTo6c29saWRDb2xvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc29saWRD
b2xvcjsKIH0KKyAgICAKK2Jvb2wgQml0bWFwSW1hZ2U6OmNhbkFuaW1hdGUoKQoreworICAgIHJl
dHVybiBzaG91bGRBbmltYXRlKCkgJiYgZnJhbWVDb3VudCgpID4gMTsKK30KIAogdm9pZCBCaXRt
YXBJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0
SW5mbykgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5oCmluZGV4IGI3ZDVmOTIuLjZhY2Y4MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMTg0LDYgKzE4NCw4IEBAIHB1Ymxp
YzoKICNlbmRpZgogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3QgT1ZFUlJJREU7CisgICAgCisgICAgYm9vbCBjYW5BbmltYXRlKCk7CiAKIHByaXZh
dGU6CiAgICAgdm9pZCB1cGRhdGVTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNzlmZjkyYS4u
ZmI5NmJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA0LTExICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIx
Mzg4NTgpOiBHSUZzIGRvbid0IHN0YXJ0IHBsYXlpbmcgd2hlbiB0aGV5IGNvbWUgb3V0IG9mIGJh
Y2tncm91bmQgdGFicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA4ODY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMzE0MDQ4OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCByZXBhaW50IHRo
ZSB3b3JsZCB3aGVuIGFuaW1hdGlvbnMgcmVzdW1lOyBpbnN0ZWFkLCBBbmltYXRpb25Db250cm9s
bGVyCisgICAgICAgIHdpbGwgY2F1c2UgYWxsIGFuaW1hdGVkIGltYWdlcyB0byByZXBhaW50LiBU
aGlzIGxpbmUgYWxzbyBoYWQgbm8gZWZmZWN0IGZvcgorICAgICAgICBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYSwgd2hpY2ggZG9lcyBub3QgaW1wbGVtZW50IHNldE5lZWRzRGlzcGxheS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMpOgorCiAy
MDEzLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFt3azJdIFVuLXBvbGx1dGUgVENBREEgbWV0aG9kcyB3aXRoICJQYWdlT3ZlcmxheUxheWVy
TWFwOjppdGVyYXRvciBlbmQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggODFjY2E4ZS4uZWEyZjdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjA0OSw5ICsyMDQ5LDYgQEAgdm9p
ZCBXZWJQYWdlOjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMoKQogdm9pZCBX
ZWJQYWdlOjpyZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpCiB7CiAgICAgbV9w
YWdlLT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwotCi0gICAgLy8gV2Ug
bmVlZCB0byByZXBhaW50IG9uIHJlc3VtZSB0byBraWNrc3RhcnQgYW5pbWF0ZWQgcGFpbnRpbmcg
YWdhaW4uCi0gICAgbV9kcmF3aW5nQXJlYS0+c2V0TmVlZHNEaXNwbGF5KCk7CiB9CiAKIEludFBv
aW50IFdlYlBhZ2U6OnNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBwb2ludCkK
</data>
<flag name="review"
          id="219585"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197683</attachid>
            <date>2013-04-11 15:49:01 -0700</date>
            <delta_ts>2013-04-12 01:28:43 -0700</delta_ts>
            <desc>patch</desc>
            <filename>gif.diff</filename>
            <type>text/plain</type>
            <size>6387</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNDlkZjNlLi5iZjZiNzZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcg
QEAKKzIwMTMtMDQtMTEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjEzODg1OCk6IEdJRnMgZG9uJ3Qgc3RhcnQgcGxheWluZyB3
aGVuIHRoZXkgY29tZSBvdXQgb2YgYmFja2dyb3VuZCB0YWJzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzEzMTQwNDg5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpzZXRJc0luV2luZG93KToKKyAgICAgICAgV2hlbiB0aGUgRnJhbWVWaWV3IGlzIGJyb3VnaHQg
aW50byBhIHdpbmRvdywgcmVwYWludCBhbGwgYW5pbWF0ZWQgaW1hZ2VzLgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjpyZXN1bWVBbmltYXRpbmdJbWFnZXMpOiBBZGRlZC4KKyAgICAgICAg
SXRlcmF0ZSB0aHJvdWdoIGFsbCBvZiB0aGUgZG9jdW1lbnQncyBjYWNoZWQgcmVzb3VyY2VzLiBJ
ZiB0aGV5IGFyZSBiaXRtYXAgaW1hZ2VzCisgICAgICAgIHdoaWNoIGNsYWltIHRvIGJlIGFuaW1h
dGFibGUsIG5vdGlmeSB0aGUgaW1hZ2UncyBvYnNlcnZlcnMgdGhhdCB0aGUgYW5pbWF0aW9uIGFk
dmFuY2VkCisgICAgICAgIGJ5IG9uZSBmcmFtZS4gSW4gcmVhbGl0eSwgdGhlIGltYWdlIGlzIHN0
aWxsIG9uIHRoZSBzYW1lIGZyYW1lLCBidXQgd2lsbCBub3cgYmUgcmVwYWludGVkLAorICAgICAg
ICByZXN0YXJ0aW5nIHRoZSBhbmltYXRpb24gbG9vcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5oOiBBZGQgcmVzdW1lQW5pbWF0aW5nSW1hZ2VzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpjYW5B
bmltYXRlKTogQWRkZWQuIAorICAgICAgICBSZXR1cm4gd2hldGhlciBvciBub3QgdGhlIGltYWdl
IHNob3VsZCBhbmltYXRlIChjbGFpbXMgdG8gYW5pbWF0ZSwgaGFzIG5vdCBhbHJlYWR5CisgICAg
ICAgIGZpbmlzaGVkIGl0cyBhbmltYXRpb24sIGFuZCBoYXMgYW4gSW1hZ2VPYnNlcnZlcikgKmFu
ZCogaGFzIG1vcmUgdGhhbiBvbmUgZnJhbWUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuaDoKKyAgICAgICAgKEJpdG1hcEltYWdlKTogQWRkIGNhbkFuaW1hdGUuCisK
IDIwMTMtMDQtMTAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEzMDQ3MjY2PiBFeHRlcm5hbCBYTUwgZW50aXRpZXMgYXJlIG5v
dCBsb2FkZWQgd2l0aCBtb2Rlcm4gbGlieG1sMgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmlu
ZGV4IDEyMzEyNTIuLjU3Yjg1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTI5
LDYgKzI5LDggQEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJCYWNr
Rm9yd2FyZENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJCaXRtYXBJbWFnZS5oIgorI2luY2x1ZGUg
IkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNs
dWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKQEAgLTEwNTgsNiArMTA2
MCwzMyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cpCiB7
CiAgICAgaWYgKFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpCiAg
ICAgICAgIHJlbmRlclZpZXctPnNldElzSW5XaW5kb3coaXNJbldpbmRvdyk7CisKKyAgICBpZiAo
aXNJbldpbmRvdykKKyAgICAgICAgcmVzdW1lQW5pbWF0aW5nSW1hZ2VzKCk7Cit9CisKK3ZvaWQg
RnJhbWVWaWV3OjpyZXN1bWVBbmltYXRpbmdJbWFnZXMoKQoreworICAgIC8vIERyYXdpbmcgbW9k
ZWxzIHdoaWNoIGNhY2hlIHBhaW50ZWQgY29udGVudCB3aGlsZSBvdXQtb2Ytd2luZG93IChXZWJL
aXQyJ3MgY29tcG9zaXRlZCBkcmF3aW5nIGFyZWFzLCBldGMuKQorICAgIC8vIHJlcXVpcmUgdGhh
dCB3ZSByZXBhaW50IGFuaW1hdGVkIGltYWdlcyB0byBraWNrc3RhcnQgdGhlIGFuaW1hdGlvbiBs
b29wLgorCisgICAgY29uc3QgQ2FjaGVkUmVzb3VyY2VMb2FkZXI6OkRvY3VtZW50UmVzb3VyY2VN
YXAmIHJlc291cmNlcyA9IGZyYW1lKCktPmRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPmFsbENhY2hlZFJlc291cmNlcygpOworCisgICAgZm9yIChDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6RG9jdW1lbnRSZXNvdXJjZU1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSByZXNvdXJjZXMuYmVn
aW4oKSwgZW5kID0gcmVzb3VyY2VzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAg
Y29uc3QgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkUmVzb3VyY2U+JiByZXNvdXJjZSA9IGl0
LT52YWx1ZTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZSB8fCAhcmVzb3VyY2UtPmlzSW1hZ2UoKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBDYWNoZWRJbWFnZSogY2FjaGVkSW1hZ2Ug
PSBzdGF0aWNfY2FzdDxDYWNoZWRJbWFnZSo+KHJlc291cmNlLmdldCgpKTsKKyAgICAgICAgaWYg
KCFjYWNoZWRJbWFnZS0+aGFzSW1hZ2UoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBJbWFnZSogaW1hZ2UgPSBjYWNoZWRJbWFnZS0+aW1hZ2UoKTsKKyAgICAgICAgaWYgKCFpbWFn
ZS0+aXNCaXRtYXBJbWFnZSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIEJpdG1h
cEltYWdlKiBiaXRtYXBJbWFnZSA9IHN0YXRpY19jYXN0PEJpdG1hcEltYWdlKj4oaW1hZ2UpOwor
ICAgICAgICBpZiAoIWJpdG1hcEltYWdlLT5jYW5BbmltYXRlKCkpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgY2FjaGVkSW1hZ2UtPmFuaW1hdGlvbkFkdmFuY2VkKGJpdG1hcEltYWdl
KTsKKyAgICB9CiB9CiAKIFJlbmRlck9iamVjdCogRnJhbWVWaWV3OjpsYXlvdXRSb290KGJvb2wg
b25seUR1cmluZ0xheW91dCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGVkOGFm
NDIuLmI3NWU2MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNTE0LDYgKzUxNCw4IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKCkgY29u
c3Q7CiAgICAgdm9pZCBub3RpZnlXaWRnZXRzSW5BbGxGcmFtZXMoV2lkZ2V0Tm90aWZpY2F0aW9u
KTsKICAgICB2b2lkIHJlbW92ZUZyb21BWE9iamVjdENhY2hlKCk7CisKKyAgICB2b2lkIHJlc3Vt
ZUFuaW1hdGluZ0ltYWdlcygpOwogICAgIAogICAgIHN0YXRpYyBkb3VibGUgc0N1cnJlbnRQYWlu
dFRpbWVTdGFtcDsgLy8gdXNlZCBmb3IgZGV0ZWN0aW5nIGRlY29kZWQgcmVzb3VyY2UgdGhyYXNo
IGluIHRoZSBjYWNoZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHAKaW5kZXggMzgxNTAxZC4uNjk5NGRlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtNTczLDYgKzU3Mywx
MSBAQCBDb2xvciBCaXRtYXBJbWFnZTo6c29saWRDb2xvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fc29saWRDb2xvcjsKIH0KKyAgICAKK2Jvb2wgQml0bWFwSW1hZ2U6OmNhbkFuaW1hdGUoKQor
eworICAgIHJldHVybiBzaG91bGRBbmltYXRlKCkgJiYgZnJhbWVDb3VudCgpID4gMTsKK30KIAog
dm9pZCBCaXRtYXBJbWFnZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVt
b3J5T2JqZWN0SW5mbykgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IGI3ZDVmOTIuLjZhY2Y4MzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMTg0LDYgKzE4NCw4
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisgICAgCisgICAgYm9vbCBjYW5BbmltYXRlKCk7
CiAKIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
NzlmZjkyYS4uZmI5NmJkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA0LTEx
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JF
U1NJT04gKHIxMzg4NTgpOiBHSUZzIGRvbid0IHN0YXJ0IHBsYXlpbmcgd2hlbiB0aGV5IGNvbWUg
b3V0IG9mIGJhY2tncm91bmQgdGFicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA4ODY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMzE0MDQ4OT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEb24ndCBy
ZXBhaW50IHRoZSB3b3JsZCB3aGVuIGFuaW1hdGlvbnMgcmVzdW1lOyBpbnN0ZWFkLCBBbmltYXRp
b25Db250cm9sbGVyCisgICAgICAgIHdpbGwgY2F1c2UgYWxsIGFuaW1hdGVkIGltYWdlcyB0byBy
ZXBhaW50LiBUaGlzIGxpbmUgYWxzbyBoYWQgbm8gZWZmZWN0IGZvcgorICAgICAgICBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYSwgd2hpY2ggZG9lcyBub3QgaW1wbGVtZW50IHNldE5lZWRz
RGlzcGxheS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlv
bnMpOgorCiAyMDEzLTA0LTEwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29t
PgogCiAgICAgICAgIFt3azJdIFVuLXBvbGx1dGUgVENBREEgbWV0aG9kcyB3aXRoICJQYWdlT3Zl
cmxheUxheWVyTWFwOjppdGVyYXRvciBlbmQiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODFjY2E4ZS4uZWEyZjdjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjA0OSw5ICsyMDQ5
LDYgQEAgdm9pZCBXZWJQYWdlOjpzdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnMo
KQogdm9pZCBXZWJQYWdlOjpyZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpCiB7
CiAgICAgbV9wYWdlLT5yZXN1bWVBY3RpdmVET01PYmplY3RzQW5kQW5pbWF0aW9ucygpOwotCi0g
ICAgLy8gV2UgbmVlZCB0byByZXBhaW50IG9uIHJlc3VtZSB0byBraWNrc3RhcnQgYW5pbWF0ZWQg
cGFpbnRpbmcgYWdhaW4uCi0gICAgbV9kcmF3aW5nQXJlYS0+c2V0TmVlZHNEaXNwbGF5KCk7CiB9
CiAKIEludFBvaW50IFdlYlBhZ2U6OnNjcmVlblRvV2luZG93KGNvbnN0IEludFBvaW50JiBwb2lu
dCkK
</data>
<flag name="review"
          id="219588"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>