<?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>131521</bug_id>
          
          <creation_ts>2014-04-10 18:02:16 -0700</creation_ts>
          <short_desc>Pipe initial scale factor to TileController</short_desc>
          <delta_ts>2014-04-11 11:59:07 -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>Layout and Rendering</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>999729</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-10 18:02:16 -0700</bug_when>
    <thetext>We need it to support caching multiple scales.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999736</commentid>
    <comment_count>1</comment_count>
      <attachid>229097</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-10 18:10:47 -0700</bug_when>
    <thetext>Created attachment 229097
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999739</commentid>
    <comment_count>2</comment_count>
      <attachid>229097</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-04-10 18:21:08 -0700</bug_when>
    <thetext>Comment on attachment 229097
patch

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

&gt; Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:2989
&gt; +    if (tiledBacking()) {
&gt; +        float initialScale = (m_client ? m_client-&gt;initialPageScaleFactor() : 1) * deviceScaleFactor();
&gt; +        tiledBacking()-&gt;setInitialContentsScale(initialScale);
&gt; +    }

This seems like an odd way to get initial scale, and could easily have timing issues. I think we should explicitly get the initial scale from viewport-related information.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999742</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-10 18:31:29 -0700</bug_when>
    <thetext>&gt; This seems like an odd way to get initial scale, and could easily have timing issues. I think we should explicitly get the initial scale from viewport-related information.

It is done the same way as the content scale is passed and is fully analogous. Are you a suggesting we refactor that too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999747</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-10 19:11:14 -0700</bug_when>
    <thetext>What do you mean by timing issues? This is specifically done on layer commit to avoid timing issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999950</commentid>
    <comment_count>5</comment_count>
      <attachid>229143</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-11 11:34:59 -0700</bug_when>
    <thetext>Created attachment 229143
renamed to zoomedOutScale</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999954</commentid>
    <comment_count>6</comment_count>
      <attachid>229143</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-11 11:42:45 -0700</bug_when>
    <thetext>Comment on attachment 229143
renamed to zoomedOutScale

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

&gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:89
&gt; +    virtual float zoomedOutPageScaleFactor() const { return 0; }

Would getting a zero cause trouble anywhere? (divide-by-zero, etc.)

&gt; Source/WebCore/platform/graphics/TiledBacking.h:92
&gt; +    virtual void setZoomedOutContentsScale(float) = 0;
&gt; +    virtual float zoomedOutContentsScale() const = 0;

Every &apos;push&apos; property we&apos;ve had on TileController has caused trouble (and we have since made many &apos;pull&apos; via PlatformCALayerClient), but I think this one is OK because it&apos;s called from updateContentsScale. That said, I would not be opposed to inverting it.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:75
&gt; +typedef int AVPlayerViewControllerExitFullScreenReason;

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999957</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-11 11:46:32 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 229143 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=229143&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsLayerClient.h:89
&gt; &gt; +    virtual float zoomedOutPageScaleFactor() const { return 0; }
&gt; 
&gt; Would getting a zero cause trouble anywhere? (divide-by-zero, etc.)

The plan is to use it to mean &quot;disabled&quot;. Might change it later.

&gt; Every &apos;push&apos; property we&apos;ve had on TileController has caused trouble (and we have since made many &apos;pull&apos; via PlatformCALayerClient), but I think this one is OK because it&apos;s called from updateContentsScale. That said, I would not be opposed to inverting it.

Yeah, push is right thing to do for things that go via layer commits

&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:75
&gt; &gt; +typedef int AVPlayerViewControllerExitFullScreenReason;
&gt; 
&gt; ?

Oops, build fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999966</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-04-11 11:59:07 -0700</bug_when>
    <thetext>https://trac.webkit.org/r167138</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229097</attachid>
            <date>2014-04-10 18:10:47 -0700</date>
            <delta_ts>2014-04-11 11:34:59 -0700</delta_ts>
            <desc>patch</desc>
            <filename>initial-scale.patch</filename>
            <type>text/plain</type>
            <size>12361</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzEwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA0LTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQaXBlIGluaXRpYWwgc2NhbGUg
ZmFjdG9yIHRvIFRpbGVDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzE1MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNsaWVudDo6aW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1RpbGVDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xs
ZXI6OlRpbGVDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVyOjpz
ZXRJbml0aWFsQ29udGVudHNTY2FsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmluaXRp
YWxQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6aW5pdGlhbFBhZ2VTY2FsZUZh
Y3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAy
MDE0LTA0LTEwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY3MDczLgpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHJldmlzaW9uIDE2NzAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDY5LDYgKzEwNjksNyBAQCBfX1pON1dlYkNvcmU0UGFnZTIz
aW52YWxpZGF0ZVN0eWxlc0ZvckxpCiBfX1pON1dlYkNvcmU0UGFnZTI0ZmluZFN0cmluZ01hdGNo
aW5nUmFuZ2VzRVJLTjNXVEY2U3RyaW5nRWhpUE5TMV82VmVjdG9ySU5TMV82UmVmUHRySU5TXzVS
YW5nZUVFRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUVSaQogX19aTjdXZWJDb3JlNFBhZ2Uy
NHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9uc0V2CiBfX1pON1dlYkNvcmU0UGFnZTI0c2Nyb2xsaW5n
U3RhdGVUcmVlQXNUZXh0RXYKK19fWk43V2ViQ29yZTRQYWdlMjVzZXRJbml0aWFsUGFnZVNjYWxl
RmFjdG9yRWYKIF9fWk43V2ViQ29yZTRQYWdlMjVzdXNwZW5kU2NyaXB0ZWRBbmltYXRpb25zRXYK
IF9fWk43V2ViQ29yZTRQYWdlMjdlbmFibGVMZWdhY3lQcml2YXRlQnJvd3NpbmdFYgogX19aTjdX
ZWJDb3JlNFBhZ2UyN2ludmFsaWRhdGVTdHlsZXNGb3JBbGxMaW5rc0V2CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAJKHJldmlzaW9uIDE2NzAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw2ICsxNTgsNyBAQCBQYWdlOjpQYWdlKFBhZ2VDbGll
bnRzJiBwYWdlQ2xpZW50cykKICAgICAsIG1fYXJlTWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJs
ZWQodHJ1ZSkKICAgICAsIG1fbWVkaWFWb2x1bWUoMSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9y
KDEpCisgICAgLCBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fZGV2aWNlU2Nh
bGVGYWN0b3IoMSkKICAgICAsIG1fdG9wQ29udGVudEluc2V0KDApCiAgICAgLCBtX3N1cHByZXNz
U2Nyb2xsYmFyQW5pbWF0aW9ucyhmYWxzZSkKQEAgLTY5MCw2ICs2OTEsMTUgQEAgdm9pZCBQYWdl
OjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgfQogfQogCit2b2lkIFBhZ2U6OnNl
dEluaXRpYWxQYWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpCit7CisgICAgaWYgKG1faW5pdGlh
bFBhZ2VTY2FsZUZhY3RvciA9PSBzY2FsZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1faW5pdGlh
bFBhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOworCisgICAgbWFpbkZyYW1lKCkuZGV2aWNlT3JQYWdl
U2NhbGVGYWN0b3JDaGFuZ2VkKCk7Cit9CisKIHZvaWQgUGFnZTo6c2V0UGFnZVNjYWxlRmFjdG9y
KGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogewogICAgIERvY3VtZW50KiBk
b2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkocmV2
aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI3NSw2ICsyNzUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0
b3IoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pOwogICAgIGZsb2F0IHBhZ2VT
Y2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlRmFjdG9yOyB9CiAKKyAgICB2
b2lkIHNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3IoZmxvYXQpOworICAgIGZsb2F0IGluaXRpYWxQ
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2luaXRpYWxQYWdlU2NhbGVGYWN0b3I7
IH0KKwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kZXZp
Y2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwog
CkBAIC00OTAsNiArNDkzLDcgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX21lZGlhVm9sdW1lOwog
CiAgICAgZmxvYXQgbV9wYWdlU2NhbGVGYWN0b3I7CisgICAgZmxvYXQgbV9pbml0aWFsUGFnZVNj
YWxlRmFjdG9yOwogICAgIGZsb2F0IG1fZGV2aWNlU2NhbGVGYWN0b3I7CiAKICAgICBmbG9hdCBt
X3RvcENvbnRlbnRJbnNldDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgJKHJldmlzaW9uIDE2NzAzNCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIDE7IH0KICAgICAvLyBQYWdlIHNj
YWxlIGZhY3Rvci4KICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsg
cmV0dXJuIDE7IH0KKyAgICB2aXJ0dWFsIGZsb2F0IGluaXRpYWxQYWdlU2NhbGVGYWN0b3IoKSBj
b25zdCB7IHJldHVybiAxOyB9CiAKICAgICB2aXJ0dWFsIGZsb2F0IGNvbnRlbnRzU2NhbGVNdWx0
aXBsaWVyRm9yTmV3VGlsZXMoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IHsgcmV0dXJuIDE7
IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRzT3BhcXVlbHlBdE5vbkludGVncmFsU2NhbGVzKGNv
bnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmgJKHJldmlzaW9u
IDE2NzAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2lu
Zy5oCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGludCBsZWZ0TWFyZ2luV2lkdGgoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgcmlnaHRN
YXJnaW5XaWR0aCgpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRJbml0aWFsQ29u
dGVudHNTY2FsZShmbG9hdCkgPSAwOworICAgIHZpcnR1YWwgZmxvYXQgaW5pdGlhbENvbnRlbnRz
U2NhbGUoKSBjb25zdCA9IDA7CisKICAgICAvLyBJbmNsdWRlcyBtYXJnaW5zLgogICAgIHZpcnR1
YWwgSW50UmVjdCBib3VuZHMoKSBjb25zdCA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAkocmV2
aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3Jh
cGhpY3NMYXllckNBLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk4Miw2ICsyOTgyLDEyIEBAIEdy
YXBoaWNzTGF5ZXJDQTo6TGF5ZXJNYXAqIEdyYXBoaWNzTGF5ZXIKIHZvaWQgR3JhcGhpY3NMYXll
ckNBOjp1cGRhdGVDb250ZW50c1NjYWxlKGZsb2F0IHBhZ2VTY2FsZUZhY3RvcikKIHsKICAgICBm
bG9hdCBjb250ZW50c1NjYWxlID0gY2xhbXBlZENvbnRlbnRzU2NhbGVGb3JTY2FsZShtX3Jvb3RS
ZWxhdGl2ZVNjYWxlRmFjdG9yICogcGFnZVNjYWxlRmFjdG9yICogZGV2aWNlU2NhbGVGYWN0b3Io
KSk7CisKKyAgICBpZiAodGlsZWRCYWNraW5nKCkpIHsKKyAgICAgICAgZmxvYXQgaW5pdGlhbFNj
YWxlID0gKG1fY2xpZW50ID8gbV9jbGllbnQtPmluaXRpYWxQYWdlU2NhbGVGYWN0b3IoKSA6IDEp
ICogZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgdGlsZWRCYWNraW5nKCktPnNldEluaXRp
YWxDb250ZW50c1NjYWxlKGluaXRpYWxTY2FsZSk7CisgICAgfQorCiAgICAgaWYgKGNvbnRlbnRz
U2NhbGUgPT0gbV9sYXllci0+Y29udGVudHNTY2FsZSgpKQogICAgICAgICByZXR1cm47CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oCShyZXZpc2lvbiAxNjcwMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiAr
MzAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb24uaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUNBTGF5ZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUNBTGF5ZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJUaWxlQ29udHJvbGxlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNv
bnRyb2xsZXIuaAkocmV2aXNpb24gMTY3MDQxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Nyw2
ICsxNDcsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGxhdGZvcm1DQUxheWVyKiB0aWxlZFNj
cm9sbGluZ0luZGljYXRvckxheWVyKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNj
cm9sbGluZ01vZGVJbmRpY2F0aW9uKFNjcm9sbGluZ01vZGVJbmRpY2F0aW9uKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGlsZU1hcmdpbnMoaW50IG1hcmdpblRvcCwgaW50IG1hcmdp
bkJvdHRvbSwgaW50IG1hcmdpbkxlZnQsIGludCBtYXJnaW5SaWdodCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldEluaXRpYWxDb250ZW50c1NjYWxlKGZsb2F0KSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIGZsb2F0IGluaXRpYWxDb250ZW50c1NjYWxlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9pbml0aWFsQ29udGVudHNTY2FsZTsgfQogCiAgICAgdm9pZCBzY2hlZHVsZVRpbGVS
ZXZhbGlkYXRpb24oZG91YmxlIGludGVydmFsKTsKICAgICB2b2lkIHRpbGVSZXZhbGlkYXRpb25U
aW1lckZpcmVkKFRpbWVyPFRpbGVDb250cm9sbGVyPiopOwpAQCAtMTY5LDYgKzE3MSw3IEBAIHBy
aXZhdGU6CiAgICAgVGltZXI8VGlsZUNvbnRyb2xsZXI+IG1fdGlsZVJldmFsaWRhdGlvblRpbWVy
OwogCiAgICAgZmxvYXQgbV9jb250ZW50c1NjYWxlOworICAgIGZsb2F0IG1faW5pdGlhbENvbnRl
bnRzU2NhbGU7CiAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIAogICAgIFRpbGVDb3Zl
cmFnZSBtX3RpbGVDb3ZlcmFnZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9UaWxlQ29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE2
NzA1NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29u
dHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOCBAQAogI2ltcG9ydCAiVGls
ZUNvbnRyb2xsZXJNZW1vcnlIYW5kbGVySU9TLmgiCiAjZW5kaWYKIAorI2luY2x1ZGUgPHN5c2xv
Zy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gVGlsZVZhbGlkYXRpb25Qb2xpY3lG
bGFnIHsKQEAgLTYwLDYgKzYyLDcgQEAgVGlsZUNvbnRyb2xsZXI6OlRpbGVDb250cm9sbGVyKFBs
YXRmb3JtQwogICAgICwgbV90aWxlU2l6ZShkZWZhdWx0VGlsZVdpZHRoLCBkZWZhdWx0VGlsZUhl
aWdodCkKICAgICAsIG1fdGlsZVJldmFsaWRhdGlvblRpbWVyKHRoaXMsICZUaWxlQ29udHJvbGxl
cjo6dGlsZVJldmFsaWRhdGlvblRpbWVyRmlyZWQpCiAgICAgLCBtX2NvbnRlbnRzU2NhbGUoMSkK
KyAgICAsIG1faW5pdGlhbENvbnRlbnRzU2NhbGUoMSkKICAgICAsIG1fZGV2aWNlU2NhbGVGYWN0
b3IoMSkKICAgICAsIG1fdGlsZUNvdmVyYWdlKENvdmVyYWdlRm9yVmlzaWJsZUFyZWEpCiAgICAg
LCBtX21hcmdpblRvcCgwKQpAQCAtMTIzLDYgKzEyNiwxMyBAQCB2b2lkIFRpbGVDb250cm9sbGVy
OjpzZXRDb250ZW50c1NjYWxlKGZsCiAgICAgdGlsZUdyaWQoKS5zZXRTY2FsZShzY2FsZSk7CiB9
CiAKK3ZvaWQgVGlsZUNvbnRyb2xsZXI6OnNldEluaXRpYWxDb250ZW50c1NjYWxlKGZsb2F0IHNj
YWxlKQoreworICAgIGlmIChtX2luaXRpYWxDb250ZW50c1NjYWxlID09IHNjYWxlKQorICAgICAg
ICByZXR1cm47CisgICAgbV9pbml0aWFsQ29udGVudHNTY2FsZSA9IHNjYWxlOworfQorCiB2b2lk
IFRpbGVDb250cm9sbGVyOjpzZXRBY2NlbGVyYXRlc0RyYXdpbmcoYm9vbCBhY2NlbGVyYXRlc0Ry
YXdpbmcpCiB7CiAgICAgaWYgKG1fYWNjZWxlcmF0ZXNEcmF3aW5nID09IGFjY2VsZXJhdGVzRHJh
d2luZykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwCShyZXZpc2lvbiAxNjcwMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjI0Miw2ICsyMjQyLDEx
IEBAIGZsb2F0IFJlbmRlckxheWVyQmFja2luZzo6cGFnZVNjYWxlRmFjdG8KICAgICByZXR1cm4g
Y29tcG9zaXRvcigpLnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCitmbG9hdCBSZW5kZXJMYXllckJh
Y2tpbmc6OmluaXRpYWxQYWdlU2NhbGVGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBjb21w
b3NpdG9yKCkuaW5pdGlhbFBhZ2VTY2FsZUZhY3RvcigpOworfQorCiBmbG9hdCBSZW5kZXJMYXll
ckJhY2tpbmc6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gY29tcG9z
aXRvcigpLmRldmljZVNjYWxlRmFjdG9yKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCShyZXZpc2lvbiAxNjcwMzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgJKHdvcmtpbmcgY29weSkKQEAg
LTE4MCw2ICsxODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHBhaW50c09wYXF1ZWx5
QXROb25JbnRlZ3JhbFNjYWxlcyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3Qgb3ZlcnJpZGU7
CiAKICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgZmxvYXQgaW5pdGlhbFBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFuZ2VzRm9yTGF5ZXIoY29uc3QgR3JhcGhp
Y3NMYXllciopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBnZXRDdXJyZW50VHJh
bnNmb3JtKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIGNvbnN0
IG92ZXJyaWRlOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAkocmV2aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3MDIsNiArMjcwMiwxMiBAQCBmbG9hdCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhZ2VTY2Fs
ZUZhCiAgICAgcmV0dXJuIHBhZ2UgPyBwYWdlLT5wYWdlU2NhbGVGYWN0b3IoKSA6IDE7CiB9CiAK
K2Zsb2F0IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6aW5pdGlhbFBhZ2VTY2FsZUZhY3RvcigpIGNv
bnN0Cit7CisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSA/
IHBhZ2UtPmluaXRpYWxQYWdlU2NhbGVGYWN0b3IoKSA6IDE7Cit9CisKIGZsb2F0IFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6Y29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBH
cmFwaGljc0xheWVyKikgY29uc3QKIHsKICNpZiBQTEFURk9STShJT1MpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCShyZXZpc2lv
biAxNjcwMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3Np
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0Miw2ICsyNDIsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgZmxvYXQgY29udGVudHNTY2FsZU11bHRpcGxpZXJGb3JOZXdUaWxlcyhjb25zdCBHcmFwaGlj
c0xheWVyKikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCBwYWdlU2NhbGVGYWN0
b3IoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGZsb2F0IGluaXRpYWxQYWdlU2NhbGVG
YWN0b3IoKSBjb25zdCBvdmVycmlkZTsKKwogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRDaGFu
Z2VzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0IG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlSZWZyZXNoKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqKSBvdmVycmlkZTsKIApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkocmV2aXNpb24gMTY3MDM0KQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0xNzEwLDExICsxNzEwLDE0IEBAIHZvaWQgV2ViUGFnZTo6dmlld3BvcnRDb25m
aWd1cmF0aW9uQ2hhbmcKIHsKICAgICBzZXRGaXhlZExheW91dFNpemUobV92aWV3cG9ydENvbmZp
Z3VyYXRpb24ubGF5b3V0U2l6ZSgpKTsKIAorICAgIGRvdWJsZSBpbml0aWFsU2NhbGUgPSBtX3Zp
ZXdwb3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUoKTsKICAgICBkb3VibGUgc2NhbGU7CiAg
ICAgaWYgKG1fdXNlckhhc0NoYW5nZWRQYWdlU2NhbGVGYWN0b3IpCiAgICAgICAgIHNjYWxlID0g
c3RkOjptYXgoc3RkOjptaW4ocGFnZVNjYWxlRmFjdG9yKCksIG1fdmlld3BvcnRDb25maWd1cmF0
aW9uLm1heGltdW1TY2FsZSgpKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxl
KCkpOwogICAgIGVsc2UKLSAgICAgICAgc2NhbGUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5p
bml0aWFsU2NhbGUoKTsKKyAgICAgICAgc2NhbGUgPSBpbml0aWFsU2NhbGU7CisKKyAgICBtX3Bh
Z2UtPnNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3IoaW5pdGlhbFNjYWxlKTsKIAogICAgIEZyYW1l
VmlldyYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwogICAgIEludFBv
aW50IHNjcm9sbFBvc2l0aW9uID0gZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9uKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229143</attachid>
            <date>2014-04-11 11:34:59 -0700</date>
            <delta_ts>2014-04-11 11:42:45 -0700</delta_ts>
            <desc>renamed to zoomedOutScale</desc>
            <filename>initial-scale-2.patch</filename>
            <type>text/plain</type>
            <size>13501</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NzEwMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBACisyMDE0LTA0LTEwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBQaXBlIGluaXRpYWwgc2NhbGUg
