<?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>176278</bug_id>
          
          <creation_ts>2017-09-02 11:38:29 -0700</creation_ts>
          <short_desc>Remove unneeded updateStyle call in finishedParsing</short_desc>
          <delta_ts>2017-09-02 12:22:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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>
          <dependson>176279</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1344832</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-02 11:38:29 -0700</bug_when>
    <thetext>Removed unneeded updateStyle call in finishedParsing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344833</commentid>
    <comment_count>1</comment_count>
      <attachid>319724</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-02 11:38:59 -0700</bug_when>
    <thetext>Created attachment 319724
Early patch, work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344834</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-02 11:39:56 -0700</bug_when>
    <thetext>As promised, I posted my work in progress here even though it’s far from complete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1344835</commentid>
    <comment_count>3</comment_count>
      <attachid>319724</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-09-02 11:42:30 -0700</bug_when>
    <thetext>Comment on attachment 319724
Early patch, work in progress

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

&gt; Source/WebCore/page/FrameView.cpp:-4612
&gt; -    AnimationUpdateBlock animationUpdateBlock(&amp;frame().animation());

This is just a mis-merge, not an intentional change.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>319724</attachid>
            <date>2017-09-02 11:38:59 -0700</date>
            <delta_ts>2017-09-02 11:39:17 -0700</delta_ts>
            <desc>Early patch, work in progress</desc>
            <filename>bug-176278-20170902113858.patch</filename>
            <type>text/plain</type>
            <size>29517</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIxNTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA2NzMzZTAyOWRmYzBiZTFl
