<?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>155998</bug_id>
          
          <creation_ts>2016-03-29 16:52:18 -0700</creation_ts>
          <short_desc>Use references instead of pointers in scrollbar-related code</short_desc>
          <delta_ts>2016-03-30 09:50:14 -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>New Bugs</component>
          <version>WebKit 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="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1178865</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-29 16:52:18 -0700</bug_when>
    <thetext>Minor cleanup in scrollbar-related code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178866</commentid>
    <comment_count>1</comment_count>
      <attachid>275150</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-29 16:54:10 -0700</bug_when>
    <thetext>Created attachment 275150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178886</commentid>
    <comment_count>2</comment_count>
      <attachid>275150</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-03-29 17:36:42 -0700</bug_when>
    <thetext>Comment on attachment 275150
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        - Use early-return style

Are you sure? I didn&apos;t see any such changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1178967</commentid>
    <comment_count>3</comment_count>
      <attachid>275180</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-29 21:42:37 -0700</bug_when>
    <thetext>Created attachment 275180
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179079</commentid>
    <comment_count>4</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2016-03-30 09:50:14 -0700</bug_when>
    <thetext>Committed r198841: &lt;http://trac.webkit.org/changeset/198841&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275150</attachid>
            <date>2016-03-29 16:54:10 -0700</date>
            <delta_ts>2016-03-29 17:36:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-155998-20160329165412.patch</filename>
            <type>text/plain</type>
            <size>33935</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4Nzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzY2MzU3M2I0ZWUyODE4