ZmFjdG9yIHRvIFRpbGVDb250cm9sbGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMzE1MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBhZ2UvUGFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpQYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnNldEluaXRpYWxQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcik6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNsaWVudDo6aW5pdGlhbFBhZ2VTY2FsZUZhY3Rvcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nLmg6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNTY2FsZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvbWFjL1RpbGVDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNvbnRyb2xs
ZXI6OlRpbGVDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVDb250cm9sbGVyOjpz
ZXRJbml0aWFsQ29udGVudHNTY2FsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OmluaXRp
YWxQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6aW5pdGlhbFBhZ2VTY2FsZUZh
Y3Rvcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAy
MDE0LTA0LTEwICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTY3MDczLgpJbmRleDogU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4JKHJldmlzaW9uIDE2NzAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDcyLDYgKzEwNzIsNyBAQCBfX1pON1dlYkNvcmU0UGFnZTI0
c2Nyb2xsaW5nU3RhdGVUcmVlQXNUCiBfX1pON1dlYkNvcmU0UGFnZTI1c3VzcGVuZFNjcmlwdGVk
QW5pbWF0aW9uc0V2CiBfX1pON1dlYkNvcmU0UGFnZTI3ZW5hYmxlTGVnYWN5UHJpdmF0ZUJyb3dz
aW5nRWIKIF9fWk43V2ViQ29yZTRQYWdlMjdpbnZhbGlkYXRlU3R5bGVzRm9yQWxsTGlua3NFdgor
X19aTjdXZWJDb3JlNFBhZ2UyN3NldFpvb21lZE91dFBhZ2VTY2FsZUZhY3RvckVmCiBfX1pON1dl
YkNvcmU0UGFnZTMyc2V0TWVtb3J5Q2FjaGVDbGllbnRDYWxsc0VuYWJsZWRFYgogX19aTjdXZWJD
b3JlNFBhZ2UzM3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uc0FzVGV4dEV2CiBfX1pON1dlYkNv
cmU0UGFnZTM1cmVzdW1lQWN0aXZlRE9NT2JqZWN0c0FuZEFuaW1hdGlvbnNFdgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxNjcwMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiArMTU4LDcgQEAgUGFnZTo6UGFnZShQYWdl
Q2xpZW50cyYgcGFnZUNsaWVudHMpCiAgICAgLCBtX2FyZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNF
bmFibGVkKHRydWUpCiAgICAgLCBtX21lZGlhVm9sdW1lKDEpCiAgICAgLCBtX3BhZ2VTY2FsZUZh
Y3RvcigxKQorICAgICwgbV96b29tZWRPdXRQYWdlU2NhbGVGYWN0b3IoMCkKICAgICAsIG1fZGV2
aWNlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fdG9wQ29udGVudEluc2V0KDApCiAgICAgLCBtX3N1
cHByZXNzU2Nyb2xsYmFyQW5pbWF0aW9ucyhmYWxzZSkKQEAgLTY5MCw2ICs2OTEsMTUgQEAgdm9p
ZCBQYWdlOjpzZXRNZWRpYVZvbHVtZShmbG9hdCB2b2x1bWUpCiAgICAgfQogfQogCit2b2lkIFBh
Z2U6OnNldFpvb21lZE91dFBhZ2VTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSkKK3sKKyAgICBpZiAo
bV96b29tZWRPdXRQYWdlU2NhbGVGYWN0b3IgPT0gc2NhbGUpCisgICAgICAgIHJldHVybjsKKyAg
ICBtX3pvb21lZE91dFBhZ2VTY2FsZUZhY3RvciA9IHNjYWxlOworCisgICAgbWFpbkZyYW1lKCku
ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCk7Cit9CisKIHZvaWQgUGFnZTo6c2V0UGFn
ZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlLCBjb25zdCBJbnRQb2ludCYgb3JpZ2luKQogewogICAg
IERvY3VtZW50KiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50KCk7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuaAkocmV2aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI3NSw2ICsyNzUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQ
YWdlU2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBvcmlnaW4pOwogICAg
IGZsb2F0IHBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZVNjYWxlRmFjdG9y
OyB9CiAKKyAgICB2b2lkIHNldFpvb21lZE91dFBhZ2VTY2FsZUZhY3RvcihmbG9hdCk7CisgICAg
ZmxvYXQgem9vbWVkT3V0UGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV96b29tZWRP
dXRQYWdlU2NhbGVGYWN0b3I7IH0KKwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gbV9kZXZpY2VTY2FsZUZhY3RvcjsgfQogICAgIHZvaWQgc2V0RGV2aWNlU2Nh
bGVGYWN0b3IoZmxvYXQpOwogCkBAIC00OTAsNiArNDkzLDcgQEAgcHJpdmF0ZToKICAgICBmbG9h
dCBtX21lZGlhVm9sdW1lOwogCiAgICAgZmxvYXQgbV9wYWdlU2NhbGVGYWN0b3I7CisgICAgZmxv
YXQgbV96b29tZWRPdXRQYWdlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZh
Y3RvcjsKIAogICAgIGZsb2F0IG1fdG9wQ29udGVudEluc2V0OwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQuaAko
cmV2aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NMYXllckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Niw2ICs4Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4g
MTsgfQogICAgIC8vIFBhZ2Ugc2NhbGUgZmFjdG9yLgogICAgIHZpcnR1YWwgZmxvYXQgcGFnZVNj
YWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMTsgfQorICAgIHZpcnR1YWwgZmxvYXQgem9vbWVk
T3V0UGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCiAgICAgdmlydHVhbCBm
bG9hdCBjb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBjb25zdCB7IHJldHVybiAxOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50c09wYXF1ZWx5
QXROb25JbnRlZ3JhbFNjYWxlcyhjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFj
a2luZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1Rp
bGVkQmFja2luZy5oCShyZXZpc2lvbiAxNjcwMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9UaWxlZEJhY2tpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtODgsNiArODgsOSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBpbnQgbGVmdE1hcmdpbldpZHRoKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgaW50IHJpZ2h0TWFyZ2luV2lkdGgoKSBjb25zdCA9IDA7CiAKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0Wm9vbWVkT3V0Q29udGVudHNTY2FsZShmbG9hdCkgPSAwOworICAgIHZpcnR1
YWwgZmxvYXQgem9vbWVkT3V0Q29udGVudHNTY2FsZSgpIGNvbnN0ID0gMDsKKwogICAgIC8vIElu
Y2x1ZGVzIG1hcmdpbnMuCiAgICAgdmlydHVhbCBJbnRSZWN0IGJvdW5kcygpIGNvbnN0ID0gMDsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXll
ckNBLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCShyZXZpc2lvbiAxNjcwMzQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTgyLDYgKzI5ODIsMTIgQEAgR3JhcGhpY3NMYXllckNBOjpMYXllck1hcCogR3JhcGhp
Y3NMYXllcgogdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzU2NhbGUoZmxvYXQg
cGFnZVNjYWxlRmFjdG9yKQogewogICAgIGZsb2F0IGNvbnRlbnRzU2NhbGUgPSBjbGFtcGVkQ29u
dGVudHNTY2FsZUZvclNjYWxlKG1fcm9vdFJlbGF0aXZlU2NhbGVGYWN0b3IgKiBwYWdlU2NhbGVG
YWN0b3IgKiBkZXZpY2VTY2FsZUZhY3RvcigpKTsKKworICAgIGlmIChtX2lzUGFnZVRpbGVkQmFj
a2luZ0xheWVyICYmIHRpbGVkQmFja2luZygpKSB7CisgICAgICAgIGZsb2F0IHpvb21lZE91dFNj
YWxlID0gbV9jbGllbnQtPnpvb21lZE91dFBhZ2VTY2FsZUZhY3RvcigpICogZGV2aWNlU2NhbGVG
YWN0b3IoKTsKKyAgICAgICAgdGlsZWRCYWNraW5nKCktPnNldFpvb21lZE91dENvbnRlbnRzU2Nh
bGUoem9vbWVkT3V0U2NhbGUpOworICAgIH0KKwogICAgIGlmIChjb250ZW50c1NjYWxlID09IG1f
bGF5ZXItPmNvbnRlbnRzU2NhbGUoKSkKICAgICAgICAgcmV0dXJuOwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aAkocmV2aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2EvR3JhcGhpY3NMYXllckNBLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybUNBQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVy
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUxheWVyQ2xpZW50LmgiCisjaW5jbHVkZSAiVGlsZUNv
bnRyb2xsZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpJbmRleDogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDb250cm9sbGVyLmgJ
KHJldmlzaW9uIDE2NzA0MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
L21hYy9UaWxlQ29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDcsNiArMTQ3LDggQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFBsYXRmb3JtQ0FMYXllciogdGlsZWRTY3JvbGxpbmdJbmRp
Y2F0b3JMYXllcigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxpbmdNb2Rl
SW5kaWNhdGlvbihTY3JvbGxpbmdNb2RlSW5kaWNhdGlvbikgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIHNldFRpbGVNYXJnaW5zKGludCBtYXJnaW5Ub3AsIGludCBtYXJnaW5Cb3R0b20sIGlu
dCBtYXJnaW5MZWZ0LCBpbnQgbWFyZ2luUmlnaHQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRab29tZWRPdXRDb250ZW50c1NjYWxlKGZsb2F0KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IGZsb2F0IHpvb21lZE91dENvbnRlbnRzU2NhbGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X3pvb21lZE91dENvbnRlbnRzU2NhbGU7IH0KIAogICAgIHZvaWQgc2NoZWR1bGVUaWxlUmV2YWxp
ZGF0aW9uKGRvdWJsZSBpbnRlcnZhbCk7CiAgICAgdm9pZCB0aWxlUmV2YWxpZGF0aW9uVGltZXJG
aXJlZChUaW1lcjxUaWxlQ29udHJvbGxlcj4qKTsKQEAgLTE2OSw2ICsxNzEsNyBAQCBwcml2YXRl
OgogICAgIFRpbWVyPFRpbGVDb250cm9sbGVyPiBtX3RpbGVSZXZhbGlkYXRpb25UaW1lcjsKIAog
ICAgIGZsb2F0IG1fY29udGVudHNTY2FsZTsKKyAgICBmbG9hdCBtX3pvb21lZE91dENvbnRlbnRz
U2NhbGU7CiAgICAgZmxvYXQgbV9kZXZpY2VTY2FsZUZhY3RvcjsKIAogICAgIFRpbGVDb3ZlcmFn
ZSBtX3RpbGVDb3ZlcmFnZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9UaWxlQ29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNvbnRyb2xsZXIubW0JKHJldmlzaW9uIDE2NzA1
NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ29udHJv
bGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCBUaWxlQ29udHJvbGxlcjo6
VGlsZUNvbnRyb2xsZXIoUGxhdGZvcm1DCiAgICAgLCBtX3RpbGVTaXplKGRlZmF1bHRUaWxlV2lk
dGgsIGRlZmF1bHRUaWxlSGVpZ2h0KQogICAgICwgbV90aWxlUmV2YWxpZGF0aW9uVGltZXIodGhp
cywgJlRpbGVDb250cm9sbGVyOjp0aWxlUmV2YWxpZGF0aW9uVGltZXJGaXJlZCkKICAgICAsIG1f
Y29udGVudHNTY2FsZSgxKQorICAgICwgbV96b29tZWRPdXRDb250ZW50c1NjYWxlKDApCiAgICAg
LCBtX2RldmljZVNjYWxlRmFjdG9yKDEpCiAgICAgLCBtX3RpbGVDb3ZlcmFnZShDb3ZlcmFnZUZv
clZpc2libGVBcmVhKQogICAgICwgbV9tYXJnaW5Ub3AoMCkKQEAgLTEwNCwxMCArMTA1LDEwIEBA
IHZvaWQgVGlsZUNvbnRyb2xsZXI6OnNldE5lZWRzRGlzcGxheUluUmUKIAogdm9pZCBUaWxlQ29u
dHJvbGxlcjo6c2V0Q29udGVudHNTY2FsZShmbG9hdCBzY2FsZSkKIHsKLSAgICBtX2NvbnRlbnRz
U2NhbGUgPSBzY2FsZTsKLSAgICAKICAgICBBU1NFUlQob3duaW5nR3JhcGhpY3NMYXllcigpLT5p
c0NvbW1pdHRpbmdDaGFuZ2VzKCkpOwogCisgICAgbV9jb250ZW50c1NjYWxlID0gc2NhbGU7CisK
ICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9IG93bmluZ0dyYXBoaWNzTGF5ZXIoKS0+cGxh
dGZvcm1DQUxheWVyRGV2aWNlU2NhbGVGYWN0b3IoKTsKIAogICAgIC8vIFRoZSBzY2FsZSB3ZSBn
ZXQgaXMgdGhlIHByb2R1Y3Qgb2YgdGhlIHBhZ2Ugc2NhbGUgZmFjdG9yIGFuZCBkZXZpY2Ugc2Nh
bGUgZmFjdG9yLgpAQCAtMTIzLDYgKzEyNCwxNSBAQCB2b2lkIFRpbGVDb250cm9sbGVyOjpzZXRD
b250ZW50c1NjYWxlKGZsCiAgICAgdGlsZUdyaWQoKS5zZXRTY2FsZShzY2FsZSk7CiB9CiAKK3Zv
aWQgVGlsZUNvbnRyb2xsZXI6OnNldFpvb21lZE91dENvbnRlbnRzU2NhbGUoZmxvYXQgc2NhbGUp
Cit7CisgICAgQVNTRVJUKG93bmluZ0dyYXBoaWNzTGF5ZXIoKS0+aXNDb21taXR0aW5nQ2hhbmdl
cygpKTsKKworICAgIGlmIChtX3pvb21lZE91dENvbnRlbnRzU2NhbGUgPT0gc2NhbGUpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3pvb21lZE91dENvbnRlbnRzU2NhbGUgPSBzY2FsZTsKK30KKwog
dm9pZCBUaWxlQ29udHJvbGxlcjo6c2V0QWNjZWxlcmF0ZXNEcmF3aW5nKGJvb2wgYWNjZWxlcmF0
ZXNEcmF3aW5nKQogewogICAgIGlmIChtX2FjY2VsZXJhdGVzRHJhd2luZyA9PSBhY2NlbGVyYXRl
c0RyYXdpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCShyZXZpc2lvbiAx
NjcwMzQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQubW0JKHdvcmtpbmcgY29weSkKQEAgLTcyLDYgKzcyLDggQEAgU09GVF9M
SU5LKENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VHZXRFbmQsIAogU09GVF9MSU5LKENvcmVNZWRpYSwg
Q01UaW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFydCwgQ01UaW1lIGR1cmF0
aW9uKSwgKHN0YXJ0LCBkdXJhdGlvbikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVTdWJ0
cmFjdCwgQ01UaW1lLCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5kKSwgKG1pbnVl
bmQsIHN1YnRyYWhlbmQpKQogCit0eXBlZGVmIGludCBBVlBsYXllclZpZXdDb250cm9sbGVyRXhp
dEZ1bGxTY3JlZW5SZWFzb247CisKIEBpbnRlcmZhY2UgV2ViQVZQbGF5ZXJDb250cm9sbGVyIDog
TlNPYmplY3QgPEFWUGxheWVyVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KIAogQHByb3BlcnR5KHJl
dGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2
aXNpb24gMTY3MDM0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyNDIsNiArMjI0MiwxMSBAQCBmbG9hdCBSZW5k
ZXJMYXllckJhY2tpbmc6OnBhZ2VTY2FsZUZhY3RvCiAgICAgcmV0dXJuIGNvbXBvc2l0b3IoKS5w
YWdlU2NhbGVGYWN0b3IoKTsKIH0KIAorZmxvYXQgUmVuZGVyTGF5ZXJCYWNraW5nOjp6b29tZWRP
dXRQYWdlU2NhbGVGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBjb21wb3NpdG9yKCkuem9v
bWVkT3V0UGFnZVNjYWxlRmFjdG9yKCk7Cit9CisKIGZsb2F0IFJlbmRlckxheWVyQmFja2luZzo6
ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAogewogICAgIHJldHVybiBjb21wb3NpdG9yKCkuZGV2
aWNlU2NhbGVGYWN0b3IoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgJKHJldmlzaW9uIDE2NzAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtMTgwLDYgKzE4
MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRzT3BhcXVlbHlBdE5vbkludGVn
cmFsU2NhbGVzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCBmbG9hdCB6b29tZWRPdXRQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdlc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIq
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0Q3VycmVudFRyYW5zZm9ybShj
b25zdCBHcmFwaGljc0xheWVyKiwgVHJhbnNmb3JtYXRpb25NYXRyaXgmKSBjb25zdCBvdmVycmlk
ZTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAJKHJldmlzaW9uIDE2NzAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAyLDYg
KzI3MDIsMTIgQEAgZmxvYXQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpwYWdlU2NhbGVGYQogICAg
IHJldHVybiBwYWdlID8gcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkgOiAxOwogfQogCitmbG9hdCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6Onpvb21lZE91dFBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Cit7
CisgICAgUGFnZSogcGFnZSA9IHRoaXMtPnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSA/IHBhZ2Ut
Pnpvb21lZE91dFBhZ2VTY2FsZUZhY3RvcigpIDogMDsKK30KKwogZmxvYXQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpjb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBjb25zdAogewogI2lmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgJKHJldmlzaW9uIDE2
NzAzNCkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
aAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDYgKzI0Miw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBm
bG9hdCBjb250ZW50c1NjYWxlTXVsdGlwbGllckZvck5ld1RpbGVzKGNvbnN0IEdyYXBoaWNzTGF5
ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZsb2F0IHBhZ2VTY2FsZUZhY3Rvcigp
IGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgZmxvYXQgem9vbWVkT3V0UGFnZVNjYWxlRmFj
dG9yKCkgY29uc3Qgb3ZlcnJpZGU7CisKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0Q2hhbmdl
c0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5Rmx1c2hCZWZvcmVEaXNwbGF5UmVmcmVzaChjb25zdCBHcmFwaGljc0xh
eWVyKikgb3ZlcnJpZGU7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0JKHJldmlzaW9uIDE2NzAzNCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTcxMCwxMSArMTcxMCwxNCBAQCB2b2lkIFdlYlBhZ2U6OnZpZXdwb3J0Q29uZmln
dXJhdGlvbkNoYW5nCiB7CiAgICAgc2V0Rml4ZWRMYXlvdXRTaXplKG1fdmlld3BvcnRDb25maWd1
cmF0aW9uLmxheW91dFNpemUoKSk7CiAKKyAgICBkb3VibGUgaW5pdGlhbFNjYWxlID0gbV92aWV3
cG9ydENvbmZpZ3VyYXRpb24uaW5pdGlhbFNjYWxlKCk7CiAgICAgZG91YmxlIHNjYWxlOwogICAg
IGlmIChtX3VzZXJIYXNDaGFuZ2VkUGFnZVNjYWxlRmFjdG9yKQogICAgICAgICBzY2FsZSA9IHN0
ZDo6bWF4KHN0ZDo6bWluKHBhZ2VTY2FsZUZhY3RvcigpLCBtX3ZpZXdwb3J0Q29uZmlndXJhdGlv
bi5tYXhpbXVtU2NhbGUoKSksIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1TY2FsZSgp
KTsKICAgICBlbHNlCi0gICAgICAgIHNjYWxlID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24uaW5p
dGlhbFNjYWxlKCk7CisgICAgICAgIHNjYWxlID0gaW5pdGlhbFNjYWxlOworCisgICAgbV9wYWdl
LT5zZXRab29tZWRPdXRQYWdlU2NhbGVGYWN0b3IoaW5pdGlhbFNjYWxlKTsKIAogICAgIEZyYW1l
VmlldyYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwogICAgIEludFBv
aW50IHNjcm9sbFBvc2l0aW9uID0gZnJhbWVWaWV3LnNjcm9sbFBvc2l0aW9uKCk7Cg==
</data>
<flag name="review"
          id="253506"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>