OTkzYzdiNDg2NjFlZThlNzc2ZjkxZGNjLi40OTYxYTA0M2IwOGFmNDk3MmYzOWMwMGNlMzdmNTAx
OTYzODNlOTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTE4MzUsNyArMTgzNSw3IEBAIEZyYW1lVmlldyogQWNj
ZXNzaWJpbGl0eU9iamVjdDo6ZG9jdW1lbnRGcmFtZVZpZXcoKSBjb25zdAogY29uc3QgQWNjZXNz
aWJpbGl0eU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpjaGlsZHJlbihib29sIHVwZGF0ZUNoaWxkcmVuSWZOZWVkZWQpCiB7CiAgICAgaWYg
KHVwZGF0ZUNoaWxkcmVuSWZOZWVkZWQpCi0gICAgICAgIHVwZGF0ZUNoaWxkcmVuSWZOZWNlc3Nh
cnkoKTsKKyAgICAgICAgdXBkYXRlQmFja2luZ1N0b3JlKCk7CiAKICAgICByZXR1cm4gbV9jaGls
ZHJlbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDhlOTkzOTE4NGVlM2IwMjYyNjIw
OGY3NGZkZDQ3NTBjNjNjMDdjOTEuLjU4NDdhMWI5OWVlZjhlY2NjYWJiMjYwMDFlMGY3MjkyODVm
YjY2N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTIxMSwxNSArNTIxMSw2IEBAIHZv
aWQgRG9jdW1lbnQ6OmZpbmlzaGVkUGFyc2luZygpCiAgICAgICAgIG1fZG9jdW1lbnRUaW1pbmcu
ZG9tQ29udGVudExvYWRlZEV2ZW50RW5kID0gTW9ub3RvbmljVGltZTo6bm93KCk7CiAKICAgICBp
ZiAoUmVmUHRyPEZyYW1lPiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsKLSAgICAgICAgLy8gRnJh
bWVMb2FkZXI6OmZpbmlzaGVkUGFyc2luZygpIG1pZ2h0IGVuZCB1cCBjYWxsaW5nIERvY3VtZW50
OjppbXBsaWNpdENsb3NlKCkgaWYgYWxsCi0gICAgICAgIC8vIHJlc291cmNlIGxvYWRzIGFyZSBj
b21wbGV0ZS4gSFRNTE9iamVjdEVsZW1lbnRzIGNhbiBzdGFydCBsb2FkaW5nIHRoZWlyIHJlc291
cmNlcyBmcm9tCi0gICAgICAgIC8vIHBvc3QgYXR0YWNoIGNhbGxiYWNrcyB0cmlnZ2VyZWQgYnkg
cmVzb2x2ZVN0eWxlKCkuIFRoaXMgbWVhbnMgaWYgd2UgcGFyc2Ugb3V0IGFuIDxvYmplY3Q+Ci0g
ICAgICAgIC8vIHRhZyBhbmQgdGhlbiByZWFjaCB0aGUgZW5kIG9mIHRoZSBkb2N1bWVudCB3aXRo
b3V0IHVwZGF0aW5nIHN0eWxlcywgd2UgbWlnaHQgbm90IGhhdmUgeWV0Ci0gICAgICAgIC8vIHN0
YXJ0ZWQgdGhlIHJlc291cmNlIGxvYWQgYW5kIG1pZ2h0IGZpcmUgdGhlIHdpbmRvdyBsb2FkIGV2
ZW50IHRvbyBlYXJseS4gVG8gYXZvaWQgdGhpcwotICAgICAgICAvLyB3ZSBmb3JjZSB0aGUgc3R5
bGVzIHRvIGJlIHVwIHRvIGRhdGUgYmVmb3JlIGNhbGxpbmcgRnJhbWVMb2FkZXI6OmZpbmlzaGVk
UGFyc2luZygpLgotICAgICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM2ODY0IHN0YXJ0aW5nIGFyb3VuZCBjb21tZW50IDM1LgotICAgICAgICB1cGRh
dGVTdHlsZUlmTmVlZGVkKCk7Ci0KICAgICAgICAgZnJhbWUtPmxvYWRlcigpLmZpbmlzaGVkUGFy
c2luZygpOwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRvbUNvbnRlbnRMb2Fk
ZWRFdmVudEZpcmVkKCpmcmFtZSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRl
ci5jcHAKaW5kZXggYjYzZmE2Y2M4MzgyYzA2ODZjNjE4ODRlYTAyOTVlNjI1OWViNTJmNy4uMzhj
NzJhMzMwNjY2NjM4M2Q4ZDIxNTk1MWFkNjE0ZDBhZWIxYzBkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0yNTA0LDcgKzI1MDQsNyBAQCB2b2lkIEZyYW1lTG9hZGVy
OjpjaGVja0xvYWRDb21wbGV0ZSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX2Ns
aWVudC5oYXNXZWJWaWV3KCkpOwotICAgIAorCiAgICAgLy8gRklYTUU6IEFsd2F5cyB0cmF2ZXJz
aW5nIHRoZSBlbnRpcmUgZnJhbWUgdHJlZSBpcyBhIGJpdCBpbmVmZmljaWVudCwgYnV0IAogICAg
IC8vIGlzIGN1cnJlbnRseSBuZWVkZWQgaW4gb3JkZXIgdG8gbnVsbCBvdXQgdGhlIHByZXZpb3Vz
IGhpc3RvcnkgaXRlbSBmb3IgYWxsIGZyYW1lcy4KICAgICBWZWN0b3I8UmVmPEZyYW1lPiwgMTY+
IGZyYW1lczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBkOGU3NjVmOTRlMTExZmQ1
YjdmOTYzOGJmZDU4NjRlMmE3ZTU2MGFlLi43OGJkZTU5MDBkODI3NzE3ZGExNjgwMTUyM2YyYjg3
ZGUzNjAxMmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC00NjA5LDggKzQ2MDks
NiBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2
ZSgpCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBmaW5kIGFuIGFwcHJvYWNoIHRoYXQgZG9lcyBu
b3QgcmVxdWlyZSBhIGxvb3AgYXQgYWxsLgogICAgIGNvbnN0IHVuc2lnbmVkIG1heFVwZGF0ZVBh
c3NlcyA9IDI1OwogCi0gICAgQW5pbWF0aW9uVXBkYXRlQmxvY2sgYW5pbWF0aW9uVXBkYXRlQmxv
Y2soJmZyYW1lKCkuYW5pbWF0aW9uKCkpOwotCiAgICAgYXV0byB1cGRhdGVPbmNlID0gW3RoaXNd
IHsKICAgICAgICAgYXV0byB1cGRhdGVPbmVGcmFtZSA9IFtdIChGcmFtZVZpZXcmIHZpZXcpIHsK
ICAgICAgICAgICAgIGJvb2wgZGlkV29yayA9IHZpZXcuZnJhbWUoKS5kb2N1bWVudCgpLT51cGRh
dGVTdHlsZUlmTmVlZGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDRhYzcxYzgwZmZmMGMxYjQ4
ZTg4OGI4NjA5NTY3N2Y5YWRlOTZlODkuLmYxOTI5MTA1MzQ4MjYwOGIzMTg4MjBmYjFmOTExNjkz
YzE4YmMxY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC0xOTIsMjkgKzE5Miw5IEBAIGJvb2wgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmFwcGx5RnJhbWVSYXRlKGRvdWJsZSByYXRlKQogYm9vbCBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6YXBwbHlTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiB7
CiAgICAgbV9iYXNlRm9udFNpemUgPSBzaXplLmhlaWdodCgpICogLjA4OwotICAgIEZvbnRDYXNj
YWRlRGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRP
bmVGYW1pbHkoIkNvdXJpZXIiKTsKLSAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6
ZShtX2Jhc2VGb250U2l6ZSk7Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSht
X2Jhc2VGb250U2l6ZSk7Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldFdlaWdodChGb250U2VsZWN0
aW9uVmFsdWUoNTAwKSk7Ci0KLSAgICBtX3RpbWVGb250ID0gRm9udENhc2NhZGUoZm9udERlc2Ny
aXB0aW9uLCAwLCAwKTsKLSAgICBtX3RpbWVGb250LnVwZGF0ZShudWxscHRyKTsKLQogICAgIG1f
YmlwQm9wRm9udFNpemUgPSBtX2Jhc2VGb250U2l6ZSAqIDIuNTsKLSAgICBmb250RGVzY3JpcHRp
b24uc2V0U3BlY2lmaWVkU2l6ZShtX2JpcEJvcEZvbnRTaXplKTsKLSAgICBmb250RGVzY3JpcHRp
b24uc2V0Q29tcHV0ZWRTaXplKG1fYmlwQm9wRm9udFNpemUpOwotICAgIG1fYmlwQm9wRm9udCA9
IEZvbnRDYXNjYWRlKGZvbnREZXNjcmlwdGlvbiwgMCwgMCk7Ci0gICAgbV9iaXBCb3BGb250LnVw
ZGF0ZShudWxscHRyKTsKLQogICAgIG1fc3RhdHNGb250U2l6ZSA9IG1fYmFzZUZvbnRTaXplICog
LjU7Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmllZFNpemUobV9zdGF0c0ZvbnRTaXpl
KTsKLSAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKG1fc3RhdHNGb250U2l6ZSk7
Ci0gICAgbV9zdGF0c0ZvbnQgPSBGb250Q2FzY2FkZShmb250RGVzY3JpcHRpb24sIDAsIDApOwot
ICAgIG1fc3RhdHNGb250LnVwZGF0ZShudWxscHRyKTsKLQogICAgIG1faW1hZ2VCdWZmZXIgPSBu
dWxscHRyOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTMxMywyNCArMjkzLDQzIEBAIHZv
aWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmRyYXdUZXh0KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCkKICAgICB1bnNpZ25lZCBtaW51dGVzID0gc2Vjb25kcyAvIDYwICUgNjA7CiAgICAgdW5z
aWduZWQgaG91cnMgPSBtaW51dGVzIC8gNjAgJSA2MDsKIAorICAgIEZvbnRDYXNjYWRlRGVzY3Jp
cHRpb24gZm9udERlc2NyaXB0aW9uOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHko
IkNvdXJpZXIiKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0V2VpZ2h0KEZvbnRTZWxlY3Rpb25W
YWx1ZSg1MDApKTsKKworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKG1fYmFz
ZUZvbnRTaXplKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKG1fYmFzZUZv
bnRTaXplKTsKKyAgICBGb250Q2FzY2FkZSB0aW1lRm9udCB7IGZvbnREZXNjcmlwdGlvbiwgMCwg
MCB9OworICAgIHRpbWVGb250LnVwZGF0ZShudWxscHRyKTsKKworICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRTcGVjaWZpZWRTaXplKG1fYmlwQm9wRm9udFNpemUpOworICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRDb21wdXRlZFNpemUobV9iaXBCb3BGb250U2l6ZSk7CisgICAgRm9udENhc2NhZGUgYmlw
Qm9wRm9udCB7IGZvbnREZXNjcmlwdGlvbiwgMCwgMCB9OworICAgIGJpcEJvcEZvbnQudXBkYXRl
KG51bGxwdHIpOworCisgICAgZm9udERlc2NyaXB0aW9uLnNldFNwZWNpZmllZFNpemUobV9zdGF0
c0ZvbnRTaXplKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKG1fc3RhdHNG
b250U2l6ZSk7CisgICAgRm9udENhc2NhZGUgc3RhdHNGb250IHsgZm9udERlc2NyaXB0aW9uLCAw
LCAwIH07CisgICAgc3RhdHNGb250LnVwZGF0ZShudWxscHRyKTsKKwogICAgIEludFNpemUgc2l6
ZSA9IHRoaXMtPnNpemUoKTsKICAgICBGbG9hdFBvaW50IHRpbWVMb2NhdGlvbihzaXplLndpZHRo
KCkgKiAuMDUsIHNpemUuaGVpZ2h0KCkgKiAuMTUpOwogICAgIGNvbnRleHQuc2V0RmlsbENvbG9y
KENvbG9yOjp3aGl0ZSk7CiAgICAgY29udGV4dC5zZXRUZXh0RHJhd2luZ01vZGUoVGV4dE1vZGVG
aWxsKTsKICAgICBTdHJpbmcgc3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoIiUwMnU6JTAydTolMDJ1
LiUwM3UiLCBob3VycywgbWludXRlcywgc2Vjb25kcywgbWlsbGlzZWNvbmRzICUgMTAwMCk7Ci0g
ICAgY29udGV4dC5kcmF3VGV4dChtX3RpbWVGb250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmlu
ZykpKSwgdGltZUxvY2F0aW9uKTsKKyAgICBjb250ZXh0LmRyYXdUZXh0KHRpbWVGb250LCBUZXh0
UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgdGltZUxvY2F0aW9uKTsKIAogICAgIHN0cmluZyA9
IFN0cmluZzo6Zm9ybWF0KCIlMDZ1IiwgbV9mcmFtZU51bWJlcisrKTsKICAgICB0aW1lTG9jYXRp
b24ubW92ZSgwLCBtX2Jhc2VGb250U2l6ZSk7Ci0gICAgY29udGV4dC5kcmF3VGV4dChtX3RpbWVG
b250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgdGltZUxvY2F0aW9uKTsKKyAgICBj
b250ZXh0LmRyYXdUZXh0KHRpbWVGb250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwg
dGltZUxvY2F0aW9uKTsKIAogICAgIEZsb2F0UG9pbnQgc3RhdHNMb2NhdGlvbihzaXplLndpZHRo
KCkgKiAuNjUsIHNpemUuaGVpZ2h0KCkgKiAuNzUpOwogICAgIHN0cmluZyA9IFN0cmluZzo6Zm9y
bWF0KCJGcmFtZSByYXRlOiAlZmZwcyIsIGZyYW1lUmF0ZSgpKTsKLSAgICBjb250ZXh0LmRyYXdU
ZXh0KG1fc3RhdHNGb250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2Nh
dGlvbik7CisgICAgY29udGV4dC5kcmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1Zp
ZXcoc3RyaW5nKSkpLCBzdGF0c0xvY2F0aW9uKTsKIAogICAgIHN0cmluZyA9IFN0cmluZzo6Zm9y
bWF0KCJTaXplOiAldSB4ICV1Iiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKICAgICBz
dGF0c0xvY2F0aW9uLm1vdmUoMCwgbV9zdGF0c0ZvbnRTaXplKTsKLSAgICBjb250ZXh0LmRyYXdU
ZXh0KG1fc3RhdHNGb250LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2Nh
dGlvbik7CisgICAgY29udGV4dC5kcmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1Zp
ZXcoc3RyaW5nKSkpLCBzdGF0c0xvY2F0aW9uKTsKIAogICAgIGNvbnN0IGNoYXIqIGNhbWVyYTsK
ICAgICBzd2l0Y2ggKGZhY2luZ01vZGUoKSkgewpAQCAtMzUyLDE4ICszNTEsMTggQEAgdm9pZCBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
KQogICAgIH0KICAgICBzdHJpbmcgPSBTdHJpbmc6OmZvcm1hdCgiQ2FtZXJhOiAlcyIsIGNhbWVy
YSk7CiAgICAgc3RhdHNMb2NhdGlvbi5tb3ZlKDAsIG1fc3RhdHNGb250U2l6ZSk7Ci0gICAgY29u
dGV4dC5kcmF3VGV4dChtX3N0YXRzRm9udCwgVGV4dFJ1bigoU3RyaW5nVmlldyhzdHJpbmcpKSks
IHN0YXRzTG9jYXRpb24pOworICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNGb250LCBUZXh0UnVu
KChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2NhdGlvbik7CiAKICAgICBGbG9hdFBvaW50
IGJpcEJvcExvY2F0aW9uKHNpemUud2lkdGgoKSAqIC42LCBzaXplLmhlaWdodCgpICogLjYpOwog
ICAgIHVuc2lnbmVkIGZyYW1lTW9kID0gbV9mcmFtZU51bWJlciAlIDYwOwogICAgIGlmIChmcmFt
ZU1vZCA8PSAxNSkgewogICAgICAgICBjb250ZXh0LnNldEZpbGxDb2xvcihDb2xvcjo6Y3lhbik7
CiAgICAgICAgIFN0cmluZyBiaXAoQVNDSUlMaXRlcmFsKCJCaXAiKSk7Ci0gICAgICAgIGNvbnRl
eHQuZHJhd1RleHQobV9iaXBCb3BGb250LCBUZXh0UnVuKFN0cmluZ1ZpZXcoYmlwKSksIGJpcEJv
cExvY2F0aW9uKTsKKyAgICAgICAgY29udGV4dC5kcmF3VGV4dChiaXBCb3BGb250LCBUZXh0UnVu
KFN0cmluZ1ZpZXcoYmlwKSksIGJpcEJvcExvY2F0aW9uKTsKICAgICB9IGVsc2UgaWYgKGZyYW1l
TW9kID4gMzAgJiYgZnJhbWVNb2QgPD0gNDUpIHsKICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29s
b3IoQ29sb3I6OnllbGxvdyk7CiAgICAgICAgIFN0cmluZyBib3AoQVNDSUlMaXRlcmFsKCJCb3Ai
KSk7Ci0gICAgICAgIGNvbnRleHQuZHJhd1RleHQobV9iaXBCb3BGb250LCBUZXh0UnVuKFN0cmlu
Z1ZpZXcoYm9wKSksIGJpcEJvcExvY2F0aW9uKTsKKyAgICAgICAgY29udGV4dC5kcmF3VGV4dChi
aXBCb3BGb250LCBUZXh0UnVuKFN0cmluZ1ZpZXcoYm9wKSksIGJpcEJvcExvY2F0aW9uKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCAxMDY5OTkwMGI1ZjQ0NDE1NmEyY2QwMjZkYTUzYjM3
YzAxNTNiOTQwLi5mNDIzMWM5MDYxNmQ1NDk3NDliYWZlZDMyMzAxYWQxYjMzM2ZmNmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCkBAIC04NSwxMyArODUsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVsYXlTYW1w
bGVzKGZsb2F0KSBvdmVycmlkZTsKIAogICAgIGZsb2F0IG1fYmFzZUZvbnRTaXplIHsgMCB9Owot
ICAgIEZvbnRDYXNjYWRlIG1fdGltZUZvbnQ7Ci0KICAgICBmbG9hdCBtX2JpcEJvcEZvbnRTaXpl
IHsgMCB9OwotICAgIEZvbnRDYXNjYWRlIG1fYmlwQm9wRm9udDsKLQogICAgIGZsb2F0IG1fc3Rh
dHNGb250U2l6ZSB7IDAgfTsKLSAgICBGb250Q2FzY2FkZSBtX3N0YXRzRm9udDsKIAogICAgIG11
dGFibGUgc3RkOjp1bmlxdWVfcHRyPEltYWdlQnVmZmVyPiBtX2ltYWdlQnVmZmVyOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVHJlZUFzVGV4dC5jcHAKaW5kZXggMWU4OGE4
MjVkMTJjNTdlZTk1MWI2Mzc1YTUxNzM4ZTEwMzE1Mjc5ZS4uNzVhYjdhNzEzNWEyZTA0OWM4OWEw
ZmNlZWFhMjBjNDc1Yjg2YjMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRyZWVBc1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUcmVlQXNUZXh0LmNwcApAQCAtOTMwLDMxICs5MzAsNDkgQEAgc3RhdGljIFN0cmluZyBleHRl
cm5hbFJlcHJlc2VudGF0aW9uKFJlbmRlckJveCYgcmVuZGVyZXIsIFJlbmRlckFzVGV4dEJlaGF2
aW9yIGIKICAgICByZXR1cm4gdHMucmVsZWFzZSgpOwogfQogCitzdGF0aWMgdm9pZCB1cGRhdGVM
YXlvdXRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0c0luY2x1ZGluZ1N1YmZyYW1lcyhEb2N1bWVu
dCYgZG9jdW1lbnQpCit7CisgICAgZG9jdW1lbnQudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CisgICAgYXV0byogZnJhbWUgPSBkb2N1bWVudC5mcmFtZSgpOworICAgIGZv
ciAoYXV0byogc3ViZnJhbWUgPSBmcmFtZTsgc3ViZnJhbWU7IHN1YmZyYW1lID0gc3ViZnJhbWUt
PnRyZWUoKS50cmF2ZXJzZU5leHQoZnJhbWUpKSB7CisgICAgICAgIGlmIChhdXRvKiBkb2N1bWVu
dCA9IHN1YmZyYW1lLT5kb2N1bWVudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIH0KK30KKwogU3RyaW5nIGV4dGVy
bmFsUmVwcmVzZW50YXRpb24oRnJhbWUqIGZyYW1lLCBSZW5kZXJBc1RleHRCZWhhdmlvciBiZWhh
dmlvcikKIHsKLSAgICBSZW5kZXJWaWV3KiByZW5kZXJlciA9IGZyYW1lLT5jb250ZW50UmVuZGVy
ZXIoKTsKKyAgICBBU1NFUlQoZnJhbWUpOyAvLyBGSVhNRTogVGFrZSBhIHJlZmVyZW5jZSBpbnN0
ZWFkIG9mIGEgcG9pbnRlci4KKyAgICBBU1NFUlQoZnJhbWUtPmRvY3VtZW50KCkpOworCisgICAg
aWYgKCEoYmVoYXZpb3IgJiBSZW5kZXJBc1RleHREb250VXBkYXRlTGF5b3V0KSkKKyAgICAgICAg
dXBkYXRlTGF5b3V0SWdub3JpbmdQZW5kaW5nU3R5bGVzaGVldHNJbmNsdWRpbmdTdWJmcmFtZXMo
KmZyYW1lLT5kb2N1bWVudCgpKTsKKworICAgIGF1dG8qIHJlbmRlcmVyID0gZnJhbWUtPmNvbnRl
bnRSZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmco
KTsKIAogICAgIFByaW50Q29udGV4dCBwcmludENvbnRleHQoZnJhbWUpOwogICAgIGlmIChiZWhh
dmlvciAmIFJlbmRlckFzVGV4dFByaW50aW5nTW9kZSkKICAgICAgICAgcHJpbnRDb250ZXh0LmJl
Z2luKHJlbmRlcmVyLT53aWR0aCgpKTsKLSAgICBpZiAoIShiZWhhdmlvciAmIFJlbmRlckFzVGV4
dERvbnRVcGRhdGVMYXlvdXQpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5
b3V0KCk7CiAKICAgICByZXR1cm4gZXh0ZXJuYWxSZXByZXNlbnRhdGlvbigqcmVuZGVyZXIsIGJl
aGF2aW9yKTsKIH0KIAogU3RyaW5nIGV4dGVybmFsUmVwcmVzZW50YXRpb24oRWxlbWVudCogZWxl
bWVudCwgUmVuZGVyQXNUZXh0QmVoYXZpb3IgYmVoYXZpb3IpCiB7Ci0gICAgUmVuZGVyRWxlbWVu
dCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpOwotICAgIGlmICghaXM8UmVuZGVyQm94
PihyZW5kZXJlcikpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICAvLyBEb2Vzbid0IHN1
cHBvcnQgcHJpbnRpbmcgbW9kZS4KKyAgICBBU1NFUlQoZWxlbWVudCk7IC8vIEZJWE1FOiBUYWtl
IGEgcmVmZXJlbmNlIGluc3RlYWQgb2YgYSBwb2ludGVyLgorCisgICAgLy8gVGhpcyBmdW5jdGlv
biBkb2Vzbid0IHN1cHBvcnQgcHJpbnRpbmcgbW9kZS4KICAgICBBU1NFUlQoIShiZWhhdmlvciAm
IFJlbmRlckFzVGV4dFByaW50aW5nTW9kZSkpOworCiAgICAgaWYgKCEoYmVoYXZpb3IgJiBSZW5k
ZXJBc1RleHREb250VXBkYXRlTGF5b3V0KSkKLSAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXQoKTsKLSAgICAKKyAgICAgICAgdXBkYXRlTGF5b3V0SWdub3JpbmdQZW5kaW5n
U3R5bGVzaGVldHNJbmNsdWRpbmdTdWJmcmFtZXMoZWxlbWVudC0+ZG9jdW1lbnQoKSk7CisKKyAg
ICBhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7CisgICAgaWYgKCFpczxSZW5k
ZXJCb3g+KHJlbmRlcmVyKSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCiAgICAgcmV0dXJu
IGV4dGVybmFsUmVwcmVzZW50YXRpb24oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpLCBi
ZWhhdmlvciB8IFJlbmRlckFzVGV4dFNob3dBbGxMYXllcnMpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGl0bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUaXRsZUVsZW1lbnQuY3BwCmluZGV4IGE0MzI5MmNmMDA4NjE0M2FlZmYyODA2OTE5NDQ2
ZWMzNjA1YWRmYmEuLjRjOTRmYTczMmM5NDRjM2YxMDcxNTg1Njc3NzU5ZDE0MWNmMjhiNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUaXRsZUVsZW1lbnQuY3BwCkBAIC00NSw3ICs0NSw3IEBAIE5v
ZGU6Okluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVlc3QgU1ZHVGl0bGVFbGVtZW50OjppbnNlcnRl
ZEludG8oQ29udGFpbmVyTm9kZSYKICAgICBpZiAoIXJvb3RQYXJlbnQuaXNDb25uZWN0ZWQoKSkK
ICAgICAgICAgcmV0dXJuIEluc2VydGlvbkRvbmU7CiAKLSAgICBpZiAoZmlyc3RDaGlsZCgpICYm
IGRvY3VtZW50KCkuaXNTVkdEb2N1bWVudCgpKQorICAgIGlmIChkb2N1bWVudCgpLmlzU1ZHRG9j
dW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS50aXRsZUVsZW1lbnRBZGRlZCgqdGhpcyk7CiAg
ICAgcmV0dXJuIEluc2VydGlvbkRvbmU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKaW5kZXggOWY4YzI0YTIyOTI5ZTFjYzkxYWQzZmIzYThlNjI4ZWQzMTgzNmJmZS4uNmVlNTk2
N2M2NTZjOTk4YmIyMzNhMzE2NDAwZWI1OGE5ZTJlZDIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmNwcApAQCAtODQ4LDcgKzg0OCwxMSBAQCBFeGNlcHRpb25Pcjx1bnNpZ25lZD4g
SW50ZXJuYWxzOjpsYXN0U3BhdGlhbE5hdmlnYXRpb25DYW5kaWRhdGVDb3VudCgpIGNvbnN0CiAK
IHVuc2lnbmVkIEludGVybmFsczo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gZnJhbWUoKS0+YW5pbWF0aW9uKCkubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25z
KGZyYW1lKCktPmRvY3VtZW50KCkpOworICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3Vt
ZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkpCisgICAgICAg
IHJldHVybiAwOworICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPmFuaW1hdGlvbigpLm51bWJl
ck9mQWN0aXZlQW5pbWF0aW9ucyhkb2N1bWVudCk7CiB9CiAKIEV4Y2VwdGlvbk9yPGJvb2w+IElu
dGVybmFsczo6YW5pbWF0aW9uc0FyZVN1c3BlbmRlZCgpIGNvbnN0CkBAIC05MDUsNiArOTA5LDkg
QEAgRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjpwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxl
bWVudChjb25zdCBTdHJpbmcmIGFuaW1hdGkKIHsKICAgICBpZiAocGF1c2VUaW1lIDwgMCkKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgZWxl
bWVudC5kb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwor
CiAgICAgcmV0dXJuIGZyYW1lKCktPmFuaW1hdGlvbigpLnBhdXNlQW5pbWF0aW9uQXRUaW1lKGVs
ZW1lbnQucmVuZGVyZXIoKSwgQXRvbWljU3RyaW5nKGFuaW1hdGlvbk5hbWUpLCBwYXVzZVRpbWUp
OwogfQogCkBAIC05MTYsNyArOTIzLDkgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSW50ZXJuYWxzOjpw
YXVzZUFuaW1hdGlvbkF0VGltZU9uUHNldWRvRWxlbWVudChjb25zdCBTdHJpbmcmIGEKICAgICBp
ZiAocHNldWRvSWQgIT0gImJlZm9yZSIgJiYgcHNldWRvSWQgIT0gImFmdGVyIikKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCi0gICAgUHNldWRvRWxl
bWVudCogcHNldWRvRWxlbWVudCA9IHBzZXVkb0lkID09ICJiZWZvcmUiID8gZWxlbWVudC5iZWZv
cmVQc2V1ZG9FbGVtZW50KCkgOiBlbGVtZW50LmFmdGVyUHNldWRvRWxlbWVudCgpOworICAgIGVs
ZW1lbnQuZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
KworICAgIGF1dG8qIHBzZXVkb0VsZW1lbnQgPSBwc2V1ZG9JZCA9PSAiYmVmb3JlIiA/IGVsZW1l
bnQuYmVmb3JlUHNldWRvRWxlbWVudCgpIDogZWxlbWVudC5hZnRlclBzZXVkb0VsZW1lbnQoKTsK
ICAgICBpZiAoIXBzZXVkb0VsZW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IgfTsKIApAQCAtOTI3LDYgKzkzNiw5IEBAIEV4Y2VwdGlvbk9yPGJvb2w+
IEludGVybmFsczo6cGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50KGNvbnN0IFN0cmluZyYg
cHJvcGVyCiB7CiAgICAgaWYgKHBhdXNlVGltZSA8IDApCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGVsZW1lbnQuZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKwogICAgIHJldHVybiBmcmFtZSgp
LT5hbmltYXRpb24oKS5wYXVzZVRyYW5zaXRpb25BdFRpbWUoZWxlbWVudC5yZW5kZXJlcigpLCBw
cm9wZXJ0eU5hbWUsIHBhdXNlVGltZSk7CiB9CiAKQEAgLTkzOCw3ICs5NTAsOSBAQCBFeGNlcHRp
b25Pcjxib29sPiBJbnRlcm5hbHM6OnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uUHNldWRvRWxlbWVu
dChjb25zdCBTdHJpbmcmCiAgICAgaWYgKHBzZXVkb0lkICE9ICJiZWZvcmUiICYmIHBzZXVkb0lk
ICE9ICJhZnRlciIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IgfTsKIAotICAgIFBzZXVkb0VsZW1lbnQqIHBzZXVkb0VsZW1lbnQgPSBwc2V1ZG9JZCA9PSAi
YmVmb3JlIiA/IGVsZW1lbnQuYmVmb3JlUHNldWRvRWxlbWVudCgpIDogZWxlbWVudC5hZnRlclBz
ZXVkb0VsZW1lbnQoKTsKKyAgICBlbGVtZW50LmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisKKyAgICBhdXRvKiBwc2V1ZG9FbGVtZW50ID0gcHNldWRv
SWQgPT0gImJlZm9yZSIgPyBlbGVtZW50LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSA6IGVsZW1lbnQu
YWZ0ZXJQc2V1ZG9FbGVtZW50KCk7CiAgICAgaWYgKCFwc2V1ZG9FbGVtZW50KQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKQEAgLTk1OCw2ICs5NzIs
NyBAQCBFeGNlcHRpb25PcjxTdHJpbmc+IEludGVybmFsczo6ZWxlbWVudFJlbmRlclRyZWVBc1Rl
eHQoRWxlbWVudCYgZWxlbWVudCkKIAogYm9vbCBJbnRlcm5hbHM6Omhhc1BhdXNlZEltYWdlQW5p
bWF0aW9ucyhFbGVtZW50JiBlbGVtZW50KQogeworICAgIGVsZW1lbnQuZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gZWxlbWVudC5y
ZW5kZXJlcigpICYmIGVsZW1lbnQucmVuZGVyZXIoKS0+aGFzUGF1c2VkSW1hZ2VBbmltYXRpb25z
KCk7CiB9CiAKQEAgLTIyNDMsNiArMjI1OCw3IEBAIEV4Y2VwdGlvbk9yPFN0cmluZz4gSW50ZXJu
YWxzOjpsYXllclRyZWVBc1RleHQoRG9jdW1lbnQmIGRvY3VtZW50LCB1bnNpZ25lZCBzaG9yCiAg
ICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yIH07CiAKKyAgICBkb2N1bWVudC51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gZG9jdW1lbnQuZnJhbWUoKS0+bGF5ZXJUcmVl
QXNUZXh0KHRvTGF5ZXJUcmVlRmxhZ3MoZmxhZ3MpKTsKIH0KIApAQCAtMjI1Miw2ICsyMjY4LDgg
QEAgRXhjZXB0aW9uT3I8dWludDY0X3Q+IEludGVybmFsczo6bGF5ZXJJREZvckVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCisgICAg
ZWxlbWVudC5kb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworCiAgICAgaWYgKCFlbGVtZW50LnJlbmRlcmVyKCkgfHwgIWVsZW1lbnQucmVuZGVyZXIoKS0+
aGFzTGF5ZXIoKSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IgfTsK
IApAQCAtMjMxNyw2ICsyMzM1LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzZXRF
bGVtZW50VXNlc0Rpc3BsYXlMaXN0RHJhd2luZyhFbGVtZW50JiBlbGVtZW50LAogICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5yZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIAorICAgIGVsZW1lbnQuZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKwogICAgIGlmICghZWxlbWVu
dC5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yIH07CiAKQEAgLTIzNDIsNiArMjM2Miw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEludGVybmFs
czo6c2V0RWxlbWVudFRyYWNrc0Rpc3BsYXlMaXN0UmVwbGF5KEVsZW1lbnQmIGVsZW1lbnQsCiAg
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnJlbmRlclZpZXcoKSkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCisgICAgZWxlbWVudC5kb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCiAgICAgaWYg
KCFlbGVtZW50LnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IgfTsKIApAQCAtMjM2Nyw2ICsyMzg5LDggQEAgRXhjZXB0aW9uT3I8U3RyaW5n
PiBJbnRlcm5hbHM6OmRpc3BsYXlMaXN0Rm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCB1bnNp
Z25lZAogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5yZW5kZXJWaWV3KCkpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIAorICAgIGVsZW1l
bnQuZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKwog
ICAgIGlmICghZWxlbWVudC5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKQEAgLTIzOTMsNiArMjQxNyw4IEBAIEV4Y2VwdGlvbk9y
PFN0cmluZz4gSW50ZXJuYWxzOjpyZXBsYXlEaXNwbGF5TGlzdEZvckVsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCwgdW5zCiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnJlbmRlclZpZXco
KSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OwogCisg
ICAgZWxlbWVudC5kb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOworCiAgICAgaWYgKCFlbGVtZW50LnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKIApAQCAtMzAzNCw5ICszMDYwLDEwIEBAIEV4
Y2VwdGlvbk9yPGJvb2w+IEludGVybmFsczo6bWVkaWFFbGVtZW50SGFzQ2hhcmFjdGVyaXN0aWMo
SFRNTE1lZGlhRWxlbWVudCYgZWxlCiAKIGJvb2wgSW50ZXJuYWxzOjppc1NlbGVjdFBvcHVwVmlz
aWJsZShIVE1MU2VsZWN0RWxlbWVudCYgZWxlbWVudCkKIHsKKyAgICBlbGVtZW50LmRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisKICAgICBhdXRvKiBy
ZW5kZXJlciA9IGVsZW1lbnQucmVuZGVyZXIoKTsKLSAgICBBU1NFUlQocmVuZGVyZXIpOwotICAg
IGlmICghaXM8UmVuZGVyTWVudUxpc3Q+KCpyZW5kZXJlcikpCisgICAgaWYgKCFpczxSZW5kZXJN
ZW51TGlzdD4ocmVuZGVyZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICNpZiAhUExBVEZP
Uk0oSU9TKQpAQCAtMzE0Myw4ICszMTcwLDEwIEBAIEV4Y2VwdGlvbk9yPFJlZjxET01SZWN0Pj4g
SW50ZXJuYWxzOjpzZWxlY3Rpb25Cb3VuZHMoKQogCiBFeGNlcHRpb25Pcjxib29sPiBJbnRlcm5h
bHM6OmlzUGx1Z2luVW5hdmFpbGFiaWxpdHlJbmRpY2F0b3JPYnNjdXJlZChFbGVtZW50JiBlbGVt
ZW50KQogeworICAgIGVsZW1lbnQuZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKwogICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigp
OwotICAgIGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpIHx8ICFpczxSZW5kZXJF
bWJlZGRlZE9iamVjdD4ocmVuZGVyZXIpKQorICAgIGlmICghaXM8SFRNTFBsdWdJbkVsZW1lbnQ+
KGVsZW1lbnQpICYmICFpczxSZW5kZXJFbWJlZGRlZE9iamVjdD4ocmVuZGVyZXIpKQogICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKICAgICByZXR1cm4g
ZG93bmNhc3Q8SFRNTFBsdWdJbkVsZW1lbnQ+KGVsZW1lbnQpLmlzUmVwbGFjZW1lbnRPYnNjdXJl
ZCgpOwpAQCAtMzUyMCw3ICszNTQ5LDcgQEAgRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6
OnBhZ2VPdmVybGF5TGF5ZXJUcmVlQXNUZXh0KHVuc2lnbmVkIHNob3J0IGZsYWdzKQogICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKQogICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CiAKLSAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0
KCk7CisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwogCiAgICAgcmV0dXJuIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6c2luZ2xldG9uKCkubGF5ZXJU
cmVlQXNUZXh0KGRvY3VtZW50LT5mcmFtZSgpLT5tYWluRnJhbWUoKSwgdG9MYXllclRyZWVGbGFn
cyhmbGFncykpOwogfQpAQCAtMzY2MywxMSArMzY5MiwxMSBAQCB2b2lkIEludGVybmFsczo6c2V0
UGxhdGZvcm1Nb21lbnR1bVNjcm9sbGluZ1ByZWRpY3Rpb25FbmFibGVkKGJvb2wgZW5hYmxlZCkK
IAogRXhjZXB0aW9uT3I8U3RyaW5nPiBJbnRlcm5hbHM6OnNjcm9sbFNuYXBPZmZzZXRzKEVsZW1l
bnQmIGVsZW1lbnQpCiB7CisgICAgZWxlbWVudC5kb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCiAgICAgaWYgKCFlbGVtZW50LnJlbmRlckJveCgpKQog
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBlbGVtZW50LmRvY3VtZW50KCkudXBkYXRl
TGF5b3V0KCk7Ci0KICAgICBSZW5kZXJCb3gmIGJveCA9ICplbGVtZW50LnJlbmRlckJveCgpOwog
ICAgIFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlLmNwcAppbmRleCA1ZGYzZGZjM2U2ZTIwYjRmMzliMWRmNTk4NDQ0NWFmNjE4ZDRjMGJmLi5j
ZDM4MGFlOTRmZjQzMjIxMGVmZmEwMWEzMzg5MGUwMTAxNzJhYjJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVQYWdlLmNwcApAQCAtMjMxLDI2ICsyMzEsMjkgQEAgdm9pZCogV0tBY2Nlc3NpYmlsaXR5
Um9vdE9iamVjdChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZikKIHsKICNpZiBIQVZFKEFDQ0VTU0lC
SUxJVFkpCiAgICAgaWYgKCFwYWdlUmVmKQotICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICBX
ZWJDb3JlOjpQYWdlKiBwYWdlID0gdG9JbXBsKHBhZ2VSZWYpLT5jb3JlUGFnZSgpOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8qIHBhZ2UgPSB0b0ltcGwocGFnZVJlZiktPmNv
cmVQYWdlKCk7CiAgICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKLSAgICAKLSAgICBX
ZWJDb3JlOjpGcmFtZSYgY29yZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwotICAgIGlmICghY29yZS5k
b2N1bWVudCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICAKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKICAgICBXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CiAKLSAgICBXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0KiByb290ID0gY29yZS5kb2N1bWVudCgpLT5heE9iamVjdENh
Y2hlKCktPnJvb3RPYmplY3QoKTsKKyAgICAvLyBGSVhNRTogSSB0aGluayB0aGlzIHNob3VsZCBn
byBkb3duIGRlZXBlciBpbnNpZGUgdGhlIGNvZGUgd2UgYXJlIGNhbGxpbmcuCisgICAgZG9jdW1l
bnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworCisgICAgYXV0byog
cm9vdCA9IGRvY3VtZW50LT5heE9iamVjdENhY2hlKCktPnJvb3RPYmplY3QoKTsKICAgICBpZiAo
IXJvb3QpCi0gICAgICAgIHJldHVybiAwOwotICAgIAorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KwogICAgIHJldHVybiByb290LT53cmFwcGVyKCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShw
YWdlUmVmKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogfQog
CkBAIC0yNTgsMjIgKzI2MSwyOSBAQCB2b2lkKiBXS0FjY2Vzc2liaWxpdHlGb2N1c2VkT2JqZWN0
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmKQogewogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKICAg
ICBpZiAoIXBhZ2VSZWYpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAKLSAgICBXZWJDb3JlOjpQYWdlKiBwYWdlID0gdG9JbXBsKHBhZ2VSZWYpLT5jb3Jl
UGFnZSgpOworICAgIGF1dG8qIHBhZ2UgPSB0b0ltcGwocGFnZVJlZiktPmNvcmVQYWdlKCk7CiAg
ICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IHBhZ2UtPm1haW5GcmFtZSgpLmRvY3VtZW50KCk7Cisg
ICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBXZWJDb3Jl
OjpBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7CiAKLSAgICBXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBmb2N1c2VkT2JqZWN0ID0gV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6Zm9jdXNlZFVJRWxlbWVudEZvclBhZ2UocGFnZSk7CisgICAgLy8gRklYTUU6IEkgdGhpbmsg
dGhpcyBzaG91bGQgZ28gZG93biBkZWVwZXIgaW5zaWRlIHRoZSBjb2RlIHdlIGFyZSBjYWxsaW5n
LgorICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
KworICAgIGF1dG8qIGZvY3VzZWRPYmplY3QgPSBXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpmb2N1
c2VkVUlFbGVtZW50Rm9yUGFnZShwYWdlKTsKICAgICBpZiAoIWZvY3VzZWRPYmplY3QpCi0gICAg
ICAgIHJldHVybiAwOwotICAgIAorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIHJldHVy
biBmb2N1c2VkT2JqZWN0LT53cmFwcGVyKCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShwYWdl
UmVmKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA0YTk3YTgxYTIy
ODkzMTY1YWUyYTU1YTRiNzRhOGU0ZTljM2Q1NmQ4Li5kZDE1ZmRiZmNkZDU3MWQ1MDE4Y2U5MDUx
ODEwYjBmZDg5NGU3MmFmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRN
YWMubW0KQEAgLTE0MTUsNyArMTQxNSw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cHJlc3MoKQogdm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZENoaWxkKEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQqIGVsZW1lbnQpIGNvbnN0CiB7CiAgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCi0gICAgTlNBcnJheSogYXJyYXkgPSBbTlNBcnJheSBhcnJheVdpdGhPYmpl
Y3Q6ZWxlbWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKV07CisgICAgTlNBcnJheSogYXJyYXkgPSBl
bGVtZW50ID8gW05TQXJyYXkgYXJyYXldIDogW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmVsZW1l
bnQtPnBsYXRmb3JtVUlFbGVtZW50KCldOwogICAgIFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eVNl
dFZhbHVlOmFycmF5IGZvckF0dHJpYnV0ZTpOU0FjY2Vzc2liaWxpdHlTZWxlY3RlZENoaWxkcmVu
QXR0cmlidXRlXTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TICAgIAogfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tY29udHJvbGxlci1kcnQtYXBpLmh0
bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jb250cm9sbGVyLWRydC1hcGku
aHRtbAppbmRleCA2NTM3NGQ0YzI5YWQ4MWYxOTBiZDdlNzUwYzJlZmVhMmM1ODZhZDRmLi4wMjgy
MmZjNjUyZjRkZWI0N2U5YTExNDc4ZmQ1YzMyMjY0NmU5NWU3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jb250cm9sbGVyLWRydC1hcGkuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1jb250cm9sbGVyLWRydC1hcGkuaHRtbApA
QCAtNDksMzcgKzQ5LDQwIEBACiAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hh
cnNldD0idXRmLTgiPgogICAgCiAgICAgZnVuY3Rpb24gc2FtcGxlMCgpIHsKLSAgICAgIHZhciBl
eHBlY3RlZCA9IDQ7Ci0gICAgICB2YXIgY3VycmVudCA9IGludGVybmFscy5udW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoKTsKLSAgICAgIGlmIChjdXJyZW50ID09IGV4cGVjdGVkKQotICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0MCcpLmlubmVySFRNTCA9ICJOdW1iZXIgb2Yg
YWN0aXZlIGFuaW1hdGlvbnMgYXQgMHMgaXMgKCIgKyBjdXJyZW50ICsgIikgYXMgZXhwZWN0ZWQi
OwotICAgICAgZWxzZQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0MCcp
LmlubmVySFRNTCA9ICJOdW1iZXIgb2YgYWN0aXZlIGFuaW1hdGlvbnMgYXQgMHMgaXMgKCIgKyBj
dXJyZW50ICsgIikgYnV0IHdhcyBleHBlY3RpbmcgKCIgKyBleHBlY3RlZCArICIpIjsKKyAgICAg
ICAgdmFyIGV4cGVjdGVkID0gNDsKKyAgICAgICAgdmFyIGN1cnJlbnQgPSBpbnRlcm5hbHMubnVt
YmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CisgICAgICAgIGlmIChjdXJyZW50ID09IGV4cGVjdGVk
KQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdDAnKS5pbm5lckhU
TUwgPSAiTnVtYmVyIG9mIGFjdGl2ZSBhbmltYXRpb25zIGF0IDBzIGlzICgiICsgY3VycmVudCAr
ICIpIGFzIGV4cGVjdGVkIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Jlc3VsdDAnKS5pbm5lckhUTUwgPSAiTnVtYmVyIG9mIGFjdGl2ZSBhbmlt
YXRpb25zIGF0IDBzIGlzICgiICsgY3VycmVudCArICIpIGJ1dCB3YXMgZXhwZWN0aW5nICgiICsg
ZXhwZWN0ZWQgKyAiKSI7CiAgICAgfQotICAgIAorCiAgICAgZnVuY3Rpb24gc2FtcGxlMSgpIHsK
LSAgICAgIHZhciBleHBlY3RlZCA9IDQ7Ci0gICAgICB2YXIgY3VycmVudCA9IGludGVybmFscy5u
dW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKTsKLSAgICAgIGlmIChjdXJyZW50ID09IGV4cGVjdGVk
KQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0MScpLmlubmVySFRNTCA9
ICJOdW1iZXIgb2YgYWN0aXZlIGFuaW1hdGlvbnMgYXQgMXMgaXMgKCIgKyBjdXJyZW50ICsgIikg
YXMgZXhwZWN0ZWQiOwotICAgICAgZWxzZQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgncmVzdWx0MScpLmlubmVySFRNTCA9ICJOdW1iZXIgb2YgYWN0aXZlIGFuaW1hdGlvbnMgYXQg
MXMgaXMgKCIgKyBjdXJyZW50ICsgIikgYnV0IHdhcyBleHBlY3RpbmcgKCIgKyBleHBlY3RlZCAr
ICIpIjsKKyAgICAgICAgdmFyIGV4cGVjdGVkID0gNDsKKyAgICAgICAgdmFyIGN1cnJlbnQgPSBp
bnRlcm5hbHMubnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCk7CisgICAgICAgIGlmIChjdXJyZW50
ID09IGV4cGVjdGVkKQorICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3Vs
dDEnKS5pbm5lckhUTUwgPSAiTnVtYmVyIG9mIGFjdGl2ZSBhbmltYXRpb25zIGF0IDFzIGlzICgi
ICsgY3VycmVudCArICIpIGFzIGV4cGVjdGVkIjsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdDEnKS5pbm5lckhUTUwgPSAiTnVtYmVyIG9m
IGFjdGl2ZSBhbmltYXRpb25zIGF0IDFzIGlzICgiICsgY3VycmVudCArICIpIGJ1dCB3YXMgZXhw
ZWN0aW5nICgiICsgZXhwZWN0ZWQgKyAiKSI7CiAgICAgICAKICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogICAgIH0KLSAgICAKKwogICAgIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpIHsKLSAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVu
bmVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKKworICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uIFtdIHsKKyAgICAgICAgICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgICAgICAg
ICB0YXJnZXQuc3R5bGUudG9wID0gJzIwMHB4JzsKKyAgICAgICAgICAgIHRhcmdldC5zdHlsZS53
aWR0aCA9ICcxMDBweCc7CiAgICAgICAgIAotICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotICAgICAgICB0YXJnZXQuc3R5bGUudG9wID0gJzIw
MHB4JzsKLSAgICAgICAgdGFyZ2V0LnN0eWxlLndpZHRoID0gJzEwMHB4JzsKLSAgICAgICAgCi0g
ICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHNhbXBsZTAsIDApOwotICAgICAgICB3aW5kb3cuc2V0
VGltZW91dChzYW1wbGUxLCAxMTAwKTsKLSAgICAgIH0KKyAgICAgICAgICAgIHNldFRpbWVvdXQo
c2FtcGxlMCwgMCk7CisgICAgICAgICAgICBzZXRUaW1lb3V0KHNhbXBsZTEsIDExMDApOworICAg
ICAgICB9KTsKICAgICB9CiAgICAgCiAgICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9oaXR0ZXN0L3N2Zy10b29sdGlwLnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9oaXR0ZXN0
L3N2Zy10b29sdGlwLnN2ZwppbmRleCAwYmFlOTA2NDk2YTJhMDg4MjVjMTJjZWU4YTI1MzQyOTYz
NjNhODZjLi5kNTNmZDQ4NDA0NjAyY2Y0M2Y5ZjcwYmI5MjBhNTE1Y2FlOTdhYWQ1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9zdmcvaGl0dGVzdC9zdmctdG9vbHRpcC5zdmcKKysrIGIvTGF5b3V0
VGVzdHMvc3ZnL2hpdHRlc3Qvc3ZnLXRvb2x0aXAuc3ZnCkBAIC0xOSw5ICsxOSwxMiBAQAogCiAg
ICAgZnVuY3Rpb24gdGVzdFRvb2x0aXBGb3JFbGVtZW50KGVsZW1lbnQpCiAgICAgewotICAgICAg
ICBjb25zb2xlLmFzc2VydCh3aW5kb3cuaW50ZXJuYWxzKTsKICAgICAgICAgY29uc29sZS5hc3Nl
cnQoZWxlbWVudC5pZCk7CiAgICAgICAgIHZhciB0ZXN0Q2FzZU5hbWUgPSAiPCIgKyBlbGVtZW50
LnRhZ05hbWUgKyAnIGlkPSInICsgZWxlbWVudC5pZCArICciJyArICI+IjsKKyAgICAgICAgaWYg
KCF3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBsb2coIi0tLS0gQ291bGQgbm90IHRl
c3QgdG9vbHRpcCBmb3IgIiArIHRlc3RDYXNlTmFtZSArICI7IG5vIHdpbmRvdy5pbnRlcm5hbHMu
Iik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KICAgICAgICAgdmFyIHRvb2x0aXAg
PSBpbnRlcm5hbHMudG9vbFRpcEZyb21FbGVtZW50KGVsZW1lbnQpOwogICAgICAgICB2YXIgZXhw
ZWN0ZWRUb29sdGlwID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtdG9vbHRp
cCIpOwogICAgICAgICBpZiAodG9vbHRpcCA9PSBleHBlY3RlZFRvb2x0aXApCkBAIC00MSw5ICs0
NCw2IEBACiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB7Ci0gICAgICAgIGlmICghd2lu
ZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgICAgICByZXR1cm47
Ci0KICAgICAgICAgdGVzdERvY3VtZW50VGl0bGUoKTsKICAgICAgICAgdmFyIHRlc3RDYXNlcyA9
IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXN0LWNhc2UiKTsKICAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB0ZXN0Q2FzZXMubGVuZ3RoOyArK2kpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy9yZXNvdXJjZXMvdHJhbnNpdGlvbi10ZXN0LWhlbHBlcnMuanMgYi9M
YXlvdXRUZXN0cy90cmFuc2l0aW9ucy9yZXNvdXJjZXMvdHJhbnNpdGlvbi10ZXN0LWhlbHBlcnMu
anMKaW5kZXggZTdkNWMxM2E1NTE3MjY0YTJmMWEyOGI2OGNmMDQ1ZmU1YzQ2Mjc2NS4uM2Y1NTdi
NGI2ZTJlODNmN2JjZTA2ZGM2YmUwZGMxZDViZjM2MTQzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvdHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5zaXRpb24tdGVzdC1oZWxwZXJzLmpzCisrKyBi
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jlc291cmNlcy90cmFuc2l0aW9uLXRlc3QtaGVscGVy
cy5qcwpAQCAtMzk5LDEwICszOTksOSBAQCBmdW5jdGlvbiB3YWl0Rm9yQW5pbWF0aW9uU3RhcnQo
Y2FsbGJhY2ssIGRlbGF5KQogCiBmdW5jdGlvbiBzdGFydFRlc3QoZXhwZWN0ZWQsIHVzZVBhdXNl
QVBJLCBjYWxsYmFjaykKIHsKLSAgICBpZiAoY2FsbGJhY2spCi0gICAgICAgIGNhbGxiYWNrKCk7
Ci0KICAgICB3YWl0Rm9yQW5pbWF0aW9uU3RhcnQoZnVuY3Rpb24oKSB7CisgICAgICAgIGlmIChj
YWxsYmFjaykKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIHJ1blRlc3QoZXhwZWN0
ZWQsIHVzZVBhdXNlQVBJKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Ry
YW5zaXRpb25zL3RyYW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanMgYi9MYXlvdXRUZXN0cy90
cmFuc2l0aW9ucy90cmFuc2l0aW9uLWVuZC1ldmVudC1oZWxwZXJzLmpzCmluZGV4IGZhNWYzNTJj
MmIyOThmMTRhNmNjZWMzNzlhMDE3ZTcxNjI2M2IwZGEuLjliNDYzNDFhNDRhMGI4OTQ3MGE0NDA3
NzViOWIxZDQ3ZDg5YmRlOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZW5kLWV2ZW50LWhlbHBlcnMuanMKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlv
bnMvdHJhbnNpdGlvbi1lbmQtZXZlbnQtaGVscGVycy5qcwpAQCAtMTM0LDMwICsxMzQsNDQgQEAg
ZnVuY3Rpb24gcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWQsIGNhbGxiYWNrKQogICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgfQogCi0gIGZ1bmN0aW9uIHN0YXJ0VGVzdChleHBl
Y3RlZCwgY2FsbGJhY2ssIG1heFRpbWUpCi0gIHsKLSAgICBpZiAoY2FsbGJhY2spCi0gICAgICBj
YWxsYmFjaygpOwotICAgIAotICAgIGlmICghbWF4VGltZSkKLSAgICAgICAgbWF4VGltZSA9IDA7
Ci0KLSAgICBmb3IgKHZhciBpPTA7IGkgPCBleHBlY3RlZC5sZW5ndGg7ICsraSkgewotICAgICAg
aWYgKGV4cGVjdGVkW2ldWzNdKSB7Ci0gICAgICAgIHZhciBib3ggPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZChleHBlY3RlZFtpXVsxXSk7Ci0gICAgICAgIGJveC5hZGRFdmVudExpc3RlbmVyKCJ3
ZWJraXRUcmFuc2l0aW9uRW5kIiwgcmVjb3JkVHJhbnNpdGlvbkVuZEV2ZW50LCBmYWxzZSk7Ci0g
ICAgICB9CisgICAgZnVuY3Rpb24gd2FpdEZvckFuaW1hdGlvblN0YXJ0KGNhbGxiYWNrKQorICAg
IHsKKyAgICAgICAgLy8gV2h5IHRoZSB0d28gc2V0VGltZW91dHM/IFdlbGwsIGZvciBoYXJkd2Fy
ZSBhbmltYXRpb25zIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGhhcmR3YXJlIGFuaW1hdGlv
bgorICAgICAgICAvLyBoYXMgc3RhcnRlZCBiZWZvcmUgd2UgdHJ5IHRvIHBhdXNlIGl0LCBhbmQg
dGltZXJzIGZpcmUgYmVmb3JlIGFuaW1hdGlvbnMgZ2V0IGNvbW1pdHRlZCBpbiB0aGUgcnVubG9v
cC4KKyAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHNldFRpbWVv
dXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAg
IH0sIDApOworICAgICAgICB9LCAwKTsKKyAgICB9CiAKLSAgICAgIHZhciB0aW1lID0gZXhwZWN0
ZWRbaV1bMl07Ci0gICAgICBpZiAodGltZSA+IG1heFRpbWUpCi0gICAgICAgICAgbWF4VGltZSA9
IHRpbWU7CisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KGV4cGVjdGVkLCBjYWxsYmFjaywgbWF4VGlt
ZSkKKyAgICB7CisgICAgICAgIHdhaXRGb3JBbmltYXRpb25TdGFydChmdW5jdGlvbigpIHsKKyAg
ICAgICAgICAgIGlmIChjYWxsYmFjaykKKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworCisg
ICAgICAgICAgICBpZiAoIW1heFRpbWUpCisgICAgICAgICAgICAgICAgbWF4VGltZSA9IDA7CisK
KyAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZXhwZWN0ZWQubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgICAgICAgICBpZiAoZXhwZWN0ZWRbaV1bM10pIHsKKyAgICAgICAgICAgICAgICAg
ICAgdmFyIGJveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGV4cGVjdGVkW2ldWzFdKTsKKyAg
ICAgICAgICAgICAgICAgICAgYm94LmFkZEV2ZW50TGlzdGVuZXIoIndlYmtpdFRyYW5zaXRpb25F
bmQiLCByZWNvcmRUcmFuc2l0aW9uRW5kRXZlbnQsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgICAgICB2YXIgdGltZSA9IGV4cGVjdGVkW2ldWzJdOworICAgICAgICAg
ICAgICAgIGlmICh0aW1lID4gbWF4VGltZSkKKyAgICAgICAgICAgICAgICAgICAgbWF4VGltZSA9
IHRpbWU7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIF9lbmRGdW5jdGlvbiA9IGZ1bmN0
aW9uKCkgeyBwcm9jZXNzRW5kRXZlbnRzKGV4cGVjdGVkKTsgfTsKKworICAgICAgICAgICAgLy8g
QWRkIG9uZSBzZWNvbmQgb2YgZnVkZ2UuIFdlIGRvbid0IGp1c3QgdXNlIHRoZSBydW4td2Via2l0
LXRlc3RzIHRpbWVvdXQKKyAgICAgICAgICAgIC8vIGJlY2F1c2UgcHJvY2Vzc0VuZEV2ZW50cyBn
aXZlcyBtb3JlIGluZm9ybWF0aW9uIG9uIHdoYXQgZmFpbGVkLgorICAgICAgICAgICAgc2V0VGlt
ZW91dChfZW5kRnVuY3Rpb24sIG1heFRpbWUgKiAxMDAwICsgMTAwMCk7CisgICAgICAgIH0pOwog
ICAgIH0KLSAgICAKLSAgICBfZW5kRnVuY3Rpb24gPSBmdW5jdGlvbigpIHsgcHJvY2Vzc0VuZEV2
ZW50cyhleHBlY3RlZCk7IH07Ci0gICAgLy8gQWRkIG9uZSBzZWNvbmQgb2YgZnVkZ2UuIFdlIGRv
bid0IGp1c3QgdXNlIHRoZSBydW4td2Via2l0LXRlc3RzIHRpbWVvdXQKLSAgICAvLyBiZWNhdXNl
IHByb2Nlc3NFbmRFdmVudHMgZ2l2ZXMgbW9yZSBpbmZvcm1hdGlvbiBvbiB3aGF0IGZhaWxlZC4K
LSAgICB3aW5kb3cuc2V0VGltZW91dChfZW5kRnVuY3Rpb24sIG1heFRpbWUgKiAxMDAwICsgMTAw
MCk7Ci0gIH0KICAgCiAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgZnVuY3Rpb24o
KSB7IHN0YXJ0VGVzdChleHBlY3RlZCwgY2FsbGJhY2spIH0sIGZhbHNlKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>