<?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>126268</bug_id>
          
          <creation_ts>2013-12-27 16:16:19 -0800</creation_ts>
          <short_desc>Merge didMoveOnscreen / page visibility to isVisible</short_desc>
          <delta_ts>2014-01-02 14:12:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>963142</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-12-27 16:16:19 -0800</bug_when>
    <thetext>The onscreen state most closely tracks view visibility (though currently also tracks a mix of in-window state). Make more consistent, simplify, and move all animation suspension logic to Page, so it can be controlled by the PageThrottler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963143</commentid>
    <comment_count>1</comment_count>
      <attachid>220067</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-12-27 16:18:17 -0800</bug_when>
    <thetext>Created attachment 220067
Early patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963144</commentid>
    <comment_count>2</comment_count>
      <attachid>220067</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-12-27 16:27:51 -0800</bug_when>
    <thetext>Comment on attachment 220067
Early patch for EWS

Attachment 220067 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/6298945886093312</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963156</commentid>
    <comment_count>3</comment_count>
      <attachid>220069</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2013-12-27 22:21:03 -0800</bug_when>
    <thetext>Created attachment 220069
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963814</commentid>
    <comment_count>4</comment_count>
      <attachid>220069</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-01-02 11:51:09 -0800</bug_when>
    <thetext>Comment on attachment 220069
Fix

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