ZWIyODc5Njk2Nzk3MmViZTlkZjczZWQ5MC4uY2Y4NThhNmI2YjkwYzk1NDM2MmU0MzE4M2EwYmQ3
ZjU4Yzc5OGVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAyMDE2LTAzLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgTWlub3IgY2xl
YW51cCBpbiBzY3JvbGxiYXItcmVsYXRlZCBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU5OTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAtIFVzZSBlYXJseS1yZXR1cm4gc3R5bGUKKyAgICAgICAg
LSBNaWdyYXRlIHBvaW50ZXJzIHRvIHJlZmVyZW5jZXMKKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmludmFsaWRhdGVTY3Jv
bGxiYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0VmlzaWJsZVNjcm9s
bGVyVGh1bWJSZWN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29u
dmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbFZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcik6CisgICAgICAg
ICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVB
cmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjppbnZhbGlkYXRlU2Ny
b2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5n
Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjppbnZhbGlkYXRlUmVjdCk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxiYXI6OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGJhcjo6Y29udmVydEZyb21Db250YWluaW5nVmlldyk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsYmFyT2Zmc2V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBv
c2l0b3I6OmRlc3Ryb3lSb290TGF5ZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmludmFsaWRhdGVTY3Jv
bGxiYXJSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9t
U2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0
Qm94Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisKKzIwMTYtMDMtMjkgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwogICAgICAgICBbT1MgWF0gW1JUTCBTY3JvbGxiYXJz
XSBPdmVybGF5IFJUTCBzY3JvbGxiYXJzIGFuaW1hdGUgaW4gZnJvbSB0aGUgd3Jvbmcgc2lkZQog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1OTYyCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBmN2YyNjE5MDFmNGJiNDRlZDdjY2Q2MzQ4YjI5ODY0MTI0YjFjOWQ5Li5j
Zjk5NTMzN2FhMjM0MjkzZTg2ZTA0MWE5MmE0OWM5Y2M0ZTIwNmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTYtMDMtMjkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KKworICAgICAgICBNaW5vciBjbGVhbnVwIGluIHNjcm9sbGJhci1yZWxhdGVkIGNv
ZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NTk5
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQREZQbHVnaW46OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Ny
b2xsYmFyKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjppbnZhbGlkYXRlU2Nyb2xsYmFy
UmVjdCk6CisKIDIwMTYtMDMtMjkgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIEZvbGxvdyB1cCB0byByMTk4NTgwLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDY1MDQyNDI0NmVkNDRjOWQwM2I5ZWQ1MTBkMmM2
NjM5YTcwYzRmNWIuLjJjMTBiOGU0M2IzYmVmZjM3YjFmYjFiNjRmNTZmNTY0OWJmODlhZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM1ODYsMTEgKzM1ODYsMTEgQEAgZmxvYXQg
RnJhbWVWaWV3OjphZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNj
cm9sbGJhck9yaWVudGF0aW8KICAgICByZXR1cm4gU2Nyb2xsYmFyOjpwYWdlU3RlcCh1bm9ic2N1
cmVkQ29udGVudFJlY3QuaGVpZ2h0KCksIHVub2JzY3VyZWRDb250ZW50UmVjdC5oZWlnaHQoKSAt
IHRvcE9ic2N1cmVkQXJlYSAtIGJvdHRvbU9ic2N1cmVkQXJlYSk7CiB9CiAKLXZvaWQgRnJhbWVW
aWV3OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3Qg
SW50UmVjdCYgcmVjdCkKK3ZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChT
Y3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICAvLyBBZGQg
aW4gb3VyIG9mZnNldCB3aXRoaW4gdGhlIEZyYW1lVmlldy4KICAgICBJbnRSZWN0IGRpcnR5UmVj
dCA9IHJlY3Q7Ci0gICAgZGlydHlSZWN0Lm1vdmVCeShzY3JvbGxiYXItPmxvY2F0aW9uKCkpOwor
ICAgIGRpcnR5UmVjdC5tb3ZlQnkoc2Nyb2xsYmFyLmxvY2F0aW9uKCkpOwogICAgIGludmFsaWRh
dGVSZWN0KGRpcnR5UmVjdCk7CiB9CiAKQEAgLTM2MTEsMTEgKzM2MTEsOCBAQCB2b2lkIEZyYW1l
Vmlldzo6c2V0VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVy
VGh1bWIpCiAgICAgaWYgKCFmcmFtZSgpLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm5vdGlmeVNjcm9sbGVy
VGh1bWJJc1Zpc2libGVJblJlY3Qoc2Nyb2xsZXJUaHVtYik7CisgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBmcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubm90aWZ5
U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChzY3JvbGxlclRodW1iKTsKIH0KIAogU2Nyb2xs
YWJsZUFyZWEqIEZyYW1lVmlldzo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggMmViNWQzZDMxM2NjZDM5MGJjODhlZDQ5NTBiZDA1OGI2
NjcwZmJkNC4uMjUyOWE0OTYxYTY1MDAwZmY2NzIxNjI4MmI0Yzk1MDUwMWFmOTg4YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC02MjUsNyArNjI1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRlbGVnYXRlc1Njcm9sbGluZ0RpZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gU2Nyb2xs
YWJsZUFyZWEgaW50ZXJmYWNlCi0gICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3Jv
bGxiYXIqLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnZhbGlkYXRlU2Ny
b2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0
VmlzaWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKICAgICBT
Y3JvbGxhYmxlQXJlYSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdCBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMzM1YzRlZWM4OWZiNDgy
Mjk2MWQ1MWFiYmQ3NGU2OWJhNGQxMTczNC4uZjc5ZDc3NWZkNmZkN2M2N2FhNmJkY2NmNjAwNTlj
NTkzZWMzMWViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEz
NjQsMzYgKzEzNjQsMzYgQEAgYm9vbCBTY3JvbGxWaWV3OjpzY3JvbGxiYXJDb3JuZXJQcmVzZW50
KCkgY29uc3QKICAgICAgICAgfHwgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0KCkgLSBt
X3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSA+IDApOwogfQogCi1JbnRSZWN0IFNjcm9sbFZp
ZXc6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIq
IHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdAorSW50UmVjdCBTY3Jv
bGxWaWV3Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xs
YmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIGxvY2FsUmVjdCkgY29uc3QKIHsKICAgICAv
LyBTY3JvbGxiYXJzIHdvbid0IGJlIHRyYW5zZm9ybWVkIHdpdGhpbiB1cwogICAgIEludFJlY3Qg
bmV3UmVjdCA9IGxvY2FsUmVjdDsKLSAgICBuZXdSZWN0Lm1vdmVCeShzY3JvbGxiYXItPmxvY2F0
aW9uKCkpOworICAgIG5ld1JlY3QubW92ZUJ5KHNjcm9sbGJhci5sb2NhdGlvbigpKTsKICAgICBy
ZXR1cm4gbmV3UmVjdDsKIH0KIAotSW50UmVjdCBTY3JvbGxWaWV3Ojpjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IElu
dFJlY3QmIHBhcmVudFJlY3QpIGNvbnN0CitJbnRSZWN0IFNjcm9sbFZpZXc6OmNvbnZlcnRGcm9t
Q29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IG5ld1JlY3QgPSBw
YXJlbnRSZWN0OwogICAgIC8vIFNjcm9sbGJhcnMgd29uJ3QgYmUgdHJhbnNmb3JtZWQgd2l0aGlu
IHVzCi0gICAgbmV3UmVjdC5tb3ZlQnkoLXNjcm9sbGJhci0+bG9jYXRpb24oKSk7CisgICAgbmV3
UmVjdC5tb3ZlQnkoLXNjcm9sbGJhci5sb2NhdGlvbigpKTsKICAgICByZXR1cm4gbmV3UmVjdDsK
IH0KIAogLy8gRklYTUU6IHRlc3QgdGhlc2Ugb24gd2luZG93cwotSW50UG9pbnQgU2Nyb2xsVmll
dzo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciog
c2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgbG9jYWxQb2ludCkgY29uc3QKK0ludFBvaW50IFNj
cm9sbFZpZXc6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3Jv
bGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQpIGNvbnN0CiB7CiAg
ICAgLy8gU2Nyb2xsYmFycyB3b24ndCBiZSB0cmFuc2Zvcm1lZCB3aXRoaW4gdXMKICAgICBJbnRQ
b2ludCBuZXdQb2ludCA9IGxvY2FsUG9pbnQ7Ci0gICAgbmV3UG9pbnQubW92ZUJ5KHNjcm9sbGJh
ci0+bG9jYXRpb24oKSk7CisgICAgbmV3UG9pbnQubW92ZUJ5KHNjcm9sbGJhci5sb2NhdGlvbigp
KTsKICAgICByZXR1cm4gbmV3UG9pbnQ7CiB9CiAKLUludFBvaW50IFNjcm9sbFZpZXc6OmNvbnZl
cnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqIHNjcm9sbGJh
ciwgY29uc3QgSW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdAorSW50UG9pbnQgU2Nyb2xsVmll
dzo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50
UG9pbnQgbmV3UG9pbnQgPSBwYXJlbnRQb2ludDsKICAgICAvLyBTY3JvbGxiYXJzIHdvbid0IGJl
IHRyYW5zZm9ybWVkIHdpdGhpbiB1cwotICAgIG5ld1BvaW50Lm1vdmVCeSgtc2Nyb2xsYmFyLT5s
b2NhdGlvbigpKTsKKyAgICBuZXdQb2ludC5tb3ZlQnkoLXNjcm9sbGJhci5sb2NhdGlvbigpKTsK
ICAgICByZXR1cm4gbmV3UG9pbnQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
aAppbmRleCBkMDdmZmNlNDc1YTczYzE5MjA0Y2ZlN2QzNzcxYTVjOTA2NjE3NTBlLi5jNzljNmMx
MDY1ZThkYjRlMjRjY2JmOGU1YTVmMmYwNzcyYjc5MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5oCkBAIC0zNjcsMTAgKzM2NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNv
cm5lclJlY3QpOwogICAgIHZpcnR1YWwgdm9pZCBwYWludFNjcm9sbGJhcihHcmFwaGljc0NvbnRl
eHQmLCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jik7CiAKLSAgICBJbnRSZWN0IGNvbnZlcnRG
cm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRS
ZWN0JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdW
aWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92
ZXJyaWRlOwotICAgIEludFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmll
dyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3Jv
bGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEludFJlY3QgY29u
dmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0
IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFp
bmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3KGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgSW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0
IFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGNhbGN1bGF0ZUFuZFBhaW50T3ZlcmhhbmdBcmVhcyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJ
bnRSZWN0JiBkaXJ0eVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHAKaW5kZXggOTM2NTUzYjAyNmI2NGQyMzllOWE0ODVkZjM2YTc1NjI2Y2Q4ODczMS4u
NzViOTc2YTNkNTNlMTkzNjA2MTc3MTEyZTQxYzk5N2MzY2FkYWE5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcApAQCAtMzY5LDE1ICszNjksMTUgQEAgdm9p
ZCBTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNjcm9sbGJhck92ZXJs
YXlTdHlsZSBvdmVybGF5U3R5bGUKICAgICB9CiB9CiAKLXZvaWQgU2Nyb2xsYWJsZUFyZWE6Omlu
dmFsaWRhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJl
Y3QpCit2b2lkIFNjcm9sbGFibGVBcmVhOjppbnZhbGlkYXRlU2Nyb2xsYmFyKFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIGlmIChzY3JvbGxiYXIgPT0g
aG9yaXpvbnRhbFNjcm9sbGJhcigpKSB7CisgICAgaWYgKCZzY3JvbGxiYXIgPT0gaG9yaXpvbnRh
bFNjcm9sbGJhcigpKSB7CiAgICAgICAgIGlmIChHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
ID0gbGF5ZXJGb3JIb3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAgICAgIGdyYXBoaWNz
TGF5ZXItPnNldE5lZWRzRGlzcGxheSgpOwogICAgICAgICAgICAgZ3JhcGhpY3NMYXllci0+c2V0
Q29udGVudHNOZWVkc0Rpc3BsYXkoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQot
ICAgIH0gZWxzZSBpZiAoc2Nyb2xsYmFyID09IHZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKKyAgICB9
IGVsc2UgaWYgKCZzY3JvbGxiYXIgPT0gdmVydGljYWxTY3JvbGxiYXIoKSkgewogICAgICAgICBp
ZiAoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciA9IGxheWVyRm9yVmVydGljYWxTY3JvbGxi
YXIoKSkgewogICAgICAgICAgICAgZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAg
ICAgICAgICAgICBncmFwaGljc0xheWVyLT5zZXRDb250ZW50c05lZWRzRGlzcGxheSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggNjE3ZWJhYjg5NjkwNTk1
MTY3N2EwODQxNmJiZTAwY2JlMzhmNGVkMy4uNWQ3ZGU0OTRhOTdkZDJlMDRjM2E0OGM0YzRkYjM1
OTlhOWQ3MmE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJs
ZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBA
IC0xNTEsNyArMTUxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9u
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVu
dGF0aW9uKSBjb25zdCA9IDA7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVTY3JvbGxiYXIoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyKFNjcm9sbGJhciYsIGNvbnN0
IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCBzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QgPSAw
OwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVy
KGNvbnN0IEludFJlY3QmKTsKQEAgLTE2MywyMSArMTYzLDIxIEBAIHB1YmxpYzoKICAgICAvLyBD
b252ZXJ0IHBvaW50cyBhbmQgcmVjdHMgYmV0d2VlbiB0aGUgc2Nyb2xsYmFyIGFuZCBpdHMgY29u
dGFpbmluZyB2aWV3LgogICAgIC8vIFRoZSBjbGllbnQgbmVlZHMgdG8gaW1wbGVtZW50IHRoZXNl
IGluIG9yZGVyIHRvIGJlIGF3YXJlIG9mIGxheW91dCBlZmZlY3RzCiAgICAgLy8gbGlrZSBDU1Mg
dHJhbnNmb3Jtcy4KLSAgICB2aXJ0dWFsIEludFJlY3QgY29udmVydEZyb21TY3JvbGxiYXJUb0Nv
bnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBz
Y3JvbGxiYXJSZWN0KSBjb25zdAorICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0RnJvbVNjcm9s
bGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IElu
dFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc2Nyb2xs
YmFyLT5XaWRnZXQ6OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KHNjcm9sbGJhclJlY3QpOworICAg
ICAgICByZXR1cm4gc2Nyb2xsYmFyLldpZGdldDo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoc2Ny
b2xsYmFyUmVjdCk7CiAgICAgfQotICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IElu
dFJlY3QmIHBhcmVudFJlY3QpIGNvbnN0CisgICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRGcm9t
Q29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzY3Jv
bGxiYXItPldpZGdldDo6Y29udmVydEZyb21Db250YWluaW5nVmlldyhwYXJlbnRSZWN0KTsKKyAg
ICAgICAgcmV0dXJuIHNjcm9sbGJhci5XaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXco
cGFyZW50UmVjdCk7CiAgICAgfQotICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21TY3Jv
bGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJ
bnRQb2ludCYgc2Nyb2xsYmFyUG9pbnQpIGNvbnN0CisgICAgdmlydHVhbCBJbnRQb2ludCBjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKICAgICB7Ci0gICAgICAg
IHJldHVybiBzY3JvbGxiYXItPldpZGdldDo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoc2Nyb2xs
YmFyUG9pbnQpOworICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLldpZGdldDo6Y29udmVydFRvQ29u
dGFpbmluZ1ZpZXcoc2Nyb2xsYmFyUG9pbnQpOwogICAgIH0KLSAgICB2aXJ0dWFsIEludFBvaW50
IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqIHNj
cm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdAorICAgIHZpcnR1YWwg
SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9s
bGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiAgICAg
ewotICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLT5XaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmlu
Z1ZpZXcocGFyZW50UG9pbnQpOworICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLldpZGdldDo6Y29u
dmVydEZyb21Db250YWluaW5nVmlldyhwYXJlbnRQb2ludCk7CiAgICAgfQogCiAgICAgaW50IGhv
cml6b250YWxTY3JvbGxiYXJJbnRydXNpb24oKSBjb25zdDsKQEAgLTMzMCw3ICszMzAsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCByZXNldFNjcm9sbE9yaWdpbkNoYW5nZWQoKSB7IG1fc2Nyb2xs
T3JpZ2luQ2hhbmdlZCA9IGZhbHNlOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGZs
b2F0IGFkanVzdFNjcm9sbFN0ZXBGb3JGaXhlZENvbnRlbnQoZmxvYXQgc3RlcCwgU2Nyb2xsYmFy
T3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyaXR5KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50
UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3Qo
Y29uc3QgSW50UmVjdCYpID0gMDsKIAogICAgIGZyaWVuZCBjbGFzcyBTY3JvbGxpbmdDb29yZGlu
YXRvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IDA1YmYxNmEyOTlm
MDMwZDkyMmNhZjU4MjI0YzFmZDI2N2M5NTNmNmUuLjgxODU0ZmUyMjc2OThlYzI2MTVlZGJiYzVm
ZWQ0MDY3N2U3MTM1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApAQCAt
NDU0LDI3ICs0NTQsMjcgQEAgdm9pZCBTY3JvbGxiYXI6OmludmFsaWRhdGVSZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCiAgICAgaWYgKHN1cHByZXNzSW52YWxpZGF0aW9uKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fc2Nyb2xsYWJsZUFyZWEuaW52YWxpZGF0ZVNjcm9sbGJhcih0aGlzLCBy
ZWN0KTsKKyAgICBtX3Njcm9sbGFibGVBcmVhLmludmFsaWRhdGVTY3JvbGxiYXIoKnRoaXMsIHJl
Y3QpOwogfQogCiBJbnRSZWN0IFNjcm9sbGJhcjo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29u
c3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdAogewotICAgIHJldHVybiBtX3Njcm9sbGFibGVB
cmVhLmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyh0aGlzLCBsb2NhbFJlY3Qp
OworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250
YWluaW5nVmlldygqdGhpcywgbG9jYWxSZWN0KTsKIH0KIAogSW50UmVjdCBTY3JvbGxiYXI6OmNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3
VG9TY3JvbGxiYXIodGhpcywgcGFyZW50UmVjdCk7CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFy
ZWEuY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKCp0aGlzLCBwYXJlbnRSZWN0
KTsKIH0KIAogSW50UG9pbnQgU2Nyb2xsYmFyOjpjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25z
dCBJbnRQb2ludCYgbG9jYWxQb2ludCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9zY3JvbGxhYmxl
QXJlYS5jb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcodGhpcywgbG9jYWxQb2lu
dCk7CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEuY29udmVydEZyb21TY3JvbGxiYXJUb0Nv
bnRhaW5pbmdWaWV3KCp0aGlzLCBsb2NhbFBvaW50KTsKIH0KIAogSW50UG9pbnQgU2Nyb2xsYmFy
Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5jb252ZXJ0RnJvbUNvbnRhaW5p
bmdWaWV3VG9TY3JvbGxiYXIodGhpcywgcGFyZW50UG9pbnQpOworICAgIHJldHVybiBtX3Njcm9s
bGFibGVBcmVhLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcigqdGhpcywgcGFy
ZW50UG9pbnQpOwogfQogCiBib29sIFNjcm9sbGJhcjo6c3VwcG9ydHNVcGRhdGVPblNlY29uZGFy
eVRocmVhZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApp
bmRleCBmNjI1MjE5NTgyM2I2ZDk1NzVjNTdmYzFiNGMxZDlhZjBiMjJiYzI0Li4wM2RmZTc3N2Zj
NGM3MDYyYTA5ODMwMDU4ZWFmN2U1ZGMyZGVjYjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAKQEAgLTI4NjAsNyArMjg2MCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6
OmlzU2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuICFzY3JvbGxDb3JuZXJS
ZWN0KCkuaXNFbXB0eSgpOwogfQogCi1JbnRSZWN0IFJlbmRlckxheWVyOjpjb252ZXJ0RnJvbVNj
cm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0
IEludFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CitJbnRSZWN0IFJlbmRlckxheWVyOjpjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIGNvbnN0IEludFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CiB7CiAgICAgSW50UmVjdCBy
ZWN0ID0gc2Nyb2xsYmFyUmVjdDsKICAgICByZWN0Lm1vdmUoc2Nyb2xsYmFyT2Zmc2V0KHNjcm9s
bGJhcikpOwpAQCAtMjg2OCwyMSArMjg2OCwyMSBAQCBJbnRSZWN0IFJlbmRlckxheWVyOjpjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbAog
ICAgIHJldHVybiByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbVJlbmRl
cmVyVG9Db250YWluaW5nVmlldygmcmVuZGVyZXIoKSwgcmVjdCk7CiB9CiAKLUludFJlY3QgUmVu
ZGVyTGF5ZXI6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3Jv
bGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QKK0ludFJl
Y3QgUmVuZGVyTGF5ZXI6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25z
dCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QK
IHsKICAgICBJbnRSZWN0IHJlY3QgPSByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5jb252
ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcigmcmVuZGVyZXIoKSwgcGFyZW50UmVjdCk7
CiAgICAgcmVjdC5tb3ZlKC1zY3JvbGxiYXJPZmZzZXQoc2Nyb2xsYmFyKSk7CiAgICAgcmV0dXJu
IHJlY3Q7CiB9CiAKLUludFBvaW50IFJlbmRlckxheWVyOjpjb252ZXJ0RnJvbVNjcm9sbGJhclRv
Q29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50
JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKK0ludFBvaW50IFJlbmRlckxheWVyOjpjb252ZXJ0RnJv
bVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNv
bnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2lu
dCA9IHNjcm9sbGJhclBvaW50OwogICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFyT2Zmc2V0KHNjcm9s
bGJhcikpOwogICAgIHJldHVybiByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0
RnJvbVJlbmRlcmVyVG9Db250YWluaW5nVmlldygmcmVuZGVyZXIoKSwgcG9pbnQpOwogfQogCi1J
bnRQb2ludCBSZW5kZXJMYXllcjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFy
KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQp
IGNvbnN0CitJbnRQb2ludCBSZW5kZXJMYXllcjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1Rv
U2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFy
ZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSByZW5kZXJlcigpLnZpZXco
KS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcigmcmVuZGVy
ZXIoKSwgcGFyZW50UG9pbnQpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9sbGJhck9mZnNldChzY3Jv
bGxiYXIpKTsKQEAgLTMwMDgsMjYgKzMwMDgsMjYgQEAgTGF5b3V0VW5pdCBSZW5kZXJMYXllcjo6
aG9yaXpvbnRhbFNjcm9sbGJhclN0YXJ0KGludCBtaW5YKSBjb25zdAogICAgIHJldHVybiB4Owog
fQogCi1JbnRTaXplIFJlbmRlckxheWVyOjpzY3JvbGxiYXJPZmZzZXQoY29uc3QgU2Nyb2xsYmFy
KiBzY3JvbGxiYXIpIGNvbnN0CitJbnRTaXplIFJlbmRlckxheWVyOjpzY3JvbGxiYXJPZmZzZXQo
Y29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIpIGNvbnN0CiB7CiAgICAgUmVuZGVyQm94KiBib3gg
PSByZW5kZXJCb3goKTsKIAotICAgIGlmIChzY3JvbGxiYXIgPT0gbV92QmFyLmdldCgpKQorICAg
IGlmICgmc2Nyb2xsYmFyID09IG1fdkJhci5nZXQoKSkKICAgICAgICAgcmV0dXJuIEludFNpemUo
dmVydGljYWxTY3JvbGxiYXJTdGFydCgwLCBib3gtPndpZHRoKCkpLCBib3gtPmJvcmRlclRvcCgp
KTsKIAotICAgIGlmIChzY3JvbGxiYXIgPT0gbV9oQmFyLmdldCgpKQotICAgICAgICByZXR1cm4g
SW50U2l6ZShob3Jpem9udGFsU2Nyb2xsYmFyU3RhcnQoMCksIGJveC0+aGVpZ2h0KCkgLSBib3gt
PmJvcmRlckJvdHRvbSgpIC0gc2Nyb2xsYmFyLT5oZWlnaHQoKSk7CisgICAgaWYgKCZzY3JvbGxi
YXIgPT0gbV9oQmFyLmdldCgpKQorICAgICAgICByZXR1cm4gSW50U2l6ZShob3Jpem9udGFsU2Ny
b2xsYmFyU3RhcnQoMCksIGJveC0+aGVpZ2h0KCkgLSBib3gtPmJvcmRlckJvdHRvbSgpIC0gc2Ny
b2xsYmFyLmhlaWdodCgpKTsKICAgICAKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICBy
ZXR1cm4gSW50U2l6ZSgpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjppbnZhbGlkYXRlU2Nyb2xs
YmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQg
UmVuZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFy
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIGlmICghc2hvd3NPdmVyZmxvd0NvbnRyb2xz
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChzY3JvbGxiYXIgPT0gbV92QmFyLmdldCgp
KSB7CisgICAgaWYgKCZzY3JvbGxiYXIgPT0gbV92QmFyLmdldCgpKSB7CiAgICAgICAgIGlmIChH
cmFwaGljc0xheWVyKiBsYXllciA9IGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgewogICAg
ICAgICAgICAgbGF5ZXItPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKICAgICAgICAgICAg
IHJldHVybjsKQEAgLTMwNDYsMTAgKzMwNDYsMTAgQEAgdm9pZCBSZW5kZXJMYXllcjo6aW52YWxp
ZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHIK
ICAgICBpZiAoIWJveC0+cGFyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChzY3Jv
bGxiYXIgPT0gbV92QmFyLmdldCgpKQorICAgIGlmICgmc2Nyb2xsYmFyID09IG1fdkJhci5nZXQo
KSkKICAgICAgICAgc2Nyb2xsUmVjdC5tb3ZlKHZlcnRpY2FsU2Nyb2xsYmFyU3RhcnQoMCwgYm94
LT53aWR0aCgpKSwgYm94LT5ib3JkZXJUb3AoKSk7CiAgICAgZWxzZQotICAgICAgICBzY3JvbGxS
ZWN0Lm1vdmUoaG9yaXpvbnRhbFNjcm9sbGJhclN0YXJ0KDApLCBib3gtPmhlaWdodCgpIC0gYm94
LT5ib3JkZXJCb3R0b20oKSAtIHNjcm9sbGJhci0+aGVpZ2h0KCkpOworICAgICAgICBzY3JvbGxS
ZWN0Lm1vdmUoaG9yaXpvbnRhbFNjcm9sbGJhclN0YXJ0KDApLCBib3gtPmhlaWdodCgpIC0gYm94
LT5ib3JkZXJCb3R0b20oKSAtIHNjcm9sbGJhci5oZWlnaHQoKSk7CiAgICAgTGF5b3V0UmVjdCBy
ZXBhaW50UmVjdCA9IHNjcm9sbFJlY3Q7CiAgICAgcmVuZGVyQm94KCktPmZsaXBGb3JXcml0aW5n
TW9kZShyZXBhaW50UmVjdCk7CiAgICAgcmVuZGVyZXIoKS5yZXBhaW50UmVjdGFuZ2xlKHJlcGFp
bnRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggZTEwNTE0
OTIyNTdiNTk3YTJhODBjYzdmNTU1Y2Q5NmVjYjYyZWE4OS4uZGU3ZDhkYmI3NWUzYjQ1MTA0ZjFl
MzJiYzAwZTQyNWFmZWE3MDk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKQEAgLTg2MCwxNSArODYwLDE1IEBAIHByaXZhdGU6CiAgICAgaW50IHNjcm9sbE9mZnNldChT
Y3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gU2Nyb2xs
YWJsZUFyZWEgaW50ZXJmYWNlCi0gICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3Jv
bGxiYXIqLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnZhbGlkYXRlU2Ny
b2xsYmFyUmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTY3JvbGxDb3Ju
ZXJWaXNpYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50UmVjdCBzY3JvbGxDb3JuZXJSZWN0
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgSW50UmVjdCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29u
dGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJy
aWRlOwotICAgIEludFJlY3QgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNv
bnN0IFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSBjb25zdCBvdmVycmlkZTsKLSAgICBJbnRQ
b2ludCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFy
KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKLSAgICBJbnRQb2ludCBjb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50
UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGNvbnZlcnRGcm9tU2Nyb2xsYmFy
VG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgY29uc3Qg
b3ZlcnJpZGU7CisgICAgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxi
YXIoY29uc3QgU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOworICAg
IEludFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3Jv
bGxiYXImLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEludFBvaW50IGNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImLCBjb25z
dCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGludCBzY3JvbGxTaXplKFNjcm9sbGJh
ck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHNldFNjcm9sbE9mZnNldChj
b25zdCBTY3JvbGxPZmZzZXQmKSBvdmVycmlkZTsKIApAQCAtOTAxLDcgKzkwMSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBTY3JvbGxQb3NpdGlvbiYpOwogICAgIHZvaWQg
dXBkYXRlQ29tcG9zaXRpbmdMYXllcnNBZnRlclNjcm9sbCgpOwogCi0gICAgSW50U2l6ZSBzY3Jv
bGxiYXJPZmZzZXQoY29uc3QgU2Nyb2xsYmFyKikgY29uc3Q7CisgICAgSW50U2l6ZSBzY3JvbGxi
YXJPZmZzZXQoY29uc3QgU2Nyb2xsYmFyJikgY29uc3Q7CiAgICAgCiAgICAgdm9pZCB1cGRhdGVT
Y3JvbGxhYmxlQXJlYVNldChib29sIGhhc092ZXJmbG93KTsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggYzNkZTNl
NjYzMmM0Y2Q2ZmNlMzdhZmYxYTE5YjFmNzcxYzQ1YjNmMi4uZTAyY2YxZDIzNTNjNTk0ZDBiZTU5
ZDE3NTdlMzdlNmI2MWVjNWNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTM0OTIsNyArMzQ5Miw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjpkZXN0cm95Um9vdExheWVyKCkKICAgICAgICAgaWYgKFNjcm9s
bGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nv
b3JkaW5hdG9yKCkpCiAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsYWJs
ZUFyZWFTY3JvbGxiYXJMYXllckRpZENoYW5nZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCksIEhv
cml6b250YWxTY3JvbGxiYXIpOwogICAgICAgICBpZiAoU2Nyb2xsYmFyKiBob3Jpem9udGFsU2Ny
b2xsYmFyID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnZlcnRpY2FsU2Nyb2xsYmFyKCkpCi0g
ICAgICAgICAgICBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuaW52YWxpZGF0ZVNjcm9sbGJhciho
b3Jpem9udGFsU2Nyb2xsYmFyLCBJbnRSZWN0KEludFBvaW50KDAsIDApLCBob3Jpem9udGFsU2Ny
b2xsYmFyLT5mcmFtZVJlY3QoKS5zaXplKCkpKTsKKyAgICAgICAgICAgIG1fcmVuZGVyVmlldy5m
cmFtZVZpZXcoKS5pbnZhbGlkYXRlU2Nyb2xsYmFyKCpob3Jpem9udGFsU2Nyb2xsYmFyLCBJbnRS
ZWN0KEludFBvaW50KDAsIDApLCBob3Jpem9udGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS5zaXpl
KCkpKTsKICAgICB9CiAKICAgICBpZiAobV9sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKSB7CkBA
IC0zNTAxLDcgKzM1MDEsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGVzdHJveVJv
b3RMYXllcigpCiAgICAgICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29v
cmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICAgICAgc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPnNjcm9sbGFibGVBcmVhU2Nyb2xsYmFyTGF5ZXJEaWRDaGFuZ2Uo
bV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLCBWZXJ0aWNhbFNjcm9sbGJhcik7CiAgICAgICAgIGlm
IChTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygp
LnZlcnRpY2FsU2Nyb2xsYmFyKCkpCi0gICAgICAgICAgICBtX3JlbmRlclZpZXcuZnJhbWVWaWV3
KCkuaW52YWxpZGF0ZVNjcm9sbGJhcih2ZXJ0aWNhbFNjcm9sbGJhciwgSW50UmVjdChJbnRQb2lu
dCgwLCAwKSwgdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpLnNpemUoKSkpOworICAgICAg
ICAgICAgbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmludmFsaWRhdGVTY3JvbGxiYXIoKnZlcnRp
Y2FsU2Nyb2xsYmFyLCBJbnRSZWN0KEludFBvaW50KDAsIDApLCB2ZXJ0aWNhbFNjcm9sbGJhci0+
ZnJhbWVSZWN0KCkuc2l6ZSgpKSk7CiAgICAgfQogCiAgICAgaWYgKG1fbGF5ZXJGb3JTY3JvbGxD
b3JuZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRl
eCBjZWQ3NzQxZTZiMGRhZTlmZmU5ODUwZWE4NjEzYTcwZTBjMTMyMWRlLi44OTcxYzJlMjQ2Yzgy
YzBkMDRmY2JiMWQ3Mjc4NDMxZWU4Yzk5OTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCkBAIC03MjksNDQgKzcyOSw0NCBAQCBib29sIFJlbmRlckxpc3RC
b3g6OmlzQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5pc0FjdGl2ZSgpOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OmludmFsaWRhdGVT
Y3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQor
dm9pZCBSZW5kZXJMaXN0Qm94OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImIHNj
cm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHNjcm9sbFJlY3Qg
PSByZWN0OwotICAgIHNjcm9sbFJlY3QubW92ZSh3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNj
cm9sbGJhci0+d2lkdGgoKSwgYm9yZGVyVG9wKCkpOworICAgIHNjcm9sbFJlY3QubW92ZSh3aWR0
aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpLCBib3JkZXJUb3AoKSk7CiAg
ICAgcmVwYWludFJlY3RhbmdsZShzY3JvbGxSZWN0KTsKIH0KIAotSW50UmVjdCBSZW5kZXJMaXN0
Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFy
KiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CitJbnRSZWN0
IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25z
dCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29u
c3QKIHsKICAgICBJbnRSZWN0IHJlY3QgPSBzY3JvbGxiYXJSZWN0OwotICAgIGludCBzY3JvbGxi
YXJMZWZ0ID0gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXItPndpZHRoKCk7Cisg
ICAgaW50IHNjcm9sbGJhckxlZnQgPSB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJh
ci53aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0
Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFyVG9wKTsKICAgICByZXR1cm4gdmlldygpLmZy
YW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KHRoaXMsIHJlY3Qp
OwogfQogCi1JbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdU
b1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcGFy
ZW50UmVjdCkgY29uc3QKK0ludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250YWlu
aW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRS
ZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHZpZXcoKS5mcmFt
ZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcih0aGlzLCBwYXJlbnRS
ZWN0KTsKLSAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
c2Nyb2xsYmFyLT53aWR0aCgpOworICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gd2lkdGgoKSAtIGJv
cmRlclJpZ2h0KCkgLSBzY3JvbGxiYXIud2lkdGgoKTsKICAgICBpbnQgc2Nyb2xsYmFyVG9wID0g
Ym9yZGVyVG9wKCk7CiAgICAgcmVjdC5tb3ZlKC1zY3JvbGxiYXJMZWZ0LCAtc2Nyb2xsYmFyVG9w
KTsKICAgICByZXR1cm4gcmVjdDsKIH0KIAotSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVy
dEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFy
LCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsYmFyUG9pbnQpIGNvbnN0CitJbnRQb2ludCBSZW5kZXJM
aXN0Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xs
YmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKIHsK
ICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9sbGJhclBvaW50OwotICAgIGludCBzY3JvbGxiYXJM
ZWZ0ID0gd2lkdGgoKSAtIGJvcmRlclJpZ2h0KCkgLSBzY3JvbGxiYXItPndpZHRoKCk7CisgICAg
aW50IHNjcm9sbGJhckxlZnQgPSB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53
aWR0aCgpOwogICAgIGludCBzY3JvbGxiYXJUb3AgPSBib3JkZXJUb3AoKTsKICAgICBwb2ludC5t
b3ZlKHNjcm9sbGJhckxlZnQsIHNjcm9sbGJhclRvcCk7CiAgICAgcmV0dXJuIHZpZXcoKS5mcmFt
ZVZpZXcoKS5jb252ZXJ0RnJvbVJlbmRlcmVyVG9Db250YWluaW5nVmlldyh0aGlzLCBwb2ludCk7
CiB9CiAKLUludFBvaW50IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdU
b1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHBh
cmVudFBvaW50KSBjb25zdAorSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJ
bnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgcG9pbnQgPSB2aWV3
KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIodGhpcywg
cGFyZW50UG9pbnQpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gd2lkdGgoKSAtIGJvcmRlclJp
Z2h0KCkgLSBzY3JvbGxiYXItPndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSB3aWR0
aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3JvbGxi
YXJUb3AgPSBib3JkZXJUb3AoKTsKICAgICBwb2ludC5tb3ZlKC1zY3JvbGxiYXJMZWZ0LCAtc2Ny
b2xsYmFyVG9wKTsKICAgICByZXR1cm4gcG9pbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guaAppbmRleCA5ZTMwNTZhMGI2YTYxMDkwMjZmOTc3OGY1ZmFhMTFlOTkxOGIy
YmQ2Li4yODY2MDIyM2QxZWQ4ZDAwNzE5N2QyMGY4YWJkNTBmYzVlOGNkOGIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKQEAgLTExNCwxNSArMTE0LDE1IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXQoY29uc3QgU2Nyb2xsT2Zmc2V0Jikgb3Zl
cnJpZGU7CiAgICAgU2Nyb2xsUG9zaXRpb24gbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgU2Nyb2xsUG9zaXRpb24gbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIq
LCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFy
UmVjdChTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0Fj
dGl2ZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0gLy8gV2UgZG9uJ3Qgc3VwcG9ydCByZXNp
emUgb24gbGlzdCBib3hlcyB5ZXQuIElmIHdlIGRpZCB0aGVzZSB3b3VsZCBoYXZlIHRvIGNoYW5n
ZS4KICAgICBJbnRSZWN0IHNjcm9sbENvcm5lclJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBJbnRSZWN0KCk7IH0KICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0
IEludFJlY3QmKSBvdmVycmlkZSB7IH0KLSAgICBJbnRSZWN0IGNvbnZlcnRGcm9tU2Nyb2xsYmFy
VG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxi
YXIoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IEludFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3Jv
bGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIEludFBvaW50IGNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqLCBjb25z
dCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEludFJlY3QgY29udmVydEZyb21TY3Jv
bGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBj
b25zdCBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Nj
cm9sbGJhcihjb25zdCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0
IFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgSW50UG9p
bnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYs
IGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU2Nyb2xsYmFyKiB2ZXJ0aWNh
bFNjcm9sbGJhcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fdkJhci5nZXQoKTsgfQogICAg
IEludFNpemUgY29udGVudHNTaXplKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgSW50U2l6ZSB2aXNp
YmxlU2l6ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFNpemUod2lkdGgoKSwgaGVpZ2h0
KCkpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L0RlcHJlY2F0ZWRQREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5oCmluZGV4IDUzMWMwYWQxMThkZmExM2FhMTY0OWQy
ODE4MDYyZjQzNWJjYjc1ZjkuLjc4ZWVlOWRiYzA4N2EwYTA1NmVhYWZlODlhOTI5YmQ0NGM4ZTNi
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVw
cmVjYXRlZFBERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5oCkBAIC0xOTEsNyArMTkxLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIGhhc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQW5jZXN0b3IoKSBvdmVycmlk
ZSB7IHJldHVybiB0cnVlOyB9CiAgICAgV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxhYmxlQXJlYUJv
dW5kaW5nQm94KGJvb2wqID0gbnVsbHB0cikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRT
Y3JvbGxPZmZzZXQoY29uc3QgV2ViQ29yZTo6U2Nyb2xsT2Zmc2V0Jikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChXZWJDb3JlOjpTY3JvbGxiYXIqLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFy
UmVjdChXZWJDb3JlOjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyUmVjdChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbGFzdEtub3duTW91c2VQ
b3NpdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGFzdE1vdXNlUG9zaXRpb25JblBs
dWdpbkNvb3JkaW5hdGVzOyB9CiAgICAgaW50IHNjcm9sbFNpemUoV2ViQ29yZTo6U2Nyb2xsYmFy
T3JpZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwpAQCAtMjA3LDEwICsyMDcsMTAgQEAgcHJpdmF0
ZToKICAgICBXZWJDb3JlOjpTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQoKTsgfQogICAgIGJvb2wgc2hv
dWxkU3VzcGVuZFNjcm9sbEFuaW1hdGlvbnMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxz
ZTsgfSAvLyBJZiB3ZSByZXR1cm4gdHJ1ZSwgU2Nyb2xsQW5pbWF0b3JNYWMgd2lsbCBrZWVwIGN5
Y2xpbmcgYSB0aW1lciBmb3JldmVyLCB3YWl0aW5nIGZvciBhIGdvb2QgdGltZSB0byBhbmltYXRl
LgogICAgIHZvaWQgc2Nyb2xsYmFyU3R5bGVDaGFuZ2VkKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxl
LCBib29sIGZvcmNlVXBkYXRlKSBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpJbnRSZWN0IGNvbnZl
cnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXIq
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25zdCBvdmVycmlkZTsK
LSAgICBXZWJDb3JlOjpJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJh
cihjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXIqLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwYXJl
bnRSZWN0KSBjb25zdCBvdmVycmlkZTsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJv
bVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyKiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHNjcm9sbGJhclBvaW50KSBjb25zdCBvdmVycmlkZTsKLSAg
ICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIo
Y29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyKiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBhcmVu
dFBvaW50KSBjb25zdCBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGNvbnZlcnRGcm9t
U2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXImLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25zdCBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25z
dCBXZWJDb3JlOjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBwYXJlbnRSZWN0
KSBjb25zdCBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9s
bGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgV2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHNjcm9sbGJhclBvaW50KSBjb25zdCBvdmVycmlkZTsKKyAgICBXZWJD
b3JlOjpJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3Qg
V2ViQ29yZTo6U2Nyb2xsYmFyJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBhcmVudFBvaW50
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIHVwZGF0ZXNTY3JvbGxMYXllclBvc2l0aW9uT25N
YWluVGhyZWFkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgZm9y
Y2VVcGRhdGVTY3JvbGxiYXJzT25NYWluVGhyZWFkRm9yUGVyZm9ybWFuY2VUZXN0aW5nKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCBkNGQ5ZTg0M2MzNmI4
Mzg5Y2RlNmJjMjFjNWNiODQwYWVhM2FjYjdjLi43NGUyMjhiYzY2ZmY4NGI1NzA5NTBmODU5ZmRm
ZmI2Y2MwMjZkNDg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC02ODgsMzQgKzY4OCwz
NCBAQCB2b2lkIFBERlBsdWdpbjo6ZGVzdHJveVNjcm9sbGJhcihTY3JvbGxiYXJPcmllbnRhdGlv
biBvcmllbnRhdGlvbikKICAgICB9CiB9CiAKLUludFJlY3QgUERGUGx1Z2luOjpjb252ZXJ0RnJv
bVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNv
bnN0IEludFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CitJbnRSZWN0IFBERlBsdWdpbjo6Y29u
dmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xs
YmFyLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxiYXJSZWN0KSBjb25zdAogewogICAgIEludFJlY3Qg
cmVjdCA9IHNjcm9sbGJhclJlY3Q7Ci0gICAgcmVjdC5tb3ZlKHNjcm9sbGJhci0+bG9jYXRpb24o
KSAtIHBsdWdpblZpZXcoKS0+bG9jYXRpb24oKSk7CisgICAgcmVjdC5tb3ZlKHNjcm9sbGJhci5s
b2NhdGlvbigpIC0gcGx1Z2luVmlldygpLT5sb2NhdGlvbigpKTsKIAogICAgIHJldHVybiBwbHVn
aW5WaWV3KCktPmZyYW1lKCktPnZpZXcoKS0+Y29udmVydEZyb21SZW5kZXJlclRvQ29udGFpbmlu
Z1ZpZXcocGx1Z2luVmlldygpLT5wbHVnaW5FbGVtZW50KCktPnJlbmRlcmVyKCksIHJlY3QpOwog
fQogCi1JbnRSZWN0IFBERlBsdWdpbjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xs
YmFyKGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBwYXJlbnRSZWN0
KSBjb25zdAorSW50UmVjdCBQREZQbHVnaW46OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Nj
cm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcGFyZW50
UmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IHJlY3QgPSBwbHVnaW5WaWV3KCktPmZyYW1lKCkt
PnZpZXcoKS0+Y29udmVydEZyb21Db250YWluaW5nVmlld1RvUmVuZGVyZXIocGx1Z2luVmlldygp
LT5wbHVnaW5FbGVtZW50KCktPnJlbmRlcmVyKCksIHBhcmVudFJlY3QpOwotICAgIHJlY3QubW92
ZShwbHVnaW5WaWV3KCktPmxvY2F0aW9uKCkgLSBzY3JvbGxiYXItPmxvY2F0aW9uKCkpOworICAg
IHJlY3QubW92ZShwbHVnaW5WaWV3KCktPmxvY2F0aW9uKCkgLSBzY3JvbGxiYXIubG9jYXRpb24o
KSk7CiAKICAgICByZXR1cm4gcmVjdDsKIH0KIAotSW50UG9pbnQgUERGUGx1Z2luOjpjb252ZXJ0
RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIs
IGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKK0ludFBvaW50IFBERlBsdWdp
bjo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYg
c2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsYmFyUG9pbnQpIGNvbnN0CiB7CiAgICAg
SW50UG9pbnQgcG9pbnQgPSBzY3JvbGxiYXJQb2ludDsKLSAgICBwb2ludC5tb3ZlKHNjcm9sbGJh
ci0+bG9jYXRpb24oKSAtIHBsdWdpblZpZXcoKS0+bG9jYXRpb24oKSk7CisgICAgcG9pbnQubW92
ZShzY3JvbGxiYXIubG9jYXRpb24oKSAtIHBsdWdpblZpZXcoKS0+bG9jYXRpb24oKSk7CiAKICAg
ICByZXR1cm4gcGx1Z2luVmlldygpLT5mcmFtZSgpLT52aWV3KCktPmNvbnZlcnRGcm9tUmVuZGVy
ZXJUb0NvbnRhaW5pbmdWaWV3KHBsdWdpblZpZXcoKS0+cGx1Z2luRWxlbWVudCgpLT5yZW5kZXJl
cigpLCBwb2ludCk7CiB9CiAKLUludFBvaW50IFBERlBsdWdpbjo6Y29udmVydEZyb21Db250YWlu
aW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRQ
b2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CitJbnRQb2ludCBQREZQbHVnaW46OmNvbnZlcnRGcm9t
Q29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29u
c3QgSW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdAogewogICAgIEludFBvaW50IHBvaW50ID0g
cGx1Z2luVmlldygpLT5mcmFtZSgpLT52aWV3KCktPmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdU
b1JlbmRlcmVyKHBsdWdpblZpZXcoKS0+cGx1Z2luRWxlbWVudCgpLT5yZW5kZXJlcigpLCBwYXJl
bnRQb2ludCk7Ci0gICAgcG9pbnQubW92ZShwbHVnaW5WaWV3KCktPmxvY2F0aW9uKCkgLSBzY3Jv
bGxiYXItPmxvY2F0aW9uKCkpOworICAgIHBvaW50Lm1vdmUocGx1Z2luVmlldygpLT5sb2NhdGlv
bigpIC0gc2Nyb2xsYmFyLmxvY2F0aW9uKCkpOwogICAgIAogICAgIHJldHVybiBwb2ludDsKIH0K
QEAgLTE1NjcsMTEgKzE1NjcsMTEgQEAgdm9pZCBQREZQbHVnaW46OnNldFNjcm9sbE9mZnNldChj
b25zdCBTY3JvbGxPZmZzZXQmIG9mZnNldCkKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwog
fQogCi12b2lkIFBERlBsdWdpbjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBz
Y3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lkIFBERlBsdWdpbjo6aW52YWxpZGF0
ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3Qp
CiB7Ci0gICAgaWYgKHNjcm9sbGJhciA9PSBob3Jpem9udGFsU2Nyb2xsYmFyKCkpCisgICAgaWYg
KCZzY3JvbGxiYXIgPT0gaG9yaXpvbnRhbFNjcm9sbGJhcigpKQogICAgICAgICBbbV9ob3Jpem9u
dGFsU2Nyb2xsYmFyTGF5ZXIgc2V0TmVlZHNEaXNwbGF5XTsKLSAgICBlbHNlIGlmIChzY3JvbGxi
YXIgPT0gdmVydGljYWxTY3JvbGxiYXIoKSkKKyAgICBlbHNlIGlmICgmc2Nyb2xsYmFyID09IHZl
cnRpY2FsU2Nyb2xsYmFyKCkpCiAgICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xsYmFyTGF5ZXIgc2V0
TmVlZHNEaXNwbGF5XTsKIH0KIAo=
</data>
<flag name="review"
          id="299521"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275180</attachid>
            <date>2016-03-29 21:42:37 -0700</date>
            <delta_ts>2016-03-29 21:42:37 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-155998-20160329214240.patch</filename>
            <type>text/plain</type>
            <size>35713</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk4ODI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2ZhNjk4ZjNlMjE2NzEw
