<?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>130571</bug_id>
          
          <creation_ts>2014-03-21 01:49:22 -0700</creation_ts>
          <short_desc>REGRESSION(r166052): It broke EFL build (Requested by KaL on #webkit).</short_desc>
          <delta_ts>2014-03-21 01:54:53 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>130078</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>992973</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 01:49:22 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/166052 broke the build:
It broke EFL build (Requested by KaL on #webkit).

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992975</commentid>
    <comment_count>1</comment_count>
      <attachid>227399</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 01:49:55 -0700</bug_when>
    <thetext>Created attachment 227399
ROLLOUT of r166052

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992980</commentid>
    <comment_count>2</comment_count>
      <attachid>227399</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 01:54:50 -0700</bug_when>
    <thetext>Comment on attachment 227399
ROLLOUT of r166052

Clearing flags on attachment: 227399

Committed r166055: &lt;http://trac.webkit.org/changeset/166055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>992981</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-21 01:54:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227399</attachid>
            <date>2014-03-21 01:49:55 -0700</date>
            <delta_ts>2014-03-21 01:54:50 -0700</delta_ts>
            <desc>ROLLOUT of r166052</desc>
            <filename>bug-130571-20140321014933.patch</filename>
            <type>text/plain</type>
            <size>62459</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAyMjUwNzA3MjZjNTBj
YmQxMzc0NjJmMTkxNmZiOTc5ZjBhMWVlOS4uNjI2YWJlMjBmMTFhYjA2MzViYzE5MGRjNDJiOGNi
OGJlOTAzMTNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE0LTAzLTIxICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTY2MDUyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTMwNTcxCisKKyAgICAgICAgSXQgYnJva2UgRUZMIGJ1aWxkIChSZXF1
ZXN0ZWQgYnkgS2FMIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoK
KworICAgICAgICAiW0dUS10gVXNlIEdNYWluTG9vcFNvdXJjZSBmb3IgaWRsZSBhbmQgdGltZW91
dCBzb3VyY2VzIGluCisgICAgICAgIFdlYkNvcmUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzAwNzgKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTY2MDUyCisKIDIwMTQtMDMtMjEgIEd5dXlvdW5nIEtpbSAgPGd5dXlv
dW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgKmV4cGxpY2l0KiBrZXl3b3JkIHRv
IGF2b2lkIGltcGxpY2l0IHR5cGUgY29udmVyc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vZ3N0cmVhbWVyL0F1ZGlvRmlsZVJlYWRlckdTdHJlYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVy
R1N0cmVhbWVyLmNwcAppbmRleCBmMGU0ODllOTE3ODRlYjRmOGJhYzNmNGQ3YzE2MjVlNWU2NTVk
MWE0Li5lNjg3ZTU3MmE1YmZhOTY3NDA4MzVlN2ExZmE0YWRlY2MyZWFiZjIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9GaWxlUmVhZGVy
R1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFt
ZXIvQXVkaW9GaWxlUmVhZGVyR1N0cmVhbWVyLmNwcApAQCAtMjcsMTQgKzI3LDE0IEBACiAKICNp
bmNsdWRlIDxnaW8vZ2lvLmg+CiAjaW5jbHVkZSA8Z3N0L2FwcC9nc3RhcHBzaW5rLmg+Ci0jaW5j
bHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLmg+CiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUg
PGdzdC9wYnV0aWxzL3BidXRpbHMuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaD4KICNpbmNsdWRlIDx3dGYvZ29i
amVjdC9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR1VuaXF1ZVB0ci5oPgogCisj
aW5jbHVkZSA8Z3N0L2F1ZGlvL2F1ZGlvLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQXVkaW9GaWxlUmVhZGVyIHsKQEAgLTEwOCw2ICsxMDgsMTMgQEAgc3RhdGljIHZvaWQgb25H
U3RyZWFtZXJEZWNvZGViaW5QYWRBZGRlZENhbGxiYWNrKEdzdEVsZW1lbnQqLCBHc3RQYWQqIHBh
ZCwgQXVkaW8KICAgICByZWFkZXItPnBsdWdEZWludGVybGVhdmUocGFkKTsKIH0KIAorZ2Jvb2xl
YW4gZW50ZXJlZE1haW5Mb29wQ2FsbGJhY2soZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgQXVk
aW9GaWxlUmVhZGVyKiByZWFkZXIgPSByZWludGVycHJldF9jYXN0PEF1ZGlvRmlsZVJlYWRlcio+
KHVzZXJEYXRhKTsKKyAgICByZWFkZXItPmRlY29kZUF1ZGlvRm9yQnVzQ3JlYXRpb24oKTsKKyAg
ICByZXR1cm4gRkFMU0U7Cit9CisKIEF1ZGlvRmlsZVJlYWRlcjo6QXVkaW9GaWxlUmVhZGVyKGNv
bnN0IGNoYXIqIGZpbGVQYXRoKQogICAgIDogbV9kYXRhKDApCiAgICAgLCBtX2RhdGFTaXplKDAp
CkBAIC0zMzQsOCArMzQxLDkgQEAgUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9GaWxlUmVhZGVy
OjpjcmVhdGVCdXMoZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBtaXhUb01vbm8KICAgICBtX2xvb3Ag
PSBhZG9wdEdSZWYoZ19tYWluX2xvb3BfbmV3KGNvbnRleHQuZ2V0KCksIEZBTFNFKSk7CiAKICAg
ICAvLyBTdGFydCB0aGUgcGlwZWxpbmUgcHJvY2Vzc2luZyBqdXN0IGFmdGVyIHRoZSBsb29wIGlz
IHN0YXJ0ZWQuCi0gICAgR01haW5Mb29wU291cmNlIHNvdXJjZTsKLSAgICBzb3VyY2Uuc2NoZWR1
bGUoIltXZWJLaXRdIEF1ZGlvRmlsZVJlYWRlcjo6ZGVjb2RlQXVkaW9Gb3JCdXNDcmVhdGlvbiIs
IHN0ZDo6YmluZCgmQXVkaW9GaWxlUmVhZGVyOjpkZWNvZGVBdWRpb0ZvckJ1c0NyZWF0aW9uLCB0
aGlzKSwgR19QUklPUklUWV9ERUZBVUxULCBudWxscHRyLCBjb250ZXh0LmdldCgpKTsKKyAgICBH
UmVmUHRyPEdTb3VyY2U+IHRpbWVvdXRTb3VyY2UgPSBhZG9wdEdSZWYoZ190aW1lb3V0X3NvdXJj
ZV9uZXcoMCkpOworICAgIGdfc291cmNlX2F0dGFjaCh0aW1lb3V0U291cmNlLmdldCgpLCBjb250
ZXh0LmdldCgpKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sodGltZW91dFNvdXJjZS5nZXQo
KSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oZW50ZXJlZE1haW5Mb29wQ2FsbGJhY2sp
LCB0aGlzLCAwKTsKIAogICAgIGdfbWFpbl9sb29wX3J1bihtX2xvb3AuZ2V0KCkpOwogICAgIGdf
bWFpbl9jb250ZXh0X3BvcF90aHJlYWRfZGVmYXVsdChjb250ZXh0LmdldCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0
VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCA0
MjIxZjQ4YmNlYmQ2YzAwM2U0OWQyNTMyY2I0M2Q4ZTNlMzQ5NjUyLi5iZWQxMGZhYTdjMjU1YmY2
ZjdmMGVhZTkxNTJmODg3MTNiZWI2ZGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFu
ZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC01Miw4ICs1MiwyMiBAQCBzdGF0aWMg
R3N0UGFkUHJvYmVSZXR1cm4gdGV4dFRyYWNrUHJpdmF0ZUV2ZW50Q2FsbGJhY2soR3N0UGFkKiwg
R3N0UGFkUHJvYmVJbmZvKgogICAgIHJldHVybiBHU1RfUEFEX1BST0JFX09LOwogfQogCitzdGF0
aWMgZ2Jvb2xlYW4gdGV4dFRyYWNrUHJpdmF0ZVNhbXBsZVRpbWVvdXRDYWxsYmFjayhJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyKiB0cmFjaykKK3sKKyAgICB0cmFjay0+bm90aWZ5VHJh
Y2tPZlNhbXBsZSgpOworICAgIHJldHVybiBGQUxTRTsKK30KKworc3RhdGljIGdib29sZWFuIHRl
eHRUcmFja1ByaXZhdGVTdHJlYW1UaW1lb3V0Q2FsbGJhY2soSW5iYW5kVGV4dFRyYWNrUHJpdmF0
ZUdTdHJlYW1lciogdHJhY2spCit7CisgICAgdHJhY2stPm5vdGlmeVRyYWNrT2ZTdHJlYW1DaGFu
Z2VkKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0
cmVhbWVyOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyKGdpbnQgaW5kZXgsIEdSZWZQ
dHI8R3N0UGFkPiBwYWQpCiAgICAgOiBJbmJhbmRUZXh0VHJhY2tQcml2YXRlKFdlYlZUVCksIFRy
YWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIodGhpcywgaW5kZXgsIHBhZCkKKyAgICAsIG1fc2FtcGxl
VGltZXJIYW5kbGVyKDApCisgICAgLCBtX3N0cmVhbVRpbWVySGFuZGxlcigwKQogewogICAgIG1f
ZXZlbnRQcm9iZSA9IGdzdF9wYWRfYWRkX3Byb2JlKG1fcGFkLmdldCgpLCBHU1RfUEFEX1BST0JF
X1RZUEVfRVZFTlRfRE9XTlNUUkVBTSwKICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHc3RQYWRQ
cm9iZUNhbGxiYWNrPih0ZXh0VHJhY2tQcml2YXRlRXZlbnRDYWxsYmFjayksIHRoaXMsIDApOwpA
QCAtNjgsMjggKzgyLDM2IEBAIHZvaWQgSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6
ZGlzY29ubmVjdCgpCiAKICAgICBnc3RfcGFkX3JlbW92ZV9wcm9iZShtX3BhZC5nZXQoKSwgbV9l
dmVudFByb2JlKTsKIAotICAgIG1fc3RyZWFtVGltZXJIYW5kbGVyLmNhbmNlbCgpOworICAgIGlm
IChtX3N0cmVhbVRpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fc3RyZWFt
VGltZXJIYW5kbGVyKTsKIAogICAgIFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXI6OmRpc2Nvbm5l
Y3QoKTsKIH0KIAogdm9pZCBJbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpoYW5kbGVT
YW1wbGUoR1JlZlB0cjxHc3RTYW1wbGU+IHNhbXBsZSkKIHsKLSAgICBtX3NhbXBsZVRpbWVySGFu
ZGxlci5jYW5jZWwoKTsKKyAgICBpZiAobV9zYW1wbGVUaW1lckhhbmRsZXIpCisgICAgICAgIGdf
c291cmNlX3JlbW92ZShtX3NhbXBsZVRpbWVySGFuZGxlcik7CiAgICAgewogICAgICAgICBNdXRl
eExvY2tlciBsb2NrKG1fc2FtcGxlTXV0ZXgpOwogICAgICAgICBtX3BlbmRpbmdTYW1wbGVzLmFw
cGVuZChzYW1wbGUpOwogICAgIH0KLSAgICBtX3NhbXBsZVRpbWVySGFuZGxlci5zY2hlZHVsZSgi
W1dlYktpdF0gSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5VHJhY2tPZlNh
bXBsZSIsIHN0ZDo6YmluZCgmSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5
VHJhY2tPZlNhbXBsZSwgdGhpcykpOworICAgIG1fc2FtcGxlVGltZXJIYW5kbGVyID0gZ190aW1l
b3V0X2FkZCgwLAorICAgICAgICByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih0ZXh0VHJh
Y2tQcml2YXRlU2FtcGxlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CiB9CiAKIHZvaWQgSW5iYW5k
VGV4dFRyYWNrUHJpdmF0ZUdTdHJlYW1lcjo6c3RyZWFtQ2hhbmdlZCgpCiB7Ci0gICAgbV9zdHJl
YW1UaW1lckhhbmRsZXIuc2NoZWR1bGUoIltXZWJLaXRdIEluYmFuZFRleHRUcmFja1ByaXZhdGVH
U3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTdHJlYW1DaGFuZ2VkIiwgc3RkOjpiaW5kKCZJbmJhbmRU
ZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mU3RyZWFtQ2hhbmdlZCwgdGhp
cykpOworICAgIGlmIChtX3N0cmVhbVRpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVt
b3ZlKG1fc3RyZWFtVGltZXJIYW5kbGVyKTsKKyAgICBtX3N0cmVhbVRpbWVySGFuZGxlciA9IGdf
dGltZW91dF9hZGQoMCwKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4odGV4
dFRyYWNrUHJpdmF0ZVN0cmVhbVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwogfQogCiB2b2lkIElu
YmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUoKQogewor
ICAgIG1fc2FtcGxlVGltZXJIYW5kbGVyID0gMDsKKwogICAgIFZlY3RvcjxHUmVmUHRyPEdzdFNh
bXBsZT4gPiBzYW1wbGVzOwogICAgIHsKICAgICAgICAgTXV0ZXhMb2NrZXIgbG9jayhtX3NhbXBs
ZU11dGV4KTsKQEAgLTEyMCw2ICsxNDIsOCBAQCB2b2lkIEluYmFuZFRleHRUcmFja1ByaXZhdGVH
U3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTYW1wbGUoKQogCiB2b2lkIEluYmFuZFRleHRUcmFja1By
aXZhdGVHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZTdHJlYW1DaGFuZ2VkKCkKIHsKKyAgICBtX3N0
cmVhbVRpbWVySGFuZGxlciA9IDA7CisKICAgICBHUmVmUHRyPEdzdEV2ZW50PiBldmVudCA9IGFk
b3B0R1JlZihnc3RfcGFkX2dldF9zdGlja3lfZXZlbnQobV9wYWQuZ2V0KCksCiAgICAgICAgIEdT
VF9FVkVOVF9TVFJFQU1fU1RBUlQsIDApKTsKICAgICBpZiAoIWV2ZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFj
a1ByaXZhdGVHU3RyZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9JbmJhbmRUZXh0VHJhY2tQcml2YXRlR1N0cmVhbWVyLmgKaW5kZXggYWYwMGE0M2Jm
ZWFkMjUxMDViZmQ2YTgyZTFiMjU5YmEzY2Y0ODQ0OS4uMjg1Y2Q4NmM4ZjM5YmJhYzdjYTU5ZTcx
YWMzOTJiN2VhMzQxMzUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3N0cmVhbWVyL0luYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW5iYW5kVGV4dFRyYWNr
UHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiR1JlZlB0ckdT
dHJlYW1lci5oIgogI2luY2x1ZGUgIkluYmFuZFRleHRUcmFja1ByaXZhdGUuaCIKICNpbmNsdWRl
ICJUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgiCi0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01h
aW5Mb29wU291cmNlLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjIsOCArNjEsOCBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGVHU3RyZWFtZXIo
Z2ludCBpbmRleCwgR1JlZlB0cjxHc3RQYWQ+KTsKIAotICAgIEdNYWluTG9vcFNvdXJjZSBtX3Nh
bXBsZVRpbWVySGFuZGxlcjsKLSAgICBHTWFpbkxvb3BTb3VyY2UgbV9zdHJlYW1UaW1lckhhbmRs
ZXI7CisgICAgZ3VpbnQgbV9zYW1wbGVUaW1lckhhbmRsZXI7CisgICAgZ3VpbnQgbV9zdHJlYW1U
aW1lckhhbmRsZXI7CiAgICAgZ3Vsb25nIG1fZXZlbnRQcm9iZTsKICAgICBWZWN0b3I8R1JlZlB0
cjxHc3RTYW1wbGU+ID4gbV9wZW5kaW5nU2FtcGxlczsKICAgICBTdHJpbmcgbV9zdHJlYW1JZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKaW5kZXgg
YWM2MGNhYjJmNzEwNDY3MTk1Y2VjZDRmOTgyYjljYTMyNjE0MzNlZi4uNDRiZWEzMmViZmJmNjRk
OGNmY2I0OThiMTk3NGQ0MmRlYTdjMzQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTU4LDcgKzU4LDcgQEAKIAogLy8gTWF4IGludGVy
dmFsIGluIHNlY29uZHMgdG8gc3RheSBpbiB0aGUgUkVBRFkgc3RhdGUgb24gbWFudWFsCiAvLyBz
dGF0ZSBjaGFuZ2UgcmVxdWVzdHMuCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgZ1JlYWR5U3RhdGVU
aW1lckludGVydmFsID0gNjA7CitzdGF0aWMgY29uc3QgZ3VpbnQgZ1JlYWR5U3RhdGVUaW1lcklu
dGVydmFsID0gNjA7CiAKIEdTVF9ERUJVR19DQVRFR09SWV9FWFRFUk4od2Via2l0X21lZGlhX3Bs
YXllcl9kZWJ1Zyk7CiAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCB3ZWJraXRfbWVkaWFfcGxheWVy
X2RlYnVnCkBAIC05MiwxOCArOTIsNDYgQEAgc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRl
QXVkaW9DaGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIE1lZGlhUGxheWVyUHJpdmF0ZUcKICAgICBw
bGF5ZXItPmF1ZGlvQ2hhbmdlZCgpOwogfQogCitzdGF0aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQ
cml2YXRlQXVkaW9DaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyKiBwbGF5ZXIpCit7CisgICAgLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVv
dXQgc291cmNlIGNyZWF0ZWQgaW4gOjphdWRpb0NoYW5nZWQuCisgICAgcGxheWVyLT5ub3RpZnlQ
bGF5ZXJPZkF1ZGlvKCk7CisgICAgcmV0dXJuIEZBTFNFOworfQorCiBzdGF0aWMgdm9pZCBzZXRB
dWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayhHc3RDaGlsZFByb3h5KiwgR09iamVjdCogb2Jq
ZWN0LCBnY2hhciosCiAgICAgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5ZXIpCiB7
CiAgICAgcGxheWVyLT5zZXRBdWRpb1N0cmVhbVByb3BlcnRpZXMob2JqZWN0KTsKIH0KIAorc3Rh
dGljIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2hhbmdlVGltZW91dENhbGxiYWNr
KE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQoreworICAgIC8vIFRoaXMgaXMg
dGhlIGNhbGxiYWNrIG9mIHRoZSB0aW1lb3V0IHNvdXJjZSBjcmVhdGVkIGluIDo6dmlkZW9DaGFu
Z2VkLgorICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZWaWRlbygpOworICAgIHJldHVybiBGQUxT
RTsKK30KKworc3RhdGljIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVZpZGVvQ2Fwc0NoYW5n
ZVRpbWVvdXRDYWxsYmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKK3sK
KyAgICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRl
ZCBpbiA6OnZpZGVvQ2Fwc0NoYW5nZWQuCisgICAgcGxheWVyLT5ub3RpZnlQbGF5ZXJPZlZpZGVv
Q2FwcygpOworICAgIHJldHVybiBGQUxTRTsKK30KKwogI2lmIEVOQUJMRShWSURFT19UUkFDSykK
IHN0YXRpYyB2b2lkIG1lZGlhUGxheWVyUHJpdmF0ZVRleHRDaGFuZ2VkQ2FsbGJhY2soR09iamVj
dCosIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lciogcGxheWVyKQogewogICAgIHBsYXllci0+
dGV4dENoYW5nZWQoKTsKIH0KIAorc3RhdGljIGdib29sZWFuIG1lZGlhUGxheWVyUHJpdmF0ZVRl
eHRDaGFuZ2VUaW1lb3V0Q2FsbGJhY2soTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKiBwbGF5
ZXIpCit7CisgICAgLy8gVGhpcyBpcyB0aGUgY2FsbGJhY2sgb2YgdGhlIHRpbWVvdXQgc291cmNl
IGNyZWF0ZWQgaW4gOjp0ZXh0Q2hhbmdlZC4KKyAgICBwbGF5ZXItPm5vdGlmeVBsYXllck9mVGV4
dCgpOworICAgIHJldHVybiBGQUxTRTsKK30KKwogc3RhdGljIEdzdEZsb3dSZXR1cm4gbWVkaWFQ
bGF5ZXJQcml2YXRlTmV3VGV4dFNhbXBsZUNhbGxiYWNrKEdPYmplY3QqLCBNZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIqIHBsYXllcikKIHsKICAgICBwbGF5ZXItPm5ld1RleHRTYW1wbGUoKTsK
QEAgLTExMSw2ICsxMzksMTQgQEAgc3RhdGljIEdzdEZsb3dSZXR1cm4gbWVkaWFQbGF5ZXJQcml2
YXRlTmV3VGV4dFNhbXBsZUNhbGxiYWNrKEdPYmplY3QqLCBNZWRpYVBsYXkKIH0KICNlbmRpZgog
CitzdGF0aWMgZ2Jvb2xlYW4gbWVkaWFQbGF5ZXJQcml2YXRlUmVhZHlTdGF0ZVRpbWVvdXRDYWxs
YmFjayhNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllcikKK3sKKyAgICAvLyBUaGlz
IGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6OmNoYW5n
ZVBpcGVsaW5lU3RhdGUuCisgICAgLy8gUmVzZXQgcGlwZWxpbmUgaWYgd2UgYXJlIHNpdHRpbmcg
b24gUkVBRFkgc3RhdGUgd2hlbiB0aW1lb3V0IGlzIHJlYWNoZWQKKyAgICBwbGF5ZXItPmNoYW5n
ZVBpcGVsaW5lU3RhdGUoR1NUX1NUQVRFX05VTEwpOworICAgIHJldHVybiBGQUxTRTsKK30KKwog
c3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlUGx1Z2luSW5zdGFsbGVyUmVzdWx0RnVuY3Rp
b24oR3N0SW5zdGFsbFBsdWdpbnNSZXR1cm4gcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkKIHsK
ICAgICBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIqIHBsYXllciA9IHJlaW50ZXJwcmV0X2Nh
c3Q8TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKj4odXNlckRhdGEpOwpAQCAtMjEzLDYgKzI0
OSwxMSBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Ok1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcihNZWRpYVBsYXllciogcGxheWVyKQogICAgICwgbV92b2x1bWVBbmRNdXRlSW5pdGlh
bGl6ZWQoZmFsc2UpCiAgICAgLCBtX2hhc1ZpZGVvKGZhbHNlKQogICAgICwgbV9oYXNBdWRpbyhm
YWxzZSkKKyAgICAsIG1fYXVkaW9UaW1lckhhbmRsZXIoMCkKKyAgICAsIG1fdGV4dFRpbWVySGFu
ZGxlcigwKQorICAgICwgbV92aWRlb1RpbWVySGFuZGxlcigwKQorICAgICwgbV92aWRlb0NhcHNU
aW1lckhhbmRsZXIoMCkKKyAgICAsIG1fcmVhZHlUaW1lckhhbmRsZXIoMCkKICAgICAsIG1fdG90
YWxCeXRlcygtMSkKICAgICAsIG1fcHJlc2VydmVzUGl0Y2goZmFsc2UpCiAgICAgLCBtX3JlcXVl
c3RlZFN0YXRlKEdTVF9TVEFURV9WT0lEX1BFTkRJTkcpCkBAIC0yNDQsNyArMjg1LDggQEAgTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjp+TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyKCkK
ICAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKEdfT0JKRUNUKG1f
YXV0b0F1ZGlvU2luay5nZXQoKSksCiAgICAgICAgICAgICByZWludGVycHJldF9jYXN0PGdwb2lu
dGVyPihzZXRBdWRpb1N0cmVhbVByb3BlcnRpZXNDYWxsYmFjayksIHRoaXMpOwogCi0gICAgbV9y
ZWFkeVRpbWVySGFuZGxlci5jYW5jZWwoKTsKKyAgICBpZiAobV9yZWFkeVRpbWVySGFuZGxlcikK
KyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fcmVhZHlUaW1lckhhbmRsZXIpOwogCiAgICAgaWYg
KG1fcGxheUJpbikgewogICAgICAgICBHUmVmUHRyPEdzdEJ1cz4gYnVzID0gYWRvcHRHUmVmKGdz
dF9waXBlbGluZV9nZXRfYnVzKEdTVF9QSVBFTElORShtX3BsYXlCaW4uZ2V0KCkpKSk7CkBAIC0y
NjYsNiArMzA4LDE4IEBAIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6fk1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lcigpCiAKICAgICBHUmVmUHRyPEdzdFBhZD4gdmlkZW9TaW5rUGFkID0g
YWRvcHRHUmVmKGdzdF9lbGVtZW50X2dldF9zdGF0aWNfcGFkKG1fd2Via2l0VmlkZW9TaW5rLmdl
dCgpLCAic2luayIpKTsKICAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMo
dmlkZW9TaW5rUGFkLmdldCgpLCByZWludGVycHJldF9jYXN0PGdwb2ludGVyPihtZWRpYVBsYXll
clByaXZhdGVWaWRlb1NpbmtDYXBzQ2hhbmdlZENhbGxiYWNrKSwgdGhpcyk7CisKKyAgICBpZiAo
bV92aWRlb1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKG1fdmlkZW9UaW1l
ckhhbmRsZXIpOworCisgICAgaWYgKG1fYXVkaW9UaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291
cmNlX3JlbW92ZShtX2F1ZGlvVGltZXJIYW5kbGVyKTsKKworICAgIGlmIChtX3RleHRUaW1lckhh
bmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3RleHRUaW1lckhhbmRsZXIpOworCisg
ICAgaWYgKG1fdmlkZW9DYXBzVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUo
bV92aWRlb0NhcHNUaW1lckhhbmRsZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6bG9hZChjb25zdCBTdHJpbmcmIHVybCkKQEAgLTM4OSwxMSArNDQzLDEyIEBAIGJv
b2wgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpjaGFuZ2VQaXBlbGluZVN0YXRlKEdzdFN0
YXRlIG5ld1N0YXRlKQogICAgIC8vIGlmIHdlIHN0YXkgZm9yIHRvbyBsb25nIG9uIFJFQURZLgog
ICAgIC8vIEFsc28gbGV0cyByZW1vdmUgdGhlIHRpbWVyIGlmIHdlIHJlcXVlc3QgYSBzdGF0ZSBj
aGFuZ2UgZm9yIGFueSBzdGF0ZSBvdGhlciB0aGFuIFJFQURZLgogICAgIC8vIFNlZSBhbHNvIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTczNTQKLSAgICBpZiAobmV3
U3RhdGUgPT0gR1NUX1NUQVRFX1JFQURZICYmICFtX3JlYWR5VGltZXJIYW5kbGVyLmlzU2NoZWR1
bGVkKCkpIHsKLSAgICAgICAgbV9yZWFkeVRpbWVySGFuZGxlci5zY2hlZHVsZUFmdGVyRGVsYXko
IltXZWJLaXRdIG1lZGlhUGxheWVyUHJpdmF0ZVJlYWR5U3RhdGVUaW1lb3V0Q2FsbGJhY2siLCBb
dGhpc10geyBjaGFuZ2VQaXBlbGluZVN0YXRlKEdTVF9TVEFURV9OVUxMKTsgfSwKLSAgICAgICAg
ICAgIHN0ZDo6Y2hyb25vOjpzZWNvbmRzKGdSZWFkeVN0YXRlVGltZXJJbnRlcnZhbCkpOwotICAg
IH0gZWxzZSBpZiAobmV3U3RhdGUgIT0gR1NUX1NUQVRFX1JFQURZICYmIG1fcmVhZHlUaW1lckhh
bmRsZXIuaXNTY2hlZHVsZWQoKSkgewotICAgICAgICBtX3JlYWR5VGltZXJIYW5kbGVyLmNhbmNl
bCgpOworICAgIGlmIChuZXdTdGF0ZSA9PSBHU1RfU1RBVEVfUkVBRFkgJiYgIW1fcmVhZHlUaW1l
ckhhbmRsZXIpIHsKKyAgICAgICAgbV9yZWFkeVRpbWVySGFuZGxlciA9IGdfdGltZW91dF9hZGRf
c2Vjb25kcyhnUmVhZHlTdGF0ZVRpbWVySW50ZXJ2YWwsIHJlaW50ZXJwcmV0X2Nhc3Q8R1NvdXJj
ZUZ1bmM+KG1lZGlhUGxheWVyUHJpdmF0ZVJlYWR5U3RhdGVUaW1lb3V0Q2FsbGJhY2spLCB0aGlz
KTsKKyAgICAgICAgZ19zb3VyY2Vfc2V0X25hbWVfYnlfaWQobV9yZWFkeVRpbWVySGFuZGxlciwg
IltXZWJLaXRdIG1lZGlhUGxheWVyUHJpdmF0ZVJlYWR5U3RhdGVUaW1lb3V0Q2FsbGJhY2siKTsK
KyAgICB9IGVsc2UgaWYgKG5ld1N0YXRlICE9IEdTVF9TVEFURV9SRUFEWSAmJiBtX3JlYWR5VGlt
ZXJIYW5kbGVyKSB7CisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3JlYWR5VGltZXJIYW5kbGVy
KTsKKyAgICAgICAgbV9yZWFkeVRpbWVySGFuZGxlciA9IDA7CiAgICAgfQogCiAgICAgcmV0dXJu
IHRydWU7CkBAIC02MTQsMTYgKzY2OSwyNCBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lcjo6c2Vla2luZygpIGNvbnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVy
Ojp2aWRlb0NoYW5nZWQoKQogewotICAgIG1fdmlkZW9UaW1lckhhbmRsZXIuc2NoZWR1bGUoIltX
ZWJLaXRdIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9DaGFuZ2VkIiwgc3RkOjpi
aW5kKCZNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVmlkZW8sIHRo
aXMpKTsKKyAgICBpZiAobV92aWRlb1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVt
b3ZlKG1fdmlkZW9UaW1lckhhbmRsZXIpOworICAgIG1fdmlkZW9UaW1lckhhbmRsZXIgPSBnX2lk
bGVfYWRkX2Z1bGwoR19QUklPUklUWV9ERUZBVUxULCByZWludGVycHJldF9jYXN0PEdTb3VyY2VG
dW5jPihtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMs
IDApOworICAgIGdfc291cmNlX3NldF9uYW1lX2J5X2lkKG1fdmlkZW9UaW1lckhhbmRsZXIsICJb
V2ViS2l0XSBtZWRpYVBsYXllclByaXZhdGVWaWRlb0NoYW5nZVRpbWVvdXRDYWxsYmFjayIpOwog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9DYXBzQ2hhbmdlZCgp
CiB7Ci0gICAgbV92aWRlb0NhcHNUaW1lckhhbmRsZXIuc2NoZWR1bGUoIltXZWJLaXRdIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dmlkZW9DYXBzQ2hhbmdlZCIsIHN0ZDo6YmluZCgmTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZpZGVvQ2FwcywgdGhpcykp
OworICAgIGlmIChtX3ZpZGVvQ2Fwc1RpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVt
b3ZlKG1fdmlkZW9DYXBzVGltZXJIYW5kbGVyKTsKKyAgICBtX3ZpZGVvQ2Fwc1RpbWVySGFuZGxl
ciA9IGdfdGltZW91dF9hZGQoMCwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4obWVkaWFQ
bGF5ZXJQcml2YXRlVmlkZW9DYXBzQ2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CisgICAg
Z19zb3VyY2Vfc2V0X25hbWVfYnlfaWQobV92aWRlb0NhcHNUaW1lckhhbmRsZXIsICJbV2ViS2l0
XSBtZWRpYVBsYXllclByaXZhdGVWaWRlb0NhcHNDaGFuZ2VUaW1lb3V0Q2FsbGJhY2siKTsKIH0K
IAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlmeVBsYXllck9mVmlkZW8o
KQogeworICAgIG1fdmlkZW9UaW1lckhhbmRsZXIgPSAwOworCiAgICAgZ2ludCBudW1UcmFja3Mg
PSAwOwogICAgIGlmIChtX3BsYXlCaW4pCiAgICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4u
Z2V0KCksICJuLXZpZGVvIiwgJm51bVRyYWNrcywgTlVMTCk7CkBAIC02NjEsMTcgKzcyNCwyMyBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZWaWRlbygp
CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5ZXJPZlZpZGVv
Q2FwcygpCiB7CisgICAgbV92aWRlb0NhcHNUaW1lckhhbmRsZXIgPSAwOwogICAgIG1fdmlkZW9T
aXplID0gSW50U2l6ZSgpOwogICAgIG1fcGxheWVyLT5tZWRpYVBsYXllckNsaWVudCgpLT5tZWRp
YVBsYXllckVuZ2luZVVwZGF0ZWQobV9wbGF5ZXIpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lcjo6YXVkaW9DaGFuZ2VkKCkKIHsKLSAgICBtX2F1ZGlvVGltZXJIYW5kbGVy
LnNjaGVkdWxlKCJbV2ViS2l0XSBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6OmF1ZGlvQ2hh
bmdlZCIsIHN0ZDo6YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyOjpub3RpZnlQbGF5
ZXJPZkF1ZGlvLCB0aGlzKSk7CisgICAgaWYgKG1fYXVkaW9UaW1lckhhbmRsZXIpCisgICAgICAg
IGdfc291cmNlX3JlbW92ZShtX2F1ZGlvVGltZXJIYW5kbGVyKTsKKyAgICBtX2F1ZGlvVGltZXJI
YW5kbGVyID0gZ19pZGxlX2FkZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVMVCwgcmVpbnRlcnByZXRf
Y2FzdDxHU291cmNlRnVuYz4obWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1lb3V0Q2Fs
bGJhY2spLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9zZXRfbmFtZV9ieV9pZChtX2F1ZGlvVGlt
ZXJIYW5kbGVyLCAiW1dlYktpdF0gbWVkaWFQbGF5ZXJQcml2YXRlQXVkaW9DaGFuZ2VUaW1lb3V0
Q2FsbGJhY2siKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6Om5vdGlm
eVBsYXllck9mQXVkaW8oKQogeworICAgIG1fYXVkaW9UaW1lckhhbmRsZXIgPSAwOworCiAgICAg
Z2ludCBudW1UcmFja3MgPSAwOwogICAgIGlmIChtX3BsYXlCaW4pCiAgICAgICAgIGdfb2JqZWN0
X2dldChtX3BsYXlCaW4uZ2V0KCksICJuLWF1ZGlvIiwgJm51bVRyYWNrcywgTlVMTCk7CkBAIC03
MTAsMTEgKzc3OSwxNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5
UGxheWVyT2ZBdWRpbygpCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogdm9pZCBNZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXI6OnRleHRDaGFuZ2VkKCkKIHsKLSAgICBtX3RleHRUaW1lckhhbmRs
ZXIuc2NoZWR1bGUoIltXZWJLaXRdIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6dGV4dENo
YW5nZWQiLCBzdGQ6OmJpbmQoJk1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxh
eWVyT2ZUZXh0LCB0aGlzKSk7CisgICAgaWYgKG1fdGV4dFRpbWVySGFuZGxlcikKKyAgICAgICAg
Z19zb3VyY2VfcmVtb3ZlKG1fdGV4dFRpbWVySGFuZGxlcik7CisgICAgbV90ZXh0VGltZXJIYW5k
bGVyID0gZ190aW1lb3V0X2FkZCgwLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihtZWRp
YVBsYXllclByaXZhdGVUZXh0Q2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcyk7CisgICAgZ19z
b3VyY2Vfc2V0X25hbWVfYnlfaWQobV90ZXh0VGltZXJIYW5kbGVyLCAiW1dlYktpdF0gbWVkaWFQ
bGF5ZXJQcml2YXRlVGV4dENoYW5nZVRpbWVvdXRDYWxsYmFjayIpOwogfQogCiB2b2lkIE1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6bm90aWZ5UGxheWVyT2ZUZXh0KCkKIHsKKyAgICBtX3Rl
eHRUaW1lckhhbmRsZXIgPSAwOworCiAgICAgZ2ludCBudW1UcmFja3MgPSAwOwogICAgIGlmICht
X3BsYXlCaW4pCiAgICAgICAgIGdfb2JqZWN0X2dldChtX3BsYXlCaW4uZ2V0KCksICJuLXRleHQi
LCAmbnVtVHJhY2tzLCBOVUxMKTsKQEAgLTE1NjYsNyArMTY0MCwxMCBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lcjo6bG9hZGluZ0ZhaWxlZChNZWRpYVBsYXllcjo6TmV0d29ya1N0
YXRlIGVycm9yKQogICAgIH0KIAogICAgIC8vIExvYWRpbmcgZmFpbGVkLCByZW1vdmUgcmVhZHkg
dGltZXIuCi0gICAgbV9yZWFkeVRpbWVySGFuZGxlci5jYW5jZWwoKTsKKyAgICBpZiAobV9yZWFk
eVRpbWVySGFuZGxlcikgeworICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9yZWFkeVRpbWVySGFu
ZGxlcik7CisgICAgICAgIG1fcmVhZHlUaW1lckhhbmRsZXIgPSAwOworICAgIH0KIH0KIAogc3Rh
dGljIEhhc2hTZXQ8U3RyaW5nPiBtaW1lVHlwZUNhY2hlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuaAppbmRleCBjM2NmZWY1YmI0OTFiM2U4OTg2YmYyNjYz
MWQxNDcxZTAzZmI5NDZiLi5hMzcwZGEzNGVkYmRhNzNmZWFmYTkyYzU4NWM3ZDRhZDZkYmUzZjBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCkBAIC0z
Miw3ICszMiw2IEBACiAjaW5jbHVkZSA8Z3N0L2dzdC5oPgogI2luY2x1ZGUgPGdzdC9wYnV0aWxz
L2luc3RhbGwtcGx1Z2lucy5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8
d3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmg+CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNF
KQogI2luY2x1ZGUgIk1lZGlhU291cmNlR1N0cmVhbWVyLmgiCkBAIC0xOTAsMTEgKzE4OSwxMSBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV92b2x1bWVBbmRNdXRlSW5pdGlhbGl6ZWQ7CiAgICAgYm9v
bCBtX2hhc1ZpZGVvOwogICAgIGJvb2wgbV9oYXNBdWRpbzsKLSAgICBHTWFpbkxvb3BTb3VyY2Ug
bV9hdWRpb1RpbWVySGFuZGxlcjsKLSAgICBHTWFpbkxvb3BTb3VyY2UgbV90ZXh0VGltZXJIYW5k
bGVyOwotICAgIEdNYWluTG9vcFNvdXJjZSBtX3ZpZGVvVGltZXJIYW5kbGVyOwotICAgIEdNYWlu
TG9vcFNvdXJjZSBtX3ZpZGVvQ2Fwc1RpbWVySGFuZGxlcjsKLSAgICBHTWFpbkxvb3BTb3VyY2Ug
bV9yZWFkeVRpbWVySGFuZGxlcjsKKyAgICBndWludCBtX2F1ZGlvVGltZXJIYW5kbGVyOworICAg
IGd1aW50IG1fdGV4dFRpbWVySGFuZGxlcjsKKyAgICBndWludCBtX3ZpZGVvVGltZXJIYW5kbGVy
OworICAgIGd1aW50IG1fdmlkZW9DYXBzVGltZXJIYW5kbGVyOworICAgIGd1aW50IG1fcmVhZHlU
aW1lckhhbmRsZXI7CiAgICAgbXV0YWJsZSBsb25nIG1fdG90YWxCeXRlczsKICAgICBVUkwgbV91
cmw7CiAgICAgYm9vbCBtX3ByZXNlcnZlc1BpdGNoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCmluZGV4IDk1MjdkN2RiNzEzMjM2NGE0
MmNkNTAwNThkOGFiZjFhMmJjNjcwYzQuLmI2ZWEyMDI4ZGQzMjM3YzczOWFjYThiMTMwY2FiNjZj
MWM0NzQ3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyQmFzZS5jcHAKQEAgLTcyLDEyICs3MiwyNiBAQCBzdGF0aWMgdm9pZCBtZWRpYVBsYXll
clByaXZhdGVWb2x1bWVDaGFuZ2VkQ2FsbGJhY2soR09iamVjdCosIEdQYXJhbVNwZWMqLCBNZWRp
YQogICAgIHBsYXllci0+dm9sdW1lQ2hhbmdlZCgpOwogfQogCitzdGF0aWMgZ2Jvb2xlYW4gbWVk
aWFQbGF5ZXJQcml2YXRlVm9sdW1lQ2hhbmdlVGltZW91dENhbGxiYWNrKE1lZGlhUGxheWVyUHJp
dmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllcikKK3sKKyAgICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFj
ayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBpbiA6OnZvbHVtZUNoYW5nZWQuCisgICAg
cGxheWVyLT5ub3RpZnlQbGF5ZXJPZlZvbHVtZUNoYW5nZSgpOworICAgIHJldHVybiBGQUxTRTsK
K30KKwogc3RhdGljIHZvaWQgbWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZWRDYWxsYmFjayhH
T2JqZWN0KiwgR1BhcmFtU3BlYyosIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBs
YXllcikKIHsKICAgICAvLyBUaGlzIGlzIGNhbGxlZCB3aGVuIG1fdm9sdW1lRWxlbWVudCByZWNl
aXZlcyB0aGUgbm90aWZ5OjptdXRlIHNpZ25hbC4KICAgICBwbGF5ZXItPm11dGVDaGFuZ2VkKCk7
CiB9CiAKK3N0YXRpYyBnYm9vbGVhbiBtZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlVGltZW91
dENhbGxiYWNrKE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllcikKK3sKKyAg
ICAvLyBUaGlzIGlzIHRoZSBjYWxsYmFjayBvZiB0aGUgdGltZW91dCBzb3VyY2UgY3JlYXRlZCBp
biA6Om11dGVDaGFuZ2VkLgorICAgIHBsYXllci0+bm90aWZ5UGxheWVyT2ZNdXRlKCk7CisgICAg
cmV0dXJuIEZBTFNFOworfQorCiBzdGF0aWMgdm9pZCBtZWRpYVBsYXllclByaXZhdGVSZXBhaW50
Q2FsbGJhY2soV2ViS2l0VmlkZW9TaW5rKiwgR3N0QnVmZmVyICpidWZmZXIsIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UqIHBsYXllclByaXZhdGUpCiB7CiAgICAgcGxheWVyUHJpdmF0
ZS0+dHJpZ2dlclJlcGFpbnQoYnVmZmVyKTsKQEAgLTg5LDYgKzEwMyw4IEBAIE1lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2U6Ok1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UoTWVk
aWFQbGF5ZXIqIHBsCiAgICAgLCBtX3JlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5n
KQogICAgICwgbV9uZXR3b3JrU3RhdGUoTWVkaWFQbGF5ZXI6OkVtcHR5KQogICAgICwgbV9idWZm
ZXIoMCkKKyAgICAsIG1fdm9sdW1lVGltZXJIYW5kbGVyKDApCisgICAgLCBtX211dGVUaW1lckhh
bmRsZXIoMCkKICAgICAsIG1fcmVwYWludEhhbmRsZXIoMCkKICAgICAsIG1fdm9sdW1lU2lnbmFs
SGFuZGxlcigwKQogICAgICwgbV9tdXRlU2lnbmFsSGFuZGxlcigwKQpAQCAtMTE4LDYgKzEzNCwx
MiBAQCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp+TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyQmFzZSgpCiAKICAgICBtX3BsYXllciA9IDA7CiAKKyAgICBpZiAobV9tdXRlVGlt
ZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9tdXRlVGltZXJIYW5kbGVyKTsK
KworICAgIGlmIChtX3ZvbHVtZVRpbWVySGFuZGxlcikKKyAgICAgICAgZ19zb3VyY2VfcmVtb3Zl
KG1fdm9sdW1lVGltZXJIYW5kbGVyKTsKKwogICAgIGlmIChtX3ZvbHVtZVNpZ25hbEhhbmRsZXIp
IHsKICAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KG1fdm9sdW1lRWxlbWVudC5n
ZXQoKSwgbV92b2x1bWVTaWduYWxIYW5kbGVyKTsKICAgICAgICAgbV92b2x1bWVTaWduYWxIYW5k
bGVyID0gMDsKQEAgLTIwOSw2ICsyMzEsOCBAQCBmbG9hdCBNZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXJCYXNlOjp2b2x1bWUoKSBjb25zdAogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lckJhc2U6Om5vdGlmeVBsYXllck9mVm9sdW1lQ2hhbmdlKCkKIHsKKyAgICBtX3ZvbHVtZVRp
bWVySGFuZGxlciA9IDA7CisKICAgICBpZiAoIW1fcGxheWVyIHx8ICFtX3ZvbHVtZUVsZW1lbnQp
CiAgICAgICAgIHJldHVybjsKICAgICBkb3VibGUgdm9sdW1lOwpAQCAtMjIyLDcgKzI0NiwxMCBA
QCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om5vdGlmeVBsYXllck9mVm9s
dW1lQ2hhbmdlKCkKIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjp2b2x1
bWVDaGFuZ2VkKCkKIHsKLSAgICBtX3ZvbHVtZVRpbWVySGFuZGxlci5zY2hlZHVsZSgiW1dlYktp
dF0gTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6dm9sdW1lQ2hhbmdlZCIsIHN0ZDo6
YmluZCgmTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bm90aWZ5UGxheWVyT2ZWb2x1
bWVDaGFuZ2UsIHRoaXMpKTsKKyAgICBpZiAobV92b2x1bWVUaW1lckhhbmRsZXIpCisgICAgICAg
IGdfc291cmNlX3JlbW92ZShtX3ZvbHVtZVRpbWVySGFuZGxlcik7CisgICAgbV92b2x1bWVUaW1l
ckhhbmRsZXIgPSBnX2lkbGVfYWRkX2Z1bGwoR19QUklPUklUWV9ERUZBVUxULCByZWludGVycHJl
dF9jYXN0PEdTb3VyY2VGdW5jPihtZWRpYVBsYXllclByaXZhdGVWb2x1bWVDaGFuZ2VUaW1lb3V0
Q2FsbGJhY2spLCB0aGlzLCAwKTsKKyAgICBnX3NvdXJjZV9zZXRfbmFtZV9ieV9pZChtX3ZvbHVt
ZVRpbWVySGFuZGxlciwgIltXZWJLaXRdIG1lZGlhUGxheWVyUHJpdmF0ZVZvbHVtZUNoYW5nZVRp
bWVvdXRDYWxsYmFjayIpOwogfQogCiBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIE1lZGlhUGxh
eWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om5ldHdvcmtTdGF0ZSgpIGNvbnN0CkBAIC0yNjAsNiAr
Mjg3LDggQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjptdXRlZCgpIGNv
bnN0CiAKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6bm90aWZ5UGxheWVy
T2ZNdXRlKCkKIHsKKyAgICBtX211dGVUaW1lckhhbmRsZXIgPSAwOworCiAgICAgaWYgKCFtX3Bs
YXllciB8fCAhbV92b2x1bWVFbGVtZW50KQogICAgICAgICByZXR1cm47CiAKQEAgLTI3MCw5ICsy
OTksMTMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpub3RpZnlQbGF5
ZXJPZk11dGUoKQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om11dGVD
aGFuZ2VkKCkKIHsKLSAgICBtX211dGVUaW1lckhhbmRsZXIuc2NoZWR1bGUoIltXZWJLaXRdIE1l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6Om11dGVDaGFuZ2VkIiwgc3RkOjpiaW5kKCZN
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlOjpub3RpZnlQbGF5ZXJPZk11dGUsIHRoaXMp
KTsKKyAgICBpZiAobV9tdXRlVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUo
bV9tdXRlVGltZXJIYW5kbGVyKTsKKyAgICBtX211dGVUaW1lckhhbmRsZXIgPSBnX2lkbGVfYWRk
X2Z1bGwoR19QUklPUklUWV9ERUZBVUxULCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPiht
ZWRpYVBsYXllclByaXZhdGVNdXRlQ2hhbmdlVGltZW91dENhbGxiYWNrKSwgdGhpcywgMCk7Cisg
ICAgZ19zb3VyY2Vfc2V0X25hbWVfYnlfaWQobV9tdXRlVGltZXJIYW5kbGVyLCAiW1dlYktpdF0g
bWVkaWFQbGF5ZXJQcml2YXRlTXV0ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayIpOwogfQogCisKICNp
ZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiBQ
YXNzUmVmUHRyPEJpdG1hcFRleHR1cmU+IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6
OnVwZGF0ZVRleHR1cmUoVGV4dHVyZU1hcHBlciogdGV4dHVyZU1hcHBlcikKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXJCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5oCmluZGV4IDEzY2E2
ZTZmYTczY2ZjYTNhYTZiNGQ4YWJjYTNmYjg4MTgyZTgxYmIuLjdjMzhiZDhlMjQ0ZTc1NDA4Yjli
ZTRkMzgwMGE1NzFjYzZkYjBhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lckJhc2UuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgPGdsaWIu
aD4KIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01h
aW5Mb29wU291cmNlLmg+CiAKICNpZiBVU0UoVEVYVFVSRV9NQVBQRVJfR0wpICYmICFVU0UoQ09P
UkRJTkFURURfR1JBUEhJQ1MpCiAjaW5jbHVkZSAiVGV4dHVyZU1hcHBlclBsYXRmb3JtTGF5ZXIu
aCIKQEAgLTEyMCw4ICsxMTksOCBAQCBwcm90ZWN0ZWQ6CiAgICAgSW50U2l6ZSBtX3NpemU7CiAg
ICAgR011dGV4KiBtX2J1ZmZlck11dGV4OwogICAgIEdzdEJ1ZmZlciogbV9idWZmZXI7Ci0gICAg
R01haW5Mb29wU291cmNlIG1fdm9sdW1lVGltZXJIYW5kbGVyOwotICAgIEdNYWluTG9vcFNvdXJj
ZSBtX211dGVUaW1lckhhbmRsZXI7CisgICAgdW5zaWduZWQgbG9uZyBtX3ZvbHVtZVRpbWVySGFu
ZGxlcjsKKyAgICB1bnNpZ25lZCBsb25nIG1fbXV0ZVRpbWVySGFuZGxlcjsKICAgICB1bnNpZ25l
ZCBsb25nIG1fcmVwYWludEhhbmRsZXI7CiAgICAgdW5zaWduZWQgbG9uZyBtX3ZvbHVtZVNpZ25h
bEhhbmRsZXI7CiAgICAgdW5zaWduZWQgbG9uZyBtX211dGVTaWduYWxIYW5kbGVyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJp
dmF0ZUJhc2VHU3RyZWFtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3N0cmVhbWVyL1RyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIuY3BwCmluZGV4IGEyOTlkMjk4N2Fk
ZWE5NGI4MzJiYjZhYzIzOGM1NWJkOWM2MjlmMDMuLjBlZThhN2IxYmYxNGEyZDI3MTI3MzUxMzg5
ODkzODM0YmM3ZjUwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lci5jcHAKQEAgLTUzLDEwICs1MywyNCBAQCBzdGF0aWMgdm9pZCB0cmFja1ByaXZhdGVUYWdz
Q2hhbmdlZENhbGxiYWNrKEdPYmplY3QqLCBHUGFyYW1TcGVjKiwgVHJhY2tQcml2YXRlQgogICAg
IHRyYWNrLT50YWdzQ2hhbmdlZCgpOwogfQogCitzdGF0aWMgZ2Jvb2xlYW4gdHJhY2tQcml2YXRl
QWN0aXZlQ2hhbmdlVGltZW91dENhbGxiYWNrKFRyYWNrUHJpdmF0ZUJhc2VHU3RyZWFtZXIqIHRy
YWNrKQoreworICAgIHRyYWNrLT5ub3RpZnlUcmFja09mQWN0aXZlQ2hhbmdlZCgpOworICAgIHJl
dHVybiBGQUxTRTsKK30KKworc3RhdGljIGdib29sZWFuIHRyYWNrUHJpdmF0ZVRhZ3NDaGFuZ2VU
aW1lb3V0Q2FsbGJhY2soVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lciogdHJhY2spCit7CisgICAg
dHJhY2stPm5vdGlmeVRyYWNrT2ZUYWdzQ2hhbmdlZCgpOworICAgIHJldHVybiBGQUxTRTsKK30K
KwogVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6VHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcihU
cmFja1ByaXZhdGVCYXNlKiBvd25lciwgZ2ludCBpbmRleCwgR1JlZlB0cjxHc3RQYWQ+IHBhZCkK
ICAgICA6IG1faW5kZXgoaW5kZXgpCiAgICAgLCBtX3BhZChwYWQpCiAgICAgLCBtX293bmVyKG93
bmVyKQorICAgICwgbV9hY3RpdmVUaW1lckhhbmRsZXIoMCkKKyAgICAsIG1fdGFnVGltZXJIYW5k
bGVyKDApCiB7CiAgICAgQVNTRVJUKG1fcGFkKTsKIApAQCAtODMsOCArOTcsMTMgQEAgdm9pZCBU
cmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpkaXNjb25uZWN0KCkKICAgICBnX3NpZ25hbF9oYW5k
bGVyc19kaXNjb25uZWN0X2J5X2Z1bmMobV9wYWQuZ2V0KCksCiAgICAgICAgIHJlaW50ZXJwcmV0
X2Nhc3Q8Z3BvaW50ZXI+KHRyYWNrUHJpdmF0ZVRhZ3NDaGFuZ2VkQ2FsbGJhY2spLCB0aGlzKTsK
IAotICAgIG1fYWN0aXZlVGltZXJIYW5kbGVyLmNhbmNlbCgpOwotICAgIG1fdGFnVGltZXJIYW5k
bGVyLmNhbmNlbCgpOworICAgIGlmIChtX2FjdGl2ZVRpbWVySGFuZGxlcikKKyAgICAgICAgZ19z
b3VyY2VfcmVtb3ZlKG1fYWN0aXZlVGltZXJIYW5kbGVyKTsKKyAgICBtX2FjdGl2ZVRpbWVySGFu
ZGxlciA9IDA7CisKKyAgICBpZiAobV90YWdUaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNl
X3JlbW92ZShtX3RhZ1RpbWVySGFuZGxlcik7CisgICAgbV90YWdUaW1lckhhbmRsZXIgPSAwOwog
CiAgICAgbV9wYWQuY2xlYXIoKTsKICAgICBtX3RhZ3MuY2xlYXIoKTsKQEAgLTkyLDEyICsxMTEs
MTcgQEAgdm9pZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpkaXNjb25uZWN0KCkKIAogdm9p
ZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjphY3RpdmVDaGFuZ2VkKCkKIHsKLSAgICBtX2Fj
dGl2ZVRpbWVySGFuZGxlci5zY2hlZHVsZSgiW1dlYktpdF0gVHJhY2tQcml2YXRlQmFzZUdTdHJl
YW1lcjo6bm90aWZ5VHJhY2tPZkFjdGl2ZUNoYW5nZWQiLCBzdGQ6OmJpbmQoJlRyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZBY3RpdmVDaGFuZ2VkLCB0aGlzKSk7CisgICAg
aWYgKG1fYWN0aXZlVGltZXJIYW5kbGVyKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUobV9hY3Rp
dmVUaW1lckhhbmRsZXIpOworICAgIG1fYWN0aXZlVGltZXJIYW5kbGVyID0gZ190aW1lb3V0X2Fk
ZCgwLAorICAgICAgICByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPih0cmFja1ByaXZhdGVB
Y3RpdmVDaGFuZ2VUaW1lb3V0Q2FsbGJhY2spLCB0aGlzKTsKKyAgICBnX3NvdXJjZV9zZXRfbmFt
ZV9ieV9pZChtX2FjdGl2ZVRpbWVySGFuZGxlciwgIltXZWJLaXRdIHRyYWNrUHJpdmF0ZUFjdGl2
ZUNoYW5nZVRpbWVvdXRDYWxsYmFjayIpOwogfQogCiB2b2lkIFRyYWNrUHJpdmF0ZUJhc2VHU3Ry
ZWFtZXI6OnRhZ3NDaGFuZ2VkKCkKIHsKLSAgICBtX3RhZ1RpbWVySGFuZGxlci5jYW5jZWwoKTsK
KyAgICBpZiAobV90YWdUaW1lckhhbmRsZXIpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShtX3Rh
Z1RpbWVySGFuZGxlcik7CiAKICAgICBHUmVmUHRyPEdzdFRhZ0xpc3Q+IHRhZ3M7CiAgICAgZ19v
YmplY3RfZ2V0KG1fcGFkLmdldCgpLCAidGFncyIsICZ0YWdzLm91dFB0cigpLCBOVUxMKTsKQEAg
LTEwNiwxMSArMTMwLDE0IEBAIHZvaWQgVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6dGFnc0No
YW5nZWQoKQogICAgICAgICBtX3RhZ3Muc3dhcCh0YWdzKTsKICAgICB9CiAKLSAgICBtX3RhZ1Rp
bWVySGFuZGxlci5zY2hlZHVsZSgiW1dlYktpdF0gVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lcjo6
bm90aWZ5VHJhY2tPZlRhZ3NDaGFuZ2VkIiwgc3RkOjpiaW5kKCZUcmFja1ByaXZhdGVCYXNlR1N0
cmVhbWVyOjpub3RpZnlUcmFja09mVGFnc0NoYW5nZWQsIHRoaXMpKTsKKyAgICBtX3RhZ1RpbWVy
SGFuZGxlciA9IGdfdGltZW91dF9hZGQoMCwKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxHU291
cmNlRnVuYz4odHJhY2tQcml2YXRlVGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFjayksIHRoaXMpOwor
ICAgIGdfc291cmNlX3NldF9uYW1lX2J5X2lkKG1fdGFnVGltZXJIYW5kbGVyLCAiW1dlYktpdF0g
dHJhY2tQcml2YXRlVGFnc0NoYW5nZVRpbWVvdXRDYWxsYmFjayIpOwogfQogCiB2b2lkIFRyYWNr
UHJpdmF0ZUJhc2VHU3RyZWFtZXI6Om5vdGlmeVRyYWNrT2ZBY3RpdmVDaGFuZ2VkKCkKIHsKKyAg
ICBtX2FjdGl2ZVRpbWVySGFuZGxlciA9IDA7CiAgICAgaWYgKCFtX3BhZCkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0xNDgsNiArMTc1LDcgQEAgYm9vbCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVy
OjpnZXRUYWcoR3N0VGFnTGlzdCogdGFncywgY29uc3QgZ2NoYXIqIHRhZ05hbWUsIFMKIAogdm9p
ZCBUcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyOjpub3RpZnlUcmFja09mVGFnc0NoYW5nZWQoKQog
eworICAgIG1fdGFnVGltZXJIYW5kbGVyID0gMDsKICAgICBpZiAoIW1fcGFkKQogICAgICAgICBy
ZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dz
dHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVHJhY2tQcml2YXRlQmFzZUdTdHJlYW1lci5oCmluZGV4
IGUyMDAwYWFlNjk3YTA0MTI5M2RhZDM1ZmM2MjJiNjMxOTM5YzE1ZjguLmM4MWVkOWFmN2JmN2Y3
MGFiYzAxMmQwYzc1ZDMwNzM4ZjdlYTE1YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9UcmFja1ByaXZhdGVCYXNlR1N0cmVhbWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1RyYWNrUHJpdmF0
ZUJhc2VHU3RyZWFtZXIuaApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAiR1JlZlB0ckdT
dHJlYW1lci5oIgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+Ci0jaW5jbHVk
ZSA8d3RmL2dvYmplY3QvR01haW5Mb29wU291cmNlLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY4LDggKzY3LDggQEAgcHJpdmF0
ZToKICAgICBib29sIGdldFRhZyhHc3RUYWdMaXN0KiB0YWdzLCBjb25zdCBnY2hhciogdGFnTmFt
ZSwgU3RyaW5nJiB2YWx1ZSk7CiAKICAgICBUcmFja1ByaXZhdGVCYXNlKiBtX293bmVyOwotICAg
IEdNYWluTG9vcFNvdXJjZSBtX2FjdGl2ZVRpbWVySGFuZGxlcjsKLSAgICBHTWFpbkxvb3BTb3Vy
Y2UgbV90YWdUaW1lckhhbmRsZXI7CisgICAgZ3VpbnQgbV9hY3RpdmVUaW1lckhhbmRsZXI7Cisg
ICAgZ3VpbnQgbV90YWdUaW1lckhhbmRsZXI7CiAKICAgICBNdXRleCBtX3RhZ011dGV4OwogICAg
IEdSZWZQdHI8R3N0VGFnTGlzdD4gbV90YWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1ZpZGVvU2lua0dTdHJlYW1lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVy
LmNwcAppbmRleCAzOGU3ZWRmZDcwYzhjNDMwMzE0ODhhNTI0ZDkwZTQ1NDBhMDczOTdmLi4xN2Qw
YWVmN2Q5ZWVhN2ZiZmU2Y2QzMjBkMzdmM2U3MzNmMDU2YThhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9TaW5rR1N0cmVhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvVmlkZW9T
aW5rR1N0cmVhbWVyLmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgPGdzdC9nc3QuaD4K
ICNpbmNsdWRlIDxnc3QvdmlkZW8vZ3N0dmlkZW9tZXRhLmg+CiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgogI2luY2x1ZGUg
PHd0Zi9nb2JqZWN0L0dNdXRleExvY2tlci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
QEAgLTc1LDcgKzc0LDcgQEAgc3RhdGljIGd1aW50IHdlYmtpdFZpZGVvU2lua1NpZ25hbHNbTEFT
VF9TSUdOQUxdID0geyAwLCB9OwogCiBzdHJ1Y3QgX1dlYktpdFZpZGVvU2lua1ByaXZhdGUgewog
ICAgIEdzdEJ1ZmZlciogYnVmZmVyOwotICAgIEdNYWluTG9vcFNvdXJjZSB0aW1lb3V0U291cmNl
OworICAgIGd1aW50IHRpbWVvdXRJZDsKICAgICBHTXV0ZXgqIGJ1ZmZlck11dGV4OwogICAgIEdD
b25kKiBkYXRhQ29uZGl0aW9uOwogCkBAIC0xMDEsNyArMTAwLDYgQEAgR19ERUZJTkVfVFlQRV9X
SVRIX0NPREUoV2ViS2l0VmlkZW9TaW5rLCB3ZWJraXRfdmlkZW9fc2luaywgR1NUX1RZUEVfVklE
RU9fU0lOSywKIHN0YXRpYyB2b2lkIHdlYmtpdF92aWRlb19zaW5rX2luaXQoV2ViS2l0VmlkZW9T
aW5rKiBzaW5rKQogewogICAgIHNpbmstPnByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZB
VEUoc2luaywgV0VCS0lUX1RZUEVfVklERU9fU0lOSywgV2ViS2l0VmlkZW9TaW5rUHJpdmF0ZSk7
Ci0gICAgbmV3IChzaW5rLT5wcml2KSBXZWJLaXRWaWRlb1NpbmtQcml2YXRlKCk7CiAjaWYgR0xJ
Ql9DSEVDS19WRVJTSU9OKDIsIDMxLCAwKQogICAgIHNpbmstPnByaXYtPmRhdGFDb25kaXRpb24g
PSBuZXcgR0NvbmQ7CiAgICAgZ19jb25kX2luaXQoc2luay0+cHJpdi0+ZGF0YUNvbmRpdGlvbik7
CkBAIC0xMTUsMjIgKzExMywyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfdmlkZW9fc2lua19pbml0
KFdlYktpdFZpZGVvU2luayogc2luaykKICAgICBnc3RfdmlkZW9faW5mb19pbml0KCZzaW5rLT5w
cml2LT5pbmZvKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0VmlkZW9TaW5rVGltZW91dENhbGxi
YWNrKFdlYktpdFZpZGVvU2luayogc2luaykKK3N0YXRpYyBnYm9vbGVhbiB3ZWJraXRWaWRlb1Np
bmtUaW1lb3V0Q2FsbGJhY2soZ3BvaW50ZXIgZGF0YSkKIHsKKyAgICBXZWJLaXRWaWRlb1Npbmsq
IHNpbmsgPSByZWludGVycHJldF9jYXN0PFdlYktpdFZpZGVvU2luayo+KGRhdGEpOwogICAgIFdl
YktpdFZpZGVvU2lua1ByaXZhdGUqIHByaXYgPSBzaW5rLT5wcml2OwogCiAgICAgR011dGV4TG9j
a2VyIGxvY2socHJpdi0+YnVmZmVyTXV0ZXgpOwogICAgIEdzdEJ1ZmZlciogYnVmZmVyID0gcHJp
di0+YnVmZmVyOwogICAgIHByaXYtPmJ1ZmZlciA9IDA7CisgICAgcHJpdi0+dGltZW91dElkID0g
MDsKIAogICAgIGlmICghYnVmZmVyIHx8IHByaXYtPnVubG9ja2VkIHx8IFVOTElLRUxZKCFHU1Rf
SVNfQlVGRkVSKGJ1ZmZlcikpKSB7CiAgICAgICAgIGdfY29uZF9zaWduYWwocHJpdi0+ZGF0YUNv
bmRpdGlvbik7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIEZBTFNFOwogICAgIH0K
IAogICAgIGdfc2lnbmFsX2VtaXQoc2luaywgd2Via2l0VmlkZW9TaW5rU2lnbmFsc1tSRVBBSU5U
X1JFUVVFU1RFRF0sIDAsIGJ1ZmZlcik7CiAgICAgZ3N0X2J1ZmZlcl91bnJlZihidWZmZXIpOwog
ICAgIGdfY29uZF9zaWduYWwocHJpdi0+ZGF0YUNvbmRpdGlvbik7CisKKyAgICByZXR1cm4gRkFM
U0U7CiB9CiAKIHN0YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtpdFZpZGVvU2lua1JlbmRlcihHc3RC
YXNlU2luayogYmFzZVNpbmssIEdzdEJ1ZmZlciogYnVmZmVyKQpAQCAtMjE0LDkgKzIxNiw5IEBA
IHN0YXRpYyBHc3RGbG93UmV0dXJuIHdlYmtpdFZpZGVvU2lua1JlbmRlcihHc3RCYXNlU2luayog
YmFzZVNpbmssIEdzdEJ1ZmZlciogYnVmCiAgICAgLy8gVGhpcyBzaG91bGQgbGlrZWx5IHVzZSBh
IGxvd2VyIHByaW9yaXR5LCBidXQgZ2xpYiBjdXJyZW50bHkgc3RhcnZlcwogICAgIC8vIGxvd2Vy
IHByaW9yaXR5IHNvdXJjZXMuCiAgICAgLy8gU2VlOiBodHRwczovL2J1Z3ppbGxhLmdub21lLm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjEwODMwLgotICAgIGdzdF9vYmplY3RfcmVmKHNpbmspOwotICAg
IHByaXYtPnRpbWVvdXRTb3VyY2Uuc2NoZWR1bGUoIltXZWJLaXRdIHdlYmtpdFZpZGVvU2lua1Rp
bWVvdXRDYWxsYmFjayIsIHN0ZDo6YmluZCh3ZWJraXRWaWRlb1NpbmtUaW1lb3V0Q2FsbGJhY2ss
IHNpbmspLCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgIFtzaW5rXSB7IGdzdF9vYmplY3Rf
dW5yZWYoc2luayk7IH0pOworICAgIHByaXYtPnRpbWVvdXRJZCA9IGdfdGltZW91dF9hZGRfZnVs
bChHX1BSSU9SSVRZX0RFRkFVTFQsIDAsIHdlYmtpdFZpZGVvU2lua1RpbWVvdXRDYWxsYmFjaywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdzdF9vYmplY3RfcmVm
KHNpbmspLCByZWludGVycHJldF9jYXN0PEdEZXN0cm95Tm90aWZ5Pihnc3Rfb2JqZWN0X3VucmVm
KSk7CisgICAgZ19zb3VyY2Vfc2V0X25hbWVfYnlfaWQocHJpdi0+dGltZW91dElkLCAiW1dlYktp
dF0gd2Via2l0VmlkZW9TaW5rVGltZW91dENhbGxiYWNrIik7CiAKICAgICBnX2NvbmRfd2FpdChw
cml2LT5kYXRhQ29uZGl0aW9uLCBwcml2LT5idWZmZXJNdXRleCk7CiAgICAgcmV0dXJuIEdTVF9G
TE9XX09LOwpAQCAtMjUwLDEyICsyNTIsNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRWaWRlb1NpbmtE
aXNwb3NlKEdPYmplY3QqIG9iamVjdCkKICAgICBHX09CSkVDVF9DTEFTUyhwYXJlbnRfY2xhc3Mp
LT5kaXNwb3NlKG9iamVjdCk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdFZpZGVvU2lua0ZpbmFs
aXplKEdPYmplY3QqIG9iamVjdCkKLXsKLSAgICBXRUJLSVRfVklERU9fU0lOSyhvYmplY3QpLT5w
cml2LT5+V2ViS2l0VmlkZW9TaW5rUHJpdmF0ZSgpOwotICAgIEdfT0JKRUNUX0NMQVNTKHBhcmVu
dF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7Ci19Ci0KIHN0YXRpYyB2b2lkIHdlYmtpdFZpZGVv
U2lua0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwgR1ZhbHVl
KiB2YWx1ZSwgR1BhcmFtU3BlYyogcGFyYW1ldGVyU3BlYykKIHsKICAgICBXZWJLaXRWaWRlb1Np
bmsqIHNpbmsgPSBXRUJLSVRfVklERU9fU0lOSyhvYmplY3QpOwpAQCAtMzgwLDcgKzM3Niw2IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdF92aWRlb19zaW5rX2NsYXNzX2luaXQoV2ViS2l0VmlkZW9TaW5r
Q2xhc3MqIGtsYXNzKQogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9m
KFdlYktpdFZpZGVvU2lua1ByaXZhdGUpKTsKIAogICAgIGdvYmplY3RDbGFzcy0+ZGlzcG9zZSA9
IHdlYmtpdFZpZGVvU2lua0Rpc3Bvc2U7Ci0gICAgZ29iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdl
YmtpdFZpZGVvU2lua0ZpbmFsaXplOwogICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0g
d2Via2l0VmlkZW9TaW5rR2V0UHJvcGVydHk7CiAKICAgICBiYXNlU2lua0NsYXNzLT51bmxvY2sg
PSB3ZWJraXRWaWRlb1NpbmtVbmxvY2s7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0TWVkaWFTb3VyY2VHU3RyZWFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdE1lZGlhU291
cmNlR1N0cmVhbWVyLmNwcAppbmRleCBhYTcyMWM4MmM1MzIyN2YxNmZjN2RmZThjMjNlNWU1NjQ5
NGNiNDJhLi40MTJhOGQ3ODQ2OTg2MjY2NDQ0MzlhMGQ3MjU0Mzg2OGY4NzMyYTZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvV2ViS2l0TWVk
aWFTb3VyY2VHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2dzdHJlYW1lci9XZWJLaXRNZWRpYVNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTMwLDcgKzMw
LDYgQEAKICNpbmNsdWRlIDxnc3QvYXBwL2dzdGFwcHNyYy5oPgogI2luY2x1ZGUgPGdzdC9nc3Qu
aD4KICNpbmNsdWRlIDxnc3QvcGJ1dGlscy9taXNzaW5nLXBsdWdpbnMuaD4KLSNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HTWFpbkxvb3BTb3VyY2UuaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HVW5p
cXVlUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCkBAIC00NCwxMSArNDMs
MTEgQEAgdHlwZWRlZiBzdHJ1Y3QgX1NvdXJjZSB7CiAgICAgZ3VpbnQ2NCBzaXplOwogICAgIGdi
b29sZWFuIHBhdXNlZDsKIAotICAgIEdNYWluTG9vcFNvdXJjZSBzdGFydDsKLSAgICBHTWFpbkxv
b3BTb3VyY2Ugc3RvcDsKLSAgICBHTWFpbkxvb3BTb3VyY2UgbmVlZERhdGE7Ci0gICAgR01haW5M
b29wU291cmNlIGVub3VnaERhdGE7Ci0gICAgR01haW5Mb29wU291cmNlIHNlZWs7CisgICAgZ3Vp
bnQgc3RhcnRJZDsKKyAgICBndWludCBzdG9wSWQ7CisgICAgZ3VpbnQgbmVlZERhdGFJZDsKKyAg
ICBndWludCBlbm91Z2hEYXRhSWQ7CisgICAgZ3VpbnQgc2Vla0lkOwogCiAgICAgZ3VpbnQ2NCBy
ZXF1ZXN0ZWRPZmZzZXQ7CiB9IFNvdXJjZTsKQEAgLTE3Myw3ICsxNzIsNiBAQCBzdGF0aWMgdm9p
ZCB3ZWJraXRfbWVkaWFfc3JjX2luaXQoV2ViS2l0TWVkaWFTcmMqIHNyYykKIHsKICAgICBXZWJL
aXRNZWRpYVNyY1ByaXZhdGUqIHByaXYgPSBXRUJLSVRfTUVESUFfU1JDX0dFVF9QUklWQVRFKHNy
Yyk7CiAgICAgc3JjLT5wcml2ID0gcHJpdjsKLSAgICBuZXcgKHByaXYpIFdlYktpdE1lZGlhU3Jj
UHJpdmF0ZSgpOwogCiAgICAgcHJpdi0+c291cmNlVmlkZW8uYXBwc3JjID0gZ3N0X2VsZW1lbnRf
ZmFjdG9yeV9tYWtlKCJhcHBzcmMiLCAidmlkZW9hcHBzcmMiKTsKICAgICBnc3RfYXBwX3NyY19z
ZXRfY2FsbGJhY2tzKEdTVF9BUFBfU1JDKHByaXYtPnNvdXJjZVZpZGVvLmFwcHNyYyksICZhcHBz
cmNDYWxsYmFja3NWaWRlbywgc3JjLCAwKTsKQEAgLTE5MCw3ICsxODgsNiBAQCBzdGF0aWMgdm9p
ZCB3ZWJLaXRNZWRpYVNyY0ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKICAgICBXZWJLaXRNZWRp
YVNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBnX2ZyZWUocHJpdi0+dXJpKTsK
LSAgICBwcml2LT5+V2ViS2l0TWVkaWFTcmNQcml2YXRlKCk7CiAKICAgICBHU1RfQ0FMTF9QQVJF
TlQoR19PQkpFQ1RfQ0xBU1MsIGZpbmFsaXplLCAob2JqZWN0KSk7CiB9CkBAIC0yMjYsMjMgKzIy
MywzNSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVNyY0dldFByb3BlcnR5KEdPYmplY3QqIG9i
amVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbAogfQogCiAvLyBtdXN0IGJlIGNhbGxlZCBv
biBtYWluIHRocmVhZCBhbmQgd2l0aCBvYmplY3QgdW5sb2NrZWQKLXN0YXRpYyB2b2lkIHdlYktp
dE1lZGlhVmlkZW9TcmNTdG9wKFdlYktpdE1lZGlhU3JjKiBzcmMpCitzdGF0aWMgZ2Jvb2xlYW4g
d2ViS2l0TWVkaWFWaWRlb1NyY1N0b3AoV2ViS2l0TWVkaWFTcmMqIHNyYykKIHsKICAgICBXZWJL
aXRNZWRpYVNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAgICAgZ2Jvb2xlYW4gc2Vla2lu
ZzsKIAogICAgIEdTVF9PQkpFQ1RfTE9DSyhzcmMpOwogCi0gICAgc2Vla2luZyA9IHByaXYtPnNv
dXJjZVZpZGVvLnNlZWsuaXNBY3RpdmUoKTsKKyAgICBzZWVraW5nID0gcHJpdi0+c291cmNlVmlk
ZW8uc2Vla0lkOwogCi0gICAgcHJpdi0+c291cmNlVmlkZW8uc3RhcnQuY2FuY2VsKCk7CisgICAg
aWYgKHByaXYtPnNvdXJjZVZpZGVvLnN0YXJ0SWQpIHsKKyAgICAgICAgZ19zb3VyY2VfcmVtb3Zl
KHByaXYtPnNvdXJjZVZpZGVvLnN0YXJ0SWQpOworICAgICAgICBwcml2LT5zb3VyY2VWaWRlby5z
dGFydElkID0gMDsKKyAgICB9CiAKICAgICBwcml2LT5wbGF5ZXIgPSAwOwogICAgIHByaXYtPnBs
YXliaW4gPSAwOwogCi0gICAgcHJpdi0+c291cmNlVmlkZW8ubmVlZERhdGEuY2FuY2VsKCk7Ci0g
ICAgcHJpdi0+c291cmNlVmlkZW8uZW5vdWdoRGF0YS5jYW5jZWwoKTsKLSAgICBwcml2LT5zb3Vy
Y2VWaWRlby5zZWVrLmNhbmNlbCgpOworICAgIGlmIChwcml2LT5zb3VyY2VWaWRlby5uZWVkRGF0
YUlkKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUocHJpdi0+c291cmNlVmlkZW8ubmVlZERhdGFJ
ZCk7CisgICAgcHJpdi0+c291cmNlVmlkZW8ubmVlZERhdGFJZCA9IDA7CisKKyAgICBpZiAocHJp
di0+c291cmNlVmlkZW8uZW5vdWdoRGF0YUlkKQorICAgICAgICBnX3NvdXJjZV9yZW1vdmUocHJp
di0+c291cmNlVmlkZW8uZW5vdWdoRGF0YUlkKTsKKyAgICBwcml2LT5zb3VyY2VWaWRlby5lbm91
Z2hEYXRhSWQgPSAwOworCisgICAgaWYgKHByaXYtPnNvdXJjZVZpZGVvLnNlZWtJZCkKKyAgICAg
ICAgZ19zb3VyY2VfcmVtb3ZlKHByaXYtPnNvdXJjZVZpZGVvLnNlZWtJZCk7CisKKyAgICBwcml2
LT5zb3VyY2VWaWRlby5zZWVrSWQgPSAwOwogCiAgICAgcHJpdi0+c291cmNlVmlkZW8ucGF1c2Vk
ID0gRkFMU0U7CiAgICAgcHJpdi0+c291cmNlVmlkZW8ub2Zmc2V0ID0gMDsKQEAgLTI1MSw2ICsy
NjAsOCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVZpZGVvU3JjU3RvcChXZWJLaXRNZWRpYVNy
Yyogc3JjKQogICAgIHByaXYtPmR1cmF0aW9uID0gMDsKICAgICBwcml2LT5uYlNvdXJjZSA9IDA7
CiAKKyAgICBwcml2LT5zb3VyY2VWaWRlby5zdG9wSWQgPSAwOworCiAgICAgR1NUX09CSkVDVF9V
TkxPQ0soc3JjKTsKIAogICAgIGlmIChwcml2LT5zb3VyY2VWaWRlby5hcHBzcmMpIHsKQEAgLTI2
MCwyNiArMjcxLDQwIEBAIHN0YXRpYyB2b2lkIHdlYktpdE1lZGlhVmlkZW9TcmNTdG9wKFdlYktp
dE1lZGlhU3JjKiBzcmMpCiAgICAgfQogCiAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMsICJTdG9w
cGVkIHJlcXVlc3QiKTsKKworICAgIHJldHVybiBGQUxTRTsKIH0KIAotc3RhdGljIHZvaWQgd2Vi
S2l0TWVkaWFBdWRpb1NyY1N0b3AoV2ViS2l0TWVkaWFTcmMqIHNyYykKK3N0YXRpYyBnYm9vbGVh
biB3ZWJLaXRNZWRpYUF1ZGlvU3JjU3RvcChXZWJLaXRNZWRpYVNyYyogc3JjKQogewogICAgIFdl
YktpdE1lZGlhU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKICAgICBnYm9vbGVhbiBzZWVr
aW5nOwogCiAgICAgR1NUX09CSkVDVF9MT0NLKHNyYyk7CiAKLSAgICBzZWVraW5nID0gcHJpdi0+
c291cmNlQXVkaW8uc2Vlay5pc0FjdGl2ZSgpOworICAgIHNlZWtpbmcgPSBwcml2LT5zb3VyY2VB
dWRpby5zZWVrSWQ7CiAKLSAgICBwcml2LT5zb3VyY2VBdWRpby5zdGFydC5jYW5jZWwoKTsKKyAg
ICBpZiAocHJpdi0+c291cmNlQXVkaW8uc3RhcnRJZCkgeworICAgICAgICBnX3NvdXJjZV9yZW1v
dmUocHJpdi0+c291cmNlQXVkaW8uc3RhcnRJZCk7CisgICAgICAgIHByaXYtPnNvdXJjZUF1ZGlv
LnN0YXJ0SWQgPSAwOworICAgIH0KIAogICAgIHByaXYtPnBsYXllciA9IDA7CiAKICAgICBwcml2
LT5wbGF5YmluID0gMDsKIAotICAgIHByaXYtPnNvdXJjZUF1ZGlvLm5lZWREYXRhLmNhbmNlbCgp
OwotICAgIHByaXYtPnNvdXJjZUF1ZGlvLmVub3VnaERhdGEuY2FuY2VsKCk7Ci0gICAgcHJpdi0+
c291cmNlQXVkaW8uc2Vlay5jYW5jZWwoKTsKKyAgICBpZiAocHJpdi0+c291cmNlQXVkaW8ubmVl
ZERhdGFJZCkKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKHByaXYtPnNvdXJjZUF1ZGlvLm5lZWRE
YXRhSWQpOworICAgIHByaXYtPnNvdXJjZUF1ZGlvLm5lZWREYXRhSWQgPSAwOworCisgICAgaWYg
KHByaXYtPnNvdXJjZUF1ZGlvLmVub3VnaERhdGFJZCkKKyAgICAgICAgZ19zb3VyY2VfcmVtb3Zl
KHByaXYtPnNvdXJjZUF1ZGlvLmVub3VnaERhdGFJZCk7CisgICAgcHJpdi0+c291cmNlQXVkaW8u
ZW5vdWdoRGF0YUlkID0gMDsKKworICAgIGlmIChwcml2LT5zb3VyY2VBdWRpby5zZWVrSWQpCisg
ICAgICAgIGdfc291cmNlX3JlbW92ZShwcml2LT5zb3VyY2VBdWRpby5zZWVrSWQpOworCisgICAg
cHJpdi0+c291cmNlQXVkaW8uc2Vla0lkID0gMDsKIAogICAgIHByaXYtPnNvdXJjZUF1ZGlvLnBh
dXNlZCA9IEZBTFNFOwogCkBAIC0yOTAsNiArMzE1LDggQEAgc3RhdGljIHZvaWQgd2ViS2l0TWVk
aWFBdWRpb1NyY1N0b3AoV2ViS2l0TWVkaWFTcmMqIHNyYykKICAgICBwcml2LT5kdXJhdGlvbiA9
IDA7CiAgICAgcHJpdi0+bmJTb3VyY2UgPSAwOwogCisgICAgcHJpdi0+c291cmNlQXVkaW8uc3Rv
cElkID0gMDsKKwogICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNyYyk7CiAKICAgICBpZiAocHJpdi0+
c291cmNlQXVkaW8uYXBwc3JjKSB7CkBAIC0yOTksMTAgKzMyNiwxMiBAQCBzdGF0aWMgdm9pZCB3
ZWJLaXRNZWRpYUF1ZGlvU3JjU3RvcChXZWJLaXRNZWRpYVNyYyogc3JjKQogICAgIH0KIAogICAg
IEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiU3RvcHBlZCByZXF1ZXN0Iik7CisKKyAgICByZXR1cm4g
RkFMU0U7CiB9CiAKIC8vIG11c3QgYmUgY2FsbGVkIG9uIG1haW4gdGhyZWFkIGFuZCB3aXRoIG9i
amVjdCB1bmxvY2tlZAotc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFWaWRlb1NyY1N0YXJ0KFdlYktp
dE1lZGlhU3JjKiBzcmMpCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFWaWRlb1NyY1N0YXJ0
KFdlYktpdE1lZGlhU3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0TWVkaWFTcmNQcml2YXRlKiBwcml2
ID0gc3JjLT5wcml2OwogCkBAIC0zMTEsMTUgKzM0MCwxOSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRN
ZWRpYVZpZGVvU3JjU3RhcnQoV2ViS2l0TWVkaWFTcmMqIHNyYykKICAgICAgICAgR1NUX0VSUk9S
X09CSkVDVChzcmMsICJObyBVUkkgcHJvdmlkZWQiKTsKICAgICAgICAgR1NUX09CSkVDVF9VTkxP
Q0soc3JjKTsKICAgICAgICAgd2ViS2l0TWVkaWFWaWRlb1NyY1N0b3Aoc3JjKTsKLSAgICAgICAg
cmV0dXJuOworICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQogCisgICAgcHJpdi0+c291cmNl
VmlkZW8uc3RhcnRJZCA9IDA7CisKICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogICAgIEdT
VF9ERUJVR19PQkpFQ1Qoc3JjLCAiU3RhcnRlZCByZXF1ZXN0Iik7CisKKyAgICByZXR1cm4gRkFM
U0U7CiB9CiAKIC8vIG11c3QgYmUgY2FsbGVkIG9uIG1haW4gdGhyZWFkIGFuZCB3aXRoIG9iamVj
dCB1bmxvY2tlZAotc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFBdWRpb1NyY1N0YXJ0KFdlYktpdE1l
ZGlhU3JjKiBzcmMpCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFBdWRpb1NyY1N0YXJ0KFdl
YktpdE1lZGlhU3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0TWVkaWFTcmNQcml2YXRlKiBwcml2ID0g
c3JjLT5wcml2OwogCkBAIC0zMjgsMTEgKzM2MSwxNSBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRp
YUF1ZGlvU3JjU3RhcnQoV2ViS2l0TWVkaWFTcmMqIHNyYykKICAgICAgICAgR1NUX0VSUk9SX09C
SkVDVChzcmMsICJObyBVUkkgcHJvdmlkZWQiKTsKICAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0so
c3JjKTsKICAgICAgICAgd2ViS2l0TWVkaWFBdWRpb1NyY1N0b3Aoc3JjKTsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQogCisgICAgcHJpdi0+c291cmNlQXVk
aW8uc3RhcnRJZCA9IDA7CisKICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogICAgIEdTVF9E
RUJVR19PQkpFQ1Qoc3JjLCAiU3RhcnRlZCByZXF1ZXN0Iik7CisKKyAgICByZXR1cm4gRkFMU0U7
CiB9CiAKIHN0YXRpYyBHc3RTdGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRNZWRpYVNyY0NoYW5nZVN0
YXRlKEdzdEVsZW1lbnQqIGVsZW1lbnQsIEdzdFN0YXRlQ2hhbmdlIHRyYW5zaXRpb24pCkBAIC0z
NjQsMjkgKzQwMSwxOSBAQCBzdGF0aWMgR3N0U3RhdGVDaGFuZ2VSZXR1cm4gd2ViS2l0TWVkaWFT
cmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVtZW50LCBHc3RTdAogICAgIGNhc2UgR1NUX1NU
QVRFX0NIQU5HRV9SRUFEWV9UT19QQVVTRUQ6CiAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3Jj
LCAiUkVBRFktPlBBVVNFRCIpOwogICAgICAgICBHU1RfT0JKRUNUX0xPQ0soc3JjKTsKLQotICAg
ICAgICBnc3Rfb2JqZWN0X3JlZihzcmMpOwotICAgICAgICBwcml2LT5zb3VyY2VWaWRlby5zdGFy
dC5zY2hlZHVsZSgiW1dlYktpdF0gd2ViS2l0TWVkaWFWaWRlb1NyY1N0YXJ0Iiwgc3RkOjpiaW5k
KHdlYktpdE1lZGlhVmlkZW9TcmNTdGFydCwgc3JjKSwgR19QUklPUklUWV9ERUZBVUxULAotICAg
ICAgICAgICAgW3NyY10geyBnc3Rfb2JqZWN0X3VucmVmKHNyYyk7IH0pOwotCi0gICAgICAgIGdz
dF9vYmplY3RfcmVmKHNyYyk7Ci0gICAgICAgIHByaXYtPnNvdXJjZUF1ZGlvLnN0YXJ0LnNjaGVk
dWxlKCJbV2ViS2l0XSB3ZWJLaXRNZWRpYUF1ZGlvU3JjU3RhcnQiLCBzdGQ6OmJpbmQod2ViS2l0
TWVkaWFBdWRpb1NyY1N0YXJ0LCBzcmMpLCBHX1BSSU9SSVRZX0RFRkFVTFQsCi0gICAgICAgICAg
ICBbc3JjXSB7IGdzdF9vYmplY3RfdW5yZWYoc3JjKTsgfSk7Ci0KKyAgICAgICAgcHJpdi0+c291
cmNlVmlkZW8uc3RhcnRJZCA9IGdfdGltZW91dF9hZGRfZnVsbChHX1BSSU9SSVRZX0RFRkFVTFQs
IDAsIChHU291cmNlRnVuYykgd2ViS2l0TWVkaWFWaWRlb1NyY1N0YXJ0LCBnc3Rfb2JqZWN0X3Jl
ZihzcmMpLCAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9vYmplY3RfdW5yZWYpOworICAgICAgICBnX3Nv
dXJjZV9zZXRfbmFtZV9ieV9pZChwcml2LT5zb3VyY2VWaWRlby5zdGFydElkLCAiW1dlYktpdF0g
d2ViS2l0TWVkaWFWaWRlb1NyY1N0YXJ0Iik7CisgICAgICAgIHByaXYtPnNvdXJjZUF1ZGlvLnN0
YXJ0SWQgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR19QUklPUklUWV9ERUZBVUxULCAwLCAoR1NvdXJj
ZUZ1bmMpIHdlYktpdE1lZGlhQXVkaW9TcmNTdGFydCwgZ3N0X29iamVjdF9yZWYoc3JjKSwgKEdE
ZXN0cm95Tm90aWZ5KSBnc3Rfb2JqZWN0X3VucmVmKTsKKyAgICAgICAgZ19zb3VyY2Vfc2V0X25h
bWVfYnlfaWQocHJpdi0+c291cmNlQXVkaW8uc3RhcnRJZCwgIltXZWJLaXRdIHdlYktpdE1lZGlh
QXVkaW9TcmNTdGFydCIpOwogICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIEdTVF9TVEFURV9DSEFOR0VfUEFVU0VEX1RPX1JFQURZOgogICAg
ICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIlBBVVNFRC0+UkVBRFkiKTsKICAgICAgICAgR1NU
X09CSkVDVF9MT0NLKHNyYyk7Ci0KLSAgICAgICAgZ3N0X29iamVjdF9yZWYoc3JjKTsKLSAgICAg
ICAgcHJpdi0+c291cmNlVmlkZW8uc3RvcC5zY2hlZHVsZSgiW1dlYktpdF0gd2ViS2l0TWVkaWFW
aWRlb1NyY1N0b3AiLCBzdGQ6OmJpbmQod2ViS2l0TWVkaWFWaWRlb1NyY1N0b3AsIHNyYyksIEdf
UFJJT1JJVFlfREVGQVVMVCwKLSAgICAgICAgICAgIFtzcmNdIHsgZ3N0X29iamVjdF91bnJlZihz
cmMpOyB9KTsKLQotICAgICAgICBnc3Rfb2JqZWN0X3JlZihzcmMpOwotICAgICAgICBwcml2LT5z
b3VyY2VBdWRpby5zdG9wLnNjaGVkdWxlKCJbV2ViS2l0XSB3ZWJLaXRNZWRpYUF1ZGlvU3JjU3Rv
cCIsIHN0ZDo6YmluZCh3ZWJLaXRNZWRpYUF1ZGlvU3JjU3RvcCwgc3JjKSwgR19QUklPUklUWV9E
RUZBVUxULAotICAgICAgICAgICAgW3NyY10geyBnc3Rfb2JqZWN0X3VucmVmKHNyYyk7IH0pOwot
CisgICAgICAgIHByaXYtPnNvdXJjZVZpZGVvLnN0b3BJZCA9IGdfdGltZW91dF9hZGRfZnVsbChH
X1BSSU9SSVRZX0RFRkFVTFQsIDAsIChHU291cmNlRnVuYykgd2ViS2l0TWVkaWFWaWRlb1NyY1N0
b3AsIGdzdF9vYmplY3RfcmVmKHNyYyksIChHRGVzdHJveU5vdGlmeSkgZ3N0X29iamVjdF91bnJl
Zik7CisgICAgICAgIGdfc291cmNlX3NldF9uYW1lX2J5X2lkKHByaXYtPnNvdXJjZVZpZGVvLnN0
b3BJZCwgIltXZWJLaXRdIHdlYktpdE1lZGlhVmlkZW9TcmNTdG9wIik7CisgICAgICAgIHByaXYt
PnNvdXJjZUF1ZGlvLnN0b3BJZCA9IGdfdGltZW91dF9hZGRfZnVsbChHX1BSSU9SSVRZX0RFRkFV
TFQsIDAsIChHU291cmNlRnVuYykgd2ViS2l0TWVkaWFBdWRpb1NyY1N0b3AsIGdzdF9vYmplY3Rf
cmVmKHNyYyksIChHRGVzdHJveU5vdGlmeSkgZ3N0X29iamVjdF91bnJlZik7CisgICAgICAgIGdf
c291cmNlX3NldF9uYW1lX2J5X2lkKHByaXYtPnNvdXJjZUF1ZGlvLnN0b3BJZCwgIltXZWJLaXRd
IHdlYktpdE1lZGlhQXVkaW9TcmNTdG9wIik7CiAgICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNy
Yyk7CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CkBAIC00OTIsMjIgKzUxOSw0MCBAQCBz
dGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVNyY1VyaUhhbmRsZXJJbml0KGdwb2ludGVyIGdJZmFjZSwg
Z3BvaW50ZXIpCiB9CiAKIC8vIGFwcHNyYyBjYWxsYmFja3MKLXN0YXRpYyB2b2lkIHdlYktpdE1l
ZGlhVmlkZW9TcmNOZWVkRGF0YU1haW5DYihXZWJLaXRNZWRpYVNyYyogc3JjKQorc3RhdGljIGdi
b29sZWFuIHdlYktpdE1lZGlhVmlkZW9TcmNOZWVkRGF0YU1haW5DYihXZWJLaXRNZWRpYVNyYyog
c3JjKQogewogICAgIFdlYktpdE1lZGlhU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAog
ICAgIEdTVF9PQkpFQ1RfTE9DSyhzcmMpOworICAgIC8vIGFscmVhZHkgc3RvcHBlZAorICAgIGlm
ICghcHJpdi0+c291cmNlVmlkZW8ubmVlZERhdGFJZCkgeworICAgICAgICBHU1RfT0JKRUNUX1VO
TE9DSyhzcmMpOworICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgfQorCiAgICAgcHJpdi0+c291
cmNlVmlkZW8ucGF1c2VkID0gRkFMU0U7CisgICAgcHJpdi0+c291cmNlVmlkZW8ubmVlZERhdGFJ
ZCA9IDA7CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKKworICAgIHJldHVybiBGQUxTRTsK
IH0KIAotc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFBdWRpb1NyY05lZWREYXRhTWFpbkNiKFdlYktp
dE1lZGlhU3JjKiBzcmMpCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFBdWRpb1NyY05lZWRE
YXRhTWFpbkNiKFdlYktpdE1lZGlhU3JjKiBzcmMpCiB7CiAgICAgV2ViS2l0TWVkaWFTcmNQcml2
YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCiAgICAgR1NUX09CSkVDVF9MT0NLKHNyYyk7CisgICAg
Ly8gYWxyZWFkeSBzdG9wcGVkCisgICAgaWYgKCFwcml2LT5zb3VyY2VBdWRpby5uZWVkRGF0YUlk
KSB7CisgICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNyYyk7CisgICAgICAgIHJldHVybiBGQUxT
RTsKKyAgICB9CisKICAgICBwcml2LT5zb3VyY2VBdWRpby5wYXVzZWQgPSBGQUxTRTsKKyAgICBw
cml2LT5zb3VyY2VBdWRpby5uZWVkRGF0YUlkID0gMDsKICAgICBHU1RfT0JKRUNUX1VOTE9DSyhz
cmMpOworCisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVZp
ZGVvU3JjTmVlZERhdGFDYihHc3RBcHBTcmMqLCBndWludCBsZW5ndGgsIGdwb2ludGVyIHVzZXJE
YXRhKQpAQCAtNTE4LDE0ICs1NjMsMTMgQEAgc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFWaWRlb1Ny
Y05lZWREYXRhQ2IoR3N0QXBwU3JjKiwgZ3VpbnQgbGVuZ3RoLCBncG9pbnRlciB1c2UKICAgICBH
U1RfREVCVUdfT0JKRUNUKHNyYywgIk5lZWQgbW9yZSBkYXRhOiAldSIsIGxlbmd0aCk7CiAKICAg
ICBHU1RfT0JKRUNUX0xPQ0soc3JjKTsKLSAgICBpZiAocHJpdi0+c291cmNlVmlkZW8ubmVlZERh
dGEuaXNTY2hlZHVsZWQoKSB8fCAhcHJpdi0+c291cmNlVmlkZW8ucGF1c2VkKSB7CisgICAgaWYg
KHByaXYtPnNvdXJjZVZpZGVvLm5lZWREYXRhSWQgfHwgIXByaXYtPnNvdXJjZVZpZGVvLnBhdXNl
ZCkgewogICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgZ3N0X29iamVjdF9yZWYoc3JjKTsKLSAgICBwcml2LT5zb3VyY2VWaWRlby5u
ZWVkRGF0YS5zY2hlZHVsZSgiW1dlYktpdF0gd2ViS2l0TWVkaWFWaWRlb1NyY05lZWREYXRhTWFp
bkNiIiwgc3RkOjpiaW5kKHdlYktpdE1lZGlhVmlkZW9TcmNOZWVkRGF0YU1haW5DYiwgc3JjKSwg
R19QUklPUklUWV9ERUZBVUxULAotICAgICAgICBbc3JjXSB7IGdzdF9vYmplY3RfdW5yZWYoc3Jj
KTsgfSk7CisgICAgcHJpdi0+c291cmNlVmlkZW8ubmVlZERhdGFJZCA9IGdfdGltZW91dF9hZGRf
ZnVsbChHX1BSSU9SSVRZX0RFRkFVTFQsIDAsIChHU291cmNlRnVuYykgd2ViS2l0TWVkaWFWaWRl
b1NyY05lZWREYXRhTWFpbkNiLCBnc3Rfb2JqZWN0X3JlZihzcmMpLCAoR0Rlc3Ryb3lOb3RpZnkp
IGdzdF9vYmplY3RfdW5yZWYpOworICAgIGdfc291cmNlX3NldF9uYW1lX2J5X2lkKHByaXYtPnNv
dXJjZVZpZGVvLm5lZWREYXRhSWQsICJbV2ViS2l0XSB3ZWJLaXRNZWRpYVZpZGVvU3JjTmVlZERh
dGFNYWluQ2IiKTsKICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOwogfQogCkBAIC01MzcsMzMg
KzU4MSw1MCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYUF1ZGlvU3JjTmVlZERhdGFDYihHc3RB
cHBTcmMqLCBndWludCBsZW5ndGgsIGdwb2ludGVyIHVzZQogICAgIEdTVF9ERUJVR19PQkpFQ1Qo
c3JjLCAiTmVlZCBtb3JlIGRhdGE6ICV1IiwgbGVuZ3RoKTsKIAogICAgIEdTVF9PQkpFQ1RfTE9D
SyhzcmMpOwotICAgIGlmIChwcml2LT5zb3VyY2VBdWRpby5uZWVkRGF0YS5pc1NjaGVkdWxlZCgp
IHx8ICFwcml2LT5zb3VyY2VBdWRpby5wYXVzZWQpIHsKKyAgICBpZiAocHJpdi0+c291cmNlQXVk
aW8ubmVlZERhdGFJZCB8fCAhcHJpdi0+c291cmNlQXVkaW8ucGF1c2VkKSB7CiAgICAgICAgIEdT
VF9PQkpFQ1RfVU5MT0NLKHNyYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBnc3Rf
b2JqZWN0X3JlZihzcmMpOwotICAgIHByaXYtPnNvdXJjZUF1ZGlvLm5lZWREYXRhLnNjaGVkdWxl
KCJbV2ViS2l0XSB3ZWJLaXRNZWRpYUF1ZGlvU3JjTmVlZERhdGFNYWluQ2IiLCBzdGQ6OmJpbmQo
d2ViS2l0TWVkaWFBdWRpb1NyY05lZWREYXRhTWFpbkNiLCBzcmMpLCBHX1BSSU9SSVRZX0RFRkFV
TFQsCi0gICAgICAgIFtzcmNdIHsgZ3N0X29iamVjdF91bnJlZihzcmMpOyB9KTsKKyAgICBwcml2
LT5zb3VyY2VBdWRpby5uZWVkRGF0YUlkID0gZ190aW1lb3V0X2FkZF9mdWxsKEdfUFJJT1JJVFlf
REVGQVVMVCwgMCwgKEdTb3VyY2VGdW5jKSB3ZWJLaXRNZWRpYUF1ZGlvU3JjTmVlZERhdGFNYWlu
Q2IsIGdzdF9vYmplY3RfcmVmKHNyYyksIChHRGVzdHJveU5vdGlmeSkgZ3N0X29iamVjdF91bnJl
Zik7CisgICAgZ19zb3VyY2Vfc2V0X25hbWVfYnlfaWQocHJpdi0+c291cmNlQXVkaW8ubmVlZERh
dGFJZCwgIltXZWJLaXRdIHdlYktpdE1lZGlhQXVkaW9TcmNOZWVkRGF0YU1haW5DYiIpOwogICAg
IEdTVF9PQkpFQ1RfVU5MT0NLKHNyYyk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYktpdE1lZGlhVmlk
ZW9TcmNFbm91Z2hEYXRhTWFpbkNiKFdlYktpdE1lZGlhU3JjKiBzcmMpCitzdGF0aWMgZ2Jvb2xl
YW4gd2ViS2l0TWVkaWFWaWRlb1NyY0Vub3VnaERhdGFNYWluQ2IoV2ViS2l0TWVkaWFTcmMqIHNy
YykKIHsKICAgICBXZWJLaXRNZWRpYVNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKICAg
ICBHU1RfT0JKRUNUX0xPQ0soc3JjKTsKKyAgICAvLyBhbHJlYWR5IHN0b3BwZWQKKyAgICBpZiAo
IXByaXYtPnNvdXJjZVZpZGVvLmVub3VnaERhdGFJZCkgeworICAgICAgICBHU1RfT0JKRUNUX1VO
TE9DSyhzcmMpOworICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgfQorCiAgICAgcHJpdi0+c291
cmNlVmlkZW8ucGF1c2VkID0gVFJVRTsKKyAgICBwcml2LT5zb3VyY2VWaWRlby5lbm91Z2hEYXRh
SWQgPSAwOwogICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNyYyk7CisKKyAgICByZXR1cm4gRkFMU0U7
CiB9CiAKLXN0YXRpYyB2b2lkIHdlYktpdE1lZGlhQXVkaW9TcmNFbm91Z2hEYXRhTWFpbkNiKFdl
YktpdE1lZGlhU3JjKiBzcmMpCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFBdWRpb1NyY0Vu
b3VnaERhdGFNYWluQ2IoV2ViS2l0TWVkaWFTcmMqIHNyYykKIHsKICAgICBXZWJLaXRNZWRpYVNy
Y1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBHU1RfT0JKRUNUX0xPQ0soc3JjKTsK
KyAgICAvLyBhbHJlYWR5IHN0b3BwZWQKKyAgICBpZiAoIXByaXYtPnNvdXJjZUF1ZGlvLmVub3Vn
aERhdGFJZCkgeworICAgICAgICBHU1RfT0JKRUNUX1VOTE9DSyhzcmMpOworICAgICAgICByZXR1
cm4gRkFMU0U7CisgICAgfQorCiAgICAgcHJpdi0+c291cmNlQXVkaW8ucGF1c2VkID0gVFJVRTsK
KyAgICBwcml2LT5zb3VyY2VBdWRpby5lbm91Z2hEYXRhSWQgPSAwOwogICAgIEdTVF9PQkpFQ1Rf
VU5MT0NLKHNyYyk7CisKKyAgICByZXR1cm4gRkFMU0U7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYktp
dE1lZGlhVmlkZW9TcmNFbm91Z2hEYXRhQ2IoR3N0QXBwU3JjKiwgZ3BvaW50ZXIgdXNlckRhdGEp
CkBAIC01NzQsMTUgKzYzNSwxMyBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYVZpZGVvU3JjRW5v
dWdoRGF0YUNiKEdzdEFwcFNyYyosIGdwb2ludGVyIHVzZXJEYXRhKQogICAgIEdTVF9ERUJVR19P
QkpFQ1Qoc3JjLCAiSGF2ZSBlbm91Z2ggZGF0YSIpOwogCiAgICAgR1NUX09CSkVDVF9MT0NLKHNy
Yyk7Ci0gICAgaWYgKHByaXYtPnNvdXJjZVZpZGVvLmVub3VnaERhdGEuaXNTY2hlZHVsZWQoKSB8
fCBwcml2LT5zb3VyY2VWaWRlby5wYXVzZWQpIHsKKyAgICBpZiAocHJpdi0+c291cmNlVmlkZW8u
ZW5vdWdoRGF0YUlkIHx8IHByaXYtPnNvdXJjZVZpZGVvLnBhdXNlZCkgewogICAgICAgICBHU1Rf
T0JKRUNUX1VOTE9DSyhzcmMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZ3N0X29i
amVjdF9yZWYoc3JjKTsKLSAgICBwcml2LT5zb3VyY2VWaWRlby5lbm91Z2hEYXRhLnNjaGVkdWxl
KCJbV2ViS2l0XSB3ZWJLaXRNZWRpYVZpZGVvU3JjRW5vdWdoRGF0YU1haW5DYiIsIHN0ZDo6Ymlu
ZCh3ZWJLaXRNZWRpYVZpZGVvU3JjRW5vdWdoRGF0YU1haW5DYiwgc3JjKSwgR19QUklPUklUWV9E
RUZBVUxULAotICAgICAgICBbc3JjXSB7IGdzdF9vYmplY3RfdW5yZWYoc3JjKTsgfSk7Ci0KKyAg
ICBwcml2LT5zb3VyY2VWaWRlby5lbm91Z2hEYXRhSWQgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR19Q
UklPUklUWV9ERUZBVUxULCAwLCAoR1NvdXJjZUZ1bmMpIHdlYktpdE1lZGlhVmlkZW9TcmNFbm91
Z2hEYXRhTWFpbkNiLCBnc3Rfb2JqZWN0X3JlZihzcmMpLCAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9v
YmplY3RfdW5yZWYpOworICAgIGdfc291cmNlX3NldF9uYW1lX2J5X2lkKHByaXYtPnNvdXJjZVZp
ZGVvLmVub3VnaERhdGFJZCwgIltXZWJLaXRdIHdlYktpdE1lZGlhVmlkZW9TcmNFbm91Z2hEYXRh
TWFpbkNiIik7CiAgICAgR1NUX09CSkVDVF9VTkxPQ0soc3JjKTsKIH0KIApAQCAtNTk0LDI3ICs2
NTMsMjggQEAgc3RhdGljIHZvaWQgd2ViS2l0TWVkaWFBdWRpb1NyY0Vub3VnaERhdGFDYihHc3RB
cHBTcmMqLCBncG9pbnRlciB1c2VyRGF0YSkKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIkhh
dmUgZW5vdWdoIGRhdGEiKTsKIAogICAgIEdTVF9PQkpFQ1RfTE9DSyhzcmMpOwotICAgIGlmIChw
cml2LT5zb3VyY2VBdWRpby5lbm91Z2hEYXRhLmlzU2NoZWR1bGVkKCkgfHwgcHJpdi0+c291cmNl
QXVkaW8ucGF1c2VkKSB7CisgICAgaWYgKHByaXYtPnNvdXJjZUF1ZGlvLmVub3VnaERhdGFJZCB8
fCBwcml2LT5zb3VyY2VBdWRpby5wYXVzZWQpIHsKICAgICAgICAgR1NUX09CSkVDVF9VTkxPQ0so
c3JjKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGdzdF9vYmplY3RfcmVmKHNyYyk7
Ci0gICAgcHJpdi0+c291cmNlQXVkaW8uZW5vdWdoRGF0YS5zY2hlZHVsZSgiW1dlYktpdF0gd2Vi
S2l0TWVkaWFBdWRpb1NyY0Vub3VnaERhdGFNYWluQ2IiLCBzdGQ6OmJpbmQod2ViS2l0TWVkaWFB
dWRpb1NyY0Vub3VnaERhdGFNYWluQ2IsIHNyYyksIEdfUFJJT1JJVFlfREVGQVVMVCwKLSAgICAg
ICAgW3NyY10geyBnc3Rfb2JqZWN0X3VucmVmKHNyYyk7IH0pOwotCisgICAgcHJpdi0+c291cmNl
QXVkaW8uZW5vdWdoRGF0YUlkID0gZ190aW1lb3V0X2FkZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVM
VCwgMCwgKEdTb3VyY2VGdW5jKSB3ZWJLaXRNZWRpYUF1ZGlvU3JjRW5vdWdoRGF0YU1haW5DYiwg
Z3N0X29iamVjdF9yZWYoc3JjKSwgKEdEZXN0cm95Tm90aWZ5KSBnc3Rfb2JqZWN0X3VucmVmKTsK
KyAgICBnX3NvdXJjZV9zZXRfbmFtZV9ieV9pZChwcml2LT5zb3VyY2VBdWRpby5lbm91Z2hEYXRh
SWQsICJbV2ViS2l0XSB3ZWJLaXRNZWRpYUF1ZGlvU3JjRW5vdWdoRGF0YU1haW5DYiIpOwogICAg
IEdTVF9PQkpFQ1RfVU5MT0NLKHNyYyk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYktpdE1lZGlhVmlk
ZW9TcmNTZWVrTWFpbkNiKFdlYktpdE1lZGlhU3JjKikKK3N0YXRpYyBnYm9vbGVhbiB3ZWJLaXRN
ZWRpYVZpZGVvU3JjU2Vla01haW5DYihXZWJLaXRNZWRpYVNyYyogc3JjKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgc3JjLT5wcml2LT5zb3VyY2VWaWRlby5zZWVrSWQgPSAwOworICAg
IHJldHVybiBGQUxTRTsKIH0KIAotCi1zdGF0aWMgdm9pZCB3ZWJLaXRNZWRpYUF1ZGlvU3JjU2Vl
a01haW5DYihXZWJLaXRNZWRpYVNyYyopCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFBdWRp
b1NyY1NlZWtNYWluQ2IoV2ViS2l0TWVkaWFTcmMqIHNyYykKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHNyYy0+cHJpdi0+c291cmNlQXVkaW8uc2Vla0lkID0gMDsKKyAgICByZXR1cm4g
RkFMU0U7CiB9CiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRNZWRpYVZpZGVvU3JjU2Vla0RhdGFD
YihHc3RBcHBTcmMqLCBndWludDY0IG9mZnNldCwgZ3BvaW50ZXIgdXNlckRhdGEpCkBAIC02NDEs
MTAgKzcwMSwxMCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0TWVkaWFWaWRlb1NyY1NlZWtEYXRh
Q2IoR3N0QXBwU3JjKiwgZ3VpbnQ2NCBvZmZzZXQsIGdwb2ludAogICAgIEdTVF9ERUJVR19PQkpF
Q1Qoc3JjLCAiRG9pbmcgcmFuZ2UtcmVxdWVzdCBzZWVrIik7CiAgICAgcHJpdi0+c291cmNlVmlk
ZW8ucmVxdWVzdGVkT2Zmc2V0ID0gb2Zmc2V0OwogCi0gICAgZ3N0X29iamVjdF9yZWYoc3JjKTsK
LSAgICBwcml2LT5zb3VyY2VWaWRlby5zZWVrLnNjaGVkdWxlKCJbV2ViS2l0XSB3ZWJLaXRNZWRp
YVZpZGVvU3JjU2Vla01haW5DYiIsIHN0ZDo6YmluZCh3ZWJLaXRNZWRpYVZpZGVvU3JjU2Vla01h
aW5DYiwgc3JjKSwgR19QUklPUklUWV9ERUZBVUxULAotICAgICAgICBbc3JjXSB7IGdzdF9vYmpl
Y3RfdW5yZWYoc3JjKTsgfSk7Ci0KKyAgICBpZiAocHJpdi0+c291cmNlVmlkZW8uc2Vla0lkKQor
ICAgICAgICBnX3NvdXJjZV9yZW1vdmUocHJpdi0+c291cmNlVmlkZW8uc2Vla0lkKTsKKyAgICBw
cml2LT5zb3VyY2VWaWRlby5zZWVrSWQgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR19QUklPUklUWV9E
RUZBVUxULCAwLCAoR1NvdXJjZUZ1bmMpIHdlYktpdE1lZGlhVmlkZW9TcmNTZWVrTWFpbkNiLCBn
c3Rfb2JqZWN0X3JlZihzcmMpLCAoR0Rlc3Ryb3lOb3RpZnkpIGdzdF9vYmplY3RfdW5yZWYpOwor
ICAgIGdfc291cmNlX3NldF9uYW1lX2J5X2lkKHByaXYtPnNvdXJjZVZpZGVvLnNlZWtJZCwgIltX
ZWJLaXRdIHdlYktpdE1lZGlhVmlkZW9TcmNTZWVrTWFpbkNiIik7CiAgICAgR1NUX09CSkVDVF9V
TkxPQ0soc3JjKTsKIAogICAgIHJldHVybiBUUlVFOwpAQCAtNjc0LDEwICs3MzQsMTAgQEAgc3Rh
dGljIGdib29sZWFuIHdlYktpdE1lZGlhQXVkaW9TcmNTZWVrRGF0YUNiKEdzdEFwcFNyYyosIGd1
aW50NjQgb2Zmc2V0LCBncG9pbnQKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIkRvaW5nIHJh
bmdlLXJlcXVlc3Qgc2VlayIpOwogICAgIHByaXYtPnNvdXJjZUF1ZGlvLnJlcXVlc3RlZE9mZnNl
dCA9IG9mZnNldDsKIAotICAgIGdzdF9vYmplY3RfcmVmKHNyYyk7Ci0gICAgcHJpdi0+c291cmNl
QXVkaW8uc2Vlay5zY2hlZHVsZSgiW1dlYktpdF0gd2ViS2l0TWVkaWFBdWRpb1NyY1NlZWtNYWlu
Q2IiLCBzdGQ6OmJpbmQod2ViS2l0TWVkaWFBdWRpb1NyY1NlZWtNYWluQ2IsIHNyYyksIEdfUFJJ
T1JJVFlfREVGQVVMVCwKLSAgICAgICAgW3NyY10geyBnc3Rfb2JqZWN0X3VucmVmKHNyYyk7IH0p
OwotCisgICAgaWYgKHByaXYtPnNvdXJjZUF1ZGlvLnNlZWtJZCkKKyAgICAgICAgZ19zb3VyY2Vf
cmVtb3ZlKHByaXYtPnNvdXJjZUF1ZGlvLnNlZWtJZCk7CisgICAgcHJpdi0+c291cmNlQXVkaW8u
c2Vla0lkID0gZ190aW1lb3V0X2FkZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVMVCwgMCwgKEdTb3Vy
Y2VGdW5jKSB3ZWJLaXRNZWRpYUF1ZGlvU3JjU2Vla01haW5DYiwgZ3N0X29iamVjdF9yZWYoc3Jj
KSwgKEdEZXN0cm95Tm90aWZ5KSBnc3Rfb2JqZWN0X3VucmVmKTsKKyAgICBnX3NvdXJjZV9zZXRf
bmFtZV9ieV9pZChwcml2LT5zb3VyY2VBdWRpby5zZWVrSWQsICJbV2ViS2l0XSB3ZWJLaXRNZWRp
YUF1ZGlvU3JjU2Vla01haW5DYiIpOwogICAgIEdTVF9PQkpFQ1RfVU5MT0NLKHNyYyk7CiAKICAg
ICByZXR1cm4gVFJVRTsKQEAgLTc2MiwxNCArODIyLDE0IEBAIHZvaWQgTWVkaWFTb3VyY2VDbGll
bnRHc3RyZWFtZXI6OmRpZEZpbmlzaExvYWRpbmcoZG91YmxlKQogICAgIEdTVF9ERUJVR19PQkpF
Q1QobV9zcmMsICJIYXZlIEVPUyIpOwogCiAgICAgR1NUX09CSkVDVF9MT0NLKG1fc3JjKTsKLSAg
ICBpZiAoIXByaXYtPnNvdXJjZVZpZGVvLnNlZWsuaXNBY3RpdmUoKSkgeworICAgIGlmICghcHJp
di0+c291cmNlVmlkZW8uc2Vla0lkKSB7CiAgICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKG1fc3Jj
KTsKICAgICAgICAgZ3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbShHU1RfQVBQX1NSQyhwcml2LT5z
b3VyY2VWaWRlby5hcHBzcmMpKTsKICAgICB9IGVsc2UKICAgICAgICAgR1NUX09CSkVDVF9VTkxP
Q0sobV9zcmMpOwogCiAgICAgR1NUX09CSkVDVF9MT0NLKG1fc3JjKTsKLSAgICBpZiAoIXByaXYt
PnNvdXJjZUF1ZGlvLnNlZWsuaXNBY3RpdmUoKSkgeworICAgIGlmICghcHJpdi0+c291cmNlQXVk
aW8uc2Vla0lkKSB7CiAgICAgICAgIEdTVF9PQkpFQ1RfVU5MT0NLKG1fc3JjKTsKICAgICAgICAg
Z3N0X2FwcF9zcmNfZW5kX29mX3N0cmVhbShHU1RfQVBQX1NSQyhwcml2LT5zb3VyY2VBdWRpby5h
cHBzcmMpKTsKICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9XZWJLaXRXZWJTb3VyY2VHU3RyZWFtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdTdHJl
YW1lci5jcHAKaW5kZXggMjhiOTcyMGFkMTI2MzA2ZTgyYmE3YWM1MzFjZDdlMzQzNDc1ZmNiMy4u
OGNiOGE0ZDdlMzQ4MDdhOGFhZDc0YzcxMGNmZTExZGQ4NDVlMTY4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL1dlYktpdFdlYlNvdXJjZUdT
dHJlYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVh
bWVyL1dlYktpdFdlYlNvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQwLDcgKzQwLDYgQEAKICNpbmNs
dWRlIDxnc3QvZ3N0Lmg+CiAjaW5jbHVkZSA8Z3N0L3BidXRpbHMvbWlzc2luZy1wbHVnaW5zLmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL2dvYmplY3QvR01h
aW5Mb29wU291cmNlLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmplY3QvR011dGV4TG9ja2VyLmg+CiAj
aW5jbHVkZSA8d3RmL2dvYmplY3QvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dV
bmlxdWVQdHIuaD4KQEAgLTEyNywxMSArMTI2LDExIEBAIHN0cnVjdCBfV2ViS2l0V2ViU3JjUHJp
dmF0ZSB7CiAKICAgICBndWludDY0IHJlcXVlc3RlZE9mZnNldDsKIAotICAgIEdNYWluTG9vcFNv
dXJjZSBzdGFydFNvdXJjZTsKLSAgICBHTWFpbkxvb3BTb3VyY2Ugc3RvcFNvdXJjZTsKLSAgICBH
TWFpbkxvb3BTb3VyY2UgbmVlZERhdGFTb3VyY2U7Ci0gICAgR01haW5Mb29wU291cmNlIGVub3Vn
aERhdGFTb3VyY2U7Ci0gICAgR01haW5Mb29wU291cmNlIHNlZWtTb3VyY2U7CisgICAgZ3VpbnQg
c3RhcnRJRDsKKyAgICBndWludCBzdG9wSUQ7CisgICAgZ3VpbnQgbmVlZERhdGFJRDsKKyAgICBn
dWludCBlbm91Z2hEYXRhSUQ7CisgICAgZ3VpbnQgc2Vla0lEOwogCiAgICAgR1JlZlB0cjxHc3RC
dWZmZXI+IGJ1ZmZlcjsKIApAQCAtMjU0LDcgKzI1Myw2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfc3JjX2luaXQoV2ViS2l0V2ViU3JjKiBzcmMpCiAgICAgV2ViS2l0V2ViU3JjUHJpdmF0ZSog
cHJpdiA9IFdFQktJVF9XRUJfU1JDX0dFVF9QUklWQVRFKHNyYyk7CiAKICAgICBzcmMtPnByaXYg
PSBwcml2OwotICAgIG5ldyAocHJpdikgV2ViS2l0V2ViU3JjUHJpdmF0ZSgpOwogCiAgICAgcHJp
di0+YXBwc3JjID0gR1NUX0FQUF9TUkMoZ3N0X2VsZW1lbnRfZmFjdG9yeV9tYWtlKCJhcHBzcmMi
LCAwKSk7CiAgICAgaWYgKCFwcml2LT5hcHBzcmMpIHsKQEAgLTMxNiw3ICszMTQsNiBAQCBzdGF0
aWMgdm9pZCB3ZWJLaXRXZWJTcmNGaW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiAgICAgV2ViS2l0
V2ViU3JjUHJpdmF0ZSogcHJpdiA9IHNyYy0+cHJpdjsKIAogICAgIGdfZnJlZShwcml2LT51cmkp
OwotICAgIHByaXYtPn5XZWJLaXRXZWJTcmNQcml2YXRlKCk7CiAKICAgICBHU1RfQ0FMTF9QQVJF
TlQoR19PQkpFQ1RfQ0xBU1MsIGZpbmFsaXplLCAob2JqZWN0KSk7CiB9CkBAIC0zNjcsMTMgKzM2
NCwyNCBAQCBzdGF0aWMgdm9pZCByZW1vdmVUaW1lb3V0U291cmNlcyhXZWJLaXRXZWJTcmMqIHNy
YykKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCi0gICAg
cHJpdi0+c3RhcnRTb3VyY2UuY2FuY2VsKCk7Ci0gICAgcHJpdi0+bmVlZERhdGFTb3VyY2UuY2Fu
Y2VsKCk7Ci0gICAgcHJpdi0+ZW5vdWdoRGF0YVNvdXJjZS5jYW5jZWwoKTsKLSAgICBwcml2LT5z
ZWVrU291cmNlLmNhbmNlbCgpOworICAgIGlmIChwcml2LT5zdGFydElEKQorICAgICAgICBnX3Nv
dXJjZV9yZW1vdmUocHJpdi0+c3RhcnRJRCk7CisgICAgcHJpdi0+c3RhcnRJRCA9IDA7CisKKyAg
ICBpZiAocHJpdi0+bmVlZERhdGFJRCkKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKHByaXYtPm5l
ZWREYXRhSUQpOworICAgIHByaXYtPm5lZWREYXRhSUQgPSAwOworCisgICAgaWYgKHByaXYtPmVu
b3VnaERhdGFJRCkKKyAgICAgICAgZ19zb3VyY2VfcmVtb3ZlKHByaXYtPmVub3VnaERhdGFJRCk7
CisgICAgcHJpdi0+ZW5vdWdoRGF0YUlEID0gMDsKKworICAgIGlmIChwcml2LT5zZWVrSUQpCisg
ICAgICAgIGdfc291cmNlX3JlbW92ZShwcml2LT5zZWVrSUQpOworICAgIHByaXYtPnNlZWtJRCA9
IDA7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0b3AoV2ViS2l0V2ViU3JjKiBzcmMp
CitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU3RvcChXZWJLaXRXZWJTcmMqIHNyYykKIHsK
ICAgICBXZWJLaXRXZWJTcmNQcml2YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCkBAIC0zODEsOSAr
Mzg5LDEwIEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0b3AoV2ViS2l0V2ViU3JjKiBzcmMp
CiAKICAgICBHTXV0ZXhMb2NrZXIgbG9ja2VyKEdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7CiAK
LSAgICBib29sIHNlZWtpbmcgPSBwcml2LT5zZWVrU291cmNlLmlzQWN0aXZlKCk7CisgICAgYm9v
bCBzZWVraW5nID0gcHJpdi0+c2Vla0lEOwogCiAgICAgcmVtb3ZlVGltZW91dFNvdXJjZXMoc3Jj
KTsKKyAgICBwcml2LT5zdG9wSUQgPSAwOwogCiAgICAgaWYgKHByaXYtPmNsaWVudCkgewogICAg
ICAgICBkZWxldGUgcHJpdi0+Y2xpZW50OwpAQCAtNDI3LDkgKzQzNiwxMSBAQCBzdGF0aWMgdm9p
ZCB3ZWJLaXRXZWJTcmNTdG9wKFdlYktpdFdlYlNyYyogc3JjKQogICAgIH0KIAogICAgIEdTVF9E
RUJVR19PQkpFQ1Qoc3JjLCAiU3RvcHBlZCByZXF1ZXN0Iik7CisKKyAgICByZXR1cm4gRkFMU0U7
CiB9CiAKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQor
c3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3JjKQogewog
ICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKQEAgLTQzNywxMSAr
NDQ4LDEzIEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY1N0YXJ0KFdlYktpdFdlYlNyYyogc3Jj
KQogCiAgICAgR011dGV4TG9ja2VyIGxvY2tlcihHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwog
CisgICAgcHJpdi0+c3RhcnRJRCA9IDA7CisKICAgICBpZiAoIXByaXYtPnVyaSkgewogICAgICAg
ICBHU1RfRVJST1JfT0JKRUNUKHNyYywgIk5vIFVSSSBwcm92aWRlZCIpOwogICAgICAgICBsb2Nr
ZXIudW5sb2NrKCk7CiAgICAgICAgIHdlYktpdFdlYlNyY1N0b3Aoc3JjKTsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gRkFMU0U7CiAgICAgfQogCiAgICAgQVNTRVJUKCFwcml2LT5j
bGllbnQpOwpAQCAtNDk3LDkgKzUxMCwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJLaXRXZWJTcmNTdGFy
dChXZWJLaXRXZWJTcmMqIHNyYykKICAgICAgICAgfQogICAgICAgICBsb2NrZXIudW5sb2NrKCk7
CiAgICAgICAgIHdlYktpdFdlYlNyY1N0b3Aoc3JjKTsKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICByZXR1cm4gRkFMU0U7CiAgICAgfQogICAgIEdTVF9ERUJVR19PQkpFQ1Qoc3JjLCAiU3RhcnRl
ZCByZXF1ZXN0Iik7CisgICAgcmV0dXJuIEZBTFNFOwogfQogCiBzdGF0aWMgR3N0U3RhdGVDaGFu
Z2VSZXR1cm4gd2ViS2l0V2ViU3JjQ2hhbmdlU3RhdGUoR3N0RWxlbWVudCogZWxlbWVudCwgR3N0
U3RhdGVDaGFuZ2UgdHJhbnNpdGlvbikKQEAgLTUzMSwxNyArNTQ1LDEzIEBAIHN0YXRpYyBHc3RT
dGF0ZUNoYW5nZVJldHVybiB3ZWJLaXRXZWJTcmNDaGFuZ2VTdGF0ZShHc3RFbGVtZW50KiBlbGVt
ZW50LCBHc3RTdGF0CiAgICAgc3dpdGNoICh0cmFuc2l0aW9uKSB7CiAgICAgY2FzZSBHU1RfU1RB
VEVfQ0hBTkdFX1JFQURZX1RPX1BBVVNFRDoKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMs
ICJSRUFEWS0+UEFVU0VEIik7Ci0gICAgICAgIGdzdF9vYmplY3RfcmVmKHNyYyk7Ci0gICAgICAg
IHByaXYtPnN0YXJ0U291cmNlLnNjaGVkdWxlKCJbV2ViS2l0XSB3ZWJLaXRXZWJTcmNTdGFydCIs
IHN0ZDo6YmluZCh3ZWJLaXRXZWJTcmNTdGFydCwgc3JjKSwgR19QUklPUklUWV9ERUZBVUxULAot
ICAgICAgICAgICAgW3NyY10geyBnc3Rfb2JqZWN0X3VucmVmKHNyYyk7IH0pOworICAgICAgICBw
cml2LT5zdGFydElEID0gZ19pZGxlX2FkZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVMVCwgKEdTb3Vy
Y2VGdW5jKSB3ZWJLaXRXZWJTcmNTdGFydCwgZ3N0X29iamVjdF9yZWYoc3JjKSwgKEdEZXN0cm95
Tm90aWZ5KSBnc3Rfb2JqZWN0X3VucmVmKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHU1Rf
U1RBVEVfQ0hBTkdFX1BBVVNFRF9UT19SRUFEWToKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChz
cmMsICJQQVVTRUQtPlJFQURZIik7CiAgICAgICAgIC8vIGNhbmNlbCBwZW5kaW5nIHNvdXJjZXMK
ICAgICAgICAgcmVtb3ZlVGltZW91dFNvdXJjZXMoc3JjKTsKLSAgICAgICAgZ3N0X29iamVjdF9y
ZWYoc3JjKTsKLSAgICAgICAgcHJpdi0+c3RvcFNvdXJjZS5zY2hlZHVsZSgiW1dlYktpdF0gd2Vi
S2l0V2ViU3JjU3RvcCIsIHN0ZDo6YmluZCh3ZWJLaXRXZWJTcmNTdG9wLCBzcmMpLCBHX1BSSU9S
SVRZX0RFRkFVTFQsCi0gICAgICAgICAgICBbc3JjXSB7IGdzdF9vYmplY3RfdW5yZWYoc3JjKTsg
fSk7CisgICAgICAgIHByaXYtPnN0b3BJRCA9IGdfaWRsZV9hZGRfZnVsbChHX1BSSU9SSVRZX0RF
RkFVTFQsIChHU291cmNlRnVuYykgd2ViS2l0V2ViU3JjU3RvcCwgZ3N0X29iamVjdF9yZWYoc3Jj
KSwgKEdEZXN0cm95Tm90aWZ5KSBnc3Rfb2JqZWN0X3VucmVmKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC02NTYsMTggKzY2NiwyNCBAQCBzdGF0aWMg
dm9pZCB3ZWJLaXRXZWJTcmNVcmlIYW5kbGVySW5pdChncG9pbnRlciBnSWZhY2UsIGdwb2ludGVy
KQogCiAvLyBhcHBzcmMgY2FsbGJhY2tzCiAKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY05lZWRE
YXRhTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQorc3RhdGljIGdib29sZWFuIHdlYktpdFdlYlNy
Y05lZWREYXRhTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQogewogICAgIFdlYktpdFdlYlNyY1By
aXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CiAKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
CiAgICAgR011dGV4TG9ja2VyIGxvY2tlcihHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOworICAg
IC8vIGFscmVhZHkgc3RvcHBlZAorICAgIGlmICghcHJpdi0+bmVlZERhdGFJRCkKKyAgICAgICAg
cmV0dXJuIEZBTFNFOworCiAgICAgcHJpdi0+cGF1c2VkID0gRkFMU0U7CisgICAgcHJpdi0+bmVl
ZERhdGFJRCA9IDA7CiAgICAgbG9ja2VyLnVubG9jaygpOwogCiAgICAgaWYgKHByaXYtPmNsaWVu
dCkKICAgICAgICAgcHJpdi0+Y2xpZW50LT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKKyAgICBy
ZXR1cm4gRkFMU0U7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY05lZWREYXRhQ2IoR3N0
QXBwU3JjKiwgZ3VpbnQgbGVuZ3RoLCBncG9pbnRlciB1c2VyRGF0YSkKQEAgLTY3OCwyNiArNjk0
LDMxIEBAIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY05lZWREYXRhQ2IoR3N0QXBwU3JjKiwgZ3Vp
bnQgbGVuZ3RoLCBncG9pbnRlciB1c2VyRGF0YSkKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywg
Ik5lZWQgbW9yZSBkYXRhOiAldSIsIGxlbmd0aCk7CiAKICAgICBHTXV0ZXhMb2NrZXIgbG9ja2Vy
KEdTVF9PQkpFQ1RfR0VUX0xPQ0soc3JjKSk7Ci0gICAgaWYgKHByaXYtPm5lZWREYXRhU291cmNl
LmlzU2NoZWR1bGVkKCkgfHwgIXByaXYtPnBhdXNlZCkKKyAgICBpZiAocHJpdi0+bmVlZERhdGFJ
RCB8fCAhcHJpdi0+cGF1c2VkKSB7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKLSAgICBnc3Rf
b2JqZWN0X3JlZihzcmMpOwotICAgIHByaXYtPm5lZWREYXRhU291cmNlLnNjaGVkdWxlKCJbV2Vi
S2l0XSB3ZWJLaXRXZWJTcmNOZWVkRGF0YU1haW5DYiIsIHN0ZDo6YmluZCh3ZWJLaXRXZWJTcmNO
ZWVkRGF0YU1haW5DYiwgc3JjKSwgR19QUklPUklUWV9ERUZBVUxULAotICAgICAgICBbc3JjXSB7
IGdzdF9vYmplY3RfdW5yZWYoc3JjKTsgfSk7CisgICAgcHJpdi0+bmVlZERhdGFJRCA9IGdfaWRs
ZV9hZGRfZnVsbChHX1BSSU9SSVRZX0RFRkFVTFQsIChHU291cmNlRnVuYykgd2ViS2l0V2ViU3Jj
TmVlZERhdGFNYWluQ2IsIGdzdF9vYmplY3RfcmVmKHNyYyksIChHRGVzdHJveU5vdGlmeSkgZ3N0
X29iamVjdF91bnJlZik7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Vub3VnaERhdGFN
YWluQ2IoV2ViS2l0V2ViU3JjKiBzcmMpCitzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjRW5v
dWdoRGF0YU1haW5DYihXZWJLaXRXZWJTcmMqIHNyYykKIHsKICAgICBXZWJLaXRXZWJTcmNQcml2
YXRlKiBwcml2ID0gc3JjLT5wcml2OwogCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAog
ICAgIEdNdXRleExvY2tlciBsb2NrZXIoR1NUX09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKKyAgICAv
LyBhbHJlYWR5IHN0b3BwZWQKKyAgICBpZiAoIXByaXYtPmVub3VnaERhdGFJRCkKKyAgICAgICAg
cmV0dXJuIEZBTFNFOworCiAgICAgcHJpdi0+cGF1c2VkID0gVFJVRTsKKyAgICBwcml2LT5lbm91
Z2hEYXRhSUQgPSAwOwogICAgIGxvY2tlci51bmxvY2soKTsKIAogICAgIGlmIChwcml2LT5jbGll
bnQpCiAgICAgICAgIHByaXYtPmNsaWVudC0+c2V0RGVmZXJzTG9hZGluZyh0cnVlKTsKKyAgICBy
ZXR1cm4gRkFMU0U7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYktpdFdlYlNyY0Vub3VnaERhdGFDYihH
c3RBcHBTcmMqLCBncG9pbnRlciB1c2VyRGF0YSkKQEAgLTcwOCwyMCArNzI5LDI5IEBAIHN0YXRp
YyB2b2lkIHdlYktpdFdlYlNyY0Vub3VnaERhdGFDYihHc3RBcHBTcmMqLCBncG9pbnRlciB1c2Vy
RGF0YSkKICAgICBHU1RfREVCVUdfT0JKRUNUKHNyYywgIkhhdmUgZW5vdWdoIGRhdGEiKTsKIAog
ICAgIEdNdXRleExvY2tlciBsb2NrZXIoR1NUX09CSkVDVF9HRVRfTE9DSyhzcmMpKTsKLSAgICBp
ZiAocHJpdi0+ZW5vdWdoRGF0YVNvdXJjZS5pc1NjaGVkdWxlZCgpIHx8IHByaXYtPnBhdXNlZCkK
KyAgICBpZiAocHJpdi0+ZW5vdWdoRGF0YUlEIHx8IHByaXYtPnBhdXNlZCkgewogICAgICAgICBy
ZXR1cm47CisgICAgfQogCi0gICAgZ3N0X29iamVjdF9yZWYoc3JjKTsKLSAgICBwcml2LT5lbm91
Z2hEYXRhU291cmNlLnNjaGVkdWxlKCJbV2ViS2l0XSB3ZWJLaXRXZWJTcmNFbm91Z2hEYXRhTWFp
bkNiIiwgc3RkOjpiaW5kKHdlYktpdFdlYlNyY0Vub3VnaERhdGFNYWluQ2IsIHNyYyksIEdfUFJJ
T1JJVFlfREVGQVVMVCwKLSAgICAgICAgW3NyY10geyBnc3Rfb2JqZWN0X3VucmVmKHNyYyk7IH0p
OworICAgIHByaXYtPmVub3VnaERhdGFJRCA9IGdfaWRsZV9hZGRfZnVsbChHX1BSSU9SSVRZX0RF
RkFVTFQsIChHU291cmNlRnVuYykgd2ViS2l0V2ViU3JjRW5vdWdoRGF0YU1haW5DYiwgZ3N0X29i
amVjdF9yZWYoc3JjKSwgKEdEZXN0cm95Tm90aWZ5KSBnc3Rfb2JqZWN0X3VucmVmKTsKIH0KIAot
c3RhdGljIHZvaWQgd2ViS2l0V2ViU3JjU2Vla01haW5DYihXZWJLaXRXZWJTcmMqIHNyYykKK3N0
YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVrTWFpbkNiKFdlYktpdFdlYlNyYyogc3JjKQog
eworICAgIFdlYktpdFdlYlNyY1ByaXZhdGUqIHByaXYgPSBzcmMtPnByaXY7CisKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCisgICAgR011dGV4TG9ja2VyIGxvY2tlcihHU1RfT0JKRUNU
X0dFVF9MT0NLKHNyYykpOworICAgIC8vIGFscmVhZHkgc3RvcHBlZAorICAgIGlmICghcHJpdi0+
c2Vla0lEKQorICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgbG9ja2VyLnVubG9jaygpOworCiAg
ICAgd2ViS2l0V2ViU3JjU3RvcChzcmMpOwogICAgIHdlYktpdFdlYlNyY1N0YXJ0KHNyYyk7CisK
KyAgICByZXR1cm4gRkFMU0U7CiB9CiAKIHN0YXRpYyBnYm9vbGVhbiB3ZWJLaXRXZWJTcmNTZWVr
RGF0YUNiKEdzdEFwcFNyYyosIGd1aW50NjQgb2Zmc2V0LCBncG9pbnRlciB1c2VyRGF0YSkKQEAg
LTc0MCw5ICs3NzAsOSBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2ViS2l0V2ViU3JjU2Vla0RhdGFDYihH
c3RBcHBTcmMqLCBndWludDY0IG9mZnNldCwgZ3BvaW50ZXIgdXNlcgogICAgIEdTVF9ERUJVR19P
QkpFQ1Qoc3JjLCAiRG9pbmcgcmFuZ2UtcmVxdWVzdCBzZWVrIik7CiAgICAgcHJpdi0+cmVxdWVz
dGVkT2Zmc2V0ID0gb2Zmc2V0OwogCi0gICAgZ3N0X29iamVjdF9yZWYoc3JjKTsKLSAgICBwcml2
LT5zZWVrU291cmNlLnNjaGVkdWxlKCJbV2ViS2l0XSB3ZWJLaXRXZWJTcmNTZWVrTWFpbkNiIiwg
c3RkOjpiaW5kKHdlYktpdFdlYlNyY1NlZWtNYWluQ2IsIHNyYyksIEdfUFJJT1JJVFlfREVGQVVM
VCwKLSAgICAgICAgW3NyY10geyBnc3Rfb2JqZWN0X3VucmVmKHNyYyk7IH0pOworICAgIGlmIChw
cml2LT5zZWVrSUQpCisgICAgICAgIGdfc291cmNlX3JlbW92ZShwcml2LT5zZWVrSUQpOworICAg
IHByaXYtPnNlZWtJRCA9IGdfaWRsZV9hZGRfZnVsbChHX1BSSU9SSVRZX0RFRkFVTFQsIChHU291
cmNlRnVuYykgd2ViS2l0V2ViU3JjU2Vla01haW5DYiwgZ3N0X29iamVjdF9yZWYoc3JjKSwgKEdE
ZXN0cm95Tm90aWZ5KSBnc3Rfb2JqZWN0X3VucmVmKTsKICAgICByZXR1cm4gVFJVRTsKIH0KIApA
QCAtNzk4LDcgKzgyOCw3IEBAIHZvaWQgU3RyZWFtaW5nQ2xpZW50OjpoYW5kbGVSZXNwb25zZVJl
Y2VpdmVkKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogCiAgICAgR011dGV4TG9j
a2VyIGxvY2tlcihHU1RfT0JKRUNUX0dFVF9MT0NLKHNyYykpOwogCi0gICAgaWYgKHByaXYtPnNl
ZWtTb3VyY2UuaXNBY3RpdmUoKSkgeworICAgIGlmIChwcml2LT5zZWVrSUQpIHsKICAgICAgICAg
R1NUX0RFQlVHX09CSkVDVChzcmMsICJTZWVrIGluIHByb2dyZXNzLCBpZ25vcmluZyByZXNwb25z
ZSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtOTAyLDcgKzkzMiw3IEBAIHZvaWQgU3Ry
ZWFtaW5nQ2xpZW50OjpoYW5kbGVEYXRhUmVjZWl2ZWQoY29uc3QgY2hhciogZGF0YSwgaW50IGxl
bmd0aCkKICAgICBpZiAocHJpdi0+YnVmZmVyKQogICAgICAgICB1bm1hcEdzdEJ1ZmZlcihwcml2
LT5idWZmZXIuZ2V0KCkpOwogCi0gICAgaWYgKHByaXYtPnNlZWtTb3VyY2UuaXNBY3RpdmUoKSkg
eworICAgIGlmIChwcml2LT5zZWVrSUQpIHsKICAgICAgICAgR1NUX0RFQlVHX09CSkVDVChzcmMs
ICJTZWVrIGluIHByb2dyZXNzLCBpZ25vcmluZyBkYXRhIik7CiAgICAgICAgIHByaXYtPmJ1ZmZl
ci5jbGVhcigpOwogICAgICAgICByZXR1cm47CkBAIC05NjMsNyArOTkzLDcgQEAgdm9pZCBTdHJl
YW1pbmdDbGllbnQ6OmhhbmRsZU5vdGlmeUZpbmlzaGVkKCkKICAgICBHU1RfREVCVUdfT0JKRUNU
KHNyYywgIkhhdmUgRU9TIik7CiAKICAgICBHTXV0ZXhMb2NrZXIgbG9ja2VyKEdTVF9PQkpFQ1Rf
R0VUX0xPQ0soc3JjKSk7Ci0gICAgaWYgKCFwcml2LT5zZWVrU291cmNlLmlzQWN0aXZlKCkpIHsK
KyAgICBpZiAoIXByaXYtPnNlZWtJRCkgewogICAgICAgICBsb2NrZXIudW5sb2NrKCk7CiAgICAg
ICAgIGdzdF9hcHBfc3JjX2VuZF9vZl9zdHJlYW0ocHJpdi0+YXBwc3JjKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrRHJhZ0FuZERyb3BIZWxwZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a0RyYWdBbmREcm9wSGVscGVyLmNw
cAppbmRleCBmYzc4MWU3MGNkNDYzMjFmNWQxOTAzZjViNDBlMWZlOWUwYzRmZjE2Li5kNDljMzUy
OGU2NGJhMzdlNWJiYTk2Yzc3MGU3MTYxODE1ODFjMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvR3RrRHJhZ0FuZERyb3BIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtEcmFnQW5kRHJvcEhlbHBlci5jcHAKQEAgLTI1LDcgKzI1
LDYgQEAKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEhl
bHBlci5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HTWFp
bkxvb3BTb3VyY2UuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02OSw2ICs2OCwxOCBA
QCB2b2lkIEd0a0RyYWdBbmREcm9wSGVscGVyOjpoYW5kbGVHZXREcmFnRGF0YShHZGtEcmFnQ29u
dGV4dCogY29udGV4dCwgR3RrU2VsZWN0aQogICAgIFBhc3RlYm9hcmRIZWxwZXI6OmRlZmF1bHRQ
YXN0ZWJvYXJkSGVscGVyKCktPmZpbGxTZWxlY3Rpb25EYXRhKHNlbGVjdGlvbkRhdGEsIGluZm8s
IGRhdGFPYmplY3QpOwogfQogCitzdHJ1Y3QgSGFuZGxlRHJhZ0xhdGVyRGF0YSB7CisgICAgRHJv
cHBpbmdDb250ZXh0KiBjb250ZXh0OworICAgIEd0a0RyYWdBbmREcm9wSGVscGVyKiBnbHVlOwor
fTsKKworc3RhdGljIGdib29sZWFuIGhhbmRsZURyYWdMZWF2ZUxhdGVyQ2FsbGJhY2soSGFuZGxl
RHJhZ0xhdGVyRGF0YSogZGF0YSkKK3sKKyAgICBkYXRhLT5nbHVlLT5oYW5kbGVEcmFnTGVhdmVM
YXRlcihkYXRhLT5jb250ZXh0KTsKKyAgICBkZWxldGUgZGF0YTsKKyAgICByZXR1cm4gRkFMU0U7
Cit9CisKIHZvaWQgR3RrRHJhZ0FuZERyb3BIZWxwZXI6OmhhbmRsZURyYWdMZWF2ZUxhdGVyKERy
b3BwaW5nQ29udGV4dCogY29udGV4dCkKIHsKICAgICBhdXRvIGl0ZXJhdG9yID0gbV9kcm9wcGlu
Z0NvbnRleHRzLmZpbmQoY29udGV4dC0+Z2RrQ29udGV4dCk7CkBAIC05OCw4ICsxMDksMTEgQEAg
dm9pZCBHdGtEcmFnQW5kRHJvcEhlbHBlcjo6aGFuZGxlRHJhZ0xlYXZlKEdka0RyYWdDb250ZXh0
KiBnZGtDb250ZXh0LCBEcmFnRXhpdGUKICAgICAvLyBEdXJpbmcgYSBkcm9wIEdUSysgd2lsbCBm
aXJlIGEgZHJhZy1sZWF2ZSBzaWduYWwgcmlnaHQgYmVmb3JlIGZpcmluZwogICAgIC8vIHRoZSBk
cmFnLWRyb3Agc2lnbmFsLiBXZSB3YW50IHRoZSBhY3Rpb25zIGZvciBkcmFnLWxlYXZlIHRvIGhh
cHBlbiBhZnRlcgogICAgIC8vIHRob3NlIGZvciBkcmFnLWRyb3AsIHNvIHNjaGVkdWxlIHRoZW0g
dG8gaGFwcGVuIGFzeW5jaHJvbm91c2x5IGhlcmUuCi0gICAgY29udGV4dC0+ZXhpdGVkQ2FsbGJh
Y2sgPSBleGl0ZWRDYWxsYmFjazsKLSAgICBHTWFpbkxvb3BTb3VyY2U6OmNyZWF0ZUFuZERlbGV0
ZU9uRGVzdHJveSgpLnNjaGVkdWxlKCJbV2ViS2l0XSBoYW5kbGVEcmFnTGVhdmVMYXRlciIsIHN0
ZDo6YmluZCgmR3RrRHJhZ0FuZERyb3BIZWxwZXI6OmhhbmRsZURyYWdMZWF2ZUxhdGVyLCB0aGlz
LCBjb250ZXh0KSk7CisgICAgSGFuZGxlRHJhZ0xhdGVyRGF0YSogZGF0YSA9IG5ldyBIYW5kbGVE
cmFnTGF0ZXJEYXRhOworICAgIGRhdGEtPmNvbnRleHQgPSBjb250ZXh0OworICAgIGRhdGEtPmNv
bnRleHQtPmV4aXRlZENhbGxiYWNrID0gZXhpdGVkQ2FsbGJhY2s7CisgICAgZGF0YS0+Z2x1ZSA9
IHRoaXM7CisgICAgZ19pZGxlX2FkZF9mdWxsKEdfUFJJT1JJVFlfREVGQVVMVCwgcmVpbnRlcnBy
ZXRfY2FzdDxHU291cmNlRnVuYz4oaGFuZGxlRHJhZ0xlYXZlTGF0ZXJDYWxsYmFjayksIGRhdGEs
IDApOwogfQogCiBzdGF0aWMgdm9pZCBxdWVyeU5ld0Ryb3BDb250ZXh0RGF0YShEcm9wcGluZ0Nv
bnRleHQqIGRyb3BDb250ZXh0LCBHdGtXaWRnZXQqIHdpZGdldCwgZ3VpbnQgdGltZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFyZWRUaW1lckd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkVGltZXJHdGsuY3BwCmluZGV4IDE4YWNl
YzA4ODk3ZDkxMmJjMTE4MWI3MzVkNTA0ZGUwMWZmYWNmZTcuLjU4ZWFmNTZjMDI4NTZmMTk5Zjlk
MGNkYjBhMTZkMTFmMzU4NTU0YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9TaGFyZWRUaW1lckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1NoYXJlZFRpbWVyR3RrLmNwcApAQCAtMjgsMzIgKzI4LDQ3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKIAorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25z
Lmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8Z2RrL2dkay5oPgot
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dNYWluTG9vcFNvdXJjZS5oPgorI2luY2x1ZGUgPGdsaWIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgR01haW5Mb29wU291cmNlIGdTaGFy
ZWRUaW1lcjsKK3N0YXRpYyBndWludCBzaGFyZWRUaW1lcjsKIHN0YXRpYyB2b2lkICgqc2hhcmVk
VGltZXJGaXJlZEZ1bmN0aW9uKSgpOwogCiB2b2lkIHNldFNoYXJlZFRpbWVyRmlyZWRGdW5jdGlv
bih2b2lkICgqZikoKSkKIHsKICAgICBzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24gPSBmOwotICAg
IGlmICghc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKQotICAgICAgICBnU2hhcmVkVGltZXIuY2Fu
Y2VsKCk7Cit9CisKK3N0YXRpYyBnYm9vbGVhbiBzaGFyZWRUaW1lclRpbWVvdXRDYWxsYmFjayhn
cG9pbnRlcikKK3sKKyAgICBpZiAoc2hhcmVkVGltZXJGaXJlZEZ1bmN0aW9uKQorICAgICAgICBz
aGFyZWRUaW1lckZpcmVkRnVuY3Rpb24oKTsKKyAgICByZXR1cm4gRkFMU0U7CiB9CiAKIHZvaWQg
c2V0U2hhcmVkVGltZXJGaXJlSW50ZXJ2YWwoZG91YmxlIGludGVydmFsKQogewogICAgIEFTU0VS
VChzaGFyZWRUaW1lckZpcmVkRnVuY3Rpb24pOwogCi0gICAgZ1NoYXJlZFRpbWVyLnNjaGVkdWxl
QWZ0ZXJEZWxheSgiW1dlYktpdF0gc2hhcmVkVGltZXJUaW1lb3V0Q2FsbGJhY2siLCBzaGFyZWRU
aW1lckZpcmVkRnVuY3Rpb24sCi0gICAgICAgIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0
ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM+KHN0ZDo6Y2hyb25vOjpkdXJhdGlvbjxkb3VibGU+KGlu
dGVydmFsKSksIEdES19QUklPUklUWV9SRURSQVcpOworICAgIGd1aW50IGludGVydmFsSW5NUyA9
IHN0YXRpY19jYXN0PGd1aW50PihpbnRlcnZhbCAqIDEwMDApOworCisgICAgc3RvcFNoYXJlZFRp
bWVyKCk7CisgICAgc2hhcmVkVGltZXIgPSBnX3RpbWVvdXRfYWRkX2Z1bGwoR0RLX1BSSU9SSVRZ
X1JFRFJBVywgaW50ZXJ2YWxJbk1TLCBzaGFyZWRUaW1lclRpbWVvdXRDYWxsYmFjaywgMCwgMCk7
CisgICAgZ19zb3VyY2Vfc2V0X25hbWVfYnlfaWQoc2hhcmVkVGltZXIsICJbV2ViS2l0XSBzaGFy
ZWRUaW1lclRpbWVvdXRDYWxsYmFjayIpOwogfQogCiB2b2lkIHN0b3BTaGFyZWRUaW1lcigpCiB7
Ci0gICAgZ1NoYXJlZFRpbWVyLmNhbmNlbCgpOworICAgIGlmIChzaGFyZWRUaW1lciA9PSAwKQor
ICAgICAgICByZXR1cm47CisKKyAgICBnYm9vbGVhbiByZW1vdmVkU291cmNlID0gZ19zb3VyY2Vf
cmVtb3ZlKHNoYXJlZFRpbWVyKTsKKyAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWRTb3VyY2UsIHJl
bW92ZWRTb3VyY2UpOworICAgIHNoYXJlZFRpbWVyID0gMDsKIH0KIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>