&gt; Source/WebCore/page/Page.cpp:1223
&gt; +    if (isVisible)
&gt; +        m_isPrerender = false;
&gt; +
&gt; +    if (isVisible) {

why are there two if() blocks with the same condition here?

&gt; Source/WebCore/page/Page.cpp:1263
&gt; +        suspendScriptedAnimations();

space above here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963871</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-02 14:02:50 -0800</bug_when>
    <thetext>Fixed in r161223</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>963876</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-01-02 14:12:37 -0800</bug_when>
    <thetext>Build fix in r161224.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220067</attachid>
            <date>2013-12-27 16:18:17 -0800</date>
            <delta_ts>2013-12-27 22:21:03 -0800</delta_ts>
            <desc>Early patch for EWS</desc>
            <filename>126268.1.patch</filename>
            <type>text/plain</type>
            <size>18628</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtOTYyLDE3ICs5NjIsMTcgQEAg
X19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRTdHJpbmdFUktOM1dURjZTdAogX19aTjdXZWJDb3JlNFBh
Z2UxMVBhZ2VDbGllbnRzQzFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzRDFFdgog
X19aTjdXZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVSS04zV1RGNlN0cmluZ0UKK19fWk43V2Vi
Q29yZTRQYWdlMTJzZXRJc1Zpc2libGVFYmIKIF9fWk43V2ViQ29yZTRQYWdlMTJzZXRUaHJvdHRs
ZWRFYgogX19aTjdXZWJDb3JlNFBhZ2UxM3JhbmdlT2ZTdHJpbmdFUktOM1dURjZTdHJpbmdFUE5T
XzVSYW5nZUVqCiBfX1pON1dlYkNvcmU0UGFnZTEzc2V0SXNJbldpbmRvd0ViCiBfX1pON1dlYkNv
cmU0UGFnZTEzc2V0UGFnaW5hdGlvbkVSS05TXzEwUGFnaW5hdGlvbkUKK19fWk43V2ViQ29yZTRQ
YWdlMTRzZXRJc1ByZXJlbmRlckV2CiBfX1pON1dlYkNvcmU0UGFnZTE0c2V0TWVkaWFWb2x1bWVF
ZgogX19aTjdXZWJDb3JlNFBhZ2UxNWFkZFNjaGVkdWxlUGFpckVOM1dURjEwUGFzc1JlZlB0cklO
UzFfMTJTY2hlZHVsZVBhaXJFRUUKLV9fWk43V2ViQ29yZTRQYWdlMTVkaWRNb3ZlT25zY3JlZW5F
dgogX19aTjdXZWJDb3JlNFBhZ2UxNmNvdW50RmluZE1hdGNoZXNFUktOM1dURjZTdHJpbmdFamoK
IF9fWk43V2ViQ29yZTRQYWdlMTZzZXRDYW5TdGFydE1lZGlhRWIKIF9fWk43V2ViQ29yZTRQYWdl
MTZzZXREZWZlcnNMb2FkaW5nRWIKLV9fWk43V2ViQ29yZTRQYWdlMTd3aWxsTW92ZU9mZnNjcmVl
bkV2CiBfX1pON1dlYkNvcmU0UGFnZTE4cmVtb3ZlU2NoZWR1bGVQYWlyRU4zV1RGMTBQYXNzUmVm
UHRySU5TMV8xMlNjaGVkdWxlUGFpckVFRQogX19aTjdXZWJDb3JlNFBhZ2UxOHNldFBhZ2VTY2Fs
ZUZhY3RvckVmUktOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmU0UGFnZTE5YWRkRm9vdGVyV2l0
aEhlaWdodEVpCkBAIC0yNzcwLDEwICsyNzcwLDYgQEAgX19aTjdXZWJDb3JlMTJOb3RpZmljYXRp
b24xNnBlcm1pc3Npb25TdAogX19aTjdXZWJDb3JlNUZyYW1lMjZzZW5kT3JpZW50YXRpb25DaGFu
Z2VFdmVudEVpCiAjZW5kaWYKIAotI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKSB8fCBF
TkFCTEUoSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpCi1fX1pON1dlYkNvcmU0UGFn
ZTE4c2V0VmlzaWJpbGl0eVN0YXRlRU5TXzE5UGFnZVZpc2liaWxpdHlTdGF0ZUViCi0jZW5kaWYK
LQogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKQogX19aTjNKU0MxM1J1bnRpbWVNZXRob2Qx
MWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJOU184Q2FsbERhdGFFCiBfX1pOM0pTQzEzUnVudGlt
ZU1ldGhvZDE0ZmluaXNoQ3JlYXRpb25FUk5TXzJWTUVSS04zV1RGNlN0cmluZ0UKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgzNiw3
ICsyODM2LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbQogICAg
IGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSB8
fCAhbV9mcmFtZS5wYWdlKCktPmlzT25zY3JlZW4oKSB8fCAhbV9mcmFtZS5wYWdlKCktPmZvY3Vz
Q29udHJvbGxlcigpLmlzQWN0aXZlKCkpCisgICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSB8fCAhbV9m
cmFtZS5wYWdlKCktPmlzVmlzaWJsZSgpIHx8ICFtX2ZyYW1lLnBhZ2UoKS0+Zm9jdXNDb250cm9s
bGVyKCkuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBzaGlmdEtleTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDE2MTEwNykKKysrIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY5NSw3
ICsxNjk1LDcgQEAgYm9vbCBGcmFtZVZpZXc6OmlzSGFuZGxpbmdXaGVlbEV2ZW50KCkgYwogYm9v
bCBGcmFtZVZpZXc6OnNob3VsZFNldEN1cnNvcigpIGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9
IGZyYW1lKCkucGFnZSgpOwotICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmlzT25zY3JlZW4oKSAm
JiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOworICAgIHJldHVybiBwYWdlICYm
IHBhZ2UtPmlzVmlzaWJsZSgpICYmIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7
CiB9CiAKIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNp
emUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJl
Y3QmIGNsaXBSZWN0KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCShyZXZpc2lvbiAxNjExMDcpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsMTEg
KzE3MSw5IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMmIHBhZ2VDbGllbnRzKQogICAgICwgbV9t
aW5pbXVtVGltZXJJbnRlcnZhbChTZXR0aW5nczo6ZGVmYXVsdE1pbkRPTVRpbWVySW50ZXJ2YWwo
KSkKICAgICAsIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZhbChTZXR0aW5nczo6ZGVmYXVsdERPTVRp
bWVyQWxpZ25tZW50SW50ZXJ2YWwoKSkKICAgICAsIG1faXNFZGl0YWJsZShmYWxzZSkKLSAgICAs
IG1faXNPbnNjcmVlbih0cnVlKQogICAgICwgbV9pc0luV2luZG93KHRydWUpCi0jaWYgRU5BQkxF
KFBBR0VfVklTSUJJTElUWV9BUEkpCi0gICAgLCBtX3Zpc2liaWxpdHlTdGF0ZShQYWdlVmlzaWJp
bGl0eVN0YXRlVmlzaWJsZSkKLSNlbmRpZgorICAgICwgbV9pc1Zpc2libGUodHJ1ZSkKKyAgICAs
IG1faXNQcmVyZW5kZXIoZmFsc2UpCiAgICAgLCBtX3JlcXVlc3RlZExheW91dE1pbGVzdG9uZXMo
MCkKICAgICAsIG1faGVhZGVySGVpZ2h0KDApCiAgICAgLCBtX2Zvb3RlckhlaWdodCgwKQpAQCAt
ODc0LDMwICs4NzIsNiBAQCB1bnNpZ25lZCBQYWdlOjpwYWdlQ291bnQoKSBjb25zdAogICAgIHJl
dHVybiBjb250ZW50UmVuZGVyZXIgPyBjb250ZW50UmVuZGVyZXItPmNvbHVtbkNvdW50KGNvbnRl
bnRSZW5kZXJlci0+Y29sdW1uSW5mbygpKSA6IDA7CiB9CiAKLXZvaWQgUGFnZTo6ZGlkTW92ZU9u
c2NyZWVuKCkKLXsKLSAgICBtX2lzT25zY3JlZW4gPSB0cnVlOwotCi0gICAgZm9yIChGcmFtZSog
ZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVy
c2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZp
ZXcoKSkKLSAgICAgICAgICAgIGZyYW1lVmlldy0+ZGlkTW92ZU9uc2NyZWVuKCk7Ci0gICAgfQot
ICAgIAotICAgIHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9ucygpOwotfQotCi12b2lkIFBhZ2U6Ondp
bGxNb3ZlT2Zmc2NyZWVuKCkKLXsKLSAgICBtX2lzT25zY3JlZW4gPSBmYWxzZTsKLQotICAgIGZv
ciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJl
ZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9
IGZyYW1lLT52aWV3KCkpCi0gICAgICAgICAgICBmcmFtZVZpZXctPndpbGxNb3ZlT2Zmc2NyZWVu
KCk7Ci0gICAgfQotICAgIAotICAgIHN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbnMoKTsKLX0KLQog
dm9pZCBQYWdlOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKIHsKICAgICBpZiAobV9p
c0luV2luZG93ID09IGlzSW5XaW5kb3cpCkBAIC0xMjM1LDIxICsxMjA5LDM1IEBAIHZvaWQgUGFn
ZTo6cmVzdW1lQW5pbWF0aW5nSW1hZ2VzKCkKICAgICAgICAgQ2FjaGVkSW1hZ2U6OnJlc3VtZUFu
aW1hdGluZ0ltYWdlc0ZvckxvYWRlcihmcmFtZS0+ZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VM
b2FkZXIoKSk7CiB9CiAKLSNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkgfHwgRU5BQkxF
KEhJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKQotdm9pZCBQYWdlOjpzZXRWaXNpYmls
aXR5U3RhdGUoUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUsIGJvb2wgaXNJbml0
aWFsU3RhdGUpCit2b2lkIFBhZ2U6OnNldElzVmlzaWJsZShib29sIGlzVmlzaWJsZSwgYm9vbCBp
c0luaXRpYWxTdGF0ZSkKIHsKLSNpZiAhRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCi0gICAg
VU5VU0VEX1BBUkFNKGlzSW5pdGlhbFN0YXRlKTsKLSNlbHNlCiAgICAgLy8gRklYTUU6IFRoZSB2
aXNpYmlsaXR5IHN0YXRlIHNob3VsZCBiZSBzdG9yZWQgb24gdGhlIHRvcC1sZXZlbCBkb2N1bWVu
dC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NzY5
CiAKLSAgICBpZiAobV92aXNpYmlsaXR5U3RhdGUgPT0gdmlzaWJpbGl0eVN0YXRlKQorICAgIGlm
IChtX2lzVmlzaWJsZSA9PSBpc1Zpc2libGUpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAobV92
aXNpYmlsaXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlciAmJiB2aXNpYmls
aXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbikKLSAgICAgICAgcmV0dXJuOwot
ICAgIG1fdmlzaWJpbGl0eVN0YXRlID0gdmlzaWJpbGl0eVN0YXRlOworICAgIG1faXNWaXNpYmxl
ID0gaXNWaXNpYmxlOworICAgIGlmIChpc1Zpc2libGUpCisgICAgICAgIG1faXNQcmVyZW5kZXIg
PSBmYWxzZTsKKworICAgIGlmIChpc1Zpc2libGUpIHsKKyAgICAgICAgZm9yIChGcmFtZSogZnJh
bWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VO
ZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52
aWV3KCkpCisgICAgICAgICAgICAgICAgZnJhbWVWaWV3LT5kaWRNb3ZlT25zY3JlZW4oKTsKKyAg
ICAgICAgfQorICAgICAgICByZXN1bWVTY3JpcHRlZEFuaW1hdGlvbnMoKTsKIAorICAgICAgICBp
ZiAoRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lKCkudmlldygpKQorICAgICAgICAgICAgdmll
dy0+c2hvdygpOworCisgICAgICAgIHVudGhyb3R0bGVUaW1lcnMoKTsKKyAgICAgICAgaWYgKG1f
c2V0dGluZ3MtPmhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZCgpKQorICAg
ICAgICAgICAgbWFpbkZyYW1lKCkuYW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOworCisg
ICAgICAgIHJlc3VtZUFuaW1hdGluZ0ltYWdlcygpOworICAgIH0KKworI2lmIEVOQUJMRShQQUdF
X1ZJU0lCSUxJVFlfQVBJKQogICAgIGlmICghaXNJbml0aWFsU3RhdGUpIHsKICAgICAgICAgVmVj
dG9yPFJlZjxEb2N1bWVudD4+IGRvY3VtZW50czsKICAgICAgICAgZm9yIChGcmFtZSogZnJhbWUg
PSBtX21haW5GcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJz
ZU5leHQoKSkKQEAgLTEyNTgsMjYgKzEyNDYsNDAgQEAgdm9pZCBQYWdlOjpzZXRWaXNpYmlsaXR5
U3RhdGUoUGFnZVZpc2liaQogICAgICAgICBmb3IgKHNpemVfdCBpID0gMCwgc2l6ZSA9IGRvY3Vt
ZW50cy5zaXplKCk7IGkgPCBzaXplOyArK2kpCiAgICAgICAgICAgICBkb2N1bWVudHNbaV0tPnZp
c2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKICAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShp
c0luaXRpYWxTdGF0ZSk7CiAjZW5kaWYKIAotICAgIGlmICh2aXNpYmlsaXR5U3RhdGUgPT0gV2Vi
Q29yZTo6UGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbikgeworICAgIGlmICghaXNWaXNpYmxlKSB7
CiAgICAgICAgIGlmIChtX3BhZ2VUaHJvdHRsZXItPnNob3VsZFRocm90dGxlVGltZXJzKCkpCiAg
ICAgICAgICAgICB0aHJvdHRsZVRpbWVycygpOwogICAgICAgICBpZiAobV9zZXR0aW5ncy0+aGlk
ZGVuUGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkKCkpCiAgICAgICAgICAgICBtYWlu
RnJhbWUoKS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0aW9ucygpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHVudGhyb3R0bGVUaW1lcnMoKTsKLSAgICAgICAgaWYgKG1fc2V0dGluZ3MtPmhpZGRl
blBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZCgpKQotICAgICAgICAgICAgbWFpbkZy
YW1lKCkuYW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9ucygpOwotICAgICAgICByZXN1bWVBbmlt
YXRpbmdJbWFnZXMoKTsKKworICAgICAgICBmb3IgKEZyYW1lKiBmcmFtZSA9ICZtYWluRnJhbWUo
KTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkgeworICAgICAg
ICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKSkKKyAgICAgICAg
ICAgICAgICBmcmFtZVZpZXctPndpbGxNb3ZlT2Zmc2NyZWVuKCk7CisgICAgICAgIH0KKyAgICAg
ICAgc3VzcGVuZFNjcmlwdGVkQW5pbWF0aW9ucygpOworCisgICAgICAgIGlmIChGcmFtZVZpZXcq
IHZpZXcgPSBtYWluRnJhbWUoKS52aWV3KCkpCisgICAgICAgICAgICB2aWV3LT5oaWRlKCk7CiAg
ICAgfQogfQotI2VuZGlmIC8vIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKSB8fCBFTkFCTEUo
SElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpCisKK3ZvaWQgUGFnZTo6c2V0SXNQcmVy
ZW5kZXIoKQoreworICAgIG1faXNQcmVyZW5kZXIgPSB0cnVlOworfQogCiAjaWYgRU5BQkxFKFBB
R0VfVklTSUJJTElUWV9BUEkpCiBQYWdlVmlzaWJpbGl0eVN0YXRlIFBhZ2U6OnZpc2liaWxpdHlT
dGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlzaWJpbGl0eVN0YXRlOworICAgIGlmICht
X2lzVmlzaWJsZSkKKyAgICAgICAgcmV0dXJuIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwor
ICAgIGlmIChtX2lzUHJlcmVuZGVyKQorICAgICAgICByZXR1cm4gUGFnZVZpc2liaWxpdHlTdGF0
ZVByZXJlbmRlcjsKKyAgICByZXR1cm4gUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbjsKIH0KICNl
bmRpZgogCkBAIC0xNTM1LDcgKzE1MzcsNyBAQCB2b2lkIFBhZ2U6OmhpZGRlblBhZ2VET01UaW1l
clRocm90dGxpbmdTCiAjaWYgKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKQogdm9pZCBQYWdl
OjpoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvblN0YXRlQ2hhbmdlZCgpCiB7Ci0gICAg
aWYgKG1fdmlzaWJpbGl0eVN0YXRlID09IFdlYkNvcmU6OlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRk
ZW4pIHsKKyAgICBpZiAoIW1faXNWaXNpYmxlKSB7CiAgICAgICAgIGlmIChtX3NldHRpbmdzLT5o
aWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWQoKSkKICAgICAgICAgICAgIG1h
aW5GcmFtZSgpLmFuaW1hdGlvbigpLnN1c3BlbmRBbmltYXRpb25zKCk7CiAgICAgICAgIGVsc2UK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjk0LDkgKzI5NCw5IEBAIHB1YmxpYzoKICAg
ICB1bnNpZ25lZCBwYWdlQ291bnQoKSBjb25zdDsKIAogICAgIC8vIE5vdGlmaWNhdGlvbnMgd2hl
biB0aGUgUGFnZSBzdGFydHMgYW5kIHN0b3BzIGJlaW5nIHByZXNlbnRlZCB2aWEgYSBuYXRpdmUg
d2luZG93LgotICAgIHZvaWQgZGlkTW92ZU9uc2NyZWVuKCk7Ci0gICAgdm9pZCB3aWxsTW92ZU9m
ZnNjcmVlbigpOwotICAgIGJvb2wgaXNPbnNjcmVlbigpIGNvbnN0IHsgcmV0dXJuIG1faXNPbnNj
cmVlbjsgfQorICAgIHZvaWQgc2V0SXNWaXNpYmxlKGJvb2wgaXNWaXNpYmxlLCBib29sIGlzSW5p
dGlhbCk7CisgICAgdm9pZCBzZXRJc1ByZXJlbmRlcigpOworICAgIGJvb2wgaXNWaXNpYmxlKCkg
Y29uc3QgeyByZXR1cm4gbV9pc1Zpc2libGU7IH0KIAogICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0
IHRoaXMgUGFnZSB3YXMgbW92ZWQgaW50byBvciBvdXQgb2YgYSBuYXRpdmUgd2luZG93LgogICAg
IHZvaWQgc2V0SXNJbldpbmRvdyhib29sKTsKQEAgLTM1NSw5ICszNTUsNiBAQCBwdWJsaWM6CiAj
aWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCiAgICAgUGFnZVZpc2liaWxpdHlTdGF0ZSB2
aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKICNlbmRpZgotI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKSB8fCBFTkFCTEUoSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpCi0gICAg
dm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoUGFnZVZpc2liaWxpdHlTdGF0ZSwgYm9vbCk7Ci0jZW5k
aWYKICAgICB2b2lkIHJlc3VtZUFuaW1hdGluZ0ltYWdlcygpOwogCiAgICAgdm9pZCBhZGRMYXlv
dXRNaWxlc3RvbmVzKExheW91dE1pbGVzdG9uZXMpOwpAQCAtNTI1LDEyICs1MjIsOSBAQCBwcml2
YXRlOgogICAgIGRvdWJsZSBtX3RpbWVyQWxpZ25tZW50SW50ZXJ2YWw7CiAKICAgICBib29sIG1f
aXNFZGl0YWJsZTsKLSAgICBib29sIG1faXNPbnNjcmVlbjsKICAgICBib29sIG1faXNJbldpbmRv
dzsKLQotI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQotICAgIFBhZ2VWaXNpYmlsaXR5
U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7Ci0jZW5kaWYKKyAgICBib29sIG1faXNWaXNpYmxlOwor
ICAgIGJvb2wgbV9pc1ByZXJlbmRlcjsKIAogICAgIExheW91dE1pbGVzdG9uZXMgbV9yZXF1ZXN0
ZWRMYXlvdXRNaWxlc3RvbmVzOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyNSw3
ICs0MjUsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgCiAgICAg
ICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmV2ZW50RGlzcGF0Y2hlcigpLmFkZFNjcm9sbGluZ1Ry
ZWVGb3JQYWdlKHRoaXMpOwogI2VuZGlmCiAKLSAgICB1cGRhdGVWaXNpYmlsaXR5U3RhdGUodHJ1
ZSk7CisgICAgbV9wYWdlLT5zZXRJc1Zpc2libGUobV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6Oklz
VmlzaWJsZSwgdHJ1ZSk7CiB9CiAKIFdlYlBhZ2U6On5XZWJQYWdlKCkKQEAgLTE5MjIsMjAgKzE5
MjIsMTIgQEAgdm9pZCBXZWJQYWdlOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKIAogdm9pZCBX
ZWJQYWdlOjpzZXRWaWV3SXNWaXNpYmxlKGJvb2wgaXNWaXNpYmxlKQogewotICAgIGlmICghaXNW
aXNpYmxlKSB7Ci0gICAgICAgIG1fZHJhd2luZ0FyZWEtPnN1c3BlbmRQYWludGluZygpOwotICAg
ICAgICBtX3BhZ2UtPnN1c3BlbmRTY3JpcHRlZEFuaW1hdGlvbnMoKTsKLSAgICB9IGVsc2Ugewor
ICAgIGlmIChpc1Zpc2libGUpCiAgICAgICAgIG1fZHJhd2luZ0FyZWEtPnJlc3VtZVBhaW50aW5n
KCk7Ci0gICAgICAgIC8vIEZJWE1FOiB0aGlzIHNlZW1zIHJlZHVuZGFudDsgZm9yIHRoZSB2aWV3
IHRvIGJlIHZpc2libGUgdGhlIHdpbmRvdyBtdXN0IGJlIHZpc2libGUgdG9vIQotICAgICAgICAv
LyByZWZhY3RvcmluZyBmb3Igbm93LCB3aWxsIGNoYW5nZSB0aGUgbG9naWMgbGF0ZXIuCi0gICAg
ICAgIGlmIChtX3dpbmRvd0lzVmlzaWJsZSkgewotICAgICAgICAgICAgbV9wYWdlLT5yZXN1bWVT
Y3JpcHRlZEFuaW1hdGlvbnMoKTsKLSAgICAgICAgICAgIG1fcGFnZS0+cmVzdW1lQW5pbWF0aW5n
SW1hZ2VzKCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgZWxzZQorICAgICAgICBtX2RyYXdpbmdB
cmVhLT5zdXNwZW5kUGFpbnRpbmcoKTsKIAotICAgIHVwZGF0ZVZpc2liaWxpdHlTdGF0ZSgpOwor
ICAgIG1fcGFnZS0+c2V0SXNWaXNpYmxlKG1fdmlld1N0YXRlICYgVmlld1N0YXRlOjpJc1Zpc2li
bGUsIGZhbHNlKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXREcmF3c0JhY2tncm91bmQoYm9vbCBk
cmF3c0JhY2tncm91bmQpCkBAIC0yMDU5LDcgKzIwNTEsNiBAQCB2b2lkIFdlYlBhZ2U6OnNldElz
SW5XaW5kb3coYm9vbCBpc0luV2luCiAgICAgaWYgKCFpc0luV2luZG93KSB7CiAgICAgICAgIG1f
c2V0Q2FuU3RhcnRNZWRpYVRpbWVyLnN0b3AoKTsKICAgICAgICAgbV9wYWdlLT5zZXRDYW5TdGFy
dE1lZGlhKGZhbHNlKTsKLSAgICAgICAgbV9wYWdlLT53aWxsTW92ZU9mZnNjcmVlbigpOwogICAg
ICAgICAKICAgICAgICAgaWYgKHBhZ2VXYXNJbldpbmRvdykKICAgICAgICAgICAgIFdlYlByb2Nl
c3M6OnNoYXJlZCgpLnBhZ2VXaWxsTGVhdmVXaW5kb3cobV9wYWdlSUQpOwpAQCAtMjA3MCw4ICsy
MDYxLDYgQEAgdm9pZCBXZWJQYWdlOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbgogICAgICAg
ICBpZiAobV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93KQogICAgICAgICAgICAgbV9zZXRDYW5T
dGFydE1lZGlhVGltZXIuc3RhcnRPbmVTaG90KDApOwogCi0gICAgICAgIG1fcGFnZS0+ZGlkTW92
ZU9uc2NyZWVuKCk7Ci0gICAgICAgIAogICAgICAgICBpZiAoIXBhZ2VXYXNJbldpbmRvdykKICAg
ICAgICAgICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhZ2VEaWRFbnRlcldpbmRvdyhtX3BhZ2VJ
RCk7CiAgICAgfQpAQCAtMzUzOCw3ICszNTI3LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRNYXlTdGFy
dE1lZGlhV2hlbkluV2luZAogICAgICAgICByZXR1cm47CiAKICAgICBtX21heVN0YXJ0TWVkaWFX
aGVuSW5XaW5kb3cgPSBtYXlTdGFydE1lZGlhOwotICAgIGlmIChtX21heVN0YXJ0TWVkaWFXaGVu
SW5XaW5kb3cgJiYgbV9wYWdlLT5pc09uc2NyZWVuKCkpCisgICAgaWYgKG1fbWF5U3RhcnRNZWRp
YVdoZW5JbldpbmRvdyAmJiBtX3BhZ2UtPmlzSW5XaW5kb3coKSkKICAgICAgICAgbV9zZXRDYW5T
dGFydE1lZGlhVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCkBAIC0zNzA3LDQ5ICszNjk2LDEw
IEBAIEZyYW1lVmlldyogV2ViUGFnZTo6bWFpbkZyYW1lVmlldygpIGNvbnMKICAgICByZXR1cm4g
MDsKIH0KIAotdm9pZCBXZWJQYWdlOjp1cGRhdGVWaXNpYmlsaXR5U3RhdGUoYm9vbCBpc0luaXRp
YWxTdGF0ZSkKLXsKLSAgICBib29sIGlzVmlzaWJsZSA9IG1fdmlld1N0YXRlICYgVmlld1N0YXRl
OjpJc1Zpc2libGU7Ci0gICAgaWYgKCFtX3BhZ2UpCi0gICAgICAgIHJldHVybjsKLQotI2lmIEVO
QUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQotCi0gICAgRnJhbWVWaWV3KiB2aWV3ID0gbV9wYWdl
LT5tYWluRnJhbWUoKS52aWV3KCk7Ci0KLSAgICBpZiAoaXNWaXNpYmxlKSB7Ci0gICAgICAgIG1f
cGFnZS0+ZGlkTW92ZU9uc2NyZWVuKCk7Ci0gICAgICAgIGlmICh2aWV3KQotICAgICAgICAgICAg
dmlldy0+c2hvdygpOwotICAgIH0KLQotICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgc3RhdGUgPSBp
c1Zpc2libGUgPyBQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSA6IFBhZ2VWaXNpYmlsaXR5U3Rh
dGVIaWRkZW47Ci0gICAgbV9wYWdlLT5zZXRWaXNpYmlsaXR5U3RhdGUoc3RhdGUsIGlzSW5pdGlh
bFN0YXRlKTsKLQotICAgIGlmICghaXNWaXNpYmxlKSB7Ci0gICAgICAgIG1fcGFnZS0+d2lsbE1v
dmVPZmZzY3JlZW4oKTsKLSAgICAgICAgaWYgKHZpZXcpCi0gICAgICAgICAgICB2aWV3LT5oaWRl
KCk7Ci0gICAgfQotCi0jZWxpZiBFTkFCTEUoSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJ
TkcpCi0KLSAgICBQYWdlVmlzaWJpbGl0eVN0YXRlIHN0YXRlID0gaXNWaXNpYmxlID8gUGFnZVZp
c2liaWxpdHlTdGF0ZVZpc2libGUgOiBQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuOwotICAgIG1f
cGFnZS0+c2V0VmlzaWJpbGl0eVN0YXRlKHN0YXRlLCBpc0luaXRpYWxTdGF0ZSk7Ci0KLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKGlzVmlzaWJsZSk7Ci0gICAgVU5VU0VEX1BBUkFNKGlzSW5pdGlh
bFN0YXRlKTsKLSNlbmRpZgotfQotCiB2b2lkIFdlYlBhZ2U6OnNldFZpc2liaWxpdHlTdGF0ZVBy
ZXJlbmRlcigpCiB7Ci0jaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpIHx8IEVOQUJMRShI
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykKLSAgICBpZiAoIW1fcGFnZSkKLSAgICAg
ICAgcmV0dXJuOwotICAgIG1fcGFnZS0+c2V0VmlzaWJpbGl0eVN0YXRlKFBhZ2VWaXNpYmlsaXR5
U3RhdGVQcmVyZW5kZXIsIHRydWUpOwotI2VuZGlmCisgICAgaWYgKG1fcGFnZSkKKyAgICAgICAg
bV9wYWdlLT5zZXRJc1ByZXJlbmRlcigpOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldFRocm90dGxl
ZChib29sIGlzVGhyb3R0bGVkKQpJbmRleDogU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9X
ZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2UuY3BwCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
QXBpL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTE4LDcgKzMxMTgsOCBAQCB2b2lk
IFdlYlBhZ2VQcml2YXRlOjpzZXRQYWdlVmlzaWJpbGl0eVN0CiAKICAgICAgICAgc3RhdGljIGJv
b2wgc19pbml0aWFsVmlzaWJpbGl0eVN0YXRlID0gdHJ1ZTsKIAotICAgICAgICBtX3BhZ2UtPnNl
dFZpc2liaWxpdHlTdGF0ZShtX3Zpc2libGUgJiYgbV9hY3RpdmF0aW9uU3RhdGUgPT0gQWN0aXZh
dGlvbkFjdGl2ZSA/IFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlIDogUGFnZVZpc2liaWxpdHlT
dGF0ZUhpZGRlbiwgc19pbml0aWFsVmlzaWJpbGl0eVN0YXRlKTsKKyAgICAgICAgbV9wYWdlLT5z
ZXRJc1Zpc2libGUobV92aXNpYmxlICYmIG1fYWN0aXZhdGlvblN0YXRlID09IEFjdGl2YXRpb25B
Y3RpdmUsIHNfaW5pdGlhbFZpc2liaWxpdHlTdGF0ZSk7CisKICAgICAgICAgc19pbml0aWFsVmlz
aWJpbGl0eVN0YXRlID0gZmFsc2U7CiAgICAgfQogfQpJbmRleDogU291cmNlL1dlYktpdC9lZmwv
ZXdrL2V3a192aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjU0LDcgKzQyNTQsOSBAQCBFaW5hX0Jvb2wg
ZXdrX3ZpZXdfdmlzaWJpbGl0eV9zdGF0ZV9zZXQoCiAgICAgaWYgKHBhZ2VWaXNpYmlsaXR5U3Rh
dGUgPT0gRVdLX1BBR0VfVklTSUJJTElUWV9TVEFURV9VTkxPQURFRCkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgcHJpdi0+cGFnZS0+c2V0VmlzaWJpbGl0eVN0YXRlKHN0YXRpY19jYXN0
PFdlYkNvcmU6OlBhZ2VWaXNpYmlsaXR5U3RhdGU+KHBhZ2VWaXNpYmlsaXR5U3RhdGUpLCBpbml0
aWFsU3RhdGUpOworICAgIHByaXYtPnBhZ2UtPnNldElzVmlzaWJsZShwYWdlVmlzaWJpbGl0eVN0
YXRlID09IEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RBVEVfVklTSUJMRSwgaXNJbml0aWFsU3RhdGUp
OworICAgIGlmIChwYWdlVmlzaWJpbGl0eVN0YXRlID09IEVXS19QQUdFX1ZJU0lCSUxJVFlfU1RB
VEVfUFJFUkVOREVSKQorICAgICAgICBwcml2LT5wYWdlLT5zZXRJc1ByZXJlbmRlcigpOwogCiAg
ICAgcmV0dXJuIHRydWU7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCShy
ZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTksNiArNjk5LDgg
QEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFBhZ2VWaQogICAgIGlmICghcGFn
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+c2V0VmlzaWJpbGl0eVN0YXRlKHZpc2li
aWxpdHlTdGF0ZSwgaXNJbml0aWFsU3RhdGUpOworICAgIHBhZ2UtPnNldElzVmlzaWJsZSh2aXNp
YmlsaXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsIGlzSW5pdGlhbFN0YXRl
KTsKKyAgICBpZiAodmlzaWJpbGl0eVN0YXRlID09IFBhZ2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5k
ZXIpCisgICAgICAgIHBhZ2UtPnNldElzUHJlcmVuZGVyKCk7CiAjZW5kaWYKIH0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNDI2LDIx
ICs0MjYsNiBAQCBXZWJMYXlvdXRNaWxlc3RvbmVzIGtpdExheW91dE1pbGVzdG9uZXMoCiAgICAg
ICAgIHwgKG1pbGVzdG9uZXMgJiBEaWRIaXRSZWxldmFudFJlcGFpbnRlZE9iamVjdHNBcmVhVGhy
ZXNob2xkID8gV2ViRGlkSGl0UmVsZXZhbnRSZXBhaW50ZWRPYmplY3RzQXJlYVRocmVzaG9sZCA6
IDApOwogfQogCi1zdGF0aWMgUGFnZVZpc2liaWxpdHlTdGF0ZSBjb3JlKFdlYlBhZ2VWaXNpYmls
aXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKQotewotICAgIHN3aXRjaCAodmlzaWJpbGl0eVN0YXRl
KSB7Ci0gICAgY2FzZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZToKLSAgICAgICAgcmV0
dXJuIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwotICAgIGNhc2UgV2ViUGFnZVZpc2liaWxp
dHlTdGF0ZUhpZGRlbjoKLSAgICAgICAgcmV0dXJuIFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW47
Ci0gICAgY2FzZSBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyOgotICAgICAgICByZXR1
cm4gUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlcjsKLSAgICB9Ci0KLSAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICByZXR1cm4gUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7Ci19Ci0K
IHN0YXRpYyBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIGtpdChQYWdlVmlzaWJpbGl0eVN0YXRlIHZp
c2liaWxpdHlTdGF0ZSkKIHsKICAgICBzd2l0Y2ggKHZpc2liaWxpdHlTdGF0ZSkgewpAQCAtODI2
LDcgKzgxMSw3IEBAIC0gKHZvaWQpX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmEKIAog
ICAgIFtzZWxmIF9yZWdpc3RlckRyYWdnZWRUeXBlc107CiAKLSAgICBbc2VsZiBfc2V0VmlzaWJp
bGl0eVN0YXRlOihbc2VsZiBfaXNWaWV3VmlzaWJsZV0gPyBXZWJQYWdlVmlzaWJpbGl0eVN0YXRl
VmlzaWJsZSA6IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pIGlzSW5pdGlhbFN0YXRlOllF
U107CisgICAgW3NlbGYgX3NldElzVmlzaWJsZTpbc2VsZiBfaXNWaWV3VmlzaWJsZV0gaXNJbml0
aWFsU3RhdGU6WUVTXTsKIAogICAgIFdlYlByZWZlcmVuY2VzICpwcmVmcyA9IFtzZWxmIHByZWZl
cmVuY2VzXTsKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmlj
YXRpb246KQpAQCAtMjc2OSw3ICsyNzU0LDcgQEAgLSAoQk9PTClfaXNWaWV3VmlzaWJsZQogLSAo
dm9pZClfdXBkYXRlVmlzaWJpbGl0eVN0YXRlCiB7CiAgICAgaWYgKF9wcml2YXRlICYmIF9wcml2
YXRlLT5wYWdlKQotICAgICAgICBbc2VsZiBfc2V0VmlzaWJpbGl0eVN0YXRlOihbc2VsZiBfaXNW
aWV3VmlzaWJsZV0gPyBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSA6IFdlYlBhZ2VWaXNp
YmlsaXR5U3RhdGVIaWRkZW4pIGlzSW5pdGlhbFN0YXRlOk5PXTsKKyAgICAgICAgW3NlbGYgX3Nl
dElzVmlzaWJsZTpbc2VsZiBfaXNWaWV3VmlzaWJsZV0gaXNJbml0aWFsU3RhdGU6Tk9dOwogfQog
CiAtICh2b2lkKV91cGRhdGVBY3RpdmVTdGF0ZQpAQCAtMzExNSw2ICszMTAwLDcgQEAgLSAoV2Vi
TGF5b3V0TWlsZXN0b25lcylfbGF5b3V0TWlsZXN0b25lcwogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIHJldHVybiBraXRMYXlvdXRNaWxlc3RvbmVzKHBhZ2UtPnJlcXVlc3RlZExheW91dE1pbGVz
dG9uZXMoKSk7CisKIH0KIAogLSAoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSlfdmlzaWJpbGl0eVN0
YXRlCkBAIC0zMTI2LDEyICszMTEyLDE5IEBAIC0gKFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUpX3Zp
c2liaWxpdHlTdGEKICAgICByZXR1cm4gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU7CiB9
CiAKLS0gKHZvaWQpX3NldFZpc2liaWxpdHlTdGF0ZTooV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSl2
aXNpYmlsaXR5U3RhdGUgaXNJbml0aWFsU3RhdGU6KEJPT0wpaXNJbml0aWFsU3RhdGUKKy0gKHZv
aWQpX3NldElzVmlzaWJsZTooQk9PTClpc1Zpc2libGUgaXNJbml0aWFsU3RhdGU6KEJPT0wpaXNJ
bml0aWFsU3RhdGUKIHsKLSNpZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkgfHwgRU5BQkxF
KEhJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKQogICAgIGlmIChfcHJpdmF0ZS0+cGFn
ZSkKLSAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldFZpc2liaWxpdHlTdGF0ZShjb3JlKHZpc2li
aWxpdHlTdGF0ZSksIGlzSW5pdGlhbFN0YXRlKTsKLSNlbmRpZgorICAgICAgICBfcHJpdmF0ZS0+
cGFnZS0+c2V0SXNWaXNpYmxlKGlzVmlzaWJsZSwgaXNJbml0aWFsU3RhdGUpOworfQorCistICh2
b2lkKV9zZXRWaXNpYmlsaXR5U3RhdGU6KFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGUpdmlzaWJpbGl0
eVN0YXRlIGlzSW5pdGlhbFN0YXRlOihCT09MKWlzSW5pdGlhbFN0YXRlCit7CisgICAgaWYgKF9w
cml2YXRlLT5wYWdlKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXRJc1Zpc2libGUodmlz
aWJpbGl0eVN0YXRlID09IFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlLCBpc0luaXRpYWxT
dGF0ZSk7CisgICAgICAgIGlmICh2aXNpYmlsaXR5U3RhdGUgPT0gV2ViUGFnZVZpc2liaWxpdHlT
dGF0ZVByZXJlbmRlcikKKyAgICAgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXRJc1ByZXJlbmRl
cigpOworICAgIH0KIH0KIAogLSAodm9pZClfc2V0UGFnaW5hdGlvbkJlaGF2ZXNMaWtlQ29sdW1u
czooQk9PTCliZWhhdmVzTGlrZUNvbHVtbnMKQEAgLTM4NTUsNyArMzg0OCw2IEBAIC0gKHZvaWQp
dmlld1dpbGxNb3ZlVG9XaW5kb3c6KE5TV2luZG93ICoKICAgICAgICAgV0tTZXROU1dpbmRvd1No
b3VsZFBvc3RFdmVudE5vdGlmaWNhdGlvbnMod2luZG93LCBZRVMpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXRDYW5TdGFydE1lZGlhKGZhbHNlKTsKLSAgICAgICAg
X3ByaXZhdGUtPnBhZ2UtPndpbGxNb3ZlT2Zmc2NyZWVuKCk7CiAgICAgICAgIF9wcml2YXRlLT5w
YWdlLT5zZXRJc0luV2luZG93KGZhbHNlKTsKICAgICB9CiAgICAgICAgIApAQCAtMzg3Niw3ICsz
ODY4LDYgQEAgLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiAKICAgICBpZiAoW3NlbGYgd2lu
ZG93XSkgewogICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0Q2FuU3RhcnRNZWRpYSh0cnVlKTsK
LSAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPmRpZE1vdmVPbnNjcmVlbigpOwogICAgICAgICBfcHJp
dmF0ZS0+cGFnZS0+c2V0SXNJbldpbmRvdyh0cnVlKTsKICAgICB9CiAgICAgCg==
</data>
<flag name="commit-queue"
          id="243729"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220069</attachid>
            <date>2013-12-27 22:21:03 -0800</date>
            <delta_ts>2014-01-02 11:51:09 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>126268.2.patch</filename>
            <type>text/plain</type>
            <size>26169</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTEwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDEzLTEyLTI3ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSBkaWRN
b3ZlT25zY3JlZW4gLyBwYWdlIHZpc2liaWxpdHkgdG8gaXNWaXNpYmxlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYyNjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb25zY3JlZW4gc3RhdGUgbW9z
dCBjbG9zZWx5IHRyYWNrcyB2aWV3IHZpc2liaWxpdHkgKHRob3VnaCBjdXJyZW50bHkKKyAgICAg
ICAgYWxzbyB0cmFja3MgYSBtaXggb2YgaW4td2luZG93IHN0YXRlKS4gTWFrZSBtb3JlIGNvbnNp
c3RlbnQsIHNpbXBsaWZ5LAorICAgICAgICBhbmQgbW92ZSBhbGwgYW5pbWF0aW9uIHN1c3BlbnNp
b24gbG9naWMgdG8gUGFnZSwgc28gaXQgY2FuIGJlIGNvbnRyb2xsZWQKKyAgICAgICAgYnkgdGhl
IFBhZ2VUaHJvdHRsZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBw
YWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZh
a2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxkU2V0Q3Vyc29yKToKKyAgICAg
ICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6UGFnZSk6CisgICAg
ICAgICAgICAtIGluaXRpYWxpemUgbmV3IHZhcmlhYmxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OnNldElzVmlzaWJsZSk6CisgICAgICAgICAgICAtIG1lcmdlIHNldFZpc2liaWxpdHlTdGF0
ZSwgZGlkTW92ZU9uc2NyZWVuLCB3aWxsTW92ZU9mZnNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6OnNldElzUHJlcmVuZGVyKToKKyAgICAgICAgICAgIC0gc3dpdGNoZXMgdmlzaWJpbGl0
eSBzdGF0ZSBmcm9tIGhpZGRlbiB0byBwcmVyZW5kZXIuCisgICAgICAgIChXZWJDb3JlOjpQYWdl
Ojp2aXNpYmlsaXR5U3RhdGUpOgorICAgICAgICAgICAgLSBjb21wdXRlZCBmcm9tIG1faXNWaXNp
YmxlLCBtX2lzUHJlcmVuZGVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aGlkZGVuUGFnZUNT
U0FuaW1hdGlvblN1c3BlbnNpb25TdGF0ZUNoYW5nZWQpOgorICAgICAgICAgICAgLSBtX3Zpc2li
aWxpdHlTdGF0ZSAtPiBtX2lzVmlzaWJsZS4KKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAg
ICAgICAgIC0gcmVtb3ZlIGRpZE1vdmVPbnNjcmVlbi93aWxsTW92ZU9mZnNjcmVlbgorICAgICAg
ICAgICAgICBtX2lzT25zY3JlZW4gJiBtX3Zpc2liaWxpdHlTdGF0ZSAtPiBtX2lzVmlzaWJsZSAm
IG1faXNQcmVyZW5kZXIKKyAgICAgICAgICAgICAgc2V0VmlzaWJpbGl0eVN0YXRlIC0+IHNldElz
VmlzaWJsZSAmIHNldElzUHJlcmVuZGVyLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6aXNWaXNp
YmxlKToKKyAgICAgICAgICAgIC0gaXNPbnNjcmVlbiAtPiBpc1Zpc2libGUuCisKIDIwMTMtMTIt
MjcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIEFub3RoZXIg
YXR0ZW1wdCB0byBmaXggdGhlIFdpbmRvd3MgYnVpbGQgYWZ0ZXIgPGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzE2MTEwNj4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCShyZXZpc2lv
biAxNjExMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5
KQpAQCAtOTYyLDE3ICs5NjIsMTcgQEAgX19aTjdXZWJDb3JlNFBhZ2UxMGZpbmRTdHJpbmdFUktO
M1dURjZTdAogX19aTjdXZWJDb3JlNFBhZ2UxMVBhZ2VDbGllbnRzQzFFdgogX19aTjdXZWJDb3Jl
NFBhZ2UxMVBhZ2VDbGllbnRzRDFFdgogX19aTjdXZWJDb3JlNFBhZ2UxMnNldEdyb3VwTmFtZUVS
S04zV1RGNlN0cmluZ0UKK19fWk43V2ViQ29yZTRQYWdlMTJzZXRJc1Zpc2libGVFYmIKIF9fWk43
V2ViQ29yZTRQYWdlMTJzZXRUaHJvdHRsZWRFYgogX19aTjdXZWJDb3JlNFBhZ2UxM3JhbmdlT2ZT
dHJpbmdFUktOM1dURjZTdHJpbmdFUE5TXzVSYW5nZUVqCiBfX1pON1dlYkNvcmU0UGFnZTEzc2V0
SXNJbldpbmRvd0ViCiBfX1pON1dlYkNvcmU0UGFnZTEzc2V0UGFnaW5hdGlvbkVSS05TXzEwUGFn
aW5hdGlvbkUKK19fWk43V2ViQ29yZTRQYWdlMTRzZXRJc1ByZXJlbmRlckV2CiBfX1pON1dlYkNv
cmU0UGFnZTE0c2V0TWVkaWFWb2x1bWVFZgogX19aTjdXZWJDb3JlNFBhZ2UxNWFkZFNjaGVkdWxl
UGFpckVOM1dURjEwUGFzc1JlZlB0cklOUzFfMTJTY2hlZHVsZVBhaXJFRUUKLV9fWk43V2ViQ29y
ZTRQYWdlMTVkaWRNb3ZlT25zY3JlZW5FdgogX19aTjdXZWJDb3JlNFBhZ2UxNmNvdW50RmluZE1h
dGNoZXNFUktOM1dURjZTdHJpbmdFamoKIF9fWk43V2ViQ29yZTRQYWdlMTZzZXRDYW5TdGFydE1l
ZGlhRWIKIF9fWk43V2ViQ29yZTRQYWdlMTZzZXREZWZlcnNMb2FkaW5nRWIKLV9fWk43V2ViQ29y
ZTRQYWdlMTd3aWxsTW92ZU9mZnNjcmVlbkV2CiBfX1pON1dlYkNvcmU0UGFnZTE4cmVtb3ZlU2No
ZWR1bGVQYWlyRU4zV1RGMTBQYXNzUmVmUHRySU5TMV8xMlNjaGVkdWxlUGFpckVFRQogX19aTjdX
ZWJDb3JlNFBhZ2UxOHNldFBhZ2VTY2FsZUZhY3RvckVmUktOU184SW50UG9pbnRFCiBfX1pON1dl
YkNvcmU0UGFnZTE5YWRkRm9vdGVyV2l0aEhlaWdodEVpCkBAIC0yNzcwLDEwICsyNzcwLDYgQEAg
X19aTjdXZWJDb3JlMTJOb3RpZmljYXRpb24xNnBlcm1pc3Npb25TdAogX19aTjdXZWJDb3JlNUZy
YW1lMjZzZW5kT3JpZW50YXRpb25DaGFuZ2VFdmVudEVpCiAjZW5kaWYKIAotI2lmIEVOQUJMRShQ
QUdFX1ZJU0lCSUxJVFlfQVBJKSB8fCBFTkFCTEUoSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9U
VExJTkcpCi1fX1pON1dlYkNvcmU0UGFnZTE4c2V0VmlzaWJpbGl0eVN0YXRlRU5TXzE5UGFnZVZp
c2liaWxpdHlTdGF0ZUViCi0jZW5kaWYKLQogI2lmIFVTRShQTFVHSU5fSE9TVF9QUk9DRVNTKQog
X19aTjNKU0MxM1J1bnRpbWVNZXRob2QxMWdldENhbGxEYXRhRVBOU182SlNDZWxsRVJOU184Q2Fs
bERhdGFFCiBfX1pOM0pTQzEzUnVudGltZU1ldGhvZDE0ZmluaXNoQ3JlYXRpb25FUk5TXzJWTUVS
S04zV1RGNlN0cmluZ0UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHJl
dmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjgzNiw3ICsyODM2LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmZh
a2VNb3VzZU1vdmVFdmVudFRpbQogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSB8fCAhbV9mcmFtZS5wYWdlKCktPmlzT25zY3JlZW4oKSB8
fCAhbV9mcmFtZS5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCkpCisgICAgaWYg
KCFtX2ZyYW1lLnBhZ2UoKSB8fCAhbV9mcmFtZS5wYWdlKCktPmlzVmlzaWJsZSgpIHx8ICFtX2Zy
YW1lLnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgYm9vbCBzaGlmdEtleTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJ
KHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTY5NSw3ICsxNjk1LDcgQEAgYm9vbCBGcmFtZVZpZXc6OmlzSGFu
ZGxpbmdXaGVlbEV2ZW50KCkgYwogYm9vbCBGcmFtZVZpZXc6OnNob3VsZFNldEN1cnNvcigpIGNv
bnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpOwotICAgIHJldHVybiBwYWdl
ICYmIHBhZ2UtPmlzT25zY3JlZW4oKSAmJiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2
ZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmlzVmlzaWJsZSgpICYmIHBhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLmlzQWN0aXZlKCk7CiB9CiAKIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250
ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiBy
ZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
Y3BwCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNzEsMTEgKzE3MSw5IEBAIFBhZ2U6OlBhZ2UoUGFnZUNsaWVudHMm
IHBhZ2VDbGllbnRzKQogICAgICwgbV9taW5pbXVtVGltZXJJbnRlcnZhbChTZXR0aW5nczo6ZGVm
YXVsdE1pbkRPTVRpbWVySW50ZXJ2YWwoKSkKICAgICAsIG1fdGltZXJBbGlnbm1lbnRJbnRlcnZh
bChTZXR0aW5nczo6ZGVmYXVsdERPTVRpbWVyQWxpZ25tZW50SW50ZXJ2YWwoKSkKICAgICAsIG1f
aXNFZGl0YWJsZShmYWxzZSkKLSAgICAsIG1faXNPbnNjcmVlbih0cnVlKQogICAgICwgbV9pc0lu
V2luZG93KHRydWUpCi0jaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCi0gICAgLCBtX3Zp
c2liaWxpdHlTdGF0ZShQYWdlVmlzaWJpbGl0eVN0YXRlVmlzaWJsZSkKLSNlbmRpZgorICAgICwg
bV9pc1Zpc2libGUodHJ1ZSkKKyAgICAsIG1faXNQcmVyZW5kZXIoZmFsc2UpCiAgICAgLCBtX3Jl
cXVlc3RlZExheW91dE1pbGVzdG9uZXMoMCkKICAgICAsIG1faGVhZGVySGVpZ2h0KDApCiAgICAg
LCBtX2Zvb3RlckhlaWdodCgwKQpAQCAtODc0LDMwICs4NzIsNiBAQCB1bnNpZ25lZCBQYWdlOjpw
YWdlQ291bnQoKSBjb25zdAogICAgIHJldHVybiBjb250ZW50UmVuZGVyZXIgPyBjb250ZW50UmVu
ZGVyZXItPmNvbHVtbkNvdW50KGNvbnRlbnRSZW5kZXJlci0+Y29sdW1uSW5mbygpKSA6IDA7CiB9
CiAKLXZvaWQgUGFnZTo6ZGlkTW92ZU9uc2NyZWVuKCkKLXsKLSAgICBtX2lzT25zY3JlZW4gPSB0
cnVlOwotCi0gICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFt
ZSA9IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKLSAgICAgICAgaWYgKEZyYW1lVmll
dyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKSkKLSAgICAgICAgICAgIGZyYW1lVmlldy0+ZGlk
TW92ZU9uc2NyZWVuKCk7Ci0gICAgfQotICAgIAotICAgIHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9u
cygpOwotfQotCi12b2lkIFBhZ2U6OndpbGxNb3ZlT2Zmc2NyZWVuKCkKLXsKLSAgICBtX2lzT25z
Y3JlZW4gPSBmYWxzZTsKLQotICAgIGZvciAoRnJhbWUqIGZyYW1lID0gJm1haW5GcmFtZSgpOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7Ci0gICAgICAgIGlm
IChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52aWV3KCkpCi0gICAgICAgICAgICBmcmFt
ZVZpZXctPndpbGxNb3ZlT2Zmc2NyZWVuKCk7Ci0gICAgfQotICAgIAotICAgIHN1c3BlbmRTY3Jp
cHRlZEFuaW1hdGlvbnMoKTsKLX0KLQogdm9pZCBQYWdlOjpzZXRJc0luV2luZG93KGJvb2wgaXNJ
bldpbmRvdykKIHsKICAgICBpZiAobV9pc0luV2luZG93ID09IGlzSW5XaW5kb3cpCkBAIC0xMjM1
LDIxICsxMjA5LDM1IEBAIHZvaWQgUGFnZTo6cmVzdW1lQW5pbWF0aW5nSW1hZ2VzKCkKICAgICAg
ICAgQ2FjaGVkSW1hZ2U6OnJlc3VtZUFuaW1hdGluZ0ltYWdlc0ZvckxvYWRlcihmcmFtZS0+ZG9j
dW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7CiB9CiAKLSNpZiBFTkFCTEUoUEFHRV9W
SVNJQklMSVRZX0FQSSkgfHwgRU5BQkxFKEhJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5H
KQotdm9pZCBQYWdlOjpzZXRWaXNpYmlsaXR5U3RhdGUoUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNp
YmlsaXR5U3RhdGUsIGJvb2wgaXNJbml0aWFsU3RhdGUpCit2b2lkIFBhZ2U6OnNldElzVmlzaWJs
ZShib29sIGlzVmlzaWJsZSwgYm9vbCBpc0luaXRpYWxTdGF0ZSkKIHsKLSNpZiAhRU5BQkxFKFBB
R0VfVklTSUJJTElUWV9BUEkpCi0gICAgVU5VU0VEX1BBUkFNKGlzSW5pdGlhbFN0YXRlKTsKLSNl
bHNlCiAgICAgLy8gRklYTUU6IFRoZSB2aXNpYmlsaXR5IHN0YXRlIHNob3VsZCBiZSBzdG9yZWQg
b24gdGhlIHRvcC1sZXZlbCBkb2N1bWVudC4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE2NzY5CiAKLSAgICBpZiAobV92aXNpYmlsaXR5U3RhdGUgPT0g
dmlzaWJpbGl0eVN0YXRlKQorICAgIGlmIChtX2lzVmlzaWJsZSA9PSBpc1Zpc2libGUpCiAgICAg
ICAgIHJldHVybjsKLSAgICBpZiAobV92aXNpYmlsaXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlT
dGF0ZVByZXJlbmRlciAmJiB2aXNpYmlsaXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlTdGF0ZUhp
ZGRlbikKLSAgICAgICAgcmV0dXJuOwotICAgIG1fdmlzaWJpbGl0eVN0YXRlID0gdmlzaWJpbGl0
eVN0YXRlOworICAgIG1faXNWaXNpYmxlID0gaXNWaXNpYmxlOworICAgIGlmIChpc1Zpc2libGUp
CisgICAgICAgIG1faXNQcmVyZW5kZXIgPSBmYWxzZTsKKworICAgIGlmIChpc1Zpc2libGUpIHsK
KyAgICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbWFpbkZyYW1lKCk7IGZyYW1lOyBmcmFtZSA9
IGZyYW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KCkpIHsKKyAgICAgICAgICAgIGlmIChGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52aWV3KCkpCisgICAgICAgICAgICAgICAgZnJhbWVWaWV3
LT5kaWRNb3ZlT25zY3JlZW4oKTsKKyAgICAgICAgfQorICAgICAgICByZXN1bWVTY3JpcHRlZEFu
aW1hdGlvbnMoKTsKIAorICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gbWFpbkZyYW1lKCku
dmlldygpKQorICAgICAgICAgICAgdmlldy0+c2hvdygpOworCisgICAgICAgIHVudGhyb3R0bGVU
aW1lcnMoKTsKKyAgICAgICAgaWYgKG1fc2V0dGluZ3MtPmhpZGRlblBhZ2VDU1NBbmltYXRpb25T
dXNwZW5zaW9uRW5hYmxlZCgpKQorICAgICAgICAgICAgbWFpbkZyYW1lKCkuYW5pbWF0aW9uKCku
cmVzdW1lQW5pbWF0aW9ucygpOworCisgICAgICAgIHJlc3VtZUFuaW1hdGluZ0ltYWdlcygpOwor
ICAgIH0KKworI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKQogICAgIGlmICghaXNJbml0
aWFsU3RhdGUpIHsKICAgICAgICAgVmVjdG9yPFJlZjxEb2N1bWVudD4+IGRvY3VtZW50czsKICAg
ICAgICAgZm9yIChGcmFtZSogZnJhbWUgPSBtX21haW5GcmFtZS5nZXQoKTsgZnJhbWU7IGZyYW1l
ID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5leHQoKSkKQEAgLTEyNTgsMjYgKzEyNDYsNDAgQEAg
dm9pZCBQYWdlOjpzZXRWaXNpYmlsaXR5U3RhdGUoUGFnZVZpc2liaQogICAgICAgICBmb3IgKHNp
emVfdCBpID0gMCwgc2l6ZSA9IGRvY3VtZW50cy5zaXplKCk7IGkgPCBzaXplOyArK2kpCiAgICAg
ICAgICAgICBkb2N1bWVudHNbaV0tPnZpc2liaWxpdHlTdGF0ZUNoYW5nZWQoKTsKICAgICB9Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShpc0luaXRpYWxTdGF0ZSk7CiAjZW5kaWYKIAotICAgIGlm
ICh2aXNpYmlsaXR5U3RhdGUgPT0gV2ViQ29yZTo6UGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbikg
eworICAgIGlmICghaXNWaXNpYmxlKSB7CiAgICAgICAgIGlmIChtX3BhZ2VUaHJvdHRsZXItPnNo
b3VsZFRocm90dGxlVGltZXJzKCkpCiAgICAgICAgICAgICB0aHJvdHRsZVRpbWVycygpOwogICAg
ICAgICBpZiAobV9zZXR0aW5ncy0+aGlkZGVuUGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFi
bGVkKCkpCiAgICAgICAgICAgICBtYWluRnJhbWUoKS5hbmltYXRpb24oKS5zdXNwZW5kQW5pbWF0
aW9ucygpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHVudGhyb3R0bGVUaW1lcnMoKTsKLSAgICAg
ICAgaWYgKG1fc2V0dGluZ3MtPmhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxl
ZCgpKQotICAgICAgICAgICAgbWFpbkZyYW1lKCkuYW5pbWF0aW9uKCkucmVzdW1lQW5pbWF0aW9u
cygpOwotICAgICAgICByZXN1bWVBbmltYXRpbmdJbWFnZXMoKTsKKworICAgICAgICBmb3IgKEZy
YW1lKiBmcmFtZSA9ICZtYWluRnJhbWUoKTsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50
cmF2ZXJzZU5leHQoKSkgeworICAgICAgICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
ZnJhbWUtPnZpZXcoKSkKKyAgICAgICAgICAgICAgICBmcmFtZVZpZXctPndpbGxNb3ZlT2Zmc2Ny
ZWVuKCk7CisgICAgICAgIH0KKyAgICAgICAgc3VzcGVuZFNjcmlwdGVkQW5pbWF0aW9ucygpOwor
CisgICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtYWluRnJhbWUoKS52aWV3KCkpCisgICAg
ICAgICAgICB2aWV3LT5oaWRlKCk7CiAgICAgfQogfQotI2VuZGlmIC8vIEVOQUJMRShQQUdFX1ZJ
U0lCSUxJVFlfQVBJKSB8fCBFTkFCTEUoSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcp
CisKK3ZvaWQgUGFnZTo6c2V0SXNQcmVyZW5kZXIoKQoreworICAgIG1faXNQcmVyZW5kZXIgPSB0
cnVlOworfQogCiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCiBQYWdlVmlzaWJpbGl0
eVN0YXRlIFBhZ2U6OnZpc2liaWxpdHlTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmlz
aWJpbGl0eVN0YXRlOworICAgIGlmIChtX2lzVmlzaWJsZSkKKyAgICAgICAgcmV0dXJuIFBhZ2VW
aXNpYmlsaXR5U3RhdGVWaXNpYmxlOworICAgIGlmIChtX2lzUHJlcmVuZGVyKQorICAgICAgICBy
ZXR1cm4gUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlcjsKKyAgICByZXR1cm4gUGFnZVZpc2li
aWxpdHlTdGF0ZUhpZGRlbjsKIH0KICNlbmRpZgogCkBAIC0xNTM1LDcgKzE1MzcsNyBAQCB2b2lk
IFBhZ2U6OmhpZGRlblBhZ2VET01UaW1lclRocm90dGxpbmdTCiAjaWYgKEVOQUJMRV9QQUdFX1ZJ
U0lCSUxJVFlfQVBJKQogdm9pZCBQYWdlOjpoaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lv
blN0YXRlQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKG1fdmlzaWJpbGl0eVN0YXRlID09IFdlYkNvcmU6
OlBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW4pIHsKKyAgICBpZiAoIW1faXNWaXNpYmxlKSB7CiAg
ICAgICAgIGlmIChtX3NldHRpbmdzLT5oaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVu
YWJsZWQoKSkKICAgICAgICAgICAgIG1haW5GcmFtZSgpLmFuaW1hdGlvbigpLnN1c3BlbmRBbmlt
YXRpb25zKCk7CiAgICAgICAgIGVsc2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCShyZXZpc2lvbiAxNjEx
MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMjk0
LDkgKzI5NCw5IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBwYWdlQ291bnQoKSBjb25zdDsKIAog
ICAgIC8vIE5vdGlmaWNhdGlvbnMgd2hlbiB0aGUgUGFnZSBzdGFydHMgYW5kIHN0b3BzIGJlaW5n
IHByZXNlbnRlZCB2aWEgYSBuYXRpdmUgd2luZG93LgotICAgIHZvaWQgZGlkTW92ZU9uc2NyZWVu
KCk7Ci0gICAgdm9pZCB3aWxsTW92ZU9mZnNjcmVlbigpOwotICAgIGJvb2wgaXNPbnNjcmVlbigp
IGNvbnN0IHsgcmV0dXJuIG1faXNPbnNjcmVlbjsgfQorICAgIHZvaWQgc2V0SXNWaXNpYmxlKGJv
b2wgaXNWaXNpYmxlLCBib29sIGlzSW5pdGlhbCk7CisgICAgdm9pZCBzZXRJc1ByZXJlbmRlcigp
OworICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc1Zpc2libGU7IH0KIAog
ICAgIC8vIE5vdGlmaWNhdGlvbiB0aGF0IHRoaXMgUGFnZSB3YXMgbW92ZWQgaW50byBvciBvdXQg
b2YgYSBuYXRpdmUgd2luZG93LgogICAgIHZvaWQgc2V0SXNJbldpbmRvdyhib29sKTsKQEAgLTM1
NSw5ICszNTUsNiBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFBBR0VfVklTSUJJTElUWV9BUEkpCiAg
ICAgUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKICNlbmRpZgot
I2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlfQVBJKSB8fCBFTkFCTEUoSElEREVOX1BBR0VfRE9N
X1RJTUVSX1RIUk9UVExJTkcpCi0gICAgdm9pZCBzZXRWaXNpYmlsaXR5U3RhdGUoUGFnZVZpc2li
aWxpdHlTdGF0ZSwgYm9vbCk7Ci0jZW5kaWYKICAgICB2b2lkIHJlc3VtZUFuaW1hdGluZ0ltYWdl
cygpOwogCiAgICAgdm9pZCBhZGRMYXlvdXRNaWxlc3RvbmVzKExheW91dE1pbGVzdG9uZXMpOwpA
QCAtNTI1LDEyICs1MjIsOSBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX3RpbWVyQWxpZ25tZW50
SW50ZXJ2YWw7CiAKICAgICBib29sIG1faXNFZGl0YWJsZTsKLSAgICBib29sIG1faXNPbnNjcmVl
bjsKICAgICBib29sIG1faXNJbldpbmRvdzsKLQotI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJVFlf
QVBJKQotICAgIFBhZ2VWaXNpYmlsaXR5U3RhdGUgbV92aXNpYmlsaXR5U3RhdGU7Ci0jZW5kaWYK
KyAgICBib29sIG1faXNWaXNpYmxlOworICAgIGJvb2wgbV9pc1ByZXJlbmRlcjsKIAogICAgIExh
eW91dE1pbGVzdG9uZXMgbV9yZXF1ZXN0ZWRMYXlvdXRNaWxlc3RvbmVzOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCShyZXZpc2lvbiAxNjExMDgpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMy0xMi0yNyAgR2F2aW4gQmFycmFjbG91Z2gg
IDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgZGlkTW92ZU9uc2NyZWVu
IC8gcGFnZSB2aXNpYmlsaXR5IHRvIGlzVmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2MjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIG9uc2NyZWVuIHN0YXRlIG1vc3QgY2xvc2VseSB0
cmFja3MgdmlldyB2aXNpYmlsaXR5ICh0aG91Z2ggY3VycmVudGx5CisgICAgICAgIGFsc28gdHJh
Y2tzIGEgbWl4IG9mIGluLXdpbmRvdyBzdGF0ZSkuIE1ha2UgbW9yZSBjb25zaXN0ZW50LCBzaW1w
bGlmeSwKKyAgICAgICAgYW5kIG1vdmUgYWxsIGFuaW1hdGlvbiBzdXNwZW5zaW9uIGxvZ2ljIHRv
IFBhZ2UsIHNvIGl0IGNhbiBiZSBjb250cm9sbGVkCisgICAgICAgIGJ5IHRoZSBQYWdlVGhyb3R0
bGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
c2V0Vmlld0lzVmlzaWJsZSk6CisgICAgICAgICAgICAtIHVwZGF0ZVZpc2liaWxpdHlTdGF0ZSAt
PiBzZXRJc1Zpc2libGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldElzSW5XaW5kb3cp
OgorICAgICAgICAgICAgLSByZW1vdmUgcmVkdW5kYW50IHdpbGxNb3ZlT2Zmc2NyZWVuL2RpZE1v
dmVPbnNjcmVlbiBjYWxscyAtIHRoaXMgaXMgaGFuZGxlZAorICAgICAgICAgICAgICBieSBzZXRJ
c1Zpc2libGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldE1heVN0YXJ0TWVkaWFXaGVu
SW5XaW5kb3cpOgorICAgICAgICAgICAgLSBpc09uc2NyZWVuIC0+IGlzSW5XaW5kb3cuIFdlIHN0
YXJ0IG1lZGlhIHdoZW4gdGhlIHZpZXcgaXMgaW4gYSB3aW5kb3csIG5vdAorICAgICAgICAgICAg
ICB3aGVuIHRoZSB2aWV3IGlzIHZpc2libGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNl
dFZpc2liaWxpdHlTdGF0ZVByZXJlbmRlcik6CisgICAgICAgICAgICAtIHNldFZpc2liaWxpdHlT
dGF0ZSAtPiBzZXRJc1ByZXJlbmRlci4KKwogMjAxMy0xMi0yNyAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gVXBzdHJlYW0gV2ViQ29yZS9wYWdlIGNo
YW5nZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDI1LDcgKzQyNSw3IEBAIFdlYlBh
Z2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCAKICAgICAgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuZXZlbnREaXNwYXRjaGVyKCkuYWRkU2Nyb2xsaW5nVHJlZUZvclBhZ2UodGhpcyk7
CiAjZW5kaWYKIAotICAgIHVwZGF0ZVZpc2liaWxpdHlTdGF0ZSh0cnVlKTsKKyAgICBtX3BhZ2Ut
PnNldElzVmlzaWJsZShtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlLCB0cnVlKTsK
IH0KIAogV2ViUGFnZTo6fldlYlBhZ2UoKQpAQCAtMTkyMiwyMCArMTkyMiwxMiBAQCB2b2lkIFdl
YlBhZ2U6OnNldEFjdGl2ZShib29sIGlzQWN0aXZlKQogCiB2b2lkIFdlYlBhZ2U6OnNldFZpZXdJ
c1Zpc2libGUoYm9vbCBpc1Zpc2libGUpCiB7Ci0gICAgaWYgKCFpc1Zpc2libGUpIHsKLSAgICAg
ICAgbV9kcmF3aW5nQXJlYS0+c3VzcGVuZFBhaW50aW5nKCk7Ci0gICAgICAgIG1fcGFnZS0+c3Vz
cGVuZFNjcmlwdGVkQW5pbWF0aW9ucygpOwotICAgIH0gZWxzZSB7CisgICAgaWYgKGlzVmlzaWJs
ZSkKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+cmVzdW1lUGFpbnRpbmcoKTsKLSAgICAgICAgLy8g
RklYTUU6IHRoaXMgc2VlbXMgcmVkdW5kYW50OyBmb3IgdGhlIHZpZXcgdG8gYmUgdmlzaWJsZSB0
aGUgd2luZG93IG11c3QgYmUgdmlzaWJsZSB0b28hCi0gICAgICAgIC8vIHJlZmFjdG9yaW5nIGZv
ciBub3csIHdpbGwgY2hhbmdlIHRoZSBsb2dpYyBsYXRlci4KLSAgICAgICAgaWYgKG1fd2luZG93
SXNWaXNpYmxlKSB7Ci0gICAgICAgICAgICBtX3BhZ2UtPnJlc3VtZVNjcmlwdGVkQW5pbWF0aW9u
cygpOwotICAgICAgICAgICAgbV9wYWdlLT5yZXN1bWVBbmltYXRpbmdJbWFnZXMoKTsKLSAgICAg
ICAgfQotICAgIH0KKyAgICBlbHNlCisgICAgICAgIG1fZHJhd2luZ0FyZWEtPnN1c3BlbmRQYWlu
dGluZygpOwogCi0gICAgdXBkYXRlVmlzaWJpbGl0eVN0YXRlKCk7CisgICAgbV9wYWdlLT5zZXRJ
c1Zpc2libGUobV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZSwgZmFsc2UpOwogfQog
CiB2b2lkIFdlYlBhZ2U6OnNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkK
QEAgLTIwNTksNyArMjA1MSw2IEBAIHZvaWQgV2ViUGFnZTo6c2V0SXNJbldpbmRvdyhib29sIGlz
SW5XaW4KICAgICBpZiAoIWlzSW5XaW5kb3cpIHsKICAgICAgICAgbV9zZXRDYW5TdGFydE1lZGlh
VGltZXIuc3RvcCgpOwogICAgICAgICBtX3BhZ2UtPnNldENhblN0YXJ0TWVkaWEoZmFsc2UpOwot
ICAgICAgICBtX3BhZ2UtPndpbGxNb3ZlT2Zmc2NyZWVuKCk7CiAgICAgICAgIAogICAgICAgICBp
ZiAocGFnZVdhc0luV2luZG93KQogICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucGFn
ZVdpbGxMZWF2ZVdpbmRvdyhtX3BhZ2VJRCk7CkBAIC0yMDcwLDggKzIwNjEsNiBAQCB2b2lkIFdl
YlBhZ2U6OnNldElzSW5XaW5kb3coYm9vbCBpc0luV2luCiAgICAgICAgIGlmIChtX21heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3cpCiAgICAgICAgICAgICBtX3NldENhblN0YXJ0TWVkaWFUaW1lci5z
dGFydE9uZVNob3QoMCk7CiAKLSAgICAgICAgbV9wYWdlLT5kaWRNb3ZlT25zY3JlZW4oKTsKLSAg
ICAgICAgCiAgICAgICAgIGlmICghcGFnZVdhc0luV2luZG93KQogICAgICAgICAgICAgV2ViUHJv
Y2Vzczo6c2hhcmVkKCkucGFnZURpZEVudGVyV2luZG93KG1fcGFnZUlEKTsKICAgICB9CkBAIC0z
NTM4LDcgKzM1MjcsNyBAQCB2b2lkIFdlYlBhZ2U6OnNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5k
CiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IG1h
eVN0YXJ0TWVkaWE7Ci0gICAgaWYgKG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyAmJiBtX3Bh
Z2UtPmlzT25zY3JlZW4oKSkKKyAgICBpZiAobV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93ICYm
IG1fcGFnZS0+aXNJbldpbmRvdygpKQogICAgICAgICBtX3NldENhblN0YXJ0TWVkaWFUaW1lci5z
dGFydE9uZVNob3QoMCk7CiB9CiAKQEAgLTM3MDcsNDkgKzM2OTYsMTAgQEAgRnJhbWVWaWV3KiBX
ZWJQYWdlOjptYWluRnJhbWVWaWV3KCkgY29ucwogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdl
YlBhZ2U6OnVwZGF0ZVZpc2liaWxpdHlTdGF0ZShib29sIGlzSW5pdGlhbFN0YXRlKQotewotICAg
IGJvb2wgaXNWaXNpYmxlID0gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZTsKLSAg
ICBpZiAoIW1fcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0jaWYgRU5BQkxFKFBBR0VfVklTSUJJ
TElUWV9BUEkpCi0KLSAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLnZp
ZXcoKTsKLQotICAgIGlmIChpc1Zpc2libGUpIHsKLSAgICAgICAgbV9wYWdlLT5kaWRNb3ZlT25z
Y3JlZW4oKTsKLSAgICAgICAgaWYgKHZpZXcpCi0gICAgICAgICAgICB2aWV3LT5zaG93KCk7Ci0g
ICAgfQotCi0gICAgUGFnZVZpc2liaWxpdHlTdGF0ZSBzdGF0ZSA9IGlzVmlzaWJsZSA/IFBhZ2VW
aXNpYmlsaXR5U3RhdGVWaXNpYmxlIDogUGFnZVZpc2liaWxpdHlTdGF0ZUhpZGRlbjsKLSAgICBt
X3BhZ2UtPnNldFZpc2liaWxpdHlTdGF0ZShzdGF0ZSwgaXNJbml0aWFsU3RhdGUpOwotCi0gICAg
aWYgKCFpc1Zpc2libGUpIHsKLSAgICAgICAgbV9wYWdlLT53aWxsTW92ZU9mZnNjcmVlbigpOwot
ICAgICAgICBpZiAodmlldykKLSAgICAgICAgICAgIHZpZXctPmhpZGUoKTsKLSAgICB9Ci0KLSNl
bGlmIEVOQUJMRShISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykKLQotICAgIFBhZ2VW
aXNpYmlsaXR5U3RhdGUgc3RhdGUgPSBpc1Zpc2libGUgPyBQYWdlVmlzaWJpbGl0eVN0YXRlVmlz
aWJsZSA6IFBhZ2VWaXNpYmlsaXR5U3RhdGVIaWRkZW47Ci0gICAgbV9wYWdlLT5zZXRWaXNpYmls
aXR5U3RhdGUoc3RhdGUsIGlzSW5pdGlhbFN0YXRlKTsKLQotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oaXNWaXNpYmxlKTsKLSAgICBVTlVTRURfUEFSQU0oaXNJbml0aWFsU3RhdGUpOwotI2VuZGlm
Ci19Ci0KIHZvaWQgV2ViUGFnZTo6c2V0VmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyKCkKIHsKLSNp
ZiBFTkFCTEUoUEFHRV9WSVNJQklMSVRZX0FQSSkgfHwgRU5BQkxFKEhJRERFTl9QQUdFX0RPTV9U
SU1FUl9USFJPVFRMSU5HKQotICAgIGlmICghbV9wYWdlKQotICAgICAgICByZXR1cm47Ci0gICAg
bV9wYWdlLT5zZXRWaXNpYmlsaXR5U3RhdGUoUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlciwg
dHJ1ZSk7Ci0jZW5kaWYKKyAgICBpZiAobV9wYWdlKQorICAgICAgICBtX3BhZ2UtPnNldElzUHJl
cmVuZGVyKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6c2V0VGhyb3R0bGVkKGJvb2wgaXNUaHJvdHRs
ZWQpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTEwOCkK
KysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxOSBAQAorMjAxMy0xMi0yNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3Vn
aEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgZGlkTW92ZU9uc2NyZWVuIC8gcGFnZSB2aXNp
YmlsaXR5IHRvIGlzVmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI2MjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhlIG9uc2NyZWVuIHN0YXRlIG1vc3QgY2xvc2VseSB0cmFja3MgdmlldyB2
aXNpYmlsaXR5ICh0aG91Z2ggY3VycmVudGx5CisgICAgICAgIGFsc28gdHJhY2tzIGEgbWl4IG9m
IGluLXdpbmRvdyBzdGF0ZSkuIE1ha2UgbW9yZSBjb25zaXN0ZW50LCBzaW1wbGlmeSwKKyAgICAg
ICAgYW5kIG1vdmUgYWxsIGFuaW1hdGlvbiBzdXNwZW5zaW9uIGxvZ2ljIHRvIFBhZ2UsIHNvIGl0
IGNhbiBiZSBjb250cm9sbGVkCisgICAgICAgIGJ5IHRoZSBQYWdlVGhyb3R0bGVyLgorCisgICAg
ICAgICogQXBpL1dlYlBhZ2UuY3BwOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpXZWJQ
YWdlUHJpdmF0ZTo6c2V0UGFnZVZpc2liaWxpdHlTdGF0ZSk6CisgICAgICAgICAgICAtIHNldFZp
c2liaWxpdHlTdGF0ZSAtPiBzZXRJc1Zpc2libGUuCisKIDIwMTMtMTItMTYgIFBldGVyIFN6YW5r
YSAgPGg4NjgwNjRAc3R1ZC51LXN6ZWdlZC5odT4KIAogICAgICAgICBEZWxldGUgUlZDVCByZWxh
dGVkIGNvZGUgcGFydHMuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBh
Z2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDE2MTEwNykKKysrIFNvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkv
V2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxMTgsNyArMzExOCw4IEBAIHZvaWQgV2Vi
UGFnZVByaXZhdGU6OnNldFBhZ2VWaXNpYmlsaXR5U3QKIAogICAgICAgICBzdGF0aWMgYm9vbCBz
X2luaXRpYWxWaXNpYmlsaXR5U3RhdGUgPSB0cnVlOwogCi0gICAgICAgIG1fcGFnZS0+c2V0Vmlz
aWJpbGl0eVN0YXRlKG1fdmlzaWJsZSAmJiBtX2FjdGl2YXRpb25TdGF0ZSA9PSBBY3RpdmF0aW9u
QWN0aXZlID8gUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUgOiBQYWdlVmlzaWJpbGl0eVN0YXRl
SGlkZGVuLCBzX2luaXRpYWxWaXNpYmlsaXR5U3RhdGUpOworICAgICAgICBtX3BhZ2UtPnNldElz
VmlzaWJsZShtX3Zpc2libGUgJiYgbV9hY3RpdmF0aW9uU3RhdGUgPT0gQWN0aXZhdGlvbkFjdGl2
ZSwgc19pbml0aWFsVmlzaWJpbGl0eVN0YXRlKTsKKwogICAgICAgICBzX2luaXRpYWxWaXNpYmls
aXR5U3RhdGUgPSBmYWxzZTsKICAgICB9CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCShyZXZpc2lv
biAxNjExMDgpCisrKyBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxOSBAQAorMjAxMy0xMi0yNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNs
b3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWVyZ2UgZGlkTW92ZU9uc2NyZWVuIC8gcGFnZSB2
aXNpYmlsaXR5IHRvIGlzVmlzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTI2MjY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIG9uc2NyZWVuIHN0YXRlIG1vc3QgY2xvc2VseSB0cmFja3Mgdmll
dyB2aXNpYmlsaXR5ICh0aG91Z2ggY3VycmVudGx5CisgICAgICAgIGFsc28gdHJhY2tzIGEgbWl4
IG9mIGluLXdpbmRvdyBzdGF0ZSkuIE1ha2UgbW9yZSBjb25zaXN0ZW50LCBzaW1wbGlmeSwKKyAg
ICAgICAgYW5kIG1vdmUgYWxsIGFuaW1hdGlvbiBzdXNwZW5zaW9uIGxvZ2ljIHRvIFBhZ2UsIHNv
IGl0IGNhbiBiZSBjb250cm9sbGVkCisgICAgICAgIGJ5IHRoZSBQYWdlVGhyb3R0bGVyLgorCisg
ICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKGV3a192aWV3X3Zpc2liaWxpdHlf
c3RhdGVfc2V0KToKKyAgICAgICAgICAgIC0gc2V0VmlzaWJpbGl0eVN0YXRlIC0+IHNldElzVmlz
aWJsZS9zZXRJc1ByZXJlbmRlci4KKwogMjAxMy0xMi0yMyAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNo
b2lAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggYWZ0ZXIgcjE2
MTAzMwpJbmRleDogU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCShyZXZpc2lvbiAxNjExMDcp
CisrKyBTb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MjU0LDcgKzQyNTQsOSBAQCBFaW5hX0Jvb2wgZXdrX3ZpZXdfdmlzaWJpbGl0eV9zdGF0ZV9z
ZXQoCiAgICAgaWYgKHBhZ2VWaXNpYmlsaXR5U3RhdGUgPT0gRVdLX1BBR0VfVklTSUJJTElUWV9T
VEFURV9VTkxPQURFRCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcHJpdi0+cGFnZS0+
c2V0VmlzaWJpbGl0eVN0YXRlKHN0YXRpY19jYXN0PFdlYkNvcmU6OlBhZ2VWaXNpYmlsaXR5U3Rh
dGU+KHBhZ2VWaXNpYmlsaXR5U3RhdGUpLCBpbml0aWFsU3RhdGUpOworICAgIHByaXYtPnBhZ2Ut
PnNldElzVmlzaWJsZShwYWdlVmlzaWJpbGl0eVN0YXRlID09IEVXS19QQUdFX1ZJU0lCSUxJVFlf
U1RBVEVfVklTSUJMRSwgaW5pdGlhbFN0YXRlKTsKKyAgICBpZiAocGFnZVZpc2liaWxpdHlTdGF0
ZSA9PSBFV0tfUEFHRV9WSVNJQklMSVRZX1NUQVRFX1BSRVJFTkRFUikKKyAgICAgICAgcHJpdi0+
cGFnZS0+c2V0SXNQcmVyZW5kZXIoKTsKIAogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTEwOCkKKysrIFNvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEzLTEyLTI3ICBHYXZp
biBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSBk
aWRNb3ZlT25zY3JlZW4gLyBwYWdlIHZpc2liaWxpdHkgdG8gaXNWaXNpYmxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYyNjgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb25zY3JlZW4gc3RhdGUg
bW9zdCBjbG9zZWx5IHRyYWNrcyB2aWV3IHZpc2liaWxpdHkgKHRob3VnaCBjdXJyZW50bHkKKyAg
ICAgICAgYWxzbyB0cmFja3MgYSBtaXggb2YgaW4td2luZG93IHN0YXRlKS4gTWFrZSBtb3JlIGNv
bnNpc3RlbnQsIHNpbXBsaWZ5LAorICAgICAgICBhbmQgbW92ZSBhbGwgYW5pbWF0aW9uIHN1c3Bl
bnNpb24gbG9naWMgdG8gUGFnZSwgc28gaXQgY2FuIGJlIGNvbnRyb2xsZWQKKyAgICAgICAgYnkg
dGhlIFBhZ2VUaHJvdHRsZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
ZXRQYWdlVmlzaWJpbGl0eSk6CisgICAgICAgICAgICAtIHNldFZpc2liaWxpdHlTdGF0ZSAtPiBz
ZXRJc1Zpc2libGUvc2V0SXNQcmVyZW5kZXIuCisKIDIwMTMtMTItMjYgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFNtYWxsIGJ1aWxkIGZpeCBmb3Ig
dGhlIEdUSysgQ01ha2UgcG9ydApJbmRleDogU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCShyZXZp
c2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTksNiArNjk5LDggQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFBhZ2VWaQogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+c2V0VmlzaWJpbGl0eVN0YXRlKHZpc2liaWxp
dHlTdGF0ZSwgaXNJbml0aWFsU3RhdGUpOworICAgIHBhZ2UtPnNldElzVmlzaWJsZSh2aXNpYmls
aXR5U3RhdGUgPT0gUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUsIGlzSW5pdGlhbFN0YXRlKTsK
KyAgICBpZiAodmlzaWJpbGl0eVN0YXRlID09IFBhZ2VWaXNpYmlsaXR5U3RhdGVQcmVyZW5kZXIp
CisgICAgICAgIHBhZ2UtPnNldElzUHJlcmVuZGVyKCk7CiAjZW5kaWYKIH0KSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE2MTEwOCkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBACisyMDEzLTEyLTI3ICBHYXZpbiBCYXJy
YWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNZXJnZSBkaWRNb3Zl
T25zY3JlZW4gLyBwYWdlIHZpc2liaWxpdHkgdG8gaXNWaXNpYmxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjYyNjgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb25zY3JlZW4gc3RhdGUgbW9zdCBj
bG9zZWx5IHRyYWNrcyB2aWV3IHZpc2liaWxpdHkgKHRob3VnaCBjdXJyZW50bHkKKyAgICAgICAg
YWxzbyB0cmFja3MgYSBtaXggb2YgaW4td2luZG93IHN0YXRlKS4gTWFrZSBtb3JlIGNvbnNpc3Rl
bnQsIHNpbXBsaWZ5LAorICAgICAgICBhbmQgbW92ZSBhbGwgYW5pbWF0aW9uIHN1c3BlbnNpb24g
bG9naWMgdG8gUGFnZSwgc28gaXQgY2FuIGJlIGNvbnRyb2xsZWQKKyAgICAgICAgYnkgdGhlIFBh
Z2VUaHJvdHRsZXIuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgt
W1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9uV2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6
CisgICAgICAgICgtW1dlYlZpZXcgX3VwZGF0ZVZpc2liaWxpdHlTdGF0ZV0pOgorICAgICAgICAg
ICAgLSBfc2V0VmlzaWJpbGl0eVN0YXRlOmlzSW5pdGlhbFN0YXRlOiAtPiBfc2V0SXNWaXNpYmls
ZTppc0luaXRpYWxTdGF0ZTouCisgICAgICAgICgtW1dlYlZpZXcgX3NldElzVmlzaWJsZTppc0lu
aXRpYWxTdGF0ZTpdKToKKyAgICAgICAgICAgIC0gYWRkZWQuCisgICAgICAgICgtW1dlYlZpZXcg
X3NldFZpc2liaWxpdHlTdGF0ZTppc0luaXRpYWxTdGF0ZTpdKToKKyAgICAgICAgICAgIC0gc2V0
VmlzaWJpbGl0eVN0YXRlIC0+IHNldElzVmlzaWJsZS9zZXRJc1ByZXJlbmRlci4KKyAgICAgICAg
KC1bV2ViVmlldyB2aWV3V2lsbE1vdmVUb1dpbmRvdzpdKToKKyAgICAgICAgKC1bV2ViVmlldyB2
aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICAgICAtIHJlbW92ZSByZWR1bmRhbnQgY2Fs
bHMgdG8gd2lsbE1vdmVPZmZzY3JlZW4vZGlkTW92ZU9uc2NyZWVuCisgICAgICAgICAgICAgICh0
aGlzIGlzIGhhbmRsZWQgYnkgX3VwZGF0ZVZpc2liaWxpdHlTdGF0ZSkuCisKIDIwMTMtMTItMjUg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNjEwMzMgYW5kIHIxNjEwNzQuCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCShyZXZpc2lvbiAxNjExMDcpCisrKyBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyNiwyMSArNDI2LDYg
QEAgV2ViTGF5b3V0TWlsZXN0b25lcyBraXRMYXlvdXRNaWxlc3RvbmVzKAogICAgICAgICB8ICht
aWxlc3RvbmVzICYgRGlkSGl0UmVsZXZhbnRSZXBhaW50ZWRPYmplY3RzQXJlYVRocmVzaG9sZCA/
IFdlYkRpZEhpdFJlbGV2YW50UmVwYWludGVkT2JqZWN0c0FyZWFUaHJlc2hvbGQgOiAwKTsKIH0K
IAotc3RhdGljIFBhZ2VWaXNpYmlsaXR5U3RhdGUgY29yZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRl
IHZpc2liaWxpdHlTdGF0ZSkKLXsKLSAgICBzd2l0Y2ggKHZpc2liaWxpdHlTdGF0ZSkgewotICAg
IGNhc2UgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGU6Ci0gICAgICAgIHJldHVybiBQYWdl
VmlzaWJpbGl0eVN0YXRlVmlzaWJsZTsKLSAgICBjYXNlIFdlYlBhZ2VWaXNpYmlsaXR5U3RhdGVI
aWRkZW46Ci0gICAgICAgIHJldHVybiBQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuOwotICAgIGNh
c2UgV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVByZXJlbmRlcjoKLSAgICAgICAgcmV0dXJuIFBhZ2VW
aXNpYmlsaXR5U3RhdGVQcmVyZW5kZXI7Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIFBhZ2VWaXNpYmlsaXR5U3RhdGVWaXNpYmxlOwotfQotCiBzdGF0aWMg
V2ViUGFnZVZpc2liaWxpdHlTdGF0ZSBraXQoUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5
U3RhdGUpCiB7CiAgICAgc3dpdGNoICh2aXNpYmlsaXR5U3RhdGUpIHsKQEAgLTgyNiw3ICs4MTEs
NyBAQCAtICh2b2lkKV9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hCiAKICAgICBbc2Vs
ZiBfcmVnaXN0ZXJEcmFnZ2VkVHlwZXNdOwogCi0gICAgW3NlbGYgX3NldFZpc2liaWxpdHlTdGF0
ZTooW3NlbGYgX2lzVmlld1Zpc2libGVdID8gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUg
OiBXZWJQYWdlVmlzaWJpbGl0eVN0YXRlSGlkZGVuKSBpc0luaXRpYWxTdGF0ZTpZRVNdOworICAg
IFtzZWxmIF9zZXRJc1Zpc2libGU6W3NlbGYgX2lzVmlld1Zpc2libGVdIGlzSW5pdGlhbFN0YXRl
OllFU107CiAKICAgICBXZWJQcmVmZXJlbmNlcyAqcHJlZnMgPSBbc2VsZiBwcmVmZXJlbmNlc107
CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfcHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOikK
QEAgLTI3NjksNyArMjc1NCw3IEBAIC0gKEJPT0wpX2lzVmlld1Zpc2libGUKIC0gKHZvaWQpX3Vw
ZGF0ZVZpc2liaWxpdHlTdGF0ZQogewogICAgIGlmIChfcHJpdmF0ZSAmJiBfcHJpdmF0ZS0+cGFn
ZSkKLSAgICAgICAgW3NlbGYgX3NldFZpc2liaWxpdHlTdGF0ZTooW3NlbGYgX2lzVmlld1Zpc2li
bGVdID8gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZpc2libGUgOiBXZWJQYWdlVmlzaWJpbGl0eVN0
YXRlSGlkZGVuKSBpc0luaXRpYWxTdGF0ZTpOT107CisgICAgICAgIFtzZWxmIF9zZXRJc1Zpc2li
bGU6W3NlbGYgX2lzVmlld1Zpc2libGVdIGlzSW5pdGlhbFN0YXRlOk5PXTsKIH0KIAogLSAodm9p
ZClfdXBkYXRlQWN0aXZlU3RhdGUKQEAgLTMxMjYsMTIgKzMxMTEsMTkgQEAgLSAoV2ViUGFnZVZp
c2liaWxpdHlTdGF0ZSlfdmlzaWJpbGl0eVN0YQogICAgIHJldHVybiBXZWJQYWdlVmlzaWJpbGl0
eVN0YXRlVmlzaWJsZTsKIH0KIAotLSAodm9pZClfc2V0VmlzaWJpbGl0eVN0YXRlOihXZWJQYWdl
VmlzaWJpbGl0eVN0YXRlKXZpc2liaWxpdHlTdGF0ZSBpc0luaXRpYWxTdGF0ZTooQk9PTClpc0lu
aXRpYWxTdGF0ZQorLSAodm9pZClfc2V0SXNWaXNpYmxlOihCT09MKWlzVmlzaWJsZSBpc0luaXRp
YWxTdGF0ZTooQk9PTClpc0luaXRpYWxTdGF0ZQogewotI2lmIEVOQUJMRShQQUdFX1ZJU0lCSUxJ
VFlfQVBJKSB8fCBFTkFCTEUoSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpCiAgICAg
aWYgKF9wcml2YXRlLT5wYWdlKQotICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0VmlzaWJpbGl0
eVN0YXRlKGNvcmUodmlzaWJpbGl0eVN0YXRlKSwgaXNJbml0aWFsU3RhdGUpOwotI2VuZGlmCisg
ICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXRJc1Zpc2libGUoaXNWaXNpYmxlLCBpc0luaXRpYWxT
dGF0ZSk7Cit9CisKKy0gKHZvaWQpX3NldFZpc2liaWxpdHlTdGF0ZTooV2ViUGFnZVZpc2liaWxp
dHlTdGF0ZSl2aXNpYmlsaXR5U3RhdGUgaXNJbml0aWFsU3RhdGU6KEJPT0wpaXNJbml0aWFsU3Rh
dGUKK3sKKyAgICBpZiAoX3ByaXZhdGUtPnBhZ2UpIHsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2Ut
PnNldElzVmlzaWJsZSh2aXNpYmlsaXR5U3RhdGUgPT0gV2ViUGFnZVZpc2liaWxpdHlTdGF0ZVZp
c2libGUsIGlzSW5pdGlhbFN0YXRlKTsKKyAgICAgICAgaWYgKHZpc2liaWxpdHlTdGF0ZSA9PSBX
ZWJQYWdlVmlzaWJpbGl0eVN0YXRlUHJlcmVuZGVyKQorICAgICAgICAgICAgX3ByaXZhdGUtPnBh
Z2UtPnNldElzUHJlcmVuZGVyKCk7CisgICAgfQogfQogCiAtICh2b2lkKV9zZXRQYWdpbmF0aW9u
QmVoYXZlc0xpa2VDb2x1bW5zOihCT09MKWJlaGF2ZXNMaWtlQ29sdW1ucwpAQCAtMzg1NSw3ICsz
ODQ3LDYgQEAgLSAodm9pZCl2aWV3V2lsbE1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKgogICAgICAg
ICBXS1NldE5TV2luZG93U2hvdWxkUG9zdEV2ZW50Tm90aWZpY2F0aW9ucyh3aW5kb3csIFlFUyk7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldENhblN0YXJ0TWVkaWEo
ZmFsc2UpOwotICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+d2lsbE1vdmVPZmZzY3JlZW4oKTsKICAg
ICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldElzSW5XaW5kb3coZmFsc2UpOwogICAgIH0KICAgICAg
ICAgCkBAIC0zODc2LDcgKzM4NjcsNiBAQCAtICh2b2lkKXZpZXdEaWRNb3ZlVG9XaW5kb3cKIAog
ICAgIGlmIChbc2VsZiB3aW5kb3ddKSB7CiAgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXRDYW5T
dGFydE1lZGlhKHRydWUpOwotICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+ZGlkTW92ZU9uc2NyZWVu
KCk7CiAgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXRJc0luV2luZG93KHRydWUpOwogICAgIH0K
ICAgICAK
</data>
<flag name="review"
          id="243732"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>