Zjk5ZWUyOTFjMDFiYjNlZmM5NzJjYjhlNC4uZGFlYjI5NTQ0MDY0NmJkM2Q2ZmRhYzg3YmM4MDQw
YmVhZjMzMDdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTAzLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHJlZmVy
ZW5jZXMgaW5zdGVhZCBvZiBwb2ludGVycyBpbiBzY3JvbGxiYXItcmVsYXRlZCBjb2RlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU5OTgKKworICAg
ICAgICBSZXZpZXdlZCBieSBEZWFuIEphY2tzb24uCisKKyAgICAgICAgTWlncmF0ZSBwb2ludGVy
cyB0byByZWZlcmVuY2VzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlz
IG5vIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRWaXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QpOgor
ICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojpjb252ZXJ0RnJvbVNjcm9sbGJh
clRvQ29udGFpbmluZ1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29udmVy
dEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmludmFsaWRhdGVTY3JvbGxiYXIpOgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxh
YmxlQXJlYTo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3Jv
bGxiYXIpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXI6OmludmFsaWRhdGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGJhcjo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
YmFyOjpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNvbnZlcnRGcm9t
U2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpzY3JvbGxiYXJPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGVzdHJveVJv
b3RMYXllcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRh
aW5pbmdWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9t
Q29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guaDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vUG9wdXBNZW51V2luLmg6CisKIDIwMTYtMDMtMjkgIE5hbiBX
YW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBWDogVm9pY2VPdmVyIG5vdCBhbm5v
dW5jaW5nIHRoZSByaWdodCBoZWFkZXIgaW5mb3JtYXRpb24gZm9yIHRhYmxlIG9uIGlPUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDU3MzAzMjJiOTJiODkzOGQ5YzNiMmNmMGYxN2I5NjE1NGE4OWNlMTQuLmMxOTMz
ZTlmNDViODAyYjk0Zjg0N2IzYjRiMmI5NDBjYzAzOWY1ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxNi0wMy0yOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgorCisgICAgICAgIFVzZSByZWZlcmVuY2VzIGluc3RlYWQgb2YgcG9pbnRlcnMgaW4gc2Ny
b2xsYmFyLXJlbGF0ZWQgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTU1OTk4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1t
OgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250
YWluaW5nVmlldyk6CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYktpdDo6UERGUGx1Z2luOjppbnZh
bGlkYXRlU2Nyb2xsYmFyUmVjdCk6CisKIDIwMTYtMDMtMjkgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBZb3NlbWl0ZS1vbmx5OiBjb20u
YXBwbGUuV2ViS2l0LlBsdWdpbi4zMi5EZXZlbG9wbWVudCBjcmFzaGVkIGluIFBsdWdpblByb2Nl
c3NTaGltLmR5bGliOiBXZWJLaXQ6OnNoaW1NYWNoVk1NYXAgKyAyNgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCmluZGV4IDY1MDQyNDI0NmVkNDRjOWQwM2I5ZWQ1MTBkMmM2NjM5YTcwYzRmNWIu
LjJjMTBiOGU0M2IzYmVmZjM3YjFmYjFiNjRmNTZmNTY0OWJmODlhZDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKQEAgLTM1ODYsMTEgKzM1ODYsMTEgQEAgZmxvYXQgRnJhbWVWaWV3Ojph
ZGp1c3RTY3JvbGxTdGVwRm9yRml4ZWRDb250ZW50KGZsb2F0IHN0ZXAsIFNjcm9sbGJhck9yaWVu
dGF0aW8KICAgICByZXR1cm4gU2Nyb2xsYmFyOjpwYWdlU3RlcCh1bm9ic2N1cmVkQ29udGVudFJl
Y3QuaGVpZ2h0KCksIHVub2JzY3VyZWRDb250ZW50UmVjdC5oZWlnaHQoKSAtIHRvcE9ic2N1cmVk
QXJlYSAtIGJvdHRvbU9ic2N1cmVkQXJlYSk7CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjppbnZhbGlk
YXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVj
dCkKK3ZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImIHNj
cm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICAvLyBBZGQgaW4gb3VyIG9mZnNl
dCB3aXRoaW4gdGhlIEZyYW1lVmlldy4KICAgICBJbnRSZWN0IGRpcnR5UmVjdCA9IHJlY3Q7Ci0g
ICAgZGlydHlSZWN0Lm1vdmVCeShzY3JvbGxiYXItPmxvY2F0aW9uKCkpOworICAgIGRpcnR5UmVj
dC5tb3ZlQnkoc2Nyb2xsYmFyLmxvY2F0aW9uKCkpOwogICAgIGludmFsaWRhdGVSZWN0KGRpcnR5
UmVjdCk7CiB9CiAKQEAgLTM2MTEsMTEgKzM2MTEsOCBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Vmlz
aWJsZVNjcm9sbGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIpCiAgICAg
aWYgKCFmcmFtZSgpLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFBhZ2Uq
IHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsK
LQotICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2li
bGVJblJlY3Qoc2Nyb2xsZXJUaHVtYik7CisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLnBh
Z2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubm90aWZ5U2Nyb2xsZXJUaHVt
YklzVmlzaWJsZUluUmVjdChzY3JvbGxlclRodW1iKTsKIH0KIAogU2Nyb2xsYWJsZUFyZWEqIEZy
YW1lVmlldzo6ZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKaW5kZXggMmViNWQzZDMxM2NjZDM5MGJjODhlZDQ5NTBiZDA1OGI2NjcwZmJkNC4uMjUy
OWE0OTYxYTY1MDAwZmY2NzIxNjI4MmI0Yzk1MDUwMWFmOTg4YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oCkBAIC02MjUsNyArNjI1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlbGVnYXRlc1Nj
cm9sbGluZ0RpZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAgLy8gU2Nyb2xsYWJsZUFyZWEgaW50
ZXJmYWNlCi0gICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqLCBjb25z
dCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChT
Y3JvbGxiYXImLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzY3JvbGxUbyhj
b25zdCBTY3JvbGxQb3NpdGlvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0VmlzaWJsZVNjcm9s
bGVyVGh1bWJSZWN0KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKICAgICBTY3JvbGxhYmxlQXJl
YSogZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMzM1YzRlZWM4OWZiNDgyMjk2MWQ1MWFiYmQ3
NGU2OWJhNGQxMTczNC4uZjc5ZDc3NWZkNmZkN2M2N2FhNmJkY2NmNjAwNTljNTkzZWMzMWViMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTEzNjQsMzYgKzEzNjQs
MzYgQEAgYm9vbCBTY3JvbGxWaWV3OjpzY3JvbGxiYXJDb3JuZXJQcmVzZW50KCkgY29uc3QKICAg
ICAgICAgfHwgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0KCkgLSBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLT5oZWlnaHQoKSA+IDApOwogfQogCi1JbnRSZWN0IFNjcm9sbFZpZXc6OmNvbnZlcnRG
cm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqIHNjcm9sbGJhciwg
Y29uc3QgSW50UmVjdCYgbG9jYWxSZWN0KSBjb25zdAorSW50UmVjdCBTY3JvbGxWaWV3Ojpjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIGNvbnN0IEludFJlY3QmIGxvY2FsUmVjdCkgY29uc3QKIHsKICAgICAvLyBTY3JvbGxiYXJz
IHdvbid0IGJlIHRyYW5zZm9ybWVkIHdpdGhpbiB1cwogICAgIEludFJlY3QgbmV3UmVjdCA9IGxv
Y2FsUmVjdDsKLSAgICBuZXdSZWN0Lm1vdmVCeShzY3JvbGxiYXItPmxvY2F0aW9uKCkpOworICAg
IG5ld1JlY3QubW92ZUJ5KHNjcm9sbGJhci5sb2NhdGlvbigpKTsKICAgICByZXR1cm4gbmV3UmVj
dDsKIH0KIAotSW50UmVjdCBTY3JvbGxWaWV3Ojpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9T
Y3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHBhcmVu
dFJlY3QpIGNvbnN0CitJbnRSZWN0IFNjcm9sbFZpZXc6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYg
cGFyZW50UmVjdCkgY29uc3QKIHsKICAgICBJbnRSZWN0IG5ld1JlY3QgPSBwYXJlbnRSZWN0Owog
ICAgIC8vIFNjcm9sbGJhcnMgd29uJ3QgYmUgdHJhbnNmb3JtZWQgd2l0aGluIHVzCi0gICAgbmV3
UmVjdC5tb3ZlQnkoLXNjcm9sbGJhci0+bG9jYXRpb24oKSk7CisgICAgbmV3UmVjdC5tb3ZlQnko
LXNjcm9sbGJhci5sb2NhdGlvbigpKTsKICAgICByZXR1cm4gbmV3UmVjdDsKIH0KIAogLy8gRklY
TUU6IHRlc3QgdGhlc2Ugb24gd2luZG93cwotSW50UG9pbnQgU2Nyb2xsVmlldzo6Y29udmVydEZy
b21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBj
b25zdCBJbnRQb2ludCYgbG9jYWxQb2ludCkgY29uc3QKK0ludFBvaW50IFNjcm9sbFZpZXc6OmNv
bnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNjcm9s
bGJhciwgY29uc3QgSW50UG9pbnQmIGxvY2FsUG9pbnQpIGNvbnN0CiB7CiAgICAgLy8gU2Nyb2xs
YmFycyB3b24ndCBiZSB0cmFuc2Zvcm1lZCB3aXRoaW4gdXMKICAgICBJbnRQb2ludCBuZXdQb2lu
dCA9IGxvY2FsUG9pbnQ7Ci0gICAgbmV3UG9pbnQubW92ZUJ5KHNjcm9sbGJhci0+bG9jYXRpb24o
KSk7CisgICAgbmV3UG9pbnQubW92ZUJ5KHNjcm9sbGJhci5sb2NhdGlvbigpKTsKICAgICByZXR1
cm4gbmV3UG9pbnQ7CiB9CiAKLUludFBvaW50IFNjcm9sbFZpZXc6OmNvbnZlcnRGcm9tQ29udGFp
bmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50
UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdAorSW50UG9pbnQgU2Nyb2xsVmlldzo6Y29udmVydEZy
b21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBj
b25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQgbmV3UG9p
bnQgPSBwYXJlbnRQb2ludDsKICAgICAvLyBTY3JvbGxiYXJzIHdvbid0IGJlIHRyYW5zZm9ybWVk
IHdpdGhpbiB1cwotICAgIG5ld1BvaW50Lm1vdmVCeSgtc2Nyb2xsYmFyLT5sb2NhdGlvbigpKTsK
KyAgICBuZXdQb2ludC5tb3ZlQnkoLXNjcm9sbGJhci5sb2NhdGlvbigpKTsKICAgICByZXR1cm4g
bmV3UG9pbnQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBkMDdm
ZmNlNDc1YTczYzE5MjA0Y2ZlN2QzNzcxYTVjOTA2NjE3NTBlLi5jNzljNmMxMDY1ZThkYjRlMjRj
Y2JmOGU1YTVmMmYwNzcyYjc5MTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5o
CkBAIC0zNjcsMTAgKzM2NywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhaW50U2Ny
b2xsQ29ybmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIGNvcm5lclJlY3QpOwog
ICAgIHZpcnR1YWwgdm9pZCBwYWludFNjcm9sbGJhcihHcmFwaGljc0NvbnRleHQmLCBTY3JvbGxi
YXImLCBjb25zdCBJbnRSZWN0Jik7CiAKLSAgICBJbnRSZWN0IGNvbnZlcnRGcm9tU2Nyb2xsYmFy
VG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxi
YXIoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IEludFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3Jv
bGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIEludFBvaW50IGNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqLCBjb25z
dCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEludFJlY3QgY29udmVydEZyb21TY3Jv
bGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBj
b25zdCBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Nj
cm9sbGJhcihjb25zdCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0
IFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgSW50UG9p
bnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYs
IGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGNhbGN1bGF0ZUFu
ZFBhaW50T3ZlcmhhbmdBcmVhcyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBkaXJ0
eVJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxl
QXJlYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKaW5k
ZXggOTM2NTUzYjAyNmI2NGQyMzllOWE0ODVkZjM2YTc1NjI2Y2Q4ODczMS4uNzViOTc2YTNkNTNl
MTkzNjA2MTc3MTEyZTQxYzk5N2MzY2FkYWE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGFibGVBcmVhLmNwcApAQCAtMzY5LDE1ICszNjksMTUgQEAgdm9pZCBTY3JvbGxhYmxl
QXJlYTo6c2V0U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNjcm9sbGJhck92ZXJsYXlTdHlsZSBvdmVy
bGF5U3R5bGUKICAgICB9CiB9CiAKLXZvaWQgU2Nyb2xsYWJsZUFyZWE6OmludmFsaWRhdGVTY3Jv
bGxiYXIoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCit2b2lkIFNj
cm9sbGFibGVBcmVhOjppbnZhbGlkYXRlU2Nyb2xsYmFyKFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewotICAgIGlmIChzY3JvbGxiYXIgPT0gaG9yaXpvbnRhbFNj
cm9sbGJhcigpKSB7CisgICAgaWYgKCZzY3JvbGxiYXIgPT0gaG9yaXpvbnRhbFNjcm9sbGJhcigp
KSB7CiAgICAgICAgIGlmIChHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyID0gbGF5ZXJGb3JI
b3Jpem9udGFsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAgICAgIGdyYXBoaWNzTGF5ZXItPnNldE5l
ZWRzRGlzcGxheSgpOwogICAgICAgICAgICAgZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNOZWVk
c0Rpc3BsYXkoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgIH0gZWxzZSBp
ZiAoc2Nyb2xsYmFyID09IHZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKKyAgICB9IGVsc2UgaWYgKCZz
Y3JvbGxiYXIgPT0gdmVydGljYWxTY3JvbGxiYXIoKSkgewogICAgICAgICBpZiAoR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllciA9IGxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIoKSkgewogICAg
ICAgICAgICAgZ3JhcGhpY3NMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7CiAgICAgICAgICAgICBn
cmFwaGljc0xheWVyLT5zZXRDb250ZW50c05lZWRzRGlzcGxheSgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5kZXggOGY4ZTgzYzJhMzJlYzdmMTc3Mzg4OTA3Njhj
NWJkNmE0ZmQ4M2I2ZC4uNGY2ODMyYjk4MDVmYTMyMDQ2YjY0MmFiN2I3YjRhNWMyNGJlYzA2ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCkBAIC0xNDcsNyArMTQ3
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2ZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGludCBzY3JvbGxTaXplKFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25z
dCA9IDA7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGludmFsaWRhdGVTY3JvbGxi
YXIoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsYmFyKFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgSW50UmVjdCBzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QgPSAwOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlU2Nyb2xsQ29ybmVyKGNvbnN0IEludFJl
Y3QmKTsKQEAgLTE1OSwyMSArMTU5LDIxIEBAIHB1YmxpYzoKICAgICAvLyBDb252ZXJ0IHBvaW50
cyBhbmQgcmVjdHMgYmV0d2VlbiB0aGUgc2Nyb2xsYmFyIGFuZCBpdHMgY29udGFpbmluZyB2aWV3
LgogICAgIC8vIFRoZSBjbGllbnQgbmVlZHMgdG8gaW1wbGVtZW50IHRoZXNlIGluIG9yZGVyIHRv
IGJlIGF3YXJlIG9mIGxheW91dCBlZmZlY3RzCiAgICAgLy8gbGlrZSBDU1MgdHJhbnNmb3Jtcy4K
LSAgICB2aXJ0dWFsIEludFJlY3QgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3
KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxiYXJSZWN0
KSBjb25zdAorICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFp
bmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHNjcm9s
bGJhclJlY3QpIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLT5XaWRnZXQ6
OmNvbnZlcnRUb0NvbnRhaW5pbmdWaWV3KHNjcm9sbGJhclJlY3QpOworICAgICAgICByZXR1cm4g
c2Nyb2xsYmFyLldpZGdldDo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoc2Nyb2xsYmFyUmVjdCk7
CiAgICAgfQotICAgIHZpcnR1YWwgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9T
Y3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHBhcmVu
dFJlY3QpIGNvbnN0CisgICAgdmlydHVhbCBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYg
cGFyZW50UmVjdCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzY3JvbGxiYXItPldpZGdl
dDo6Y29udmVydEZyb21Db250YWluaW5nVmlldyhwYXJlbnRSZWN0KTsKKyAgICAgICAgcmV0dXJu
IHNjcm9sbGJhci5XaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcocGFyZW50UmVjdCk7
CiAgICAgfQotICAgIHZpcnR1YWwgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRh
aW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRQb2ludCYgc2Ny
b2xsYmFyUG9pbnQpIGNvbnN0CisgICAgdmlydHVhbCBJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9s
bGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IElu
dFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBzY3Jv
bGxiYXItPldpZGdldDo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoc2Nyb2xsYmFyUG9pbnQpOwor
ICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLldpZGdldDo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXco
c2Nyb2xsYmFyUG9pbnQpOwogICAgIH0KLSAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRGcm9t
Q29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29u
c3QgSW50UG9pbnQmIHBhcmVudFBvaW50KSBjb25zdAorICAgIHZpcnR1YWwgSW50UG9pbnQgY29u
dmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xs
YmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiAgICAgewotICAgICAgICBy
ZXR1cm4gc2Nyb2xsYmFyLT5XaWRnZXQ6OmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcocGFyZW50
UG9pbnQpOworICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLldpZGdldDo6Y29udmVydEZyb21Db250
YWluaW5nVmlldyhwYXJlbnRQb2ludCk7CiAgICAgfQogCiAgICAgaW50IGhvcml6b250YWxTY3Jv
bGxiYXJJbnRydXNpb24oKSBjb25zdDsKQEAgLTMyMyw3ICszMjMsNyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCByZXNldFNjcm9sbE9yaWdpbkNoYW5nZWQoKSB7IG1fc2Nyb2xsT3JpZ2luQ2hhbmdl
ZCA9IGZhbHNlOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIGZsb2F0IGFkanVzdFNj
cm9sbFN0ZXBGb3JGaXhlZENvbnRlbnQoZmxvYXQgc3RlcCwgU2Nyb2xsYmFyT3JpZW50YXRpb24s
IFNjcm9sbEdyYW51bGFyaXR5KTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJh
clJlY3QoU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyJiwgY29uc3QgSW50UmVjdCYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5lclJlY3QoY29uc3QgSW50UmVj
dCYpID0gMDsKIAogICAgIGZyaWVuZCBjbGFzcyBTY3JvbGxpbmdDb29yZGluYXRvcjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IDA1YmYxNmEyOTlmMDMwZDkyMmNhZjU4
MjI0YzFmZDI2N2M5NTNmNmUuLjgxODU0ZmUyMjc2OThlYzI2MTVlZGJiYzVmZWQ0MDY3N2U3MTM1
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApAQCAtNDU0LDI3ICs0NTQs
MjcgQEAgdm9pZCBTY3JvbGxiYXI6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
CiAgICAgaWYgKHN1cHByZXNzSW52YWxpZGF0aW9uKCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1fc2Nyb2xsYWJsZUFyZWEuaW52YWxpZGF0ZVNjcm9sbGJhcih0aGlzLCByZWN0KTsKKyAgICBt
X3Njcm9sbGFibGVBcmVhLmludmFsaWRhdGVTY3JvbGxiYXIoKnRoaXMsIHJlY3QpOwogfQogCiBJ
bnRSZWN0IFNjcm9sbGJhcjo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYg
bG9jYWxSZWN0KSBjb25zdAogewotICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmNvbnZlcnRG
cm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyh0aGlzLCBsb2NhbFJlY3QpOworICAgIHJldHVy
biBtX3Njcm9sbGFibGVBcmVhLmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldygq
dGhpcywgbG9jYWxSZWN0KTsKIH0KIAogSW50UmVjdCBTY3JvbGxiYXI6OmNvbnZlcnRGcm9tQ29u
dGFpbmluZ1ZpZXcoY29uc3QgSW50UmVjdCYgcGFyZW50UmVjdCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV9zY3JvbGxhYmxlQXJlYS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIo
dGhpcywgcGFyZW50UmVjdCk7CisgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEuY29udmVydEZy
b21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKCp0aGlzLCBwYXJlbnRSZWN0KTsKIH0KIAogSW50
UG9pbnQgU2Nyb2xsYmFyOjpjb252ZXJ0VG9Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYg
bG9jYWxQb2ludCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5jb252ZXJ0
RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcodGhpcywgbG9jYWxQb2ludCk7CisgICAgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWEuY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3
KCp0aGlzLCBsb2NhbFBvaW50KTsKIH0KIAogSW50UG9pbnQgU2Nyb2xsYmFyOjpjb252ZXJ0RnJv
bUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3Jv
bGxiYXIodGhpcywgcGFyZW50UG9pbnQpOworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLmNv
bnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcigqdGhpcywgcGFyZW50UG9pbnQpOwog
fQogCiBib29sIFNjcm9sbGJhcjo6c3VwcG9ydHNVcGRhdGVPblNlY29uZGFyeVRocmVhZCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCmluZGV4
IDZhMGFkYmU4NTYxNDY0ODY4MTQwYjExY2MxMjY4MzJmOWQxMzFlNmMuLjBkZjhmNWMwZDNmYjBh
MzI4ZmMyNGVmOWFhZDZlMjUzOTYxMGQxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9Qb3B1cE1lbnVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9Qb3B1cE1lbnVXaW4uY3BwCkBAIC03MjAsMTAgKzcyMCwxMCBAQCB2b2lkIFBvcHVwTWVu
dVdpbjo6c2Nyb2xsVG8oaW50IG9mZnNldCkKICAgICA6OlVwZGF0ZVdpbmRvdyhtX3BvcHVwKTsK
IH0KIAotdm9pZCBQb3B1cE1lbnVXaW46OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJh
ciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQordm9pZCBQb3B1cE1lbnVXaW46Omlu
dmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0
JiByZWN0KQogewogICAgIEludFJlY3Qgc2Nyb2xsUmVjdCA9IHJlY3Q7Ci0gICAgc2Nyb2xsUmVj
dC5tb3ZlKHNjcm9sbGJhci0+eCgpLCBzY3JvbGxiYXItPnkoKSk7CisgICAgc2Nyb2xsUmVjdC5t
b3ZlKHNjcm9sbGJhci54KCksIHNjcm9sbGJhci55KCkpOwogICAgIFJFQ1QgciA9IHNjcm9sbFJl
Y3Q7CiAgICAgOjpJbnZhbGlkYXRlUmVjdChtX3BvcHVwLCAmciwgZmFsc2UpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luL1BvcHVwTWVudVdpbi5oCmluZGV4IGE2OWRkYzg5OWM3ODli
ZDg2NTJlODQyYmFlZDgxZDc0MTk4NDczYTcuLjMxMDYxYjZlZDQ4NDhkMGZmODA0YmYzNjY4Yjc5
MGUwZjU2ODRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9Qb3B1
cE1lbnVXaW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vUG9wdXBNZW51V2lu
LmgKQEAgLTk0LDcgKzk0LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgc2Nyb2xsU2l6ZShTY3JvbGxi
YXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbE9mZnNldChTY3Jv
bGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRTY3JvbGxPZmZz
ZXQoY29uc3QgSW50UG9pbnQmKSBvdmVycmlkZTsKLSAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKSBv
dmVycmlkZSB7IH0KICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogICAgIFNjcm9sbGFibGVBcmVhKiBlbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCmluZGV4IGY2MjUyMTk1ODIzYjZkOTU3NWM1N2ZjMWI0YzFkOWFmMGIyMmJjMjQu
LjAzZGZlNzc3ZmM0YzcwNjJhMDk4MzAwNThlYWY3ZTVkYzJkZWNiNDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMjg2MCw3ICsyODYwLDcgQEAgYm9vbCBS
ZW5kZXJMYXllcjo6aXNTY3JvbGxDb3JuZXJWaXNpYmxlKCkgY29uc3QKICAgICByZXR1cm4gIXNj
cm9sbENvcm5lclJlY3QoKS5pc0VtcHR5KCk7CiB9CiAKLUludFJlY3QgUmVuZGVyTGF5ZXI6OmNv
bnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqIHNjcm9s
bGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKK0ludFJlY3QgUmVuZGVy
TGF5ZXI6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxi
YXImIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKIHsKICAg
ICBJbnRSZWN0IHJlY3QgPSBzY3JvbGxiYXJSZWN0OwogICAgIHJlY3QubW92ZShzY3JvbGxiYXJP
ZmZzZXQoc2Nyb2xsYmFyKSk7CkBAIC0yODY4LDIxICsyODY4LDIxIEBAIEludFJlY3QgUmVuZGVy
TGF5ZXI6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxi
YXIqIHNjcm9sCiAgICAgcmV0dXJuIHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpLmNvbnZl
cnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KCZyZW5kZXJlcigpLCByZWN0KTsKIH0KIAot
SW50UmVjdCBSZW5kZXJMYXllcjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFy
KGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBwYXJlbnRSZWN0KSBj
b25zdAorSW50UmVjdCBSZW5kZXJMYXllcjo6Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Ny
b2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBwYXJlbnRS
ZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHJlbmRlcmVyKCkudmlldygpLmZyYW1l
VmlldygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRlcmVyKCZyZW5kZXJlcigpLCBw
YXJlbnRSZWN0KTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJhck9mZnNldChzY3JvbGxiYXIpKTsK
ICAgICByZXR1cm4gcmVjdDsKIH0KIAotSW50UG9pbnQgUmVuZGVyTGF5ZXI6OmNvbnZlcnRGcm9t
U2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29u
c3QgSW50UG9pbnQmIHNjcm9sbGJhclBvaW50KSBjb25zdAorSW50UG9pbnQgUmVuZGVyTGF5ZXI6
OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXImIHNj
cm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHNjcm9sbGJhclBvaW50KSBjb25zdAogewogICAgIElu
dFBvaW50IHBvaW50ID0gc2Nyb2xsYmFyUG9pbnQ7CiAgICAgcG9pbnQubW92ZShzY3JvbGxiYXJP
ZmZzZXQoc2Nyb2xsYmFyKSk7CiAgICAgcmV0dXJuIHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmll
dygpLmNvbnZlcnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KCZyZW5kZXJlcigpLCBwb2lu
dCk7CiB9CiAKLUludFBvaW50IFJlbmRlckxheWVyOjpjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3
VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50JiBw
YXJlbnRQb2ludCkgY29uc3QKK0ludFBvaW50IFJlbmRlckxheWVyOjpjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IElu
dFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHJlbmRl
cmVyKCkudmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRl
cmVyKCZyZW5kZXJlcigpLCBwYXJlbnRQb2ludCk7CiAgICAgcG9pbnQubW92ZSgtc2Nyb2xsYmFy
T2Zmc2V0KHNjcm9sbGJhcikpOwpAQCAtMzAwOCwyNiArMzAwOCwyNiBAQCBMYXlvdXRVbml0IFJl
bmRlckxheWVyOjpob3Jpem9udGFsU2Nyb2xsYmFyU3RhcnQoaW50IG1pblgpIGNvbnN0CiAgICAg
cmV0dXJuIHg7CiB9CiAKLUludFNpemUgUmVuZGVyTGF5ZXI6OnNjcm9sbGJhck9mZnNldChjb25z
dCBTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29uc3QKK0ludFNpemUgUmVuZGVyTGF5ZXI6OnNjcm9s
bGJhck9mZnNldChjb25zdCBTY3JvbGxiYXImIHNjcm9sbGJhcikgY29uc3QKIHsKICAgICBSZW5k
ZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogCi0gICAgaWYgKHNjcm9sbGJhciA9PSBtX3ZCYXIu
Z2V0KCkpCisgICAgaWYgKCZzY3JvbGxiYXIgPT0gbV92QmFyLmdldCgpKQogICAgICAgICByZXR1
cm4gSW50U2l6ZSh2ZXJ0aWNhbFNjcm9sbGJhclN0YXJ0KDAsIGJveC0+d2lkdGgoKSksIGJveC0+
Ym9yZGVyVG9wKCkpOwogCi0gICAgaWYgKHNjcm9sbGJhciA9PSBtX2hCYXIuZ2V0KCkpCi0gICAg
ICAgIHJldHVybiBJbnRTaXplKGhvcml6b250YWxTY3JvbGxiYXJTdGFydCgwKSwgYm94LT5oZWln
aHQoKSAtIGJveC0+Ym9yZGVyQm90dG9tKCkgLSBzY3JvbGxiYXItPmhlaWdodCgpKTsKKyAgICBp
ZiAoJnNjcm9sbGJhciA9PSBtX2hCYXIuZ2V0KCkpCisgICAgICAgIHJldHVybiBJbnRTaXplKGhv
cml6b250YWxTY3JvbGxiYXJTdGFydCgwKSwgYm94LT5oZWlnaHQoKSAtIGJveC0+Ym9yZGVyQm90
dG9tKCkgLSBzY3JvbGxiYXIuaGVpZ2h0KCkpOwogICAgIAogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBJbnRTaXplKCk7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OmludmFs
aWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQordm9pZCBSZW5kZXJMYXllcjo6aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFy
JiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFzaG93c092ZXJm
bG93Q29udHJvbHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKHNjcm9sbGJhciA9PSBt
X3ZCYXIuZ2V0KCkpIHsKKyAgICBpZiAoJnNjcm9sbGJhciA9PSBtX3ZCYXIuZ2V0KCkpIHsKICAg
ICAgICAgaWYgKEdyYXBoaWNzTGF5ZXIqIGxheWVyID0gbGF5ZXJGb3JWZXJ0aWNhbFNjcm9sbGJh
cigpKSB7CiAgICAgICAgICAgICBsYXllci0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwog
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMzA0NiwxMCArMzA0NiwxMCBAQCB2b2lkIFJlbmRlckxh
eWVyOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3Qg
SW50UmVjdCYgcgogICAgIGlmICghYm94LT5wYXJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKHNjcm9sbGJhciA9PSBtX3ZCYXIuZ2V0KCkpCisgICAgaWYgKCZzY3JvbGxiYXIgPT0g
bV92QmFyLmdldCgpKQogICAgICAgICBzY3JvbGxSZWN0Lm1vdmUodmVydGljYWxTY3JvbGxiYXJT
dGFydCgwLCBib3gtPndpZHRoKCkpLCBib3gtPmJvcmRlclRvcCgpKTsKICAgICBlbHNlCi0gICAg
ICAgIHNjcm9sbFJlY3QubW92ZShob3Jpem9udGFsU2Nyb2xsYmFyU3RhcnQoMCksIGJveC0+aGVp
Z2h0KCkgLSBib3gtPmJvcmRlckJvdHRvbSgpIC0gc2Nyb2xsYmFyLT5oZWlnaHQoKSk7CisgICAg
ICAgIHNjcm9sbFJlY3QubW92ZShob3Jpem9udGFsU2Nyb2xsYmFyU3RhcnQoMCksIGJveC0+aGVp
Z2h0KCkgLSBib3gtPmJvcmRlckJvdHRvbSgpIC0gc2Nyb2xsYmFyLmhlaWdodCgpKTsKICAgICBM
YXlvdXRSZWN0IHJlcGFpbnRSZWN0ID0gc2Nyb2xsUmVjdDsKICAgICByZW5kZXJCb3goKS0+Zmxp
cEZvcldyaXRpbmdNb2RlKHJlcGFpbnRSZWN0KTsKICAgICByZW5kZXJlcigpLnJlcGFpbnRSZWN0
YW5nbGUocmVwYWludFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApp
bmRleCBlMTA1MTQ5MjI1N2I1OTdhMmE4MGNjN2Y1NTVjZDk2ZWNiNjJlYTg5Li5kZTdkOGRiYjc1
ZTNiNDUxMDRmMWUzMmJjMDBlNDI1YWZlYTcwOTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaApAQCAtODYwLDE1ICs4NjAsMTUgQEAgcHJpdmF0ZToKICAgICBpbnQgc2Ny
b2xsT2Zmc2V0KFNjcm9sbGJhck9yaWVudGF0aW9uKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAg
ICAvLyBTY3JvbGxhYmxlQXJlYSBpbnRlcmZhY2UKLSAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxi
YXJSZWN0KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0IEludFJlY3QmKSBv
dmVycmlkZTsKICAgICBib29sIGlzQWN0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBp
c1Njcm9sbENvcm5lclZpc2libGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBJbnRSZWN0IHNjcm9s
bENvcm5lclJlY3QoKSBjb25zdCBvdmVycmlkZTsKLSAgICBJbnRSZWN0IGNvbnZlcnRGcm9tU2Ny
b2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0Jikg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgSW50UmVjdCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9T
Y3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiwgY29uc3QgSW50UmVjdCYpIGNvbnN0IG92ZXJyaWRl
OwotICAgIEludFBvaW50IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25z
dCBTY3JvbGxiYXIqLCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOwotICAgIEludFBv
aW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIq
LCBjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEludFJlY3QgY29udmVydEZy
b21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFJl
Y3QmKSBjb25zdCBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXImLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3
KGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9s
bGJhciYsIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgaW50IHNjcm9sbFNp
emUoU2Nyb2xsYmFyT3JpZW50YXRpb24pIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0U2Ny
b2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYpIG92ZXJyaWRlOwogCkBAIC05MDEsNyArOTAx
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9uJik7
CiAgICAgdm9pZCB1cGRhdGVDb21wb3NpdGluZ0xheWVyc0FmdGVyU2Nyb2xsKCk7CiAKLSAgICBJ
bnRTaXplIHNjcm9sbGJhck9mZnNldChjb25zdCBTY3JvbGxiYXIqKSBjb25zdDsKKyAgICBJbnRT
aXplIHNjcm9sbGJhck9mZnNldChjb25zdCBTY3JvbGxiYXImKSBjb25zdDsKICAgICAKICAgICB2
b2lkIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KGJvb2wgaGFzT3ZlcmZsb3cpOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApp
bmRleCBjM2RlM2U2NjMyYzRjZDZmY2UzN2FmZjFhMTliMWY3NzFjNDViM2YyLi5lMDJjZjFkMjM1
M2M1OTRkMGJlNTlkMTc1N2UzN2U2YjYxZWM1Y2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMzQ5Miw3ICszNDkyLDcg
QEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRlc3Ryb3lSb290TGF5ZXIoKQogICAgICAg
ICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+
c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
LT5zY3JvbGxhYmxlQXJlYVNjcm9sbGJhckxheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFt
ZVZpZXcoKSwgSG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgICAgIGlmIChTY3JvbGxiYXIqIGhv
cml6b250YWxTY3JvbGxiYXIgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkudmVydGljYWxTY3Jv
bGxiYXIoKSkKLSAgICAgICAgICAgIG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5pbnZhbGlkYXRl
U2Nyb2xsYmFyKGhvcml6b250YWxTY3JvbGxiYXIsIEludFJlY3QoSW50UG9pbnQoMCwgMCksIGhv
cml6b250YWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpLnNpemUoKSkpOworICAgICAgICAgICAgbV9y
ZW5kZXJWaWV3LmZyYW1lVmlldygpLmludmFsaWRhdGVTY3JvbGxiYXIoKmhvcml6b250YWxTY3Jv
bGxiYXIsIEludFJlY3QoSW50UG9pbnQoMCwgMCksIGhvcml6b250YWxTY3JvbGxiYXItPmZyYW1l
UmVjdCgpLnNpemUoKSkpOwogICAgIH0KIAogICAgIGlmIChtX2xheWVyRm9yVmVydGljYWxTY3Jv
bGxiYXIpIHsKQEAgLTM1MDEsNyArMzUwMSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpkZXN0cm95Um9vdExheWVyKCkKICAgICAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAg
ICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJMYXll
ckRpZENoYW5nZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCksIFZlcnRpY2FsU2Nyb2xsYmFyKTsK
ICAgICAgICAgaWYgKFNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIgPSBtX3JlbmRlclZpZXcu
ZnJhbWVWaWV3KCkudmVydGljYWxTY3JvbGxiYXIoKSkKLSAgICAgICAgICAgIG1fcmVuZGVyVmll
dy5mcmFtZVZpZXcoKS5pbnZhbGlkYXRlU2Nyb2xsYmFyKHZlcnRpY2FsU2Nyb2xsYmFyLCBJbnRS
ZWN0KEludFBvaW50KDAsIDApLCB2ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkuc2l6ZSgp
KSk7CisgICAgICAgICAgICBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuaW52YWxpZGF0ZVNjcm9s
bGJhcigqdmVydGljYWxTY3JvbGxiYXIsIEludFJlY3QoSW50UG9pbnQoMCwgMCksIHZlcnRpY2Fs
U2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS5zaXplKCkpKTsKICAgICB9CiAKICAgICBpZiAobV9sYXll
ckZvclNjcm9sbENvcm5lcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCmluZGV4IGNlZDc3NDFlNmIwZGFlOWZmZTk4NTBlYTg2MTNhNzBlMGMxMzIxZGUuLjg5
NzFjMmUyNDZjODJjMGQwNGZjYmIxZDcyNzg0MzFlZThjOTk5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKQEAgLTcyOSw0NCArNzI5LDQ0IEBAIGJvb2wg
UmVuZGVyTGlzdEJveDo6aXNBY3RpdmUoKSBjb25zdAogICAgIHJldHVybiBwYWdlICYmIHBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmlzQWN0aXZlKCk7CiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6
aW52YWxpZGF0ZVNjcm9sbGJhclJlY3QoU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJl
Y3QmIHJlY3QpCit2b2lkIFJlbmRlckxpc3RCb3g6OmludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFNj
cm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEludFJlY3Qg
c2Nyb2xsUmVjdCA9IHJlY3Q7Ci0gICAgc2Nyb2xsUmVjdC5tb3ZlKHdpZHRoKCkgLSBib3JkZXJS
aWdodCgpIC0gc2Nyb2xsYmFyLT53aWR0aCgpLCBib3JkZXJUb3AoKSk7CisgICAgc2Nyb2xsUmVj
dC5tb3ZlKHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCksIGJvcmRl
clRvcCgpKTsKICAgICByZXBhaW50UmVjdGFuZ2xlKHNjcm9sbFJlY3QpOwogfQogCi1JbnRSZWN0
IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25z
dCBTY3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29u
c3QKK0ludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5p
bmdWaWV3KGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxi
YXJSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHNjcm9sbGJhclJlY3Q7Ci0gICAg
aW50IHNjcm9sbGJhckxlZnQgPSB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci0+
d2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHdpZHRoKCkgLSBib3JkZXJSaWdodCgp
IC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgp
OwogICAgIHJlY3QubW92ZShzY3JvbGxiYXJMZWZ0LCBzY3JvbGxiYXJUb3ApOwogICAgIHJldHVy
biB2aWV3KCkuZnJhbWVWaWV3KCkuY29udmVydEZyb21SZW5kZXJlclRvQ29udGFpbmluZ1ZpZXco
dGhpcywgcmVjdCk7CiB9CiAKLUludFJlY3QgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJ
bnRSZWN0JiBwYXJlbnRSZWN0KSBjb25zdAorSW50UmVjdCBSZW5kZXJMaXN0Qm94Ojpjb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxiYXIs
IGNvbnN0IEludFJlY3QmIHBhcmVudFJlY3QpIGNvbnN0CiB7CiAgICAgSW50UmVjdCByZWN0ID0g
dmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1JlbmRlcmVyKHRo
aXMsIHBhcmVudFJlY3QpOwotICAgIGludCBzY3JvbGxiYXJMZWZ0ID0gd2lkdGgoKSAtIGJvcmRl
clJpZ2h0KCkgLSBzY3JvbGxiYXItPndpZHRoKCk7CisgICAgaW50IHNjcm9sbGJhckxlZnQgPSB3
aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci53aWR0aCgpOwogICAgIGludCBzY3Jv
bGxiYXJUb3AgPSBib3JkZXJUb3AoKTsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGJhckxlZnQsIC1z
Y3JvbGxiYXJUb3ApOwogICAgIHJldHVybiByZWN0OwogfQogCi1JbnRQb2ludCBSZW5kZXJMaXN0
Qm94Ojpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFy
KiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29uc3QKK0ludFBv
aW50IFJlbmRlckxpc3RCb3g6OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhj
b25zdCBTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHNjcm9sbGJhclBvaW50
KSBjb25zdAogewogICAgIEludFBvaW50IHBvaW50ID0gc2Nyb2xsYmFyUG9pbnQ7Ci0gICAgaW50
IHNjcm9sbGJhckxlZnQgPSB3aWR0aCgpIC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci0+d2lk
dGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFyTGVmdCA9IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0g
c2Nyb2xsYmFyLndpZHRoKCk7CiAgICAgaW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwog
ICAgIHBvaW50Lm1vdmUoc2Nyb2xsYmFyTGVmdCwgc2Nyb2xsYmFyVG9wKTsKICAgICByZXR1cm4g
dmlldygpLmZyYW1lVmlldygpLmNvbnZlcnRGcm9tUmVuZGVyZXJUb0NvbnRhaW5pbmdWaWV3KHRo
aXMsIHBvaW50KTsKIH0KIAotSW50UG9pbnQgUmVuZGVyTGlzdEJveDo6Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciogc2Nyb2xsYmFyLCBjb25zdCBJ
bnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CitJbnRQb2ludCBSZW5kZXJMaXN0Qm94Ojpjb252
ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyJiBzY3JvbGxi
YXIsIGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKIHsKICAgICBJbnRQb2ludCBw
b2ludCA9IHZpZXcoKS5mcmFtZVZpZXcoKS5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5k
ZXJlcih0aGlzLCBwYXJlbnRQb2ludCk7Ci0gICAgaW50IHNjcm9sbGJhckxlZnQgPSB3aWR0aCgp
IC0gYm9yZGVyUmlnaHQoKSAtIHNjcm9sbGJhci0+d2lkdGgoKTsKKyAgICBpbnQgc2Nyb2xsYmFy
TGVmdCA9IHdpZHRoKCkgLSBib3JkZXJSaWdodCgpIC0gc2Nyb2xsYmFyLndpZHRoKCk7CiAgICAg
aW50IHNjcm9sbGJhclRvcCA9IGJvcmRlclRvcCgpOwogICAgIHBvaW50Lm1vdmUoLXNjcm9sbGJh
ckxlZnQsIC1zY3JvbGxiYXJUb3ApOwogICAgIHJldHVybiBwb2ludDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDllMzA1NmEwYjZhNjEwOTAyNmY5Nzc4ZjVm
YWExMWU5OTE4YjJiZDYuLjI4NjYwMjIzZDFlZDhkMDA3MTk3ZDIwZjhhYmQ1MGZjNWU4Y2Q4YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtMTE0LDE1ICsx
MTQsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBTY3JvbGxP
ZmZzZXQmKSBvdmVycmlkZTsKICAgICBTY3JvbGxQb3NpdGlvbiBtaW5pbXVtU2Nyb2xsUG9zaXRp
b24oKSBjb25zdCBvdmVycmlkZTsKICAgICBTY3JvbGxQb3NpdGlvbiBtYXhpbXVtU2Nyb2xsUG9z
aXRpb24oKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0
KFNjcm9sbGJhciosIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXJSZWN0KFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKICAg
ICBib29sIGlzQWN0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1Njcm9sbENvcm5l
clZpc2libGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfSAvLyBXZSBkb24ndCBz
dXBwb3J0IHJlc2l6ZSBvbiBsaXN0IGJveGVzIHlldC4gSWYgd2UgZGlkIHRoZXNlIHdvdWxkIGhh
dmUgdG8gY2hhbmdlLgogICAgIEludFJlY3Qgc2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQogICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbENvcm5l
clJlY3QoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQotICAgIEludFJlY3QgY29udmVydEZy
b21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFNjcm9sbGJhciosIGNvbnN0IEludFJl
Y3QmKSBjb25zdCBvdmVycmlkZTsKLSAgICBJbnRSZWN0IGNvbnZlcnRGcm9tQ29udGFpbmluZ1Zp
ZXdUb1Njcm9sbGJhcihjb25zdCBTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0JikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgSW50UG9pbnQgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3
KGNvbnN0IFNjcm9sbGJhciosIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
SW50UG9pbnQgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9s
bGJhciosIGNvbnN0IEludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgSW50UmVjdCBjb252
ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiwgY29uc3Qg
SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOworICAgIEludFJlY3QgY29udmVydEZyb21Db250YWlu
aW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYsIGNvbnN0IEludFJlY3QmKSBjb25z
dCBvdmVycmlkZTsKKyAgICBJbnRQb2ludCBjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmlu
Z1ZpZXcoY29uc3QgU2Nyb2xsYmFyJiwgY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsK
KyAgICBJbnRQb2ludCBjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3Qg
U2Nyb2xsYmFyJiwgY29uc3QgSW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKICAgICBTY3JvbGxi
YXIqIHZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV92QmFyLmdl
dCgpOyB9CiAgICAgSW50U2l6ZSBjb250ZW50c1NpemUoKSBjb25zdCBvdmVycmlkZTsKICAgICBJ
bnRTaXplIHZpc2libGVTaXplKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSW50U2l6ZSh3aWR0
aCgpLCBoZWlnaHQoKSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmgKaW5kZXggNTMxYzBhZDExOGRm
YTEzYWExNjQ5ZDI4MTgwNjJmNDM1YmNiNzVmOS4uNzhlZWU5ZGJjMDg3YTBhMDU2ZWFhZmU4OWE5
MjliZDQ0YzhlM2I5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLmgKQEAgLTE5MSw3ICsxOTEsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgaGFzU2Nyb2xsYWJsZU9yUnViYmVyYmFuZGFibGVBbmNlc3Rv
cigpIG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICBXZWJDb3JlOjpJbnRSZWN0IHNjcm9s
bGFibGVBcmVhQm91bmRpbmdCb3goYm9vbCogPSBudWxscHRyKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2b2lkIHNldFNjcm9sbE9mZnNldChjb25zdCBXZWJDb3JlOjpTY3JvbGxPZmZzZXQmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxiYXJSZWN0KFdlYkNvcmU6OlNjcm9sbGJh
ciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2b2lkIGludmFsaWRh
dGVTY3JvbGxiYXJSZWN0KFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBvdmVycmlkZTsKICAgICB2b2lkIGludmFsaWRhdGVTY3JvbGxDb3JuZXJSZWN0KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpJbnRQb2ludCBsYXN0
S25vd25Nb3VzZVBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYXN0TW91c2VQ
b3NpdGlvbkluUGx1Z2luQ29vcmRpbmF0ZXM7IH0KICAgICBpbnQgc2Nyb2xsU2l6ZShXZWJDb3Jl
OjpTY3JvbGxiYXJPcmllbnRhdGlvbikgY29uc3Qgb3ZlcnJpZGU7CkBAIC0yMDcsMTAgKzIwNywx
MCBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNjcm9sbGJhciogdmVydGljYWxTY3JvbGxiYXIo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLmdldCgpOyB9CiAg
ICAgYm9vbCBzaG91bGRTdXNwZW5kU2Nyb2xsQW5pbWF0aW9ucygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIGZhbHNlOyB9IC8vIElmIHdlIHJldHVybiB0cnVlLCBTY3JvbGxBbmltYXRvck1hYyB3
aWxsIGtlZXAgY3ljbGluZyBhIHRpbWVyIGZvcmV2ZXIsIHdhaXRpbmcgZm9yIGEgZ29vZCB0aW1l
IHRvIGFuaW1hdGUuCiAgICAgdm9pZCBzY3JvbGxiYXJTdHlsZUNoYW5nZWQoV2ViQ29yZTo6U2Ny
b2xsYmFyU3R5bGUsIGJvb2wgZm9yY2VVcGRhdGUpIG92ZXJyaWRlOwotICAgIFdlYkNvcmU6Oklu
dFJlY3QgY29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFdlYkNvcmU6
OlNjcm9sbGJhciosIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0
IG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OkludFJlY3QgY29udmVydEZyb21Db250YWluaW5nVmll
d1RvU2Nyb2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciosIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHBhcmVudFJlY3QpIGNvbnN0IG92ZXJyaWRlOwotICAgIFdlYkNvcmU6OkludFBvaW50
IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBXZWJDb3JlOjpTY3Jv
bGxiYXIqLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsYmFyUG9pbnQpIGNvbnN0IG92
ZXJyaWRlOwotICAgIFdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdU
b1Njcm9sbGJhcihjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXIqLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcGFyZW50UG9pbnQpIGNvbnN0IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkludFJlY3Qg
Y29udmVydEZyb21TY3JvbGxiYXJUb0NvbnRhaW5pbmdWaWV3KGNvbnN0IFdlYkNvcmU6OlNjcm9s
bGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0IG92ZXJy
aWRlOworICAgIFdlYkNvcmU6OkludFJlY3QgY29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Ny
b2xsYmFyKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGJhciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHBhcmVudFJlY3QpIGNvbnN0IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkludFBvaW50IGNvbnZl
cnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXIm
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgc2Nyb2xsYmFyUG9pbnQpIGNvbnN0IG92ZXJyaWRl
OworICAgIFdlYkNvcmU6OkludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXdUb1Njcm9s
bGJhcihjb25zdCBXZWJDb3JlOjpTY3JvbGxiYXImLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
cGFyZW50UG9pbnQpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgdXBkYXRlc1Njcm9sbExheWVy
UG9zaXRpb25Pbk1haW5UaHJlYWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAg
ICAgYm9vbCBmb3JjZVVwZGF0ZVNjcm9sbGJhcnNPbk1haW5UaHJlYWRGb3JQZXJmb3JtYW5jZVRl
c3RpbmcoKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IGQ0
ZDllODQzYzM2YjgzODljZGU2YmMyMWM1Y2I4NDBhZWEzYWNiN2MuLjc0ZTIyOGJjNjZmZjg0YjU3
MDk1MGY4NTlmZGZmYjZjYzAyNmQ0ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTY4
OCwzNCArNjg4LDM0IEBAIHZvaWQgUERGUGx1Z2luOjpkZXN0cm95U2Nyb2xsYmFyKFNjcm9sbGJh
ck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQogICAgIH0KIH0KIAotSW50UmVjdCBQREZQbHVnaW46
OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqIHNj
cm9sbGJhciwgY29uc3QgSW50UmVjdCYgc2Nyb2xsYmFyUmVjdCkgY29uc3QKK0ludFJlY3QgUERG
UGx1Z2luOjpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3QgU2Nyb2xs
YmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3QmIHNjcm9sbGJhclJlY3QpIGNvbnN0CiB7CiAg
ICAgSW50UmVjdCByZWN0ID0gc2Nyb2xsYmFyUmVjdDsKLSAgICByZWN0Lm1vdmUoc2Nyb2xsYmFy
LT5sb2NhdGlvbigpIC0gcGx1Z2luVmlldygpLT5sb2NhdGlvbigpKTsKKyAgICByZWN0Lm1vdmUo
c2Nyb2xsYmFyLmxvY2F0aW9uKCkgLSBwbHVnaW5WaWV3KCktPmxvY2F0aW9uKCkpOwogCiAgICAg
cmV0dXJuIHBsdWdpblZpZXcoKS0+ZnJhbWUoKS0+dmlldygpLT5jb252ZXJ0RnJvbVJlbmRlcmVy
VG9Db250YWluaW5nVmlldyhwbHVnaW5WaWV3KCktPnBsdWdpbkVsZW1lbnQoKS0+cmVuZGVyZXIo
KSwgcmVjdCk7CiB9CiAKLUludFJlY3QgUERGUGx1Z2luOjpjb252ZXJ0RnJvbUNvbnRhaW5pbmdW
aWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIsIGNvbnN0IEludFJlY3Qm
IHBhcmVudFJlY3QpIGNvbnN0CitJbnRSZWN0IFBERlBsdWdpbjo6Y29udmVydEZyb21Db250YWlu
aW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Nyb2xsYmFyLCBjb25zdCBJbnRS
ZWN0JiBwYXJlbnRSZWN0KSBjb25zdAogewogICAgIEludFJlY3QgcmVjdCA9IHBsdWdpblZpZXco
KS0+ZnJhbWUoKS0+dmlldygpLT5jb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3VG9SZW5kZXJlcihw
bHVnaW5WaWV3KCktPnBsdWdpbkVsZW1lbnQoKS0+cmVuZGVyZXIoKSwgcGFyZW50UmVjdCk7Ci0g
ICAgcmVjdC5tb3ZlKHBsdWdpblZpZXcoKS0+bG9jYXRpb24oKSAtIHNjcm9sbGJhci0+bG9jYXRp
b24oKSk7CisgICAgcmVjdC5tb3ZlKHBsdWdpblZpZXcoKS0+bG9jYXRpb24oKSAtIHNjcm9sbGJh
ci5sb2NhdGlvbigpKTsKIAogICAgIHJldHVybiByZWN0OwogfQogCi1JbnRQb2ludCBQREZQbHVn
aW46OmNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIq
IHNjcm9sbGJhciwgY29uc3QgSW50UG9pbnQmIHNjcm9sbGJhclBvaW50KSBjb25zdAorSW50UG9p
bnQgUERGUGx1Z2luOjpjb252ZXJ0RnJvbVNjcm9sbGJhclRvQ29udGFpbmluZ1ZpZXcoY29uc3Qg
U2Nyb2xsYmFyJiBzY3JvbGxiYXIsIGNvbnN0IEludFBvaW50JiBzY3JvbGxiYXJQb2ludCkgY29u
c3QKIHsKICAgICBJbnRQb2ludCBwb2ludCA9IHNjcm9sbGJhclBvaW50OwotICAgIHBvaW50Lm1v
dmUoc2Nyb2xsYmFyLT5sb2NhdGlvbigpIC0gcGx1Z2luVmlldygpLT5sb2NhdGlvbigpKTsKKyAg
ICBwb2ludC5tb3ZlKHNjcm9sbGJhci5sb2NhdGlvbigpIC0gcGx1Z2luVmlldygpLT5sb2NhdGlv
bigpKTsKIAogICAgIHJldHVybiBwbHVnaW5WaWV3KCktPmZyYW1lKCktPnZpZXcoKS0+Y29udmVy
dEZyb21SZW5kZXJlclRvQ29udGFpbmluZ1ZpZXcocGx1Z2luVmlldygpLT5wbHVnaW5FbGVtZW50
KCktPnJlbmRlcmVyKCksIHBvaW50KTsKIH0KIAotSW50UG9pbnQgUERGUGx1Z2luOjpjb252ZXJ0
RnJvbUNvbnRhaW5pbmdWaWV3VG9TY3JvbGxiYXIoY29uc3QgU2Nyb2xsYmFyKiBzY3JvbGxiYXIs
IGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKK0ludFBvaW50IFBERlBsdWdpbjo6
Y29udmVydEZyb21Db250YWluaW5nVmlld1RvU2Nyb2xsYmFyKGNvbnN0IFNjcm9sbGJhciYgc2Ny
b2xsYmFyLCBjb25zdCBJbnRQb2ludCYgcGFyZW50UG9pbnQpIGNvbnN0CiB7CiAgICAgSW50UG9p
bnQgcG9pbnQgPSBwbHVnaW5WaWV3KCktPmZyYW1lKCktPnZpZXcoKS0+Y29udmVydEZyb21Db250
YWluaW5nVmlld1RvUmVuZGVyZXIocGx1Z2luVmlldygpLT5wbHVnaW5FbGVtZW50KCktPnJlbmRl
cmVyKCksIHBhcmVudFBvaW50KTsKLSAgICBwb2ludC5tb3ZlKHBsdWdpblZpZXcoKS0+bG9jYXRp
b24oKSAtIHNjcm9sbGJhci0+bG9jYXRpb24oKSk7CisgICAgcG9pbnQubW92ZShwbHVnaW5WaWV3
KCktPmxvY2F0aW9uKCkgLSBzY3JvbGxiYXIubG9jYXRpb24oKSk7CiAgICAgCiAgICAgcmV0dXJu
IHBvaW50OwogfQpAQCAtMTU2NywxMSArMTU2NywxMSBAQCB2b2lkIFBERlBsdWdpbjo6c2V0U2Ny
b2xsT2Zmc2V0KGNvbnN0IFNjcm9sbE9mZnNldCYgb2Zmc2V0KQogICAgIFtDQVRyYW5zYWN0aW9u
IGNvbW1pdF07CiB9CiAKLXZvaWQgUERGUGx1Z2luOjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChT
Y3JvbGxiYXIqIHNjcm9sbGJhciwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3ZvaWQgUERGUGx1Z2lu
OjppbnZhbGlkYXRlU2Nyb2xsYmFyUmVjdChTY3JvbGxiYXImIHNjcm9sbGJhciwgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKLSAgICBpZiAoc2Nyb2xsYmFyID09IGhvcml6b250YWxTY3JvbGxiYXIo
KSkKKyAgICBpZiAoJnNjcm9sbGJhciA9PSBob3Jpem9udGFsU2Nyb2xsYmFyKCkpCiAgICAgICAg
IFttX2hvcml6b250YWxTY3JvbGxiYXJMYXllciBzZXROZWVkc0Rpc3BsYXldOwotICAgIGVsc2Ug
aWYgKHNjcm9sbGJhciA9PSB2ZXJ0aWNhbFNjcm9sbGJhcigpKQorICAgIGVsc2UgaWYgKCZzY3Jv
bGxiYXIgPT0gdmVydGljYWxTY3JvbGxiYXIoKSkKICAgICAgICAgW21fdmVydGljYWxTY3JvbGxi
YXJMYXllciBzZXROZWVkc0Rpc3BsYXldOwogfQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>