<?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>183052</bug_id>
          
          <creation_ts>2018-02-22 12:15:02 -0800</creation_ts>
          <short_desc>Remove currentTime() / currentTimeMS()</short_desc>
          <delta_ts>2018-02-22 20:19:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>mark.lam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1401500</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-22 12:15:02 -0800</bug_when>
    <thetext>Remove currentTime() / currentTimeMS()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401508</commentid>
    <comment_count>1</comment_count>
      <attachid>334466</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-22 12:23:07 -0800</bug_when>
    <thetext>Created attachment 334466
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401511</commentid>
    <comment_count>2</comment_count>
      <attachid>334466</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-22 12:42:16 -0800</bug_when>
    <thetext>Comment on attachment 334466
Patch

r=me is you fix the iOS and Ma.  Probably missing headers again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401600</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-02-22 16:48:35 -0800</bug_when>
    <thetext>(In reply to Mark Lam from comment #2)
&gt; Comment on attachment 334466 [details]
&gt; Patch
&gt; 
&gt; r=me is you fix the iOS and Ma.  Probably missing headers again.

I meant &quot;r=me if you fix the iOS and Mac build failures.&quot;  Sorry for my typos.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401610</commentid>
    <comment_count>4</comment_count>
      <attachid>334490</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-22 18:23:44 -0800</bug_when>
    <thetext>Created attachment 334490
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401612</commentid>
    <comment_count>5</comment_count>
      <attachid>334492</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-22 18:29:24 -0800</bug_when>
    <thetext>Created attachment 334492
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401621</commentid>
    <comment_count>6</comment_count>
      <attachid>334496</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-22 18:58:35 -0800</bug_when>
    <thetext>Created attachment 334496
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401639</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-02-22 20:18:24 -0800</bug_when>
    <thetext>Committed r228942: &lt;https://trac.webkit.org/changeset/228942&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1401640</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-22 20:19:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/37813853&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334466</attachid>
            <date>2018-02-22 12:23:07 -0800</date>
            <delta_ts>2018-02-22 12:42:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183052-20180223052305.patch</filename>
            <type>text/plain</type>
            <size>95745</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkNDlkYjQ5NTAzZWM3MTlhNjBjYmJk
ODU3ZjU1YjRjNDRjNWVhYzYuLjQ5OWZlZmM3ZGI2YzRlYjA3ODU1ODk1Zjc5ZTc4ZDgyY2U2OTVm
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMzcgQEAKIDIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgUmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJy
ZW50VGltZU1TKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MzA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBXVEY6OmN1cnJlbnRUaW1lKCkgYW5kIFdURjo6Y3VycmVu
dFRpbWVNUygpLgorICAgICAgICBXZSBoYXZlIGZhbmN5IFdhbGxUaW1lIEFQSXMuIEl0IGhhcyBz
dHJvbmcgdHlwZXMgbGlrZSBXYWxsVGltZSBhbmQgU2Vjb25kcywKKyAgICAgICAgYW5kIHRoaXMg
cmVkdWNlcyB0aGUgY2hhbmNlIG9mIGJ1Z3MgbWl4aW5nIGRvdWJsZXMgd2hpY2ggcmVwcmVzZW50
IG1pbGxpc2Vjb25kcworICAgICAgICBhbmQgc2Vjb25kcy4KKworICAgICAgICAqIHd0Zi9Db25k
aXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ3VycmVudFRpbWUuY3BwOgorICAgICAgICAoV1RGOjpj
dXJyZW50VGltZSk6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpub3cpOgorICAgICAgICAqIHd0
Zi9DdXJyZW50VGltZS5oOgorICAgICAgICAoV1RGOjpjdXJyZW50VGltZU1TKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAgICAgICAgKFdURjo6anNDdXJyZW50VGltZSk6
CisgICAgICAgICogd3RmL1BhcmtpbmdMb3QuY3BwOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90
OjpwYXJrQ29uZGl0aW9uYWxseUltcGwpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdU
Rjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdX
aW4uY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdCk6CisgICAg
ICAgIChXVEY6OmFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbCk6CisgICAgICAgICog
d3RmL1dhbGxUaW1lLmNwcDoKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om5vdyk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL1dhbGxUaW1lLmg6CisKKzIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgUmVtb3ZlIHNsZWVwKGRvdWJsZSkg
YW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE2ODdiZDlkZWUz
Zjg3MDgxNzkwODdjYWZjZjY4ODdkMzZjNDUxODUuLjNhNjYyMzhkMWJlMDliYmU1NzE0OGQzMjI4
Y2FjZDBhNTE0Y2E0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBAQAorMjAxOC0wMi0yMiAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUg
Y3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQ
b3NpdGlvbik6CisgICAgICAgICogZG9tL0RPTVRpbWVTdGFtcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcCk6CisgICAgICAgICogZmlsZWFwaS9GaWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZTo6bGFzdE1vZGlmaWVkIGNvbnN0KToKKyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlU2VxdWVuY2VOdW1iZXIpOgorICAgICAg
ICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3RlcFVwIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1
dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0Fn
ZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29y
a0FnZW50Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJt
aXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlRm9ybURhdGFJZGVudGlmaWVy
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmNsaWVudFJlZGlyZWN0ZWQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0hpc3Rvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZCk6CisgICAg
ICAgICogcGFnZS9IaXN0b3J5Lmg6CisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheTo6c3RhcnRGYWRlQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxh
eWVyUG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6TGVnYWN5VGlsZUxheWVy
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpkZWNheWVkQ2FwYWNpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9TeXN0ZW1NZW1vcnlJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3lzdGVtTWVtb3J5TGV2ZWwpOgorCiAyMDE4LTAyLTIyICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBXb3JrZXJDYWNoZVN0b3JhZ2VDb25uZWN0aW9u
Ojpkb1JlbW92ZSBjYW4gYXNzZXJ0IGluIGNhc2UgdHdvIGZyYW1lcyB0cnkgdG8gZGVsZXRlIHRo
ZSBzYW1lIGNhY2hlIGF0IHRoZSBzYW1lIHRpbWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGFmYmM4NTY1NDY4MjNm
YmM4ODE5ZDYzZmUxMDcyMTZlNTU3YjFlNi4uMjVjNDllYzgzNjYyM2U4YTA3NTM2MTg0ZThkZmQz
NDdhY2I4M2M1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsNSArMSw1OSBAQAogMjAxOC0wMi0yMiAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBSZW1vdmUgY3VycmVu
dFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmVDYWNoZS5jcHA6CisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaDoK
KyAgICAgICAgKiBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6c2FtcGxlV2ViS2l0IGNvbnN0KToKKyAgICAg
ICAgKiBTaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVXZWJLaXQgY29uc3QpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwOgorICAgICAgICAoV0tDb250ZXh0U2V0UGx1Z0luQXV0
b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZSk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Okljb25EYXRhYmFzZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMKToKKyAgICAgICAgKFdlYktpdDo6
SWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwpOgorICAgICAg
ICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OnBlcmZvcm1VUkxJbXBvcnQpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1Bs
dWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpleHBp
cmF0aW9uVGltZUZyb21Ob3cpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92
aWRlcjo6YWRkQXV0b1N0YXJ0T3JpZ2luSGFzaCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1
dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5IGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNU
YWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRv
U3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKToKKyAgICAgICAg
KFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNUYWJs
ZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXI6OmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnBy
b2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6c3RhcnRNZW1vcnlTYW1wbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6
OnNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRp
bWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudC5oOgorICAgICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6UGFnZUxvYWRlckNsaWVudDo6
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6d2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6bV93ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzOjppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4pOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5EZWZhdWx0SGFz
aGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNl
aXZlVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW46CisKKzIwMTgtMDIt
MjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgUmVt
b3ZlIHNsZWVwKGRvdWJsZSkgYW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhjYjRhYzU4NDBhOTYyMDk0NjEyYjk0NTA4NWRlYzY3
NTU5MzRmMDQuLmJiMDVlMGFhNDNlNWM4MjQzZTFlY2VhN2M5NTE1NWM3NDVkN2MxOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wMi0yMiAgWXVz
dWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgY3Vy
cmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lm1tOgor
ICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRS
ZWRpcmVjdCk6CisKIDIwMTgtMDItMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIEFsbG93IHNwZWNpZnlpbmcgd2hpY2ggcGx1Zy1pbnMgYXJlIHN1cHBvcnRl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDhkZWRiYjZiNmE1ZjhjNTg4NGQ3MzJi
M2UxMTdiODU0MDExMjJiYmIuLmU5NzI3NjY4ZDcwM2VjMjI4ZWY2MjE2NzA3M2NjYWVlMzBlYTg0
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0w
Mi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBS
ZW1vdmUgY3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hX
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkRvd25sb2FkLmg6CisgICAgICAgICog
V2ViRG93bmxvYWRDRk5ldC5jcHA6CisgICAgICAgIChXZWJEb3dubG9hZDo6ZGlkU3RhcnQpOgor
ICAgICAgICAoV2ViRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkRvd25s
b2FkOjpkaWRGaW5pc2gpOgorCiAyMDE4LTAyLTIxICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3Rl
YWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXVtXaW5dIFVzZSBjbWFrZWNvbmZpZy5oIHJh
dGhlciB0aGFuIGNvbmZpZy5oIGFuZCBQbGF0Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCmluZGV4IGY1MzM2
ODk1ZDQ4YTNmYzk2YTY4YjRlMDc4M2VlNTBlNjhhOWJjMjAuLjUxMmYxMGYyYWQ1M2NhZWJhODA3
OWQ2MDZmNjc2Y2M5ZmMyYzBlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlv
bi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCkBAIC0yNiw3ICsyNiw2IEBACiAj
aWZuZGVmIFdURl9Db25kaXRpb25faAogI2RlZmluZSBXVEZfQ29uZGl0aW9uX2gKIAotI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAjaW5jbHVkZSA8d3RmL1RpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZS5oPgpAQCAtMzYsMTEgKzM1LDExIEBAIG5hbWVzcGFjZSBXVEYgewogLy8gVGhpcyBp
cyBhIGNvbmRpdGlvbiB2YXJpYWJsZSB0aGF0IGlzIHN1aXRhYmxlIGZvciB1c2Ugd2l0aCBhbnkg
bG9jay1saWtlIG9iamVjdCwgaW5jbHVkaW5nCiAvLyBvdXIgb3duIFdURjo6TG9jay4gSXQgZmVh
dHVyZXMgc3RhbmRhcmQgd2FpdCgpL25vdGlmeU9uZSgpL25vdGlmeUFsbCgpIG1ldGhvZHMgaW4g
YWRkaXRpb24gdG8KIC8vIGEgdmFyaWV0eSBvZiB3YWl0LXdpdGgtdGltZW91dCBtZXRob2RzLiBU
aGlzIGluY2x1ZGVzIG1ldGhvZHMgdGhhdCB1c2UgV1RGJ3Mgb3duIG5vdGlvbiBvZgotLy8gdGlt
ZSwgbGlrZSB3YWxsLWNsb2NrIHRpbWUgKGkuZS4gY3VycmVudFRpbWUoKSkgYW5kIG1vbm90b25p
YyB0aW1lIChpLmUuCi0vLyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSkuIFRoaXMgaXMg
YSB2ZXJ5IGVmZmljaWVudCBjb25kaXRpb24gdmFyaWFibGUuIEl0IG9ubHkgcmVxdWlyZXMKLS8v
IG9uZSBieXRlIG9mIG1lbW9yeS4gbm90aWZ5T25lKCkgYW5kIG5vdGlmeUFsbCgpIHJlcXVpcmUg
anVzdCBhIGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QKLS8vIGNhc2Ugd2hlcmUgbm8gdGhy
ZWFkIGlzIHdhaXRpbmcuIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBX
VEY6OkxvY2ssIGNhbgotLy8gb3V0cGVyZm9ybSBhIHN5c3RlbSBjb25kaXRpb24gdmFyaWFibGUg
YW5kIGxvY2sgYnkgdXAgdG8gNTh4LgorLy8gdGltZSwgbGlrZSB3YWxsLWNsb2NrIHRpbWUgKGku
ZS4gV2FsbFRpbWUpIGFuZCBtb25vdG9uaWMgdGltZSAoaS5lLiBNb25vdG9uaWNUaW1lKS4gVGhp
cyBpcworLy8gYSB2ZXJ5IGVmZmljaWVudCBjb25kaXRpb24gdmFyaWFibGUuIEl0IG9ubHkgcmVx
dWlyZXMgb25lIGJ5dGUgb2YgbWVtb3J5LiBub3RpZnlPbmUoKSBhbmQKKy8vIG5vdGlmeUFsbCgp
IHJlcXVpcmUganVzdCBhIGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3aGVyZSBu
byB0aHJlYWQgaXMgd2FpdGluZy4KKy8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVz
ZWQgd2l0aCBXVEY6OkxvY2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJp
YWJsZQorLy8gYW5kIGxvY2sgYnkgdXAgdG8gNTh4LgogY2xhc3MgQ29uZGl0aW9uIHsKICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShDb25kaXRpb24pOwogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUu
Y3BwCmluZGV4IGI4OThjYmQyNzUzN2Q2NTAzNDZiMjE2OTIzZWE1NjBjNzg1MGQwYWEuLjhhYmMy
ZmYyNWUwZTFjNTIzZTgyZmUwZTQyNDg2YWE3ZDcxYTBkMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0N1cnJlbnRUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5j
cHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDdXJy
ZW50VGltZS5oIgogI2luY2x1ZGUgIk1vbm90b25pY1RpbWUuaCIKKyNpbmNsdWRlICJXYWxsVGlt
ZS5oIgogCiAjaW5jbHVkZSAiQ29uZGl0aW9uLmgiCiAjaW5jbHVkZSAiTG9jay5oIgpAQCAtMTUx
LDcgKzE1Miw3IEBAIHN0YXRpYyBib29sIHFwY0F2YWlsYWJsZSgpCiAgICAgcmV0dXJuIGF2YWls
YWJsZTsKIH0KIAotZG91YmxlIGN1cnJlbnRUaW1lKCkKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGN1
cnJlbnRUaW1lKCkKIHsKICAgICAvLyBVc2UgYSBjb21iaW5hdGlvbiBvZiBmdGltZSBhbmQgUXVl
cnlQZXJmb3JtYW5jZUNvdW50ZXIuCiAgICAgLy8gZnRpbWUgcmV0dXJucyB0aGUgaW5mb3JtYXRp
b24gd2Ugd2FudCwgYnV0IGRvZXNuJ3QgaGF2ZSBzdWZmaWNpZW50IHJlc29sdXRpb24uCkBAIC0x
OTYsNyArMTk3LDcgQEAgZG91YmxlIGN1cnJlbnRUaW1lKCkKIAogI2Vsc2UKIAotZG91YmxlIGN1
cnJlbnRUaW1lKCkKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGN1cnJlbnRUaW1lKCkKIHsKICAgICBz
dGF0aWMgYm9vbCBpbml0ID0gZmFsc2U7CiAgICAgc3RhdGljIGRvdWJsZSBsYXN0VGltZTsKQEAg
LTIyNiw3ICsyMjcsNyBAQCBkb3VibGUgY3VycmVudFRpbWUoKQogLy8gYmV0dGVyIGFjY3VyYWN5
IGNvbXBhcmVkIHdpdGggV2luZG93cyBpbXBsZW1lbnRhdGlvbiBvZiBnX2dldF9jdXJyZW50X3Rp
bWU6CiAvLyAoaHR0cDovL3d3dy5nb29nbGUuY29tL2NvZGVzZWFyY2gvcD9obD1lbiNISG5OUmpr
czF0MC9nbGliLTIuNS4yL2dsaWIvZ21haW4uYyZxPWdfZ2V0X2N1cnJlbnRfdGltZSkuCiAvLyBO
b24tV2luZG93cyBHVEsgYnVpbGRzIGNvdWxkIHVzZSBnZXR0aW1lb2ZkYXkoKSBkaXJlY3RseSBi
dXQgZm9yIHRoZSBzYWtlIG9mIGNvbnNpc3RlbmN5IGxldHMgdXNlIEdUSyBmdW5jdGlvbi4KLWRv
dWJsZSBjdXJyZW50VGltZSgpCitzdGF0aWMgaW5saW5lIGRvdWJsZSBjdXJyZW50VGltZSgpCiB7
CiAgICAgR1RpbWVWYWwgbm93OwogICAgIGdfZ2V0X2N1cnJlbnRfdGltZSgmbm93KTsKQEAgLTIz
NSw3ICsyMzYsNyBAQCBkb3VibGUgY3VycmVudFRpbWUoKQogCiAjZWxzZQogCi1kb3VibGUgY3Vy
cmVudFRpbWUoKQorc3RhdGljIGlubGluZSBkb3VibGUgY3VycmVudFRpbWUoKQogewogICAgIHN0
cnVjdCB0aW1ldmFsIG5vdzsKICAgICBnZXR0aW1lb2ZkYXkoJm5vdywgMCk7CkBAIC0yNDQsNiAr
MjQ1LDExIEBAIGRvdWJsZSBjdXJyZW50VGltZSgpCiAKICNlbmRpZgogCitXYWxsVGltZSBXYWxs
VGltZTo6bm93KCkKK3sKKyAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoY3VycmVudFRpbWUoKSk7
Cit9CisKICNpZiBVU0UoR0xJQikKIAogZG91YmxlIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGlt
ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5oIGIvU291cmNlL1dU
Ri93dGYvQ3VycmVudFRpbWUuaAppbmRleCBhZWVhNzBmMzE0MTBlMWY2ZmJmNGM5MDI4ZjQzMTA3
MWI4NTliMjMzLi5iM2U2YzE0NmQxY2E0MDdhOTI5NzVkNDcyNTZmNjlmZDYwOTI4YmI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5oCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L0N1cnJlbnRUaW1lLmgKQEAgLTM3LDE5ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXVEYgewogCi0v
LyBSZXR1cm5zIHRoZSBjdXJyZW50IFVUQyB0aW1lIGluIHNlY29uZHMsIGNvdW50ZWQgZnJvbSBK
YW51YXJ5IDEsIDE5NzAuCi0vLyBQcmVjaXNpb24gdmFyaWVzIGRlcGVuZGluZyBvbiBwbGF0Zm9y
bSBidXQgaXMgdXN1YWxseSBhcyBnb29kIG9yIGJldHRlcgotLy8gdGhhbiBhIG1pbGxpc2Vjb25k
LgotLy8gVXNlIHRoaXMgZnVuY3Rpb24gb25seSBpZiB3YWxsIGNsb2NrIHRpbWUgaXMgbmVlZGVk
LiBGb3IgZWxhcHNlZCB0aW1lCi0vLyBtZWFzdXJlbWVudCB1c2UgbW9ub3RvbmljYWxseUluY3Jl
YXNpbmdUaW1lKCkgaW5zdGVhZC4KLVdURl9FWFBPUlRfUFJJVkFURSBkb3VibGUgY3VycmVudFRp
bWUoKTsKLQotLy8gU2FtZSB0aGluZywgaW4gbWlsbGlzZWNvbmRzLgotaW5saW5lIGRvdWJsZSBj
dXJyZW50VGltZU1TKCkKLXsKLSAgICByZXR1cm4gY3VycmVudFRpbWUoKSAqIDEwMDAuMDsKLX0K
LQogLy8gUHJvdmlkZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgdGltZSBpbiBzZWNvbmRz
IHNpbmNlIGFuIGFyYml0cmFyeSBwb2ludCBpbiB0aGUgcGFzdC4KIC8vIE9uIHVuc3VwcG9ydGVk
IHBsYXRmb3JtcywgdGhpcyBmdW5jdGlvbiBvbmx5IGd1YXJhbnRlZXMgdGhlIHJlc3VsdCB3aWxs
IGJlIG5vbi1kZWNyZWFzaW5nLgogLy8gUmVzdWx0IG9mIHRoaXMgZnVuY3Rpb24gaW5jcmVhc2Vz
IG1vbm90b25pY2FsbHkgZXZlbiB3aGVuIGNsb2NrIHRpbWUgZ29lcyBiYWNrIGR1ZSB0bwpAQCAt
NzEsOCArNTgsNiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzbGVlcChTZWNvbmRzKTsKIH0g
Ly8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmN1cnJlbnRDUFVUaW1lOwotdXNpbmcgV1RG
OjpjdXJyZW50VGltZTsKLXVzaW5nIFdURjo6Y3VycmVudFRpbWVNUzsKIHVzaW5nIFdURjo6bW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lOwogdXNpbmcgV1RGOjptb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWVNUzsKIHVzaW5nIFdURjo6c2xlZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9EYXRlTWF0aC5oIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAppbmRleCBhZmZiNTU4Njkx
NGNlMzY1ZTRhOWFhYTMwYzU3OGY1MTcyY2ExYWI2Li4zZTI5MTY2ZmZlYmNjNTczOTJiMmNlMTdi
ZWFmYTA3NzIwMzllZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKQEAgLTQ3LDcgKzQ3LDcgQEAKICNpbmNsdWRl
IDxzdGRpbnQuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx0aW1lLmg+Ci0jaW5j
bHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtOTgsNyAr
OTgsNyBAQCBTdHJpbmcgbWFrZVJGQzI4MjJEYXRlU3RyaW5nKHVuc2lnbmVkIGRheU9mV2Vlaywg
dW5zaWduZWQgZGF5LCB1bnNpZ25lZCBtb250aCwgdQogaW5saW5lIGRvdWJsZSBqc0N1cnJlbnRU
aW1lKCkKIHsKICAgICAvLyBKYXZhU2NyaXB0IGRvZXNuJ3QgcmVjb2duaXplIGZyYWN0aW9ucyBv
ZiBhIG1pbGxpc2Vjb25kLgotICAgIHJldHVybiBmbG9vcihXVEY6OmN1cnJlbnRUaW1lTVMoKSk7
CisgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1p
bGxpc2Vjb25kcygpKTsKIH0KIAogY29uc3QgY2hhciogY29uc3Qgd2Vla2RheU5hbWVbN10gPSB7
ICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIsICJTdW4iIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1Bh
cmtpbmdMb3QuY3BwCmluZGV4IGIxNGQ3YTJjZGVkOGY1ZWQzZDM0MDJmNzg4MGQzNzE2MjY4OWU4
YjguLjhhNWVjOGQxMWQwNDM5ODQ0ZTE5MDc3ZjczODMxYTZlZTQ4N2U1OTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Bhcmtp
bmdMb3QuY3BwCkBAIC01OTUsNyArNTk1LDcgQEAgTkVWRVJfSU5MSU5FIFBhcmtpbmdMb3Q6OlBh
cmtSZXN1bHQgUGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHlJbXBsKAogICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsKICAgICAgICAgd2hpbGUgKG1lLT5hZGRy
ZXNzICYmIHRpbWVvdXQubm93V2l0aFNhbWVDbG9jaygpIDwgdGltZW91dCkgewogICAgICAgICAg
ICAgbWUtPnBhcmtpbmdDb25kaXRpb24udGltZWRXYWl0KAotICAgICAgICAgICAgICAgIG1lLT5w
YXJraW5nTG9jaywgdGltZW91dC5hcHByb3hpbWF0ZVdhbGxUaW1lKCkuc2Vjb25kc1NpbmNlRXBv
Y2goKS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtZS0+cGFya2luZ0xvY2ssIHRpbWVvdXQu
YXBwcm94aW1hdGVXYWxsVGltZSgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSXQn
cyBwb3NzaWJsZSBmb3IgdGhlIE9TIHRvIGRlY2lkZSBub3QgdG8gd2FpdC4gSWYgaXQgZG9lcyB0
aGF0IHRoZW4gaXQgd2lsbCBhbHNvCiAgICAgICAgICAgICAvLyBkZWNpZGUgbm90IHRvIHJlbGVh
c2UgdGhlIGxvY2suIElmIHRoZXJlJ3MgYSBidWcgaW4gdGhlIHRpbWUgbWF0aCwgdGhlbiB0aGlz
IGNvdWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgg
Yi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgKaW5kZXggNGFjZTI4ZjFmNTlm
ODg2OTcwOTEwMDhhMGEwYjEyMDEwYzk3NjJjMS4uMjhmNDc5YmU2NTNkYjM5NTA4ZmMzZGNjMzJi
NGE5NmI5NjhiZGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHJpbWl0
aXZlcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL0xv
Y2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogCiAjaWYgT1MoV0lORE9XUykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CkBAIC0xMDAs
OCArMTAxLDcgQEAgY2xhc3MgVGhyZWFkQ29uZGl0aW9uIHsKICAgICAKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCB3YWl0KE11dGV4JiBtdXRleCk7CiAgICAgLy8gUmV0dXJucyB0cnVlIGlm
IHRoZSBjb25kaXRpb24gd2FzIHNpZ25hbGVkIGJlZm9yZSBhYnNvbHV0ZVRpbWUsIGZhbHNlIGlm
IHRoZSBhYnNvbHV0ZVRpbWUgd2FzIHJlYWNoZWQgb3IgaXMgaW4gdGhlIHBhc3QuCi0gICAgLy8g
VGhlIGFic29sdXRlVGltZSBpcyBpbiBzZWNvbmRzLCBzdGFydGluZyBvbiBKYW51YXJ5IDEsIDE5
NzAuIFRoZSB0aW1lIGlzIGFzc3VtZWQgdG8gdXNlIHRoZSBzYW1lIHRpbWUgem9uZSBhcyBXVEY6
OmN1cnJlbnRUaW1lKCkuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgdGltZWRXYWl0KE11
dGV4JiwgZG91YmxlIGFic29sdXRlVGltZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wg
dGltZWRXYWl0KE11dGV4JiwgV2FsbFRpbWUgYWJzb2x1dGVUaW1lKTsKICAgICBXVEZfRVhQT1JU
X1BSSVZBVEUgdm9pZCBzaWduYWwoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBicm9h
ZGNhc3QoKTsKICAgICAKQEAgLTExMCw5ICsxMTAsOCBAQCBjbGFzcyBUaHJlYWRDb25kaXRpb24g
ewogfTsKIAogI2lmIE9TKFdJTkRPV1MpCi0vLyBUaGUgYWJzb2x1dGVUaW1lIGlzIGluIHNlY29u
ZHMsIHN0YXJ0aW5nIG9uIEphbnVhcnkgMSwgMTk3MC4gVGhlIHRpbWUgaXMgYXNzdW1lZCB0byB1
c2UgdGhlIHNhbWUgdGltZSB6b25lIGFzIFdURjo6Y3VycmVudFRpbWUoKS4KIC8vIFJldHVybnMg
YW4gaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRvIG9uZSBv
ZiB0aGUgV2luMzIgd2FpdCBmdW5jdGlvbnMgKGUuZy4sIDo6V2FpdEZvclNpbmdsZU9iamVjdCku
Ci1XVEZfRVhQT1JUX1BSSVZBVEUgRFdPUkQgYWJzb2x1dGVUaW1lVG9XYWl0VGltZW91dEludGVy
dmFsKGRvdWJsZSBhYnNvbHV0ZVRpbWUpOworV1RGX0VYUE9SVF9QUklWQVRFIERXT1JEIGFic29s
dXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbChXYWxsVGltZSBhYnNvbHV0ZVRpbWUpOwogI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhy
ZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3Bw
CmluZGV4IGIyY2E3N2RlOWUzYTYxNWJjMmEzYzE2ZDU3Y2IxOTAwZWE5Mzg2MTAuLmExMDU5NGJm
NDExMmZiODU5OGFmY2Q0OTMxZmMyNTdmNjQ0MGI3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQ
dGhyZWFkcy5jcHAKQEAgLTU0OSwxOCArNTQ5LDIwIEBAIHZvaWQgVGhyZWFkQ29uZGl0aW9uOjp3
YWl0KE11dGV4JiBtdXRleCkKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgIXJlc3VsdCk7CiB9
CiAKLWJvb2wgVGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoTXV0ZXgmIG11dGV4LCBkb3VibGUg
YWJzb2x1dGVUaW1lKQorYm9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdChNdXRleCYgbXV0
ZXgsIFdhbGxUaW1lIGFic29sdXRlVGltZSkKIHsKLSAgICBpZiAoYWJzb2x1dGVUaW1lIDwgY3Vy
cmVudFRpbWUoKSkKKyAgICBpZiAoYWJzb2x1dGVUaW1lIDwgV2FsbFRpbWU6Om5vdygpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoYWJzb2x1dGVUaW1lID4gSU5UX01BWCkgewor
ICAgIGlmIChhYnNvbHV0ZVRpbWUgPiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoSU5UX01BWCkp
IHsKICAgICAgICAgd2FpdChtdXRleCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAot
ICAgIGludCB0aW1lU2Vjb25kcyA9IHN0YXRpY19jYXN0PGludD4oYWJzb2x1dGVUaW1lKTsKLSAg
ICBpbnQgdGltZU5hbm9zZWNvbmRzID0gc3RhdGljX2Nhc3Q8aW50PigoYWJzb2x1dGVUaW1lIC0g
dGltZVNlY29uZHMpICogMUU5KTsKKyAgICBkb3VibGUgcmF3U2Vjb25kcyA9IGFic29sdXRlVGlt
ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CisKKyAgICBpbnQgdGltZVNlY29uZHMgPSBz
dGF0aWNfY2FzdDxpbnQ+KHJhd1NlY29uZHMpOworICAgIGludCB0aW1lTmFub3NlY29uZHMgPSBz
dGF0aWNfY2FzdDxpbnQ+KChyYXdTZWNvbmRzIC0gdGltZVNlY29uZHMpICogMUU5KTsKIAogICAg
IHRpbWVzcGVjIHRhcmdldFRpbWU7CiAgICAgdGFyZ2V0VGltZS50dl9zZWMgPSB0aW1lU2Vjb25k
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IGE1ZGJiZGVkYjQ5YmM1NjRmNDhmYTg1NzQz
ZmIzM2ZmODdmM2U1Y2EuLjRhNTU0NDNkN2RhYjY0OGI4NTk2NWMzOGJlZGJiZmQwMTZhMmZkNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKKysrIGIvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgVGhyZWFk
Q29uZGl0aW9uOjp3YWl0KE11dGV4JiBtdXRleCkKICAgICBtX2NvbmRpdGlvbi50aW1lZFdhaXQo
bXV0ZXguaW1wbCgpLCBJTkZJTklURSk7CiB9CiAKLWJvb2wgVGhyZWFkQ29uZGl0aW9uOjp0aW1l
ZFdhaXQoTXV0ZXgmIG11dGV4LCBkb3VibGUgYWJzb2x1dGVUaW1lKQorYm9vbCBUaHJlYWRDb25k
aXRpb246OnRpbWVkV2FpdChNdXRleCYgbXV0ZXgsIFdhbGxUaW1lIGFic29sdXRlVGltZSkKIHsK
ICAgICBEV09SRCBpbnRlcnZhbCA9IGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbChh
YnNvbHV0ZVRpbWUpOwogCkBAIC01NzUsMTkgKzU3NSwxOSBAQCB2b2lkIFRocmVhZENvbmRpdGlv
bjo6YnJvYWRjYXN0KCkKICAgICBtX2NvbmRpdGlvbi5zaWduYWwodHJ1ZSk7IC8vIFVuYmxvY2sg
YWxsIHRocmVhZHMuCiB9CiAKLURXT1JEIGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZh
bChkb3VibGUgYWJzb2x1dGVUaW1lKQorRFdPUkQgYWJzb2x1dGVUaW1lVG9XYWl0VGltZW91dElu
dGVydmFsKFdhbGxUaW1lIGFic29sdXRlVGltZSkKIHsKLSAgICBkb3VibGUgY3VycmVudFRpbWUg
PSBXVEY6OmN1cnJlbnRUaW1lKCk7CisgICAgV2FsbFRpbWUgY3VycmVudFRpbWUgPSBXYWxsVGlt
ZTo6bm93KCk7CiAKICAgICAvLyBUaW1lIGlzIGluIHRoZSBwYXN0IC0gcmV0dXJuIGltbWVkaWF0
ZWx5LgogICAgIGlmIChhYnNvbHV0ZVRpbWUgPCBjdXJyZW50VGltZSkKICAgICAgICAgcmV0dXJu
IDA7CiAKICAgICAvLyBUaW1lIGlzIHRvbyBmYXIgaW4gdGhlIGZ1dHVyZSAoYW5kIHdvdWxkIG92
ZXJmbG93IHVuc2lnbmVkIGxvbmcpIC0gd2FpdCBmb3JldmVyLgotICAgIGlmIChhYnNvbHV0ZVRp
bWUgLSBjdXJyZW50VGltZSA+IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UX01BWCkgLyAxMDAwLjAp
CisgICAgaWYgKChhYnNvbHV0ZVRpbWUgLSBjdXJyZW50VGltZSkgPiBTZWNvbmRzOjpmcm9tTWls
bGlzZWNvbmRzKElOVF9NQVgpKQogICAgICAgICByZXR1cm4gSU5GSU5JVEU7CiAKLSAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RFdPUkQ+KChhYnNvbHV0ZVRpbWUgLSBjdXJyZW50VGltZSkgKiAxMDAw
LjApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEV09SRD4oKGFic29sdXRlVGltZSAtIGN1cnJl
bnRUaW1lKS5taWxsaXNlY29uZHMoKSk7CiB9CiAKIC8vIFJlbW92ZSB0aGlzIHdvcmthcm91bmQg
Y29kZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS8zMTc5MzIxMz4gaXMgZml4ZWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5j
cHAKaW5kZXggMTYyMmFiM2M2YzIzZGZlMGIzY2RhZmIyYmQ3YjZjMjRlOTllM2U3ZC4uYjdiYzlk
YjBiYzc3MmQzMjJhYTk2NGMzMDcxNDRjOGNmYzA5ODRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvV2FsbFRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcApAQCAt
MjYsMTggKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2FsbFRpbWUu
aCIKIAotI2luY2x1ZGUgIkN1cnJlbnRUaW1lLmgiCiAjaW5jbHVkZSAiTW9ub3RvbmljVGltZS5o
IgogI2luY2x1ZGUgIlByaW50U3RyZWFtLmgiCiAjaW5jbHVkZSAiVGltZVdpdGhEeW5hbWljQ2xv
Y2tUeXBlLmgiCiAKIG5hbWVzcGFjZSBXVEYgewogCi1XYWxsVGltZSBXYWxsVGltZTo6bm93KCkK
LXsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoY3VycmVudFRpbWUoKSk7Ci19Ci0KIE1vbm90
b25pY1RpbWUgV2FsbFRpbWU6OmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuICp0aGlzIC0gbm93KCkgKyBNb25vdG9uaWNUaW1lOjpub3coKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5o
CmluZGV4IDkwYWEwOTFkMmU3YWZkOTNmNzM0YmVlZTg1M2Q3MjU4ZDg4MDY5OWMuLmJmNjYyMDEw
OTBmMzMxZmZmZWI2YTc2NTJmNDEzZjM1YTllMjlkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1dhbGxUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaApAQCAtMzcsOCAr
MzcsOCBAQCBjbGFzcyBQcmludFN0cmVhbTsKIC8vIFRoZSBjdXJyZW50IHRpbWUgYWNjb3JkaW5n
IHRvIGEgd2FsbCBjbG9jayAoYWthIHJlYWwgdGltZSBjbG9jaykuIFRoaXMgdXNlcyBmbG9hdGlu
ZyBwb2ludAogLy8gaW50ZXJuYWxseSBzbyB0aGF0IHlvdSBjYW4gcmVhc29uIGFib3V0IGluZmlu
aXR5IGFuZCBvdGhlciB0aGluZ3MgdGhhdCBhcmlzZSBpbiBtYXRoLiBJdCdzCiAvLyBhY2NlcHRh
YmxlIHRvIHVzZSB0aGlzIHRvIHdyYXAgTmFOIHRpbWVzLCBuZWdhdGl2ZSB0aW1lcywgYW5kIGlu
ZmluaXRlIHRpbWVzLCBzbyBsb25nIGFzIHRoZXkKLS8vIGFyZSByZWxhdGl2ZSB0byB0aGUgc2Ft
ZSBjbG9jay4gU3BlY2lmaWNhbGx5LCBXYWxsVGltZSBzaG91bGQgYmUgdXNlZCBpbiBhZ3JlZW1l
bnQgd2l0aCB0aGUKLS8vIHByaW5jaXBsZSB0aGF0IFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCkgaXMgdGhlIHNhbWUgYXMgV1RGOjpjdXJyZW50VGltZSgpLgorLy8g
YXJlIHJlbGF0aXZlIHRvIHRoZSBzYW1lIGNsb2NrLiBVc2UgdGhpcyBvbmx5IGlmIHdhbGwgY2xv
Y2sgdGltZSBpcyBuZWVkZWQuIEZvciBlbGFwc2VkIHRpbWUKKy8vIG1lYXN1cmVtZW50IHVzZSBN
b25vdG9uaWNUaW1lIGluc3RlYWQuCiBjbGFzcyBXYWxsVGltZSB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIGNvbnN0IENsb2NrVHlwZSBjbG9ja1R5cGUgPSBDbG9ja1R5cGU6OldhbGw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCmluZGV4
IGRiZWVkZjFkMDk3MjkyNTZiMDIwZGNlNmQ3OWVlNjYwMjUzYjA3ZTQuLjY4ZjVhODExNDk5Zjgx
NDg0MTk5MjE5MWMzMmJmZDFiNjUyYzNlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC00NjgsNyArNDY4LDcgQEAgYm9v
bCBHZW9sb2NhdGlvbjo6aGF2ZVN1aXRhYmxlQ2FjaGVkUG9zaXRpb24oY29uc3QgUG9zaXRpb25P
cHRpb25zJiBvcHRpb25zKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFvcHRpb25z
Lm1heGltdW1BZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBET01UaW1lU3RhbXAgY3Vy
cmVudFRpbWVNaWxsaXMgPSBjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJlbnRUaW1l
KCkpOworICAgIERPTVRpbWVTdGFtcCBjdXJyZW50VGltZU1pbGxpcyA9IGNvbnZlcnRTZWNvbmRz
VG9ET01UaW1lU3RhbXAoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkpOwogICAg
IHJldHVybiBjYWNoZWRQb3NpdGlvbi0+dGltZXN0YW1wKCkgPiBjdXJyZW50VGltZU1pbGxpcyAt
IG9wdGlvbnMubWF4aW11bUFnZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RPTVRpbWVTdGFtcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVRpbWVTdGFtcC5oCmluZGV4
IGVlMjE4NzVhOTRkODdlOTNkOWM4Yzg4MjQ0ZDZiMDg2ZGQ0MjJjYjYuLjg5ZjRjYmY5N2M4NTEx
MjkyZDEyNTcwZjFhZWY3ZDM5ZDliNWQ1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9ET01UaW1lU3RhbXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NVGltZVN0YW1wLmgK
QEAgLTMwLDYgKzMwLDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYvU2Vjb25k
cy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n
IERPTVRpbWVTdGFtcDsKQEAgLTM5LDYgKzQxLDExIEBAIGlubGluZSBET01UaW1lU3RhbXAgY29u
dmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChkb3VibGUgc2Vjb25kcykKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RE9NVGltZVN0YW1wPihzZWNvbmRzICogMTAwMC4wKTsKIH0KIAoraW5saW5lIERP
TVRpbWVTdGFtcCBjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKFNlY29uZHMgc2Vjb25kcykK
K3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NVGltZVN0YW1wPihzZWNvbmRzLm1pbGxpc2Vj
b25kcygpKTsKK30KKwogaW5saW5lIGRvdWJsZSBjb252ZXJ0RE9NVGltZVN0YW1wVG9TZWNvbmRz
KERPTVRpbWVTdGFtcCBtaWxsaXNlY29uZHMpCiB7CiAgICAgcmV0dXJuIG1pbGxpc2Vjb25kcyAv
IDEwMDAuMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IDAyNjFhMGZkMDAyYTNlZmIxNjli
ZjJiMDc5MjVjZTk2MDUzM2IxYTguLmFkMTBiZGNlYTZkYjRiNGI0YWU3ZDY1N2UzZjk2NGQxYmZh
N2EzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtODEsNyArODEsNyBAQCBzdGF0aWMg
QmxvYlByb3BlcnR5QmFnIGNvbnZlcnRQcm9wZXJ0eUJhZyhjb25zdCBGaWxlOjpQcm9wZXJ0eUJh
ZyYgaW5pdGlhbEJhZykKIEZpbGU6OkZpbGUoVmVjdG9yPEJsb2JQYXJ0VmFyaWFudD4mJiBibG9i
UGFydFZhcmlhbnRzLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBQcm9wZXJ0eUJhZyYg
cHJvcGVydHlCYWcpCiAgICAgOiBCbG9iKFdURk1vdmUoYmxvYlBhcnRWYXJpYW50cyksIGNvbnZl
cnRQcm9wZXJ0eUJhZyhwcm9wZXJ0eUJhZykpCiAgICAgLCBtX25hbWUoZmlsZW5hbWUpCi0gICAg
LCBtX292ZXJyaWRlTGFzdE1vZGlmaWVkRGF0ZShwcm9wZXJ0eUJhZy5sYXN0TW9kaWZpZWQudmFs
dWVfb3IoY3VycmVudFRpbWVNUygpKSkKKyAgICAsIG1fb3ZlcnJpZGVMYXN0TW9kaWZpZWREYXRl
KHByb3BlcnR5QmFnLmxhc3RNb2RpZmllZC52YWx1ZV9vcihXYWxsVGltZTo6bm93KCkuc2Vjb25k
c1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKSkpCiB7CiB9CiAKQEAgLTExNiw3ICsxMTYsNyBA
QCBkb3VibGUgRmlsZTo6bGFzdE1vZGlmaWVkKCkgY29uc3QKICAgICBpZiAoRmlsZVN5c3RlbTo6
Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUobV9wYXRoLCBtb2RpZmljYXRpb25UaW1lKSAmJiBGaWxl
U3lzdGVtOjppc1ZhbGlkRmlsZVRpbWUobW9kaWZpY2F0aW9uVGltZSkpCiAgICAgICAgIHJlc3Vs
dCA9IG1vZGlmaWNhdGlvblRpbWUgKiBtc1BlclNlY29uZDsKICAgICBlbHNlCi0gICAgICAgIHJl
c3VsdCA9IGN1cnJlbnRUaW1lKCkgKiBtc1BlclNlY29uZDsKKyAgICAgICAgcmVzdWx0ID0gV2Fs
bFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiAKICAgICBy
ZXR1cm4gV1RGOjp0aW1lQ2xpcChyZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3Rv
cnlJdGVtLmNwcAppbmRleCBhODY2MTg1MjMxOGU5MjUzY2ZjYjJmNmZhOGYzNDhiNTg0NDc2NzZi
Li42YzMwMzRjYWUwMjUwNzNkNDhiMjA5MTY3NDJlYzk0ZGFhMzZkYzhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtMzQsOCArMzQsOCBAQAogI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1
ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L0RhdGVNYXRoLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw3ICs0NCw3IEBAIHN0
YXRpYyBsb25nIGxvbmcgZ2VuZXJhdGVTZXF1ZW5jZU51bWJlcigpCiB7CiAgICAgLy8gSW5pdGlh
bGl6ZSB0byB0aGUgY3VycmVudCB0aW1lIHRvIHJlZHVjZSB0aGUgbGlrZWxpaG9vZCBvZiBnZW5l
cmF0aW5nCiAgICAgLy8gaWRlbnRpZmllcnMgdGhhdCBvdmVybGFwIHdpdGggdGhvc2UgZnJvbSBw
YXN0L2Z1dHVyZSBicm93c2VyIHNlc3Npb25zLgotICAgIHN0YXRpYyBsb25nIGxvbmcgbmV4dCA9
IHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oY3VycmVudFRpbWUoKSAqIDEwMDAwMDAuMCk7CisgICAg
c3RhdGljIGxvbmcgbG9uZyBuZXh0ID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihXYWxsVGltZTo6
bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWNyb3NlY29uZHMoKSk7CiAgICAgcmV0dXJuICsr
bmV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1
dFR5cGUuY3BwCmluZGV4IDNiYzlkNWNkYWM1NDQyODIzOGQ0Mzg4OWE3MzNiODMwNmE2MmMyMTMu
LmRhMGNiMDRiY2RkNmVkMGFmZGQ0ZjdiNDUxMDkwMDM5Njk2NmM1YzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTg2LDcgKzg2
LDcgQEAgYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaCgpIGNvbnN0
CiAKIERlY2ltYWwgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVw
VXAoKSBjb25zdAogewotICAgIGRvdWJsZSBtcyA9IGN1cnJlbnRUaW1lTVMoKTsKKyAgICBkb3Vi
bGUgbXMgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMo
KTsKICAgICBpbnQgb2Zmc2V0ID0gY2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KG1zKS5vZmZzZXQg
LyBtc1Blck1pbnV0ZTsKICAgICByZXR1cm4gRGVjaW1hbDo6ZnJvbURvdWJsZShtcyArIChvZmZz
ZXQgKiBtc1Blck1pbnV0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRU
eXBlLmNwcAppbmRleCA0N2VkOGVhNTNlYTk1OTdiOTllYWFkMzI3NmIxNmU4YTNiZmNhNTEyLi5i
MmZjMDE2MDA0NTkxNDAxMTVmNWMyZmExYzc2NTdlZGY5OTFkMjY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcApAQCAtNTgsNyArNTgsNyBAQCBEYXRlQ29tcG9u
ZW50czo6VHlwZSBEYXRlVGltZUlucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogCiBEZWNpbWFs
IERhdGVUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogewotICAg
IHJldHVybiBEZWNpbWFsOjpmcm9tRG91YmxlKGN1cnJlbnRUaW1lTVMoKSk7CisgICAgcmV0dXJu
IERlY2ltYWw6OmZyb21Eb3VibGUoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCku
bWlsbGlzZWNvbmRzKCkpOwogfQogCiBTdGVwUmFuZ2UgRGF0ZVRpbWVJbnB1dFR5cGU6OmNyZWF0
ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA5ODZkNDY4NDEzNzljNWEwOWNiNTA2
ODE4ODRkMTA2ZGFlNmQxY2VhLi41N2Y2NjhjYWM4YzYyZThlOGI3M2M0YmY4ZDIzNTJhYTAxMTgz
ODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtNzgsNyArNzgs
NyBAQCBTdHJpbmcgTW9udGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdpdGhNaWxsaXNlY29uZHMoZG91
YmxlIHZhbHVlKSBjb25zdAogCiBEZWNpbWFsIE1vbnRoSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVG
b3JTdGVwVXAoKSBjb25zdAogewotICAgIGRvdWJsZSBjdXJyZW50ID0gY3VycmVudFRpbWVNUygp
OworICAgIGRvdWJsZSBjdXJyZW50ID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2No
KCkubWlsbGlzZWNvbmRzKCk7CiAgICAgaW50IG9mZnNldCA9IGNhbGN1bGF0ZUxvY2FsVGltZU9m
ZnNldChjdXJyZW50KS5vZmZzZXQgLyBtc1Blck1pbnV0ZTsKICAgICBjdXJyZW50ICs9IG9mZnNl
dCAqIG1zUGVyTWludXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRl
eCA1ODBlZjIzNDVmMWVlOWMyNThmYzQ0ZTQ1NGU2ZmUxZWUxOWYwOWQ3Li44ZGI5NDJkNTk4ZGU1
M2ZkYzcwYTkxMzdiZGJlNDMwNmQ3MWZlYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgRGF0ZUNvbXBvbmVudHM6OlR5cGUgVGltZUlucHV0
VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogCiBEZWNpbWFsIFRpbWVJbnB1dFR5cGU6OmRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiB7Ci0gICAgZG91YmxlIGN1cnJlbnQgPSBjdXJyZW50VGlt
ZU1TKCk7CisgICAgZG91YmxlIGN1cnJlbnQgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNl
RXBvY2goKS5taWxsaXNlY29uZHMoKTsKICAgICBpbnQgb2Zmc2V0ID0gY2FsY3VsYXRlTG9jYWxU
aW1lT2Zmc2V0KGN1cnJlbnQpLm9mZnNldCAvIG1zUGVyTWludXRlOwogICAgIGN1cnJlbnQgKz0g
b2Zmc2V0ICogbXNQZXJNaW51dGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCAxNmU4MjU1OWIz
NDM3NTdmYmJiMGQ1MjkzMDNhMjRhMzU1MmY3YjQxLi5iYmYzNTExNGFlMjYyZWZlZTZhNjhmNGI2
YzY0YTY5MGFkYTU0OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC0zNTEsNyArMzUxLDcgQEAg
dm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25lZCBsb25n
IGlkZW50aWZpZXIsIERvY3VtZW50TG8KICAgICB9CiAKICAgICBkb3VibGUgc2VuZFRpbWVzdGFt
cCA9IHRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSB3YWxsdGltZSA9IGN1cnJlbnRUaW1lKCk7Cisg
ICAgV2FsbFRpbWUgd2FsbHRpbWUgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICBTdHJpbmcgcmVx
dWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7CiAgICAg
U3RyaW5nIGZyYW1lSWQgPSBmcmFtZUlkZW50aWZpZXIobG9hZGVyKTsKQEAgLTM4NCw3ICszODQs
NyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMbwogICAgIGF1dG8gaW5pdGlhdG9yT2JqZWN0ID0g
YnVpbGRJbml0aWF0b3JPYmplY3QoZG9jdW1lbnQpOwogCiAgICAgU3RyaW5nIHVybCA9IGxvYWRl
ciA/IGxvYWRlci0+dXJsKCkuc3RyaW5nKCkgOiByZXF1ZXN0LnVybCgpOwotICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIGZyYW1lSWQsIGxvYWRl
cklkLCB1cmwsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBzZW5kVGlt
ZXN0YW1wLCB3YWxsdGltZSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJlc291cmNl
UmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSwgbnVsbHB0ciksIHR5cGUgIT0gSW5zcGVjdG9yUGFn
ZUFnZW50OjpPdGhlclJlc291cmNlID8gJnByb3RvY29sUmVzb3VyY2VUeXBlIDogbnVsbHB0ciwg
dGFyZ2V0SWQuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0YXJnZXRJZCk7CisgICAgbV9mcm9udGVu
ZERpc3BhdGNoZXItPnJlcXVlc3RXaWxsQmVTZW50KHJlcXVlc3RJZCwgZnJhbWVJZCwgbG9hZGVy
SWQsIHVybCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIHNlbmRUaW1l
c3RhbXAsIHdhbGx0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpLCBpbml0aWF0b3JP
YmplY3QsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlLCBu
dWxscHRyKSwgdHlwZSAhPSBJbnNwZWN0b3JQYWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2UgPyAmcHJv
dG9jb2xSZXNvdXJjZVR5cGUgOiBudWxscHRyLCB0YXJnZXRJZC5pc0VtcHR5KCkgPyBudWxscHRy
IDogJnRhcmdldElkKTsKIH0KIAogc3RhdGljIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVzb3VyY2VU
eXBlIHJlc291cmNlVHlwZUZvckNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiByZXNvdXJj
ZSkKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbFNl
bmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbgogICAgIGF1dG8g
cmVxdWVzdE9iamVjdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OldlYlNvY2tldFJl
cXVlc3Q6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRIZWFkZXJzKGJ1aWxkT2JqZWN0Rm9ySGVhZGVy
cyhyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkpCiAgICAgICAgIC5yZWxlYXNlKCk7Ci0gICAg
bV9mcm9udGVuZERpc3BhdGNoZXItPndlYlNvY2tldFdpbGxTZW5kSGFuZHNoYWtlUmVxdWVzdChJ
ZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgdGltZXN0YW1wKCksIGN1
cnJlbnRUaW1lKCksIFdURk1vdmUocmVxdWVzdE9iamVjdCkpOworICAgIG1fZnJvbnRlbmREaXNw
YXRjaGVyLT53ZWJTb2NrZXRXaWxsU2VuZEhhbmRzaGFrZVJlcXVlc3QoSWRlbnRpZmllcnNGYWN0
b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIHRpbWVzdGFtcCgpLCBXYWxsVGltZTo6bm93KCku
c2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIFdURk1vdmUocmVxdWVzdE9iamVjdCkpOwog
fQogCiB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRz
aGFrZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3VyY2VSZXNw
b25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlG
cmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2Fk
ZXJDbGllbnQuaAppbmRleCBlOGQzMzkwMTFjNGRjOWM3YWZmMjI1YWMyMDY4OTUzNGRiYmRjYWQz
Li5lZjM4ZmE0ZTMzN2M2Njc0MWQ0YTQyNzM4YWQxN2VkNTZiM2I4OTAxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTc1LDcgKzc1LDcg
QEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBG
cmFtZUxvYWRlckNsaWVudCB7CiAgICAgdm9pZCBkaXNwYXRjaERpZERpc3BhdGNoT25sb2FkRXZl
bnRzKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdCgpIGZpbmFsIHsgfQotICAgIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSwgZG91YmxlKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwmLCBkb3Vi
bGUsIFdhbGxUaW1lKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRp
b25XaXRoaW5QYWdlKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZFB1c2hTdGF0ZVdp
dGhpblBhZ2UoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0
aGluUGFnZSgpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zv
cm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlzc2lvbi5j
cHAKaW5kZXggYWJiMzg1ZmE2ODdhZmI5MTFjNzBiMWVlM2U0YWRiNzE2YmZjODBlOS4uYzcwMzg5
YWQ3YzE0ODVmNDgyNWZiODA5MzFlNzU1YzM4NzNlNzJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC00OSw3ICs0OSw3IEBACiAjaW5jbHVkZSAiSFRNTFBh
cnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgogI2luY2x1
ZGUgIlRleHRFbmNvZGluZy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgorI2luY2x1
ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5LDcgKzU5
LDcgQEAgc3RhdGljIGludDY0X3QgZ2VuZXJhdGVGb3JtRGF0YUlkZW50aWZpZXIoKQogewogICAg
IC8vIEluaXRpYWxpemUgdG8gdGhlIGN1cnJlbnQgdGltZSB0byByZWR1Y2UgdGhlIGxpa2VsaWhv
b2Qgb2YgZ2VuZXJhdGluZwogICAgIC8vIGlkZW50aWZpZXJzIHRoYXQgb3ZlcmxhcCB3aXRoIHRo
b3NlIGZyb20gcGFzdC9mdXR1cmUgYnJvd3NlciBzZXNzaW9ucy4KLSAgICBzdGF0aWMgaW50NjRf
dCBuZXh0SWRlbnRpZmllciA9IHN0YXRpY19jYXN0PGludDY0X3Q+KGN1cnJlbnRUaW1lKCkgKiAx
MDAwMDAwLjApOworICAgIHN0YXRpYyBpbnQ2NF90IG5leHRJZGVudGlmaWVyID0gc3RhdGljX2Nh
c3Q8aW50NjRfdD4oV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWljcm9zZWNv
bmRzKCkpOwogICAgIHJldHVybiArK25leHRJZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA0Yjk4NGM3OWY0MTE4MzkzNmEwNTg5NTUwZjI3MzQw
NGM1NTdkNzU4Li42NWRiOTBiYTlkMWFlNzJjMzJkZjcxNDA2YWQ2M2MxY2Q3MjNhMWRhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIwNzUsNyArMjA3NSw3IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChib29sIGNh
bmNlbFdpdGhMb2FkSW5Qcm9ncmVzCiAgICAgbV9zZW50UmVkaXJlY3ROb3RpZmljYXRpb24gPSBm
YWxzZTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RlZChjb25zdCBVUkwm
IHVybCwgZG91YmxlIHNlY29uZHMsIGRvdWJsZSBmaXJlRGF0ZSwgTG9ja0JhY2tGb3J3YXJkTGlz
dCBsb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3Rl
ZChjb25zdCBVUkwmIHVybCwgZG91YmxlIHNlY29uZHMsIFdhbGxUaW1lIGZpcmVEYXRlLCBMb2Nr
QmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAgICAgbV9jbGllbnQuZGlz
cGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KHVybCwgc2Vjb25kcywgZmlyZURhdGUpOwog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA5MjY1Y2IxMjEyYmMyNjRm
MTQ5OWU2NjA2MDNlYWU2MThiNjE0MDk4Li5mM2VjOGFmMGU2MTMyZWE4OTliNjUyZjU1MWRmZWQx
MjNlMDk4ODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNDcsNiArNDcs
NyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTI2OCw3ICsyNjksNyBAQCBjbGFzcyBGcmFtZUxv
YWRlciB7CiAKICAgICB2b2lkIGNvbXBsZXRlZCgpOwogICAgIGJvb2wgYWxsQW5jZXN0b3JzQXJl
Q29tcGxldGUoKSBjb25zdDsgLy8gaW5jbHVkaW5nIHRoaXMKLSAgICB2b2lkIGNsaWVudFJlZGly
ZWN0ZWQoY29uc3QgVVJMJiwgZG91YmxlIGRlbGF5LCBkb3VibGUgZmlyZURhdGUsIExvY2tCYWNr
Rm9yd2FyZExpc3QpOworICAgIHZvaWQgY2xpZW50UmVkaXJlY3RlZChjb25zdCBVUkwmLCBkb3Vi
bGUgZGVsYXksIFdhbGxUaW1lIGZpcmVEYXRlLCBMb2NrQmFja0ZvcndhcmRMaXN0KTsKICAgICB2
b2lkIGNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChib29sIGNhbmNlbFdpdGhMb2Fk
SW5Qcm9ncmVzcyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE9yaWdpbmFsVVJMRm9y
RG93bmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3ZGQyNWUzNDkxYTBlNzAyMjcwYzBmMTllNTY2YWU5
NmNjYzkwNmI4Li5kY2FmMzc3NjcyY2RjZmIxODdiMGEzZjQwN2NkYjUyNDUwOWUyMGM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzQsNiArMzQsNyBA
QAogI2luY2x1ZGUgIkxpbmtJY29uLmgiCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklGRVNUKQpA
QCAtMTU5LDcgKzE2MCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEZyYW1lTG9hZGVyQ2xpZW50
IHsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdl
UHJvdmlzaW9uYWxVUkwoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxD
bGllbnRSZWRpcmVjdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVE
YXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIFdhbGxUaW1lIGZpcmVEYXRlKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTWFpbkRvY3VtZW50KCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoRGlkTmF2aWdhdGVXaXRoaW5QYWdlKCkgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5kZXggNzUyYjgwOTg1MDEz
MmJiZGE4YjJhYTRkMmQwZjM5NzlhZjJjMDk5Mi4uZDI4NGE5MTVmYjU0ZGExYjUyNzc2YmU5MjBk
N2YxYmI3YWM5OTljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2No
ZWR1bGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNsYXNzIFNjaGVkdWxlZFVSTE5hdmlnYXRp
b24gOiBwdWJsaWMgU2NoZWR1bGVkTmF2aWdhdGlvbiB7CiAgICAgICAgIG1faGF2ZVRvbGRDbGll
bnQgPSB0cnVlOwogCiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0
b3IodXNlckdlc3R1cmVUb0ZvcndhcmQoKSk7Ci0gICAgICAgIGZyYW1lLmxvYWRlcigpLmNsaWVu
dFJlZGlyZWN0ZWQobV91cmwsIGRlbGF5KCksIGN1cnJlbnRUaW1lKCkgKyB0aW1lci5uZXh0Rmly
ZUludGVydmFsKCkudmFsdWUoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKKyAgICAgICAgZnJh
bWUubG9hZGVyKCkuY2xpZW50UmVkaXJlY3RlZChtX3VybCwgZGVsYXkoKSwgV2FsbFRpbWU6Om5v
dygpICsgdGltZXIubmV4dEZpcmVJbnRlcnZhbCgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCkpOwog
ICAgIH0KIAogICAgIHZvaWQgZGlkU3RvcFRpbWVyKEZyYW1lJiBmcmFtZSwgYm9vbCBuZXdMb2Fk
SW5Qcm9ncmVzcykgb3ZlcnJpZGUKQEAgLTI4Myw3ICsyODMsNyBAQCBjbGFzcyBTY2hlZHVsZWRG
b3JtU3VibWlzc2lvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9uIHsKICAgICAgICAgbV9o
YXZlVG9sZENsaWVudCA9IHRydWU7CiAKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2Vz
dHVyZUluZGljYXRvcih1c2VyR2VzdHVyZVRvRm9yd2FyZCgpKTsKLSAgICAgICAgZnJhbWUubG9h
ZGVyKCkuY2xpZW50UmVkaXJlY3RlZChtX3N1Ym1pc3Npb24tPnJlcXVlc3RVUkwoKSwgZGVsYXko
KSwgY3VycmVudFRpbWUoKSArIHRpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKS52YWx1ZSgpLCBsb2Nr
QmFja0ZvcndhcmRMaXN0KCkpOworICAgICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnRSZWRpcmVj
dGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxheSgpLCBXYWxsVGltZTo6bm93KCkg
KyB0aW1lci5uZXh0RmlyZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CiAgICAg
fQogCiAgICAgdm9pZCBkaWRTdG9wVGltZXIoRnJhbWUmIGZyYW1lLCBib29sIG5ld0xvYWRJblBy
b2dyZXNzKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKaW5kZXggMDljN2Q4YjI5MDM2
ZDY3YzQxNjViYTVmY2UxNDk0Y2M1NGIxNTJhYi4uOGQwYjk1OWQwMzczY2NhMTZiYTJlZTQyNmNh
OTkxYmU2Y2YwYjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCkBAIC0xNjcsNyArMTY3LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gSGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZChSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEKIHsKICAgICAvLyBFYWNoIHVuaXF1ZSBtYWluLWZy
YW1lIGRvY3VtZW50IGlzIG9ubHkgYWxsb3dlZCB0byBzZW5kIDY0TUIgb2Ygc3RhdGUgb2JqZWN0
IHBheWxvYWQgdG8gdGhlIFVJIGNsaWVudC9wcm9jZXNzLgogICAgIHN0YXRpYyB1aW50MzJfdCB0
b3RhbFN0YXRlT2JqZWN0UGF5bG9hZExpbWl0ID0gMHg0MDAwMDAwOwotICAgIHN0YXRpYyBkb3Vi
bGUgc3RhdGVPYmplY3RUaW1lU3BhbiA9IDMwLjA7CisgICAgc3RhdGljIFNlY29uZHMgc3RhdGVP
YmplY3RUaW1lU3BhbiB7IDMwX3MgfTsKICAgICBzdGF0aWMgdW5zaWduZWQgcGVyU3RhdGVPYmpl
Y3RUaW1lU3BhbkxpbWl0ID0gMTAwOwogCiAgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2ZyYW1lLT5w
YWdlKCkpCkBAIC0xOTgsNyArMTk4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSGlzdG9yeTo6c3Rh
dGVPYmplY3RBZGRlZChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEKICAgICBp
ZiAoIW1haW5IaXN0b3J5KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91YmxlIGN1cnJl
bnRUaW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgIFdhbGxUaW1lIGN1cnJlbnRUaW1lc3Rh
bXAgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgaWYgKGN1cnJlbnRUaW1lc3RhbXAgLSBtYWluSGlz
dG9yeS0+bV9jdXJyZW50U3RhdGVPYmplY3RUaW1lU3BhblN0YXJ0ID4gc3RhdGVPYmplY3RUaW1l
U3BhbikgewogICAgICAgICBtYWluSGlzdG9yeS0+bV9jdXJyZW50U3RhdGVPYmplY3RUaW1lU3Bh
blN0YXJ0ID0gY3VycmVudFRpbWVzdGFtcDsKICAgICAgICAgbWFpbkhpc3RvcnktPm1fY3VycmVu
dFN0YXRlT2JqZWN0VGltZVNwYW5PYmplY3RzQWRkZWQgPSAwOwpAQCAtMjA2LDggKzIwNiw4IEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IEhpc3Rvcnk6OnN0YXRlT2JqZWN0QWRkZWQoUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4mJiBkYXRhCiAgICAgCiAgICAgaWYgKG1haW5IaXN0b3J5LT5tX2N1
cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuT2JqZWN0c0FkZGVkID49IHBlclN0YXRlT2JqZWN0VGlt
ZVNwYW5MaW1pdCkgewogICAgICAgICBpZiAoc3RhdGVPYmplY3RUeXBlID09IFN0YXRlT2JqZWN0
VHlwZTo6UmVwbGFjZSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVy
cm9yLCBTdHJpbmc6OmZvcm1hdCgiQXR0ZW1wdCB0byB1c2UgaGlzdG9yeS5yZXBsYWNlU3RhdGUo
KSBtb3JlIHRoYW4gJXUgdGltZXMgcGVyICVmIHNlY29uZHMiLCBwZXJTdGF0ZU9iamVjdFRpbWVT
cGFuTGltaXQsIHN0YXRlT2JqZWN0VGltZVNwYW4pIH07Ci0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBTZWN1cml0eUVycm9yLCBTdHJpbmc6OmZvcm1hdCgiQXR0ZW1wdCB0byB1c2UgaGlzdG9y
eS5wdXNoU3RhdGUoKSBtb3JlIHRoYW4gJXUgdGltZXMgcGVyICVmIHNlY29uZHMiLCBwZXJTdGF0
ZU9iamVjdFRpbWVTcGFuTGltaXQsIHN0YXRlT2JqZWN0VGltZVNwYW4pIH07CisgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgU3RyaW5nOjpmb3JtYXQoIkF0dGVt
cHQgdG8gdXNlIGhpc3RvcnkucmVwbGFjZVN0YXRlKCkgbW9yZSB0aGFuICV1IHRpbWVzIHBlciAl
ZiBzZWNvbmRzIiwgcGVyU3RhdGVPYmplY3RUaW1lU3BhbkxpbWl0LCBzdGF0ZU9iamVjdFRpbWVT
cGFuLnNlY29uZHMoKSkgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJy
b3IsIFN0cmluZzo6Zm9ybWF0KCJBdHRlbXB0IHRvIHVzZSBoaXN0b3J5LnB1c2hTdGF0ZSgpIG1v
cmUgdGhhbiAldSB0aW1lcyBwZXIgJWYgc2Vjb25kcyIsIHBlclN0YXRlT2JqZWN0VGltZVNwYW5M
aW1pdCwgc3RhdGVPYmplY3RUaW1lU3Bhbi5zZWNvbmRzKCkpIH07CiAgICAgfQogCiAgICAgQ2hl
Y2tlZDx1bnNpZ25lZD4gdGl0bGVTaXplID0gdGl0bGUubGVuZ3RoKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9y
eS5oCmluZGV4IDZkYmIyZmYyNjRlNDJiNTMwNDRhNzhkMWU5MWMzMzdmNDMzM2ZlYTcuLjhkODMy
NzUwOTQ0ZTg5MTZhODM2ODE0MzI0MGFkODMzYTcwZTNmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvSGlzdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5o
CkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNsdWRlICJT
Y3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNp
bmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03NSw3
ICs3Niw3IEBAIGNsYXNzIEhpc3RvcnkgZmluYWwgOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBw
dWJsaWMgUmVmQ291bnRlZDxIaXN0b3J5PiwgcHVibGljCiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gbV9sYXN0U3RhdGVPYmplY3RSZXF1ZXN0ZWQ7CiAKICAgICB1bnNpZ25lZCBt
X2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuT2JqZWN0c0FkZGVkIHsgMCB9OwotICAgIGRvdWJs
ZSBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuU3RhcnQgeyAwLjAgfTsKKyAgICBXYWxsVGlt
ZSBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuU3RhcnQ7CiAKICAgICAvLyBGb3IgdGhlIG1h
aW4gZnJhbWUncyBIaXN0b3J5IG9iamVjdCB0byBrZWVwIHRyYWNrIG9mIGFsbCBzdGF0ZSBvYmpl
Y3QgdXNhZ2UuCiAgICAgdWludDY0X3QgbV90b3RhbFN0YXRlT2JqZWN0VXNhZ2UgeyAwIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCmluZGV4IDkzMmExMWU1NjIzNWUyMDA4M2I0NjBm
YjM5NWIyZGU0YmQxM2QyYmQuLjY2MDcwMDJkMGQzOTI0OWM5ZTgxNzJkZDcyMWVlODhkOTQ1OTQx
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCkBAIC0zMywxMSArMzMsMTAgQEAK
ICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1v
dXNlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgotI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCBkb3Vi
bGUgZmFkZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4yOworc3RhdGljIGNvbnN0IFNlY29uZHMgZmFk
ZUFuaW1hdGlvbkR1cmF0aW9uIHsgMjAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91YmxlIGZhZGVB
bmltYXRpb25GcmFtZVJhdGUgPSAzMDsKIAogc3RhdGljIFBhZ2VPdmVybGF5OjpQYWdlT3Zlcmxh
eUlEIGdlbmVyYXRlUGFnZU92ZXJsYXlJRCgpCkBAIC0yNTMsMTMgKzI1MiwxMyBAQCB2b2lkIFBh
Z2VPdmVybGF5OjpzdG9wRmFkZU91dEFuaW1hdGlvbigpCiAKIHZvaWQgUGFnZU92ZXJsYXk6OnN0
YXJ0RmFkZUFuaW1hdGlvbigpCiB7Ci0gICAgbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lID0gY3Vy
cmVudFRpbWUoKTsKKyAgICBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWUgPSBXYWxsVGltZTo6bm93
KCk7CiAgICAgbV9mYWRlQW5pbWF0aW9uVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zIC8gZmFkZUFu
aW1hdGlvbkZyYW1lUmF0ZSk7CiB9CiAKIHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmltYXRpb25U
aW1lckZpcmVkKCkKIHsKLSAgICBmbG9hdCBhbmltYXRpb25Qcm9ncmVzcyA9IChjdXJyZW50VGlt
ZSgpIC0gbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lKSAvIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9u
OworICAgIGZsb2F0IGFuaW1hdGlvblByb2dyZXNzID0gKFdhbGxUaW1lOjpub3coKSAtIG1fZmFk
ZUFuaW1hdGlvblN0YXJ0VGltZSkgLyBtX2ZhZGVBbmltYXRpb25EdXJhdGlvbjsKIAogICAgIGlm
IChhbmltYXRpb25Qcm9ncmVzcyA+PSAxLjApCiAgICAgICAgIGFuaW1hdGlvblByb2dyZXNzID0g
MS4wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5oCmluZGV4IGE0N2Y2ZjBlOWNmOGRkZTA4M2Y0
MjYwMDEyMzM1MWVjNmUyMzVlNzIuLjY2MzMwMzdiMmViMjViOWMzNTBlZjc5ZGY2YzkxZTgyNjcz
MjczNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjYsOCArMTI3LDggQEAg
Y2xhc3MgUGFnZU92ZXJsYXkgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxQYWdlT3ZlcmxheT4g
ewogICAgIFBhZ2UqIG1fcGFnZSB7IG51bGxwdHIgfTsKIAogICAgIFRpbWVyIG1fZmFkZUFuaW1h
dGlvblRpbWVyOwotICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWUgeyAwIH07Ci0g
ICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOworICAgIFdhbGxUaW1lIG1fZmFkZUFu
aW1hdGlvblN0YXJ0VGltZTsKKyAgICBTZWNvbmRzIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwog
CiAgICAgZW51bSBGYWRlQW5pbWF0aW9uVHlwZSB7CiAgICAgICAgIE5vQW5pbWF0aW9uLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250
ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3ND
b250ZXh0Q0cuY3BwCmluZGV4IGRiZmI2ZDIyY2VmNzY4MWNiY2YxOWU1ZGVhZWZhYzI0YjIyYTM4
NGMuLjJjYjIzMDBiZGZmMjRmNWM4ZTdlYjViNWUzNTcxYWJiZjQ4MzQyMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRl
eHRDRy5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05h
dGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0CiAgICAg
fQogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBjdXJyZW50VGlt
ZSgpOworICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7
CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1hZ2UoaW1hZ2UpOwogCkBA
IC0zOTIsNyArMzkyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZShj
b25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdAogI2VuZGlmCiAgICAgfQog
Ci0gICAgTE9HX1dJVEhfU1RSRUFNKEltYWdlcywgc3RyZWFtIDw8ICJHcmFwaGljc0NvbnRleHQ6
OmRyYXdOYXRpdmVJbWFnZSAiIDw8IGltYWdlLmdldCgpIDw8ICIgc2l6ZSAiIDw8IGltYWdlU2l6
ZSA8PCAiIGludG8gIiA8PCBkZXN0UmVjdCA8PCAiIHRvb2sgIiA8PCAxMDAwLjAgKiAoY3VycmVu
dFRpbWUoKSAtIHN0YXJ0VGltZSkgPDwgIm1zIik7CisgICAgTE9HX1dJVEhfU1RSRUFNKEltYWdl
cywgc3RyZWFtIDw8ICJHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSAiIDw8IGltYWdl
LmdldCgpIDw8ICIgc2l6ZSAiIDw8IGltYWdlU2l6ZSA8PCAiIGludG8gIiA8PCBkZXN0UmVjdCA8
PCAiIHRvb2sgIiA8PCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLm1pbGxpc2Vj
b25kcygpIDw8ICJtcyIpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3UGF0dGVybkNhbGxiYWNrKHZv
aWQqIGluZm8sIENHQ29udGV4dFJlZiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgKaW5kZXggNTM3YzllZGY2NThmNmE5Yjll
ZmRhYjdkYzIzN2FkYTI3MjZjMWY0ZC4uMDU2MzYyNTM4NzQyNmQzNzVkMTgwMmEwODZjNGEwMjMw
MGQwODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRp
bGVMYXllclBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGls
ZUxheWVyUG9vbC5oCkBAIC03Nyw3ICs3Nyw3IEBAIGNsYXNzIExlZ2FjeVRpbGVMYXllclBvb2wg
ewogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CiAgICAgTG9jayBtX2xheWVyUG9vbE11dGV4Owog
Ci0gICAgZG91YmxlIG1fbGFzdEFkZFRpbWU7CisgICAgV2FsbFRpbWUgbV9sYXN0QWRkVGltZTsK
ICAgICBib29sIG1fbmVlZHNQcnVuZTsKIAogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3llZDxMZWdh
Y3lUaWxlTGF5ZXJQb29sPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVMYXllclBvb2wubW0KaW5kZXggZmM5YzI0NjY2N2JiNGQxMDgxNjAxZTA5NDdjZDQ2
MjQ0N2I5ZDA5My4uMjUwMDI4ZmY5YWJhODU4MjIzNzIyNmQxMGRjZWVjMjNhNjdmNWE3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wu
bW0KQEAgLTM3LDEyICszNywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBj
b25zdCBkb3VibGUgY2FwYWNpdHlEZWNheVRpbWUgPSA1Oworc3RhdGljIGNvbnN0IFNlY29uZHMg
Y2FwYWNpdHlEZWNheVRpbWUgeyA1X3MgfTsKIAogTGVnYWN5VGlsZUxheWVyUG9vbDo6TGVnYWN5
VGlsZUxheWVyUG9vbCgpCiAgICAgOiBtX3RvdGFsQnl0ZXMoMCkKICAgICAsIG1fY2FwYWNpdHko
MCkKLSAgICAsIG1fbGFzdEFkZFRpbWUoMCkKICAgICAsIG1fbmVlZHNQcnVuZShmYWxzZSkKIHsK
IH0KQEAgLTg4LDcgKzg3LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcihj
b25zdCBSZXRhaW5QdHI8TGVnYWN5VGlsZUxheWVyPiYgbGF5ZXIpCiAgICAgbGlzdE9mTGF5ZXJz
V2l0aFNpemUobGF5ZXJTaXplKS5wcmVwZW5kKGxheWVyKTsKICAgICBtX3RvdGFsQnl0ZXMgKz0g
Ynl0ZXNCYWNraW5nTGF5ZXJXaXRoUGl4ZWxTaXplKGxheWVyU2l6ZSk7CiAKLSAgICBtX2xhc3RB
ZGRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2xhc3RBZGRUaW1lID0gV2FsbFRpbWU6Om5v
dygpOwogICAgIHNjaGVkdWxlUHJ1bmUoKTsKIH0KIApAQCAtMTE1LDcgKzExNCw3IEBAIHZvaWQg
TGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkodW5zaWduZWQgY2FwYWNpdHkpCiB1bnNp
Z25lZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpkZWNheWVkQ2FwYWNpdHkoKSBjb25zdAogewogICAg
IC8vIERlY2F5IHRvIG9uZSBxdWFydGVyIG92ZXIgY2FwYWNpdHlEZWNheVRpbWUKLSAgICBkb3Vi
bGUgdGltZVNpbmNlTGFzdEFkZCA9IGN1cnJlbnRUaW1lKCkgLSBtX2xhc3RBZGRUaW1lOworICAg
IFNlY29uZHMgdGltZVNpbmNlTGFzdEFkZCA9IFdhbGxUaW1lOjpub3coKSAtIG1fbGFzdEFkZFRp
bWU7CiAgICAgaWYgKHRpbWVTaW5jZUxhc3RBZGQgPiBjYXBhY2l0eURlY2F5VGltZSkKICAgICAg
ICAgcmV0dXJuIG1fY2FwYWNpdHkgLyA0OwogICAgIGZsb2F0IGRlY2F5UHJvZ2VzcyA9IGZsb2F0
KHRpbWVTaW5jZUxhc3RBZGQgLyBjYXBhY2l0eURlY2F5VGltZSk7CkBAIC0xNTcsNyArMTU2LDcg
QEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAgICAgICAgIC8vIHN0aWxsIGhh
dmUgYSBiYWNraW5nIHN0b3JlLgogICAgICAgICBvbGRlc3RSZXVzZUxpc3QucmVtb3ZlTGFzdCgp
OwogICAgIH0KLSAgICBpZiAoY3VycmVudFRpbWUoKSAtIG1fbGFzdEFkZFRpbWUgPD0gY2FwYWNp
dHlEZWNheVRpbWUpCisgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fbGFzdEFkZFRpbWUgPD0g
Y2FwYWNpdHlEZWNheVRpbWUpCiAgICAgICAgIHNjaGVkdWxlUHJ1bmUoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1N5c3RlbU1lbW9yeUlPUy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNwcAppbmRleCA2ZWE0
MWRlM2ExOGM2M2ZjMTg4ZjY0NWQ1YjJiOWZiYTA2YTZiYzcwLi4xYWQxMmE0ZjA2MDIyMzEzMDc1
NDEwZGJlMzlkOWUyOTU1NjkxMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvU3lzdGVtTWVtb3J5SU9TLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiAjaW5jbHVkZSA8c3lz
L3N5c2N0bC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNDMsOSArNDMsOSBAQCBpbnQgc3lzdGVtTWVtb3J5TGV2ZWwoKQogICAgIHJl
dHVybiAzNTsKICNlbHNlCiAgICAgc3RhdGljIGludCBtZW1vcnlGcmVlTGV2ZWwgPSAtMTsKLSAg
ICBzdGF0aWMgZG91YmxlIHByZXZpb3VzQ2hlY2tUaW1lOyAKLSAgICBkb3VibGUgdGltZSA9IGN1
cnJlbnRUaW1lKCk7Ci0gICAgaWYgKHRpbWUgLSBwcmV2aW91c0NoZWNrVGltZSA8IDAuMSkKKyAg
ICBzdGF0aWMgV2FsbFRpbWUgcHJldmlvdXNDaGVja1RpbWU7CisgICAgV2FsbFRpbWUgdGltZSA9
IFdhbGxUaW1lOjpub3coKTsKKyAgICBpZiAodGltZSAtIHByZXZpb3VzQ2hlY2tUaW1lIDwgMTAw
X21zKQogICAgICAgICByZXR1cm4gbWVtb3J5RnJlZUxldmVsOwogICAgIHByZXZpb3VzQ2hlY2tU
aW1lID0gdGltZTsKICAgICBzaXplX3Qgc2l6ZSA9IHNpemVvZihtZW1vcnlGcmVlTGV2ZWwpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3Jh
Z2VFbmdpbmVDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0Nh
Y2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAppbmRleCA2OWY3NzA0MWY3ZGNmM2Y4ZWMxZjBkOWQ0
MGQwYjJkODlmYTM5MGNjLi43YWFmNTc3ZjE2YzQ4M2M0MjJiN2RkNDc4YTQ2YmM4NmMwYWVjN2Qz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1
ZGUgPFdlYkNvcmUvQ2FjaGVRdWVyeU9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQ
YXJzZXJzLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGEwYTJj
MjRlZWM0ZjAwYTFlMDhjNTZmNTQ1MDcyNDQ0NGM0YzIwYjMuLjliOWRmMjljNjNiOGNmNTYyZDdm
NTQ2NjBlYzY4ZjIwMGI4NmY5YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJv
Y2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Q
cm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1
ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Q
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5o
IgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29w
ZS5oPgogCiAjaWYgIU9TKFdJTkRPV1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggM2QwODEzZjRmODc5NDBjNDlhZGM4
MjE0YjFhZTY4NDYxNTc4OTEwZi4uZGI5Mzc2MGJkMGU1Y2Q1ZDJiMGUzOTg5OGQxZGVmMWJjZmIx
ZWYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaApAQCAtMTYxLDcgKzE2MSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzIHsKICAgICBIYXNoTWFwPFN0cmluZywgYm9vbD4gbm90aWZpY2F0aW9uUGVy
bWlzc2lvbnM7CiAjZW5kaWYKIAotICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8
dW5zaWduZWQsIGRvdWJsZT4+IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKKyAgICBIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4+IHBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2hlczsKICAgICBWZWN0b3I8U3RyaW5nPiBwbHVnSW5BdXRvU3RhcnRP
cmlnaW5zOwogCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAppbmRleCA0
N2UzMTkwOWExZTk3ZGY5YTNlYTM5N2Y2N2NiYzBiYWFlNzYwMWM0Li5hYTg0MDAxOTNmYWFjY2My
OTIyOGZiZjU2NjUxMGE4MjExMDQ5ZDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAj
aW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvbGludXgvQ3VycmVudFByb2Nl
c3NNZW1vcnlTdGF0dXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAt
OTUsOSArOTUsOSBAQCBXZWJNZW1vcnlTdGF0aXN0aWNzIFdlYk1lbW9yeVNhbXBsZXI6OnNhbXBs
ZVdlYktpdCgpIGNvbnN0CiB7CiAgICAgV2ViTWVtb3J5U3RhdGlzdGljcyB3ZWJLaXRNZW1vcnlT
dGF0czsKIAotICAgIGRvdWJsZSBub3cgPSBjdXJyZW50VGltZSgpOworICAgIFdhbGxUaW1lIG5v
dyA9IFdhbGxUaW1lOjpub3coKTsKIAotICAgIGFwcGVuZEtleVZhbHVlUGFpcih3ZWJLaXRNZW1v
cnlTdGF0cywgQVNDSUlMaXRlcmFsKCJUaW1lc3RhbXAiKSwgbm93KTsKKyAgICBhcHBlbmRLZXlW
YWx1ZVBhaXIod2ViS2l0TWVtb3J5U3RhdHMsIEFTQ0lJTGl0ZXJhbCgiVGltZXN0YW1wIiksIG5v
dy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSk7CiAKICAgICBQcm9jZXNzTWVtb3J5U3Rh
dHVzIHByb2Nlc3NNZW1vcnlTdGF0dXM7CiAgICAgY3VycmVudFByb2Nlc3NNZW1vcnlTdGF0dXMo
cHJvY2Vzc01lbW9yeVN0YXR1cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9t
YWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
TWVtb3J5U2FtcGxlci5tYWMubW0KaW5kZXggNjA3ZDUwZTc2OTRmMWJiY2ViZTA0YmYyM2M3ZDAw
NGYzMDg2MTIwZS4uNTlhOThhZmMzMzk0MjdhNzU0ZTI2OTMzNDk3MGYzYTMwZDcxYzI1MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQpA
QCAtMzcsNyArMzcsNyBAQAogI2ltcG9ydCA8bWFjaC90YXNrLmg+CiAjaW1wb3J0IDxtYWxsb2Mv
bWFsbG9jLmg+CiAjaW1wb3J0IDxub3RpZnkuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5o
PgorI2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
dXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAgLTE0MCwxMCArMTQwLDEwIEBAIFdlYk1lbW9yeVN0YXRp
c3RpY3MgV2ViTWVtb3J5U2FtcGxlcjo6c2FtcGxlV2ViS2l0KCkgY29uc3QKICAgICAKICAgICBz
aXplX3QgcmVzaWRlbnRTaXplID0gc2FtcGxlUHJvY2Vzc0NvbW1pdHRlZEJ5dGVzKCk7CiAKLSAg
ICBkb3VibGUgbm93ID0gY3VycmVudFRpbWUoKTsKKyAgICBXYWxsVGltZSBub3cgPSBXYWxsVGlt
ZTo6bm93KCk7CiAgICAgICAgIAogICAgIHdlYktpdE1lbW9yeVN0YXRzLmtleXMuYXBwZW5kKFN0
cmluZygiVGltZXN0YW1wIikpOwotICAgIHdlYktpdE1lbW9yeVN0YXRzLnZhbHVlcy5hcHBlbmQo
bm93KTsKKyAgICB3ZWJLaXRNZW1vcnlTdGF0cy52YWx1ZXMuYXBwZW5kKG5vdy5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnNlY29uZHMoKSk7CiAgICAgd2ViS2l0TWVtb3J5U3RhdHMua2V5cy5hcHBlbmQo
U3RyaW5nKCJUb3RhbCBCeXRlcyBvZiBNZW1vcnkgSW4gVXNlIikpOwogICAgIHdlYktpdE1lbW9y
eVN0YXRzLnZhbHVlcy5hcHBlbmQodG90YWxCeXRlc0luVXNlKTsKICAgICB3ZWJLaXRNZW1vcnlT
dGF0cy5rZXlzLmFwcGVuZChTdHJpbmcoIkZhc3QgTWFsbG9jIFpvbmUgQnl0ZXMiKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAppbmRleCA0MDU0ODZjOWQ3
NmRkMDY2NTIzZmRiYzg2NzEzMzBlZTk4MjhhODQwLi5kZWUwYTA5YzA1NWQ4NDg1YTAyM2E0NWZh
MTc0NGNmZTNhYTE4MTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dC5jcHAKQEAgLTU3Niw3ICs1NzYsNyBAQCB2b2lkIFdLQ29udGV4dFNldFBsdWdJbkF1dG9T
dGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoV0tDb250ZQogewog
ICAgIGlmICghZGljdGlvbmFyeVJlZikKICAgICAgICAgcmV0dXJuOwotICAgIHRvSW1wbChjb250
ZXh0UmVmKS0+c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRl
ZEFmdGVyVGltZSgqdG9JbXBsKGRpY3Rpb25hcnlSZWYpLCB0aW1lKTsKKyAgICB0b0ltcGwoY29u
dGV4dFJlZiktPnNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRk
ZWRBZnRlclRpbWUoKnRvSW1wbChkaWN0aW9uYXJ5UmVmKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNv
bmRzKHRpbWUpKTsKIH0KIAogdm9pZCBXS0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5z
KFdLQ29udGV4dFJlZiBjb250ZXh0UmVmLCBXS0FycmF5UmVmIGFycmF5UmVmKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNTZi
MWZlNTNkZWQxZGNlNTk0ZGRjNjA2OGVlNGJmNjE5YTc5M2NhMy4uYTYwMGY5YTFlM2YxOGVhMjVh
ZTU3N2JhZDNmNTBmMzg4NWMyZmViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyBib29s
IGNoZWNrSW50ZWdyaXR5T25PcGVuID0gZmFsc2U7CiAKIC8vIFdlIGFyZSBub3QgaW50ZXJlc3Rl
ZCBpbiBpY29ucyB0aGF0IGhhdmUgYmVlbiB1bnVzZWQgZm9yIG1vcmUgdGhhbgogLy8gMzAgZGF5
cywgZGVsZXRlIHRoZW0gZXZlbiBpZiB0aGV5IGhhdmUgbm90IGJlZW4gZXhwbGljaXRseSByZWxl
YXNlZC4KLXN0YXRpYyBjb25zdCBpbnQgbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSA9IDYwKjYw
KjI0KjMwOworc3RhdGljIGNvbnN0IFNlY29uZHMgbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSB7
IDYwKjYwKjI0KjMwIH07CiAKICNpZiAhTE9HX0RJU0FCTEVEIHx8ICFFUlJPUl9ESVNBQkxFRAog
c3RhdGljIFN0cmluZyB1cmxGb3JMb2dnaW5nKGNvbnN0IFN0cmluZyYgdXJsKQpAQCAtNTQ2LDcg
KzU0Niw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwoUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4mJiBkYXRhLCBjb25zdCBTdHJpCiAKICAgICAgICAgLy8gVXBkYXRlIHRo
ZSBkYXRhIGFuZCBzZXQgdGhlIHRpbWUgc3RhbXAKICAgICAgICAgaWNvbi0+c2V0SW1hZ2VEYXRh
KFdURk1vdmUoZGF0YSkpOwotICAgICAgICBpY29uLT5zZXRUaW1lc3RhbXAoKGludCljdXJyZW50
VGltZSgpKTsKKyAgICAgICAgaWNvbi0+c2V0VGltZXN0YW1wKChpbnQpV2FsbFRpbWU6Om5vdygp
LnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpKTsKIAogICAgICAgICAvLyBDb3B5IHRoZSBj
dXJyZW50IHJldGFpbmluZyBwYWdlVVJMcyAtIGlmIGFueSAtIHRvIG5vdGlmeSB0aGVtIG9mIHRo
ZSBjaGFuZ2UKICAgICAgICAgcGFnZVVSTHMuYXBwZW5kUmFuZ2UoaWNvbi0+cmV0YWluaW5nUGFn
ZVVSTHMoKS5iZWdpbigpLCBpY29uLT5yZXRhaW5pbmdQYWdlVVJMcygpLmVuZCgpKTsKQEAgLTY1
Nyw3ICs2NTcsNyBAQCBJY29uRGF0YWJhc2U6Okljb25Mb2FkRGVjaXNpb24gSWNvbkRhdGFiYXNl
OjpzeW5jaHJvbm91c0xvYWREZWNpc2lvbkZvckljb25VUkwoYwogICAgICAgICBMb2NrSG9sZGVy
IGxvY2tlcihtX3VybEFuZEljb25Mb2NrKTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24g
PSBtX2ljb25VUkxUb1JlY29yZE1hcC5nZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJ
Y29uRGF0YWJhc2UsICJGb3VuZCBleHBpcmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFz
ZWQgb24gZXhpc3RpbmcgSWNvblJlY29yZCIpOwotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19j
YXN0PGludD4oY3VycmVudFRpbWUoKSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVz
dGFtcCgpKSA+IGljb25FeHBpcmF0aW9uVGltZSA/IEljb25Mb2FkRGVjaXNpb246OlllcyA6IElj
b25Mb2FkRGVjaXNpb246Ok5vOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4o
V2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpKSAtIHN0YXRpY19j
YXN0PGludD4oaWNvbi0+Z2V0VGltZXN0YW1wKCkpID4gaWNvbkV4cGlyYXRpb25UaW1lID8gSWNv
bkxvYWREZWNpc2lvbjo6WWVzIDogSWNvbkxvYWREZWNpc2lvbjo6Tm87CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTEwNzksNyArMTA3OSw3IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJM
SW1wb3J0KCkKICAgICAvLyBOb3RlIHRoYXQgSWNvbkluZm8uc3RhbXAgaXMgb25seSBzZXQgd2hl
biB0aGUgaWNvbiBkYXRhIGlzIHJldHJpZXZlZCBmcm9tIHRoZSBzZXJ2ZXIgKGFuZCB0aHVzIGlz
IG5vdCB1cGRhdGVkIHdoZXRoZXIKICAgICAvLyB3ZSB1c2UgaXQgb3Igbm90KS4gVGhpcyBjb2Rl
IHdvcmtzIGFueXdheSBiZWNhdXNlIHRoZSBJY29uRGF0YWJhc2UgZG93bmxvYWRzIGljb25zIGFn
YWluIGlmIHRoZXkgYXJlIG9sZGVyIHRoYW4gNCBkYXlzLAogICAgIC8vIHNvIGlmIHRoZSB0aW1l
c3RhbXAgZ29lcyBiYWNrIGluIHRpbWUgbW9yZSB0aGFuIHRob3NlIDMwIGRheXMgd2UgY2FuIGJl
IHN1cmUgdGhhdCB0aGUgaWNvbiB3YXMgbm90IHVzZWQgYXQgYWxsLgotICAgIFN0cmluZyBpbXBv
cnRRdWVyeSA9IFN0cmluZzo6Zm9ybWF0KCJTRUxFQ1QgUGFnZVVSTC51cmwsIEljb25JbmZvLnVy
bCwgSWNvbkluZm8uc3RhbXAgRlJPTSBQYWdlVVJMIElOTkVSIEpPSU4gSWNvbkluZm8gT04gUGFn
ZVVSTC5pY29uSUQ9SWNvbkluZm8uaWNvbklEIFdIRVJFIEljb25JbmZvLnN0YW1wID4gJS4wZjsi
LCBmbG9vcihjdXJyZW50VGltZSgpIC0gbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSkpOworICAg
IFN0cmluZyBpbXBvcnRRdWVyeSA9IFN0cmluZzo6Zm9ybWF0KCJTRUxFQ1QgUGFnZVVSTC51cmws
IEljb25JbmZvLnVybCwgSWNvbkluZm8uc3RhbXAgRlJPTSBQYWdlVVJMIElOTkVSIEpPSU4gSWNv
bkluZm8gT04gUGFnZVVSTC5pY29uSUQ9SWNvbkluZm8uaWNvbklEIFdIRVJFIEljb25JbmZvLnN0
YW1wID4gJS4wZjsiLCBmbG9vcigoV2FsbFRpbWU6Om5vdygpIC0gbm90VXNlZEljb25FeHBpcmF0
aW9uVGltZSkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpKTsKIAogICAgIFNRTGl0ZVN0
YXRlbWVudCBxdWVyeShtX3N5bmNEQiwgaW1wb3J0UXVlcnkpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKaW5kZXggYTUzMjM4NmNhMTdm
YjM3OGY4NWIwOGMwZWQ3MjM2MmE2ODJiMDFhZC4uZTU0MjIzOThiODFhYjY2MGI2M2RlYzI1ZTJm
NDQwMjVhNzExNDE0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdB
cmVhUHJveHlJbXBsLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVu
Y2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZWdpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2lmIFBMQVRGT1JNKEdU
SykKICNpbmNsdWRlIDxndGsvZ3RrLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCmluZGV4IDIyMjVl
MzMyNTY2ZjVjYzUxM2Q5NzM1ZWEyZWQ5MWE5MzAyNmEyZGQuLjA2MmU4N2NiZGVlZDA3ODgxZjA0
M2E0YTBlZmExZmQyZGQ4NzNiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuY3BwCkBAIC0zMSwxMSAr
MzEsMTEgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKLSNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgcGx1Z0luQXV0b1N0YXJ0RXhw
aXJhdGlvblRpbWVUaHJlc2hvbGQgPSAzMCAqIDI0ICogNjAgKiA2MDsKK3N0YXRpYyBjb25zdCBT
ZWNvbmRzIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xkIHsgMzAgKiAyNCAq
IDYwICogNjAgfTsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTQ2LDkgKzQ2LDkgQEAgUGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyKFdlYlByb2Nlc3NQ
b29sKiBwcm9jZXNzUG9vbCkKICAgICBtX2F1dG9TdGFydFRhYmxlLmFkZChQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBBdXRvU3RhcnRUYWJsZSgpKTsKIH0KIAotc3RhdGljIGRv
dWJsZSBleHBpcmF0aW9uVGltZUZyb21Ob3coKQorc3RhdGljIFdhbGxUaW1lIGV4cGlyYXRpb25U
aW1lRnJvbU5vdygpCiB7Ci0gICAgcmV0dXJuIGN1cnJlbnRUaW1lKCkgKyBwbHVnSW5BdXRvU3Rh
cnRFeHBpcmF0aW9uVGltZVRocmVzaG9sZDsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpICsg
cGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQ7CiB9CiAKIHZvaWQgUGx1Z0lu
QXV0b1N0YXJ0UHJvdmlkZXI6OmFkZEF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBw
YWdlT3JpZ2luLCB1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCkBAIC02Myw3ICs2Myw3IEBAIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmFk
ZEF1dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1CiAKICAgICBB
dXRvU3RhcnRUYWJsZTo6aXRlcmF0b3IgaXQgPSBtX2F1dG9TdGFydFRhYmxlLmFkZChzZXNzaW9u
SUQsIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQocGFnZU9yaWdpbiwgUGx1
Z0luQXV0b1N0YXJ0T3JpZ2luTWFwKCkpLml0ZXJhdG9yOwogCi0gICAgZG91YmxlIGV4cGlyYXRp
b25UaW1lID0gZXhwaXJhdGlvblRpbWVGcm9tTm93KCk7CisgICAgV2FsbFRpbWUgZXhwaXJhdGlv
blRpbWUgPSBleHBpcmF0aW9uVGltZUZyb21Ob3coKTsKICAgICBpdC0+dmFsdWUuc2V0KHBsdWdJ
bk9yaWdpbkhhc2gsIGV4cGlyYXRpb25UaW1lKTsKICAgICBzZXNzaW9uSXRlcmF0b3ItPnZhbHVl
LnNldChwbHVnSW5PcmlnaW5IYXNoLCBwYWdlT3JpZ2luKTsKIApAQCAtOTEsMTIgKzkxLDEyIEBA
IFJlZjxBUEk6OkRpY3Rpb25hcnk+IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRP
cmlnaW5zVGFibGVDb3B5KCkgY29uc3QKIHsKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUg
bWFwOwogCi0gICAgZG91YmxlIG5vdyA9IGN1cnJlbnRUaW1lKCk7CisgICAgV2FsbFRpbWUgbm93
ID0gV2FsbFRpbWU6Om5vdygpOwogICAgIGZvciAoY29uc3QgYXV0byYgc3RyaW5nT3JpZ2luSGFz
aCA6IG1fYXV0b1N0YXJ0VGFibGUuZ2V0KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklE
KCkpKSB7CiAgICAgICAgIEFQSTo6RGljdGlvbmFyeTo6TWFwVHlwZSBoYXNoTWFwOwogICAgICAg
ICBmb3IgKGNvbnN0IGF1dG8mIG9yaWdpbkhhc2ggOiBzdHJpbmdPcmlnaW5IYXNoLnZhbHVlKSB7
CiAgICAgICAgICAgICBpZiAobm93IDw9IG9yaWdpbkhhc2gudmFsdWUpCi0gICAgICAgICAgICAg
ICAgaGFzaE1hcC5zZXQoU3RyaW5nOjpudW1iZXIob3JpZ2luSGFzaC5rZXkpLCBBUEk6OkRvdWJs
ZTo6Y3JlYXRlKG9yaWdpbkhhc2gudmFsdWUpKTsKKyAgICAgICAgICAgICAgICBoYXNoTWFwLnNl
dChTdHJpbmc6Om51bWJlcihvcmlnaW5IYXNoLmtleSksIEFQSTo6RG91YmxlOjpjcmVhdGUob3Jp
Z2luSGFzaC52YWx1ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSkpOwogICAgICAgICB9
CiAgICAgICAgIGlmIChoYXNoTWFwLnNpemUoKSkKICAgICAgICAgICAgIG1hcC5zZXQoc3RyaW5n
T3JpZ2luSGFzaC5rZXksIEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRlKFdURk1vdmUoaGFzaE1hcCkp
KTsKQEAgLTEwNywyNiArMTA3LDI2IEBAIFJlZjxBUEk6OkRpY3Rpb25hcnk+IFBsdWdJbkF1dG9T
dGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3QKIAogdm9pZCBQ
bHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKEFQSTo6RGlj
dGlvbmFyeSYgdGFibGUpCiB7Ci0gICAgc2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1z
UGFzc2luZ1Rlc3QodGFibGUsIFtdKGRvdWJsZSkgeworICAgIHNldEF1dG9TdGFydE9yaWdpbnNU
YWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KHRhYmxlLCBbXShXYWxsVGltZSkgewogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9KTsKIH0KIAotdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6
c2V0QXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZShBUEk6
OkRpY3Rpb25hcnkmIHRhYmxlLCBkb3VibGUgdGltZSkKK3ZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJv
dmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRp
bWUoQVBJOjpEaWN0aW9uYXJ5JiB0YWJsZSwgV2FsbFRpbWUgdGltZSkKIHsKLSAgICBkb3VibGUg
YWRqdXN0ZWRUaW1lc3RhbXAgPSB0aW1lICsgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVU
aHJlc2hvbGQ7Ci0gICAgc2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rl
c3QodGFibGUsIFthZGp1c3RlZFRpbWVzdGFtcF0oZG91YmxlIGV4cGlyYXRpb25UaW1lc3RhbXAp
IHsKKyAgICBXYWxsVGltZSBhZGp1c3RlZFRpbWVzdGFtcCA9IHRpbWUgKyBwbHVnSW5BdXRvU3Rh
cnRFeHBpcmF0aW9uVGltZVRocmVzaG9sZDsKKyAgICBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVX
aXRoSXRlbXNQYXNzaW5nVGVzdCh0YWJsZSwgW2FkanVzdGVkVGltZXN0YW1wXShXYWxsVGltZSBl
eHBpcmF0aW9uVGltZXN0YW1wKSB7CiAgICAgICAgIHJldHVybiBhZGp1c3RlZFRpbWVzdGFtcCA+
IGV4cGlyYXRpb25UaW1lc3RhbXA7CiAgICAgfSk7CiB9CiAKLXZvaWQgUGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQ
STo6RGljdGlvbmFyeSYgdGFibGUsIFdURjo6RnVuY3Rpb248Ym9vbChkb3VibGUgZXhwaXJhdGlv
blRpbWVzdGFtcCk+JiYgaXNFeHBpcmF0aW9uVGltZUFjY2VwdGFibGUpCit2b2lkIFBsdWdJbkF1
dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5n
VGVzdChBUEk6OkRpY3Rpb25hcnkmIHRhYmxlLCBXVEY6OkZ1bmN0aW9uPGJvb2woV2FsbFRpbWUg
ZXhwaXJhdGlvblRpbWVzdGFtcCk+JiYgaXNFeHBpcmF0aW9uVGltZUFjY2VwdGFibGUpCiB7CiAg
ICAgQVNTRVJUKGlzRXhwaXJhdGlvblRpbWVBY2NlcHRhYmxlKTsKIAogICAgIG1faGFzaFRvT3Jp
Z2luTWFwLmNsZWFyKCk7CiAgICAgbV9hdXRvU3RhcnRUYWJsZS5jbGVhcigpOwotICAgIEhhc2hN
YXA8dW5zaWduZWQsIGRvdWJsZT4gaGFzaE1hcDsKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBXYWxs
VGltZT4gaGFzaE1hcDsKICAgICBIYXNoTWFwPHVuc2lnbmVkLCBTdHJpbmc+JiBoYXNoVG9Pcmln
aW5NYXAgPSBtX2hhc2hUb09yaWdpbk1hcC5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgU3RyaW5nPigpKS5pdGVyYXRvci0+dmFsdWU7CiAg
ICAgQXV0b1N0YXJ0VGFibGUmIGFzdCA9IG1fYXV0b1N0YXJ0VGFibGUuYWRkKFBBTDo6U2Vzc2lv
bklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1
ZTsKIApAQCAtMTQxLDcgKzE0MSw3IEBAIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNl
dEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQSTo6CiAgICAgICAg
ICAgICBpZiAoaGFzaFRpbWUudmFsdWUtPnR5cGUoKSAhPSBBUEk6OkRvdWJsZTo6QVBJVHlwZSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAgZG91YmxlIGV4cGlyYXRp
b25UaW1lID0gc3RhdGljX2Nhc3Q8QVBJOjpEb3VibGUqPihoYXNoVGltZS52YWx1ZS5nZXQoKSkt
PnZhbHVlKCk7CisgICAgICAgICAgICBXYWxsVGltZSBleHBpcmF0aW9uVGltZSA9IFdhbGxUaW1l
Ojpmcm9tUmF3U2Vjb25kcyhzdGF0aWNfY2FzdDxBUEk6OkRvdWJsZSo+KGhhc2hUaW1lLnZhbHVl
LmdldCgpKS0+dmFsdWUoKSk7CiAgICAgICAgICAgICBpZiAoIWlzRXhwaXJhdGlvblRpbWVBY2Nl
cHRhYmxlKGV4cGlyYXRpb25UaW1lKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAt
MTgyLDcgKzE4Miw3IEBAIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2VpdmVV
c2VySW50ZXJhY3Rpb24odW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBkb3VibGUgbmV3RXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZUZyb21Ob3co
KTsKKyAgICBXYWxsVGltZSBuZXdFeHBpcmF0aW9uVGltZSA9IGV4cGlyYXRpb25UaW1lRnJvbU5v
dygpOwogICAgIG1fYXV0b1N0YXJ0VGFibGUuYWRkKHNlc3Npb25JRCwgQXV0b1N0YXJ0VGFibGUo
KSkuaXRlcmF0b3ItPnZhbHVlLmFkZChpdC0+dmFsdWUsIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1h
cCgpKS5pdGVyYXRvci0+dmFsdWUuc2V0KHBsdWdJbk9yaWdpbkhhc2gsIG5ld0V4cGlyYXRpb25U
aW1lKTsKICAgICBtX3Byb2Nlc3NQb29sLT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OkRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2gocGx1Z0luT3JpZ2luSGFz
aCwgbmV3RXhwaXJhdGlvblRpbWUsIHNlc3Npb25JRCkpOwogICAgIG1fcHJvY2Vzc1Bvb2wtPmNs
aWVudCgpLnBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlc0NoYW5nZWQobV9wcm9jZXNzUG9vbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9T
dGFydFByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1
dG9TdGFydFByb3ZpZGVyLmgKaW5kZXggOThiZjA2NzYzYmY0NDRiZTJlNDk2ODkwZjJjMThiYTVh
MjY2YzI5NS4uYzhkNzEwZTUxNjBmMjg2YWIxODM5OGM1NTRmNjRlMDcyYTRjZDY4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92
aWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
I2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2gu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtNDMsNyArNDQsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAKLXR5cGVkZWYgSGFz
aE1hcDx1bnNpZ25lZCwgZG91YmxlPiBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA7Cit0eXBlZGVm
IEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPiBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA7CiB0
eXBlZGVmIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcD4g
U2Vzc2lvblBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcDsKIHR5cGVkZWYgVmVjdG9yPFN0cmluZz4g
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKIApAQCAtNTcsNyArNTgsNyBAQCBjbGFzcyBQbHVnSW5B
dXRvU3RhcnRQcm92aWRlciB7CiAKICAgICBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBhdXRvU3RhcnRP
cmlnaW5zVGFibGVDb3B5KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFi
bGUoQVBJOjpEaWN0aW9uYXJ5Jik7Ci0gICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zRmlsdGVy
aW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYsIGRvdWJsZSB0aW1l
KTsKKyAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRB
ZnRlclRpbWUoQVBJOjpEaWN0aW9uYXJ5JiwgV2FsbFRpbWUpOwogICAgIHZvaWQgc2V0QXV0b1N0
YXJ0T3JpZ2luc0FycmF5KEFQSTo6QXJyYXkmKTsKIAogICAgIFNlc3Npb25QbHVnSW5BdXRvU3Rh
cnRPcmlnaW5NYXAgYXV0b1N0YXJ0T3JpZ2luSGFzaGVzQ29weSgpIGNvbnN0OwpAQCAtNjYsNyAr
NjcsNyBAQCBjbGFzcyBQbHVnSW5BdXRvU3RhcnRQcm92aWRlciB7CiBwcml2YXRlOgogICAgIFdl
YlByb2Nlc3NQb29sKiBtX3Byb2Nlc3NQb29sOwogCi0gICAgdm9pZCBzZXRBdXRvU3RhcnRPcmln
aW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdChBUEk6OkRpY3Rpb25hcnkmLCBXVEY6OkZ1bmN0
aW9uPGJvb2woZG91YmxlIGV4cGlyYXRpb25UaW1lc3RhbXApPiYmKTsKKyAgICB2b2lkIHNldEF1
dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQSTo6RGljdGlvbmFyeSYs
IFdURjo6RnVuY3Rpb248Ym9vbChXYWxsVGltZSBleHBpcmF0aW9uVGltZXN0YW1wKT4mJik7CiAK
ICAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAsIEFT
Q0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gQXV0b1N0YXJ0VGFibGU7CiAgICAgdHlwZWRlZiBIYXNo
TWFwPFBBTDo6U2Vzc2lvbklELCBBdXRvU3RhcnRUYWJsZT4gU2Vzc2lvbkF1dG9TdGFydFRhYmxl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGI2Zjkw
YTU5MmM5NTJjMTE1MmI5NDQ3MWE4ZDdjMTk0YjViYWNmMDcuLjNmY2FmNWFiNDVkNDY4YzUxZTY0
NDA0MjFhMzI0ZDVjZWZkYzZlZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKQEAgLTgyLDExICs4MiwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VUkxQYXJzZXIuaD4KICNpbmNsdWRlIDxw
YWwvU2Vzc2lvbklELmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUg
PHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAog
I2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQpAQCAtOTQyLDggKzk0Miw4IEBAIHZvaWQgV2Vi
UHJvY2Vzc1Bvb2w6OnByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5KiBw
cm9jZXNzKQogICAgIC8vIHNvIGNoZWNrIGlmIGl0IG5lZWRzIHRvIGJlIHN0YXJ0ZWQgaGVyZQog
ICAgIGlmIChtX21lbW9yeVNhbXBsZXJFbmFibGVkKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBzYW1wbGVMb2dTYW5kYm94SGFuZGxlOyAgICAgICAgCi0gICAgICAgIGRvdWJs
ZSBub3cgPSBXVEY6OmN1cnJlbnRUaW1lKCk7Ci0gICAgICAgIFN0cmluZyBzYW1wbGVMb2dGaWxl
UGF0aCA9IFN0cmluZzo6Zm9ybWF0KCJXZWJQcm9jZXNzJWxsdXBpZCVkIiwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQgbG9uZyBsb25nPihub3cpLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsK
KyAgICAgICAgV2FsbFRpbWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICBTdHJpbmcg
c2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHVwaWQlZCIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obm93LnNlY29uZHNTaW5jZUVwb2NoKCku
c2Vjb25kcygpKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7CiAgICAgICAgIHNhbXBs
ZUxvZ0ZpbGVQYXRoID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5
RmlsZShzYW1wbGVMb2dGaWxlUGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRl
LCBzYW1wbGVMb2dTYW5kYm94SGFuZGxlKTsKICAgICAgICAgCiAgICAgICAgIHByb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlN0YXJ0TWVtb3J5U2FtcGxlcihzYW1wbGVMb2dTYW5k
Ym94SGFuZGxlLCBzYW1wbGVMb2dGaWxlUGF0aCwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwpLCAw
KTsKQEAgLTE0MjUsOCArMTQyNSw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0TWVtb3J5
U2FtcGxlcihjb25zdCBkb3VibGUgaW50ZXJ2YWwpCiAgICAgCiAgICAgLy8gRm9yIFdlYlByb2Nl
c3MKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FtcGxlTG9nU2FuZGJveEhhbmRsZTsg
ICAgCi0gICAgZG91YmxlIG5vdyA9IFdURjo6Y3VycmVudFRpbWUoKTsKLSAgICBTdHJpbmcgc2Ft
cGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHUiLCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG5vdykpOworICAgIFdhbGxUaW1lIG5vdyA9IFdhbGxU
aW1lOjpub3coKTsKKyAgICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1h
dCgiV2ViUHJvY2VzcyVsbHUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG5vdy5z
ZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSkpOwogICAgIHNhbXBsZUxvZ0ZpbGVQYXRoID0g
U2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShzYW1wbGVMb2dG
aWxlUGF0aCwgU2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBzYW1wbGVMb2dTYW5k
Ym94SGFuZGxlKTsKICAgICAKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlBy
b2Nlc3M6OlN0YXJ0TWVtb3J5U2FtcGxlcihzYW1wbGVMb2dTYW5kYm94SGFuZGxlLCBzYW1wbGVM
b2dGaWxlUGF0aCwgaW50ZXJ2YWwpKTsKQEAgLTE3NDgsNyArMTc0OCw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnMoQVBJOjpBcnJheSYgYXJyYXkpCiAg
ICAgbV9wbHVnSW5BdXRvU3RhcnRQcm92aWRlci5zZXRBdXRvU3RhcnRPcmlnaW5zQXJyYXkoYXJy
YXkpOwogfQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5z
RmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYgZGljdGlv
bmFyeSwgZG91YmxlIHRpbWUpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFy
eSYgZGljdGlvbmFyeSwgV2FsbFRpbWUgdGltZSkKIHsKICAgICBtX3BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLnNldEF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRp
bWUoZGljdGlvbmFyeSwgdGltZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaAppbmRleCA0MTI1ODE5Y2I1ODEwMDY4ZmIwNTA2NmI1OTViODAyYTg0NWQ2ZGYzLi4x
YjMxNzU0YzEwMTVmN2FmMWYzM2NmNTY1ZjIxMjRkNGM3ZmIxMzgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTMxNCw3ICszMTQsNyBAQCBjbGFzcyBXZWJQ
cm9jZXNzUG9vbCBmaW5hbCA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5
cGU6OlByb2Nlc3NQbwogICAgIFJlZjxBUEk6OkRpY3Rpb25hcnk+IHBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcygpIGNvbnN0OwogICAgIHZvaWQgc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzKEFQSTo6RGljdGlvbmFyeSYpOwogICAgIHZvaWQgc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
cyhBUEk6OkFycmF5Jik7Ci0gICAgdm9pZCBzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVy
aW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYsIGRvdWJsZSB0aW1l
KTsKKyAgICB2b2lkIHNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVz
QWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0aW9uYXJ5JiwgV2FsbFRpbWUpOwogCiAgICAgLy8gTmV0
d29yayBQcm9jZXNzIE1hbmFnZW1lbnQKICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBlbnN1cmVO
ZXR3b3JrUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3aXRoV2Vic2l0ZURhdGFTdG9yZSA9IG51
bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50LmgKaW5kZXggZmU3MzliMjZkMzFhN2MxMTQ4YmRjMDk1MzZhOTBlMmU4ZDRlNjFj
OC4uNThjNjRkMjBkMTE2ODFjNGQ5NDI5Y2UyZmExY2U0MDg4N2E3YjU5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1
bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0xheW91dE1pbGVzdG9uZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC04MCw3ICs4MSw3IEBAIGNsYXNzIFBh
Z2VMb2FkZXJDbGllbnQgewogCiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0
Rm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0OjpXZWJGcmFtZSYsIFdlYkNvcmU6OkRP
TVdyYXBwZXJXb3JsZCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRp
cmVjdEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmKSB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYktpdDo6
V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYsIGRvdWJsZSAv
KmRlbGF5Ki8sIGRvdWJsZSAvKmRhdGUqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZy
YW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBkb3VibGUgLypkZWxheSovLCBXYWxsVGltZSAvKmRh
dGUqLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1l
KFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmKSB7IH0KIAogICAgIHZpcnR1YWwg
dm9pZCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdl
YktpdDo6V2ViRnJhbWUmLCBXZWJDb3JlOjpET01XcmFwcGVyV29ybGQmKSB7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNDhmZDFiYTQx
MGU0YjNjZmE5YjU1ZTU4N2RlZjQxZWFjNzE5NTUwNC4uZTQxZTgzMTgwOTkwNGJlZWM2YmVkYmQ5
ZDAzNzI2ZmY4ODBkNDM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudC5jcHAKQEAgLTI4MywxMiArMjgzLDEyIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50OjpkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2Um
IHBhCiAgICAgbV9jbGllbnQuZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh0b0FQSSgm
cGFnZSksIHRvQVBJKCZmcmFtZSksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKLXZv
aWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0Rm9yRnJhbWUoV2ViUGFnZSYgcGFnZSwgV2ViRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcm
IHVybCwgZG91YmxlIGRlbGF5LCBkb3VibGUgZGF0ZSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViUGFnZSYg
cGFnZSwgV2ViRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBX
YWxsVGltZSBkYXRlKQogewogICAgIGlmICghbV9jbGllbnQud2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2NsaWVudC53aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b1VS
TFJlZih1cmwuaW1wbCgpKSwgZGVsYXksIGRhdGUsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7
CisgICAgbV9jbGllbnQud2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHRvQVBJKCZw
YWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9VUkxSZWYodXJsLmltcGwoKSksIGRlbGF5LCBkYXRlLnNl
Y29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwog
fQogCiB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkSGFuZGxlT25sb2Fk
RXZlbnRzRm9yRnJhbWUoV2ViUGFnZSYgcGFnZSwgV2ViRnJhbWUmIGZyYW1lKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmluZGV4IGRjYjBjZmNiYTBiNGFl
NWY0MDRiNzI3YWQ0M2JjNDI2MTM5MmFhMjMuLmE5MGVkNjBhZjFmZTY5NWE5YTU0NTU2OWYwM2Ex
MDgwMjVmOGQ0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50LmgKQEAgLTczLDcgKzczLDcgQEAgY2xhc3MgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50IDogcHVibGljIEFQSTo6Q2xpZW50PFdLQnVuZGxlUGFnZUxvYWRlckNsaWUKIAogICAgIHZv
aWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RGb3JGcmFtZShXZWJQYWdlJiwgV2ViRnJhbWUmLCBXZWJD
b3JlOjpET01XcmFwcGVyV29ybGQmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUoV2ViUGFnZSYsIFdlYkZyYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViUGFnZSYsIFdlYkZyYW1lJiwg
Y29uc3QgV1RGOjpTdHJpbmcmLCBkb3VibGUgLypkZWxheSovLCBkb3VibGUgLypkYXRlKi8pIG92
ZXJyaWRlOworICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBh
Z2UmLCBXZWJGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgZG91YmxlIC8qZGVsYXkqLywgV2Fs
bFRpbWUgLypkYXRlKi8pIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkSGFuZGxlT25sb2FkRXZlbnRz
Rm9yRnJhbWUoV2ViUGFnZSYsIFdlYkZyYW1lJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGdsb2Jh
bE9iamVjdElzQXZhaWxhYmxlRm9yRnJhbWUoV2ViUGFnZSYsIFdlYkZyYW1lJiwgV2ViQ29yZTo6
RE9NV3JhcHBlcldvcmxkJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAppbmRleCAxZTk4YjQ4M2IxODk4ZWEyNWUxMGRhY2MzMDYwYWMwNGE3ZGNjYTA1Li4yMzljNDQw
OGJmMmE4ZmE1NWVmNGQ0NmU5ODVlOTNlYTZhZGQ2OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKQEAgLTMzNSw3ICszMzUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkKICAgICB3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUobV9m
cmFtZS0+ZnJhbWVJRCgpKSk7CiB9CiAKLXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3Bh
dGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwmIHVybCwgZG91YmxlIGludGVy
dmFsLCBkb3VibGUgZmlyZURhdGUpCit2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJMJiB1cmwsIGRvdWJsZSBpbnRlcnZh
bCwgV2FsbFRpbWUgZmlyZURhdGUpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUt
PnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmlu
ZGV4IGI2ODAzMmUyOTBkMzcxMDE2YzgxZjVlNzgwMTY0OTNlOThmNzQ3MzQuLmVmYmYyODdhMWVk
ZTRlNDcxYzc5OTU2MDE5MjcwMThkOWQ2YjcwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCkBAIC0xMDMsNyArMTAzLDcgQEAgY2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgZmluYWwg
OiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKICAgICB2
b2lkIGRpc3BhdGNoRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkwoKSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNo
V2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50
ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBX
YWxsVGltZSBmaXJlRGF0ZSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0
aW9uV2l0aGluUGFnZSgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRo
aW5QYWdlKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlcGxhY2VTdGF0ZVdpdGhpblBh
Z2UoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA4
NWVmM2Y5MzI0MmFmYzJmYWJkMTE0NjdhNDE0MjY0NzA1ODlmYmIzLi5mYTUxOTI0MjJlMjhiZDJi
ZDU2ODQzZGU4NTcwYmIzNjk0Nzg1MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCkBAIC0xNTEsNyArMTUxLDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCiAvLyBUaGlzIHNob3VsZCBiZSBsZXNzIHRoYW4gcGx1Z0lu
QXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQgaW4gUGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXIuCi1zdGF0aWMgY29uc3QgZG91YmxlIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVXBk
YXRlVGhyZXNob2xkID0gMjkgKiAyNCAqIDYwICogNjA7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBw
bHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVVwZGF0ZVRocmVzaG9sZCB7IDI5ICogMjQgKiA2
MCAqIDYwIH07CiAKIC8vIFRoaXMgc2hvdWxkIGJlIGdyZWF0ZXIgdGhhbiB0aWxlUmV2YWxpZGF0
aW9uVGltZW91dCBpbiBUaWxlQ29udHJvbGxlci4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIG5vblZp
c2libGVQcm9jZXNzQ2xlYW51cERlbGF5IHsgMTBfcyB9OwpAQCAtMjAyLDcgKzIwMiw3IEBAIFdl
YlByb2Nlc3M6OldlYlByb2Nlc3MoKQogICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI+KCk7CiAjZW5kaWYKIAotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
LmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+KCkpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6
OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGlt
ZT4oKSk7CiAKICAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0Tm90aWZpY2F0
aW9uQ2FsbGJhY2soW3RoaXNdIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJiBzdGF0
aXN0aWNzKSB7CiAgICAgICAgIEFTU0VSVCghc3RhdGlzdGljcy5pc0VtcHR5KCkpOwpAQCAtODAw
LDggKzgwMCw4IEBAIHN0YXRpYyB1bnNpZ25lZCBoYXNoRm9yUGx1Z0luT3JpZ2luKGNvbnN0IFN0
cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnCiAKIGJvb2wgV2ViUHJvY2Vzczo6
aXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKLSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBI
YXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9y
ID0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZmluZChzZXNzaW9uSUQpOwotICAgIEhh
c2hNYXA8dW5zaWduZWQsIGRvdWJsZT46OmNvbnN0X2l0ZXJhdG9yIGl0OworICAgIEhhc2hNYXA8
UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPj46OmNvbnN0X2l0ZXJh
dG9yIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQo
c2Vzc2lvbklEKTsKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT46OmNvbnN0X2l0ZXJh
dG9yIGl0OwogICAgIGJvb2wgY29udGFpbnMgPSBmYWxzZTsKIAogICAgIGlmIChzZXNzaW9uSXRl
cmF0b3IgIT0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZW5kKCkpIHsKQEAgLTgxNCw3
ICs4MTQsNyBAQCBib29sIFdlYlByb2Nlc3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1
bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlcwogICAgICAgICBpZiAoaXQgPT0gc2Vz
c2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9Ci0gICAgcmV0dXJuIGN1cnJlbnRUaW1lKCkgPCBpdC0+dmFsdWU7CisgICAgcmV0dXJuIFdh
bGxUaW1lOjpub3coKSA8IGl0LT52YWx1ZTsKIH0KIAogYm9vbCBXZWJQcm9jZXNzOjpzaG91bGRQ
bHVnSW5BdXRvU3RhcnRGcm9tT3JpZ2luKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFN0cmluZyYg
cGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUpCkBAIC04NTEsMjggKzg1MSwyOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0
YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZwogICAg
IC8vIGNvbWVzIGJhY2sgZnJvbSB0aGUgcGFyZW50IHByb2Nlc3MuIFRlbXBvcmFyaWx5IGFkZCB0
aGlzIGhhc2ggdG8gdGhlIGxpc3Qgd2l0aCBhIHRoaXJ0eQogICAgIC8vIHNlY29uZCB0aW1lb3V0
LiBUaGF0IHdheSwgZXZlbiBpZiB0aGUgcGFyZW50IGRlY2lkZXMgbm90IHRvIGFkZCBpdCwgd2Un
bGwgb25seSBiZQogICAgIC8vIGluY29ycmVjdCBmb3IgYSBsaXR0bGUgd2hpbGUuCi0gICAgbV9w
bHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuYWRkKHNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25l
ZCwgZG91YmxlPigpKS5pdGVyYXRvci0+dmFsdWUuc2V0KHBsdWdJbk9yaWdpbkhhc2gsIGN1cnJl
bnRUaW1lKCkgKyAzMCAqIDEwMDApOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
LmFkZChzZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPigpKS5pdGVyYXRvci0+
dmFsdWUuc2V0KHBsdWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lOjpub3coKSArIDMwX3MgKiAxMDAw
KTsKIAogICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBy
b2Nlc3NQb29sOjpBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHBhZ2VPcmlnaW4sIHBsdWdJ
bk9yaWdpbkhhc2gsIHNlc3Npb25JRCksIDApOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZEFk
ZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91
YmxlIGV4cGlyYXRpb25UaW1lLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlBy
b2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3Jp
Z2luSGFzaCwgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCkKIHsKICAgICAvLyBXaGVuIGNhbGxlZCwgc29tZSB3ZWIgcHJvY2VzcyAod2hpY2ggYWxzbyBt
aWdodCBiZSB0aGlzIG9uZSkgYWRkZWQgdGhlIG9yaWdpbiBmb3IgYXV0by1zdGFydGluZywKICAg
ICAvLyBvciByZWNlaXZlZCB1c2VyIGludGVyYWN0aW9uLgogICAgIC8vIFNldCB0aGUgYml0IHRv
IGF2b2lkIGhhdmluZyByZWR1bmRhbnRseSBjYWxsIGludG8gdGhlIFVJIHByb2Nlc3MgdXBvbiB1
c2VyIGludGVyYWN0aW9uLgotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChz
ZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnNl
dChwbHVnSW5PcmlnaW5IYXNoLCBleHBpcmF0aW9uVGltZSk7CisgICAgbV9wbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXMuYWRkKHNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+
KCkpLml0ZXJhdG9yLT52YWx1ZS5zZXQocGx1Z0luT3JpZ2luSGFzaCwgZXhwaXJhdGlvblRpbWUp
OwogfQogCi12b2lkIFdlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVs
dEhhc2hlcyhjb25zdCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+JiBoYXNoZXMpCit2b2lkIFdl
YlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhjb25zdCBI
YXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4mIGhhc2hlcykKIHsKICAgICBtX3BsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2hlcy5jbGVhcigpOwotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2ln
bmVkLCBkb3VibGU+KCkpLml0ZXJhdG9yLT52YWx1ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1
bnNpZ25lZCwgZG91YmxlPiY+KGhhc2hlcykpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVu
c2lnbmVkLCBXYWxsVGltZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnN3YXAoY29uc3RfY2FzdDxIYXNo
TWFwPHVuc2lnbmVkLCBXYWxsVGltZT4mPihoYXNoZXMpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
OjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKQordm9pZCBXZWJQcm9j
ZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6
U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4+JiBoYXNoZXMpCiB7Ci0gICAg
bV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8UEFM
OjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+Jj4oaGFzaGVzKSk7CisgICAg
bV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8UEFM
OjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPj4mPihoYXNoZXMpKTsKIH0K
IAogdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0
IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKQEAgLTg4NCw4ICs4ODQs
OCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29u
c3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdAogICAgIGlmICghcGx1Z0luT3JpZ2luSGFzaCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1
bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBIYXNoTWFwPHVu
c2lnbmVkLCBkb3VibGU+Ojpjb25zdF9pdGVyYXRvciBpdDsKKyAgICBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNz
aW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25J
RCk7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+Ojpjb25zdF9pdGVyYXRvciBpdDsK
ICAgICBib29sIGNvbnRhaW5zID0gZmFsc2U7CiAgICAgaWYgKHNlc3Npb25JdGVyYXRvciAhPSBt
X3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5lbmQoKSkgewogICAgICAgICBpdCA9IHNlc3Np
b25JdGVyYXRvci0+dmFsdWUuZmluZChwbHVnSW5PcmlnaW5IYXNoKTsKQEAgLTg5OCw3ICs4OTgs
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29u
c3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBjb25zdAogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChpdC0+dmFsdWUgLSBjdXJyZW50VGltZSgpID4gcGx1Z0luQXV0b1N0YXJ0RXhw
aXJhdGlvblRpbWVVcGRhdGVUaHJlc2hvbGQpCisgICAgaWYgKGl0LT52YWx1ZSAtIFdhbGxUaW1l
Ojpub3coKSA+IHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVXBkYXRlVGhyZXNob2xkKQog
ICAgICAgICByZXR1cm47CiAKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6UGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihw
bHVnSW5PcmlnaW5IYXNoLCBzZXNzaW9uSUQpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCmluZGV4IDUyYjlkM2ZlYzQ0MzQ1NjQ3YjU0NjE2NTJiYTkzNzllZWYxYWUwZjgu
LjllNzlmZWJiMmNjOTU0OWU5YTJhOGUwYmIxMDAyMzc0MzczZTFiYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMjgwLDkgKzI4MCw5IEBAIGNsYXNzIFdlYlByb2Nl
c3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNzIHsKICAgICB2b2lkIGZ1bGxLZXlib2FyZEFjY2Vzc01v
ZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZCk7CiAKICAgICBib29sIGlz
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6
OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVu
c2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgUEFMOjpTZXNz
aW9uSUQpOwotICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5EZWZhdWx0SGFzaGVz
KGNvbnN0IEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4mIGhhc2hlcyk7Ci0gICAgdm9pZCByZXNl
dFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vzc2lvbklE
LCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiYgaGFzaGVzKTsKKyAgICB2b2lkIGRpZEFkZFBs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgV2FsbFRp
bWUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEKTsKKyAgICB2b2lkIHJlc2V0UGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhjb25zdCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxs
VGltZT4mIGhhc2hlcyk7CisgICAgdm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hl
cyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGlt
ZT4+JiBoYXNoZXMpOwogCiAgICAgdm9pZCBwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2Rl
bCk7CiAKQEAgLTM4Niw3ICszODYsNyBAQCBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIENoaWxk
UHJvY2VzcyB7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0
Y2hlcj4gbV93ZWJJbnNwZWN0b3JJbnRlcnJ1cHREaXNwYXRjaGVyOwogCi0gICAgSGFzaE1hcDxQ
QUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4gbV9wbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNp
Z25lZCwgV2FsbFRpbWU+PiBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKICAgICBIYXNo
U2V0PFN0cmluZz4gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5zOwogCiAgICAgYm9vbCBtX2hhc1Nl
dENhY2hlTW9kZWwgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA1Nzk4ZDdkMTRmMzdjMTQ2ODk1ZWYxYTI5ZDYwYjNi
YWE0M2MxY2UwLi41NTNkZTQ2YzY2ZGY3YTU3MTgyMzZiZWRlYWEzZjYxNzYzZWU1MWE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
NTEsOSArNTEsOSBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBEZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiAKICAgICAjIFBsdWct
aW5zLgotICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwg
ZG91YmxlIGV4cGlyYXRpb25UaW1lLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgUmVz
ZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5EZWZhdWx0SGFzaGVzKEhhc2hNYXA8dWludDMyX3QsZG91
YmxlPiBoYXNoZXMpCi0gICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1h
cDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1aW50MzJfdCxkb3VibGU+PiBoYXNoZXMpCisgICAg
RGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1aW50MzJfdCBoYXNoLCBXYWxsVGltZSBl
eHBpcmF0aW9uVGltZSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQorICAgIFJlc2V0UGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhIYXNoTWFwPHVpbnQzMl90LFdhbGxUaW1lPiBo
YXNoZXMpCisgICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDxQQUw6
OlNlc3Npb25JRCwgSGFzaE1hcDx1aW50MzJfdCxXYWxsVGltZT4+IGhhc2hlcykKICAgICBTZXRQ
bHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVpbnQ4X3QgcG9saWN5LCBTdHJpbmcgaG9zdCwgU3RyaW5n
IGJ1bmRsZUlkZW50aWZpZXIsIFN0cmluZyB2ZXJzaW9uU3RyaW5nKQogICAgIFJlc2V0UGx1Z2lu
TG9hZENsaWVudFBvbGljaWVzKEhhc2hNYXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1Z2luTG9hZENsaWVudFBvbGljaWVzKQogICAgIENsZWFy
UGx1Z2luQ2xpZW50UG9saWNpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggNzY0
OWVhM2M0MDU3YWNkNjA0Y2NlYWZlNDFmODc4NzU2ODZkYzJhMS4uMzRjNDZmZjMxYTY1NDY5YTRi
YTQ3OWEzN2E3MGZjNWI5Mjk1OGJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0x
MDYsNyArMTA2LDcgQEAgY2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29y
ZTo6RnJhbWVMb2FkZXJDbGllbnQgewogICAgIHZvaWQgZGlzcGF0Y2hEaWREaXNwYXRjaE9ubG9h
ZEV2ZW50cygpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QoKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBm
aXJlRGF0ZSkgZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBXYWxsVGltZSBmaXJlRGF0
ZSkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgp
IGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlcGxhY2VTdGF0ZVdpdGhpblBhZ2UoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQubW0KaW5kZXggNjI3YjNlNDEzNDczMTI4ZjE1NTE0NzI3NDgy
MGM3YWQyMmRmNzhhZS4uN2Y4NTY0YWYyOTcwM2JiNmM1Zjc0NmEzOTFhZDQzNDliZmIxYTk2NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW0KQEAgLTU5OCwxMyArNTk4LDEzIEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKQog
ICAgICAgICBDYWxsRnJhbWVMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25zLT5kaWRDYW5jZWxD
bGllbnRSZWRpcmVjdEZvckZyYW1lRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZTopLCBtX3dlYkZyYW1lLmdldCgpKTsKIH0KIAot
dm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0KGNvbnN0IFVSTCYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBmaXJlRGF0ZSkKK3ZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBVUkwmIHVybCwgZG91YmxlIGRlbGF5LCBXYWxsVGltZSBmaXJlRGF0ZSkKIHsKICAgICBX
ZWJWaWV3ICp3ZWJWaWV3ID0gZ2V0V2ViVmlldyhtX3dlYkZyYW1lLmdldCgpKTsKICAgICBXZWJG
cmFtZUxvYWREZWxlZ2F0ZUltcGxlbWVudGF0aW9uQ2FjaGUqIGltcGxlbWVudGF0aW9ucyA9IFdl
YlZpZXdHZXRGcmFtZUxvYWREZWxlZ2F0ZUltcGxlbWVudGF0aW9ucyh3ZWJWaWV3KTsKICAgICBp
ZiAoaW1wbGVtZW50YXRpb25zLT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkxEZWxheUZp
cmVEYXRlRm9yRnJhbWVGdW5jKSB7CiAgICAgICAgIE5TVVJMICpjb2NvYVVSTCA9IHVybDsKLSAg
ICAgICAgQ2FsbEZyYW1lTG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9ucy0+d2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdFRvVVJMRGVsYXlGaXJlRGF0ZUZvckZyYW1lRnVuYywgd2ViVmlldywgQHNl
bGVjdG9yKHdlYlZpZXc6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOmRlbGF5OmZpcmVE
YXRlOmZvckZyYW1lOiksIGNvY29hVVJMLCBkZWxheSwgW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRl
cnZhbFNpbmNlMTk3MDpmaXJlRGF0ZV0sIG1fd2ViRnJhbWUuZ2V0KCkpOworICAgICAgICBDYWxs
RnJhbWVMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25zLT53aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkxEZWxheUZpcmVEYXRlRm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
Vmlldzp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVsYXk6ZmlyZURhdGU6Zm9yRnJh
bWU6KSwgY29jb2FVUkwsIGRlbGF5LCBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2Ux
OTcwOmZpcmVEYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpXSwgbV93ZWJGcmFtZS5n
ZXQoKSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggYzU5
MzM1NjE5ZTY3NjYxZjRhNDE3M2UyMzc4ZDY0YTM2OGYwMTcwZi4uZmQ4NGMxY2U1Y2YxYTNkMjU2
MzI1ZGJkZmExMDlkMjY3MzMxZDczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApA
QCAtMzU0LDEyICszNTQsMTIgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpCiAgICAgICAgIGZyYW1lTG9hZERlbGVnYXRlLT5kaWRD
YW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKHdlYlZpZXcsIG1fd2ViRnJhbWUpOwogfQogCi12
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgVVJMJiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGZpcmVEYXRlKQordm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFVSTCYgdXJsLCBkb3VibGUgZGVsYXksIFdhbGxUaW1lIGZpcmVEYXRlKQogewogICAgIFdl
YlZpZXcqIHdlYlZpZXcgPSBtX3dlYkZyYW1lLT53ZWJWaWV3KCk7CiAgICAgQ09NUHRyPElXZWJG
cmFtZUxvYWREZWxlZ2F0ZT4gZnJhbWVMb2FkRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRCh3
ZWJWaWV3LT5mcmFtZUxvYWREZWxlZ2F0ZSgmZnJhbWVMb2FkRGVsZWdhdGUpKSkKLSAgICAgICAg
ZnJhbWVMb2FkRGVsZWdhdGUtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTCh3ZWJWaWV3
LCBCU3RyaW5nKHVybC5zdHJpbmcoKSksIGRlbGF5LCBNYXJzaGFsbGluZ0hlbHBlcnM6OkNGQWJz
b2x1dGVUaW1lVG9EQVRFKGZpcmVEYXRlKSwgbV93ZWJGcmFtZSk7CisgICAgICAgIGZyYW1lTG9h
ZERlbGVnYXRlLT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkwod2ViVmlldywgQlN0cmlu
Zyh1cmwuc3RyaW5nKCkpLCBkZWxheSwgTWFyc2hhbGxpbmdIZWxwZXJzOjpDRkFic29sdXRlVGlt
ZVRvREFURShmaXJlRGF0ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSksIG1fd2ViRnJh
bWUpOwogfQogCiB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENoYW5nZUxv
Y2F0aW9uV2l0aGluUGFnZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAwMWEwZWVm
MzY1YjAzMzNhMjY0YjkzMGE0MWNmYzRmMjFhOGE0MjAyLi45YjgzMzNiYzFhYjk5NjdiNmY3ZTM5
YTI1Yjc1NGZmMzQ5ODA4NjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTg1LDcg
Kzg1LDcgQEAgY2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RnJh
bWVMb2FkZXJDbGllbnQsIHB1YmxpYyBXZWJDb3JlOjoKICAgICB2b2lkIGRpc3BhdGNoRGlkRGlz
cGF0Y2hPbmxvYWRFdmVudHMoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2
ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBk
aXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNw
YXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91Ymxl
IGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hX
aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRl
cnZhbCwgV2FsbFRpbWUgZmlyZURhdGUpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRD
aGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlk
UHVzaFN0YXRlV2l0aGluUGFnZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZXBs
YWNlU3RhdGVXaXRoaW5QYWdlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L3dpbi9XZWJEb3dubG9hZC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRG93
bmxvYWQuaAppbmRleCA2YWQ3MzQ2OGE3MjBhOTc5ZGYwNjYyZjRjZWJlYWZiYTMzMTA5YWU0Li44
NDg4NWYyNGZiODM0YTJkZmNhODJlZWI3OWUxOWM3MTkxMDRhNDcyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkRvd25sb2FkLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJXZWJLaXQu
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NPTVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogI2lmIFVTRShDRlVSTENPTk5FQ1RJT04pCkBAIC0xMTcsOCArMTE4LDggQEAgY2xh
c3MgV2ViRG93bmxvYWQKICAgICBDT01QdHI8SVdlYkRvd25sb2FkRGVsZWdhdGU+IG1fZGVsZWdh
dGU7CiAKICNpZm5kZWYgTkRFQlVHCi0gICAgZG91YmxlIG1fc3RhcnRUaW1lOwotICAgIGRvdWJs
ZSBtX2RhdGFUaW1lOworICAgIFdhbGxUaW1lIG1fc3RhcnRUaW1lOworICAgIFdhbGxUaW1lIG1f
ZGF0YVRpbWU7CiAgICAgaW50IG1fcmVjZWl2ZWQ7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEb3dubG9hZENGTmV0LmNwcCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkRvd25sb2FkQ0ZOZXQuY3BwCmluZGV4IDI2ZWY1ZDlkNzRkNDQ3YmFi
ZGVjNzUzNjE2ZDgxOGJlZmUzNTcyYWMuLjhlNzE5NzljYTk3ZmQ1NTAyZWFjYjJkZWNjZTlhZjYz
OTA3NTY1YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkRvd25sb2Fk
Q0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkRvd25sb2FkQ0ZOZXQu
Y3BwCkBAIC0zNDUsOSArMzQ1LDkgQEAgSFJFU1VMVCBXZWJEb3dubG9hZDo6dXNlQ3JlZGVudGlh
bChfSW5fb3B0XyBJV2ViVVJMQ3JlZGVudGlhbCogY3JlZGVudGlhbCwgX0luX28KIHZvaWQgV2Vi
RG93bmxvYWQ6OmRpZFN0YXJ0KCkKIHsKICNpZm5kZWYgTkRFQlVHCi0gICAgbV9zdGFydFRpbWUg
PSBtX2RhdGFUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBtX3N0YXJ0VGltZSA9IG1fZGF0YVRp
bWUgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgbV9yZWNlaXZlZCA9IDA7Ci0gICAgTE9HKERvd25s
b2FkLCAiRE9XTkxPQUQgLSBTdGFydGVkICVwIGF0ICUuM2Ygc2Vjb25kcyIsIHRoaXMsIG1fc3Rh
cnRUaW1lKTsKKyAgICBMT0coRG93bmxvYWQsICJET1dOTE9BRCAtIFN0YXJ0ZWQgJXAgYXQgJS4z
ZiBzZWNvbmRzIiwgdGhpcywgbV9zdGFydFRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRz
KCkpOwogI2VuZGlmCiAgICAgaWYgKEZBSUxFRChtX2RlbGVnYXRlLT5kaWRCZWdpbih0aGlzKSkp
CiAgICAgICAgIExPR19FUlJPUigiRG93bmxvYWREZWxlZ2F0ZS0+ZGlkQmVnaW4gZmFpbGVkIik7
CkBAIC00MTEsOSArNDExLDkgQEAgdm9pZCBXZWJEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEoQ0ZJ
bmRleCBsZW5ndGgpCiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIG1fcmVjZWl2ZWQgKz0gbGVuZ3Ro
OwotICAgIGRvdWJsZSBjdXJyZW50ID0gY3VycmVudFRpbWUoKTsKLSAgICBpZiAoY3VycmVudCAt
IG1fZGF0YVRpbWUgPiAyLjApCi0gICAgICAgIExPRyhEb3dubG9hZCwgIkRPV05MT0FEIC0gJXAg
aGFuZ2VkIGZvciAlLjNmIHNlY29uZHMgLSBSZWNlaXZlZCAlaSBieXRlcyBmb3IgYSB0b3RhbCBv
ZiAlaSIsIHRoaXMsIGN1cnJlbnQgLSBtX2RhdGFUaW1lLCBsZW5ndGgsIG1fcmVjZWl2ZWQpOwor
ICAgIFdhbGxUaW1lIGN1cnJlbnQgPSBXYWxsVGltZTo6bm93KCk7CisgICAgaWYgKChjdXJyZW50
IC0gbV9kYXRhVGltZSkgPiAyX3MpCisgICAgICAgIExPRyhEb3dubG9hZCwgIkRPV05MT0FEIC0g
JXAgaGFuZ2VkIGZvciAlLjNmIHNlY29uZHMgLSBSZWNlaXZlZCAlaSBieXRlcyBmb3IgYSB0b3Rh
bCBvZiAlaSIsIHRoaXMsIChjdXJyZW50IC0gbV9kYXRhVGltZSkuc2Vjb25kcygpLCBsZW5ndGgs
IG1fcmVjZWl2ZWQpOwogICAgIG1fZGF0YVRpbWUgPSBjdXJyZW50OwogI2VuZGlmCiAgICAgaWYg
KEZBSUxFRChtX2RlbGVnYXRlLT5kaWRSZWNlaXZlRGF0YU9mTGVuZ3RoKHRoaXMsIGxlbmd0aCkp
KQpAQCAtNDU4LDcgKzQ1OCw3IEBAIHZvaWQgV2ViRG93bmxvYWQ6OmRpZENyZWF0ZURlc3RpbmF0
aW9uKENGVVJMUmVmIGRlc3RpbmF0aW9uKQogdm9pZCBXZWJEb3dubG9hZDo6ZGlkRmluaXNoKCkK
IHsKICNpZm5kZWYgTkRFQlVHCi0gICAgTE9HKERvd25sb2FkLCAiRE9XTkxPQUQgLSBGaW5pc2hl
ZCAlcCBhZnRlciAlaSBieXRlcyBhbmQgJS4zZiBzZWNvbmRzIiwgdGhpcywgbV9yZWNlaXZlZCwg
Y3VycmVudFRpbWUoKSAtIG1fc3RhcnRUaW1lKTsKKyAgICBMT0coRG93bmxvYWQsICJET1dOTE9B
RCAtIEZpbmlzaGVkICVwIGFmdGVyICVpIGJ5dGVzIGFuZCAlLjNmIHNlY29uZHMiLCB0aGlzLCBt
X3JlY2VpdmVkLCAoV2FsbFRpbWU6Om5vdygpIC0gbV9zdGFydFRpbWUpLnNlY29uZHMoKSk7CiAj
ZW5kaWYKIAogICAgIEFTU0VSVCghbV9idW5kbGVQYXRoLmlzRW1wdHkoKSAmJiAhbV9kZXN0aW5h
dGlvbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDBjOTdiM2M5YmNiODZkYTgxMTUzOWJkZWM4YzA4Zjg0OGUwOWM1OWIuLjJm
NDRiNGUwNTc5YTA1MjdiZWRlMWQ5YTZiYjQ1NDVkNjFiOTc2NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNCBAQAogMjAxOC0w
Mi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAorICAgICAgICBS
ZW1vdmUgY3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcDoKKyAgICAgICAgKHByZWNpc2VUaW1lQ2FsbGJhY2spOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c2V0TW9j
a0dlb2xvY2F0aW9uUG9zaXRpb24pOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NvbmRpdGlvbi5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGhyZWFk
R3JvdXAuY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5j
cHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5j
cHA6CisgICAgICAgIChXVFI6Okdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrOjpzZXRQb3NpdGlvbik6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6cHJlY2lzZVRpbWUpOgorCisyMDE4LTAyLTIy
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCiAgICAgICAgIFJlbW92
ZSBzbGVlcChkb3VibGUpIGFuZCBzbGVlcE1TKGRvdWJsZSkgaW50ZXJmYWNlcwogICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDM4CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggNDBhZmQxMGM1ZWM4ZTFjNTM4YjRhODg3MTJiYTNi
ZTkxNGRlMWQ0Yi4uNzJjNjQ1YzAxOWZmNzkwZTAwODg5MWQ5ZmFlMDE5ODFhMTM0MGRmOSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTQ4LDEyICs0OCwxMiBAQAogI2luY2x1
ZGUgPGxvY2FsZS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlv
bnMuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTG9nZ2lu
Z0FjY3VtdWxhdG9yLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU3Rk
TGliRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xNzY4LDcgKzE3NjgsNyBA
QCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRCYWNraW5nU2NhbGVGYWN0b3JDYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZQogCiBzdGF0aWMgSlNWYWx1ZVJlZiBwcmVjaXNlVGlt
ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VO
dW1iZXIoY29udGV4dCwgV1RGOjpjdXJyZW50VGltZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VOdW1iZXIoY29udGV4dCwgV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vj
b25kcygpKTsKIH0KIAogc3RhdGljIEpTVmFsdWVSZWYgaW1hZ2VDb3VudEluR2VuZXJhbFBhc3Rl
Ym9hcmRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IDk0OGFiYTA3NTJjZThiMjFmODNkZDcz
NDNlNzUwM2UwZDJmMjI2ZjAuLjFlOWQ2MjdiNWI1YmY2MTJhYWViZDNhYWZjYTYyM2M3ZGU1ZTM2
YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1t
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC03NCw5
ICs3NCw5IEBACiAjaW1wb3J0IDxXZWJLaXQvV2ViU3RvcmFnZU1hbmFnZXJQcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJLaXQvV2ViVmlldy5oPgogI2ltcG9ydCA8V2ViS2l0L1dlYlZpZXdQcml2YXRl
Lmg+Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvV2FsbFRpbWUuaD4KIAog
I2lmICFQTEFURk9STShJT1MpCiAjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KQEAgLTQ0Nyw5
ICs0NDcsOSBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uKGRv
dWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZAogICAgIFdlYkdlb2xvY2F0aW9uUG9z
aXRpb24gKnBvc2l0aW9uID0gbmlsOwogICAgIGlmICghcHJvdmlkZXNBbHRpdHVkZSAmJiAhcHJv
dmlkZXNBbHRpdHVkZUFjY3VyYWN5ICYmICFwcm92aWRlc0hlYWRpbmcgJiYgIXByb3ZpZGVzU3Bl
ZWQpIHsKICAgICAgICAgLy8gVGVzdCB0aGUgZXhwb3NlZCBBUEkuCi0gICAgICAgIHBvc2l0aW9u
ID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFsbG9jXSBpbml0V2l0aFRpbWVzdGFtcDpjdXJy
ZW50VGltZSgpIGxhdGl0dWRlOmxhdGl0dWRlIGxvbmdpdHVkZTpsb25naXR1ZGUgYWNjdXJhY3k6
YWNjdXJhY3ldOworICAgICAgICBwb3NpdGlvbiA9IFtbV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiBh
bGxvY10gaW5pdFdpdGhUaW1lc3RhbXA6V2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2No
KCkuc2Vjb25kcygpIGxhdGl0dWRlOmxhdGl0dWRlIGxvbmdpdHVkZTpsb25naXR1ZGUgYWNjdXJh
Y3k6YWNjdXJhY3ldOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9u
UG9zaXRpb24gZ2VvbG9jYXRpb25Qb3NpdGlvbiB7IGN1cnJlbnRUaW1lKCksIGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5IH07CisgICAgICAgIFdlYkNvcmU6Okdlb2xvY2F0aW9uUG9zaXRp
b24gZ2VvbG9jYXRpb25Qb3NpdGlvbiB7IFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9j
aCgpLnNlY29uZHMoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwgYWNjdXJhY3kgfTsKICAgICAgICAg
aWYgKHByb3ZpZGVzQWx0aXR1ZGUpCiAgICAgICAgICAgICBnZW9sb2NhdGlvblBvc2l0aW9uLmFs
dGl0dWRlID0gYWx0aXR1ZGU7CiAgICAgICAgIGlmIChwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3kp
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcAppbmRleCAwYTMy
OWMyODNmNzI4NzFmMThkZGZjY2M3NWIzYTU0YTQ0ZWQyMWI2Li40ZThkNjgwNDkwM2MzOTAwY2Uz
ZWYxZGEzNTUyYjU0NzhjMzMzNjkzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9Db25kaXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L0NvbmRpdGlvbi5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlIDxtdXRleD4KICNpbmNs
dWRlIDx0aHJlYWQ+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1RocmVhZEdyb3VwLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1RocmVhZEdyb3VwLmNwcAppbmRleCAyOTFhM2YwMTk0OTUwNzA3Y2U2YmRhMzZiNzA4
ZmQwYWRjZDgxMDc3Li5kYWU4ZWMyNjJiNzkwMTU4YmM2YzFkNzE2NGQzNzhhZmZmZmFhZTUzIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaHJlYWRHcm91cC5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGhyZWFkR3JvdXAuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNpbmNsdWRlIDx3dGYvQ29uZGl0
aW9uLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVh
ZEdyb3VwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAppbmRleCA1Y2YxNjcxMDdmNmMxNGFjYmQwYzZjOWUy
NWY2NmMzZjA5Mjk5MjUxLi5mYWU1YTgzMjUzYzMxZTY0YWIyMTAyZTY1YTRiZWE1MTJhMDM5NmQ3
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3Bw
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIlRlc3QuaCIKICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9u
Lmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcApp
bmRleCBjMGE5MzcwNWRmZTU4NGU0Y2ZiMjVhMTdjZDM5MGE2ZGM2NjA2ZmU2Li42ZjkzY2EyNzMw
MzBmNTc3NmUzMThmOWU0NTY5MDIyY2VlMTRiOTBkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcApAQCAtMjksNyArMjksNyBAQAog
I2luY2x1ZGUgPFdlYktpdC9XS0dlb2xvY2F0aW9uTWFuYWdlci5oPgogI2luY2x1ZGUgPHN0cmlu
Zy5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXVFIgewogCkBA
IC02NSw3ICs2NSw3IEBAIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrOjp+R2VvbG9jYXRpb25Qcm92
aWRlck1vY2soKQogCiB2b2lkIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrOjpzZXRQb3NpdGlvbihk
b3VibGUgbGF0aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGRvdWJsZSBhY2N1cmFjeSwgYm9vbCBw
cm92aWRlc0FsdGl0dWRlLCBkb3VibGUgYWx0aXR1ZGUsIGJvb2wgcHJvdmlkZXNBbHRpdHVkZUFj
Y3VyYWN5LCBkb3VibGUgYWx0aXR1ZGVBY2N1cmFjeSwgYm9vbCBwcm92aWRlc0hlYWRpbmcsIGRv
dWJsZSBoZWFkaW5nLCBib29sIHByb3ZpZGVzU3BlZWQsIGRvdWJsZSBzcGVlZCwgYm9vbCBwcm92
aWRlc0Zsb29yTGV2ZWwsIGRvdWJsZSBmbG9vckxldmVsKQogewotICAgIG1fcG9zaXRpb24uYWRv
cHQoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2MoY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUs
IGxvbmdpdHVkZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBwcm92aWRl
c0FsdGl0dWRlQWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVh
ZGluZywgcHJvdmlkZXNTcGVlZCwgc3BlZWQsIHByb3ZpZGVzRmxvb3JMZXZlbCwgZmxvb3JMZXZl
bCkpOworICAgIG1fcG9zaXRpb24uYWRvcHQoV0tHZW9sb2NhdGlvblBvc2l0aW9uQ3JlYXRlX2Mo
V2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpLCBsYXRpdHVkZSwg
bG9uZ2l0dWRlLCBhY2N1cmFjeSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFk
aW5nLCBwcm92aWRlc1NwZWVkLCBzcGVlZCwgcHJvdmlkZXNGbG9vckxldmVsLCBmbG9vckxldmVs
KSk7CiAKICAgICBtX2hhc0Vycm9yID0gZmFsc2U7CiAgICAgbV9lcnJvck1lc3NhZ2UuY2xlYXIo
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCmluZGV4IDBjOGMwNDAwMmUxODgwNjBkMDY3NWNkZGRiZDJkNGVhOTBhYjM2MmEu
LjQ3MGRkYTc2NTIzN2YzYTM3YWY2YzE1NWU5ZjdmNWQ3ZTk5ZTI3NWUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAt
Nzg4LDcgKzc4OCw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0Q29va2llU3RvcmFnZVBhcnRpdGlv
bmluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogCiBkb3VibGUgVGVzdFJ1bm5lcjo6cHJlY2lzZVRp
bWUoKQogewotICAgIHJldHVybiBjdXJyZW50VGltZSgpOworICAgIHJldHVybiBXYWxsVGltZTo6
bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZW5hYmxlZCkK
</data>
<flag name="review"
          id="353233"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334490</attachid>
            <date>2018-02-22 18:23:44 -0800</date>
            <delta_ts>2018-02-22 18:23:44 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183052-20180223112343.patch</filename>
            <type>text/plain</type>
            <size>96934</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkNDlkYjQ5NTAzZWM3MTlhNjBjYmJk
ODU3ZjU1YjRjNDRjNWVhYzYuLjQ5OWZlZmM3ZGI2YzRlYjA3ODU1ODk1Zjc5ZTc4ZDgyY2U2OTVm
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMzcgQEAKIDIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgUmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJy
ZW50VGltZU1TKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MzA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBXVEY6OmN1cnJlbnRUaW1lKCkgYW5kIFdURjo6Y3VycmVu
dFRpbWVNUygpLgorICAgICAgICBXZSBoYXZlIGZhbmN5IFdhbGxUaW1lIEFQSXMuIEl0IGhhcyBz
dHJvbmcgdHlwZXMgbGlrZSBXYWxsVGltZSBhbmQgU2Vjb25kcywKKyAgICAgICAgYW5kIHRoaXMg
cmVkdWNlcyB0aGUgY2hhbmNlIG9mIGJ1Z3MgbWl4aW5nIGRvdWJsZXMgd2hpY2ggcmVwcmVzZW50
IG1pbGxpc2Vjb25kcworICAgICAgICBhbmQgc2Vjb25kcy4KKworICAgICAgICAqIHd0Zi9Db25k
aXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ3VycmVudFRpbWUuY3BwOgorICAgICAgICAoV1RGOjpj
dXJyZW50VGltZSk6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpub3cpOgorICAgICAgICAqIHd0
Zi9DdXJyZW50VGltZS5oOgorICAgICAgICAoV1RGOjpjdXJyZW50VGltZU1TKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAgICAgICAgKFdURjo6anNDdXJyZW50VGltZSk6
CisgICAgICAgICogd3RmL1BhcmtpbmdMb3QuY3BwOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90
OjpwYXJrQ29uZGl0aW9uYWxseUltcGwpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdU
Rjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdX
aW4uY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdCk6CisgICAg
ICAgIChXVEY6OmFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbCk6CisgICAgICAgICog
d3RmL1dhbGxUaW1lLmNwcDoKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om5vdyk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL1dhbGxUaW1lLmg6CisKKzIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgUmVtb3ZlIHNsZWVwKGRvdWJsZSkg
YW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE2ODdiZDlkZWUz
Zjg3MDgxNzkwODdjYWZjZjY4ODdkMzZjNDUxODUuLjAzYmU3MGU1ZTNjNTFmZDczOTAxMTBjNzk1
OTg5Njc5NTAwNzVhYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NyBAQAorMjAxOC0wMi0yMiAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUg
Y3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQ
b3NpdGlvbik6CisgICAgICAgICogZG9tL0RPTVRpbWVTdGFtcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcCk6CisgICAgICAgICogZmlsZWFwaS9GaWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZTo6bGFzdE1vZGlmaWVkIGNvbnN0KToKKyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlU2VxdWVuY2VOdW1iZXIpOgorICAgICAg
ICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3RlcFVwIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1
dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0Fn
ZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29y
a0FnZW50Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJt
aXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlRm9ybURhdGFJZGVudGlmaWVy
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmNsaWVudFJlZGlyZWN0ZWQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0hpc3Rvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZCk6CisgICAg
ICAgICogcGFnZS9IaXN0b3J5Lmg6CisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheTo6c3RhcnRGYWRlQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxh
eWVyUG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6TGVnYWN5VGlsZUxheWVy
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpkZWNheWVkQ2FwYWNpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9TeXN0ZW1NZW1vcnlJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3lzdGVtTWVtb3J5TGV2ZWwpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbToKKwogMjAxOC0wMi0yMiAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgV29ya2VyQ2FjaGVTdG9y
YWdlQ29ubmVjdGlvbjo6ZG9SZW1vdmUgY2FuIGFzc2VydCBpbiBjYXNlIHR3byBmcmFtZXMgdHJ5
IHRvIGRlbGV0ZSB0aGUgc2FtZSBjYWNoZSBhdCB0aGUgc2FtZSB0aW1lCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRh
ZmJjODU2NTQ2ODIzZmJjODgxOWQ2M2ZlMTA3MjE2ZTU1N2IxZTYuLjgyNjAzMmRjZmNlOGNkODUw
OWI2YTE1MzQ5NTE5ZDViMzc3MjIyZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjAgQEAKIDIwMTgt
MDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAg
UmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJyZW50VGltZU1TKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzA1MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg6CisgICAgICAgICogU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51
eC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVdlYktpdCBj
b25zdCk6CisgICAgICAgICogU2hhcmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6c2FtcGxlV2ViS2l0IGNvbnN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoKKyAgICAgICAgKFdLQ29udGV4
dFNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRp
bWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OnNldEljb25EYXRhRm9ySWNvblVSTCk6CisgICAg
ICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29u
VVJMKToKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwOgorICAgICAgICAq
IFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6ZXhwaXJhdGlvblRpbWVGcm9tTm93KToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0lu
QXV0b1N0YXJ0UHJvdmlkZXI6OmFkZEF1dG9TdGFydE9yaWdpbkhhc2gpOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRv
U3RhcnRPcmlnaW5zVGFibGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92
aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGlt
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3Rh
cnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdCk6CisgICAgICAgIChXZWJLaXQ6OlBs
dWdJbkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpwcm9jZXNzRGlkRmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0TWVtb3J5U2FtcGxlcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQb29sOjpzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmll
c0FkZGVkQWZ0ZXJUaW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VM
b2FkZXJDbGllbnQ6OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQ6
OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHA6CisgICAgICAgIChXZWJLaXQ6Om1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGx1Z0luRGlkU3RhcnRGcm9tT3JpZ2luKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luRGVmYXVsdEhhc2hlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnJlc2V0UGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6
cGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcDoKKworMjAx
OC0wMi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAg
ICBSZW1vdmUgc2xlZXAoZG91YmxlKSBhbmQgc2xlZXBNUyhkb3VibGUpIGludGVyZmFjZXMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzAzOAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOGNiNGFjNTg0MGE5NjIwOTQ2MTJiOTQ1MDg1
ZGVjNjc1NTkzNGYwNC4uYmIwNWUwYWE0M2U1YzgyNDNlMWVjZWE3Yzk1MTU1Yzc0NWQ3YzE5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAyLTIy
ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAgICAgIFJlbW92
ZSBjdXJyZW50VGltZSgpIC8gY3VycmVudFRpbWVNUygpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwNTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
bW06CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0KToKKwogMjAxOC0wMi0xNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWxsb3cgc3BlY2lmeWluZyB3aGljaCBwbHVnLWlucyBhcmUgc3Vw
cG9ydGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggOGRlZGJiNmI2YTVmOGM1ODg0
ZDczMmIzZTExN2I4NTQwMTEyMmJiYi4uZTk3Mjc2NjhkNzAzZWMyMjhlZjYyMTY3MDczY2NhZWUz
MGVhODQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisy
MDE4LTAyLTIyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgorCisgICAg
ICAgIFJlbW92ZSBjdXJyZW50VGltZSgpIC8gY3VycmVudFRpbWVNUygpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwNTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNw
YXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogV2ViRG93bmxvYWQuaDoKKyAgICAg
ICAgKiBXZWJEb3dubG9hZENGTmV0LmNwcDoKKyAgICAgICAgKFdlYkRvd25sb2FkOjpkaWRTdGFy
dCk6CisgICAgICAgIChXZWJEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2Vi
RG93bmxvYWQ6OmRpZEZpbmlzaCk6CisKIDIwMTgtMDItMjEgIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ01ha2VdW1dpbl0gVXNlIGNtYWtlY29uZmln
LmggcmF0aGVyIHRoYW4gY29uZmlnLmggYW5kIFBsYXRmb3JtLmgKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0NvbmRpdGlvbi5oIGIvU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmgKaW5kZXgg
ZjUzMzY4OTVkNDhhM2ZjOTZhNjhiNGUwNzgzZWU1MGU2OGE5YmMyMC4uNTEyZjEwZjJhZDUzY2Fl
YmE4MDc5ZDYwNmY2NzZjYzlmYzJjMGVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29u
ZGl0aW9uLmgKKysrIGIvU291cmNlL1dURi93dGYvQ29uZGl0aW9uLmgKQEAgLTI2LDcgKzI2LDYg
QEAKICNpZm5kZWYgV1RGX0NvbmRpdGlvbl9oCiAjZGVmaW5lIFdURl9Db25kaXRpb25faAogCi0j
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CiAjaW5jbHVkZSA8d3RmL1BhcmtpbmdMb3QuaD4KICNpbmNsdWRlIDx3dGYvVGltZVdpdGhEeW5h
bWljQ2xvY2tUeXBlLmg+CkBAIC0zNiwxMSArMzUsMTEgQEAgbmFtZXNwYWNlIFdURiB7CiAvLyBU
aGlzIGlzIGEgY29uZGl0aW9uIHZhcmlhYmxlIHRoYXQgaXMgc3VpdGFibGUgZm9yIHVzZSB3aXRo
IGFueSBsb2NrLWxpa2Ugb2JqZWN0LCBpbmNsdWRpbmcKIC8vIG91ciBvd24gV1RGOjpMb2NrLiBJ
dCBmZWF0dXJlcyBzdGFuZGFyZCB3YWl0KCkvbm90aWZ5T25lKCkvbm90aWZ5QWxsKCkgbWV0aG9k
cyBpbiBhZGRpdGlvbiB0bwogLy8gYSB2YXJpZXR5IG9mIHdhaXQtd2l0aC10aW1lb3V0IG1ldGhv
ZHMuIFRoaXMgaW5jbHVkZXMgbWV0aG9kcyB0aGF0IHVzZSBXVEYncyBvd24gbm90aW9uIG9mCi0v
LyB0aW1lLCBsaWtlIHdhbGwtY2xvY2sgdGltZSAoaS5lLiBjdXJyZW50VGltZSgpKSBhbmQgbW9u
b3RvbmljIHRpbWUgKGkuZS4KLS8vIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKS4gVGhp
cyBpcyBhIHZlcnkgZWZmaWNpZW50IGNvbmRpdGlvbiB2YXJpYWJsZS4gSXQgb25seSByZXF1aXJl
cwotLy8gb25lIGJ5dGUgb2YgbWVtb3J5LiBub3RpZnlPbmUoKSBhbmQgbm90aWZ5QWxsKCkgcmVx
dWlyZSBqdXN0IGEgbG9hZCBhbmQgYnJhbmNoIGZvciB0aGUgZmFzdAotLy8gY2FzZSB3aGVyZSBu
byB0aHJlYWQgaXMgd2FpdGluZy4gVGhpcyBjb25kaXRpb24gdmFyaWFibGUsIHdoZW4gdXNlZCB3
aXRoIFdURjo6TG9jaywgY2FuCi0vLyBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlvbiB2YXJp
YWJsZSBhbmQgbG9jayBieSB1cCB0byA1OHguCisvLyB0aW1lLCBsaWtlIHdhbGwtY2xvY2sgdGlt
ZSAoaS5lLiBXYWxsVGltZSkgYW5kIG1vbm90b25pYyB0aW1lIChpLmUuIE1vbm90b25pY1RpbWUp
LiBUaGlzIGlzCisvLyBhIHZlcnkgZWZmaWNpZW50IGNvbmRpdGlvbiB2YXJpYWJsZS4gSXQgb25s
eSByZXF1aXJlcyBvbmUgYnl0ZSBvZiBtZW1vcnkuIG5vdGlmeU9uZSgpIGFuZAorLy8gbm90aWZ5
QWxsKCkgcmVxdWlyZSBqdXN0IGEgbG9hZCBhbmQgYnJhbmNoIGZvciB0aGUgZmFzdCBjYXNlIHdo
ZXJlIG5vIHRocmVhZCBpcyB3YWl0aW5nLgorLy8gVGhpcyBjb25kaXRpb24gdmFyaWFibGUsIHdo
ZW4gdXNlZCB3aXRoIFdURjo6TG9jaywgY2FuIG91dHBlcmZvcm0gYSBzeXN0ZW0gY29uZGl0aW9u
IHZhcmlhYmxlCisvLyBhbmQgbG9jayBieSB1cCB0byA1OHguCiBjbGFzcyBDb25kaXRpb24gewog
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbmRpdGlvbik7CiBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50
VGltZS5jcHAKaW5kZXggYjg5OGNiZDI3NTM3ZDY1MDM0NmIyMTY5MjNlYTU2MGM3ODUwZDBhYS4u
OGFiYzJmZjI1ZTBlMWM1MjNlODJmZTBlNDI0ODZhYTdkNzFhMGQyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRU
aW1lLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkN1cnJlbnRUaW1lLmgiCiAjaW5jbHVkZSAiTW9ub3RvbmljVGltZS5oIgorI2luY2x1ZGUgIldh
bGxUaW1lLmgiCiAKICNpbmNsdWRlICJDb25kaXRpb24uaCIKICNpbmNsdWRlICJMb2NrLmgiCkBA
IC0xNTEsNyArMTUyLDcgQEAgc3RhdGljIGJvb2wgcXBjQXZhaWxhYmxlKCkKICAgICByZXR1cm4g
YXZhaWxhYmxlOwogfQogCi1kb3VibGUgY3VycmVudFRpbWUoKQorc3RhdGljIGlubGluZSBkb3Vi
bGUgY3VycmVudFRpbWUoKQogewogICAgIC8vIFVzZSBhIGNvbWJpbmF0aW9uIG9mIGZ0aW1lIGFu
ZCBRdWVyeVBlcmZvcm1hbmNlQ291bnRlci4KICAgICAvLyBmdGltZSByZXR1cm5zIHRoZSBpbmZv
cm1hdGlvbiB3ZSB3YW50LCBidXQgZG9lc24ndCBoYXZlIHN1ZmZpY2llbnQgcmVzb2x1dGlvbi4K
QEAgLTE5Niw3ICsxOTcsNyBAQCBkb3VibGUgY3VycmVudFRpbWUoKQogCiAjZWxzZQogCi1kb3Vi
bGUgY3VycmVudFRpbWUoKQorc3RhdGljIGlubGluZSBkb3VibGUgY3VycmVudFRpbWUoKQogewog
ICAgIHN0YXRpYyBib29sIGluaXQgPSBmYWxzZTsKICAgICBzdGF0aWMgZG91YmxlIGxhc3RUaW1l
OwpAQCAtMjI2LDcgKzIyNyw3IEBAIGRvdWJsZSBjdXJyZW50VGltZSgpCiAvLyBiZXR0ZXIgYWNj
dXJhY3kgY29tcGFyZWQgd2l0aCBXaW5kb3dzIGltcGxlbWVudGF0aW9uIG9mIGdfZ2V0X2N1cnJl
bnRfdGltZToKIC8vIChodHRwOi8vd3d3Lmdvb2dsZS5jb20vY29kZXNlYXJjaC9wP2hsPWVuI0hI
bk5SamtzMXQwL2dsaWItMi41LjIvZ2xpYi9nbWFpbi5jJnE9Z19nZXRfY3VycmVudF90aW1lKS4K
IC8vIE5vbi1XaW5kb3dzIEdUSyBidWlsZHMgY291bGQgdXNlIGdldHRpbWVvZmRheSgpIGRpcmVj
dGx5IGJ1dCBmb3IgdGhlIHNha2Ugb2YgY29uc2lzdGVuY3kgbGV0cyB1c2UgR1RLIGZ1bmN0aW9u
LgotZG91YmxlIGN1cnJlbnRUaW1lKCkKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGN1cnJlbnRUaW1l
KCkKIHsKICAgICBHVGltZVZhbCBub3c7CiAgICAgZ19nZXRfY3VycmVudF90aW1lKCZub3cpOwpA
QCAtMjM1LDcgKzIzNiw3IEBAIGRvdWJsZSBjdXJyZW50VGltZSgpCiAKICNlbHNlCiAKLWRvdWJs
ZSBjdXJyZW50VGltZSgpCitzdGF0aWMgaW5saW5lIGRvdWJsZSBjdXJyZW50VGltZSgpCiB7CiAg
ICAgc3RydWN0IHRpbWV2YWwgbm93OwogICAgIGdldHRpbWVvZmRheSgmbm93LCAwKTsKQEAgLTI0
NCw2ICsyNDUsMTEgQEAgZG91YmxlIGN1cnJlbnRUaW1lKCkKIAogI2VuZGlmCiAKK1dhbGxUaW1l
IFdhbGxUaW1lOjpub3coKQoreworICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhjdXJyZW50VGlt
ZSgpKTsKK30KKwogI2lmIFVTRShHTElCKQogCiBkb3VibGUgbW9ub3RvbmljYWxseUluY3JlYXNp
bmdUaW1lKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9DdXJyZW50VGltZS5oCmluZGV4IGFlZWE3MGYzMTQxMGUxZjZmYmY0YzkwMjhm
NDMxMDcxYjg1OWIyMzMuLmIzZTZjMTQ2ZDFjYTQwN2E5Mjk3NWQ0NzI1NmY2OWZkNjA5MjhiYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvQ3VycmVudFRpbWUuaApAQCAtMzcsMTkgKzM3LDYgQEAKIAogbmFtZXNwYWNlIFdURiB7
CiAKLS8vIFJldHVybnMgdGhlIGN1cnJlbnQgVVRDIHRpbWUgaW4gc2Vjb25kcywgY291bnRlZCBm
cm9tIEphbnVhcnkgMSwgMTk3MC4KLS8vIFByZWNpc2lvbiB2YXJpZXMgZGVwZW5kaW5nIG9uIHBs
YXRmb3JtIGJ1dCBpcyB1c3VhbGx5IGFzIGdvb2Qgb3IgYmV0dGVyCi0vLyB0aGFuIGEgbWlsbGlz
ZWNvbmQuCi0vLyBVc2UgdGhpcyBmdW5jdGlvbiBvbmx5IGlmIHdhbGwgY2xvY2sgdGltZSBpcyBu
ZWVkZWQuIEZvciBlbGFwc2VkIHRpbWUKLS8vIG1lYXN1cmVtZW50IHVzZSBtb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWUoKSBpbnN0ZWFkLgotV1RGX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBjdXJy
ZW50VGltZSgpOwotCi0vLyBTYW1lIHRoaW5nLCBpbiBtaWxsaXNlY29uZHMuCi1pbmxpbmUgZG91
YmxlIGN1cnJlbnRUaW1lTVMoKQotewotICAgIHJldHVybiBjdXJyZW50VGltZSgpICogMTAwMC4w
OwotfQotCiAvLyBQcm92aWRlcyBhIG1vbm90b25pY2FsbHkgaW5jcmVhc2luZyB0aW1lIGluIHNl
Y29uZHMgc2luY2UgYW4gYXJiaXRyYXJ5IHBvaW50IGluIHRoZSBwYXN0LgogLy8gT24gdW5zdXBw
b3J0ZWQgcGxhdGZvcm1zLCB0aGlzIGZ1bmN0aW9uIG9ubHkgZ3VhcmFudGVlcyB0aGUgcmVzdWx0
IHdpbGwgYmUgbm9uLWRlY3JlYXNpbmcuCiAvLyBSZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiBpbmNy
ZWFzZXMgbW9ub3RvbmljYWxseSBldmVuIHdoZW4gY2xvY2sgdGltZSBnb2VzIGJhY2sgZHVlIHRv
CkBAIC03MSw4ICs1OCw2IEBAIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNsZWVwKFNlY29uZHMp
OwogfSAvLyBuYW1lc3BhY2UgV1RGCiAKIHVzaW5nIFdURjo6Y3VycmVudENQVVRpbWU7Ci11c2lu
ZyBXVEY6OmN1cnJlbnRUaW1lOwotdXNpbmcgV1RGOjpjdXJyZW50VGltZU1TOwogdXNpbmcgV1RG
Ojptb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWU7CiB1c2luZyBXVEY6Om1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZU1TOwogdXNpbmcgV1RGOjpzbGVlcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0RhdGVNYXRoLmggYi9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oCmluZGV4IGFmZmI1
NTg2OTE0Y2UzNjVlNGE5YWFhMzBjNTc4ZjUxNzJjYTFhYjYuLjNlMjkxNjZmZmViY2M1NzM5MmIy
Y2UxN2JlYWZhMDc3MjAzOWVkNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRo
LmgKKysrIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaApAQCAtNDcsNyArNDcsNyBAQAogI2lu
Y2x1ZGUgPHN0ZGludC5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHRpbWUuaD4K
LSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC05
OCw3ICs5OCw3IEBAIFN0cmluZyBtYWtlUkZDMjgyMkRhdGVTdHJpbmcodW5zaWduZWQgZGF5T2ZX
ZWVrLCB1bnNpZ25lZCBkYXksIHVuc2lnbmVkIG1vbnRoLCB1CiBpbmxpbmUgZG91YmxlIGpzQ3Vy
cmVudFRpbWUoKQogewogICAgIC8vIEphdmFTY3JpcHQgZG9lc24ndCByZWNvZ25pemUgZnJhY3Rp
b25zIG9mIGEgbWlsbGlzZWNvbmQuCi0gICAgcmV0dXJuIGZsb29yKFdURjo6Y3VycmVudFRpbWVN
UygpKTsKKyAgICByZXR1cm4gZmxvb3IoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2No
KCkubWlsbGlzZWNvbmRzKCkpOwogfQogCiBjb25zdCBjaGFyKiBjb25zdCB3ZWVrZGF5TmFtZVs3
XSA9IHsgIk1vbiIsICJUdWUiLCAiV2VkIiwgIlRodSIsICJGcmkiLCAiU2F0IiwgIlN1biIgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwIGIvU291cmNlL1dURi93
dGYvUGFya2luZ0xvdC5jcHAKaW5kZXggYjE0ZDdhMmNkZWQ4ZjVlZDNkMzQwMmY3ODgwZDM3MTYy
Njg5ZThiOC4uOGE1ZWM4ZDExZDA0Mzk4NDRlMTkwNzdmNzM4MzFhNmVlNDg3ZTU5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvUGFya2luZ0xvdC5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
UGFya2luZ0xvdC5jcHAKQEAgLTU5NSw3ICs1OTUsNyBAQCBORVZFUl9JTkxJTkUgUGFya2luZ0xv
dDo6UGFya1Jlc3VsdCBQYXJraW5nTG90OjpwYXJrQ29uZGl0aW9uYWxseUltcGwoCiAgICAgICAg
IE11dGV4TG9ja2VyIGxvY2tlcihtZS0+cGFya2luZ0xvY2spOwogICAgICAgICB3aGlsZSAobWUt
PmFkZHJlc3MgJiYgdGltZW91dC5ub3dXaXRoU2FtZUNsb2NrKCkgPCB0aW1lb3V0KSB7CiAgICAg
ICAgICAgICBtZS0+cGFya2luZ0NvbmRpdGlvbi50aW1lZFdhaXQoCi0gICAgICAgICAgICAgICAg
bWUtPnBhcmtpbmdMb2NrLCB0aW1lb3V0LmFwcHJveGltYXRlV2FsbFRpbWUoKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnZhbHVlKCkpOworICAgICAgICAgICAgICAgIG1lLT5wYXJraW5nTG9jaywgdGlt
ZW91dC5hcHByb3hpbWF0ZVdhbGxUaW1lKCkpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICAv
LyBJdCdzIHBvc3NpYmxlIGZvciB0aGUgT1MgdG8gZGVjaWRlIG5vdCB0byB3YWl0LiBJZiBpdCBk
b2VzIHRoYXQgdGhlbiBpdCB3aWxsIGFsc28KICAgICAgICAgICAgIC8vIGRlY2lkZSBub3QgdG8g
cmVsZWFzZSB0aGUgbG9jay4gSWYgdGhlcmUncyBhIGJ1ZyBpbiB0aGUgdGltZSBtYXRoLCB0aGVu
IHRoaXMgY291bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1ByaW1pdGl2
ZXMuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaAppbmRleCA0YWNlMjhm
MWY1OWY4ODY5NzA5MTAwOGEwYTBiMTIwMTBjOTc2MmMxLi4yOGY0NzliZTY1M2RiMzk1MDhmYzNk
Y2MzMmI0YTk2Yjk2OGJkY2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQ
cmltaXRpdmVzLmgKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oCkBA
IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KICNpbmNsdWRlIDx3
dGYvTG9ja2VyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3Rm
L1dhbGxUaW1lLmg+CiAKICNpZiBPUyhXSU5ET1dTKQogI2luY2x1ZGUgPHdpbmRvd3MuaD4KQEAg
LTEwMCw4ICsxMDEsNyBAQCBjbGFzcyBUaHJlYWRDb25kaXRpb24gewogICAgIAogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHdhaXQoTXV0ZXgmIG11dGV4KTsKICAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgdGhlIGNvbmRpdGlvbiB3YXMgc2lnbmFsZWQgYmVmb3JlIGFic29sdXRlVGltZSwgZmFs
c2UgaWYgdGhlIGFic29sdXRlVGltZSB3YXMgcmVhY2hlZCBvciBpcyBpbiB0aGUgcGFzdC4KLSAg
ICAvLyBUaGUgYWJzb2x1dGVUaW1lIGlzIGluIHNlY29uZHMsIHN0YXJ0aW5nIG9uIEphbnVhcnkg
MSwgMTk3MC4gVGhlIHRpbWUgaXMgYXNzdW1lZCB0byB1c2UgdGhlIHNhbWUgdGltZSB6b25lIGFz
IFdURjo6Y3VycmVudFRpbWUoKS4KLSAgICBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCB0aW1lZFdh
aXQoTXV0ZXgmLCBkb3VibGUgYWJzb2x1dGVUaW1lKTsKKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUg
Ym9vbCB0aW1lZFdhaXQoTXV0ZXgmLCBXYWxsVGltZSBhYnNvbHV0ZVRpbWUpOwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSB2b2lkIHNpZ25hbCgpOwogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lk
IGJyb2FkY2FzdCgpOwogICAgIApAQCAtMTEwLDkgKzExMCw4IEBAIGNsYXNzIFRocmVhZENvbmRp
dGlvbiB7CiB9OwogCiAjaWYgT1MoV0lORE9XUykKLS8vIFRoZSBhYnNvbHV0ZVRpbWUgaXMgaW4g
c2Vjb25kcywgc3RhcnRpbmcgb24gSmFudWFyeSAxLCAxOTcwLiBUaGUgdGltZSBpcyBhc3N1bWVk
IHRvIHVzZSB0aGUgc2FtZSB0aW1lIHpvbmUgYXMgV1RGOjpjdXJyZW50VGltZSgpLgogLy8gUmV0
dXJucyBhbiBpbnRlcnZhbCBpbiBtaWxsaXNlY29uZHMgc3VpdGFibGUgZm9yIHBhc3NpbmcgdG8g
b25lIG9mIHRoZSBXaW4zMiB3YWl0IGZ1bmN0aW9ucyAoZS5nLiwgOjpXYWl0Rm9yU2luZ2xlT2Jq
ZWN0KS4KLVdURl9FWFBPUlRfUFJJVkFURSBEV09SRCBhYnNvbHV0ZVRpbWVUb1dhaXRUaW1lb3V0
SW50ZXJ2YWwoZG91YmxlIGFic29sdXRlVGltZSk7CitXVEZfRVhQT1JUX1BSSVZBVEUgRFdPUkQg
YWJzb2x1dGVUaW1lVG9XYWl0VGltZW91dEludGVydmFsKFdhbGxUaW1lIGFic29sdXRlVGltZSk7
CiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQdGhyZWFk
cy5jcHAKaW5kZXggYjJjYTc3ZGU5ZTNhNjE1YmMyYTNjMTZkNTdjYjE5MDBlYTkzODYxMC4uYTEw
NTk0YmY0MTEyZmI4NTk4YWZjZDQ5MzFmYzI1N2Y2NDQwYjc1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVh
ZGluZ1B0aHJlYWRzLmNwcApAQCAtNTQ5LDE4ICs1NDksMjAgQEAgdm9pZCBUaHJlYWRDb25kaXRp
b246OndhaXQoTXV0ZXgmIG11dGV4KQogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCAhcmVzdWx0
KTsKIH0KIAotYm9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdChNdXRleCYgbXV0ZXgsIGRv
dWJsZSBhYnNvbHV0ZVRpbWUpCitib29sIFRocmVhZENvbmRpdGlvbjo6dGltZWRXYWl0KE11dGV4
JiBtdXRleCwgV2FsbFRpbWUgYWJzb2x1dGVUaW1lKQogewotICAgIGlmIChhYnNvbHV0ZVRpbWUg
PCBjdXJyZW50VGltZSgpKQorICAgIGlmIChhYnNvbHV0ZVRpbWUgPCBXYWxsVGltZTo6bm93KCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChhYnNvbHV0ZVRpbWUgPiBJTlRfTUFY
KSB7CisgICAgaWYgKGFic29sdXRlVGltZSA+IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhJTlRf
TUFYKSkgewogICAgICAgICB3YWl0KG11dGV4KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgaW50IHRpbWVTZWNvbmRzID0gc3RhdGljX2Nhc3Q8aW50PihhYnNvbHV0ZVRpbWUp
OwotICAgIGludCB0aW1lTmFub3NlY29uZHMgPSBzdGF0aWNfY2FzdDxpbnQ+KChhYnNvbHV0ZVRp
bWUgLSB0aW1lU2Vjb25kcykgKiAxRTkpOworICAgIGRvdWJsZSByYXdTZWNvbmRzID0gYWJzb2x1
dGVUaW1lLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKTsKKworICAgIGludCB0aW1lU2Vjb25k
cyA9IHN0YXRpY19jYXN0PGludD4ocmF3U2Vjb25kcyk7CisgICAgaW50IHRpbWVOYW5vc2Vjb25k
cyA9IHN0YXRpY19jYXN0PGludD4oKHJhd1NlY29uZHMgLSB0aW1lU2Vjb25kcykgKiAxRTkpOwog
CiAgICAgdGltZXNwZWMgdGFyZ2V0VGltZTsKICAgICB0YXJnZXRUaW1lLnR2X3NlYyA9IHRpbWVT
ZWNvbmRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKaW5kZXggYTVkYmJkZWRiNDliYzU2NGY0OGZh
ODU3NDNmYjMzZmY4N2YzZTVjYS4uNGE1NTQ0M2Q3ZGFiNjQ4Yjg1OTY1YzM4YmVkYmJmZDAxNmEy
ZmQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCkBAIC01NTIsNyArNTUyLDcgQEAgdm9pZCBU
aHJlYWRDb25kaXRpb246OndhaXQoTXV0ZXgmIG11dGV4KQogICAgIG1fY29uZGl0aW9uLnRpbWVk
V2FpdChtdXRleC5pbXBsKCksIElORklOSVRFKTsKIH0KIAotYm9vbCBUaHJlYWRDb25kaXRpb246
OnRpbWVkV2FpdChNdXRleCYgbXV0ZXgsIGRvdWJsZSBhYnNvbHV0ZVRpbWUpCitib29sIFRocmVh
ZENvbmRpdGlvbjo6dGltZWRXYWl0KE11dGV4JiBtdXRleCwgV2FsbFRpbWUgYWJzb2x1dGVUaW1l
KQogewogICAgIERXT1JEIGludGVydmFsID0gYWJzb2x1dGVUaW1lVG9XYWl0VGltZW91dEludGVy
dmFsKGFic29sdXRlVGltZSk7CiAKQEAgLTU3NSwxOSArNTc1LDE5IEBAIHZvaWQgVGhyZWFkQ29u
ZGl0aW9uOjpicm9hZGNhc3QoKQogICAgIG1fY29uZGl0aW9uLnNpZ25hbCh0cnVlKTsgLy8gVW5i
bG9jayBhbGwgdGhyZWFkcy4KIH0KIAotRFdPUkQgYWJzb2x1dGVUaW1lVG9XYWl0VGltZW91dElu
dGVydmFsKGRvdWJsZSBhYnNvbHV0ZVRpbWUpCitEV09SRCBhYnNvbHV0ZVRpbWVUb1dhaXRUaW1l
b3V0SW50ZXJ2YWwoV2FsbFRpbWUgYWJzb2x1dGVUaW1lKQogewotICAgIGRvdWJsZSBjdXJyZW50
VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKTsKKyAgICBXYWxsVGltZSBjdXJyZW50VGltZSA9IFdh
bGxUaW1lOjpub3coKTsKIAogICAgIC8vIFRpbWUgaXMgaW4gdGhlIHBhc3QgLSByZXR1cm4gaW1t
ZWRpYXRlbHkuCiAgICAgaWYgKGFic29sdXRlVGltZSA8IGN1cnJlbnRUaW1lKQogICAgICAgICBy
ZXR1cm4gMDsKIAogICAgIC8vIFRpbWUgaXMgdG9vIGZhciBpbiB0aGUgZnV0dXJlIChhbmQgd291
bGQgb3ZlcmZsb3cgdW5zaWduZWQgbG9uZykgLSB3YWl0IGZvcmV2ZXIuCi0gICAgaWYgKGFic29s
dXRlVGltZSAtIGN1cnJlbnRUaW1lID4gc3RhdGljX2Nhc3Q8ZG91YmxlPihJTlRfTUFYKSAvIDEw
MDAuMCkKKyAgICBpZiAoKGFic29sdXRlVGltZSAtIGN1cnJlbnRUaW1lKSA+IFNlY29uZHM6OmZy
b21NaWxsaXNlY29uZHMoSU5UX01BWCkpCiAgICAgICAgIHJldHVybiBJTkZJTklURTsKIAotICAg
IHJldHVybiBzdGF0aWNfY2FzdDxEV09SRD4oKGFic29sdXRlVGltZSAtIGN1cnJlbnRUaW1lKSAq
IDEwMDAuMCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERXT1JEPigoYWJzb2x1dGVUaW1lIC0g
Y3VycmVudFRpbWUpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAogLy8gUmVtb3ZlIHRoaXMgd29ya2Fy
b3VuZCBjb2RlIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzMxNzkzMjEzPiBpcyBmaXhlZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dhbGxU
aW1lLmNwcAppbmRleCAxNjIyYWIzYzZjMjNkZmUwYjNjZGFmYjJiZDdiNmMyNGU5OWUzZTdkLi5i
N2JjOWRiMGJjNzcyZDMyMmFhOTY0YzMwNzE0NGM4Y2ZjMDk4NGY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL3d0Zi9XYWxsVGltZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvV2FsbFRpbWUuY3Bw
CkBAIC0yNiwxOCArMjYsMTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXYWxs
VGltZS5oIgogCi0jaW5jbHVkZSAiQ3VycmVudFRpbWUuaCIKICNpbmNsdWRlICJNb25vdG9uaWNU
aW1lLmgiCiAjaW5jbHVkZSAiUHJpbnRTdHJlYW0uaCIKICNpbmNsdWRlICJUaW1lV2l0aER5bmFt
aWNDbG9ja1R5cGUuaCIKIAogbmFtZXNwYWNlIFdURiB7CiAKLVdhbGxUaW1lIFdhbGxUaW1lOjpu
b3coKQotewotICAgIHJldHVybiBmcm9tUmF3U2Vjb25kcyhjdXJyZW50VGltZSgpKTsKLX0KLQog
TW9ub3RvbmljVGltZSBXYWxsVGltZTo6YXBwcm94aW1hdGVNb25vdG9uaWNUaW1lKCkgY29uc3QK
IHsKICAgICByZXR1cm4gKnRoaXMgLSBub3coKSArIE1vbm90b25pY1RpbWU6Om5vdygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dhbGxU
aW1lLmgKaW5kZXggOTBhYTA5MWQyZTdhZmQ5M2Y3MzRiZWVlODUzZDcyNThkODgwNjk5Yy4uYmY2
NjIwMTA5MGYzMzFmZmZlYjZhNzY1MmY0MTNmMzVhOWUyOWRmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvV2FsbFRpbWUuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5oCkBAIC0z
Nyw4ICszNyw4IEBAIGNsYXNzIFByaW50U3RyZWFtOwogLy8gVGhlIGN1cnJlbnQgdGltZSBhY2Nv
cmRpbmcgdG8gYSB3YWxsIGNsb2NrIChha2EgcmVhbCB0aW1lIGNsb2NrKS4gVGhpcyB1c2VzIGZs
b2F0aW5nIHBvaW50CiAvLyBpbnRlcm5hbGx5IHNvIHRoYXQgeW91IGNhbiByZWFzb24gYWJvdXQg
aW5maW5pdHkgYW5kIG90aGVyIHRoaW5ncyB0aGF0IGFyaXNlIGluIG1hdGguIEl0J3MKIC8vIGFj
Y2VwdGFibGUgdG8gdXNlIHRoaXMgdG8gd3JhcCBOYU4gdGltZXMsIG5lZ2F0aXZlIHRpbWVzLCBh
bmQgaW5maW5pdGUgdGltZXMsIHNvIGxvbmcgYXMgdGhleQotLy8gYXJlIHJlbGF0aXZlIHRvIHRo
ZSBzYW1lIGNsb2NrLiBTcGVjaWZpY2FsbHksIFdhbGxUaW1lIHNob3VsZCBiZSB1c2VkIGluIGFn
cmVlbWVudCB3aXRoIHRoZQotLy8gcHJpbmNpcGxlIHRoYXQgV2FsbFRpbWU6Om5vdygpLnNlY29u
ZHNTaW5jZUVwb2NoKCkudmFsdWUoKSBpcyB0aGUgc2FtZSBhcyBXVEY6OmN1cnJlbnRUaW1lKCku
CisvLyBhcmUgcmVsYXRpdmUgdG8gdGhlIHNhbWUgY2xvY2suIFVzZSB0aGlzIG9ubHkgaWYgd2Fs
bCBjbG9jayB0aW1lIGlzIG5lZWRlZC4gRm9yIGVsYXBzZWQgdGltZQorLy8gbWVhc3VyZW1lbnQg
dXNlIE1vbm90b25pY1RpbWUgaW5zdGVhZC4KIGNsYXNzIFdhbGxUaW1lIHsKIHB1YmxpYzoKICAg
ICBzdGF0aWMgY29uc3QgQ2xvY2tUeXBlIGNsb2NrVHlwZSA9IENsb2NrVHlwZTo6V2FsbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAK
aW5kZXggZGJlZWRmMWQwOTcyOTI1NmIwMjBkY2U2ZDc5ZWU2NjAyNTNiMDdlNC4uNjhmNWE4MTE0
OTlmODE0ODQxOTkyMTkxYzMyYmZkMWI2NTJjM2U0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9HZW9sb2NhdGlvbi5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBA
QCBib29sIEdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQb3NpdGlvbihjb25zdCBQb3Np
dGlvbk9wdGlvbnMmIG9wdGlvbnMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIW9w
dGlvbnMubWF4aW11bUFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIERPTVRpbWVTdGFt
cCBjdXJyZW50VGltZU1pbGxpcyA9IGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoY3VycmVu
dFRpbWUoKSk7CisgICAgRE9NVGltZVN0YW1wIGN1cnJlbnRUaW1lTWlsbGlzID0gY29udmVydFNl
Y29uZHNUb0RPTVRpbWVTdGFtcChXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKSk7
CiAgICAgcmV0dXJuIGNhY2hlZFBvc2l0aW9uLT50aW1lc3RhbXAoKSA+IGN1cnJlbnRUaW1lTWls
bGlzIC0gb3B0aW9ucy5tYXhpbXVtQWdlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NVGltZVN0YW1wLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NVGltZVN0YW1wLmgK
aW5kZXggZWUyMTg3NWE5NGQ4N2U5M2Q5YzhjODgyNDRkNmIwODZkZDQyMmNiNi4uODlmNGNiZjk3
Yzg1MTEyOTJkMTI1NzBmMWFlZjdkMzlkOWI1ZDVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTVRpbWVTdGFtcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01UaW1lU3Rh
bXAuaApAQCAtMzAsNiArMzAsOCBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9T
ZWNvbmRzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRlZiB1bnNpZ25lZCBsb25n
IGxvbmcgRE9NVGltZVN0YW1wOwpAQCAtMzksNiArNDEsMTEgQEAgaW5saW5lIERPTVRpbWVTdGFt
cCBjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGRvdWJsZSBzZWNvbmRzKQogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxET01UaW1lU3RhbXA+KHNlY29uZHMgKiAxMDAwLjApOwogfQogCitpbmxp
bmUgRE9NVGltZVN0YW1wIGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoU2Vjb25kcyBzZWNv
bmRzKQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01UaW1lU3RhbXA+KHNlY29uZHMubWls
bGlzZWNvbmRzKCkpOworfQorCiBpbmxpbmUgZG91YmxlIGNvbnZlcnRET01UaW1lU3RhbXBUb1Nl
Y29uZHMoRE9NVGltZVN0YW1wIG1pbGxpc2Vjb25kcykKIHsKICAgICByZXR1cm4gbWlsbGlzZWNv
bmRzIC8gMTAwMC4wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAKaW5kZXggMDI2MWEwZmQwMDJhM2Vm
YjE2OWJmMmIwNzkyNWNlOTYwNTMzYjFhOC4uYWQxMGJkY2VhNmRiNGI0YjRhZTdkNjU3ZTNmOTY0
ZDFiZmE3YTMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCkBAIC04MSw3ICs4MSw3IEBAIHN0
YXRpYyBCbG9iUHJvcGVydHlCYWcgY29udmVydFByb3BlcnR5QmFnKGNvbnN0IEZpbGU6OlByb3Bl
cnR5QmFnJiBpbml0aWFsQmFnKQogRmlsZTo6RmlsZShWZWN0b3I8QmxvYlBhcnRWYXJpYW50PiYm
IGJsb2JQYXJ0VmFyaWFudHMsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFByb3BlcnR5
QmFnJiBwcm9wZXJ0eUJhZykKICAgICA6IEJsb2IoV1RGTW92ZShibG9iUGFydFZhcmlhbnRzKSwg
Y29udmVydFByb3BlcnR5QmFnKHByb3BlcnR5QmFnKSkKICAgICAsIG1fbmFtZShmaWxlbmFtZSkK
LSAgICAsIG1fb3ZlcnJpZGVMYXN0TW9kaWZpZWREYXRlKHByb3BlcnR5QmFnLmxhc3RNb2RpZmll
ZC52YWx1ZV9vcihjdXJyZW50VGltZU1TKCkpKQorICAgICwgbV9vdmVycmlkZUxhc3RNb2RpZmll
ZERhdGUocHJvcGVydHlCYWcubGFzdE1vZGlmaWVkLnZhbHVlX29yKFdhbGxUaW1lOjpub3coKS5z
ZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKSkKIHsKIH0KIApAQCAtMTE2LDcgKzEx
Niw3IEBAIGRvdWJsZSBGaWxlOjpsYXN0TW9kaWZpZWQoKSBjb25zdAogICAgIGlmIChGaWxlU3lz
dGVtOjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShtX3BhdGgsIG1vZGlmaWNhdGlvblRpbWUpICYm
IEZpbGVTeXN0ZW06OmlzVmFsaWRGaWxlVGltZShtb2RpZmljYXRpb25UaW1lKSkKICAgICAgICAg
cmVzdWx0ID0gbW9kaWZpY2F0aW9uVGltZSAqIG1zUGVyU2Vjb25kOwogICAgIGVsc2UKLSAgICAg
ICAgcmVzdWx0ID0gY3VycmVudFRpbWUoKSAqIG1zUGVyU2Vjb25kOworICAgICAgICByZXN1bHQg
PSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKIAog
ICAgIHJldHVybiBXVEY6OnRpbWVDbGlwKHJlc3VsdCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rvcnkv
SGlzdG9yeUl0ZW0uY3BwCmluZGV4IGE4NjYxODUyMzE4ZTkyNTNjZmNiMmY2ZmE4ZjM0OGI1ODQ0
NzY3NmIuLjZjMzAzNGNhZTAyNTA3M2Q0OGIyMDkxNjc0MmVjOTRkYWEzNmRjOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVk
ZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSA8c3RkaW8uaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvRGF0ZU1hdGguaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ0LDcgKzQ0LDcg
QEAgc3RhdGljIGxvbmcgbG9uZyBnZW5lcmF0ZVNlcXVlbmNlTnVtYmVyKCkKIHsKICAgICAvLyBJ
bml0aWFsaXplIHRvIHRoZSBjdXJyZW50IHRpbWUgdG8gcmVkdWNlIHRoZSBsaWtlbGlob29kIG9m
IGdlbmVyYXRpbmcKICAgICAvLyBpZGVudGlmaWVycyB0aGF0IG92ZXJsYXAgd2l0aCB0aG9zZSBm
cm9tIHBhc3QvZnV0dXJlIGJyb3dzZXIgc2Vzc2lvbnMuCi0gICAgc3RhdGljIGxvbmcgbG9uZyBu
ZXh0ID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihjdXJyZW50VGltZSgpICogMTAwMDAwMC4wKTsK
KyAgICBzdGF0aWMgbG9uZyBsb25nIG5leHQgPSBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KFdhbGxU
aW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pY3Jvc2Vjb25kcygpKTsKICAgICByZXR1
cm4gKytuZXh0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAKaW5kZXggM2JjOWQ1Y2RhYzU0NDI4MjM4ZDQzODg5YTczM2I4MzA2YTYy
YzIxMy4uZGEwY2IwNGJjZGQ2ZWQwYWZkZDRmN2I0NTEwOTAwMzk2OTY2YzVjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtODYs
NyArODYsNyBAQCBib29sIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6dHlwZU1pc21hdGNoKCkg
Y29uc3QKIAogRGVjaW1hbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZv
clN0ZXBVcCgpIGNvbnN0CiB7Ci0gICAgZG91YmxlIG1zID0gY3VycmVudFRpbWVNUygpOworICAg
IGRvdWJsZSBtcyA9IFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLm1pbGxpc2Vj
b25kcygpOwogICAgIGludCBvZmZzZXQgPSBjYWxjdWxhdGVMb2NhbFRpbWVPZmZzZXQobXMpLm9m
ZnNldCAvIG1zUGVyTWludXRlOwogICAgIHJldHVybiBEZWNpbWFsOjpmcm9tRG91YmxlKG1zICsg
KG9mZnNldCAqIG1zUGVyTWludXRlKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwCmluZGV4IDQ3ZWQ4ZWE1M2VhOTU5N2I5OWVhYWQzMjc2YjE2ZThhM2JmY2E1
MTIuLmIyZmMwMTYwMDQ1OTE0MDExNWY1YzJmYTFjNzY1N2VkZjk5MWQyNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC01OCw3ICs1OCw3IEBAIERhdGVD
b21wb25lbnRzOjpUeXBlIERhdGVUaW1lSW5wdXRUeXBlOjpkYXRlVHlwZSgpIGNvbnN0CiAKIERl
Y2ltYWwgRGF0ZVRpbWVJbnB1dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIERlY2ltYWw6OmZyb21Eb3VibGUoY3VycmVudFRpbWVNUygpKTsKKyAgICBy
ZXR1cm4gRGVjaW1hbDo6ZnJvbURvdWJsZShXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBv
Y2goKS5taWxsaXNlY29uZHMoKSk7CiB9CiAKIFN0ZXBSYW5nZSBEYXRlVGltZUlucHV0VHlwZTo6
Y3JlYXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZyBhbnlTdGVwSGFuZGxpbmcpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCmluZGV4IDk4NmQ0Njg0MTM3OWM1YTA5
Y2I1MDY4MTg4NGQxMDZkYWU2ZDFjZWEuLjU3ZjY2OGNhYzhjNjJlOGU4YjczYzRiZjhkMjM1MmFh
MDExODM4NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC03OCw3
ICs3OCw3IEBAIFN0cmluZyBNb250aElucHV0VHlwZTo6c2VyaWFsaXplV2l0aE1pbGxpc2Vjb25k
cyhkb3VibGUgdmFsdWUpIGNvbnN0CiAKIERlY2ltYWwgTW9udGhJbnB1dFR5cGU6OmRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiB7Ci0gICAgZG91YmxlIGN1cnJlbnQgPSBjdXJyZW50VGlt
ZU1TKCk7CisgICAgZG91YmxlIGN1cnJlbnQgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNl
RXBvY2goKS5taWxsaXNlY29uZHMoKTsKICAgICBpbnQgb2Zmc2V0ID0gY2FsY3VsYXRlTG9jYWxU
aW1lT2Zmc2V0KGN1cnJlbnQpLm9mZnNldCAvIG1zUGVyTWludXRlOwogICAgIGN1cnJlbnQgKz0g
b2Zmc2V0ICogbXNQZXJNaW51dGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3Bw
CmluZGV4IDU4MGVmMjM0NWYxZWU5YzI1OGZjNDRlNDU0ZTZmZTFlZTE5ZjA5ZDcuLjhkYjk0MmQ1
OThkZTUzZmRjNzBhOTEzN2JkYmU0MzA2ZDcxZmViNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcApAQCAtNjUsNyArNjUsNyBAQCBEYXRlQ29tcG9uZW50czo6VHlwZSBUaW1l
SW5wdXRUeXBlOjpkYXRlVHlwZSgpIGNvbnN0CiAKIERlY2ltYWwgVGltZUlucHV0VHlwZTo6ZGVm
YXVsdFZhbHVlRm9yU3RlcFVwKCkgY29uc3QKIHsKLSAgICBkb3VibGUgY3VycmVudCA9IGN1cnJl
bnRUaW1lTVMoKTsKKyAgICBkb3VibGUgY3VycmVudCA9IFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpOwogICAgIGludCBvZmZzZXQgPSBjYWxjdWxhdGVM
b2NhbFRpbWVPZmZzZXQoY3VycmVudCkub2Zmc2V0IC8gbXNQZXJNaW51dGU7CiAgICAgY3VycmVu
dCArPSBvZmZzZXQgKiBtc1Blck1pbnV0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCmluZGV4IDE2ZTgy
NTU5YjM0Mzc1N2ZiYmIwZDUyOTMwM2EyNGEzNTUyZjdiNDEuLmJiZjM1MTE0YWUyNjJlZmVlNmE2
OGY0YjZjNjRhNjkwYWRhNTQ5MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKQEAgLTM1MSw3ICszNTEs
NyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVuc2lnbmVk
IGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMbwogICAgIH0KIAogICAgIGRvdWJsZSBzZW5kVGlt
ZXN0YW1wID0gdGltZXN0YW1wKCk7Ci0gICAgZG91YmxlIHdhbGx0aW1lID0gY3VycmVudFRpbWUo
KTsKKyAgICBXYWxsVGltZSB3YWxsdGltZSA9IFdhbGxUaW1lOjpub3coKTsKIAogICAgIFN0cmlu
ZyByZXF1ZXN0SWQgPSBJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKTsK
ICAgICBTdHJpbmcgZnJhbWVJZCA9IGZyYW1lSWRlbnRpZmllcihsb2FkZXIpOwpAQCAtMzg0LDcg
KzM4NCw3IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojp3aWxsU2VuZFJlcXVlc3QodW5z
aWduZWQgbG9uZyBpZGVudGlmaWVyLCBEb2N1bWVudExvCiAgICAgYXV0byBpbml0aWF0b3JPYmpl
Y3QgPSBidWlsZEluaXRpYXRvck9iamVjdChkb2N1bWVudCk7CiAKICAgICBTdHJpbmcgdXJsID0g
bG9hZGVyID8gbG9hZGVyLT51cmwoKS5zdHJpbmcoKSA6IHJlcXVlc3QudXJsKCk7Ci0gICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPnJlcXVlc3RXaWxsQmVTZW50KHJlcXVlc3RJZCwgZnJhbWVJZCwg
bG9hZGVySWQsIHVybCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIHNl
bmRUaW1lc3RhbXAsIHdhbGx0aW1lLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yUmVz
b3VyY2VSZXNwb25zZShyZWRpcmVjdFJlc3BvbnNlLCBudWxscHRyKSwgdHlwZSAhPSBJbnNwZWN0
b3JQYWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2UgPyAmcHJvdG9jb2xSZXNvdXJjZVR5cGUgOiBudWxs
cHRyLCB0YXJnZXRJZC5pc0VtcHR5KCkgPyBudWxscHRyIDogJnRhcmdldElkKTsKKyAgICBtX2Zy
b250ZW5kRGlzcGF0Y2hlci0+cmVxdWVzdFdpbGxCZVNlbnQocmVxdWVzdElkLCBmcmFtZUlkLCBs
b2FkZXJJZCwgdXJsLCBidWlsZE9iamVjdEZvclJlc291cmNlUmVxdWVzdChyZXF1ZXN0KSwgc2Vu
ZFRpbWVzdGFtcCwgd2FsbHRpbWUuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGluaXRp
YXRvck9iamVjdCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlc3BvbnNlKHJlZGlyZWN0UmVzcG9u
c2UsIG51bGxwdHIpLCB0eXBlICE9IEluc3BlY3RvclBhZ2VBZ2VudDo6T3RoZXJSZXNvdXJjZSA/
ICZwcm90b2NvbFJlc291cmNlVHlwZSA6IG51bGxwdHIsIHRhcmdldElkLmlzRW1wdHkoKSA/IG51
bGxwdHIgOiAmdGFyZ2V0SWQpOwogfQogCiBzdGF0aWMgSW5zcGVjdG9yUGFnZUFnZW50OjpSZXNv
dXJjZVR5cGUgcmVzb3VyY2VUeXBlRm9yQ2FjaGVkUmVzb3VyY2UoQ2FjaGVkUmVzb3VyY2UqIHJl
c291cmNlKQpAQCAtNjU1LDcgKzY1NSw3IEBAIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50Ojp3
aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVuCiAgICAg
YXV0byByZXF1ZXN0T2JqZWN0ID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6TmV0d29yazo6V2ViU29j
a2V0UmVxdWVzdDo6Y3JlYXRlKCkKICAgICAgICAgLnNldEhlYWRlcnMoYnVpbGRPYmplY3RGb3JI
ZWFkZXJzKHJlcXVlc3QuaHR0cEhlYWRlckZpZWxkcygpKSkKICAgICAgICAgLnJlbGVhc2UoKTsK
LSAgICBtX2Zyb250ZW5kRGlzcGF0Y2hlci0+d2ViU29ja2V0V2lsbFNlbmRIYW5kc2hha2VSZXF1
ZXN0KElkZW50aWZpZXJzRmFjdG9yeTo6cmVxdWVzdElkKGlkZW50aWZpZXIpLCB0aW1lc3RhbXAo
KSwgY3VycmVudFRpbWUoKSwgV1RGTW92ZShyZXF1ZXN0T2JqZWN0KSk7CisgICAgbV9mcm9udGVu
ZERpc3BhdGNoZXItPndlYlNvY2tldFdpbGxTZW5kSGFuZHNoYWtlUmVxdWVzdChJZGVudGlmaWVy
c0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgdGltZXN0YW1wKCksIFdhbGxUaW1lOjpu
b3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSwgV1RGTW92ZShyZXF1ZXN0T2JqZWN0
KSk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yTmV0d29ya0FnZW50OjpkaWRSZWNlaXZlV2ViU29ja2V0
SGFuZHNoYWtlUmVzcG9uc2UodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBjb25zdCBSZXNvdXJj
ZVJlc3BvbnNlJiByZXNwb25zZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFt
ZUxvYWRlckNsaWVudC5oCmluZGV4IGU4ZDMzOTAxMWM0ZGM5YzdhZmYyMjVhYzIwNjg5NTM0ZGJi
ZGNhZDMuLmVmMzhmYTRlMzM3YzY2NzQxZDRhNDI3MzhhZDE3ZWQ1NmIzYjg5MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtNzUsNyAr
NzUsNyBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50IDogcHVi
bGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICB2b2lkIGRpc3BhdGNoRGlkRGlzcGF0Y2hPbmxv
YWRFdmVudHMoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERp
ZENhbmNlbENsaWVudFJlZGlyZWN0KCkgZmluYWwgeyB9Ci0gICAgdm9pZCBkaXNwYXRjaFdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJMJiwgZG91YmxlLCBkb3VibGUpIGZpbmFsIHsg
fQorICAgIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYs
IGRvdWJsZSwgV2FsbFRpbWUpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VM
b2NhdGlvbldpdGhpblBhZ2UoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkUHVzaFN0
YXRlV2l0aGluUGFnZSgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZXBsYWNlU3Rh
dGVXaXRoaW5QYWdlKCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRm9ybVN1Ym1pc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNz
aW9uLmNwcAppbmRleCBhYmIzODVmYTY4N2FmYjkxMWM3MGIxZWUzZTRhZGI3MTZiZmM4MGU5Li5j
NzAzODlhZDdjMTQ4NWY0ODI1ZmI4MDkzMWU3NTVjMzg3M2U3MmUyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Gb3JtU3VibWlzc2lvbi5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlICJI
VE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiU2NyaXB0RGlzYWxsb3dlZFNjb3BlLmgiCiAj
aW5jbHVkZSAiVGV4dEVuY29kaW5nLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+Cisj
aW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNTks
NyArNTksNyBAQCBzdGF0aWMgaW50NjRfdCBnZW5lcmF0ZUZvcm1EYXRhSWRlbnRpZmllcigpCiB7
CiAgICAgLy8gSW5pdGlhbGl6ZSB0byB0aGUgY3VycmVudCB0aW1lIHRvIHJlZHVjZSB0aGUgbGlr
ZWxpaG9vZCBvZiBnZW5lcmF0aW5nCiAgICAgLy8gaWRlbnRpZmllcnMgdGhhdCBvdmVybGFwIHdp
dGggdGhvc2UgZnJvbSBwYXN0L2Z1dHVyZSBicm93c2VyIHNlc3Npb25zLgotICAgIHN0YXRpYyBp
bnQ2NF90IG5leHRJZGVudGlmaWVyID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oY3VycmVudFRpbWUo
KSAqIDEwMDAwMDAuMCk7CisgICAgc3RhdGljIGludDY0X3QgbmV4dElkZW50aWZpZXIgPSBzdGF0
aWNfY2FzdDxpbnQ2NF90PihXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWNy
b3NlY29uZHMoKSk7CiAgICAgcmV0dXJuICsrbmV4dElkZW50aWZpZXI7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDRiOTg0Yzc5ZjQxMTgzOTM2YTA1ODk1NTBm
MjczNDA0YzU1N2Q3NTguLjY1ZGI5MGJhOWQxYWU3MmMzMmRmNzE0MDZhZDYzYzFjZDcyM2ExZGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMjA3NSw3ICsyMDc1LDcg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGJv
b2wgY2FuY2VsV2l0aExvYWRJblByb2dyZXMKICAgICBtX3NlbnRSZWRpcmVjdE5vdGlmaWNhdGlv
biA9IGZhbHNlOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpjbGllbnRSZWRpcmVjdGVkKGNvbnN0
IFVSTCYgdXJsLCBkb3VibGUgc2Vjb25kcywgZG91YmxlIGZpcmVEYXRlLCBMb2NrQmFja0Zvcndh
cmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCit2b2lkIEZyYW1lTG9hZGVyOjpjbGllbnRSZWRp
cmVjdGVkKGNvbnN0IFVSTCYgdXJsLCBkb3VibGUgc2Vjb25kcywgV2FsbFRpbWUgZmlyZURhdGUs
IExvY2tCYWNrRm9yd2FyZExpc3QgbG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKICAgICBtX2NsaWVu
dC5kaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QodXJsLCBzZWNvbmRzLCBmaXJlRGF0
ZSk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDkyNjVjYjEyMTJi
YzI2NGYxNDk5ZTY2MDYwM2VhZTYxOGI2MTQwOTguLmYzZWM4YWYwZTYxMzJlYTg5OWI2NTJmNTUx
ZGZlZDEyM2UwOTg4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC00Nyw2
ICs0Nyw3IEBACiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9u
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1l
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjY4LDcgKzI2OSw3IEBAIGNsYXNzIEZy
YW1lTG9hZGVyIHsKIAogICAgIHZvaWQgY29tcGxldGVkKCk7CiAgICAgYm9vbCBhbGxBbmNlc3Rv
cnNBcmVDb21wbGV0ZSgpIGNvbnN0OyAvLyBpbmNsdWRpbmcgdGhpcwotICAgIHZvaWQgY2xpZW50
UmVkaXJlY3RlZChjb25zdCBVUkwmLCBkb3VibGUgZGVsYXksIGRvdWJsZSBmaXJlRGF0ZSwgTG9j
a0JhY2tGb3J3YXJkTGlzdCk7CisgICAgdm9pZCBjbGllbnRSZWRpcmVjdGVkKGNvbnN0IFVSTCYs
IGRvdWJsZSBkZWxheSwgV2FsbFRpbWUgZmlyZURhdGUsIExvY2tCYWNrRm9yd2FyZExpc3QpOwog
ICAgIHZvaWQgY2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKGJvb2wgY2FuY2VsV2l0
aExvYWRJblByb2dyZXNzKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0T3JpZ2luYWxV
UkxGb3JEb3dubG9hZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDdkZDI1ZTM0OTFhMGU3MDIyNzBjMGYxOWU1
NjZhZTk2Y2NjOTA2YjguLmRjYWYzNzc2NzJjZGNmYjE4N2IwYTNmNDA3Y2RiNTI0NTA5ZTIwYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSAiTGlua0ljb24uaCIKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFOSUZF
U1QpCkBAIC0xNTksNyArMTYwLDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRnJhbWVMb2FkZXJD
bGllbnQgewogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRD
aGFuZ2VQcm92aXNpb25hbFVSTCgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENh
bmNlbENsaWVudFJlZGlyZWN0KCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJMJiwgZG91YmxlIGludGVydmFsLCBkb3VibGUg
ZmlyZURhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgV2FsbFRpbWUgZmlyZURhdGUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VNYWluRG9jdW1lbnQoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2hhbmdlRG9jdW1lbnQoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWROYXZpZ2F0ZVdpdGhpblBhZ2UoKSB7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcAppbmRleCA3NTJiODA5
ODUwMTMyYmJkYThiMmFhNGQyZDBmMzk3OWFmMmMwOTkyLi5kMjg0YTkxNWZiNTRkYTFiNTI3NzZi
ZTkyMGQ3ZjFiYjdhYzk5OWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2
aWdhdGlvblNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRp
b25TY2hlZHVsZXIuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgY2xhc3MgU2NoZWR1bGVkVVJMTmF2
aWdhdGlvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9uIHsKICAgICAgICAgbV9oYXZlVG9s
ZENsaWVudCA9IHRydWU7CiAKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUlu
ZGljYXRvcih1c2VyR2VzdHVyZVRvRm9yd2FyZCgpKTsKLSAgICAgICAgZnJhbWUubG9hZGVyKCku
Y2xpZW50UmVkaXJlY3RlZChtX3VybCwgZGVsYXkoKSwgY3VycmVudFRpbWUoKSArIHRpbWVyLm5l
eHRGaXJlSW50ZXJ2YWwoKS52YWx1ZSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCkpOworICAgICAg
ICBmcmFtZS5sb2FkZXIoKS5jbGllbnRSZWRpcmVjdGVkKG1fdXJsLCBkZWxheSgpLCBXYWxsVGlt
ZTo6bm93KCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2FyZExpc3Qo
KSk7CiAgICAgfQogCiAgICAgdm9pZCBkaWRTdG9wVGltZXIoRnJhbWUmIGZyYW1lLCBib29sIG5l
d0xvYWRJblByb2dyZXNzKSBvdmVycmlkZQpAQCAtMjgzLDcgKzI4Myw3IEBAIGNsYXNzIFNjaGVk
dWxlZEZvcm1TdWJtaXNzaW9uIDogcHVibGljIFNjaGVkdWxlZE5hdmlnYXRpb24gewogICAgICAg
ICBtX2hhdmVUb2xkQ2xpZW50ID0gdHJ1ZTsKIAogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRv
ciBnZXN0dXJlSW5kaWNhdG9yKHVzZXJHZXN0dXJlVG9Gb3J3YXJkKCkpOwotICAgICAgICBmcmFt
ZS5sb2FkZXIoKS5jbGllbnRSZWRpcmVjdGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBk
ZWxheSgpLCBjdXJyZW50VGltZSgpICsgdGltZXIubmV4dEZpcmVJbnRlcnZhbCgpLnZhbHVlKCks
IGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7CisgICAgICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudFJl
ZGlyZWN0ZWQobV9zdWJtaXNzaW9uLT5yZXF1ZXN0VVJMKCksIGRlbGF5KCksIFdhbGxUaW1lOjpu
b3coKSArIHRpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsK
ICAgICB9CiAKICAgICB2b2lkIGRpZFN0b3BUaW1lcihGcmFtZSYgZnJhbWUsIGJvb2wgbmV3TG9h
ZEluUHJvZ3Jlc3MpIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hp
c3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcAppbmRleCAwOWM3ZDhi
MjkwMzZkNjdjNDE2NWJhNWZjZTE0OTRjYzU0YjE1MmFiLi44ZDBiOTU5ZDAzNzNjY2ExNmJhMmVl
NDI2Y2E5OTFiZTZjZjBiM2ExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3Rv
cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKQEAgLTE2Nyw3ICsx
NjcsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIaXN0b3J5OjpzdGF0ZU9iamVjdEFkZGVkKFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgZGF0YQogewogICAgIC8vIEVhY2ggdW5pcXVlIG1h
aW4tZnJhbWUgZG9jdW1lbnQgaXMgb25seSBhbGxvd2VkIHRvIHNlbmQgNjRNQiBvZiBzdGF0ZSBv
YmplY3QgcGF5bG9hZCB0byB0aGUgVUkgY2xpZW50L3Byb2Nlc3MuCiAgICAgc3RhdGljIHVpbnQz
Ml90IHRvdGFsU3RhdGVPYmplY3RQYXlsb2FkTGltaXQgPSAweDQwMDAwMDA7Ci0gICAgc3RhdGlj
IGRvdWJsZSBzdGF0ZU9iamVjdFRpbWVTcGFuID0gMzAuMDsKKyAgICBzdGF0aWMgU2Vjb25kcyBz
dGF0ZU9iamVjdFRpbWVTcGFuIHsgMzBfcyB9OwogICAgIHN0YXRpYyB1bnNpZ25lZCBwZXJTdGF0
ZU9iamVjdFRpbWVTcGFuTGltaXQgPSAxMDA7CiAKICAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJh
bWUtPnBhZ2UoKSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIaXN0b3J5
OjpzdGF0ZU9iamVjdEFkZGVkKFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgZGF0YQog
ICAgIGlmICghbWFpbkhpc3RvcnkpCiAgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBkb3VibGUg
Y3VycmVudFRpbWVzdGFtcCA9IGN1cnJlbnRUaW1lKCk7CisgICAgV2FsbFRpbWUgY3VycmVudFRp
bWVzdGFtcCA9IFdhbGxUaW1lOjpub3coKTsKICAgICBpZiAoY3VycmVudFRpbWVzdGFtcCAtIG1h
aW5IaXN0b3J5LT5tX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuU3RhcnQgPiBzdGF0ZU9iamVj
dFRpbWVTcGFuKSB7CiAgICAgICAgIG1haW5IaXN0b3J5LT5tX2N1cnJlbnRTdGF0ZU9iamVjdFRp
bWVTcGFuU3RhcnQgPSBjdXJyZW50VGltZXN0YW1wOwogICAgICAgICBtYWluSGlzdG9yeS0+bV9j
dXJyZW50U3RhdGVPYmplY3RUaW1lU3Bhbk9iamVjdHNBZGRlZCA9IDA7CkBAIC0yMDYsOCArMjA2
LDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gSGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZChSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEKICAgICAKICAgICBpZiAobWFpbkhpc3Rvcnkt
Pm1fY3VycmVudFN0YXRlT2JqZWN0VGltZVNwYW5PYmplY3RzQWRkZWQgPj0gcGVyU3RhdGVPYmpl
Y3RUaW1lU3BhbkxpbWl0KSB7CiAgICAgICAgIGlmIChzdGF0ZU9iamVjdFR5cGUgPT0gU3RhdGVP
YmplY3RUeXBlOjpSZXBsYWNlKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3Vy
aXR5RXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJBdHRlbXB0IHRvIHVzZSBoaXN0b3J5LnJlcGxhY2VT
dGF0ZSgpIG1vcmUgdGhhbiAldSB0aW1lcyBwZXIgJWYgc2Vjb25kcyIsIHBlclN0YXRlT2JqZWN0
VGltZVNwYW5MaW1pdCwgc3RhdGVPYmplY3RUaW1lU3BhbikgfTsKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJBdHRlbXB0IHRvIHVzZSBo
aXN0b3J5LnB1c2hTdGF0ZSgpIG1vcmUgdGhhbiAldSB0aW1lcyBwZXIgJWYgc2Vjb25kcyIsIHBl
clN0YXRlT2JqZWN0VGltZVNwYW5MaW1pdCwgc3RhdGVPYmplY3RUaW1lU3BhbikgfTsKKyAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCBTdHJpbmc6OmZvcm1hdCgi
QXR0ZW1wdCB0byB1c2UgaGlzdG9yeS5yZXBsYWNlU3RhdGUoKSBtb3JlIHRoYW4gJXUgdGltZXMg
cGVyICVmIHNlY29uZHMiLCBwZXJTdGF0ZU9iamVjdFRpbWVTcGFuTGltaXQsIHN0YXRlT2JqZWN0
VGltZVNwYW4uc2Vjb25kcygpKSB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJp
dHlFcnJvciwgU3RyaW5nOjpmb3JtYXQoIkF0dGVtcHQgdG8gdXNlIGhpc3RvcnkucHVzaFN0YXRl
KCkgbW9yZSB0aGFuICV1IHRpbWVzIHBlciAlZiBzZWNvbmRzIiwgcGVyU3RhdGVPYmplY3RUaW1l
U3BhbkxpbWl0LCBzdGF0ZU9iamVjdFRpbWVTcGFuLnNlY29uZHMoKSkgfTsKICAgICB9CiAKICAg
ICBDaGVja2VkPHVuc2lnbmVkPiB0aXRsZVNpemUgPSB0aXRsZS5sZW5ndGgoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9I
aXN0b3J5LmgKaW5kZXggNmRiYjJmZjI2NGU0MmI1MzA0NGE3OGQxZTkxYzMzN2Y0MzMzZmVhNy4u
OGQ4MzI3NTA5NDRlODkxNmE4MzY4MTQzMjQwYWQ4MzNhNzBlM2YyOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0
b3J5LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgogI2luY2x1
ZGUgIlNjcmlwdFdyYXBwYWJsZS5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5o
IgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTc1LDcgKzc2LDcgQEAgY2xhc3MgSGlzdG9yeSBmaW5hbCA6IHB1YmxpYyBTY3JpcHRXcmFwcGFi
bGUsIHB1YmxpYyBSZWZDb3VudGVkPEhpc3Rvcnk+LCBwdWJsaWMKICAgICBSZWZQdHI8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiBtX2xhc3RTdGF0ZU9iamVjdFJlcXVlc3RlZDsKIAogICAgIHVuc2ln
bmVkIG1fY3VycmVudFN0YXRlT2JqZWN0VGltZVNwYW5PYmplY3RzQWRkZWQgeyAwIH07Ci0gICAg
ZG91YmxlIG1fY3VycmVudFN0YXRlT2JqZWN0VGltZVNwYW5TdGFydCB7IDAuMCB9OworICAgIFdh
bGxUaW1lIG1fY3VycmVudFN0YXRlT2JqZWN0VGltZVNwYW5TdGFydDsKIAogICAgIC8vIEZvciB0
aGUgbWFpbiBmcmFtZSdzIEhpc3Rvcnkgb2JqZWN0IHRvIGtlZXAgdHJhY2sgb2YgYWxsIHN0YXRl
IG9iamVjdCB1c2FnZS4KICAgICB1aW50NjRfdCBtX3RvdGFsU3RhdGVPYmplY3RVc2FnZSB7IDAg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKaW5kZXggOTMyYTExZTU2MjM1ZTIwMDgz
YjQ2MGZiMzk1YjJkZTRiZDEzZDJiZC4uNjYwNzAwMmQwZDM5MjQ5YzllODE3MmRkNzIxZWU4OGQ5
NDU5NDFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKQEAgLTMzLDExICszMywx
MCBAQAogI2luY2x1ZGUgIlBhZ2VPdmVybGF5Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIlBsYXRm
b3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCi0jaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0
IGRvdWJsZSBmYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjI7CitzdGF0aWMgY29uc3QgU2Vjb25k
cyBmYWRlQW5pbWF0aW9uRHVyYXRpb24geyAyMDBfbXMgfTsKIHN0YXRpYyBjb25zdCBkb3VibGUg
ZmFkZUFuaW1hdGlvbkZyYW1lUmF0ZSA9IDMwOwogCiBzdGF0aWMgUGFnZU92ZXJsYXk6OlBhZ2VP
dmVybGF5SUQgZ2VuZXJhdGVQYWdlT3ZlcmxheUlEKCkKQEAgLTI1MywxMyArMjUyLDEzIEBAIHZv
aWQgUGFnZU92ZXJsYXk6OnN0b3BGYWRlT3V0QW5pbWF0aW9uKCkKIAogdm9pZCBQYWdlT3Zlcmxh
eTo6c3RhcnRGYWRlQW5pbWF0aW9uKCkKIHsKLSAgICBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWUg
PSBjdXJyZW50VGltZSgpOworICAgIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZSA9IFdhbGxUaW1l
Ojpub3coKTsKICAgICBtX2ZhZGVBbmltYXRpb25UaW1lci5zdGFydFJlcGVhdGluZygxX3MgLyBm
YWRlQW5pbWF0aW9uRnJhbWVSYXRlKTsKIH0KIAogdm9pZCBQYWdlT3ZlcmxheTo6ZmFkZUFuaW1h
dGlvblRpbWVyRmlyZWQoKQogewotICAgIGZsb2F0IGFuaW1hdGlvblByb2dyZXNzID0gKGN1cnJl
bnRUaW1lKCkgLSBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWUpIC8gbV9mYWRlQW5pbWF0aW9uRHVy
YXRpb247CisgICAgZmxvYXQgYW5pbWF0aW9uUHJvZ3Jlc3MgPSAoV2FsbFRpbWU6Om5vdygpIC0g
bV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lKSAvIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOwogCiAg
ICAgaWYgKGFuaW1hdGlvblByb2dyZXNzID49IDEuMCkKICAgICAgICAgYW5pbWF0aW9uUHJvZ3Jl
c3MgPSAxLjA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgKaW5kZXggYTQ3ZjZmMGU5Y2Y4ZGRl
MDgzZjQyNjAwMTIzMzUxZWM2ZTIzNWU3Mi4uNjYzMzAzN2IyZWIyNWI5YzM1MGVmNzlkZjZjOTFl
ODI2NzMyNzM1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuaApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0
Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyNiw4ICsxMjcs
OCBAQCBjbGFzcyBQYWdlT3ZlcmxheSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFBhZ2VPdmVy
bGF5PiB7CiAgICAgUGFnZSogbV9wYWdlIHsgbnVsbHB0ciB9OwogCiAgICAgVGltZXIgbV9mYWRl
QW5pbWF0aW9uVGltZXI7Ci0gICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZSB7IDAg
fTsKLSAgICBkb3VibGUgbV9mYWRlQW5pbWF0aW9uRHVyYXRpb247CisgICAgV2FsbFRpbWUgbV9m
YWRlQW5pbWF0aW9uU3RhcnRUaW1lOworICAgIFNlY29uZHMgbV9mYWRlQW5pbWF0aW9uRHVyYXRp
b247CiAKICAgICBlbnVtIEZhZGVBbmltYXRpb25UeXBlIHsKICAgICAgICAgTm9BbmltYXRpb24s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRDRy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFw
aGljc0NvbnRleHRDRy5jcHAKaW5kZXggZGJmYjZkMjJjZWY3NjgxY2JjZjE5ZTVkZWFlZmFjMjRi
MjJhMzg0Yy4uMmNiMjMwMGJkZmYyNGY1YzhlN2ViNWI1ZTM1NzFhYmJmNDgzNDIxMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNz
Q29udGV4dENHLmNwcApAQCAtMjg5LDcgKzI4OSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3TmF0aXZlSW1hZ2UoY29uc3QgUmV0YWluUHRyPENHSW1hZ2VSZWY+JiBpbWFnZSwgY29uc3QK
ICAgICB9CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgZG91YmxlIHN0YXJ0VGltZSA9IGN1cnJl
bnRUaW1lKCk7CisgICAgTW9ub3RvbmljVGltZSBzdGFydFRpbWUgPSBNb25vdG9uaWNUaW1lOjpu
b3coKTsKICNlbmRpZgogICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBzdWJJbWFnZShpbWFnZSk7
CiAKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUlt
YWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0CiAjZW5kaWYKICAg
ICB9CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oSW1hZ2VzLCBzdHJlYW0gPDwgIkdyYXBoaWNzQ29u
dGV4dDo6ZHJhd05hdGl2ZUltYWdlICIgPDwgaW1hZ2UuZ2V0KCkgPDwgIiBzaXplICIgPDwgaW1h
Z2VTaXplIDw8ICIgaW50byAiIDw8IGRlc3RSZWN0IDw8ICIgdG9vayAiIDw8IDEwMDAuMCAqIChj
dXJyZW50VGltZSgpIC0gc3RhcnRUaW1lKSA8PCAibXMiKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0o
SW1hZ2VzLCBzdHJlYW0gPDwgIkdyYXBoaWNzQ29udGV4dDo6ZHJhd05hdGl2ZUltYWdlICIgPDwg
aW1hZ2UuZ2V0KCkgPDwgIiBzaXplICIgPDwgaW1hZ2VTaXplIDw8ICIgaW50byAiIDw8IGRlc3RS
ZWN0IDw8ICIgdG9vayAiIDw8IChNb25vdG9uaWNUaW1lOjpub3coKSAtIHN0YXJ0VGltZSkubWls
bGlzZWNvbmRzKCkgPDwgIm1zIik7CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdQYXR0ZXJuQ2FsbGJh
Y2sodm9pZCogaW5mbywgQ0dDb250ZXh0UmVmIGNvbnRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAppbmRleCA1MzdjOWVkZjY1OGY2
YTliOWVmZGFiN2RjMjM3YWRhMjcyNmMxZjRkLi4wNTYzNjI1Mzg3NDI2ZDM3NWQxODAyYTA4NmM0
YTAyMzAwZDA4NDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVn
YWN5VGlsZUxheWVyUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdh
Y3lUaWxlTGF5ZXJQb29sLmgKQEAgLTc3LDcgKzc3LDcgQEAgY2xhc3MgTGVnYWN5VGlsZUxheWVy
UG9vbCB7CiAgICAgdW5zaWduZWQgbV9jYXBhY2l0eTsKICAgICBMb2NrIG1fbGF5ZXJQb29sTXV0
ZXg7CiAKLSAgICBkb3VibGUgbV9sYXN0QWRkVGltZTsKKyAgICBXYWxsVGltZSBtX2xhc3RBZGRU
aW1lOwogICAgIGJvb2wgbV9uZWVkc1BydW5lOwogCiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVk
PExlZ2FjeVRpbGVMYXllclBvb2w+OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvTGVnYWN5VGlsZUxheWVyUG9vbC5tbQppbmRleCBmYzljMjQ2NjY3YmI0ZDEwODE2MDFlMDk0
N2NkNDYyNDQ3YjlkMDkzLi4yNTAwMjhmZjlhYmE4NTgyMjM3MjI2ZDEwZGNlZWMyM2E2N2Y1YTc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVy
UG9vbC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxheWVy
UG9vbC5tbQpAQCAtMzcsMTIgKzM3LDExIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Rh
dGljIGNvbnN0IGRvdWJsZSBjYXBhY2l0eURlY2F5VGltZSA9IDU7CitzdGF0aWMgY29uc3QgU2Vj
b25kcyBjYXBhY2l0eURlY2F5VGltZSB7IDVfcyB9OwogCiBMZWdhY3lUaWxlTGF5ZXJQb29sOjpM
ZWdhY3lUaWxlTGF5ZXJQb29sKCkKICAgICA6IG1fdG90YWxCeXRlcygwKQogICAgICwgbV9jYXBh
Y2l0eSgwKQotICAgICwgbV9sYXN0QWRkVGltZSgwKQogICAgICwgbV9uZWVkc1BydW5lKGZhbHNl
KQogewogfQpAQCAtODgsNyArODcsNyBAQCB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6OmFkZExh
eWVyKGNvbnN0IFJldGFpblB0cjxMZWdhY3lUaWxlTGF5ZXI+JiBsYXllcikKICAgICBsaXN0T2ZM
YXllcnNXaXRoU2l6ZShsYXllclNpemUpLnByZXBlbmQobGF5ZXIpOwogICAgIG1fdG90YWxCeXRl
cyArPSBieXRlc0JhY2tpbmdMYXllcldpdGhQaXhlbFNpemUobGF5ZXJTaXplKTsKIAotICAgIG1f
bGFzdEFkZFRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIG1fbGFzdEFkZFRpbWUgPSBXYWxsVGlt
ZTo6bm93KCk7CiAgICAgc2NoZWR1bGVQcnVuZSgpOwogfQogCkBAIC0xMTUsNyArMTE0LDcgQEAg
dm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpzZXRDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0eSkK
IHVuc2lnbmVkIExlZ2FjeVRpbGVMYXllclBvb2w6OmRlY2F5ZWRDYXBhY2l0eSgpIGNvbnN0CiB7
CiAgICAgLy8gRGVjYXkgdG8gb25lIHF1YXJ0ZXIgb3ZlciBjYXBhY2l0eURlY2F5VGltZQotICAg
IGRvdWJsZSB0aW1lU2luY2VMYXN0QWRkID0gY3VycmVudFRpbWUoKSAtIG1fbGFzdEFkZFRpbWU7
CisgICAgU2Vjb25kcyB0aW1lU2luY2VMYXN0QWRkID0gV2FsbFRpbWU6Om5vdygpIC0gbV9sYXN0
QWRkVGltZTsKICAgICBpZiAodGltZVNpbmNlTGFzdEFkZCA+IGNhcGFjaXR5RGVjYXlUaW1lKQog
ICAgICAgICByZXR1cm4gbV9jYXBhY2l0eSAvIDQ7CiAgICAgZmxvYXQgZGVjYXlQcm9nZXNzID0g
ZmxvYXQodGltZVNpbmNlTGFzdEFkZCAvIGNhcGFjaXR5RGVjYXlUaW1lKTsKQEAgLTE1Nyw3ICsx
NTYsNyBAQCB2b2lkIExlZ2FjeVRpbGVMYXllclBvb2w6OnBydW5lKCkKICAgICAgICAgLy8gc3Rp
bGwgaGF2ZSBhIGJhY2tpbmcgc3RvcmUuCiAgICAgICAgIG9sZGVzdFJldXNlTGlzdC5yZW1vdmVM
YXN0KCk7CiAgICAgfQotICAgIGlmIChjdXJyZW50VGltZSgpIC0gbV9sYXN0QWRkVGltZSA8PSBj
YXBhY2l0eURlY2F5VGltZSkKKyAgICBpZiAoV2FsbFRpbWU6Om5vdygpIC0gbV9sYXN0QWRkVGlt
ZSA8PSBjYXBhY2l0eURlY2F5VGltZSkKICAgICAgICAgc2NoZWR1bGVQcnVuZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TeXN0ZW1NZW1vcnlJT1MuY3BwCmluZGV4
IDZlYTQxZGUzYTE4YzYzZmMxODhmNjQ1ZDViMmI5ZmJhMDZhNmJjNzAuLjFhZDEyYTRmMDYwMjIz
MTMwNzU0MTBkYmUzOWQ5ZTI5NTU2OTEwY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9TeXN0ZW1NZW1vcnlJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9TeXN0ZW1NZW1vcnlJT1MuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAKICNpbmNsdWRl
IDxzeXMvc3lzY3RsLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC00Myw5ICs0Myw5IEBAIGludCBzeXN0ZW1NZW1vcnlMZXZlbCgpCiAg
ICAgcmV0dXJuIDM1OwogI2Vsc2UKICAgICBzdGF0aWMgaW50IG1lbW9yeUZyZWVMZXZlbCA9IC0x
OwotICAgIHN0YXRpYyBkb3VibGUgcHJldmlvdXNDaGVja1RpbWU7IAotICAgIGRvdWJsZSB0aW1l
ID0gY3VycmVudFRpbWUoKTsKLSAgICBpZiAodGltZSAtIHByZXZpb3VzQ2hlY2tUaW1lIDwgMC4x
KQorICAgIHN0YXRpYyBXYWxsVGltZSBwcmV2aW91c0NoZWNrVGltZTsKKyAgICBXYWxsVGltZSB0
aW1lID0gV2FsbFRpbWU6Om5vdygpOworICAgIGlmICh0aW1lIC0gcHJldmlvdXNDaGVja1RpbWUg
PCAxMDBfbXMpCiAgICAgICAgIHJldHVybiBtZW1vcnlGcmVlTGV2ZWw7CiAgICAgcHJldmlvdXND
aGVja1RpbWUgPSB0aW1lOwogICAgIHNpemVfdCBzaXplID0gc2l6ZW9mKG1lbW9yeUZyZWVMZXZl
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
U2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW0KaW5kZXgg
Y2U5YmNmODgwODU0OTBhOWU4Y2U2MTFiNWNlNWVjOWY2YWJhMzI4Mi4uZmVkNmVlNTc3ZjE5NDY3
Y2FiY2JjOWM5NGI0MDc2ZGMwZjIyMzI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5
Q2FwdHVyZVNvdXJjZU1hYy5tbQpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxl
bWVudGVkLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncy5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAj
aW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNw
cAppbmRleCA2OWY3NzA0MWY3ZGNmM2Y4ZWMxZjBkOWQ0MGQwYjJkODlmYTM5MGNjLi43YWFmNTc3
ZjE2YzQ4M2M0MjJiN2RkNDc4YTQ2YmM4NmMwYWVjN2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNh
Y2hlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2FjaGVRdWVyeU9w
dGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQYXJzZXJzLmg+CiAjaW5jbHVkZSA8cGFs
L1Nlc3Npb25JRC5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVk
ZSA8d3RmL1VVSUQuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9X
ZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IGEwYTJjMjRlZWM0ZjAwYTFlMDhjNTZmNTQ1MDcy
NDQ0NGM0YzIwYjMuLjliOWRmMjljNjNiOGNmNTYyZDdmNTQ2NjBlYzY4ZjIwMGI4NmY5YjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25uZWN0
aW9uLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDb25uZWN0
aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogCiAjaWYgIU9TKFdJTkRPV1Mp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggM2QwODEzZjRmODc5NDBjNDlhZGM4MjE0YjFhZTY4NDYxNTc4OTEwZi4uZGI5
Mzc2MGJkMGU1Y2Q1ZDJiMGUzOTg5OGQxZGVmMWJjZmIxZWYyNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTYxLDcg
KzE2MSw3IEBAIHN0cnVjdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBIYXNo
TWFwPFN0cmluZywgYm9vbD4gbm90aWZpY2F0aW9uUGVybWlzc2lvbnM7CiAjZW5kaWYKIAotICAg
IEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+IHBsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlczsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNo
TWFwPHVuc2lnbmVkLCBXYWxsVGltZT4+IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlczsKICAg
ICBWZWN0b3I8U3RyaW5nPiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5zOwogCiAjaWYgRU5BQkxFKE5F
VFNDQVBFX1BMVUdJTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51
eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgv
V2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAppbmRleCA0N2UzMTkwOWExZTk3ZGY5YTNlYTM5N2Y2
N2NiYzBiYWFlNzYwMWM0Li5hYTg0MDAxOTNmYWFjY2MyOTIyOGZiZjU2NjUxMGE4MjExMDQ5ZDFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVy
TGludXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBs
ZXJMaW51eC5jcHAKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4K
LSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvbGludXgvQ3VycmVudFByb2Nlc3NNZW1vcnlTdGF0dXMuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApAQCAtOTUsOSArOTUsOSBAQCBXZWJNZW1vcnlT
dGF0aXN0aWNzIFdlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVdlYktpdCgpIGNvbnN0CiB7CiAgICAg
V2ViTWVtb3J5U3RhdGlzdGljcyB3ZWJLaXRNZW1vcnlTdGF0czsKIAotICAgIGRvdWJsZSBub3cg
PSBjdXJyZW50VGltZSgpOworICAgIFdhbGxUaW1lIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKIAot
ICAgIGFwcGVuZEtleVZhbHVlUGFpcih3ZWJLaXRNZW1vcnlTdGF0cywgQVNDSUlMaXRlcmFsKCJU
aW1lc3RhbXAiKSwgbm93KTsKKyAgICBhcHBlbmRLZXlWYWx1ZVBhaXIod2ViS2l0TWVtb3J5U3Rh
dHMsIEFTQ0lJTGl0ZXJhbCgiVGltZXN0YW1wIiksIG5vdy5zZWNvbmRzU2luY2VFcG9jaCgpLnNl
Y29uZHMoKSk7CiAKICAgICBQcm9jZXNzTWVtb3J5U3RhdHVzIHByb2Nlc3NNZW1vcnlTdGF0dXM7
CiAgICAgY3VycmVudFByb2Nlc3NNZW1vcnlTdGF0dXMocHJvY2Vzc01lbW9yeVN0YXR1cyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KaW5k
ZXggNjA3ZDUwZTc2OTRmMWJiY2ViZTA0YmYyM2M3ZDAwNGYzMDg2MTIwZS4uNTlhOThhZmMzMzk0
MjdhNzU0ZTI2OTMzNDk3MGYzYTMwZDcxYzI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQpAQCAtMzcsNyArMzcsNyBAQAogI2ltcG9y
dCA8bWFjaC90YXNrLmg+CiAjaW1wb3J0IDxtYWxsb2MvbWFsbG9jLmg+CiAjaW1wb3J0IDxub3Rp
ZnkuaD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1l
Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEpTQzsKQEAg
LTE0MCwxMCArMTQwLDEwIEBAIFdlYk1lbW9yeVN0YXRpc3RpY3MgV2ViTWVtb3J5U2FtcGxlcjo6
c2FtcGxlV2ViS2l0KCkgY29uc3QKICAgICAKICAgICBzaXplX3QgcmVzaWRlbnRTaXplID0gc2Ft
cGxlUHJvY2Vzc0NvbW1pdHRlZEJ5dGVzKCk7CiAKLSAgICBkb3VibGUgbm93ID0gY3VycmVudFRp
bWUoKTsKKyAgICBXYWxsVGltZSBub3cgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgICAgIAogICAg
IHdlYktpdE1lbW9yeVN0YXRzLmtleXMuYXBwZW5kKFN0cmluZygiVGltZXN0YW1wIikpOwotICAg
IHdlYktpdE1lbW9yeVN0YXRzLnZhbHVlcy5hcHBlbmQobm93KTsKKyAgICB3ZWJLaXRNZW1vcnlT
dGF0cy52YWx1ZXMuYXBwZW5kKG5vdy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSk7CiAg
ICAgd2ViS2l0TWVtb3J5U3RhdHMua2V5cy5hcHBlbmQoU3RyaW5nKCJUb3RhbCBCeXRlcyBvZiBN
ZW1vcnkgSW4gVXNlIikpOwogICAgIHdlYktpdE1lbW9yeVN0YXRzLnZhbHVlcy5hcHBlbmQodG90
YWxCeXRlc0luVXNlKTsKICAgICB3ZWJLaXRNZW1vcnlTdGF0cy5rZXlzLmFwcGVuZChTdHJpbmco
IkZhc3QgTWFsbG9jIFpvbmUgQnl0ZXMiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcAppbmRleCA0MDU0ODZjOWQ3NmRkMDY2NTIzZmRiYzg2NzEzMzBlZTk4
MjhhODQwLi5kZWUwYTA5YzA1NWQ4NDg1YTAyM2E0NWZhMTc0NGNmZTNhYTE4MTQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTU3Niw3ICs1NzYs
NyBAQCB2b2lkIFdLQ29udGV4dFNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRF
bnRyaWVzQWRkZWRBZnRlclRpbWUoV0tDb250ZQogewogICAgIGlmICghZGljdGlvbmFyeVJlZikK
ICAgICAgICAgcmV0dXJuOwotICAgIHRvSW1wbChjb250ZXh0UmVmKS0+c2V0UGx1Z0luQXV0b1N0
YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZSgqdG9JbXBsKGRpY3Rp
b25hcnlSZWYpLCB0aW1lKTsKKyAgICB0b0ltcGwoY29udGV4dFJlZiktPnNldFBsdWdJbkF1dG9T
dGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoKnRvSW1wbChkaWN0
aW9uYXJ5UmVmKSwgV2FsbFRpbWU6OmZyb21SYXdTZWNvbmRzKHRpbWUpKTsKIH0KIAogdm9pZCBX
S0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zKFdLQ29udGV4dFJlZiBjb250ZXh0UmVm
LCBXS0FycmF5UmVmIGFycmF5UmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggNTZiMWZlNTNkZWQxZGNlNTk0ZGRjNjA2OGVl
NGJmNjE5YTc5M2NhMy4uYTYwMGY5YTFlM2YxOGVhMjVhZTU3N2JhZDNmNTBmMzg4NWMyZmViYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2Uu
Y3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHN0YXRpYyBib29sIGNoZWNrSW50ZWdyaXR5T25PcGVuID0g
ZmFsc2U7CiAKIC8vIFdlIGFyZSBub3QgaW50ZXJlc3RlZCBpbiBpY29ucyB0aGF0IGhhdmUgYmVl
biB1bnVzZWQgZm9yIG1vcmUgdGhhbgogLy8gMzAgZGF5cywgZGVsZXRlIHRoZW0gZXZlbiBpZiB0
aGV5IGhhdmUgbm90IGJlZW4gZXhwbGljaXRseSByZWxlYXNlZC4KLXN0YXRpYyBjb25zdCBpbnQg
bm90VXNlZEljb25FeHBpcmF0aW9uVGltZSA9IDYwKjYwKjI0KjMwOworc3RhdGljIGNvbnN0IFNl
Y29uZHMgbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSB7IDYwKjYwKjI0KjMwIH07CiAKICNpZiAh
TE9HX0RJU0FCTEVEIHx8ICFFUlJPUl9ESVNBQkxFRAogc3RhdGljIFN0cmluZyB1cmxGb3JMb2dn
aW5nKGNvbnN0IFN0cmluZyYgdXJsKQpAQCAtNTQ2LDcgKzU0Niw3IEBAIHZvaWQgSWNvbkRhdGFi
YXNlOjpzZXRJY29uRGF0YUZvckljb25VUkwoUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mJiBkYXRhLCBj
b25zdCBTdHJpCiAKICAgICAgICAgLy8gVXBkYXRlIHRoZSBkYXRhIGFuZCBzZXQgdGhlIHRpbWUg
c3RhbXAKICAgICAgICAgaWNvbi0+c2V0SW1hZ2VEYXRhKFdURk1vdmUoZGF0YSkpOwotICAgICAg
ICBpY29uLT5zZXRUaW1lc3RhbXAoKGludCljdXJyZW50VGltZSgpKTsKKyAgICAgICAgaWNvbi0+
c2V0VGltZXN0YW1wKChpbnQpV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vj
b25kcygpKTsKIAogICAgICAgICAvLyBDb3B5IHRoZSBjdXJyZW50IHJldGFpbmluZyBwYWdlVVJM
cyAtIGlmIGFueSAtIHRvIG5vdGlmeSB0aGVtIG9mIHRoZSBjaGFuZ2UKICAgICAgICAgcGFnZVVS
THMuYXBwZW5kUmFuZ2UoaWNvbi0+cmV0YWluaW5nUGFnZVVSTHMoKS5iZWdpbigpLCBpY29uLT5y
ZXRhaW5pbmdQYWdlVVJMcygpLmVuZCgpKTsKQEAgLTY1Nyw3ICs2NTcsNyBAQCBJY29uRGF0YWJh
c2U6Okljb25Mb2FkRGVjaXNpb24gSWNvbkRhdGFiYXNlOjpzeW5jaHJvbm91c0xvYWREZWNpc2lv
bkZvckljb25VUkwoYwogICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3VybEFuZEljb25Mb2Nr
KTsKICAgICAgICAgaWYgKEljb25SZWNvcmQqIGljb24gPSBtX2ljb25VUkxUb1JlY29yZE1hcC5n
ZXQoaWNvblVSTCkpIHsKICAgICAgICAgICAgIExPRyhJY29uRGF0YWJhc2UsICJGb3VuZCBleHBp
cmF0aW9uIHRpbWUgb24gYSBwcmVzZW50IGljb24gYmFzZWQgb24gZXhpc3RpbmcgSWNvblJlY29y
ZCIpOwotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oY3VycmVudFRpbWUoKSkg
LSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGljb25FeHBpcmF0aW9u
VGltZSA/IEljb25Mb2FkRGVjaXNpb246OlllcyA6IEljb25Mb2FkRGVjaXNpb246Ok5vOworICAg
ICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oV2FsbFRpbWU6Om5vdygpLnNlY29uZHNT
aW5jZUVwb2NoKCkuc2Vjb25kcygpKSAtIHN0YXRpY19jYXN0PGludD4oaWNvbi0+Z2V0VGltZXN0
YW1wKCkpID4gaWNvbkV4cGlyYXRpb25UaW1lID8gSWNvbkxvYWREZWNpc2lvbjo6WWVzIDogSWNv
bkxvYWREZWNpc2lvbjo6Tm87CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEwNzksNyArMTA3OSw3
IEBAIHZvaWQgSWNvbkRhdGFiYXNlOjpwZXJmb3JtVVJMSW1wb3J0KCkKICAgICAvLyBOb3RlIHRo
YXQgSWNvbkluZm8uc3RhbXAgaXMgb25seSBzZXQgd2hlbiB0aGUgaWNvbiBkYXRhIGlzIHJldHJp
ZXZlZCBmcm9tIHRoZSBzZXJ2ZXIgKGFuZCB0aHVzIGlzIG5vdCB1cGRhdGVkIHdoZXRoZXIKICAg
ICAvLyB3ZSB1c2UgaXQgb3Igbm90KS4gVGhpcyBjb2RlIHdvcmtzIGFueXdheSBiZWNhdXNlIHRo
ZSBJY29uRGF0YWJhc2UgZG93bmxvYWRzIGljb25zIGFnYWluIGlmIHRoZXkgYXJlIG9sZGVyIHRo
YW4gNCBkYXlzLAogICAgIC8vIHNvIGlmIHRoZSB0aW1lc3RhbXAgZ29lcyBiYWNrIGluIHRpbWUg
bW9yZSB0aGFuIHRob3NlIDMwIGRheXMgd2UgY2FuIGJlIHN1cmUgdGhhdCB0aGUgaWNvbiB3YXMg
bm90IHVzZWQgYXQgYWxsLgotICAgIFN0cmluZyBpbXBvcnRRdWVyeSA9IFN0cmluZzo6Zm9ybWF0
KCJTRUxFQ1QgUGFnZVVSTC51cmwsIEljb25JbmZvLnVybCwgSWNvbkluZm8uc3RhbXAgRlJPTSBQ
YWdlVVJMIElOTkVSIEpPSU4gSWNvbkluZm8gT04gUGFnZVVSTC5pY29uSUQ9SWNvbkluZm8uaWNv
bklEIFdIRVJFIEljb25JbmZvLnN0YW1wID4gJS4wZjsiLCBmbG9vcihjdXJyZW50VGltZSgpIC0g
bm90VXNlZEljb25FeHBpcmF0aW9uVGltZSkpOworICAgIFN0cmluZyBpbXBvcnRRdWVyeSA9IFN0
cmluZzo6Zm9ybWF0KCJTRUxFQ1QgUGFnZVVSTC51cmwsIEljb25JbmZvLnVybCwgSWNvbkluZm8u
c3RhbXAgRlJPTSBQYWdlVVJMIElOTkVSIEpPSU4gSWNvbkluZm8gT04gUGFnZVVSTC5pY29uSUQ9
SWNvbkluZm8uaWNvbklEIFdIRVJFIEljb25JbmZvLnN0YW1wID4gJS4wZjsiLCBmbG9vcigoV2Fs
bFRpbWU6Om5vdygpIC0gbm90VXNlZEljb25FeHBpcmF0aW9uVGltZSkuc2Vjb25kc1NpbmNlRXBv
Y2goKS5zZWNvbmRzKCkpKTsKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBxdWVyeShtX3N5bmNEQiwg
aW1wb3J0UXVlcnkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5SW1wbC5jcHAKaW5kZXggYTUzMjM4NmNhMTdmYjM3OGY4NWIwOGMwZWQ3MjM2MmE2ODJi
MDFhZC4uZTU0MjIzOThiODFhYjY2MGI2M2RlYzI1ZTJmNDQwMjVhNzExNDE0NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZWdpb24uaD4KKyNpbmNsdWRlIDx3dGYv
Q3VycmVudFRpbWUuaD4KIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxndGsvZ3RrLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9T
dGFydFByb3ZpZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0lu
QXV0b1N0YXJ0UHJvdmlkZXIuY3BwCmluZGV4IDIyMjVlMzMyNTY2ZjVjYzUxM2Q5NzM1ZWEyZWQ5
MWE5MzAyNmEyZGQuLjA2MmU4N2NiZGVlZDA3ODgxZjA0M2E0YTBlZmExZmQyZGQ4NzNiYzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0
UHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0lu
QXV0b1N0YXJ0UHJvdmlkZXIuY3BwCkBAIC0zMSwxMSArMzEsMTEgQEAKICNpbmNsdWRlICJXZWJD
b250ZXh0Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbmNs
dWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLXN0YXRp
YyBjb25zdCBkb3VibGUgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQgPSAz
MCAqIDI0ICogNjAgKiA2MDsKK3N0YXRpYyBjb25zdCBTZWNvbmRzIHBsdWdJbkF1dG9TdGFydEV4
cGlyYXRpb25UaW1lVGhyZXNob2xkIHsgMzAgKiAyNCAqIDYwICogNjAgfTsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTQ2LDkgKzQ2LDkgQEAgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OlBs
dWdJbkF1dG9TdGFydFByb3ZpZGVyKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKICAgICBt
X2F1dG9TdGFydFRhYmxlLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBB
dXRvU3RhcnRUYWJsZSgpKTsKIH0KIAotc3RhdGljIGRvdWJsZSBleHBpcmF0aW9uVGltZUZyb21O
b3coKQorc3RhdGljIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lRnJvbU5vdygpCiB7Ci0gICAgcmV0
dXJuIGN1cnJlbnRUaW1lKCkgKyBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVRocmVzaG9s
ZDsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpICsgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlv
blRpbWVUaHJlc2hvbGQ7CiB9CiAKIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmFkZEF1
dG9TdGFydE9yaWdpbkhhc2goY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1bnNpZ25lZCBwbHVn
SW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCkBAIC02Myw3ICs2Myw3IEBA
IHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmFkZEF1dG9TdGFydE9yaWdpbkhhc2goY29u
c3QgU3RyaW5nJiBwYWdlT3JpZ2luLCB1CiAKICAgICBBdXRvU3RhcnRUYWJsZTo6aXRlcmF0b3Ig
aXQgPSBtX2F1dG9TdGFydFRhYmxlLmFkZChzZXNzaW9uSUQsIEF1dG9TdGFydFRhYmxlKCkpLml0
ZXJhdG9yLT52YWx1ZS5hZGQocGFnZU9yaWdpbiwgUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwKCkp
Lml0ZXJhdG9yOwogCi0gICAgZG91YmxlIGV4cGlyYXRpb25UaW1lID0gZXhwaXJhdGlvblRpbWVG
cm9tTm93KCk7CisgICAgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUgPSBleHBpcmF0aW9uVGltZUZy
b21Ob3coKTsKICAgICBpdC0+dmFsdWUuc2V0KHBsdWdJbk9yaWdpbkhhc2gsIGV4cGlyYXRpb25U
aW1lKTsKICAgICBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLnNldChwbHVnSW5PcmlnaW5IYXNoLCBw
YWdlT3JpZ2luKTsKIApAQCAtOTEsMTIgKzkxLDEyIEBAIFJlZjxBUEk6OkRpY3Rpb25hcnk+IFBs
dWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3QK
IHsKICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1hcFR5cGUgbWFwOwogCi0gICAgZG91YmxlIG5vdyA9
IGN1cnJlbnRUaW1lKCk7CisgICAgV2FsbFRpbWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOwogICAg
IGZvciAoY29uc3QgYXV0byYgc3RyaW5nT3JpZ2luSGFzaCA6IG1fYXV0b1N0YXJ0VGFibGUuZ2V0
KFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpKSB7CiAgICAgICAgIEFQSTo6RGlj
dGlvbmFyeTo6TWFwVHlwZSBoYXNoTWFwOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIG9yaWdp
bkhhc2ggOiBzdHJpbmdPcmlnaW5IYXNoLnZhbHVlKSB7CiAgICAgICAgICAgICBpZiAobm93IDw9
IG9yaWdpbkhhc2gudmFsdWUpCi0gICAgICAgICAgICAgICAgaGFzaE1hcC5zZXQoU3RyaW5nOjpu
dW1iZXIob3JpZ2luSGFzaC5rZXkpLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKG9yaWdpbkhhc2gudmFs
dWUpKTsKKyAgICAgICAgICAgICAgICBoYXNoTWFwLnNldChTdHJpbmc6Om51bWJlcihvcmlnaW5I
YXNoLmtleSksIEFQSTo6RG91YmxlOjpjcmVhdGUob3JpZ2luSGFzaC52YWx1ZS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnNlY29uZHMoKSkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChoYXNoTWFwLnNp
emUoKSkKICAgICAgICAgICAgIG1hcC5zZXQoc3RyaW5nT3JpZ2luSGFzaC5rZXksIEFQSTo6RGlj
dGlvbmFyeTo6Y3JlYXRlKFdURk1vdmUoaGFzaE1hcCkpKTsKQEAgLTEwNywyNiArMTA3LDI2IEBA
IFJlZjxBUEk6OkRpY3Rpb25hcnk+IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphdXRvU3RhcnRP
cmlnaW5zVGFibGVDb3B5KCkgY29uc3QKIAogdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6
c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKEFQSTo6RGljdGlvbmFyeSYgdGFibGUpCiB7Ci0gICAg
c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QodGFibGUsIFtdKGRv
dWJsZSkgeworICAgIHNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0
KHRhYmxlLCBbXShXYWxsVGltZSkgewogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9KTsKIH0K
IAotdm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2luc0ZpbHRl
cmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZShBUEk6OkRpY3Rpb25hcnkmIHRhYmxlLCBkb3Vi
bGUgdGltZSkKK3ZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdp
bnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0aW9uYXJ5JiB0YWJs
ZSwgV2FsbFRpbWUgdGltZSkKIHsKLSAgICBkb3VibGUgYWRqdXN0ZWRUaW1lc3RhbXAgPSB0aW1l
ICsgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQ7Ci0gICAgc2V0QXV0b1N0
YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QodGFibGUsIFthZGp1c3RlZFRpbWVz
dGFtcF0oZG91YmxlIGV4cGlyYXRpb25UaW1lc3RhbXApIHsKKyAgICBXYWxsVGltZSBhZGp1c3Rl
ZFRpbWVzdGFtcCA9IHRpbWUgKyBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVRocmVzaG9s
ZDsKKyAgICBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdCh0YWJs
ZSwgW2FkanVzdGVkVGltZXN0YW1wXShXYWxsVGltZSBleHBpcmF0aW9uVGltZXN0YW1wKSB7CiAg
ICAgICAgIHJldHVybiBhZGp1c3RlZFRpbWVzdGFtcCA+IGV4cGlyYXRpb25UaW1lc3RhbXA7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9y
aWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KEFQSTo6RGljdGlvbmFyeSYgdGFibGUsIFdU
Rjo6RnVuY3Rpb248Ym9vbChkb3VibGUgZXhwaXJhdGlvblRpbWVzdGFtcCk+JiYgaXNFeHBpcmF0
aW9uVGltZUFjY2VwdGFibGUpCit2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRv
U3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdChBUEk6OkRpY3Rpb25hcnkmIHRh
YmxlLCBXVEY6OkZ1bmN0aW9uPGJvb2woV2FsbFRpbWUgZXhwaXJhdGlvblRpbWVzdGFtcCk+JiYg
aXNFeHBpcmF0aW9uVGltZUFjY2VwdGFibGUpCiB7CiAgICAgQVNTRVJUKGlzRXhwaXJhdGlvblRp
bWVBY2NlcHRhYmxlKTsKIAogICAgIG1faGFzaFRvT3JpZ2luTWFwLmNsZWFyKCk7CiAgICAgbV9h
dXRvU3RhcnRUYWJsZS5jbGVhcigpOwotICAgIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4gaGFz
aE1hcDsKKyAgICBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4gaGFzaE1hcDsKICAgICBIYXNo
TWFwPHVuc2lnbmVkLCBTdHJpbmc+JiBoYXNoVG9PcmlnaW5NYXAgPSBtX2hhc2hUb09yaWdpbk1h
cC5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25l
ZCwgU3RyaW5nPigpKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgQXV0b1N0YXJ0VGFibGUmIGFzdCA9
IG1fYXV0b1N0YXJ0VGFibGUuYWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCks
IEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZTsKIApAQCAtMTQxLDcgKzE0MSw3IEBA
IHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdp
dGhJdGVtc1Bhc3NpbmdUZXN0KEFQSTo6CiAgICAgICAgICAgICBpZiAoaGFzaFRpbWUudmFsdWUt
PnR5cGUoKSAhPSBBUEk6OkRvdWJsZTo6QVBJVHlwZSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICAgICAgZG91YmxlIGV4cGlyYXRpb25UaW1lID0gc3RhdGljX2Nhc3Q8QVBJ
OjpEb3VibGUqPihoYXNoVGltZS52YWx1ZS5nZXQoKSktPnZhbHVlKCk7CisgICAgICAgICAgICBX
YWxsVGltZSBleHBpcmF0aW9uVGltZSA9IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyhzdGF0aWNf
Y2FzdDxBUEk6OkRvdWJsZSo+KGhhc2hUaW1lLnZhbHVlLmdldCgpKS0+dmFsdWUoKSk7CiAgICAg
ICAgICAgICBpZiAoIWlzRXhwaXJhdGlvblRpbWVBY2NlcHRhYmxlKGV4cGlyYXRpb25UaW1lKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIApAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQgUGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24odW5zaWduZWQg
cGx1Z0luT3JpZ2luSGFzCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBkb3VibGUgbmV3RXhwaXJh
dGlvblRpbWUgPSBleHBpcmF0aW9uVGltZUZyb21Ob3coKTsKKyAgICBXYWxsVGltZSBuZXdFeHBp
cmF0aW9uVGltZSA9IGV4cGlyYXRpb25UaW1lRnJvbU5vdygpOwogICAgIG1fYXV0b1N0YXJ0VGFi
bGUuYWRkKHNlc3Npb25JRCwgQXV0b1N0YXJ0VGFibGUoKSkuaXRlcmF0b3ItPnZhbHVlLmFkZChp
dC0+dmFsdWUsIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCgpKS5pdGVyYXRvci0+dmFsdWUuc2V0
KHBsdWdJbk9yaWdpbkhhc2gsIG5ld0V4cGlyYXRpb25UaW1lKTsKICAgICBtX3Byb2Nlc3NQb29s
LT5zZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OkRpZEFkZFBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2gocGx1Z0luT3JpZ2luSGFzaCwgbmV3RXhwaXJhdGlvblRpbWUsIHNl
c3Npb25JRCkpOwogICAgIG1fcHJvY2Vzc1Bvb2wtPmNsaWVudCgpLnBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlc0NoYW5nZWQobV9wcm9jZXNzUG9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKaW5kZXgg
OThiZjA2NzYzYmY0NDRiZTJlNDk2ODkwZjJjMThiYTVhMjY2YzI5NS4uYzhkNzEwZTUxNjBmMjg2
YWIxODM5OGM1NTRmNjRlMDcyYTRjZDY4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaApAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIApAQCAtNDMsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgV2ViUHJvY2Vzc1Bvb2w7CiAKLXR5cGVkZWYgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPiBQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA7Cit0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxU
aW1lPiBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA7CiB0eXBlZGVmIEhhc2hNYXA8UEFMOjpTZXNz
aW9uSUQsIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcD4gU2Vzc2lvblBsdWdJbkF1dG9TdGFydE9y
aWdpbk1hcDsKIHR5cGVkZWYgVmVjdG9yPFN0cmluZz4gUGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsK
IApAQCAtNTcsNyArNTgsNyBAQCBjbGFzcyBQbHVnSW5BdXRvU3RhcnRQcm92aWRlciB7CiAKICAg
ICBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBhdXRvU3RhcnRPcmlnaW5zVGFibGVDb3B5KCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGUoQVBJOjpEaWN0aW9uYXJ5Jik7Ci0g
ICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJU
aW1lKEFQSTo6RGljdGlvbmFyeSYsIGRvdWJsZSB0aW1lKTsKKyAgICB2b2lkIHNldEF1dG9TdGFy
dE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0aW9uYXJ5
JiwgV2FsbFRpbWUpOwogICAgIHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2luc0FycmF5KEFQSTo6QXJy
YXkmKTsKIAogICAgIFNlc3Npb25QbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAgYXV0b1N0YXJ0T3Jp
Z2luSGFzaGVzQ29weSgpIGNvbnN0OwpAQCAtNjYsNyArNjcsNyBAQCBjbGFzcyBQbHVnSW5BdXRv
U3RhcnRQcm92aWRlciB7CiBwcml2YXRlOgogICAgIFdlYlByb2Nlc3NQb29sKiBtX3Byb2Nlc3NQ
b29sOwogCi0gICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5n
VGVzdChBUEk6OkRpY3Rpb25hcnkmLCBXVEY6OkZ1bmN0aW9uPGJvb2woZG91YmxlIGV4cGlyYXRp
b25UaW1lc3RhbXApPiYmKTsKKyAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJ
dGVtc1Bhc3NpbmdUZXN0KEFQSTo6RGljdGlvbmFyeSYsIFdURjo6RnVuY3Rpb248Ym9vbChXYWxs
VGltZSBleHBpcmF0aW9uVGltZXN0YW1wKT4mJik7CiAKICAgICB0eXBlZGVmIEhhc2hNYXA8U3Ry
aW5nLCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4g
QXV0b1N0YXJ0VGFibGU7CiAgICAgdHlwZWRlZiBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBBdXRv
U3RhcnRUYWJsZT4gU2Vzc2lvbkF1dG9TdGFydFRhYmxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGI2ZjkwYTU5MmM5NTJjMTE1MmI5NDQ3MWE4ZDdj
MTk0YjViYWNmMDcuLjNmY2FmNWFiNDVkNDY4YzUxZTY0NDA0MjFhMzI0ZDVjZWZkYzZlZjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTgyLDExICs4
MiwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9VUkxQYXJzZXIuaD4KICNpbmNsdWRlIDxwYWwvU2Vzc2lvbklELmg+Ci0jaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0xhbmd1YWdlLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQpAQCAtOTQyLDggKzk0Miw4IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NEaWRG
aW5pc2hMYXVuY2hpbmcoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQogICAgIC8vIHNvIGNoZWNr
IGlmIGl0IG5lZWRzIHRvIGJlIHN0YXJ0ZWQgaGVyZQogICAgIGlmIChtX21lbW9yeVNhbXBsZXJF
bmFibGVkKSB7CiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW1wbGVMb2dTYW5k
Ym94SGFuZGxlOyAgICAgICAgCi0gICAgICAgIGRvdWJsZSBub3cgPSBXVEY6OmN1cnJlbnRUaW1l
KCk7Ci0gICAgICAgIFN0cmluZyBzYW1wbGVMb2dGaWxlUGF0aCA9IFN0cmluZzo6Zm9ybWF0KCJX
ZWJQcm9jZXNzJWxsdXBpZCVkIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihub3cp
LCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKKyAgICAgICAgV2FsbFRpbWUgbm93ID0g
V2FsbFRpbWU6Om5vdygpOworICAgICAgICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJp
bmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHVwaWQlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxv
bmcgbG9uZz4obm93LnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpKSwgcHJvY2Vzcy0+cHJv
Y2Vzc0lkZW50aWZpZXIoKSk7CiAgICAgICAgIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU2FuZGJveEV4
dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShzYW1wbGVMb2dGaWxlUGF0aCwg
U2FuZGJveEV4dGVuc2lvbjo6VHlwZTo6UmVhZFdyaXRlLCBzYW1wbGVMb2dTYW5kYm94SGFuZGxl
KTsKICAgICAgICAgCiAgICAgICAgIHByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3M6
OlN0YXJ0TWVtb3J5U2FtcGxlcihzYW1wbGVMb2dTYW5kYm94SGFuZGxlLCBzYW1wbGVMb2dGaWxl
UGF0aCwgbV9tZW1vcnlTYW1wbGVySW50ZXJ2YWwpLCAwKTsKQEAgLTE0MjUsOCArMTQyNSw4IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0TWVtb3J5U2FtcGxlcihjb25zdCBkb3VibGUgaW50
ZXJ2YWwpCiAgICAgCiAgICAgLy8gRm9yIFdlYlByb2Nlc3MKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FtcGxlTG9nU2FuZGJveEhhbmRsZTsgICAgCi0gICAgZG91YmxlIG5vdyA9IFdU
Rjo6Y3VycmVudFRpbWUoKTsKLSAgICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6
OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+
KG5vdykpOworICAgIFdhbGxUaW1lIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKKyAgICBTdHJpbmcg
c2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHUiLCBzdGF0
aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG5vdy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29u
ZHMoKSkpOwogICAgIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRl
SGFuZGxlRm9yVGVtcG9yYXJ5RmlsZShzYW1wbGVMb2dGaWxlUGF0aCwgU2FuZGJveEV4dGVuc2lv
bjo6VHlwZTo6UmVhZFdyaXRlLCBzYW1wbGVMb2dTYW5kYm94SGFuZGxlKTsKICAgICAKICAgICBz
ZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlN0YXJ0TWVtb3J5U2FtcGxl
cihzYW1wbGVMb2dTYW5kYm94SGFuZGxlLCBzYW1wbGVMb2dGaWxlUGF0aCwgaW50ZXJ2YWwpKTsK
QEAgLTE3NDgsNyArMTc0OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNldFBsdWdJbkF1dG9T
dGFydE9yaWdpbnMoQVBJOjpBcnJheSYgYXJyYXkpCiAgICAgbV9wbHVnSW5BdXRvU3RhcnRQcm92
aWRlci5zZXRBdXRvU3RhcnRPcmlnaW5zQXJyYXkoYXJyYXkpOwogfQogCi12b2lkIFdlYlByb2Nl
c3NQb29sOjpzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVk
QWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYgZGljdGlvbmFyeSwgZG91YmxlIHRpbWUpCit2b2lk
IFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50
cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYgZGljdGlvbmFyeSwgV2FsbFRpbWUg
dGltZSkKIHsKICAgICBtX3BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLnNldEF1dG9TdGFydE9yaWdp
bnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoZGljdGlvbmFyeSwgdGltZSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA0MTI1ODE5Y2I1
ODEwMDY4ZmIwNTA2NmI1OTViODAyYTg0NWQ2ZGYzLi4xYjMxNzU0YzEwMTVmN2FmMWYzM2NmNTY1
ZjIxMjRkNGM3ZmIxMzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmgKQEAgLTMxNCw3ICszMTQsNyBAQCBjbGFzcyBXZWJQcm9jZXNzUG9vbCBmaW5hbCA6IHB1Ymxp
YyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OlByb2Nlc3NQbwogICAgIFJlZjxB
UEk6OkRpY3Rpb25hcnk+IHBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcygpIGNvbnN0OwogICAg
IHZvaWQgc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEFQSTo6RGljdGlvbmFyeSYpOwog
ICAgIHZvaWQgc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2lucyhBUEk6OkFycmF5Jik7Ci0gICAgdm9p
ZCBzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJU
aW1lKEFQSTo6RGljdGlvbmFyeSYsIGRvdWJsZSB0aW1lKTsKKyAgICB2b2lkIHNldFBsdWdJbkF1
dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0
aW9uYXJ5JiwgV2FsbFRpbWUpOwogCiAgICAgLy8gTmV0d29yayBQcm9jZXNzIE1hbmFnZW1lbnQK
ICAgICBOZXR3b3JrUHJvY2Vzc1Byb3h5JiBlbnN1cmVOZXR3b3JrUHJvY2VzcyhXZWJzaXRlRGF0
YVN0b3JlKiB3aXRoV2Vic2l0ZURhdGFTdG9yZSA9IG51bGxwdHIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKaW5kZXggZmU3Mzli
MjZkMzFhN2MxMTQ4YmRjMDk1MzZhOTBlMmU4ZDRlNjFjOC4uNThjNjRkMjBkMTE2ODFjNGQ5NDI5
Y2UyZmExY2U0MDg4N2E3YjU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAi
U2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dE1p
bGVzdG9uZXMuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxs
VGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkBAIC04MCw3ICs4MSw3IEBAIGNsYXNzIFBhZ2VMb2FkZXJDbGllbnQgewogCiAgICAg
dmlydHVhbCB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2ViS2l0OjpXZWJQYWdl
JiwgV2ViS2l0OjpXZWJGcmFtZSYsIFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYktpdDo6V2Vi
UGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJh
bWUmLCBjb25zdCBXVEY6OlN0cmluZyYsIGRvdWJsZSAvKmRlbGF5Ki8sIGRvdWJsZSAvKmRhdGUq
LykgeyB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcm
LCBkb3VibGUgLypkZWxheSovLCBXYWxsVGltZSAvKmRhdGUqLykgeyB9CiAgICAgdmlydHVhbCB2
b2lkIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktp
dDo6V2ViRnJhbWUmKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBnbG9iYWxPYmplY3RJc0F2YWls
YWJsZUZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6V2ViRnJhbWUmLCBXZWJDb3Jl
OjpET01XcmFwcGVyV29ybGQmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFn
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNDhmZDFiYTQxMGU0YjNjZmE5YjU1ZTU4N2RlZjQxZWFj
NzE5NTUwNC4uZTQxZTgzMTgwOTkwNGJlZWM2YmVkYmQ5ZDAzNzI2ZmY4ODBkNDM5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5jcHAKQEAgLTI4Mywx
MiArMjgzLDEyIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50OjpkaWRDYW5j
ZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UmIHBhCiAgICAgbV9jbGllbnQuZGlkQ2Fu
Y2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKLXZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViUGFnZSYgcGFn
ZSwgV2ViRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBkb3Vi
bGUgZGF0ZSkKK3ZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsUGVyZm9y
bUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViUGFnZSYgcGFnZSwgV2ViRnJhbWUmIGZyYW1lLCBj
b25zdCBTdHJpbmcmIHVybCwgZG91YmxlIGRlbGF5LCBXYWxsVGltZSBkYXRlKQogewogICAgIGlm
ICghbV9jbGllbnQud2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX2NsaWVudC53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
dG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b1VSTFJlZih1cmwuaW1wbCgpKSwgZGVsYXks
IGRhdGUsIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQud2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9V
UkxSZWYodXJsLmltcGwoKSksIGRlbGF5LCBkYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25k
cygpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCiB2b2lkIEluamVjdGVkQnVuZGxl
UGFnZUxvYWRlckNsaWVudDo6ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUoV2ViUGFnZSYg
cGFnZSwgV2ViRnJhbWUmIGZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUxv
YWRlckNsaWVudC5oCmluZGV4IGRjYjBjZmNiYTBiNGFlNWY0MDRiNzI3YWQ0M2JjNDI2MTM5MmFh
MjMuLmE5MGVkNjBhZjFmZTY5NWE5YTU0NTU2OWYwM2ExMDgwMjVmOGQ0ZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKQEAgLTczLDcgKzczLDcgQEAg
Y2xhc3MgSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50
PFdLQnVuZGxlUGFnZUxvYWRlckNsaWUKIAogICAgIHZvaWQgZGlkQ2xlYXJXaW5kb3dPYmplY3RG
b3JGcmFtZShXZWJQYWdlJiwgV2ViRnJhbWUmLCBXZWJDb3JlOjpET01XcmFwcGVyV29ybGQmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViUGFn
ZSYsIFdlYkZyYW1lJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0Rm9yRnJhbWUoV2ViUGFnZSYsIFdlYkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBkb3Vi
bGUgLypkZWxheSovLCBkb3VibGUgLypkYXRlKi8pIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UmLCBXZWJGcmFtZSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgZG91YmxlIC8qZGVsYXkqLywgV2FsbFRpbWUgLypkYXRlKi8pIG92ZXJyaWRl
OwogICAgIHZvaWQgZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWUoV2ViUGFnZSYsIFdlYkZy
YW1lJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGdsb2JhbE9iamVjdElzQXZhaWxhYmxlRm9yRnJh
bWUoV2ViUGFnZSYsIFdlYkZyYW1lJiwgV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAxZTk4YjQ4M2IxODk4ZWEy
NWUxMGRhY2MzMDYwYWMwNGE3ZGNjYTA1Li4yMzljNDQwOGJmMmE4ZmE1NWVmNGQ0NmU5ODVlOTNl
YTZhZGQ2OWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTMzNSw3ICsz
MzUsNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENsaWVu
dFJlZGlyZWN0KCkKICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZENhbmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpKSk7CiB9CiAK
LXZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdChjb25zdCBVUkwmIHVybCwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpCit2
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgVVJMJiB1cmwsIGRvdWJsZSBpbnRlcnZhbCwgV2FsbFRpbWUgZmlyZURhdGUpCiB7
CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBh
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGI2ODAzMmUyOTBkMzcxMDE2Yzgx
ZjVlNzgwMTY0OTNlOThmNzQ3MzQuLmVmYmYyODdhMWVkZTRlNDcxYzc5OTU2MDE5MjcwMThkOWQ2
YjcwNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0xMDMsNyArMTAzLDcgQEAg
Y2xhc3MgV2ViRnJhbWVMb2FkZXJDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVM
b2FkZXJDbGllbnQgewogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RG
b3JQcm92aXNpb25hbExvYWQoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlUHJv
dmlzaW9uYWxVUkwoKSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3QoKSBmaW5hbDsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkg
ZmluYWw7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3Qg
V2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBXYWxsVGltZSBmaXJlRGF0ZSkgZmluYWw7
CiAgICAgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3RhdGVXaXRoaW5QYWdlKCkgZmluYWw7CiAgICAgdm9p
ZCBkaXNwYXRjaERpZFJlcGxhY2VTdGF0ZVdpdGhpblBhZ2UoKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA4NWVmM2Y5MzI0MmFmYzJmYWJkMTE0Njdh
NDE0MjY0NzA1ODlmYmIzLi5mYTUxOTI0MjJlMjhiZDJiZDU2ODQzZGU4NTcwYmIzNjk0Nzg1MmZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNTEsNyArMTUx
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAv
LyBUaGlzIHNob3VsZCBiZSBsZXNzIHRoYW4gcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVU
aHJlc2hvbGQgaW4gUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuCi1zdGF0aWMgY29uc3QgZG91Ymxl
IHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVXBkYXRlVGhyZXNob2xkID0gMjkgKiAyNCAq
IDYwICogNjA7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9u
VGltZVVwZGF0ZVRocmVzaG9sZCB7IDI5ICogMjQgKiA2MCAqIDYwIH07CiAKIC8vIFRoaXMgc2hv
dWxkIGJlIGdyZWF0ZXIgdGhhbiB0aWxlUmV2YWxpZGF0aW9uVGltZW91dCBpbiBUaWxlQ29udHJv
bGxlci4KIHN0YXRpYyBjb25zdCBTZWNvbmRzIG5vblZpc2libGVQcm9jZXNzQ2xlYW51cERlbGF5
IHsgMTBfcyB9OwpAQCAtMjAyLDcgKzIwMiw3IEBAIFdlYlByb2Nlc3M6OldlYlByb2Nlc3MoKQog
ICAgIGFkZFN1cHBsZW1lbnQ8VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI+KCk7CiAjZW5kaWYKIAot
ICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVm
YXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+KCkpOworICAgIG1fcGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Np
b25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4oKSk7CiAKICAgICBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6c2hhcmVkKCkuc2V0Tm90aWZpY2F0aW9uQ2FsbGJhY2soW3RoaXNdIChWZWN0
b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJiBzdGF0aXN0aWNzKSB7CiAgICAgICAgIEFTU0VS
VCghc3RhdGlzdGljcy5pc0VtcHR5KCkpOwpAQCAtODAwLDggKzgwMCw4IEBAIHN0YXRpYyB1bnNp
Z25lZCBoYXNoRm9yUGx1Z0luT3JpZ2luKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3Qg
U3RyaW5nJiBwbHVnCiAKIGJvb2wgV2ViUHJvY2Vzczo6aXNQbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IHsKLSAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+
Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoZXMuZmluZChzZXNzaW9uSUQpOwotICAgIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT46
OmNvbnN0X2l0ZXJhdG9yIGl0OworICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8
dW5zaWduZWQsIFdhbGxUaW1lPj46OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1f
cGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKKyAgICBIYXNoTWFw
PHVuc2lnbmVkLCBXYWxsVGltZT46OmNvbnN0X2l0ZXJhdG9yIGl0OwogICAgIGJvb2wgY29udGFp
bnMgPSBmYWxzZTsKIAogICAgIGlmIChzZXNzaW9uSXRlcmF0b3IgIT0gbV9wbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoZXMuZW5kKCkpIHsKQEAgLTgxNCw3ICs4MTQsNyBAQCBib29sIFdlYlByb2Nl
c3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNo
LCBQQUw6OlNlcwogICAgICAgICBpZiAoaXQgPT0gc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5lbmQo
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgcmV0dXJuIGN1cnJlbnRU
aW1lKCkgPCBpdC0+dmFsdWU7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKSA8IGl0LT52YWx1
ZTsKIH0KIAogYm9vbCBXZWJQcm9jZXNzOjpzaG91bGRQbHVnSW5BdXRvU3RhcnRGcm9tT3JpZ2lu
KFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCkBAIC04NTEsMjggKzg1MSwy
OCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9yaWdpbihjb25zdCBTdHJp
bmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZwogICAgIC8vIGNvbWVzIGJhY2sgZnJvbSB0aGUg
cGFyZW50IHByb2Nlc3MuIFRlbXBvcmFyaWx5IGFkZCB0aGlzIGhhc2ggdG8gdGhlIGxpc3Qgd2l0
aCBhIHRoaXJ0eQogICAgIC8vIHNlY29uZCB0aW1lb3V0LiBUaGF0IHdheSwgZXZlbiBpZiB0aGUg
cGFyZW50IGRlY2lkZXMgbm90IHRvIGFkZCBpdCwgd2UnbGwgb25seSBiZQogICAgIC8vIGluY29y
cmVjdCBmb3IgYSBsaXR0bGUgd2hpbGUuCi0gICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMuYWRkKHNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKS5pdGVyYXRvci0+
dmFsdWUuc2V0KHBsdWdJbk9yaWdpbkhhc2gsIGN1cnJlbnRUaW1lKCkgKyAzMCAqIDEwMDApOwor
ICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChzZXNzaW9uSUQsIEhhc2hNYXA8
dW5zaWduZWQsIFdhbGxUaW1lPigpKS5pdGVyYXRvci0+dmFsdWUuc2V0KHBsdWdJbk9yaWdpbkhh
c2gsIFdhbGxUaW1lOjpub3coKSArIDMwX3MgKiAxMDAwKTsKIAogICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQb29sOjpBZGRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoKHBhZ2VPcmlnaW4sIHBsdWdJbk9yaWdpbkhhc2gsIHNlc3Npb25JRCks
IDApOwogfQogCi12b2lkIFdlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQpCit2b2lkIFdlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgV2FsbFRpbWUgZXhwaXJh
dGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKIHsKICAgICAvLyBXaGVuIGNhbGxl
ZCwgc29tZSB3ZWIgcHJvY2VzcyAod2hpY2ggYWxzbyBtaWdodCBiZSB0aGlzIG9uZSkgYWRkZWQg
dGhlIG9yaWdpbiBmb3IgYXV0by1zdGFydGluZywKICAgICAvLyBvciByZWNlaXZlZCB1c2VyIGlu
dGVyYWN0aW9uLgogICAgIC8vIFNldCB0aGUgYml0IHRvIGF2b2lkIGhhdmluZyByZWR1bmRhbnRs
eSBjYWxsIGludG8gdGhlIFVJIHByb2Nlc3MgdXBvbiB1c2VyIGludGVyYWN0aW9uLgotICAgIG1f
cGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChzZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWdu
ZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnNldChwbHVnSW5PcmlnaW5IYXNoLCBleHBp
cmF0aW9uVGltZSk7CisgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuYWRkKHNlc3Np
b25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+KCkpLml0ZXJhdG9yLT52YWx1ZS5zZXQo
cGx1Z0luT3JpZ2luSGFzaCwgZXhwaXJhdGlvblRpbWUpOwogfQogCi12b2lkIFdlYlByb2Nlc3M6
OnJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhjb25zdCBIYXNoTWFwPHVu
c2lnbmVkLCBkb3VibGU+JiBoYXNoZXMpCit2b2lkIFdlYlByb2Nlc3M6OnJlc2V0UGx1Z0luQXV0
b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhjb25zdCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGlt
ZT4mIGhhc2hlcykKIHsKICAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5jbGVhcigp
OwotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6OlNlc3Npb25JRDo6
ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+KCkpLml0ZXJhdG9y
LT52YWx1ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPiY+KGhhc2hl
cykpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChQQUw6OlNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4oKSkuaXRl
cmF0b3ItPnZhbHVlLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4m
PihoYXNoZXMpKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9y
aWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+PiYgaGFzaGVzKQordm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2ln
bmVkLCBXYWxsVGltZT4+JiBoYXNoZXMpCiB7Ci0gICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5z
aWduZWQsIGRvdWJsZT4+Jj4oaGFzaGVzKSk7CisgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoZXMuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5z
aWduZWQsIFdhbGxUaW1lPj4mPihoYXNoZXMpKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpwbHVn
SW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29u
c3QgU3RyaW5nJiBwbHVnaW5PcmlnaW4sIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCkKQEAgLTg4NCw4ICs4ODQsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnBs
dWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBj
b25zdAogICAgIGlmICghcGx1Z0luT3JpZ2luSGFzaCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
SGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0
X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
LmZpbmQoc2Vzc2lvbklEKTsKLSAgICBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Ojpjb25zdF9p
dGVyYXRvciBpdDsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVk
LCBXYWxsVGltZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CisgICAgSGFzaE1hcDx1bnNpZ25l
ZCwgV2FsbFRpbWU+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICBib29sIGNvbnRhaW5zID0gZmFs
c2U7CiAgICAgaWYgKHNlc3Npb25JdGVyYXRvciAhPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2hlcy5lbmQoKSkgewogICAgICAgICBpdCA9IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZmluZChw
bHVnSW5PcmlnaW5IYXNoKTsKQEAgLTg5OCw3ICs4OTgsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBs
dWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYWdlT3JpZ2luLCBj
b25zdAogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChpdC0+dmFsdWUgLSBj
dXJyZW50VGltZSgpID4gcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVVcGRhdGVUaHJlc2hv
bGQpCisgICAgaWYgKGl0LT52YWx1ZSAtIFdhbGxUaW1lOjpub3coKSA+IHBsdWdJbkF1dG9TdGFy
dEV4cGlyYXRpb25UaW1lVXBkYXRlVGhyZXNob2xkKQogICAgICAgICByZXR1cm47CiAKICAgICBw
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6
UGx1Z0luRGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihwbHVnSW5PcmlnaW5IYXNoLCBzZXNzaW9u
SUQpLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDUyYjlkM2Zl
YzQ0MzQ1NjQ3YjU0NjE2NTJiYTkzNzllZWYxYWUwZjguLjllNzlmZWJiMmNjOTU0OWU5YTJhOGUw
YmIxMDAyMzc0MzczZTFiYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApA
QCAtMjgwLDkgKzI4MCw5IEBAIGNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQ2hpbGRQcm9jZXNz
IHsKICAgICB2b2lkIGZ1bGxLZXlib2FyZEFjY2Vzc01vZGVDaGFuZ2VkKGJvb2wgZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZCk7CiAKICAgICBib29sIGlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCk7Ci0gICAgdm9pZCBk
aWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gs
IGRvdWJsZSBleHBpcmF0aW9uVGltZSwgUEFMOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgcmVzZXRQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5EZWZhdWx0SGFzaGVzKGNvbnN0IEhhc2hNYXA8dW5zaWduZWQs
IGRvdWJsZT4mIGhhc2hlcyk7Ci0gICAgdm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhh
c2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3Vi
bGU+PiYgaGFzaGVzKTsKKyAgICB2b2lkIGRpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2go
dW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUsIFBBTDo6
U2Vzc2lvbklEKTsKKyAgICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhh
c2hlcyhjb25zdCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4mIGhhc2hlcyk7CisgICAgdm9p
ZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhjb25zdCBIYXNoTWFwPFBBTDo6U2Vz
c2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4+JiBoYXNoZXMpOwogCiAgICAgdm9p
ZCBwbGF0Zm9ybVNldENhY2hlTW9kZWwoQ2FjaGVNb2RlbCk7CiAKQEAgLTM4Niw3ICszODYsNyBA
QCBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CiAjZW5kaWYKICAgICBS
ZWZQdHI8V2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0Y2hlcj4gbV93ZWJJbnNwZWN0b3JJbnRl
cnJ1cHREaXNwYXRjaGVyOwogCi0gICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1
bnNpZ25lZCwgZG91YmxlPj4gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CisgICAgSGFz
aE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+PiBtX3BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlczsKICAgICBIYXNoU2V0PFN0cmluZz4gbV9wbHVnSW5BdXRv
U3RhcnRPcmlnaW5zOwogCiAgICAgYm9vbCBtX2hhc1NldENhY2hlTW9kZWwgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRl
eCA1Nzk4ZDdkMTRmMzdjMTQ2ODk1ZWYxYTI5ZDYwYjNiYWE0M2MxY2UwLi41NTNkZTQ2YzY2ZGY3
YTU3MTgyMzZiZWRlYWEzZjYxNzYzZWU1MWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNTEsOSArNTEsOSBAQCBtZXNzYWdlcyAt
PiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBEZXN0cm95U2Vzc2lvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpCiAKICAgICAjIFBsdWctaW5zLgotICAgIERpZEFkZFBsdWdJbkF1
dG9TdGFydE9yaWdpbkhhc2godWludDMyX3QgaGFzaCwgZG91YmxlIGV4cGlyYXRpb25UaW1lLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCi0gICAgUmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5E
ZWZhdWx0SGFzaGVzKEhhc2hNYXA8dWludDMyX3QsZG91YmxlPiBoYXNoZXMpCi0gICAgUmVzZXRQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1h
cDx1aW50MzJfdCxkb3VibGU+PiBoYXNoZXMpCisgICAgRGlkQWRkUGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaCh1aW50MzJfdCBoYXNoLCBXYWxsVGltZSBleHBpcmF0aW9uVGltZSwgUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQorICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhh
c2hlcyhIYXNoTWFwPHVpbnQzMl90LFdhbGxUaW1lPiBoYXNoZXMpCisgICAgUmVzZXRQbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoZXMoSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1aW50
MzJfdCxXYWxsVGltZT4+IGhhc2hlcykKICAgICBTZXRQbHVnaW5Mb2FkQ2xpZW50UG9saWN5KHVp
bnQ4X3QgcG9saWN5LCBTdHJpbmcgaG9zdCwgU3RyaW5nIGJ1bmRsZUlkZW50aWZpZXIsIFN0cmlu
ZyB2ZXJzaW9uU3RyaW5nKQogICAgIFJlc2V0UGx1Z2luTG9hZENsaWVudFBvbGljaWVzKEhhc2hN
YXA8U3RyaW5nLCBIYXNoTWFwPFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIHVpbnQ4X3Q+Pj4gcGx1
Z2luTG9hZENsaWVudFBvbGljaWVzKQogICAgIENsZWFyUGx1Z2luQ2xpZW50UG9saWNpZXMoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNw
cAppbmRleCBkNjUzODU5Mjc5MjVmMTc2ZTM5OWE1NDNlMzMxOWY4Mjc3NDc4NGNmLi4wMjM1NGM2
MjQ2ZWUzNDQzMjIwMzM5ZWUyOWEzZDQwMzhjNmI1NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcApAQCAtMzMsNiArMzMsNyBA
QAogI2luY2x1ZGUgPGdsaWIuaD4KICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxsaWJz
b3VwL3NvdXAuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDc2NDllYTNjNDA1
N2FjZDYwNGNjZWFmZTQxZjg3ODc1Njg2ZGMyYTEuLjM0YzQ2ZmYzMWE2NTQ2OWE0YmE0NzlhMzdh
NzBmYzViOTI5NThiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTA2LDcgKzEw
Niw3IEBAIGNsYXNzIFdlYkZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50IHsKICAgICB2b2lkIGRpc3BhdGNoRGlkRGlzcGF0Y2hPbmxvYWRFdmVudHMo
KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJl
ZGlyZWN0KCkgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUp
IGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0
IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgV2FsbFRpbWUgZmlyZURhdGUpIGZpbmFs
OwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpIGZpbmFsOwogICAgIHZv
aWQgZGlzcGF0Y2hEaWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKCkgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50Lm1tCmluZGV4IDYyN2IzZTQxMzQ3MzEyOGYxNTUxNDcyNzQ4MjBjN2FkMjJk
Zjc4YWUuLjdmODU2NGFmMjk3MDNiYjZjNWY3NDZhMzkxYWQ0MzQ5YmZiMWE5NjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50Lm1tCkBAIC01OTgsMTMgKzU5OCwxMyBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkKICAgICAgICAg
Q2FsbEZyYW1lTG9hZERlbGVnYXRlKGltcGxlbWVudGF0aW9ucy0+ZGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZENhbmNlbENs
aWVudFJlZGlyZWN0Rm9yRnJhbWU6KSwgbV93ZWJGcmFtZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25z
dCBVUkwmIHVybCwgZG91YmxlIGRlbGF5LCBkb3VibGUgZmlyZURhdGUpCit2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJM
JiB1cmwsIGRvdWJsZSBkZWxheSwgV2FsbFRpbWUgZmlyZURhdGUpCiB7CiAgICAgV2ViVmlldyAq
d2ViVmlldyA9IGdldFdlYlZpZXcobV93ZWJGcmFtZS5nZXQoKSk7CiAgICAgV2ViRnJhbWVMb2Fk
RGVsZWdhdGVJbXBsZW1lbnRhdGlvbkNhY2hlKiBpbXBsZW1lbnRhdGlvbnMgPSBXZWJWaWV3R2V0
RnJhbWVMb2FkRGVsZWdhdGVJbXBsZW1lbnRhdGlvbnMod2ViVmlldyk7CiAgICAgaWYgKGltcGxl
bWVudGF0aW9ucy0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMRGVsYXlGaXJlRGF0ZUZv
ckZyYW1lRnVuYykgewogICAgICAgICBOU1VSTCAqY29jb2FVUkwgPSB1cmw7Ci0gICAgICAgIENh
bGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPndpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RUb1VSTERlbGF5RmlyZURhdGVGb3JGcmFtZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3
ZWJWaWV3OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDpkZWxheTpmaXJlRGF0ZTpmb3JG
cmFtZTopLCBjb2NvYVVSTCwgZGVsYXksIFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5j
ZTE5NzA6ZmlyZURhdGVdLCBtX3dlYkZyYW1lLmdldCgpKTsKKyAgICAgICAgQ2FsbEZyYW1lTG9h
ZERlbGVnYXRlKGltcGxlbWVudGF0aW9ucy0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJM
RGVsYXlGaXJlRGF0ZUZvckZyYW1lRnVuYywgd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6d2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMOmRlbGF5OmZpcmVEYXRlOmZvckZyYW1lOiksIGNv
Y29hVVJMLCBkZWxheSwgW05TRGF0ZSBkYXRlV2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDpmaXJl
RGF0ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKV0sIG1fd2ViRnJhbWUuZ2V0KCkpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGM1OTMzNTYxOWU2
NzY2MWY0YTQxNzNlMjM3OGQ2NGEzNjhmMDE3MGYuLmZkODRjMWNlNWNmMWEzZDI1NjMyNWRiZGZh
MTA5ZDI2NzMzMWQ3M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTM1NCwx
MiArMzU0LDEyIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3QoKQogICAgICAgICBmcmFtZUxvYWREZWxlZ2F0ZS0+ZGlkQ2FuY2VsQ2xp
ZW50UmVkaXJlY3RGb3JGcmFtZSh3ZWJWaWV3LCBtX3dlYkZyYW1lKTsKIH0KIAotdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0
IFVSTCYgdXJsLCBkb3VibGUgZGVsYXksIGRvdWJsZSBmaXJlRGF0ZSkKK3ZvaWQgV2ViRnJhbWVM
b2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwm
IHVybCwgZG91YmxlIGRlbGF5LCBXYWxsVGltZSBmaXJlRGF0ZSkKIHsKICAgICBXZWJWaWV3KiB3
ZWJWaWV3ID0gbV93ZWJGcmFtZS0+d2ViVmlldygpOwogICAgIENPTVB0cjxJV2ViRnJhbWVMb2Fk
RGVsZWdhdGU+IGZyYW1lTG9hZERlbGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+
ZnJhbWVMb2FkRGVsZWdhdGUoJmZyYW1lTG9hZERlbGVnYXRlKSkpCi0gICAgICAgIGZyYW1lTG9h
ZERlbGVnYXRlLT53aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkwod2ViVmlldywgQlN0cmlu
Zyh1cmwuc3RyaW5nKCkpLCBkZWxheSwgTWFyc2hhbGxpbmdIZWxwZXJzOjpDRkFic29sdXRlVGlt
ZVRvREFURShmaXJlRGF0ZSksIG1fd2ViRnJhbWUpOworICAgICAgICBmcmFtZUxvYWREZWxlZ2F0
ZS0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMKHdlYlZpZXcsIEJTdHJpbmcodXJsLnN0
cmluZygpKSwgZGVsYXksIE1hcnNoYWxsaW5nSGVscGVyczo6Q0ZBYnNvbHV0ZVRpbWVUb0RBVEUo
ZmlyZURhdGUuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpLCBtX3dlYkZyYW1lKTsKIH0K
IAogdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldp
dGhpblBhZ2UoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMDFhMGVlZjM2NWIwMzMz
YTI2NGI5MzBhNDFjZmM0ZjIxYThhNDIwMi4uOWI4MzMzYmMxYWI5OTY3YjZmN2UzOWEyNWI3NTRm
ZjM0OTgwODYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC04NSw3ICs4NSw3IEBA
IGNsYXNzIFdlYkZyYW1lTG9hZGVyQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50LCBwdWJsaWMgV2ViQ29yZTo6CiAgICAgdm9pZCBkaXNwYXRjaERpZERpc3BhdGNoT25s
b2FkRXZlbnRzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzcGF0Y2hXaWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRlcnZh
bCwgZG91YmxlIGZpcmVEYXRlKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZv
cm1DbGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIFdh
bGxUaW1lIGZpcmVEYXRlKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFB1c2hTdGF0
ZVdpdGhpblBhZ2UoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRl
V2l0aGluUGFnZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkRvd25sb2FkLmgK
aW5kZXggNmFkNzM0NjhhNzIwYTk3OWRmMDY2MmY0Y2ViZWFmYmEzMzEwOWFlNC4uODQ4ODVmMjRm
YjgzNGEyZGZjYTgyZWViNzllMTljNzE5MTA0YTQ3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9X
ZWJEb3dubG9hZC5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9DT01QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5j
bHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
ICNpZiBVU0UoQ0ZVUkxDT05ORUNUSU9OKQpAQCAtMTE3LDggKzExOCw4IEBAIGNsYXNzIFdlYkRv
d25sb2FkCiAgICAgQ09NUHRyPElXZWJEb3dubG9hZERlbGVnYXRlPiBtX2RlbGVnYXRlOwogCiAj
aWZuZGVmIE5ERUJVRwotICAgIGRvdWJsZSBtX3N0YXJ0VGltZTsKLSAgICBkb3VibGUgbV9kYXRh
VGltZTsKKyAgICBXYWxsVGltZSBtX3N0YXJ0VGltZTsKKyAgICBXYWxsVGltZSBtX2RhdGFUaW1l
OwogICAgIGludCBtX3JlY2VpdmVkOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViRG93bmxvYWRDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJEb3dubG9hZENGTmV0LmNwcAppbmRleCAyNmVmNWQ5ZDc0ZDQ0N2JhYmRlYzc1MzYx
NmQ4MThiZWZlMzU3MmFjLi44ZTcxOTc5Y2E5N2ZkNTUwMmVhY2IyZGVjY2U5YWY2MzkwNzU2NWEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEb3dubG9hZENGTmV0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEb3dubG9hZENGTmV0LmNwcApAQCAt
MzQ1LDkgKzM0NSw5IEBAIEhSRVNVTFQgV2ViRG93bmxvYWQ6OnVzZUNyZWRlbnRpYWwoX0luX29w
dF8gSVdlYlVSTENyZWRlbnRpYWwqIGNyZWRlbnRpYWwsIF9Jbl9vCiB2b2lkIFdlYkRvd25sb2Fk
OjpkaWRTdGFydCgpCiB7CiAjaWZuZGVmIE5ERUJVRwotICAgIG1fc3RhcnRUaW1lID0gbV9kYXRh
VGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgbV9zdGFydFRpbWUgPSBtX2RhdGFUaW1lID0gV2Fs
bFRpbWU6Om5vdygpOwogICAgIG1fcmVjZWl2ZWQgPSAwOwotICAgIExPRyhEb3dubG9hZCwgIkRP
V05MT0FEIC0gU3RhcnRlZCAlcCBhdCAlLjNmIHNlY29uZHMiLCB0aGlzLCBtX3N0YXJ0VGltZSk7
CisgICAgTE9HKERvd25sb2FkLCAiRE9XTkxPQUQgLSBTdGFydGVkICVwIGF0ICUuM2Ygc2Vjb25k
cyIsIHRoaXMsIG1fc3RhcnRUaW1lLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpKTsKICNl
bmRpZgogICAgIGlmIChGQUlMRUQobV9kZWxlZ2F0ZS0+ZGlkQmVnaW4odGhpcykpKQogICAgICAg
ICBMT0dfRVJST1IoIkRvd25sb2FkRGVsZWdhdGUtPmRpZEJlZ2luIGZhaWxlZCIpOwpAQCAtNDEx
LDkgKzQxMSw5IEBAIHZvaWQgV2ViRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKENGSW5kZXggbGVu
Z3RoKQogewogI2lmbmRlZiBOREVCVUcKICAgICBtX3JlY2VpdmVkICs9IGxlbmd0aDsKLSAgICBk
b3VibGUgY3VycmVudCA9IGN1cnJlbnRUaW1lKCk7Ci0gICAgaWYgKGN1cnJlbnQgLSBtX2RhdGFU
aW1lID4gMi4wKQotICAgICAgICBMT0coRG93bmxvYWQsICJET1dOTE9BRCAtICVwIGhhbmdlZCBm
b3IgJS4zZiBzZWNvbmRzIC0gUmVjZWl2ZWQgJWkgYnl0ZXMgZm9yIGEgdG90YWwgb2YgJWkiLCB0
aGlzLCBjdXJyZW50IC0gbV9kYXRhVGltZSwgbGVuZ3RoLCBtX3JlY2VpdmVkKTsKKyAgICBXYWxs
VGltZSBjdXJyZW50ID0gV2FsbFRpbWU6Om5vdygpOworICAgIGlmICgoY3VycmVudCAtIG1fZGF0
YVRpbWUpID4gMl9zKQorICAgICAgICBMT0coRG93bmxvYWQsICJET1dOTE9BRCAtICVwIGhhbmdl
ZCBmb3IgJS4zZiBzZWNvbmRzIC0gUmVjZWl2ZWQgJWkgYnl0ZXMgZm9yIGEgdG90YWwgb2YgJWki
LCB0aGlzLCAoY3VycmVudCAtIG1fZGF0YVRpbWUpLnNlY29uZHMoKSwgbGVuZ3RoLCBtX3JlY2Vp
dmVkKTsKICAgICBtX2RhdGFUaW1lID0gY3VycmVudDsKICNlbmRpZgogICAgIGlmIChGQUlMRUQo
bV9kZWxlZ2F0ZS0+ZGlkUmVjZWl2ZURhdGFPZkxlbmd0aCh0aGlzLCBsZW5ndGgpKSkKQEAgLTQ1
OCw3ICs0NTgsNyBAQCB2b2lkIFdlYkRvd25sb2FkOjpkaWRDcmVhdGVEZXN0aW5hdGlvbihDRlVS
TFJlZiBkZXN0aW5hdGlvbikKIHZvaWQgV2ViRG93bmxvYWQ6OmRpZEZpbmlzaCgpCiB7CiAjaWZu
ZGVmIE5ERUJVRwotICAgIExPRyhEb3dubG9hZCwgIkRPV05MT0FEIC0gRmluaXNoZWQgJXAgYWZ0
ZXIgJWkgYnl0ZXMgYW5kICUuM2Ygc2Vjb25kcyIsIHRoaXMsIG1fcmVjZWl2ZWQsIGN1cnJlbnRU
aW1lKCkgLSBtX3N0YXJ0VGltZSk7CisgICAgTE9HKERvd25sb2FkLCAiRE9XTkxPQUQgLSBGaW5p
c2hlZCAlcCBhZnRlciAlaSBieXRlcyBhbmQgJS4zZiBzZWNvbmRzIiwgdGhpcywgbV9yZWNlaXZl
ZCwgKFdhbGxUaW1lOjpub3coKSAtIG1fc3RhcnRUaW1lKS5zZWNvbmRzKCkpOwogI2VuZGlmCiAK
ICAgICBBU1NFUlQoIW1fYnVuZGxlUGF0aC5pc0VtcHR5KCkgJiYgIW1fZGVzdGluYXRpb24uaXNF
bXB0eSgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAwYzk3YjNjOWJjYjg2ZGE4MTE1MzliZGVjOGMwOGY4NDhlMDljNTliLi4yZjQ0YjRlMDU3
OWEwNTI3YmVkZTFkOWE2YmI0NTQ1ZDYxYjk3NjY1IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjQgQEAKIDIwMTgtMDItMjIgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgUmVtb3ZlIGN1
cnJlbnRUaW1lKCkgLyBjdXJyZW50VGltZU1TKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6Cisg
ICAgICAgIChwcmVjaXNlVGltZUNhbGxiYWNrKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnNldE1vY2tHZW9sb2Nh
dGlvblBvc2l0aW9uKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRp
b24uY3BwOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RocmVhZEdyb3VwLmNw
cDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwOgorICAg
ICAgICAoV1RSOjpHZW9sb2NhdGlvblByb3ZpZGVyTW9jazo6c2V0UG9zaXRpb24pOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OnByZWNpc2VUaW1lKToKKworMjAxOC0wMi0yMiAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKwogICAgICAgICBSZW1vdmUgc2xlZXAo
ZG91YmxlKSBhbmQgc2xlZXBNUyhkb3VibGUpIGludGVyZmFjZXMKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzAzOAogCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuY3BwCmluZGV4IDQwYWZkMTBjNWVjOGUxYzUzOGI0YTg4NzEyYmEzYmU5MTRkZTFk
NGIuLjcyYzY0NWMwMTlmZjc5MGUwMDg4OTFkOWZhZTAxOTgxYTEzNDBkZjkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC00OCwxMiArNDgsMTIgQEAKICNpbmNsdWRlIDxsb2Nh
bGUuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0xvZ2dpbmdBY2N1bXVs
YXRvci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTc2OCw3ICsxNzY4LDcgQEAgc3RhdGlj
IEpTVmFsdWVSZWYgc2V0QmFja2luZ1NjYWxlRmFjdG9yQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmUKIAogc3RhdGljIEpTVmFsdWVSZWYgcHJlY2lzZVRpbWVDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVyKGNv
bnRleHQsIFdURjo6Y3VycmVudFRpbWUoKSk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVtYmVy
KGNvbnRleHQsIFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSk7
CiB9CiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGltYWdlQ291bnRJbkdlbmVyYWxQYXN0ZWJvYXJkQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCA5NDhhYmEwNzUyY2U4YjIxZjgzZGQ3MzQzZTc1MDNl
MGQyZjIyNmYwLi4xZTlkNjI3YjViNWJmNjEyYWFlYmQzYWFmY2E2MjNjN2RlNWUzNmE5IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNzQsOSArNzQsOSBA
QAogI2ltcG9ydCA8V2ViS2l0L1dlYlN0b3JhZ2VNYW5hZ2VyUHJpdmF0ZS5oPgogI2ltcG9ydCA8
V2ViS2l0L1dlYlZpZXcuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJWaWV3UHJpdmF0ZS5oPgotI2lt
cG9ydCA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1dhbGxUaW1lLmg+CiAKICNpZiAhUExB
VEZPUk0oSU9TKQogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+CkBAIC00NDcsOSArNDQ3LDkg
QEAgdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRpb25Qb3NpdGlvbihkb3VibGUgbGF0
aXR1ZGUsIGRvdWJsZSBsb25naXR1ZGUsIGQKICAgICBXZWJHZW9sb2NhdGlvblBvc2l0aW9uICpw
b3NpdGlvbiA9IG5pbDsKICAgICBpZiAoIXByb3ZpZGVzQWx0aXR1ZGUgJiYgIXByb3ZpZGVzQWx0
aXR1ZGVBY2N1cmFjeSAmJiAhcHJvdmlkZXNIZWFkaW5nICYmICFwcm92aWRlc1NwZWVkKSB7CiAg
ICAgICAgIC8vIFRlc3QgdGhlIGV4cG9zZWQgQVBJLgotICAgICAgICBwb3NpdGlvbiA9IFtbV2Vi
R2VvbG9jYXRpb25Qb3NpdGlvbiBhbGxvY10gaW5pdFdpdGhUaW1lc3RhbXA6Y3VycmVudFRpbWUo
KSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFjY3VyYWN5
XTsKKyAgICAgICAgcG9zaXRpb24gPSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGlu
aXRXaXRoVGltZXN0YW1wOldhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29u
ZHMoKSBsYXRpdHVkZTpsYXRpdHVkZSBsb25naXR1ZGU6bG9uZ2l0dWRlIGFjY3VyYWN5OmFjY3Vy
YWN5XTsKICAgICB9IGVsc2UgewotICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9u
IGdlb2xvY2F0aW9uUG9zaXRpb24geyBjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwgbG9uZ2l0dWRl
LCBhY2N1cmFjeSB9OworICAgICAgICBXZWJDb3JlOjpHZW9sb2NhdGlvblBvc2l0aW9uIGdlb2xv
Y2F0aW9uUG9zaXRpb24geyBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNv
bmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUsIGFjY3VyYWN5IH07CiAgICAgICAgIGlmIChwcm92
aWRlc0FsdGl0dWRlKQogICAgICAgICAgICAgZ2VvbG9jYXRpb25Qb3NpdGlvbi5hbHRpdHVkZSA9
IGFsdGl0dWRlOwogICAgICAgICBpZiAocHJvdmlkZXNBbHRpdHVkZUFjY3VyYWN5KQpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9uLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAKaW5kZXggMGEzMjljMjgzZjcy
ODcxZjE4ZGRmY2NjNzViM2E1NGE0NGVkMjFiNi4uNGU4ZDY4MDQ5MDNjMzkwMGNlM2VmMWRhMzU1
MmI1NDc4YzMzMzY5MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q29uZGl0aW9uLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRp
b24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5jbHVkZSA8dGhy
ZWFkPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvRGF0YUxvZy5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9UaHJlYWRHcm91cC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9U
aHJlYWRHcm91cC5jcHAKaW5kZXggMjkxYTNmMDE5NDk1MDcwN2NlNmJkYTM2YjcwOGZkMGFkY2Q4
MTA3Ny4uZGFlOGVjMjYyYjc5MDE1OGJjNmMxZDcxNjRkMzc4YWZmZmZhYWU1MyAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGhyZWFkR3JvdXAuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RocmVhZEdyb3VwLmNwcApAQCAtMjYsNiArMjYs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgor
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRHcm91cC5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL1dvcmtRdWV1ZS5jcHAKaW5kZXggNWNmMTY3MTA3ZjZjMTRhY2JkMGM2YzllMjVmNjZjM2Yw
OTI5OTI1MS4uZmFlNWE4MzI1M2MzMWU2NGFiMjEwMmU2NWE0YmVhNTEyYTAzOTZkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCkBAIC0yNyw2ICsyNyw3
IEBACiAKICNpbmNsdWRlICJUZXN0LmgiCiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAKaW5kZXggYzBh
OTM3MDVkZmU1ODRlNGNmYjI1YTE3Y2QzOTBhNmRjNjYwNmZlNi4uNmY5M2NhMjczMDMwZjU3NzZl
MzE4ZjllNDU2OTAyMmNlZTE0YjkwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9HZW9sb2NhdGlvblByb3ZpZGVyTW9jay5jcHAKQEAgLTI5LDcgKzI5LDcgQEAKICNpbmNsdWRl
IDxXZWJLaXQvV0tHZW9sb2NhdGlvbk1hbmFnZXIuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgor
I2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV1RSIHsKIApAQCAtNjUsNyAr
NjUsNyBAQCBHZW9sb2NhdGlvblByb3ZpZGVyTW9jazo6fkdlb2xvY2F0aW9uUHJvdmlkZXJNb2Nr
KCkKIAogdm9pZCBHZW9sb2NhdGlvblByb3ZpZGVyTW9jazo6c2V0UG9zaXRpb24oZG91YmxlIGxh
dGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNB
bHRpdHVkZSwgZG91YmxlIGFsdGl0dWRlLCBib29sIHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSwg
ZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlkZXNIZWFkaW5nLCBkb3VibGUgaGVh
ZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3BlZWQsIGJvb2wgcHJvdmlkZXNGbG9v
ckxldmVsLCBkb3VibGUgZmxvb3JMZXZlbCkKIHsKLSAgICBtX3Bvc2l0aW9uLmFkb3B0KFdLR2Vv
bG9jYXRpb25Qb3NpdGlvbkNyZWF0ZV9jKGN1cnJlbnRUaW1lKCksIGxhdGl0dWRlLCBsb25naXR1
ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlLCBhbHRpdHVkZSwgcHJvdmlkZXNBbHRpdHVk
ZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBwcm92aWRlc0hlYWRpbmcsIGhlYWRpbmcsIHBy
b3ZpZGVzU3BlZWQsIHNwZWVkLCBwcm92aWRlc0Zsb29yTGV2ZWwsIGZsb29yTGV2ZWwpKTsKKyAg
ICBtX3Bvc2l0aW9uLmFkb3B0KFdLR2VvbG9jYXRpb25Qb3NpdGlvbkNyZWF0ZV9jKFdhbGxUaW1l
Ojpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSwgbGF0aXR1ZGUsIGxvbmdpdHVk
ZSwgYWNjdXJhY3ksIHByb3ZpZGVzQWx0aXR1ZGUsIGFsdGl0dWRlLCBwcm92aWRlc0FsdGl0dWRl
QWNjdXJhY3ksIGFsdGl0dWRlQWNjdXJhY3ksIHByb3ZpZGVzSGVhZGluZywgaGVhZGluZywgcHJv
dmlkZXNTcGVlZCwgc3BlZWQsIHByb3ZpZGVzRmxvb3JMZXZlbCwgZmxvb3JMZXZlbCkpOwogCiAg
ICAgbV9oYXNFcnJvciA9IGZhbHNlOwogICAgIG1fZXJyb3JNZXNzYWdlLmNsZWFyKCk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cAppbmRleCAwYzhjMDQwMDJlMTg4MDYwZDA2NzVjZGRkYmQyZDRlYTkwYWIzNjJhLi40NzBkZGE3
NjUyMzdmM2EzN2FmNmMxNTVlOWY3ZjVkN2U5OWUyNzVlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTc4OCw3ICs3
ODgsNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKIAogZG91YmxlIFRlc3RSdW5uZXI6OnByZWNpc2VUaW1lKCkKIHsK
LSAgICByZXR1cm4gY3VycmVudFRpbWUoKTsKKyAgICByZXR1cm4gV2FsbFRpbWU6Om5vdygpLnNl
Y29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldFVz
ZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGVuYWJsZWQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334492</attachid>
            <date>2018-02-22 18:29:24 -0800</date>
            <delta_ts>2018-02-22 18:29:24 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183052-20180223112922.patch</filename>
            <type>text/plain</type>
            <size>97616</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkNDlkYjQ5NTAzZWM3MTlhNjBjYmJk
ODU3ZjU1YjRjNDRjNWVhYzYuLjQ5OWZlZmM3ZGI2YzRlYjA3ODU1ODk1Zjc5ZTc4ZDgyY2U2OTVm
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMzcgQEAKIDIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgUmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJy
ZW50VGltZU1TKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MzA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBXVEY6OmN1cnJlbnRUaW1lKCkgYW5kIFdURjo6Y3VycmVu
dFRpbWVNUygpLgorICAgICAgICBXZSBoYXZlIGZhbmN5IFdhbGxUaW1lIEFQSXMuIEl0IGhhcyBz
dHJvbmcgdHlwZXMgbGlrZSBXYWxsVGltZSBhbmQgU2Vjb25kcywKKyAgICAgICAgYW5kIHRoaXMg
cmVkdWNlcyB0aGUgY2hhbmNlIG9mIGJ1Z3MgbWl4aW5nIGRvdWJsZXMgd2hpY2ggcmVwcmVzZW50
IG1pbGxpc2Vjb25kcworICAgICAgICBhbmQgc2Vjb25kcy4KKworICAgICAgICAqIHd0Zi9Db25k
aXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ3VycmVudFRpbWUuY3BwOgorICAgICAgICAoV1RGOjpj
dXJyZW50VGltZSk6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpub3cpOgorICAgICAgICAqIHd0
Zi9DdXJyZW50VGltZS5oOgorICAgICAgICAoV1RGOjpjdXJyZW50VGltZU1TKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAgICAgICAgKFdURjo6anNDdXJyZW50VGltZSk6
CisgICAgICAgICogd3RmL1BhcmtpbmdMb3QuY3BwOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90
OjpwYXJrQ29uZGl0aW9uYWxseUltcGwpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdU
Rjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdX
aW4uY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdCk6CisgICAg
ICAgIChXVEY6OmFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbCk6CisgICAgICAgICog
d3RmL1dhbGxUaW1lLmNwcDoKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om5vdyk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL1dhbGxUaW1lLmg6CisKKzIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgUmVtb3ZlIHNsZWVwKGRvdWJsZSkg
YW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE2ODdiZDlkZWUz
Zjg3MDgxNzkwODdjYWZjZjY4ODdkMzZjNDUxODUuLjA4MWMwNmI3ZDE3YzgwYWRiZjA1ZTQ0MTY5
ZDhkMWUxNWRkMzk0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxOC0wMi0yMiAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUg
Y3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQ
b3NpdGlvbik6CisgICAgICAgICogZG9tL0RPTVRpbWVTdGFtcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcCk6CisgICAgICAgICogZmlsZWFwaS9GaWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZTo6bGFzdE1vZGlmaWVkIGNvbnN0KToKKyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlU2VxdWVuY2VOdW1iZXIpOgorICAgICAg
ICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3RlcFVwIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1
dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0Fn
ZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29y
a0FnZW50Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJt
aXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlRm9ybURhdGFJZGVudGlmaWVy
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmNsaWVudFJlZGlyZWN0ZWQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0hpc3Rvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZCk6CisgICAg
ICAgICogcGFnZS9IaXN0b3J5Lmg6CisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheTo6c3RhcnRGYWRlQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxh
eWVyUG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6TGVnYWN5VGlsZUxheWVy
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpkZWNheWVkQ2FwYWNpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9TeXN0ZW1NZW1vcnlJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3lzdGVtTWVtb3J5TGV2ZWwpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW06CisKIDIwMTgt
MDItMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmVtb3ZlIGNhbiBhc3NlcnQgaW4gY2FzZSB0d28g
ZnJhbWVzIHRyeSB0byBkZWxldGUgdGhlIHNhbWUgY2FjaGUgYXQgdGhlIHNhbWUgdGltZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA0YWZiYzg1NjU0NjgyM2ZiYzg4MTlkNjNmZTEwNzIxNmU1NTdiMWU2Li44MjYwMzJk
Y2ZjZThjZDg1MDliNmExNTM0OTUxOWQ1YjM3NzIyMmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYw
IEBACiAyMDE4LTAyLTIyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgog
CisgICAgICAgIFJlbW92ZSBjdXJyZW50VGltZSgpIC8gY3VycmVudFRpbWVNUygpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwNTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9saW51eC9XZWJNZW1vcnlT
YW1wbGVyTGludXguY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjpzYW1w
bGVXZWJLaXQgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5t
YWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVdlYktpdCBj
b25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAg
IChXS0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0Fk
ZGVkQWZ0ZXJUaW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25V
UkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTG9hZERlY2lz
aW9uRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6cGVyZm9ybVVS
TEltcG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmV4cGlyYXRpb25UaW1lRnJvbU5vdyk6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRvU3RhcnRPcmlnaW5IYXNoKToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmF1dG9TdGFydE9yaWdpbnNU
YWJsZUNvcHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRl
cjo6c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0
b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRk
ZWRBZnRlclRpbWUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6
c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QpOgorICAgICAgICAo
V2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6ZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzdGFydE1lbW9yeVNhbXBsZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmlu
Z091dEVudHJpZXNBZGRlZEFmdGVyVGltZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OkluamVjdGVkQnVu
ZGxlOjpQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9y
aWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1
dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5j
cHA6CisKKzIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+
CisKICAgICAgICAgUmVtb3ZlIHNsZWVwKGRvdWJsZSkgYW5kIHNsZWVwTVMoZG91YmxlKSBpbnRl
cmZhY2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODMwMzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhjYjRhYzU4NDBhOTYyMDk0
NjEyYjk0NTA4NWRlYzY3NTU5MzRmMDQuLmJiMDVlMGFhNDNlNWM4MjQzZTFlY2VhN2M5NTE1NWM3
NDVkN2MxOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxOC0wMi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZW1vdmUgY3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdCk6CisKIDIwMTgtMDItMTYgIFlvdWVubiBGYWJsZXQgIDx5
b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHNwZWNpZnlpbmcgd2hpY2ggcGx1Zy1p
bnMgYXJlIHN1cHBvcnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDhkZWRiYjZi
NmE1ZjhjNTg4NGQ3MzJiM2UxMTdiODU0MDExMjJiYmIuLmU5NzI3NjY4ZDcwM2VjMjI4ZWY2MjE2
NzA3M2NjYWVlMzBlYTg0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxOSBAQAorMjAxOC0wMi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNv
bT4KKworICAgICAgICBSZW1vdmUgY3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNs
aWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkRvd25sb2Fk
Lmg6CisgICAgICAgICogV2ViRG93bmxvYWRDRk5ldC5jcHA6CisgICAgICAgIChXZWJEb3dubG9h
ZDo6ZGlkU3RhcnQpOgorICAgICAgICAoV2ViRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKToKKyAg
ICAgICAgKFdlYkRvd25sb2FkOjpkaWRGaW5pc2gpOgorCiAyMDE4LTAyLTIxICBEb24gT2xtc3Rl
YWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXVtXaW5dIFVzZSBj
bWFrZWNvbmZpZy5oIHJhdGhlciB0aGFuIGNvbmZpZy5oIGFuZCBQbGF0Zm9ybS5oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlv
bi5oCmluZGV4IGY1MzM2ODk1ZDQ4YTNmYzk2YTY4YjRlMDc4M2VlNTBlNjhhOWJjMjAuLjUxMmYx
MGYyYWQ1M2NhZWJhODA3OWQ2MDZmNjc2Y2M5ZmMyYzBlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0NvbmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCkBAIC0y
Niw3ICsyNiw2IEBACiAjaWZuZGVmIFdURl9Db25kaXRpb25faAogI2RlZmluZSBXVEZfQ29uZGl0
aW9uX2gKIAotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAjaW5jbHVkZSA8d3RmL1Rp
bWVXaXRoRHluYW1pY0Nsb2NrVHlwZS5oPgpAQCAtMzYsMTEgKzM1LDExIEBAIG5hbWVzcGFjZSBX
VEYgewogLy8gVGhpcyBpcyBhIGNvbmRpdGlvbiB2YXJpYWJsZSB0aGF0IGlzIHN1aXRhYmxlIGZv
ciB1c2Ugd2l0aCBhbnkgbG9jay1saWtlIG9iamVjdCwgaW5jbHVkaW5nCiAvLyBvdXIgb3duIFdU
Rjo6TG9jay4gSXQgZmVhdHVyZXMgc3RhbmRhcmQgd2FpdCgpL25vdGlmeU9uZSgpL25vdGlmeUFs
bCgpIG1ldGhvZHMgaW4gYWRkaXRpb24gdG8KIC8vIGEgdmFyaWV0eSBvZiB3YWl0LXdpdGgtdGlt
ZW91dCBtZXRob2RzLiBUaGlzIGluY2x1ZGVzIG1ldGhvZHMgdGhhdCB1c2UgV1RGJ3Mgb3duIG5v
dGlvbiBvZgotLy8gdGltZSwgbGlrZSB3YWxsLWNsb2NrIHRpbWUgKGkuZS4gY3VycmVudFRpbWUo
KSkgYW5kIG1vbm90b25pYyB0aW1lIChpLmUuCi0vLyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1Rp
bWUoKSkuIFRoaXMgaXMgYSB2ZXJ5IGVmZmljaWVudCBjb25kaXRpb24gdmFyaWFibGUuIEl0IG9u
bHkgcmVxdWlyZXMKLS8vIG9uZSBieXRlIG9mIG1lbW9yeS4gbm90aWZ5T25lKCkgYW5kIG5vdGlm
eUFsbCgpIHJlcXVpcmUganVzdCBhIGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QKLS8vIGNh
c2Ugd2hlcmUgbm8gdGhyZWFkIGlzIHdhaXRpbmcuIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3
aGVuIHVzZWQgd2l0aCBXVEY6OkxvY2ssIGNhbgotLy8gb3V0cGVyZm9ybSBhIHN5c3RlbSBjb25k
aXRpb24gdmFyaWFibGUgYW5kIGxvY2sgYnkgdXAgdG8gNTh4LgorLy8gdGltZSwgbGlrZSB3YWxs
LWNsb2NrIHRpbWUgKGkuZS4gV2FsbFRpbWUpIGFuZCBtb25vdG9uaWMgdGltZSAoaS5lLiBNb25v
dG9uaWNUaW1lKS4gVGhpcyBpcworLy8gYSB2ZXJ5IGVmZmljaWVudCBjb25kaXRpb24gdmFyaWFi
bGUuIEl0IG9ubHkgcmVxdWlyZXMgb25lIGJ5dGUgb2YgbWVtb3J5LiBub3RpZnlPbmUoKSBhbmQK
Ky8vIG5vdGlmeUFsbCgpIHJlcXVpcmUganVzdCBhIGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZh
c3QgY2FzZSB3aGVyZSBubyB0aHJlYWQgaXMgd2FpdGluZy4KKy8vIFRoaXMgY29uZGl0aW9uIHZh
cmlhYmxlLCB3aGVuIHVzZWQgd2l0aCBXVEY6OkxvY2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVt
IGNvbmRpdGlvbiB2YXJpYWJsZQorLy8gYW5kIGxvY2sgYnkgdXAgdG8gNTh4LgogY2xhc3MgQ29u
ZGl0aW9uIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25kaXRpb24pOwogcHVibGljOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwIGIvU291cmNlL1dURi93
dGYvQ3VycmVudFRpbWUuY3BwCmluZGV4IGI4OThjYmQyNzUzN2Q2NTAzNDZiMjE2OTIzZWE1NjBj
Nzg1MGQwYWEuLjhhYmMyZmYyNWUwZTFjNTIzZTgyZmUwZTQyNDg2YWE3ZDcxYTBkMjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9DdXJyZW50VGltZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJDdXJyZW50VGltZS5oIgogI2luY2x1ZGUgIk1vbm90b25pY1RpbWUuaCIKKyNp
bmNsdWRlICJXYWxsVGltZS5oIgogCiAjaW5jbHVkZSAiQ29uZGl0aW9uLmgiCiAjaW5jbHVkZSAi
TG9jay5oIgpAQCAtMTUxLDcgKzE1Miw3IEBAIHN0YXRpYyBib29sIHFwY0F2YWlsYWJsZSgpCiAg
ICAgcmV0dXJuIGF2YWlsYWJsZTsKIH0KIAotZG91YmxlIGN1cnJlbnRUaW1lKCkKK3N0YXRpYyBp
bmxpbmUgZG91YmxlIGN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBVc2UgYSBjb21iaW5hdGlvbiBv
ZiBmdGltZSBhbmQgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIuCiAgICAgLy8gZnRpbWUgcmV0dXJu
cyB0aGUgaW5mb3JtYXRpb24gd2Ugd2FudCwgYnV0IGRvZXNuJ3QgaGF2ZSBzdWZmaWNpZW50IHJl
c29sdXRpb24uCkBAIC0xOTYsNyArMTk3LDcgQEAgZG91YmxlIGN1cnJlbnRUaW1lKCkKIAogI2Vs
c2UKIAotZG91YmxlIGN1cnJlbnRUaW1lKCkKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGN1cnJlbnRU
aW1lKCkKIHsKICAgICBzdGF0aWMgYm9vbCBpbml0ID0gZmFsc2U7CiAgICAgc3RhdGljIGRvdWJs
ZSBsYXN0VGltZTsKQEAgLTIyNiw3ICsyMjcsNyBAQCBkb3VibGUgY3VycmVudFRpbWUoKQogLy8g
YmV0dGVyIGFjY3VyYWN5IGNvbXBhcmVkIHdpdGggV2luZG93cyBpbXBsZW1lbnRhdGlvbiBvZiBn
X2dldF9jdXJyZW50X3RpbWU6CiAvLyAoaHR0cDovL3d3dy5nb29nbGUuY29tL2NvZGVzZWFyY2gv
cD9obD1lbiNISG5OUmprczF0MC9nbGliLTIuNS4yL2dsaWIvZ21haW4uYyZxPWdfZ2V0X2N1cnJl
bnRfdGltZSkuCiAvLyBOb24tV2luZG93cyBHVEsgYnVpbGRzIGNvdWxkIHVzZSBnZXR0aW1lb2Zk
YXkoKSBkaXJlY3RseSBidXQgZm9yIHRoZSBzYWtlIG9mIGNvbnNpc3RlbmN5IGxldHMgdXNlIEdU
SyBmdW5jdGlvbi4KLWRvdWJsZSBjdXJyZW50VGltZSgpCitzdGF0aWMgaW5saW5lIGRvdWJsZSBj
dXJyZW50VGltZSgpCiB7CiAgICAgR1RpbWVWYWwgbm93OwogICAgIGdfZ2V0X2N1cnJlbnRfdGlt
ZSgmbm93KTsKQEAgLTIzNSw3ICsyMzYsNyBAQCBkb3VibGUgY3VycmVudFRpbWUoKQogCiAjZWxz
ZQogCi1kb3VibGUgY3VycmVudFRpbWUoKQorc3RhdGljIGlubGluZSBkb3VibGUgY3VycmVudFRp
bWUoKQogewogICAgIHN0cnVjdCB0aW1ldmFsIG5vdzsKICAgICBnZXR0aW1lb2ZkYXkoJm5vdywg
MCk7CkBAIC0yNDQsNiArMjQ1LDExIEBAIGRvdWJsZSBjdXJyZW50VGltZSgpCiAKICNlbmRpZgog
CitXYWxsVGltZSBXYWxsVGltZTo6bm93KCkKK3sKKyAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMo
Y3VycmVudFRpbWUoKSk7Cit9CisKICNpZiBVU0UoR0xJQikKIAogZG91YmxlIG1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGlt
ZS5oIGIvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuaAppbmRleCBhZWVhNzBmMzE0MTBlMWY2
ZmJmNGM5MDI4ZjQzMTA3MWI4NTliMjMzLi5iM2U2YzE0NmQxY2E0MDdhOTI5NzVkNDcyNTZmNjlm
ZDYwOTI4YmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmgKQEAgLTM3LDE5ICszNyw2IEBACiAKIG5hbWVz
cGFjZSBXVEYgewogCi0vLyBSZXR1cm5zIHRoZSBjdXJyZW50IFVUQyB0aW1lIGluIHNlY29uZHMs
IGNvdW50ZWQgZnJvbSBKYW51YXJ5IDEsIDE5NzAuCi0vLyBQcmVjaXNpb24gdmFyaWVzIGRlcGVu
ZGluZyBvbiBwbGF0Zm9ybSBidXQgaXMgdXN1YWxseSBhcyBnb29kIG9yIGJldHRlcgotLy8gdGhh
biBhIG1pbGxpc2Vjb25kLgotLy8gVXNlIHRoaXMgZnVuY3Rpb24gb25seSBpZiB3YWxsIGNsb2Nr
IHRpbWUgaXMgbmVlZGVkLiBGb3IgZWxhcHNlZCB0aW1lCi0vLyBtZWFzdXJlbWVudCB1c2UgbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgaW5zdGVhZC4KLVdURl9FWFBPUlRfUFJJVkFURSBk
b3VibGUgY3VycmVudFRpbWUoKTsKLQotLy8gU2FtZSB0aGluZywgaW4gbWlsbGlzZWNvbmRzLgot
aW5saW5lIGRvdWJsZSBjdXJyZW50VGltZU1TKCkKLXsKLSAgICByZXR1cm4gY3VycmVudFRpbWUo
KSAqIDEwMDAuMDsKLX0KLQogLy8gUHJvdmlkZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcg
dGltZSBpbiBzZWNvbmRzIHNpbmNlIGFuIGFyYml0cmFyeSBwb2ludCBpbiB0aGUgcGFzdC4KIC8v
IE9uIHVuc3VwcG9ydGVkIHBsYXRmb3JtcywgdGhpcyBmdW5jdGlvbiBvbmx5IGd1YXJhbnRlZXMg
dGhlIHJlc3VsdCB3aWxsIGJlIG5vbi1kZWNyZWFzaW5nLgogLy8gUmVzdWx0IG9mIHRoaXMgZnVu
Y3Rpb24gaW5jcmVhc2VzIG1vbm90b25pY2FsbHkgZXZlbiB3aGVuIGNsb2NrIHRpbWUgZ29lcyBi
YWNrIGR1ZSB0bwpAQCAtNzEsOCArNTgsNiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzbGVl
cChTZWNvbmRzKTsKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmN1cnJlbnRDUFVU
aW1lOwotdXNpbmcgV1RGOjpjdXJyZW50VGltZTsKLXVzaW5nIFdURjo6Y3VycmVudFRpbWVNUzsK
IHVzaW5nIFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lOwogdXNpbmcgV1RGOjptb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWVNUzsKIHVzaW5nIFdURjo6c2xlZXA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0aC5oIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaApp
bmRleCBhZmZiNTU4NjkxNGNlMzY1ZTRhOWFhYTMwYzU3OGY1MTcyY2ExYWI2Li4zZTI5MTY2ZmZl
YmNjNTczOTJiMmNlMTdiZWFmYTA3NzIwMzllZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi9EYXRlTWF0aC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKQEAgLTQ3LDcgKzQ3
LDcgQEAKICNpbmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRl
IDx0aW1lLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dh
bGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
VEYgewpAQCAtOTgsNyArOTgsNyBAQCBTdHJpbmcgbWFrZVJGQzI4MjJEYXRlU3RyaW5nKHVuc2ln
bmVkIGRheU9mV2VlaywgdW5zaWduZWQgZGF5LCB1bnNpZ25lZCBtb250aCwgdQogaW5saW5lIGRv
dWJsZSBqc0N1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBKYXZhU2NyaXB0IGRvZXNuJ3QgcmVjb2du
aXplIGZyYWN0aW9ucyBvZiBhIG1pbGxpc2Vjb25kLgotICAgIHJldHVybiBmbG9vcihXVEY6OmN1
cnJlbnRUaW1lTVMoKSk7CisgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRz
U2luY2VFcG9jaCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAogY29uc3QgY2hhciogY29uc3Qgd2Vl
a2RheU5hbWVbN10gPSB7ICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIs
ICJTdW4iIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCmluZGV4IGIxNGQ3YTJjZGVkOGY1ZWQzZDM0MDJm
Nzg4MGQzNzE2MjY4OWU4YjguLjhhNWVjOGQxMWQwNDM5ODQ0ZTE5MDc3ZjczODMxYTZlZTQ4N2U1
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCkBAIC01OTUsNyArNTk1LDcgQEAgTkVWRVJfSU5MSU5F
IFBhcmtpbmdMb3Q6OlBhcmtSZXN1bHQgUGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHlJbXBs
KAogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsKICAgICAgICAg
d2hpbGUgKG1lLT5hZGRyZXNzICYmIHRpbWVvdXQubm93V2l0aFNhbWVDbG9jaygpIDwgdGltZW91
dCkgewogICAgICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24udGltZWRXYWl0KAotICAgICAg
ICAgICAgICAgIG1lLT5wYXJraW5nTG9jaywgdGltZW91dC5hcHByb3hpbWF0ZVdhbGxUaW1lKCku
c2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtZS0+cGFya2lu
Z0xvY2ssIHRpbWVvdXQuYXBwcm94aW1hdGVXYWxsVGltZSgpKTsKICAgICAgICAgICAgIAogICAg
ICAgICAgICAgLy8gSXQncyBwb3NzaWJsZSBmb3IgdGhlIE9TIHRvIGRlY2lkZSBub3QgdG8gd2Fp
dC4gSWYgaXQgZG9lcyB0aGF0IHRoZW4gaXQgd2lsbCBhbHNvCiAgICAgICAgICAgICAvLyBkZWNp
ZGUgbm90IHRvIHJlbGVhc2UgdGhlIGxvY2suIElmIHRoZXJlJ3MgYSBidWcgaW4gdGhlIHRpbWUg
bWF0aCwgdGhlbiB0aGlzIGNvdWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRp
bmdQcmltaXRpdmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgKaW5k
ZXggNGFjZTI4ZjFmNTlmODg2OTcwOTEwMDhhMGEwYjEyMDEwYzk3NjJjMS4uMjhmNDc5YmU2NTNk
YjM5NTA4ZmMzZGNjMzJiNGE5NmI5NjhiZGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
VGhyZWFkaW5nUHJpbWl0aXZlcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1ByaW1p
dGl2ZXMuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAj
aW5jbHVkZSA8d3RmL0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiAjaWYgT1MoV0lORE9XUykKICNpbmNsdWRlIDx3aW5k
b3dzLmg+CkBAIC0xMDAsOCArMTAxLDcgQEAgY2xhc3MgVGhyZWFkQ29uZGl0aW9uIHsKICAgICAK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCB3YWl0KE11dGV4JiBtdXRleCk7CiAgICAgLy8g
UmV0dXJucyB0cnVlIGlmIHRoZSBjb25kaXRpb24gd2FzIHNpZ25hbGVkIGJlZm9yZSBhYnNvbHV0
ZVRpbWUsIGZhbHNlIGlmIHRoZSBhYnNvbHV0ZVRpbWUgd2FzIHJlYWNoZWQgb3IgaXMgaW4gdGhl
IHBhc3QuCi0gICAgLy8gVGhlIGFic29sdXRlVGltZSBpcyBpbiBzZWNvbmRzLCBzdGFydGluZyBv
biBKYW51YXJ5IDEsIDE5NzAuIFRoZSB0aW1lIGlzIGFzc3VtZWQgdG8gdXNlIHRoZSBzYW1lIHRp
bWUgem9uZSBhcyBXVEY6OmN1cnJlbnRUaW1lKCkuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJv
b2wgdGltZWRXYWl0KE11dGV4JiwgZG91YmxlIGFic29sdXRlVGltZSk7CisgICAgV1RGX0VYUE9S
VF9QUklWQVRFIGJvb2wgdGltZWRXYWl0KE11dGV4JiwgV2FsbFRpbWUgYWJzb2x1dGVUaW1lKTsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzaWduYWwoKTsKICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBicm9hZGNhc3QoKTsKICAgICAKQEAgLTExMCw5ICsxMTAsOCBAQCBjbGFzcyBU
aHJlYWRDb25kaXRpb24gewogfTsKIAogI2lmIE9TKFdJTkRPV1MpCi0vLyBUaGUgYWJzb2x1dGVU
aW1lIGlzIGluIHNlY29uZHMsIHN0YXJ0aW5nIG9uIEphbnVhcnkgMSwgMTk3MC4gVGhlIHRpbWUg
aXMgYXNzdW1lZCB0byB1c2UgdGhlIHNhbWUgdGltZSB6b25lIGFzIFdURjo6Y3VycmVudFRpbWUo
KS4KIC8vIFJldHVybnMgYW4gaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHN1aXRhYmxlIGZvciBw
YXNzaW5nIHRvIG9uZSBvZiB0aGUgV2luMzIgd2FpdCBmdW5jdGlvbnMgKGUuZy4sIDo6V2FpdEZv
clNpbmdsZU9iamVjdCkuCi1XVEZfRVhQT1JUX1BSSVZBVEUgRFdPUkQgYWJzb2x1dGVUaW1lVG9X
YWl0VGltZW91dEludGVydmFsKGRvdWJsZSBhYnNvbHV0ZVRpbWUpOworV1RGX0VYUE9SVF9QUklW
QVRFIERXT1JEIGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbChXYWxsVGltZSBhYnNv
bHV0ZVRpbWUpOwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFk
aW5nUHRocmVhZHMuY3BwCmluZGV4IGIyY2E3N2RlOWUzYTYxNWJjMmEzYzE2ZDU3Y2IxOTAwZWE5
Mzg2MTAuLmExMDU5NGJmNDExMmZiODU5OGFmY2Q0OTMxZmMyNTdmNjQ0MGI3NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9UaHJlYWRpbmdQdGhyZWFkcy5jcHAKQEAgLTU0OSwxOCArNTQ5LDIwIEBAIHZvaWQgVGhy
ZWFkQ29uZGl0aW9uOjp3YWl0KE11dGV4JiBtdXRleCkKICAgICBBU1NFUlRfVU5VU0VEKHJlc3Vs
dCwgIXJlc3VsdCk7CiB9CiAKLWJvb2wgVGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoTXV0ZXgm
IG11dGV4LCBkb3VibGUgYWJzb2x1dGVUaW1lKQorYm9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVk
V2FpdChNdXRleCYgbXV0ZXgsIFdhbGxUaW1lIGFic29sdXRlVGltZSkKIHsKLSAgICBpZiAoYWJz
b2x1dGVUaW1lIDwgY3VycmVudFRpbWUoKSkKKyAgICBpZiAoYWJzb2x1dGVUaW1lIDwgV2FsbFRp
bWU6Om5vdygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoYWJzb2x1dGVUaW1l
ID4gSU5UX01BWCkgeworICAgIGlmIChhYnNvbHV0ZVRpbWUgPiBXYWxsVGltZTo6ZnJvbVJhd1Nl
Y29uZHMoSU5UX01BWCkpIHsKICAgICAgICAgd2FpdChtdXRleCk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIGludCB0aW1lU2Vjb25kcyA9IHN0YXRpY19jYXN0PGludD4oYWJz
b2x1dGVUaW1lKTsKLSAgICBpbnQgdGltZU5hbm9zZWNvbmRzID0gc3RhdGljX2Nhc3Q8aW50Pigo
YWJzb2x1dGVUaW1lIC0gdGltZVNlY29uZHMpICogMUU5KTsKKyAgICBkb3VibGUgcmF3U2Vjb25k
cyA9IGFic29sdXRlVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CisKKyAgICBpbnQg
dGltZVNlY29uZHMgPSBzdGF0aWNfY2FzdDxpbnQ+KHJhd1NlY29uZHMpOworICAgIGludCB0aW1l
TmFub3NlY29uZHMgPSBzdGF0aWNfY2FzdDxpbnQ+KChyYXdTZWNvbmRzIC0gdGltZVNlY29uZHMp
ICogMUU5KTsKIAogICAgIHRpbWVzcGVjIHRhcmdldFRpbWU7CiAgICAgdGFyZ2V0VGltZS50dl9z
ZWMgPSB0aW1lU2Vjb25kczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dp
bi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IGE1ZGJiZGVkYjQ5
YmM1NjRmNDhmYTg1NzQzZmIzM2ZmODdmM2U1Y2EuLjRhNTU0NDNkN2RhYjY0OGI4NTk2NWMzOGJl
ZGJiZmQwMTZhMmZkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtNTUyLDcgKzU1Miw3
IEBAIHZvaWQgVGhyZWFkQ29uZGl0aW9uOjp3YWl0KE11dGV4JiBtdXRleCkKICAgICBtX2NvbmRp
dGlvbi50aW1lZFdhaXQobXV0ZXguaW1wbCgpLCBJTkZJTklURSk7CiB9CiAKLWJvb2wgVGhyZWFk
Q29uZGl0aW9uOjp0aW1lZFdhaXQoTXV0ZXgmIG11dGV4LCBkb3VibGUgYWJzb2x1dGVUaW1lKQor
Ym9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdChNdXRleCYgbXV0ZXgsIFdhbGxUaW1lIGFi
c29sdXRlVGltZSkKIHsKICAgICBEV09SRCBpbnRlcnZhbCA9IGFic29sdXRlVGltZVRvV2FpdFRp
bWVvdXRJbnRlcnZhbChhYnNvbHV0ZVRpbWUpOwogCkBAIC01NzUsMTkgKzU3NSwxOSBAQCB2b2lk
IFRocmVhZENvbmRpdGlvbjo6YnJvYWRjYXN0KCkKICAgICBtX2NvbmRpdGlvbi5zaWduYWwodHJ1
ZSk7IC8vIFVuYmxvY2sgYWxsIHRocmVhZHMuCiB9CiAKLURXT1JEIGFic29sdXRlVGltZVRvV2Fp
dFRpbWVvdXRJbnRlcnZhbChkb3VibGUgYWJzb2x1dGVUaW1lKQorRFdPUkQgYWJzb2x1dGVUaW1l
VG9XYWl0VGltZW91dEludGVydmFsKFdhbGxUaW1lIGFic29sdXRlVGltZSkKIHsKLSAgICBkb3Vi
bGUgY3VycmVudFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisgICAgV2FsbFRpbWUgY3VycmVu
dFRpbWUgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICAvLyBUaW1lIGlzIGluIHRoZSBwYXN0IC0g
cmV0dXJuIGltbWVkaWF0ZWx5LgogICAgIGlmIChhYnNvbHV0ZVRpbWUgPCBjdXJyZW50VGltZSkK
ICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBUaW1lIGlzIHRvbyBmYXIgaW4gdGhlIGZ1dHVy
ZSAoYW5kIHdvdWxkIG92ZXJmbG93IHVuc2lnbmVkIGxvbmcpIC0gd2FpdCBmb3JldmVyLgotICAg
IGlmIChhYnNvbHV0ZVRpbWUgLSBjdXJyZW50VGltZSA+IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5U
X01BWCkgLyAxMDAwLjApCisgICAgaWYgKChhYnNvbHV0ZVRpbWUgLSBjdXJyZW50VGltZSkgPiBT
ZWNvbmRzOjpmcm9tTWlsbGlzZWNvbmRzKElOVF9NQVgpKQogICAgICAgICByZXR1cm4gSU5GSU5J
VEU7CiAKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RFdPUkQ+KChhYnNvbHV0ZVRpbWUgLSBjdXJy
ZW50VGltZSkgKiAxMDAwLjApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEV09SRD4oKGFic29s
dXRlVGltZSAtIGN1cnJlbnRUaW1lKS5taWxsaXNlY29uZHMoKSk7CiB9CiAKIC8vIFJlbW92ZSB0
aGlzIHdvcmthcm91bmQgY29kZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS8zMTc5MzIxMz4gaXMgZml4
ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9XYWxsVGltZS5jcHAKaW5kZXggMTYyMmFiM2M2YzIzZGZlMGIzY2RhZmIyYmQ3YjZjMjRl
OTllM2U3ZC4uYjdiYzlkYjBiYzc3MmQzMjJhYTk2NGMzMDcxNDRjOGNmYzA5ODRmNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvV2FsbFRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dh
bGxUaW1lLmNwcApAQCAtMjYsMTggKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV2FsbFRpbWUuaCIKIAotI2luY2x1ZGUgIkN1cnJlbnRUaW1lLmgiCiAjaW5jbHVkZSAi
TW9ub3RvbmljVGltZS5oIgogI2luY2x1ZGUgIlByaW50U3RyZWFtLmgiCiAjaW5jbHVkZSAiVGlt
ZVdpdGhEeW5hbWljQ2xvY2tUeXBlLmgiCiAKIG5hbWVzcGFjZSBXVEYgewogCi1XYWxsVGltZSBX
YWxsVGltZTo6bm93KCkKLXsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoY3VycmVudFRpbWUo
KSk7Ci19Ci0KIE1vbm90b25pY1RpbWUgV2FsbFRpbWU6OmFwcHJveGltYXRlTW9ub3RvbmljVGlt
ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuICp0aGlzIC0gbm93KCkgKyBNb25vdG9uaWNUaW1lOjpu
b3coKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmggYi9Tb3VyY2UvV1RG
L3d0Zi9XYWxsVGltZS5oCmluZGV4IDkwYWEwOTFkMmU3YWZkOTNmNzM0YmVlZTg1M2Q3MjU4ZDg4
MDY5OWMuLmJmNjYyMDEwOTBmMzMxZmZmZWI2YTc2NTJmNDEzZjM1YTllMjlkZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvV2FsbFRp
bWUuaApAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBQcmludFN0cmVhbTsKIC8vIFRoZSBjdXJyZW50
IHRpbWUgYWNjb3JkaW5nIHRvIGEgd2FsbCBjbG9jayAoYWthIHJlYWwgdGltZSBjbG9jaykuIFRo
aXMgdXNlcyBmbG9hdGluZyBwb2ludAogLy8gaW50ZXJuYWxseSBzbyB0aGF0IHlvdSBjYW4gcmVh
c29uIGFib3V0IGluZmluaXR5IGFuZCBvdGhlciB0aGluZ3MgdGhhdCBhcmlzZSBpbiBtYXRoLiBJ
dCdzCiAvLyBhY2NlcHRhYmxlIHRvIHVzZSB0aGlzIHRvIHdyYXAgTmFOIHRpbWVzLCBuZWdhdGl2
ZSB0aW1lcywgYW5kIGluZmluaXRlIHRpbWVzLCBzbyBsb25nIGFzIHRoZXkKLS8vIGFyZSByZWxh
dGl2ZSB0byB0aGUgc2FtZSBjbG9jay4gU3BlY2lmaWNhbGx5LCBXYWxsVGltZSBzaG91bGQgYmUg
dXNlZCBpbiBhZ3JlZW1lbnQgd2l0aCB0aGUKLS8vIHByaW5jaXBsZSB0aGF0IFdhbGxUaW1lOjpu
b3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgaXMgdGhlIHNhbWUgYXMgV1RGOjpjdXJy
ZW50VGltZSgpLgorLy8gYXJlIHJlbGF0aXZlIHRvIHRoZSBzYW1lIGNsb2NrLiBVc2UgdGhpcyBv
bmx5IGlmIHdhbGwgY2xvY2sgdGltZSBpcyBuZWVkZWQuIEZvciBlbGFwc2VkIHRpbWUKKy8vIG1l
YXN1cmVtZW50IHVzZSBNb25vdG9uaWNUaW1lIGluc3RlYWQuCiBjbGFzcyBXYWxsVGltZSB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IENsb2NrVHlwZSBjbG9ja1R5cGUgPSBDbG9ja1R5cGU6
OldhbGw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dl
b2xvY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9j
YXRpb24uY3BwCmluZGV4IGRiZWVkZjFkMDk3MjkyNTZiMDIwZGNlNmQ3OWVlNjYwMjUzYjA3ZTQu
LjY4ZjVhODExNDk5ZjgxNDg0MTk5MjE5MWMzMmJmZDFiNjUyYzNlNGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC00Njgs
NyArNDY4LDcgQEAgYm9vbCBHZW9sb2NhdGlvbjo6aGF2ZVN1aXRhYmxlQ2FjaGVkUG9zaXRpb24o
Y29uc3QgUG9zaXRpb25PcHRpb25zJiBvcHRpb25zKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFvcHRpb25zLm1heGltdW1BZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBE
T01UaW1lU3RhbXAgY3VycmVudFRpbWVNaWxsaXMgPSBjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0
YW1wKGN1cnJlbnRUaW1lKCkpOworICAgIERPTVRpbWVTdGFtcCBjdXJyZW50VGltZU1pbGxpcyA9
IGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5j
ZUVwb2NoKCkpOwogICAgIHJldHVybiBjYWNoZWRQb3NpdGlvbi0+dGltZXN0YW1wKCkgPiBjdXJy
ZW50VGltZU1pbGxpcyAtIG9wdGlvbnMubWF4aW11bUFnZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RPTVRpbWVTdGFtcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVRp
bWVTdGFtcC5oCmluZGV4IGVlMjE4NzVhOTRkODdlOTNkOWM4Yzg4MjQ0ZDZiMDg2ZGQ0MjJjYjYu
Ljg5ZjRjYmY5N2M4NTExMjkyZDEyNTcwZjFhZWY3ZDM5ZDliNWQ1YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01UaW1lU3RhbXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NVGltZVN0YW1wLmgKQEAgLTMwLDYgKzMwLDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlIDx3dGYvU2Vjb25kcy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgdW5z
aWduZWQgbG9uZyBsb25nIERPTVRpbWVTdGFtcDsKQEAgLTM5LDYgKzQxLDExIEBAIGlubGluZSBE
T01UaW1lU3RhbXAgY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChkb3VibGUgc2Vjb25kcykK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NVGltZVN0YW1wPihzZWNvbmRzICogMTAwMC4wKTsK
IH0KIAoraW5saW5lIERPTVRpbWVTdGFtcCBjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKFNl
Y29uZHMgc2Vjb25kcykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NVGltZVN0YW1wPihz
ZWNvbmRzLm1pbGxpc2Vjb25kcygpKTsKK30KKwogaW5saW5lIGRvdWJsZSBjb252ZXJ0RE9NVGlt
ZVN0YW1wVG9TZWNvbmRzKERPTVRpbWVTdGFtcCBtaWxsaXNlY29uZHMpCiB7CiAgICAgcmV0dXJu
IG1pbGxpc2Vjb25kcyAvIDEwMDAuMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IDAyNjFh
MGZkMDAyYTNlZmIxNjliZjJiMDc5MjVjZTk2MDUzM2IxYTguLmFkMTBiZGNlYTZkYjRiNGI0YWU3
ZDY1N2UzZjk2NGQxYmZhN2EzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkv
RmlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtODEsNyAr
ODEsNyBAQCBzdGF0aWMgQmxvYlByb3BlcnR5QmFnIGNvbnZlcnRQcm9wZXJ0eUJhZyhjb25zdCBG
aWxlOjpQcm9wZXJ0eUJhZyYgaW5pdGlhbEJhZykKIEZpbGU6OkZpbGUoVmVjdG9yPEJsb2JQYXJ0
VmFyaWFudD4mJiBibG9iUGFydFZhcmlhbnRzLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25z
dCBQcm9wZXJ0eUJhZyYgcHJvcGVydHlCYWcpCiAgICAgOiBCbG9iKFdURk1vdmUoYmxvYlBhcnRW
YXJpYW50cyksIGNvbnZlcnRQcm9wZXJ0eUJhZyhwcm9wZXJ0eUJhZykpCiAgICAgLCBtX25hbWUo
ZmlsZW5hbWUpCi0gICAgLCBtX292ZXJyaWRlTGFzdE1vZGlmaWVkRGF0ZShwcm9wZXJ0eUJhZy5s
YXN0TW9kaWZpZWQudmFsdWVfb3IoY3VycmVudFRpbWVNUygpKSkKKyAgICAsIG1fb3ZlcnJpZGVM
YXN0TW9kaWZpZWREYXRlKHByb3BlcnR5QmFnLmxhc3RNb2RpZmllZC52YWx1ZV9vcihXYWxsVGlt
ZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKSkpCiB7CiB9CiAKQEAg
LTExNiw3ICsxMTYsNyBAQCBkb3VibGUgRmlsZTo6bGFzdE1vZGlmaWVkKCkgY29uc3QKICAgICBp
ZiAoRmlsZVN5c3RlbTo6Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUobV9wYXRoLCBtb2RpZmljYXRp
b25UaW1lKSAmJiBGaWxlU3lzdGVtOjppc1ZhbGlkRmlsZVRpbWUobW9kaWZpY2F0aW9uVGltZSkp
CiAgICAgICAgIHJlc3VsdCA9IG1vZGlmaWNhdGlvblRpbWUgKiBtc1BlclNlY29uZDsKICAgICBl
bHNlCi0gICAgICAgIHJlc3VsdCA9IGN1cnJlbnRUaW1lKCkgKiBtc1BlclNlY29uZDsKKyAgICAg
ICAgcmVzdWx0ID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNv
bmRzKCk7CiAKICAgICByZXR1cm4gV1RGOjp0aW1lQ2xpcChyZXN1bHQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAppbmRleCBhODY2MTg1MjMxOGU5MjUzY2ZjYjJmNmZh
OGYzNDhiNTg0NDc2NzZiLi42YzMwMzRjYWUwMjUwNzNkNDhiMjA5MTY3NDJlYzk0ZGFhMzZkYzhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtMzQsOCArMzQsOCBA
QAogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00
NCw3ICs0NCw3IEBAIHN0YXRpYyBsb25nIGxvbmcgZ2VuZXJhdGVTZXF1ZW5jZU51bWJlcigpCiB7
CiAgICAgLy8gSW5pdGlhbGl6ZSB0byB0aGUgY3VycmVudCB0aW1lIHRvIHJlZHVjZSB0aGUgbGlr
ZWxpaG9vZCBvZiBnZW5lcmF0aW5nCiAgICAgLy8gaWRlbnRpZmllcnMgdGhhdCBvdmVybGFwIHdp
dGggdGhvc2UgZnJvbSBwYXN0L2Z1dHVyZSBicm93c2VyIHNlc3Npb25zLgotICAgIHN0YXRpYyBs
b25nIGxvbmcgbmV4dCA9IHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oY3VycmVudFRpbWUoKSAqIDEw
MDAwMDAuMCk7CisgICAgc3RhdGljIGxvbmcgbG9uZyBuZXh0ID0gc3RhdGljX2Nhc3Q8bG9uZyBs
b25nPihXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWNyb3NlY29uZHMoKSk7
CiAgICAgcmV0dXJuICsrbmV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDNiYzlkNWNkYWM1NDQyODIzOGQ0Mzg4OWE3
MzNiODMwNmE2MmMyMTMuLmRhMGNiMDRiY2RkNmVkMGFmZGQ0ZjdiNDUxMDkwMDM5Njk2NmM1YzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKQEAgLTg2LDcgKzg2LDcgQEAgYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5cGVN
aXNtYXRjaCgpIGNvbnN0CiAKIERlY2ltYWwgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZWZh
dWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogewotICAgIGRvdWJsZSBtcyA9IGN1cnJlbnRUaW1l
TVMoKTsKKyAgICBkb3VibGUgbXMgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2go
KS5taWxsaXNlY29uZHMoKTsKICAgICBpbnQgb2Zmc2V0ID0gY2FsY3VsYXRlTG9jYWxUaW1lT2Zm
c2V0KG1zKS5vZmZzZXQgLyBtc1Blck1pbnV0ZTsKICAgICByZXR1cm4gRGVjaW1hbDo6ZnJvbURv
dWJsZShtcyArIChvZmZzZXQgKiBtc1Blck1pbnV0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVUaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0N2VkOGVhNTNlYTk1OTdiOTllYWFkMzI3NmIx
NmU4YTNiZmNhNTEyLi5iMmZjMDE2MDA0NTkxNDAxMTVmNWMyZmExYzc2NTdlZGY5OTFkMjY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcApAQCAtNTgsNyArNTgs
NyBAQCBEYXRlQ29tcG9uZW50czo6VHlwZSBEYXRlVGltZUlucHV0VHlwZTo6ZGF0ZVR5cGUoKSBj
b25zdAogCiBEZWNpbWFsIERhdGVUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAo
KSBjb25zdAogewotICAgIHJldHVybiBEZWNpbWFsOjpmcm9tRG91YmxlKGN1cnJlbnRUaW1lTVMo
KSk7CisgICAgcmV0dXJuIERlY2ltYWw6OmZyb21Eb3VibGUoV2FsbFRpbWU6Om5vdygpLnNlY29u
ZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCkpOwogfQogCiBTdGVwUmFuZ2UgRGF0ZVRpbWVJ
bnB1dFR5cGU6OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5n
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA5ODZkNDY4
NDEzNzljNWEwOWNiNTA2ODE4ODRkMTA2ZGFlNmQxY2VhLi41N2Y2NjhjYWM4YzYyZThlOGI3M2M0
YmY4ZDIzNTJhYTAxMTgzODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNw
cApAQCAtNzgsNyArNzgsNyBAQCBTdHJpbmcgTW9udGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdpdGhN
aWxsaXNlY29uZHMoZG91YmxlIHZhbHVlKSBjb25zdAogCiBEZWNpbWFsIE1vbnRoSW5wdXRUeXBl
OjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogewotICAgIGRvdWJsZSBjdXJyZW50ID0g
Y3VycmVudFRpbWVNUygpOworICAgIGRvdWJsZSBjdXJyZW50ID0gV2FsbFRpbWU6Om5vdygpLnNl
Y29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiAgICAgaW50IG9mZnNldCA9IGNhbGN1
bGF0ZUxvY2FsVGltZU9mZnNldChjdXJyZW50KS5vZmZzZXQgLyBtc1Blck1pbnV0ZTsKICAgICBj
dXJyZW50ICs9IG9mZnNldCAqIG1zUGVyTWludXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcAppbmRleCA1ODBlZjIzNDVmMWVlOWMyNThmYzQ0ZTQ1NGU2ZmUxZWUxOWYwOWQ3
Li44ZGI5NDJkNTk4ZGU1M2ZkYzcwYTkxMzdiZGJlNDMwNmQ3MWZlYjU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgRGF0ZUNvbXBvbmVudHM6
OlR5cGUgVGltZUlucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogCiBEZWNpbWFsIFRpbWVJbnB1
dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiB7Ci0gICAgZG91YmxlIGN1cnJl
bnQgPSBjdXJyZW50VGltZU1TKCk7CisgICAgZG91YmxlIGN1cnJlbnQgPSBXYWxsVGltZTo6bm93
KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKICAgICBpbnQgb2Zmc2V0ID0g
Y2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KGN1cnJlbnQpLm9mZnNldCAvIG1zUGVyTWludXRlOwog
ICAgIGN1cnJlbnQgKz0gb2Zmc2V0ICogbXNQZXJNaW51dGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApp
bmRleCAxNmU4MjU1OWIzNDM3NTdmYmJiMGQ1MjkzMDNhMjRhMzU1MmY3YjQxLi5iYmYzNTExNGFl
MjYyZWZlZTZhNjhmNGI2YzY0YTY5MGFkYTU0OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC0z
NTEsNyArMzUxLDcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OndpbGxTZW5kUmVxdWVz
dCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG8KICAgICB9CiAKICAgICBkb3Vi
bGUgc2VuZFRpbWVzdGFtcCA9IHRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSB3YWxsdGltZSA9IGN1
cnJlbnRUaW1lKCk7CisgICAgV2FsbFRpbWUgd2FsbHRpbWUgPSBXYWxsVGltZTo6bm93KCk7CiAK
ICAgICBTdHJpbmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRl
bnRpZmllcik7CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBmcmFtZUlkZW50aWZpZXIobG9hZGVyKTsK
QEAgLTM4NCw3ICszODQsNyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbFNlbmRS
ZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMbwogICAgIGF1dG8gaW5p
dGlhdG9yT2JqZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QoZG9jdW1lbnQpOwogCiAgICAgU3Ry
aW5nIHVybCA9IGxvYWRlciA/IGxvYWRlci0+dXJsKCkuc3RyaW5nKCkgOiByZXF1ZXN0LnVybCgp
OwotICAgIG1fZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQs
IGZyYW1lSWQsIGxvYWRlcklkLCB1cmwsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KHJl
cXVlc3QpLCBzZW5kVGltZXN0YW1wLCB3YWxsdGltZSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9i
amVjdEZvclJlc291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSwgbnVsbHB0ciksIHR5cGUg
IT0gSW5zcGVjdG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnByb3RvY29sUmVzb3VyY2VU
eXBlIDogbnVsbHB0ciwgdGFyZ2V0SWQuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0YXJnZXRJZCk7
CisgICAgbV9mcm9udGVuZERpc3BhdGNoZXItPnJlcXVlc3RXaWxsQmVTZW50KHJlcXVlc3RJZCwg
ZnJhbWVJZCwgbG9hZGVySWQsIHVybCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVx
dWVzdCksIHNlbmRUaW1lc3RhbXAsIHdhbGx0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25k
cygpLCBpbml0aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZWRp
cmVjdFJlc3BvbnNlLCBudWxscHRyKSwgdHlwZSAhPSBJbnNwZWN0b3JQYWdlQWdlbnQ6Ok90aGVy
UmVzb3VyY2UgPyAmcHJvdG9jb2xSZXNvdXJjZVR5cGUgOiBudWxscHRyLCB0YXJnZXRJZC5pc0Vt
cHR5KCkgPyBudWxscHRyIDogJnRhcmdldElkKTsKIH0KIAogc3RhdGljIEluc3BlY3RvclBhZ2VB
Z2VudDo6UmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUZvckNhY2hlZFJlc291cmNlKENhY2hlZFJl
c291cmNlKiByZXNvdXJjZSkKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIEluc3BlY3Rvck5ldHdv
cmtBZ2VudDo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcg
aWRlbgogICAgIGF1dG8gcmVxdWVzdE9iamVjdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdv
cms6OldlYlNvY2tldFJlcXVlc3Q6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRIZWFkZXJzKGJ1aWxk
T2JqZWN0Rm9ySGVhZGVycyhyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkpCiAgICAgICAgIC5y
ZWxlYXNlKCk7Ci0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPndlYlNvY2tldFdpbGxTZW5kSGFu
ZHNoYWtlUmVxdWVzdChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwg
dGltZXN0YW1wKCksIGN1cnJlbnRUaW1lKCksIFdURk1vdmUocmVxdWVzdE9iamVjdCkpOworICAg
IG1fZnJvbnRlbmREaXNwYXRjaGVyLT53ZWJTb2NrZXRXaWxsU2VuZEhhbmRzaGFrZVJlcXVlc3Qo
SWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIHRpbWVzdGFtcCgpLCBX
YWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIFdURk1vdmUocmVx
dWVzdE9iamVjdCkpOwogfQogCiB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkUmVjZWl2
ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0VtcHR5RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBlOGQzMzkwMTFjNGRjOWM3YWZmMjI1YWMy
MDY4OTUzNGRiYmRjYWQzLi5lZjM4ZmE0ZTMzN2M2Njc0MWQ0YTQyNzM4YWQxN2VkNTZiM2I4OTAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgK
QEAgLTc1LDcgKzc1LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNs
aWVudCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAgICAgdm9pZCBkaXNwYXRjaERpZERp
c3BhdGNoT25sb2FkRXZlbnRzKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2Vp
dmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsIHsgfQogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGZpbmFsIHsgfQotICAgIHZvaWQgZGlz
cGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSwgZG91Ymxl
KSBmaW5hbCB7IH0KKyAgICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChj
b25zdCBVUkwmLCBkb3VibGUsIFdhbGxUaW1lKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNo
RGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRj
aERpZFB1c2hTdGF0ZVdpdGhpblBhZ2UoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlk
UmVwbGFjZVN0YXRlV2l0aGluUGFnZSgpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
b3JtU3VibWlzc2lvbi5jcHAKaW5kZXggYWJiMzg1ZmE2ODdhZmI5MTFjNzBiMWVlM2U0YWRiNzE2
YmZjODBlOS4uYzcwMzg5YWQ3YzE0ODVmNDgyNWZiODA5MzFlNzU1YzM4NzNlNzJlMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC00OSw3ICs0OSw3IEBACiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRT
Y29wZS5oIgogI2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50
VGltZS5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIGludDY0X3QgZ2VuZXJhdGVGb3JtRGF0YUlkZW50
aWZpZXIoKQogewogICAgIC8vIEluaXRpYWxpemUgdG8gdGhlIGN1cnJlbnQgdGltZSB0byByZWR1
Y2UgdGhlIGxpa2VsaWhvb2Qgb2YgZ2VuZXJhdGluZwogICAgIC8vIGlkZW50aWZpZXJzIHRoYXQg
b3ZlcmxhcCB3aXRoIHRob3NlIGZyb20gcGFzdC9mdXR1cmUgYnJvd3NlciBzZXNzaW9ucy4KLSAg
ICBzdGF0aWMgaW50NjRfdCBuZXh0SWRlbnRpZmllciA9IHN0YXRpY19jYXN0PGludDY0X3Q+KGN1
cnJlbnRUaW1lKCkgKiAxMDAwMDAwLjApOworICAgIHN0YXRpYyBpbnQ2NF90IG5leHRJZGVudGlm
aWVyID0gc3RhdGljX2Nhc3Q8aW50NjRfdD4oV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVw
b2NoKCkubWljcm9zZWNvbmRzKCkpOwogICAgIHJldHVybiArK25leHRJZGVudGlmaWVyOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA0Yjk4NGM3OWY0MTE4Mzkz
NmEwNTg5NTUwZjI3MzQwNGM1NTdkNzU4Li42NWRiOTBiYTlkMWFlNzJjMzJkZjcxNDA2YWQ2M2Mx
Y2Q3MjNhMWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIwNzUs
NyArMjA3NSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JG
aW5pc2hlZChib29sIGNhbmNlbFdpdGhMb2FkSW5Qcm9ncmVzCiAgICAgbV9zZW50UmVkaXJlY3RO
b3RpZmljYXRpb24gPSBmYWxzZTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJl
Y3RlZChjb25zdCBVUkwmIHVybCwgZG91YmxlIHNlY29uZHMsIGRvdWJsZSBmaXJlRGF0ZSwgTG9j
a0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBGcmFtZUxvYWRlcjo6
Y2xpZW50UmVkaXJlY3RlZChjb25zdCBVUkwmIHVybCwgZG91YmxlIHNlY29uZHMsIFdhbGxUaW1l
IGZpcmVEYXRlLCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAg
ICAgbV9jbGllbnQuZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KHVybCwgc2Vjb25k
cywgZmlyZURhdGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA5
MjY1Y2IxMjEyYmMyNjRmMTQ5OWU2NjA2MDNlYWU2MThiNjE0MDk4Li5mM2VjOGFmMGU2MTMyZWE4
OTliNjUyZjU1MWRmZWQxMjNlMDk4ODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL09wdGlvblNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0
Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTI2OCw3ICsyNjksNyBA
QCBjbGFzcyBGcmFtZUxvYWRlciB7CiAKICAgICB2b2lkIGNvbXBsZXRlZCgpOwogICAgIGJvb2wg
YWxsQW5jZXN0b3JzQXJlQ29tcGxldGUoKSBjb25zdDsgLy8gaW5jbHVkaW5nIHRoaXMKLSAgICB2
b2lkIGNsaWVudFJlZGlyZWN0ZWQoY29uc3QgVVJMJiwgZG91YmxlIGRlbGF5LCBkb3VibGUgZmly
ZURhdGUsIExvY2tCYWNrRm9yd2FyZExpc3QpOworICAgIHZvaWQgY2xpZW50UmVkaXJlY3RlZChj
b25zdCBVUkwmLCBkb3VibGUgZGVsYXksIFdhbGxUaW1lIGZpcmVEYXRlLCBMb2NrQmFja0Zvcndh
cmRMaXN0KTsKICAgICB2b2lkIGNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChib29s
IGNhbmNlbFdpdGhMb2FkSW5Qcm9ncmVzcyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dE9yaWdpbmFsVVJMRm9yRG93bmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3ZGQyNWUzNDkxYTBlNzAy
MjcwYzBmMTllNTY2YWU5NmNjYzkwNmI4Li5kY2FmMzc3NjcyY2RjZmIxODdiMGEzZjQwN2NkYjUy
NDUwOWUyMGM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxpbmtJY29uLmgiCiAjaW5jbHVkZSA8ZnVuY3Rp
b25hbD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKEFQUExJQ0FU
SU9OX01BTklGRVNUKQpAQCAtMTU5LDcgKzE2MCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEZy
YW1lTG9hZGVyQ2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2Vy
dmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoRGlkQ2hhbmdlUHJvdmlzaW9uYWxVUkwoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSBpbnRlcnZh
bCwgZG91YmxlIGZpcmVEYXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIFdhbGxUaW1l
IGZpcmVEYXRlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTWFpbkRv
Y3VtZW50KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTmF2aWdhdGVXaXRoaW5QYWdlKCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5k
ZXggNzUyYjgwOTg1MDEzMmJiZGE4YjJhYTRkMmQwZjM5NzlhZjJjMDk5Mi4uZDI4NGE5MTVmYjU0
ZGExYjUyNzc2YmU5MjBkN2YxYmI3YWM5OTljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL05hdmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNsYXNzIFNjaGVk
dWxlZFVSTE5hdmlnYXRpb24gOiBwdWJsaWMgU2NoZWR1bGVkTmF2aWdhdGlvbiB7CiAgICAgICAg
IG1faGF2ZVRvbGRDbGllbnQgPSB0cnVlOwogCiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9y
IGdlc3R1cmVJbmRpY2F0b3IodXNlckdlc3R1cmVUb0ZvcndhcmQoKSk7Ci0gICAgICAgIGZyYW1l
LmxvYWRlcigpLmNsaWVudFJlZGlyZWN0ZWQobV91cmwsIGRlbGF5KCksIGN1cnJlbnRUaW1lKCkg
KyB0aW1lci5uZXh0RmlyZUludGVydmFsKCkudmFsdWUoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgp
KTsKKyAgICAgICAgZnJhbWUubG9hZGVyKCkuY2xpZW50UmVkaXJlY3RlZChtX3VybCwgZGVsYXko
KSwgV2FsbFRpbWU6Om5vdygpICsgdGltZXIubmV4dEZpcmVJbnRlcnZhbCgpLCBsb2NrQmFja0Zv
cndhcmRMaXN0KCkpOwogICAgIH0KIAogICAgIHZvaWQgZGlkU3RvcFRpbWVyKEZyYW1lJiBmcmFt
ZSwgYm9vbCBuZXdMb2FkSW5Qcm9ncmVzcykgb3ZlcnJpZGUKQEAgLTI4Myw3ICsyODMsNyBAQCBj
bGFzcyBTY2hlZHVsZWRGb3JtU3VibWlzc2lvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9u
IHsKICAgICAgICAgbV9oYXZlVG9sZENsaWVudCA9IHRydWU7CiAKICAgICAgICAgVXNlckdlc3R1
cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcih1c2VyR2VzdHVyZVRvRm9yd2FyZCgpKTsKLSAg
ICAgICAgZnJhbWUubG9hZGVyKCkuY2xpZW50UmVkaXJlY3RlZChtX3N1Ym1pc3Npb24tPnJlcXVl
c3RVUkwoKSwgZGVsYXkoKSwgY3VycmVudFRpbWUoKSArIHRpbWVyLm5leHRGaXJlSW50ZXJ2YWwo
KS52YWx1ZSgpLCBsb2NrQmFja0ZvcndhcmRMaXN0KCkpOworICAgICAgICBmcmFtZS5sb2FkZXIo
KS5jbGllbnRSZWRpcmVjdGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxheSgpLCBX
YWxsVGltZTo6bm93KCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2Fy
ZExpc3QoKSk7CiAgICAgfQogCiAgICAgdm9pZCBkaWRTdG9wVGltZXIoRnJhbWUmIGZyYW1lLCBi
b29sIG5ld0xvYWRJblByb2dyZXNzKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9IaXN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKaW5k
ZXggMDljN2Q4YjI5MDM2ZDY3YzQxNjViYTVmY2UxNDk0Y2M1NGIxNTJhYi4uOGQwYjk1OWQwMzcz
Y2NhMTZiYTJlZTQyNmNhOTkxYmU2Y2YwYjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9IaXN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCkBA
IC0xNjcsNyArMTY3LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSGlzdG9yeTo6c3RhdGVPYmplY3RB
ZGRlZChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEKIHsKICAgICAvLyBFYWNo
IHVuaXF1ZSBtYWluLWZyYW1lIGRvY3VtZW50IGlzIG9ubHkgYWxsb3dlZCB0byBzZW5kIDY0TUIg
b2Ygc3RhdGUgb2JqZWN0IHBheWxvYWQgdG8gdGhlIFVJIGNsaWVudC9wcm9jZXNzLgogICAgIHN0
YXRpYyB1aW50MzJfdCB0b3RhbFN0YXRlT2JqZWN0UGF5bG9hZExpbWl0ID0gMHg0MDAwMDAwOwot
ICAgIHN0YXRpYyBkb3VibGUgc3RhdGVPYmplY3RUaW1lU3BhbiA9IDMwLjA7CisgICAgc3RhdGlj
IFNlY29uZHMgc3RhdGVPYmplY3RUaW1lU3BhbiB7IDMwX3MgfTsKICAgICBzdGF0aWMgdW5zaWdu
ZWQgcGVyU3RhdGVPYmplY3RUaW1lU3BhbkxpbWl0ID0gMTAwOwogCiAgICAgaWYgKCFtX2ZyYW1l
IHx8ICFtX2ZyYW1lLT5wYWdlKCkpCkBAIC0xOTgsNyArMTk4LDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gSGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiYmIGRhdGEKICAgICBpZiAoIW1haW5IaXN0b3J5KQogICAgICAgICByZXR1cm4geyB9OwogCi0g
ICAgZG91YmxlIGN1cnJlbnRUaW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgIFdhbGxUaW1l
IGN1cnJlbnRUaW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgaWYgKGN1cnJlbnRUaW1l
c3RhbXAgLSBtYWluSGlzdG9yeS0+bV9jdXJyZW50U3RhdGVPYmplY3RUaW1lU3BhblN0YXJ0ID4g
c3RhdGVPYmplY3RUaW1lU3BhbikgewogICAgICAgICBtYWluSGlzdG9yeS0+bV9jdXJyZW50U3Rh
dGVPYmplY3RUaW1lU3BhblN0YXJ0ID0gY3VycmVudFRpbWVzdGFtcDsKICAgICAgICAgbWFpbkhp
c3RvcnktPm1fY3VycmVudFN0YXRlT2JqZWN0VGltZVNwYW5PYmplY3RzQWRkZWQgPSAwOwpAQCAt
MjA2LDggKzIwNiw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhpc3Rvcnk6OnN0YXRlT2JqZWN0QWRk
ZWQoUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBkYXRhCiAgICAgCiAgICAgaWYgKG1h
aW5IaXN0b3J5LT5tX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuT2JqZWN0c0FkZGVkID49IHBl
clN0YXRlT2JqZWN0VGltZVNwYW5MaW1pdCkgewogICAgICAgICBpZiAoc3RhdGVPYmplY3RUeXBl
ID09IFN0YXRlT2JqZWN0VHlwZTo6UmVwbGFjZSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBTZWN1cml0eUVycm9yLCBTdHJpbmc6OmZvcm1hdCgiQXR0ZW1wdCB0byB1c2UgaGlzdG9y
eS5yZXBsYWNlU3RhdGUoKSBtb3JlIHRoYW4gJXUgdGltZXMgcGVyICVmIHNlY29uZHMiLCBwZXJT
dGF0ZU9iamVjdFRpbWVTcGFuTGltaXQsIHN0YXRlT2JqZWN0VGltZVNwYW4pIH07Ci0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCBTdHJpbmc6OmZvcm1hdCgiQXR0ZW1w
dCB0byB1c2UgaGlzdG9yeS5wdXNoU3RhdGUoKSBtb3JlIHRoYW4gJXUgdGltZXMgcGVyICVmIHNl
Y29uZHMiLCBwZXJTdGF0ZU9iamVjdFRpbWVTcGFuTGltaXQsIHN0YXRlT2JqZWN0VGltZVNwYW4p
IH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgU3RyaW5n
Ojpmb3JtYXQoIkF0dGVtcHQgdG8gdXNlIGhpc3RvcnkucmVwbGFjZVN0YXRlKCkgbW9yZSB0aGFu
ICV1IHRpbWVzIHBlciAlZiBzZWNvbmRzIiwgcGVyU3RhdGVPYmplY3RUaW1lU3BhbkxpbWl0LCBz
dGF0ZU9iamVjdFRpbWVTcGFuLnNlY29uZHMoKSkgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFNlY3VyaXR5RXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJBdHRlbXB0IHRvIHVzZSBoaXN0b3J5
LnB1c2hTdGF0ZSgpIG1vcmUgdGhhbiAldSB0aW1lcyBwZXIgJWYgc2Vjb25kcyIsIHBlclN0YXRl
T2JqZWN0VGltZVNwYW5MaW1pdCwgc3RhdGVPYmplY3RUaW1lU3Bhbi5zZWNvbmRzKCkpIH07CiAg
ICAgfQogCiAgICAgQ2hlY2tlZDx1bnNpZ25lZD4gdGl0bGVTaXplID0gdGl0bGUubGVuZ3RoKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvSGlzdG9yeS5oCmluZGV4IDZkYmIyZmYyNjRlNDJiNTMwNDRhNzhkMWU5MWMzMzdm
NDMzM2ZlYTcuLjhkODMyNzUwOTQ0ZTg5MTZhODM2ODE0MzI0MGFkODMzYTcwZTNmMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvSGlzdG9yeS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uT3Iu
aCIKICNpbmNsdWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUuaCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC03NSw3ICs3Niw3IEBAIGNsYXNzIEhpc3RvcnkgZmluYWwgOiBwdWJsaWMgU2Ny
aXB0V3JhcHBhYmxlLCBwdWJsaWMgUmVmQ291bnRlZDxIaXN0b3J5PiwgcHVibGljCiAgICAgUmVm
UHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9sYXN0U3RhdGVPYmplY3RSZXF1ZXN0ZWQ7CiAK
ICAgICB1bnNpZ25lZCBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuT2JqZWN0c0FkZGVkIHsg
MCB9OwotICAgIGRvdWJsZSBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuU3RhcnQgeyAwLjAg
fTsKKyAgICBXYWxsVGltZSBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuU3RhcnQ7CiAKICAg
ICAvLyBGb3IgdGhlIG1haW4gZnJhbWUncyBIaXN0b3J5IG9iamVjdCB0byBrZWVwIHRyYWNrIG9m
IGFsbCBzdGF0ZSBvYmplY3QgdXNhZ2UuCiAgICAgdWludDY0X3QgbV90b3RhbFN0YXRlT2JqZWN0
VXNhZ2UgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCmluZGV4IDkzMmExMWU1
NjIzNWUyMDA4M2I0NjBmYjM5NWIyZGU0YmQxM2QyYmQuLjY2MDcwMDJkMGQzOTI0OWM5ZTgxNzJk
ZDcyMWVlODhkOTQ1OTQxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92
ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCkBAIC0z
MywxMSArMzMsMTAgQEAKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgot
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBjb25zdCBkb3VibGUgZmFkZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4yOworc3RhdGljIGNv
bnN0IFNlY29uZHMgZmFkZUFuaW1hdGlvbkR1cmF0aW9uIHsgMjAwX21zIH07CiBzdGF0aWMgY29u
c3QgZG91YmxlIGZhZGVBbmltYXRpb25GcmFtZVJhdGUgPSAzMDsKIAogc3RhdGljIFBhZ2VPdmVy
bGF5OjpQYWdlT3ZlcmxheUlEIGdlbmVyYXRlUGFnZU92ZXJsYXlJRCgpCkBAIC0yNTMsMTMgKzI1
MiwxMyBAQCB2b2lkIFBhZ2VPdmVybGF5OjpzdG9wRmFkZU91dEFuaW1hdGlvbigpCiAKIHZvaWQg
UGFnZU92ZXJsYXk6OnN0YXJ0RmFkZUFuaW1hdGlvbigpCiB7Ci0gICAgbV9mYWRlQW5pbWF0aW9u
U3RhcnRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWUg
PSBXYWxsVGltZTo6bm93KCk7CiAgICAgbV9mYWRlQW5pbWF0aW9uVGltZXIuc3RhcnRSZXBlYXRp
bmcoMV9zIC8gZmFkZUFuaW1hdGlvbkZyYW1lUmF0ZSk7CiB9CiAKIHZvaWQgUGFnZU92ZXJsYXk6
OmZhZGVBbmltYXRpb25UaW1lckZpcmVkKCkKIHsKLSAgICBmbG9hdCBhbmltYXRpb25Qcm9ncmVz
cyA9IChjdXJyZW50VGltZSgpIC0gbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lKSAvIG1fZmFkZUFu
aW1hdGlvbkR1cmF0aW9uOworICAgIGZsb2F0IGFuaW1hdGlvblByb2dyZXNzID0gKFdhbGxUaW1l
Ojpub3coKSAtIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZSkgLyBtX2ZhZGVBbmltYXRpb25EdXJh
dGlvbjsKIAogICAgIGlmIChhbmltYXRpb25Qcm9ncmVzcyA+PSAxLjApCiAgICAgICAgIGFuaW1h
dGlvblByb2dyZXNzID0gMS4wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
T3ZlcmxheS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5oCmluZGV4IGE0N2Y2
ZjBlOWNmOGRkZTA4M2Y0MjYwMDEyMzM1MWVjNmUyMzVlNzIuLjY2MzMwMzdiMmViMjViOWMzNTBl
Zjc5ZGY2YzkxZTgyNjczMjczNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTMw
LDYgKzMwLDcgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0x
MjYsOCArMTI3LDggQEAgY2xhc3MgUGFnZU92ZXJsYXkgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRl
ZDxQYWdlT3ZlcmxheT4gewogICAgIFBhZ2UqIG1fcGFnZSB7IG51bGxwdHIgfTsKIAogICAgIFRp
bWVyIG1fZmFkZUFuaW1hdGlvblRpbWVyOwotICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25TdGFy
dFRpbWUgeyAwIH07Ci0gICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOworICAgIFdh
bGxUaW1lIG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKKyAgICBTZWNvbmRzIG1fZmFkZUFuaW1h
dGlvbkR1cmF0aW9uOwogCiAgICAgZW51bSBGYWRlQW5pbWF0aW9uVHlwZSB7CiAgICAgICAgIE5v
QW5pbWF0aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGRiZmI2ZDIyY2VmNzY4MWNiY2YxOWU1
ZGVhZWZhYzI0YjIyYTM4NGMuLjJjYjIzMDBiZGZmMjRmNWM4ZTdlYjViNWUzNTcxYWJiZjQ4MzQy
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBo
aWNzQ29udGV4dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
Zy9HcmFwaGljc0NvbnRleHRDRy5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1h
Z2UsIGNvbnN0CiAgICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBzdGFydFRp
bWUgPSBjdXJyZW50VGltZSgpOworICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1h
Z2UoaW1hZ2UpOwogCkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRy
YXdOYXRpdmVJbWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdAog
I2VuZGlmCiAgICAgfQogCi0gICAgTE9HX1dJVEhfU1RSRUFNKEltYWdlcywgc3RyZWFtIDw8ICJH
cmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSAiIDw8IGltYWdlLmdldCgpIDw8ICIgc2l6
ZSAiIDw8IGltYWdlU2l6ZSA8PCAiIGludG8gIiA8PCBkZXN0UmVjdCA8PCAiIHRvb2sgIiA8PCAx
MDAwLjAgKiAoY3VycmVudFRpbWUoKSAtIHN0YXJ0VGltZSkgPDwgIm1zIik7CisgICAgTE9HX1dJ
VEhfU1RSRUFNKEltYWdlcywgc3RyZWFtIDw8ICJHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJ
bWFnZSAiIDw8IGltYWdlLmdldCgpIDw8ICIgc2l6ZSAiIDw8IGltYWdlU2l6ZSA8PCAiIGludG8g
IiA8PCBkZXN0UmVjdCA8PCAiIHRvb2sgIiA8PCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFy
dFRpbWUpLm1pbGxpc2Vjb25kcygpIDw8ICJtcyIpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3UGF0
dGVybkNhbGxiYWNrKHZvaWQqIGluZm8sIENHQ29udGV4dFJlZiBjb250ZXh0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgKaW5kZXggNTM3
YzllZGY2NThmNmE5YjllZmRhYjdkYzIzN2FkYTI3MjZjMWY0ZC4uMDU2MzYyNTM4NzQyNmQzNzVk
MTgwMmEwODZjNGEwMjMwMGQwODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvTGVnYWN5VGlsZUxheWVyUG9vbC5oCkBAIC03Nyw3ICs3Nyw3IEBAIGNsYXNzIExlZ2Fj
eVRpbGVMYXllclBvb2wgewogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CiAgICAgTG9jayBtX2xh
eWVyUG9vbE11dGV4OwogCi0gICAgZG91YmxlIG1fbGFzdEFkZFRpbWU7CisgICAgV2FsbFRpbWUg
bV9sYXN0QWRkVGltZTsKICAgICBib29sIG1fbmVlZHNQcnVuZTsKIAogICAgIGZyaWVuZCBOZXZl
ckRlc3Ryb3llZDxMZWdhY3lUaWxlTGF5ZXJQb29sPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wubW0KaW5kZXggZmM5YzI0NjY2N2JiNGQx
MDgxNjAxZTA5NDdjZDQ2MjQ0N2I5ZDA5My4uMjUwMDI4ZmY5YWJhODU4MjIzNzIyNmQxMGRjZWVj
MjNhNjdmNWE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2Fj
eVRpbGVMYXllclBvb2wubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2Fj
eVRpbGVMYXllclBvb2wubW0KQEAgLTM3LDEyICszNywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBjb25zdCBkb3VibGUgY2FwYWNpdHlEZWNheVRpbWUgPSA1Oworc3RhdGlj
IGNvbnN0IFNlY29uZHMgY2FwYWNpdHlEZWNheVRpbWUgeyA1X3MgfTsKIAogTGVnYWN5VGlsZUxh
eWVyUG9vbDo6TGVnYWN5VGlsZUxheWVyUG9vbCgpCiAgICAgOiBtX3RvdGFsQnl0ZXMoMCkKICAg
ICAsIG1fY2FwYWNpdHkoMCkKLSAgICAsIG1fbGFzdEFkZFRpbWUoMCkKICAgICAsIG1fbmVlZHNQ
cnVuZShmYWxzZSkKIHsKIH0KQEAgLTg4LDcgKzg3LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQ
b29sOjphZGRMYXllcihjb25zdCBSZXRhaW5QdHI8TGVnYWN5VGlsZUxheWVyPiYgbGF5ZXIpCiAg
ICAgbGlzdE9mTGF5ZXJzV2l0aFNpemUobGF5ZXJTaXplKS5wcmVwZW5kKGxheWVyKTsKICAgICBt
X3RvdGFsQnl0ZXMgKz0gYnl0ZXNCYWNraW5nTGF5ZXJXaXRoUGl4ZWxTaXplKGxheWVyU2l6ZSk7
CiAKLSAgICBtX2xhc3RBZGRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2xhc3RBZGRUaW1l
ID0gV2FsbFRpbWU6Om5vdygpOwogICAgIHNjaGVkdWxlUHJ1bmUoKTsKIH0KIApAQCAtMTE1LDcg
KzExNCw3IEBAIHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkodW5zaWduZWQg
Y2FwYWNpdHkpCiB1bnNpZ25lZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpkZWNheWVkQ2FwYWNpdHko
KSBjb25zdAogewogICAgIC8vIERlY2F5IHRvIG9uZSBxdWFydGVyIG92ZXIgY2FwYWNpdHlEZWNh
eVRpbWUKLSAgICBkb3VibGUgdGltZVNpbmNlTGFzdEFkZCA9IGN1cnJlbnRUaW1lKCkgLSBtX2xh
c3RBZGRUaW1lOworICAgIFNlY29uZHMgdGltZVNpbmNlTGFzdEFkZCA9IFdhbGxUaW1lOjpub3co
KSAtIG1fbGFzdEFkZFRpbWU7CiAgICAgaWYgKHRpbWVTaW5jZUxhc3RBZGQgPiBjYXBhY2l0eURl
Y2F5VGltZSkKICAgICAgICAgcmV0dXJuIG1fY2FwYWNpdHkgLyA0OwogICAgIGZsb2F0IGRlY2F5
UHJvZ2VzcyA9IGZsb2F0KHRpbWVTaW5jZUxhc3RBZGQgLyBjYXBhY2l0eURlY2F5VGltZSk7CkBA
IC0xNTcsNyArMTU2LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAgICAg
ICAgIC8vIHN0aWxsIGhhdmUgYSBiYWNraW5nIHN0b3JlLgogICAgICAgICBvbGRlc3RSZXVzZUxp
c3QucmVtb3ZlTGFzdCgpOwogICAgIH0KLSAgICBpZiAoY3VycmVudFRpbWUoKSAtIG1fbGFzdEFk
ZFRpbWUgPD0gY2FwYWNpdHlEZWNheVRpbWUpCisgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1f
bGFzdEFkZFRpbWUgPD0gY2FwYWNpdHlEZWNheVRpbWUpCiAgICAgICAgIHNjaGVkdWxlUHJ1bmUo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1N5c3RlbU1l
bW9yeUlPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9T
LmNwcAppbmRleCA2ZWE0MWRlM2ExOGM2M2ZjMTg4ZjY0NWQ1YjJiOWZiYTA2YTZiYzcwLi4xYWQx
MmE0ZjA2MDIyMzEzMDc1NDEwZGJlMzlkOWUyOTU1NjkxMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNwcApAQCAtMzMsNyArMzMsNyBAQAog
CiAjaW5jbHVkZSA8c3lzL3N5c2N0bC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0j
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDMsOSArNDMsOSBAQCBpbnQgc3lzdGVtTWVtb3J5
TGV2ZWwoKQogICAgIHJldHVybiAzNTsKICNlbHNlCiAgICAgc3RhdGljIGludCBtZW1vcnlGcmVl
TGV2ZWwgPSAtMTsKLSAgICBzdGF0aWMgZG91YmxlIHByZXZpb3VzQ2hlY2tUaW1lOyAKLSAgICBk
b3VibGUgdGltZSA9IGN1cnJlbnRUaW1lKCk7Ci0gICAgaWYgKHRpbWUgLSBwcmV2aW91c0NoZWNr
VGltZSA8IDAuMSkKKyAgICBzdGF0aWMgV2FsbFRpbWUgcHJldmlvdXNDaGVja1RpbWU7CisgICAg
V2FsbFRpbWUgdGltZSA9IFdhbGxUaW1lOjpub3coKTsKKyAgICBpZiAodGltZSAtIHByZXZpb3Vz
Q2hlY2tUaW1lIDwgMTAwX21zKQogICAgICAgICByZXR1cm4gbWVtb3J5RnJlZUxldmVsOwogICAg
IHByZXZpb3VzQ2hlY2tUaW1lID0gdGltZTsKICAgICBzaXplX3Qgc2l6ZSA9IHNpemVvZihtZW1v
cnlGcmVlTGV2ZWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmlu
ZGV4IDI2MWNiYTcwNGUxMTZmNGMwNzMzZWYxM2IwNmRjNTZjOTg4OWY5M2QuLmNiNDM2OGFiMzVh
MzYyYmY3MjlhZWUwYjc1NDI1ZmFjYWRiNmZmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29y
ZU1lZGlhU29mdExpbmsuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NvcmVBdWRpb1NQSS5oPgog
I2luY2x1ZGUgPHN5cy90aW1lLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5j
bHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Nj
cmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCmluZGV4IGNl
OWJjZjg4MDg1NDkwYTllOGNlNjExYjVjZTVlYzlmNmFiYTMyODIuLmZlZDZlZTU3N2YxOTQ2N2Nh
YmNiYzljOTRiNDA3NmRjMGYyMjMyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNh
cHR1cmVTb3VyY2VNYWMubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2lu
Y2x1ZGUgIkNvcmVWaWRlb1NvZnRMaW5rLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAK
aW5kZXggNjlmNzcwNDFmN2RjZjNmOGVjMWYwZDlkNDBkMGIyZDg5ZmEzOTBjYy4uN2FhZjU3N2Yx
NmM0ODNjNDIyYjdkZDQ3OGE0NmJjODZjMGFlYzdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNo
ZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlUXVlcnlPcHRp
b25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQUGFyc2Vycy5oPgogI2luY2x1ZGUgPHBhbC9T
ZXNzaW9uSUQuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
TWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUg
PHd0Zi9VVUlELmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2Vi
UHJvY2Vzc0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlBy
b2Nlc3NDb25uZWN0aW9uLmNwcAppbmRleCBhMGEyYzI0ZWVjNGYwMGExZTA4YzU2ZjU0NTA3MjQ0
NDRjNGMyMGIzLi45YjlkZjI5YzYzYjhjZjU2MmQ3ZjU0NjYwZWM2OGYyMDBiODZmOWI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlv
bi5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmICFPUyhXSU5ET1dTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IDNkMDgxM2Y0Zjg3OTQwYzQ5YWRjODIxNGIxYWU2ODQ2MTU3ODkxMGYuLmRiOTM3
NjBiZDBlNWNkNWQyYjBlMzk4OThkMWRlZjFiY2ZiMWVmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE2MSw3ICsx
NjEsNyBAQCBzdHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgSGFzaE1h
cDxTdHJpbmcsIGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zOwogI2VuZGlmCiAKLSAgICBI
YXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiBwbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoZXM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1h
cDx1bnNpZ25lZCwgV2FsbFRpbWU+PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAg
VmVjdG9yPFN0cmluZz4gcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKIAogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgv
V2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dl
Yk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKaW5kZXggNDdlMzE5MDlhMWU5N2RmOWEzZWEzOTdmNjdj
YmMwYmFhZTc2MDFjNC4uYWE4NDAwMTkzZmFhY2NjMjkyMjhmYmY1NjY1MTBhODIxMTA0OWQxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxp
bnV4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVy
TGludXguY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1l
bnRlZC5oPgogI2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN5cy9zeXNpbmZvLmg+Ci0j
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAj
aW5jbHVkZSA8d3RmL2xpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTk1LDkgKzk1LDkgQEAgV2ViTWVtb3J5U3Rh
dGlzdGljcyBXZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVXZWJLaXQoKSBjb25zdAogewogICAgIFdl
Yk1lbW9yeVN0YXRpc3RpY3Mgd2ViS2l0TWVtb3J5U3RhdHM7CiAKLSAgICBkb3VibGUgbm93ID0g
Y3VycmVudFRpbWUoKTsKKyAgICBXYWxsVGltZSBub3cgPSBXYWxsVGltZTo6bm93KCk7CiAKLSAg
ICBhcHBlbmRLZXlWYWx1ZVBhaXIod2ViS2l0TWVtb3J5U3RhdHMsIEFTQ0lJTGl0ZXJhbCgiVGlt
ZXN0YW1wIiksIG5vdyk7CisgICAgYXBwZW5kS2V5VmFsdWVQYWlyKHdlYktpdE1lbW9yeVN0YXRz
LCBBU0NJSUxpdGVyYWwoIlRpbWVzdGFtcCIpLCBub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNv
bmRzKCkpOwogCiAgICAgUHJvY2Vzc01lbW9yeVN0YXR1cyBwcm9jZXNzTWVtb3J5U3RhdHVzOwog
ICAgIGN1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzKHByb2Nlc3NNZW1vcnlTdGF0dXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCmluZGV4
IDYwN2Q1MGU3Njk0ZjFiYmNlYmUwNGJmMjNjN2QwMDRmMzA4NjEyMGUuLjU5YTk4YWZjMzM5NDI3
YTc1NGUyNjkzMzQ5NzBmM2EzMGQ3MWMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL21hYy9XZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5tYWMubW0KQEAgLTM3LDcgKzM3LDcgQEAKICNpbXBvcnQg
PG1hY2gvdGFzay5oPgogI2ltcG9ydCA8bWFsbG9jL21hbGxvYy5oPgogI2ltcG9ydCA8bm90aWZ5
Lmg+Ci0jaW1wb3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5o
PgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC0x
NDAsMTAgKzE0MCwxMCBAQCBXZWJNZW1vcnlTdGF0aXN0aWNzIFdlYk1lbW9yeVNhbXBsZXI6OnNh
bXBsZVdlYktpdCgpIGNvbnN0CiAgICAgCiAgICAgc2l6ZV90IHJlc2lkZW50U2l6ZSA9IHNhbXBs
ZVByb2Nlc3NDb21taXR0ZWRCeXRlcygpOwogCi0gICAgZG91YmxlIG5vdyA9IGN1cnJlbnRUaW1l
KCk7CisgICAgV2FsbFRpbWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOwogICAgICAgICAKICAgICB3
ZWJLaXRNZW1vcnlTdGF0cy5rZXlzLmFwcGVuZChTdHJpbmcoIlRpbWVzdGFtcCIpKTsKLSAgICB3
ZWJLaXRNZW1vcnlTdGF0cy52YWx1ZXMuYXBwZW5kKG5vdyk7CisgICAgd2ViS2l0TWVtb3J5U3Rh
dHMudmFsdWVzLmFwcGVuZChub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpOwogICAg
IHdlYktpdE1lbW9yeVN0YXRzLmtleXMuYXBwZW5kKFN0cmluZygiVG90YWwgQnl0ZXMgb2YgTWVt
b3J5IEluIFVzZSIpKTsKICAgICB3ZWJLaXRNZW1vcnlTdGF0cy52YWx1ZXMuYXBwZW5kKHRvdGFs
Qnl0ZXNJblVzZSk7CiAgICAgd2ViS2l0TWVtb3J5U3RhdHMua2V5cy5hcHBlbmQoU3RyaW5nKCJG
YXN0IE1hbGxvYyBab25lIEJ5dGVzIikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L1dLQ29udGV4dC5jcHAKaW5kZXggNDA1NDg2YzlkNzZkZDA2NjUyM2ZkYmM4NjcxMzMwZWU5ODI4
YTg0MC4uZGVlMGEwOWMwNTVkODQ4NWEwMjNhNDVmYTE3NDRjZmUzYWExODE0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC01NzYsNyArNTc2LDcg
QEAgdm9pZCBXS0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50
cmllc0FkZGVkQWZ0ZXJUaW1lKFdLQ29udGUKIHsKICAgICBpZiAoIWRpY3Rpb25hcnlSZWYpCiAg
ICAgICAgIHJldHVybjsKLSAgICB0b0ltcGwoY29udGV4dFJlZiktPnNldFBsdWdJbkF1dG9TdGFy
dE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoKnRvSW1wbChkaWN0aW9u
YXJ5UmVmKSwgdGltZSk7CisgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5zZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKCp0b0ltcGwoZGljdGlv
bmFyeVJlZiksIFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tD
b250ZXh0U2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2lucyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwg
V0tBcnJheVJlZiBhcnJheVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9JY29uRGF0YWJhc2UuY3BwCmluZGV4IDU2YjFmZTUzZGVkMWRjZTU5NGRkYzYwNjhlZTRi
ZjYxOWE3OTNjYTMuLmE2MDBmOWExZTNmMThlYTI1YWU1NzdiYWQzZjUwZjM4ODVjMmZlYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNw
cApAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgYm9vbCBjaGVja0ludGVncml0eU9uT3BlbiA9IGZh
bHNlOwogCiAvLyBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gaWNvbnMgdGhhdCBoYXZlIGJlZW4g
dW51c2VkIGZvciBtb3JlIHRoYW4KIC8vIDMwIGRheXMsIGRlbGV0ZSB0aGVtIGV2ZW4gaWYgdGhl
eSBoYXZlIG5vdCBiZWVuIGV4cGxpY2l0bHkgcmVsZWFzZWQuCi1zdGF0aWMgY29uc3QgaW50IG5v
dFVzZWRJY29uRXhwaXJhdGlvblRpbWUgPSA2MCo2MCoyNCozMDsKK3N0YXRpYyBjb25zdCBTZWNv
bmRzIG5vdFVzZWRJY29uRXhwaXJhdGlvblRpbWUgeyA2MCo2MCoyNCozMCB9OwogCiAjaWYgIUxP
R19ESVNBQkxFRCB8fCAhRVJST1JfRElTQUJMRUQKIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2lu
Zyhjb25zdCBTdHJpbmcmIHVybCkKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIEljb25EYXRhYmFz
ZTo6c2V0SWNvbkRhdGFGb3JJY29uVVJMKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZGF0YSwgY29u
c3QgU3RyaQogCiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgZGF0YSBhbmQgc2V0IHRoZSB0aW1lIHN0
YW1wCiAgICAgICAgIGljb24tPnNldEltYWdlRGF0YShXVEZNb3ZlKGRhdGEpKTsKLSAgICAgICAg
aWNvbi0+c2V0VGltZXN0YW1wKChpbnQpY3VycmVudFRpbWUoKSk7CisgICAgICAgIGljb24tPnNl
dFRpbWVzdGFtcCgoaW50KVdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29u
ZHMoKSk7CiAKICAgICAgICAgLy8gQ29weSB0aGUgY3VycmVudCByZXRhaW5pbmcgcGFnZVVSTHMg
LSBpZiBhbnkgLSB0byBub3RpZnkgdGhlbSBvZiB0aGUgY2hhbmdlCiAgICAgICAgIHBhZ2VVUkxz
LmFwcGVuZFJhbmdlKGljb24tPnJldGFpbmluZ1BhZ2VVUkxzKCkuYmVnaW4oKSwgaWNvbi0+cmV0
YWluaW5nUGFnZVVSTHMoKS5lbmQoKSk7CkBAIC02NTcsNyArNjU3LDcgQEAgSWNvbkRhdGFiYXNl
OjpJY29uTG9hZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25G
b3JJY29uVVJMKGMKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7
CiAgICAgICAgIGlmIChJY29uUmVjb3JkKiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0
KGljb25VUkwpKSB7CiAgICAgICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiRm91bmQgZXhwaXJh
dGlvbiB0aW1lIG9uIGEgcHJlc2VudCBpY29uIGJhc2VkIG9uIGV4aXN0aW5nIEljb25SZWNvcmQi
KTsKLSAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KGN1cnJlbnRUaW1lKCkpIC0g
c3RhdGljX2Nhc3Q8aW50PihpY29uLT5nZXRUaW1lc3RhbXAoKSkgPiBpY29uRXhwaXJhdGlvblRp
bWUgPyBJY29uTG9hZERlY2lzaW9uOjpZZXMgOiBJY29uTG9hZERlY2lzaW9uOjpObzsKKyAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2lu
Y2VFcG9jaCgpLnNlY29uZHMoKSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFt
cCgpKSA+IGljb25FeHBpcmF0aW9uVGltZSA/IEljb25Mb2FkRGVjaXNpb246OlllcyA6IEljb25M
b2FkRGVjaXNpb246Ok5vOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDc5LDcgKzEwNzksNyBA
QCB2b2lkIEljb25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgLy8gTm90ZSB0aGF0
IEljb25JbmZvLnN0YW1wIGlzIG9ubHkgc2V0IHdoZW4gdGhlIGljb24gZGF0YSBpcyByZXRyaWV2
ZWQgZnJvbSB0aGUgc2VydmVyIChhbmQgdGh1cyBpcyBub3QgdXBkYXRlZCB3aGV0aGVyCiAgICAg
Ly8gd2UgdXNlIGl0IG9yIG5vdCkuIFRoaXMgY29kZSB3b3JrcyBhbnl3YXkgYmVjYXVzZSB0aGUg
SWNvbkRhdGFiYXNlIGRvd25sb2FkcyBpY29ucyBhZ2FpbiBpZiB0aGV5IGFyZSBvbGRlciB0aGFu
IDQgZGF5cywKICAgICAvLyBzbyBpZiB0aGUgdGltZXN0YW1wIGdvZXMgYmFjayBpbiB0aW1lIG1v
cmUgdGhhbiB0aG9zZSAzMCBkYXlzIHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlIGljb24gd2FzIG5v
dCB1c2VkIGF0IGFsbC4KLSAgICBTdHJpbmcgaW1wb3J0UXVlcnkgPSBTdHJpbmc6OmZvcm1hdCgi
U0VMRUNUIFBhZ2VVUkwudXJsLCBJY29uSW5mby51cmwsIEljb25JbmZvLnN0YW1wIEZST00gUGFn
ZVVSTCBJTk5FUiBKT0lOIEljb25JbmZvIE9OIFBhZ2VVUkwuaWNvbklEPUljb25JbmZvLmljb25J
RCBXSEVSRSBJY29uSW5mby5zdGFtcCA+ICUuMGY7IiwgZmxvb3IoY3VycmVudFRpbWUoKSAtIG5v
dFVzZWRJY29uRXhwaXJhdGlvblRpbWUpKTsKKyAgICBTdHJpbmcgaW1wb3J0UXVlcnkgPSBTdHJp
bmc6OmZvcm1hdCgiU0VMRUNUIFBhZ2VVUkwudXJsLCBJY29uSW5mby51cmwsIEljb25JbmZvLnN0
YW1wIEZST00gUGFnZVVSTCBJTk5FUiBKT0lOIEljb25JbmZvIE9OIFBhZ2VVUkwuaWNvbklEPUlj
b25JbmZvLmljb25JRCBXSEVSRSBJY29uSW5mby5zdGFtcCA+ICUuMGY7IiwgZmxvb3IoKFdhbGxU
aW1lOjpub3coKSAtIG5vdFVzZWRJY29uRXhwaXJhdGlvblRpbWUpLnNlY29uZHNTaW5jZUVwb2No
KCkuc2Vjb25kcygpKSk7CiAKICAgICBTUUxpdGVTdGF0ZW1lbnQgcXVlcnkobV9zeW5jREIsIGlt
cG9ydFF1ZXJ5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eUltcGwuY3BwCmluZGV4IGE1MzIzODZjYTE3ZmIzNzhmODViMDhjMGVkNzIzNjJhNjgyYjAx
YWQuLmU1NDIyMzk4YjgxYWI2NjBiNjNkZWMyNWUyZjQ0MDI1YTcxMTQxNDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3Rh
cnRQcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1
dG9TdGFydFByb3ZpZGVyLmNwcAppbmRleCAyMjI1ZTMzMjU2NmY1Y2M1MTNkOTczNWVhMmVkOTFh
OTMwMjZhMmRkLi4wNjJlODdjYmRlZWQwNzg4MWYwNDNhNGEwZWZhMWZkMmRkODczYmM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1
dG9TdGFydFByb3ZpZGVyLmNwcApAQCAtMzEsMTEgKzMxLDExIEBACiAjaW5jbHVkZSAiV2ViQ29u
dGV4dENsaWVudC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3NQb29sLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVk
ZSA8d3RmL1dhbGxUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMg
Y29uc3QgZG91YmxlIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xkID0gMzAg
KiAyNCAqIDYwICogNjA7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBwbHVnSW5BdXRvU3RhcnRFeHBp
cmF0aW9uVGltZVRocmVzaG9sZCB7IDMwICogMjQgKiA2MCAqIDYwIH07CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCkBAIC00Niw5ICs0Niw5IEBAIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpQbHVn
SW5BdXRvU3RhcnRQcm92aWRlcihXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgbV9h
dXRvU3RhcnRUYWJsZS5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0
b1N0YXJ0VGFibGUoKSk7CiB9CiAKLXN0YXRpYyBkb3VibGUgZXhwaXJhdGlvblRpbWVGcm9tTm93
KCkKK3N0YXRpYyBXYWxsVGltZSBleHBpcmF0aW9uVGltZUZyb21Ob3coKQogewotICAgIHJldHVy
biBjdXJyZW50VGltZSgpICsgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQ7
CisgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKSArIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25U
aW1lVGhyZXNob2xkOwogfQogCiB2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRv
U3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0lu
T3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNjMsNyArNjMsNyBAQCB2
b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0
IFN0cmluZyYgcGFnZU9yaWdpbiwgdQogCiAgICAgQXV0b1N0YXJ0VGFibGU6Oml0ZXJhdG9yIGl0
ID0gbV9hdXRvU3RhcnRUYWJsZS5hZGQoc2Vzc2lvbklELCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVy
YXRvci0+dmFsdWUuYWRkKHBhZ2VPcmlnaW4sIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCgpKS5p
dGVyYXRvcjsKIAotICAgIGRvdWJsZSBleHBpcmF0aW9uVGltZSA9IGV4cGlyYXRpb25UaW1lRnJv
bU5vdygpOworICAgIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lID0gZXhwaXJhdGlvblRpbWVGcm9t
Tm93KCk7CiAgICAgaXQtPnZhbHVlLnNldChwbHVnSW5PcmlnaW5IYXNoLCBleHBpcmF0aW9uVGlt
ZSk7CiAgICAgc2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5zZXQocGx1Z0luT3JpZ2luSGFzaCwgcGFn
ZU9yaWdpbik7CiAKQEAgLTkxLDEyICs5MSwxMiBAQCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBQbHVn
SW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0CiB7
CiAgICAgQVBJOjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKIAotICAgIGRvdWJsZSBub3cgPSBj
dXJyZW50VGltZSgpOworICAgIFdhbGxUaW1lIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKICAgICBm
b3IgKGNvbnN0IGF1dG8mIHN0cmluZ09yaWdpbkhhc2ggOiBtX2F1dG9TdGFydFRhYmxlLmdldChQ
QUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSkgewogICAgICAgICBBUEk6OkRpY3Rp
b25hcnk6Ok1hcFR5cGUgaGFzaE1hcDsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBvcmlnaW5I
YXNoIDogc3RyaW5nT3JpZ2luSGFzaC52YWx1ZSkgewogICAgICAgICAgICAgaWYgKG5vdyA8PSBv
cmlnaW5IYXNoLnZhbHVlKQotICAgICAgICAgICAgICAgIGhhc2hNYXAuc2V0KFN0cmluZzo6bnVt
YmVyKG9yaWdpbkhhc2gua2V5KSwgQVBJOjpEb3VibGU6OmNyZWF0ZShvcmlnaW5IYXNoLnZhbHVl
KSk7CisgICAgICAgICAgICAgICAgaGFzaE1hcC5zZXQoU3RyaW5nOjpudW1iZXIob3JpZ2luSGFz
aC5rZXkpLCBBUEk6OkRvdWJsZTo6Y3JlYXRlKG9yaWdpbkhhc2gudmFsdWUuc2Vjb25kc1NpbmNl
RXBvY2goKS5zZWNvbmRzKCkpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaGFzaE1hcC5zaXpl
KCkpCiAgICAgICAgICAgICBtYXAuc2V0KHN0cmluZ09yaWdpbkhhc2gua2V5LCBBUEk6OkRpY3Rp
b25hcnk6OmNyZWF0ZShXVEZNb3ZlKGhhc2hNYXApKSk7CkBAIC0xMDcsMjYgKzEwNywyNiBAQCBS
ZWY8QVBJOjpEaWN0aW9uYXJ5PiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3Jp
Z2luc1RhYmxlQ29weSgpIGNvbnN0CiAKIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNl
dEF1dG9TdGFydE9yaWdpbnNUYWJsZShBUEk6OkRpY3Rpb25hcnkmIHRhYmxlKQogewotICAgIHNl
dEF1dG9TdGFydE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KHRhYmxlLCBbXShkb3Vi
bGUpIHsKKyAgICBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdCh0
YWJsZSwgW10oV2FsbFRpbWUpIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSk7CiB9CiAK
LXZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNGaWx0ZXJp
bmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0aW9uYXJ5JiB0YWJsZSwgZG91Ymxl
IHRpbWUpCit2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5z
RmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYgdGFibGUs
IFdhbGxUaW1lIHRpbWUpCiB7Ci0gICAgZG91YmxlIGFkanVzdGVkVGltZXN0YW1wID0gdGltZSAr
IHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xkOwotICAgIHNldEF1dG9TdGFy
dE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KHRhYmxlLCBbYWRqdXN0ZWRUaW1lc3Rh
bXBdKGRvdWJsZSBleHBpcmF0aW9uVGltZXN0YW1wKSB7CisgICAgV2FsbFRpbWUgYWRqdXN0ZWRU
aW1lc3RhbXAgPSB0aW1lICsgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQ7
CisgICAgc2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QodGFibGUs
IFthZGp1c3RlZFRpbWVzdGFtcF0oV2FsbFRpbWUgZXhwaXJhdGlvblRpbWVzdGFtcCkgewogICAg
ICAgICByZXR1cm4gYWRqdXN0ZWRUaW1lc3RhbXAgPiBleHBpcmF0aW9uVGltZXN0YW1wOwogICAg
IH0pOwogfQogCi12b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmln
aW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdChBUEk6OkRpY3Rpb25hcnkmIHRhYmxlLCBXVEY6
OkZ1bmN0aW9uPGJvb2woZG91YmxlIGV4cGlyYXRpb25UaW1lc3RhbXApPiYmIGlzRXhwaXJhdGlv
blRpbWVBY2NlcHRhYmxlKQordm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0
YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QoQVBJOjpEaWN0aW9uYXJ5JiB0YWJs
ZSwgV1RGOjpGdW5jdGlvbjxib29sKFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lc3RhbXApPiYmIGlz
RXhwaXJhdGlvblRpbWVBY2NlcHRhYmxlKQogewogICAgIEFTU0VSVChpc0V4cGlyYXRpb25UaW1l
QWNjZXB0YWJsZSk7CiAKICAgICBtX2hhc2hUb09yaWdpbk1hcC5jbGVhcigpOwogICAgIG1fYXV0
b1N0YXJ0VGFibGUuY2xlYXIoKTsKLSAgICBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+IGhhc2hN
YXA7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+IGhhc2hNYXA7CiAgICAgSGFzaE1h
cDx1bnNpZ25lZCwgU3RyaW5nPiYgaGFzaFRvT3JpZ2luTWFwID0gbV9oYXNoVG9PcmlnaW5NYXAu
YWRkKFBBTDo6U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQs
IFN0cmluZz4oKSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIEF1dG9TdGFydFRhYmxlJiBhc3QgPSBt
X2F1dG9TdGFydFRhYmxlLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBB
dXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRvci0+dmFsdWU7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2
b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRo
SXRlbXNQYXNzaW5nVGVzdChBUEk6OgogICAgICAgICAgICAgaWYgKGhhc2hUaW1lLnZhbHVlLT50
eXBlKCkgIT0gQVBJOjpEb3VibGU6OkFQSVR5cGUpCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAKLSAgICAgICAgICAgIGRvdWJsZSBleHBpcmF0aW9uVGltZSA9IHN0YXRpY19jYXN0PEFQSTo6
RG91YmxlKj4oaGFzaFRpbWUudmFsdWUuZ2V0KCkpLT52YWx1ZSgpOworICAgICAgICAgICAgV2Fs
bFRpbWUgZXhwaXJhdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nh
c3Q8QVBJOjpEb3VibGUqPihoYXNoVGltZS52YWx1ZS5nZXQoKSktPnZhbHVlKCkpOwogICAgICAg
ICAgICAgaWYgKCFpc0V4cGlyYXRpb25UaW1lQWNjZXB0YWJsZShleHBpcmF0aW9uVGltZSkpCiAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFBsdWdJ
bkF1dG9TdGFydFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBs
dWdJbk9yaWdpbkhhcwogICAgICAgICB9CiAgICAgfQogCi0gICAgZG91YmxlIG5ld0V4cGlyYXRp
b25UaW1lID0gZXhwaXJhdGlvblRpbWVGcm9tTm93KCk7CisgICAgV2FsbFRpbWUgbmV3RXhwaXJh
dGlvblRpbWUgPSBleHBpcmF0aW9uVGltZUZyb21Ob3coKTsKICAgICBtX2F1dG9TdGFydFRhYmxl
LmFkZChzZXNzaW9uSUQsIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQoaXQt
PnZhbHVlLCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAoKSkuaXRlcmF0b3ItPnZhbHVlLnNldChw
bHVnSW5PcmlnaW5IYXNoLCBuZXdFeHBpcmF0aW9uVGltZSk7CiAgICAgbV9wcm9jZXNzUG9vbC0+
c2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEaWRBZGRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoKHBsdWdJbk9yaWdpbkhhc2gsIG5ld0V4cGlyYXRpb25UaW1lLCBzZXNz
aW9uSUQpKTsKICAgICBtX3Byb2Nlc3NQb29sLT5jbGllbnQoKS5wbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoZXNDaGFuZ2VkKG1fcHJvY2Vzc1Bvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCmluZGV4IDk4
YmYwNjc2M2JmNDQ0YmUyZTQ5Njg5MGYyYzE4YmE1YTI2NmMyOTUuLmM4ZDcxMGU1MTYwZjI4NmFi
MTgzOThjNTU0ZjY0ZTA3MmE0Y2Q2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFdlYlByb2Nlc3NQb29sOwogCi10eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4gUGx1
Z0luQXV0b1N0YXJ0T3JpZ2luTWFwOwordHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGlt
ZT4gUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwOwogdHlwZWRlZiBIYXNoTWFwPFBBTDo6U2Vzc2lv
bklELCBQbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA+IFNlc3Npb25QbHVnSW5BdXRvU3RhcnRPcmln
aW5NYXA7CiB0eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFBsdWdJbkF1dG9TdGFydE9yaWdpbnM7CiAK
QEAgLTU3LDcgKzU4LDcgQEAgY2xhc3MgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIgewogCiAgICAg
UmVmPEFQSTo6RGljdGlvbmFyeT4gYXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0Owog
ICAgIHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKEFQSTo6RGljdGlvbmFyeSYpOwotICAg
IHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGlt
ZShBUEk6OkRpY3Rpb25hcnkmLCBkb3VibGUgdGltZSk7CisgICAgdm9pZCBzZXRBdXRvU3RhcnRP
cmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYs
IFdhbGxUaW1lKTsKICAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNBcnJheShBUEk6OkFycmF5
Jik7CiAKICAgICBTZXNzaW9uUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwIGF1dG9TdGFydE9yaWdp
bkhhc2hlc0NvcHkoKSBjb25zdDsKQEAgLTY2LDcgKzY3LDcgQEAgY2xhc3MgUGx1Z0luQXV0b1N0
YXJ0UHJvdmlkZXIgewogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzUG9vbCogbV9wcm9jZXNzUG9v
bDsKIAotICAgIHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rl
c3QoQVBJOjpEaWN0aW9uYXJ5JiwgV1RGOjpGdW5jdGlvbjxib29sKGRvdWJsZSBleHBpcmF0aW9u
VGltZXN0YW1wKT4mJik7CisgICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRl
bXNQYXNzaW5nVGVzdChBUEk6OkRpY3Rpb25hcnkmLCBXVEY6OkZ1bmN0aW9uPGJvb2woV2FsbFRp
bWUgZXhwaXJhdGlvblRpbWVzdGFtcCk+JiYpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmlu
ZywgUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IEF1
dG9TdGFydFRhYmxlOwogICAgIHR5cGVkZWYgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgQXV0b1N0
YXJ0VGFibGU+IFNlc3Npb25BdXRvU3RhcnRUYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBiNmY5MGE1OTJjOTUyYzExNTJiOTQ0NzFhOGQ3YzE5
NGI1YmFjZjA3Li4zZmNhZjVhYjQ1ZDQ2OGM1MWU2NDQwNDIxYTMyNGQ1Y2VmZGM2ZWY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC04MiwxMSArODIs
MTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvVVJMUGFyc2VyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUg
PHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5j
bHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKQEAgLTk0Miw4ICs5NDIsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRGlkRmlu
aXNoTGF1bmNoaW5nKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcykKICAgICAvLyBzbyBjaGVjayBp
ZiBpdCBuZWVkcyB0byBiZSBzdGFydGVkIGhlcmUKICAgICBpZiAobV9tZW1vcnlTYW1wbGVyRW5h
YmxlZCkgewogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FtcGxlTG9nU2FuZGJv
eEhhbmRsZTsgICAgICAgIAotICAgICAgICBkb3VibGUgbm93ID0gV1RGOjpjdXJyZW50VGltZSgp
OwotICAgICAgICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2Vi
UHJvY2VzcyVsbHVwaWQlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obm93KSwg
cHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIFdhbGxUaW1lIG5vdyA9IFdh
bGxUaW1lOjpub3coKTsKKyAgICAgICAgU3RyaW5nIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU3RyaW5n
Ojpmb3JtYXQoIldlYlByb2Nlc3MlbGx1cGlkJWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25n
IGxvbmc+KG5vdy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSksIHByb2Nlc3MtPnByb2Nl
c3NJZGVudGlmaWVyKCkpOwogICAgICAgICBzYW1wbGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNh
bmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7
CiAgICAgICAgIAogICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpT
dGFydE1lbW9yeVNhbXBsZXIoc2FtcGxlTG9nU2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBh
dGgsIG1fbWVtb3J5U2FtcGxlckludGVydmFsKSwgMCk7CkBAIC0xNDI1LDggKzE0MjUsOCBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpzdGFydE1lbW9yeVNhbXBsZXIoY29uc3QgZG91YmxlIGludGVy
dmFsKQogICAgIAogICAgIC8vIEZvciBXZWJQcm9jZXNzCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlIHNhbXBsZUxvZ1NhbmRib3hIYW5kbGU7ICAgIAotICAgIGRvdWJsZSBub3cgPSBXVEY6
OmN1cnJlbnRUaW1lKCk7Ci0gICAgU3RyaW5nIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU3RyaW5nOjpm
b3JtYXQoIldlYlByb2Nlc3MlbGx1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihu
b3cpKTsKKyAgICBXYWxsVGltZSBub3cgPSBXYWxsVGltZTo6bm93KCk7CisgICAgU3RyaW5nIHNh
bXBsZUxvZ0ZpbGVQYXRoID0gU3RyaW5nOjpmb3JtYXQoIldlYlByb2Nlc3MlbGx1Iiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRz
KCkpKTsKICAgICBzYW1wbGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhh
bmRsZUZvclRlbXBvcmFyeUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNhbmRib3hFeHRlbnNpb246
OlR5cGU6OlJlYWRXcml0ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7CiAgICAgCiAgICAgc2Vu
ZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1lbW9yeVNhbXBsZXIo
c2FtcGxlTG9nU2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIGludGVydmFsKSk7CkBA
IC0xNzQ4LDcgKzE3NDgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5zKEFQSTo6QXJyYXkmIGFycmF5KQogICAgIG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXIuc2V0QXV0b1N0YXJ0T3JpZ2luc0FycmF5KGFycmF5KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
UG9vbDo6c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFm
dGVyVGltZShBUEk6OkRpY3Rpb25hcnkmIGRpY3Rpb25hcnksIGRvdWJsZSB0aW1lKQordm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJp
ZXNBZGRlZEFmdGVyVGltZShBUEk6OkRpY3Rpb25hcnkmIGRpY3Rpb25hcnksIFdhbGxUaW1lIHRp
bWUpCiB7CiAgICAgbV9wbHVnSW5BdXRvU3RhcnRQcm92aWRlci5zZXRBdXRvU3RhcnRPcmlnaW5z
RmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKGRpY3Rpb25hcnksIHRpbWUpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNDEyNTgxOWNiNTgx
MDA2OGZiMDUwNjZiNTk1YjgwMmE4NDVkNmRmMy4uMWIzMTc1NGMxMDE1ZjdhZjFmMzNjZjU2NWYy
MTI0ZDRjN2ZiMTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
CkBAIC0zMTQsNyArMzE0LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2wgZmluYWwgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpQcm9jZXNzUG8KICAgICBSZWY8QVBJ
OjpEaWN0aW9uYXJ5PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoKSBjb25zdDsKICAgICB2
b2lkIHNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhBUEk6OkRpY3Rpb25hcnkmKTsKICAg
ICB2b2lkIHNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnMoQVBJOjpBcnJheSYpOwotICAgIHZvaWQg
c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGlt
ZShBUEk6OkRpY3Rpb25hcnkmLCBkb3VibGUgdGltZSk7CisgICAgdm9pZCBzZXRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlv
bmFyeSYsIFdhbGxUaW1lKTsKIAogICAgIC8vIE5ldHdvcmsgUHJvY2VzcyBNYW5hZ2VtZW50CiAg
ICAgTmV0d29ya1Byb2Nlc3NQcm94eSYgZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFT
dG9yZSogd2l0aFdlYnNpdGVEYXRhU3RvcmUgPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL0FQSUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmluZGV4IGZlNzM5YjI2
ZDMxYTdjMTE0OGJkYzA5NTM2YTkwZTJlOGQ0ZTYxYzguLjU4YzY0ZDIwZDExNjgxYzRkOTQyOWNl
MmZhMWNlNDA4ODdhN2I1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3Rl
ZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRNaWxl
c3RvbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRp
bWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtODAsNyArODEsNyBAQCBjbGFzcyBQYWdlTG9hZGVyQ2xpZW50IHsKIAogICAgIHZp
cnR1YWwgdm9pZCBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYs
IFdlYktpdDo6V2ViRnJhbWUmLCBXZWJDb3JlOjpET01XcmFwcGVyV29ybGQmKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJLaXQ6OldlYlBh
Z2UmLCBXZWJLaXQ6OldlYkZyYW1lJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1l
JiwgY29uc3QgV1RGOjpTdHJpbmcmLCBkb3VibGUgLypkZWxheSovLCBkb3VibGUgLypkYXRlKi8p
IHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUo
V2ViS2l0OjpXZWJQYWdlJiwgV2ViS2l0OjpXZWJGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiwg
ZG91YmxlIC8qZGVsYXkqLywgV2FsbFRpbWUgLypkYXRlKi8pIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6
OldlYkZyYW1lJikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2xvYmFsT2JqZWN0SXNBdmFpbGFi
bGVGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1lJiwgV2ViQ29yZTo6
RE9NV3JhcHBlcldvcmxkJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuY3BwCmluZGV4IDQ4ZmQxYmE0MTBlNGIzY2ZhOWI1NWU1ODdkZWY0MWVhYzcx
OTU1MDQuLmU0MWU4MzE4MDk5MDRiZWVjNmJlZGJkOWQwMzcyNmZmODgwZDQzOTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCkBAIC0yODMsMTIg
KzI4MywxMiBAQCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkQ2FuY2Vs
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJQYWdlJiBwYQogICAgIG1fY2xpZW50LmRpZENhbmNl
bENsaWVudFJlZGlyZWN0Rm9yRnJhbWUodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRl
ckNsaWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UmIHBhZ2Us
IFdlYkZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgZG91Ymxl
IGRhdGUpCit2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6d2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UmIHBhZ2UsIFdlYkZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgV2FsbFRpbWUgZGF0ZSkKIHsKICAgICBpZiAo
IW1fY2xpZW50LndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9jbGllbnQud2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHRv
QVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9VUkxSZWYodXJsLmltcGwoKSksIGRlbGF5LCBk
YXRlLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LndpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3RGb3JGcmFtZSh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvVVJM
UmVmKHVybC5pbXBsKCkpLCBkZWxheSwgZGF0ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMo
KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQ6OmRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYlBhZ2UmIHBh
Z2UsIFdlYkZyYW1lJiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuaAppbmRleCBkY2IwY2ZjYmEwYjRhZTVmNDA0YjcyN2FkNDNiYzQyNjEzOTJhYTIz
Li5hOTBlZDYwYWYxZmU2OTVhOWE1NDU1NjlmMDNhMTA4MDI1ZjhkNGU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC03Myw3ICs3Myw3IEBAIGNs
YXNzIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxX
S0J1bmRsZVBhZ2VMb2FkZXJDbGllCiAKICAgICB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0Rm9y
RnJhbWUoV2ViUGFnZSYsIFdlYkZyYW1lJiwgV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2Um
LCBXZWJGcmFtZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dEZvckZyYW1lKFdlYlBhZ2UmLCBXZWJGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgZG91Ymxl
IC8qZGVsYXkqLywgZG91YmxlIC8qZGF0ZSovKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxQZXJm
b3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJQYWdlJiwgV2ViRnJhbWUmLCBjb25zdCBXVEY6
OlN0cmluZyYsIGRvdWJsZSAvKmRlbGF5Ki8sIFdhbGxUaW1lIC8qZGF0ZSovKSBvdmVycmlkZTsK
ICAgICB2b2lkIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYlBhZ2UmLCBXZWJGcmFt
ZSYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1l
KFdlYlBhZ2UmLCBXZWJGcmFtZSYsIFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCYpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMWU5OGI0ODNiMTg5OGVhMjVl
MTBkYWNjMzA2MGFjMDRhN2RjY2EwNS4uMjM5YzQ0MDhiZjJhOGZhNTVlZjRkNDZlOTg1ZTkzZWE2
YWRkNjlmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0zMzUsNyArMzM1
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRS
ZWRpcmVjdCgpCiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRD
YW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSkpOwogfQogCi12
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgVVJMJiB1cmwsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKQordm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFVSTCYgdXJsLCBkb3VibGUgaW50ZXJ2YWwsIFdhbGxUaW1lIGZpcmVEYXRlKQogewog
ICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiNjgwMzJlMjkwZDM3MTAxNmM4MWY1
ZTc4MDE2NDkzZTk4Zjc0NzM0Li5lZmJmMjg3YTFlZGU0ZTQ3MWM3OTk1NjAxOTI3MDE4ZDlkNmI3
MDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTAzLDcgKzEwMyw3IEBAIGNs
YXNzIFdlYkZyYW1lTG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkZyYW1lTG9h
ZGVyQ2xpZW50IHsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9y
UHJvdmlzaW9uYWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENoYW5nZVByb3Zp
c2lvbmFsVVJMKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGly
ZWN0KCkgZmluYWw7Ci0gICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3Qo
Y29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpIGZp
bmFsOworICAgIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdl
YkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgV2FsbFRpbWUgZmlyZURhdGUpIGZpbmFsOwog
ICAgIHZvaWQgZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSBmaW5hbDsKICAg
ICB2b2lkIGRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggODVlZjNmOTMyNDJhZmMyZmFiZDExNDY3YTQx
NDI2NDcwNTg5ZmJiMy4uZmE1MTkyNDIyZTI4YmQyYmQ1Njg0M2RlODU3MGJiMzY5NDc4NTJmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTUxLDcgKzE1MSw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLy8g
VGhpcyBzaG91bGQgYmUgbGVzcyB0aGFuIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhy
ZXNob2xkIGluIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyLgotc3RhdGljIGNvbnN0IGRvdWJsZSBw
bHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGltZVVwZGF0ZVRocmVzaG9sZCA9IDI5ICogMjQgKiA2
MCAqIDYwOworc3RhdGljIGNvbnN0IFNlY29uZHMgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRp
bWVVcGRhdGVUaHJlc2hvbGQgeyAyOSAqIDI0ICogNjAgKiA2MCB9OwogCiAvLyBUaGlzIHNob3Vs
ZCBiZSBncmVhdGVyIHRoYW4gdGlsZVJldmFsaWRhdGlvblRpbWVvdXQgaW4gVGlsZUNvbnRyb2xs
ZXIuCiBzdGF0aWMgY29uc3QgU2Vjb25kcyBub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBEZWxheSB7
IDEwX3MgfTsKQEAgLTIwMiw3ICsyMDIsNyBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAg
ICBhZGRTdXBwbGVtZW50PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyPigpOwogI2VuZGlmCiAKLSAg
ICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1
bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKTsKKyAgICBtX3BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+KCkpOwogCiAgICAgUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXI6OnNoYXJlZCgpLnNldE5vdGlmaWNhdGlvbkNhbGxiYWNrKFt0aGlzXSAoVmVjdG9y
PFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYgc3RhdGlzdGljcykgewogICAgICAgICBBU1NFUlQo
IXN0YXRpc3RpY3MuaXNFbXB0eSgpKTsKQEAgLTgwMCw4ICs4MDAsOCBAQCBzdGF0aWMgdW5zaWdu
ZWQgaGFzaEZvclBsdWdJbk9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0
cmluZyYgcGx1ZwogCiBib29sIFdlYlByb2Nlc3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7
Ci0gICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46
OmNvbnN0X2l0ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaGVzLmZpbmQoc2Vzc2lvbklEKTsKLSAgICBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Ojpj
b25zdF9pdGVyYXRvciBpdDsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVu
c2lnbmVkLCBXYWxsVGltZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3Bs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CisgICAgSGFzaE1hcDx1
bnNpZ25lZCwgV2FsbFRpbWU+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICBib29sIGNvbnRhaW5z
ID0gZmFsc2U7CiAKICAgICBpZiAoc2Vzc2lvbkl0ZXJhdG9yICE9IG1fcGx1Z0luQXV0b1N0YXJ0
T3JpZ2luSGFzaGVzLmVuZCgpKSB7CkBAIC04MTQsNyArODE0LDcgQEAgYm9vbCBXZWJQcm9jZXNz
Ojppc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwg
UEFMOjpTZXMKICAgICAgICAgaWYgKGl0ID09IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCkp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBjdXJyZW50VGlt
ZSgpIDwgaXQtPnZhbHVlOworICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkgPCBpdC0+dmFsdWU7
CiB9CiAKIGJvb2wgV2ViUHJvY2Vzczo6c2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9yaWdpbihX
ZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYg
cGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpAQCAtODUxLDI4ICs4NTEsMjgg
QEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5n
JiBwYWdlT3JpZ2luLCBjb25zdCBTdHJpbmcKICAgICAvLyBjb21lcyBiYWNrIGZyb20gdGhlIHBh
cmVudCBwcm9jZXNzLiBUZW1wb3JhcmlseSBhZGQgdGhpcyBoYXNoIHRvIHRoZSBsaXN0IHdpdGgg
YSB0aGlydHkKICAgICAvLyBzZWNvbmQgdGltZW91dC4gVGhhdCB3YXksIGV2ZW4gaWYgdGhlIHBh
cmVudCBkZWNpZGVzIG5vdCB0byBhZGQgaXQsIHdlJ2xsIG9ubHkgYmUKICAgICAvLyBpbmNvcnJl
Y3QgZm9yIGEgbGl0dGxlIHdoaWxlLgotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVz
LmFkZChzZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZh
bHVlLnNldChwbHVnSW5PcmlnaW5IYXNoLCBjdXJyZW50VGltZSgpICsgMzAgKiAxMDAwKTsKKyAg
ICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoc2Vzc2lvbklELCBIYXNoTWFwPHVu
c2lnbmVkLCBXYWxsVGltZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnNldChwbHVnSW5PcmlnaW5IYXNo
LCBXYWxsVGltZTo6bm93KCkgKyAzMF9zICogMTAwMCk7CiAKICAgICBwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6QWRkUGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaChwYWdlT3JpZ2luLCBwbHVnSW5PcmlnaW5IYXNoLCBzZXNzaW9uSUQpLCAw
KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
KHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3Rh
cnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lIGV4cGlyYXRp
b25UaW1lLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgLy8gV2hlbiBjYWxsZWQs
IHNvbWUgd2ViIHByb2Nlc3MgKHdoaWNoIGFsc28gbWlnaHQgYmUgdGhpcyBvbmUpIGFkZGVkIHRo
ZSBvcmlnaW4gZm9yIGF1dG8tc3RhcnRpbmcsCiAgICAgLy8gb3IgcmVjZWl2ZWQgdXNlciBpbnRl
cmFjdGlvbi4KICAgICAvLyBTZXQgdGhlIGJpdCB0byBhdm9pZCBoYXZpbmcgcmVkdW5kYW50bHkg
Y2FsbCBpbnRvIHRoZSBVSSBwcm9jZXNzIHVwb24gdXNlciBpbnRlcmFjdGlvbi4KLSAgICBtX3Bs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoc2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVk
LCBkb3VibGU+KCkpLml0ZXJhdG9yLT52YWx1ZS5zZXQocGx1Z0luT3JpZ2luSGFzaCwgZXhwaXJh
dGlvblRpbWUpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChzZXNzaW9u
SUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPigpKS5pdGVyYXRvci0+dmFsdWUuc2V0KHBs
dWdJbk9yaWdpbkhhc2gsIGV4cGlyYXRpb25UaW1lKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpy
ZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29uc3QgSGFzaE1hcDx1bnNp
Z25lZCwgZG91YmxlPiYgaGFzaGVzKQordm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9T
dGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29uc3QgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+
JiBoYXNoZXMpCiB7CiAgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuY2xlYXIoKTsK
LSAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRl
ZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKS5pdGVyYXRvci0+
dmFsdWUuc3dhcChjb25zdF9jYXN0PEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4mPihoYXNoZXMp
KTsKKyAgICBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6
OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+KCkpLml0ZXJh
dG9yLT52YWx1ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+Jj4o
aGFzaGVzKSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoZXMoY29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwg
ZG91YmxlPj4mIGhhc2hlcykKK3ZvaWQgV2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXMoY29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25l
ZCwgV2FsbFRpbWU+PiYgaGFzaGVzKQogewotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2ln
bmVkLCBkb3VibGU+PiY+KGhhc2hlcykpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzLnN3YXAoY29uc3RfY2FzdDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2ln
bmVkLCBXYWxsVGltZT4+Jj4oaGFzaGVzKSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGx1Z0lu
RGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0
IFN0cmluZyYgcGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpCkBAIC04ODQsOCArODg0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVn
SW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29u
c3QKICAgICBpZiAoIXBsdWdJbk9yaWdpbkhhc2gpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhh
c2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+Ojpjb25zdF9p
dGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5m
aW5kKHNlc3Npb25JRCk7Ci0gICAgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPjo6Y29uc3RfaXRl
cmF0b3IgaXQ7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwg
V2FsbFRpbWU+Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoZXMuZmluZChzZXNzaW9uSUQpOworICAgIEhhc2hNYXA8dW5zaWduZWQs
IFdhbGxUaW1lPjo6Y29uc3RfaXRlcmF0b3IgaXQ7CiAgICAgYm9vbCBjb250YWlucyA9IGZhbHNl
OwogICAgIGlmIChzZXNzaW9uSXRlcmF0b3IgIT0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMuZW5kKCkpIHsKICAgICAgICAgaXQgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmZpbmQocGx1
Z0luT3JpZ2luSGFzaCk7CkBAIC04OTgsNyArODk4LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVn
SW5EaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29u
c3QKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaXQtPnZhbHVlIC0gY3Vy
cmVudFRpbWUoKSA+IHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVXBkYXRlVGhyZXNob2xk
KQorICAgIGlmIChpdC0+dmFsdWUgLSBXYWxsVGltZTo6bm93KCkgPiBwbHVnSW5BdXRvU3RhcnRF
eHBpcmF0aW9uVGltZVVwZGF0ZVRocmVzaG9sZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBs
dWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24ocGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklE
KSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA1MmI5ZDNmZWM0
NDM0NTY0N2I1NDYxNjUyYmE5Mzc5ZWVmMWFlMGY4Li45ZTc5ZmViYjJjYzk1NDllOWEyYThlMGJi
MTAwMjM3NDM3M2UxYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAg
LTI4MCw5ICsyODAsOSBAQCBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7
CiAgICAgdm9pZCBmdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2Fy
ZEFjY2Vzc0VuYWJsZWQpOwogCiAgICAgYm9vbCBpc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2go
dW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGlk
QWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBk
b3VibGUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHJlc2V0UGx1
Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhjb25zdCBIYXNoTWFwPHVuc2lnbmVkLCBk
b3VibGU+JiBoYXNoZXMpOwotICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMoY29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91Ymxl
Pj4mIGhhc2hlcyk7CisgICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVu
c2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lLCBQQUw6OlNl
c3Npb25JRCk7CisgICAgdm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNo
ZXMoY29uc3QgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+JiBoYXNoZXMpOworICAgIHZvaWQg
cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoY29uc3QgSGFzaE1hcDxQQUw6OlNlc3Np
b25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+PiYgaGFzaGVzKTsKIAogICAgIHZvaWQg
cGxhdGZvcm1TZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpOwogCkBAIC0zODYsNyArMzg2LDcgQEAg
Y2xhc3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MgewogI2VuZGlmCiAgICAgUmVm
UHRyPFdlYkluc3BlY3RvckludGVycnVwdERpc3BhdGNoZXI+IG1fd2ViSW5zcGVjdG9ySW50ZXJy
dXB0RGlzcGF0Y2hlcjsKIAotICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5z
aWduZWQsIGRvdWJsZT4+IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzOworICAgIEhhc2hN
YXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPj4gbV9wbHVnSW5B
dXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcGx1Z0luQXV0b1N0
YXJ0T3JpZ2luczsKIAogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NTc5OGQ3ZDE0ZjM3YzE0Njg5NWVmMWEyOWQ2MGIzYmFhNDNjMWNlMC4uNTUzZGU0NmM2NmRmN2E1
NzE4MjM2YmVkZWFhM2Y2MTc2M2VlNTFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUxLDkgKzUxLDkgQEAgbWVzc2FnZXMgLT4g
V2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGVzdHJveVNlc3Npb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKQogCiAgICAgIyBQbHVnLWlucy4KLSAgICBEaWRBZGRQbHVnSW5BdXRv
U3RhcnRPcmlnaW5IYXNoKHVpbnQzMl90IGhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKQotICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVm
YXVsdEhhc2hlcyhIYXNoTWFwPHVpbnQzMl90LGRvdWJsZT4gaGFzaGVzKQotICAgIFJlc2V0UGx1
Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8
dWludDMyX3QsZG91YmxlPj4gaGFzaGVzKQorICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdp
bkhhc2godWludDMyX3QgaGFzaCwgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkKKyAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNo
ZXMoSGFzaE1hcDx1aW50MzJfdCxXYWxsVGltZT4gaGFzaGVzKQorICAgIFJlc2V0UGx1Z0luQXV0
b1N0YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dWludDMy
X3QsV2FsbFRpbWU+PiBoYXNoZXMpCiAgICAgU2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSh1aW50
OF90IHBvbGljeSwgU3RyaW5nIGhvc3QsIFN0cmluZyBidW5kbGVJZGVudGlmaWVyLCBTdHJpbmcg
dmVyc2lvblN0cmluZykKICAgICBSZXNldFBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyhIYXNoTWFw
PFN0cmluZywgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+IHBsdWdp
bkxvYWRDbGllbnRQb2xpY2llcykKICAgICBDbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAK
aW5kZXggZDY1Mzg1OTI3OTI1ZjE3NmUzOTlhNTQzZTMzMTlmODI3NzQ3ODRjZi4uMDIzNTRjNjI0
NmVlMzQ0MzIyMDMzOWVlMjlhM2Q0MDM4YzZiNTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8bGlic291
cC9zb3VwLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3NjQ5ZWEzYzQwNTdh
Y2Q2MDRjY2VhZmU0MWY4Nzg3NTY4NmRjMmExLi4zNGM0NmZmMzFhNjU0NjlhNGJhNDc5YTM3YTcw
ZmM1YjkyOTU4YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEwNiw3ICsxMDYs
NyBAQCBjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudCB7CiAgICAgdm9pZCBkaXNwYXRjaERpZERpc3BhdGNoT25sb2FkRXZlbnRzKCkg
ZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZCgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRp
cmVjdCgpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0
KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKSBm
aW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBX
ZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIFdhbGxUaW1lIGZpcmVEYXRlKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCkgZmluYWw7CiAg
ICAgdm9pZCBkaXNwYXRjaERpZFB1c2hTdGF0ZVdpdGhpblBhZ2UoKSBmaW5hbDsKICAgICB2b2lk
IGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGluUGFnZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5tbQppbmRleCA2MjdiM2U0MTM0NzMxMjhmMTU1MTQ3Mjc0ODIwYzdhZDIyZGY3
OGFlLi43Zjg1NjRhZjI5NzAzYmI2YzVmNzQ2YTM5MWFkNDM0OWJmYjFhOTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNTk4LDEzICs1OTgsMTMgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpCiAgICAgICAgIENh
bGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPmRpZENhbmNlbENsaWVudFJlZGly
ZWN0Rm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRDYW5jZWxDbGll
bnRSZWRpcmVjdEZvckZyYW1lOiksIG1fd2ViRnJhbWUuZ2V0KCkpOwogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3Qg
VVJMJiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGZpcmVEYXRlKQordm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYg
dXJsLCBkb3VibGUgZGVsYXksIFdhbGxUaW1lIGZpcmVEYXRlKQogewogICAgIFdlYlZpZXcgKndl
YlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIFdlYkZyYW1lTG9hZERl
bGVnYXRlSW1wbGVtZW50YXRpb25DYWNoZSogaW1wbGVtZW50YXRpb25zID0gV2ViVmlld0dldEZy
YW1lTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zKHdlYlZpZXcpOwogICAgIGlmIChpbXBsZW1l
bnRhdGlvbnMtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTERlbGF5RmlyZURhdGVGb3JG
cmFtZUZ1bmMpIHsKICAgICAgICAgTlNVUkwgKmNvY29hVVJMID0gdXJsOwotICAgICAgICBDYWxs
RnJhbWVMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25zLT53aWxsUGVyZm9ybUNsaWVudFJlZGly
ZWN0VG9VUkxEZWxheUZpcmVEYXRlRm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
Vmlldzp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVsYXk6ZmlyZURhdGU6Zm9yRnJh
bWU6KSwgY29jb2FVUkwsIGRlbGF5LCBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2Ux
OTcwOmZpcmVEYXRlXSwgbV93ZWJGcmFtZS5nZXQoKSk7CisgICAgICAgIENhbGxGcmFtZUxvYWRE
ZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTERl
bGF5RmlyZURhdGVGb3JGcmFtZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OndpbGxQ
ZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDpkZWxheTpmaXJlRGF0ZTpmb3JGcmFtZTopLCBjb2Nv
YVVSTCwgZGVsYXksIFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6ZmlyZURh
dGUuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCldLCBtX3dlYkZyYW1lLmdldCgpKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjNTkzMzU2MTllNjc2
NjFmNGE0MTczZTIzNzhkNjRhMzY4ZjAxNzBmLi5mZDg0YzFjZTVjZjFhM2QyNTYzMjVkYmRmYTEw
OWQyNjczMzFkNzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0zNTQsMTIg
KzM1NCwxMiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENhbmNlbENs
aWVudFJlZGlyZWN0KCkKICAgICAgICAgZnJhbWVMb2FkRGVsZWdhdGUtPmRpZENhbmNlbENsaWVu
dFJlZGlyZWN0Rm9yRnJhbWUod2ViVmlldywgbV93ZWJGcmFtZSk7CiB9CiAKLXZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBV
UkwmIHVybCwgZG91YmxlIGRlbGF5LCBkb3VibGUgZmlyZURhdGUpCit2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgVVJMJiB1
cmwsIGRvdWJsZSBkZWxheSwgV2FsbFRpbWUgZmlyZURhdGUpCiB7CiAgICAgV2ViVmlldyogd2Vi
VmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBDT01QdHI8SVdlYkZyYW1lTG9hZERl
bGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXctPmZy
YW1lTG9hZERlbGVnYXRlKCZmcmFtZUxvYWREZWxlZ2F0ZSkpKQotICAgICAgICBmcmFtZUxvYWRE
ZWxlZ2F0ZS0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMKHdlYlZpZXcsIEJTdHJpbmco
dXJsLnN0cmluZygpKSwgZGVsYXksIE1hcnNoYWxsaW5nSGVscGVyczo6Q0ZBYnNvbHV0ZVRpbWVU
b0RBVEUoZmlyZURhdGUpLCBtX3dlYkZyYW1lKTsKKyAgICAgICAgZnJhbWVMb2FkRGVsZWdhdGUt
PndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTCh3ZWJWaWV3LCBCU3RyaW5nKHVybC5zdHJp
bmcoKSksIGRlbGF5LCBNYXJzaGFsbGluZ0hlbHBlcnM6OkNGQWJzb2x1dGVUaW1lVG9EQVRFKGZp
cmVEYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpKSwgbV93ZWJGcmFtZSk7CiB9CiAK
IHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRo
aW5QYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDAxYTBlZWYzNjViMDMzM2Ey
NjRiOTMwYTQxY2ZjNGYyMWE4YTQyMDIuLjliODMzM2JjMWFiOTk2N2I2ZjdlMzlhMjViNzU0ZmYz
NDk4MDg2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtODUsNyArODUsNyBAQCBj
bGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudCwgcHVibGljIFdlYkNvcmU6OgogICAgIHZvaWQgZGlzcGF0Y2hEaWREaXNwYXRjaE9ubG9h
ZEV2ZW50cygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVk
aXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlk
Q2FuY2VsQ2xpZW50UmVkaXJlY3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc3BhdGNoV2lsbFBl
cmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50ZXJ2YWws
IGRvdWJsZSBmaXJlRGF0ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBXYWxs
VGltZSBmaXJlRGF0ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0
aW9uV2l0aGluUGFnZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRQdXNoU3RhdGVX
aXRoaW5QYWdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlcGxhY2VTdGF0ZVdp
dGhpblBhZ2UoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkRvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEb3dubG9hZC5oCmlu
ZGV4IDZhZDczNDY4YTcyMGE5NzlkZjA2NjJmNGNlYmVhZmJhMzMxMDlhZTQuLjg0ODg1ZjI0ZmI4
MzRhMmRmY2E4MmVlYjc5ZTE5YzcxOTEwNGE0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkRvd25sb2FkLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
RG93bmxvYWQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldlYktpdC5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAj
aWYgVVNFKENGVVJMQ09OTkVDVElPTikKQEAgLTExNyw4ICsxMTgsOCBAQCBjbGFzcyBXZWJEb3du
bG9hZAogICAgIENPTVB0cjxJV2ViRG93bmxvYWREZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKIAogI2lm
bmRlZiBOREVCVUcKLSAgICBkb3VibGUgbV9zdGFydFRpbWU7Ci0gICAgZG91YmxlIG1fZGF0YVRp
bWU7CisgICAgV2FsbFRpbWUgbV9zdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9kYXRhVGltZTsK
ICAgICBpbnQgbV9yZWNlaXZlZDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1dlYkRvd25sb2FkQ0ZOZXQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vV2ViRG93bmxvYWRDRk5ldC5jcHAKaW5kZXggMjZlZjVkOWQ3NGQ0NDdiYWJkZWM3NTM2MTZk
ODE4YmVmZTM1NzJhYy4uOGU3MTk3OWNhOTdmZDU1MDJlYWNiMmRlY2NlOWFmNjM5MDc1NjVhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRG93bmxvYWRDRk5ldC5jcHAK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRG93bmxvYWRDRk5ldC5jcHAKQEAgLTM0
NSw5ICszNDUsOSBAQCBIUkVTVUxUIFdlYkRvd25sb2FkOjp1c2VDcmVkZW50aWFsKF9Jbl9vcHRf
IElXZWJVUkxDcmVkZW50aWFsKiBjcmVkZW50aWFsLCBfSW5fbwogdm9pZCBXZWJEb3dubG9hZDo6
ZGlkU3RhcnQoKQogewogI2lmbmRlZiBOREVCVUcKLSAgICBtX3N0YXJ0VGltZSA9IG1fZGF0YVRp
bWUgPSBjdXJyZW50VGltZSgpOworICAgIG1fc3RhcnRUaW1lID0gbV9kYXRhVGltZSA9IFdhbGxU
aW1lOjpub3coKTsKICAgICBtX3JlY2VpdmVkID0gMDsKLSAgICBMT0coRG93bmxvYWQsICJET1dO
TE9BRCAtIFN0YXJ0ZWQgJXAgYXQgJS4zZiBzZWNvbmRzIiwgdGhpcywgbV9zdGFydFRpbWUpOwor
ICAgIExPRyhEb3dubG9hZCwgIkRPV05MT0FEIC0gU3RhcnRlZCAlcCBhdCAlLjNmIHNlY29uZHMi
LCB0aGlzLCBtX3N0YXJ0VGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSk7CiAjZW5k
aWYKICAgICBpZiAoRkFJTEVEKG1fZGVsZWdhdGUtPmRpZEJlZ2luKHRoaXMpKSkKICAgICAgICAg
TE9HX0VSUk9SKCJEb3dubG9hZERlbGVnYXRlLT5kaWRCZWdpbiBmYWlsZWQiKTsKQEAgLTQxMSw5
ICs0MTEsOSBAQCB2b2lkIFdlYkRvd25sb2FkOjpkaWRSZWNlaXZlRGF0YShDRkluZGV4IGxlbmd0
aCkKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9yZWNlaXZlZCArPSBsZW5ndGg7Ci0gICAgZG91
YmxlIGN1cnJlbnQgPSBjdXJyZW50VGltZSgpOwotICAgIGlmIChjdXJyZW50IC0gbV9kYXRhVGlt
ZSA+IDIuMCkKLSAgICAgICAgTE9HKERvd25sb2FkLCAiRE9XTkxPQUQgLSAlcCBoYW5nZWQgZm9y
ICUuM2Ygc2Vjb25kcyAtIFJlY2VpdmVkICVpIGJ5dGVzIGZvciBhIHRvdGFsIG9mICVpIiwgdGhp
cywgY3VycmVudCAtIG1fZGF0YVRpbWUsIGxlbmd0aCwgbV9yZWNlaXZlZCk7CisgICAgV2FsbFRp
bWUgY3VycmVudCA9IFdhbGxUaW1lOjpub3coKTsKKyAgICBpZiAoKGN1cnJlbnQgLSBtX2RhdGFU
aW1lKSA+IDJfcykKKyAgICAgICAgTE9HKERvd25sb2FkLCAiRE9XTkxPQUQgLSAlcCBoYW5nZWQg
Zm9yICUuM2Ygc2Vjb25kcyAtIFJlY2VpdmVkICVpIGJ5dGVzIGZvciBhIHRvdGFsIG9mICVpIiwg
dGhpcywgKGN1cnJlbnQgLSBtX2RhdGFUaW1lKS5zZWNvbmRzKCksIGxlbmd0aCwgbV9yZWNlaXZl
ZCk7CiAgICAgbV9kYXRhVGltZSA9IGN1cnJlbnQ7CiAjZW5kaWYKICAgICBpZiAoRkFJTEVEKG1f
ZGVsZWdhdGUtPmRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgodGhpcywgbGVuZ3RoKSkpCkBAIC00NTgs
NyArNDU4LDcgQEAgdm9pZCBXZWJEb3dubG9hZDo6ZGlkQ3JlYXRlRGVzdGluYXRpb24oQ0ZVUkxS
ZWYgZGVzdGluYXRpb24pCiB2b2lkIFdlYkRvd25sb2FkOjpkaWRGaW5pc2goKQogewogI2lmbmRl
ZiBOREVCVUcKLSAgICBMT0coRG93bmxvYWQsICJET1dOTE9BRCAtIEZpbmlzaGVkICVwIGFmdGVy
ICVpIGJ5dGVzIGFuZCAlLjNmIHNlY29uZHMiLCB0aGlzLCBtX3JlY2VpdmVkLCBjdXJyZW50VGlt
ZSgpIC0gbV9zdGFydFRpbWUpOworICAgIExPRyhEb3dubG9hZCwgIkRPV05MT0FEIC0gRmluaXNo
ZWQgJXAgYWZ0ZXIgJWkgYnl0ZXMgYW5kICUuM2Ygc2Vjb25kcyIsIHRoaXMsIG1fcmVjZWl2ZWQs
IChXYWxsVGltZTo6bm93KCkgLSBtX3N0YXJ0VGltZSkuc2Vjb25kcygpKTsKICNlbmRpZgogCiAg
ICAgQVNTRVJUKCFtX2J1bmRsZVBhdGguaXNFbXB0eSgpICYmICFtX2Rlc3RpbmF0aW9uLmlzRW1w
dHkoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggMGM5N2IzYzliY2I4NmRhODExNTM5YmRlYzhjMDhmODQ4ZTA5YzU5Yi4uMmY0NGI0ZTA1Nzlh
MDUyN2JlZGUxZDlhNmJiNDU0NWQ2MWI5NzY2NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE4LTAyLTIyICBZdXN1
a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFJlbW92ZSBjdXJy
ZW50VGltZSgpIC8gY3VycmVudFRpbWVNUygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwNTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAg
ICAgICAocHJlY2lzZVRpbWVDYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFj
L1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2NrR2VvbG9jYXRp
b25Qb3NpdGlvbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9u
LmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaHJlYWRHcm91cC5jcHA6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcDoKKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcDoKKyAgICAg
ICAgKFdUUjo6R2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBvc2l0aW9uKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0UnVubmVyOjpwcmVjaXNlVGltZSk6CisKKzIwMTgtMDItMjIgIFl1c3VrZSBT
dXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgUmVtb3ZlIHNsZWVwKGRv
dWJsZSkgYW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAppbmRleCA0MGFmZDEwYzVlYzhlMWM1MzhiNGE4ODcxMmJhM2JlOTE0ZGUxZDRi
Li43MmM2NDVjMDE5ZmY3OTBlMDA4ODkxZDlmYWUwMTk4MWExMzQwZGY5IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcApAQCAtNDgsMTIgKzQ4LDEyIEBACiAjaW5jbHVkZSA8bG9jYWxl
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnaW5nQWNjdW11bGF0
b3IuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMu
aD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE3NjgsNyArMTc2OCw3IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIHNldEJhY2tpbmdTY2FsZUZhY3RvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHByZWNpc2VUaW1lQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewotICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihjb250
ZXh0LCBXVEY6OmN1cnJlbnRUaW1lKCkpOworICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bWJlcihj
b250ZXh0LCBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpOwog
fQogCiBzdGF0aWMgSlNWYWx1ZVJlZiBpbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVib2FyZENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggOTQ4YWJhMDc1MmNlOGIyMWY4M2RkNzM0M2U3NTAzZTBk
MmYyMjZmMC4uMWU5ZDYyN2I1YjViZjYxMmFhZWJkM2FhZmNhNjIzYzdkZTVlMzZhOSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTc0LDkgKzc0LDkgQEAK
ICNpbXBvcnQgPFdlYktpdC9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9XZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KLSNpbXBv
cnQgPHd0Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiAjaWYgIVBMQVRG
T1JNKElPUykKICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgpAQCAtNDQ3LDkgKzQ0Nyw5IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0
dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkCiAgICAgV2ViR2VvbG9jYXRpb25Qb3NpdGlvbiAqcG9z
aXRpb24gPSBuaWw7CiAgICAgaWYgKCFwcm92aWRlc0FsdGl0dWRlICYmICFwcm92aWRlc0FsdGl0
dWRlQWNjdXJhY3kgJiYgIXByb3ZpZGVzSGVhZGluZyAmJiAhcHJvdmlkZXNTcGVlZCkgewogICAg
ICAgICAvLyBUZXN0IHRoZSBleHBvc2VkIEFQSS4KLSAgICAgICAgcG9zaXRpb24gPSBbW1dlYkdl
b2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRoVGltZXN0YW1wOmN1cnJlbnRUaW1lKCkg
bGF0aXR1ZGU6bGF0aXR1ZGUgbG9uZ2l0dWRlOmxvbmdpdHVkZSBhY2N1cmFjeTphY2N1cmFjeV07
CisgICAgICAgIHBvc2l0aW9uID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFsbG9jXSBpbml0
V2l0aFRpbWVzdGFtcDpXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRz
KCkgbGF0aXR1ZGU6bGF0aXR1ZGUgbG9uZ2l0dWRlOmxvbmdpdHVkZSBhY2N1cmFjeTphY2N1cmFj
eV07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBn
ZW9sb2NhdGlvblBvc2l0aW9uIHsgY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxvbmdpdHVkZSwg
YWNjdXJhY3kgfTsKKyAgICAgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlvbiBnZW9sb2Nh
dGlvblBvc2l0aW9uIHsgV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25k
cygpLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgICAgICBpZiAocHJvdmlk
ZXNBbHRpdHVkZSkKICAgICAgICAgICAgIGdlb2xvY2F0aW9uUG9zaXRpb24uYWx0aXR1ZGUgPSBh
bHRpdHVkZTsKICAgICAgICAgaWYgKHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCmluZGV4IDBhMzI5YzI4M2Y3Mjg3
MWYxOGRkZmNjYzc1YjNhNTRhNDRlZDIxYjYuLjRlOGQ2ODA0OTAzYzM5MDBjZTNlZjFkYTM1NTJi
NTQ3OGMzMzM2OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Nv
bmRpdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvQ29uZGl0aW9u
LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1ZGUgPHRocmVh
ZD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNp
bmNsdWRlIDx3dGYvTG9jay5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVGhyZWFkR3JvdXAuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvVGhy
ZWFkR3JvdXAuY3BwCmluZGV4IDI5MWEzZjAxOTQ5NTA3MDdjZTZiZGEzNmI3MDhmZDBhZGNkODEw
NzcuLmRhZThlYzI2MmI3OTAxNThiYzZjMWQ3MTY0ZDM3OGFmZmZmYWFlNTMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RocmVhZEdyb3VwLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaHJlYWRHcm91cC5jcHAKQEAgLTI2LDYgKzI2LDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkR3JvdXAuaD4K
ICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9Xb3JrUXVldWUuY3BwCmluZGV4IDVjZjE2NzEwN2Y2YzE0YWNiZDBjNmM5ZTI1ZjY2YzNmMDky
OTkyNTEuLmZhZTVhODMyNTNjMzFlNjRhYjIxMDJlNjVhNGJlYTUxMmEwMzk2ZDcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcApAQCAtMjcsNiArMjcsNyBA
QAogCiAjaW5jbHVkZSAiVGVzdC5oIgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNpbmNs
dWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCmluZGV4IGMwYTkz
NzA1ZGZlNTg0ZTRjZmIyNWExN2NkMzkwYTZkYzY2MDZmZTYuLjZmOTNjYTI3MzAzMGY1Nzc2ZTMx
OGY5ZTQ1NjkwMjJjZWUxNGI5MGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
R2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
R2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAjaW5jbHVkZSA8
V2ViS2l0L1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8c3RyaW5nLmg+CiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKQEAgLTY1LDcgKzY1
LDcgQEAgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6On5HZW9sb2NhdGlvblByb3ZpZGVyTW9jaygp
CiAKIHZvaWQgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBvc2l0aW9uKGRvdWJsZSBsYXRp
dHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3ZpZGVzQWx0
aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNjdXJhY3ksIGRv
dWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91YmxlIGhlYWRp
bmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3ZpZGVzRmxvb3JM
ZXZlbCwgZG91YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgbV9wb3NpdGlvbi5hZG9wdChXS0dlb2xv
Y2F0aW9uUG9zaXRpb25DcmVhdGVfYyhjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwgbG9uZ2l0dWRl
LCBhY2N1cmFjeSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIHByb3ZpZGVzQWx0aXR1ZGVB
Y2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFkaW5nLCBwcm92
aWRlc1NwZWVkLCBzcGVlZCwgcHJvdmlkZXNGbG9vckxldmVsLCBmbG9vckxldmVsKSk7CisgICAg
bV9wb3NpdGlvbi5hZG9wdChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYyhXYWxsVGltZTo6
bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBsb25naXR1ZGUs
IGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlLCBhbHRpdHVkZSwgcHJvdmlkZXNBbHRpdHVkZUFj
Y3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBwcm92aWRlc0hlYWRpbmcsIGhlYWRpbmcsIHByb3Zp
ZGVzU3BlZWQsIHNwZWVkLCBwcm92aWRlc0Zsb29yTGV2ZWwsIGZsb29yTGV2ZWwpKTsKIAogICAg
IG1faGFzRXJyb3IgPSBmYWxzZTsKICAgICBtX2Vycm9yTWVzc2FnZS5jbGVhcigpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggMGM4YzA0MDAyZTE4ODA2MGQwNjc1Y2RkZGJkMmQ0ZWE5MGFiMzYyYS4uNDcwZGRhNzY1
MjM3ZjNhMzdhZjZjMTU1ZTlmN2Y1ZDdlOTllMjc1ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC03ODgsNyArNzg4
LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxl
ZChib29sIGVuYWJsZWQpCiAKIGRvdWJsZSBUZXN0UnVubmVyOjpwcmVjaXNlVGltZSgpCiB7Ci0g
ICAgcmV0dXJuIGN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpub3coKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzZXRVc2Vy
U3R5bGVTaGVldEVuYWJsZWQoYm9vbCBlbmFibGVkKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334496</attachid>
            <date>2018-02-22 18:58:35 -0800</date>
            <delta_ts>2018-02-22 18:58:35 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-183052-20180223115834.patch</filename>
            <type>text/plain</type>
            <size>98195</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4OTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDRkNDlkYjQ5NTAzZWM3MTlhNjBjYmJk
ODU3ZjU1YjRjNDRjNWVhYzYuLjQ5OWZlZmM3ZGI2YzRlYjA3ODU1ODk1Zjc5ZTc4ZDgyY2U2OTVm
MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMzcgQEAKIDIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CiAKKyAgICAgICAgUmVtb3ZlIGN1cnJlbnRUaW1lKCkgLyBjdXJy
ZW50VGltZU1TKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE4MzA1MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggcmVtb3ZlcyBXVEY6OmN1cnJlbnRUaW1lKCkgYW5kIFdURjo6Y3VycmVu
dFRpbWVNUygpLgorICAgICAgICBXZSBoYXZlIGZhbmN5IFdhbGxUaW1lIEFQSXMuIEl0IGhhcyBz
dHJvbmcgdHlwZXMgbGlrZSBXYWxsVGltZSBhbmQgU2Vjb25kcywKKyAgICAgICAgYW5kIHRoaXMg
cmVkdWNlcyB0aGUgY2hhbmNlIG9mIGJ1Z3MgbWl4aW5nIGRvdWJsZXMgd2hpY2ggcmVwcmVzZW50
IG1pbGxpc2Vjb25kcworICAgICAgICBhbmQgc2Vjb25kcy4KKworICAgICAgICAqIHd0Zi9Db25k
aXRpb24uaDoKKyAgICAgICAgKiB3dGYvQ3VycmVudFRpbWUuY3BwOgorICAgICAgICAoV1RGOjpj
dXJyZW50VGltZSk6CisgICAgICAgIChXVEY6OldhbGxUaW1lOjpub3cpOgorICAgICAgICAqIHd0
Zi9DdXJyZW50VGltZS5oOgorICAgICAgICAoV1RGOjpjdXJyZW50VGltZU1TKTogRGVsZXRlZC4K
KyAgICAgICAgKiB3dGYvRGF0ZU1hdGguaDoKKyAgICAgICAgKFdURjo6anNDdXJyZW50VGltZSk6
CisgICAgICAgICogd3RmL1BhcmtpbmdMb3QuY3BwOgorICAgICAgICAoV1RGOjpQYXJraW5nTG90
OjpwYXJrQ29uZGl0aW9uYWxseUltcGwpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmg6CisgICAgICAgICogd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcDoKKyAgICAgICAgKFdU
Rjo6VGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQpOgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmdX
aW4uY3BwOgorICAgICAgICAoV1RGOjpUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdCk6CisgICAg
ICAgIChXVEY6OmFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbCk6CisgICAgICAgICog
d3RmL1dhbGxUaW1lLmNwcDoKKyAgICAgICAgKFdURjo6V2FsbFRpbWU6Om5vdyk6IERlbGV0ZWQu
CisgICAgICAgICogd3RmL1dhbGxUaW1lLmg6CisKKzIwMTgtMDItMjIgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgUmVtb3ZlIHNsZWVwKGRvdWJsZSkg
YW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE2ODdiZDlkZWUz
Zjg3MDgxNzkwODdjYWZjZjY4ODdkMzZjNDUxODUuLjA4MWMwNmI3ZDE3YzgwYWRiZjA1ZTQ0MTY5
ZDhkMWUxNWRkMzk0ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxOC0wMi0yMiAg
WXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1vdmUg
Y3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okdlb2xvY2F0aW9uOjpoYXZlU3VpdGFibGVDYWNoZWRQ
b3NpdGlvbik6CisgICAgICAgICogZG9tL0RPTVRpbWVTdGFtcC5oOgorICAgICAgICAoV2ViQ29y
ZTo6Y29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcCk6CisgICAgICAgICogZmlsZWFwaS9GaWxl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGU6OkZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZTo6bGFzdE1vZGlmaWVkIGNvbnN0KToKKyAgICAgICAgKiBoaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlU2VxdWVuY2VOdW1iZXIpOgorICAgICAg
ICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGVmYXVsdFZhbHVlRm9yU3RlcFVwIGNvbnN0KToK
KyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAgY29uc3QpOgorICAgICAg
ICAqIGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1
dFR5cGU6OmRlZmF1bHRWYWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaHRtbC9UaW1l
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OmRlZmF1bHRW
YWx1ZUZvclN0ZXBVcCBjb25zdCk6CisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0
b3JOZXR3b3JrQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29ya0Fn
ZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yTmV0d29y
a0FnZW50Ojp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAqIGxv
YWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICogbG9hZGVyL0Zvcm1TdWJt
aXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdlbmVyYXRlRm9ybURhdGFJZGVudGlmaWVy
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVMb2FkZXI6OmNsaWVudFJlZGlyZWN0ZWQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAq
IGxvYWRlci9OYXZpZ2F0aW9uU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0hpc3Rvcnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZCk6CisgICAg
ICAgICogcGFnZS9IaXN0b3J5Lmg6CisgICAgICAgICogcGFnZS9QYWdlT3ZlcmxheS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheTo6c3RhcnRGYWRlQW5pbWF0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9QYWdlT3ZlcmxheS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDo6ZHJhd05hdGl2ZUltYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvTGVnYWN5VGlsZUxh
eWVyUG9vbC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1t
OgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6TGVnYWN5VGlsZUxheWVy
UG9vbCk6CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRMYXllcik6
CisgICAgICAgIChXZWJDb3JlOjpMZWdhY3lUaWxlTGF5ZXJQb29sOjpkZWNheWVkQ2FwYWNpdHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGVnYWN5VGlsZUxheWVyUG9vbDo6cHJ1bmUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2lvcy9TeXN0ZW1NZW1vcnlJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c3lzdGVtTWVtb3J5TGV2ZWwpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3VyY2VNYWMubW06CisKIDIwMTgt
MDItMjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFdvcmtl
ckNhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmRvUmVtb3ZlIGNhbiBhc3NlcnQgaW4gY2FzZSB0d28g
ZnJhbWVzIHRyeSB0byBkZWxldGUgdGhlIHNhbWUgY2FjaGUgYXQgdGhlIHNhbWUgdGltZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA0YWZiYzg1NjU0NjgyM2ZiYzg4MTlkNjNmZTEwNzIxNmU1NTdiMWU2Li4yOWRkMzJj
M2VhMGIwMjFmYmQwYzEzZjkzNmU4N2Y0MTE4N2NhY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYx
IEBACiAyMDE4LTAyLTIyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgog
CisgICAgICAgIFJlbW92ZSBjdXJyZW50VGltZSgpIC8gY3VycmVudFRpbWVNUygpCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwNTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZUNhY2hlLmNwcDoKKyAgICAgICAgKiBQbHVnaW5Qcm9j
ZXNzL1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5oOgorICAgICAgICAqIFNoYXJlZC9saW51eC9XZWJNZW1vcnlT
YW1wbGVyTGludXguY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjpzYW1w
bGVXZWJLaXQgY29uc3QpOgorICAgICAgICAqIFNoYXJlZC9tYWMvV2ViTWVtb3J5U2FtcGxlci5t
YWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVdlYktpdCBj
b25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHA6CisgICAgICAg
IChXS0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0Fk
ZGVkQWZ0ZXJUaW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpzZXRJY29uRGF0YUZvckljb25V
UkwpOgorICAgICAgICAoV2ViS2l0OjpJY29uRGF0YWJhc2U6OnN5bmNocm9ub3VzTG9hZERlY2lz
aW9uRm9ySWNvblVSTCk6CisgICAgICAgIChXZWJLaXQ6Okljb25EYXRhYmFzZTo6cGVyZm9ybVVS
TEltcG9ydCk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmV4cGlyYXRpb25UaW1lRnJvbU5vdyk6CisgICAgICAgIChXZWJL
aXQ6OlBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRvU3RhcnRPcmlnaW5IYXNoKToKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OmF1dG9TdGFydE9yaWdpbnNU
YWJsZUNvcHkgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRl
cjo6c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z0luQXV0
b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRyaWVzQWRk
ZWRBZnRlclRpbWUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6
c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QpOgorICAgICAgICAo
V2ViS2l0OjpQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6ZGlkUmVjZWl2ZVVzZXJJbnRlcmFjdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzdGFydE1lbW9yeVNhbXBsZXIpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmlu
Z091dEVudHJpZXNBZGRlZEFmdGVyVGltZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OkluamVjdGVkQnVu
ZGxlOjpQYWdlTG9hZGVyQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQYWdlTG9h
ZGVyQ2xpZW50Ojp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRj
aFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjptX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaCk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsdWdJbkRpZFN0YXJ0RnJvbU9y
aWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmRpZEFkZFBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2gpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1
dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
OjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3M6OnBsdWdJbkRpZFJlY2VpdmVVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bToKKyAgICAgICAgKiBXZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHA6CisKKzIw
MTgtMDItMjIgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAg
ICAgUmVtb3ZlIHNsZWVwKGRvdWJsZSkgYW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDhjYjRhYzU4NDBhOTYyMDk0NjEyYjk0NTA4
NWRlYzY3NTU5MzRmMDQuLmJiMDVlMGFhNDNlNWM4MjQzZTFlY2VhN2M5NTE1NWM3NDVkN2MxOTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wMi0y
MiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAgICAgICBSZW1v
dmUgY3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
Lm1tOgorICAgICAgICAoV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1D
bGllbnRSZWRpcmVjdCk6CisKIDIwMTgtMDItMTYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFsbG93IHNwZWNpZnlpbmcgd2hpY2ggcGx1Zy1pbnMgYXJlIHN1
cHBvcnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDhkZWRiYjZiNmE1ZjhjNTg4
NGQ3MzJiM2UxMTdiODU0MDExMjJiYmIuLmU5NzI3NjY4ZDcwM2VjMjI4ZWY2MjE2NzA3M2NjYWVl
MzBlYTg0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxOC0wMi0yMiAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KKworICAg
ICAgICBSZW1vdmUgY3VycmVudFRpbWUoKSAvIGN1cnJlbnRUaW1lTVMoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzMDUyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlz
cGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYkRvd25sb2FkLmg6CisgICAg
ICAgICogV2ViRG93bmxvYWRDRk5ldC5jcHA6CisgICAgICAgIChXZWJEb3dubG9hZDo6ZGlkU3Rh
cnQpOgorICAgICAgICAoV2ViRG93bmxvYWQ6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdl
YkRvd25sb2FkOjpkaWRGaW5pc2gpOgorCiAyMDE4LTAyLTIxICBEb24gT2xtc3RlYWQgIDxkb24u
b2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXVtXaW5dIFVzZSBjbWFrZWNvbmZp
Zy5oIHJhdGhlciB0aGFuIGNvbmZpZy5oIGFuZCBQbGF0Zm9ybS5oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9Db25kaXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCmluZGV4
IGY1MzM2ODk1ZDQ4YTNmYzk2YTY4YjRlMDc4M2VlNTBlNjhhOWJjMjAuLjUxMmYxMGYyYWQ1M2Nh
ZWJhODA3OWQ2MDZmNjc2Y2M5ZmMyYzBlZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nv
bmRpdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbmRpdGlvbi5oCkBAIC0yNiw3ICsyNiw2
IEBACiAjaWZuZGVmIFdURl9Db25kaXRpb25faAogI2RlZmluZSBXVEZfQ29uZGl0aW9uX2gKIAot
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgogI2luY2x1ZGUgPHd0Zi9QYXJraW5nTG90Lmg+CiAjaW5jbHVkZSA8d3RmL1RpbWVXaXRoRHlu
YW1pY0Nsb2NrVHlwZS5oPgpAQCAtMzYsMTEgKzM1LDExIEBAIG5hbWVzcGFjZSBXVEYgewogLy8g
VGhpcyBpcyBhIGNvbmRpdGlvbiB2YXJpYWJsZSB0aGF0IGlzIHN1aXRhYmxlIGZvciB1c2Ugd2l0
aCBhbnkgbG9jay1saWtlIG9iamVjdCwgaW5jbHVkaW5nCiAvLyBvdXIgb3duIFdURjo6TG9jay4g
SXQgZmVhdHVyZXMgc3RhbmRhcmQgd2FpdCgpL25vdGlmeU9uZSgpL25vdGlmeUFsbCgpIG1ldGhv
ZHMgaW4gYWRkaXRpb24gdG8KIC8vIGEgdmFyaWV0eSBvZiB3YWl0LXdpdGgtdGltZW91dCBtZXRo
b2RzLiBUaGlzIGluY2x1ZGVzIG1ldGhvZHMgdGhhdCB1c2UgV1RGJ3Mgb3duIG5vdGlvbiBvZgot
Ly8gdGltZSwgbGlrZSB3YWxsLWNsb2NrIHRpbWUgKGkuZS4gY3VycmVudFRpbWUoKSkgYW5kIG1v
bm90b25pYyB0aW1lIChpLmUuCi0vLyBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSkuIFRo
aXMgaXMgYSB2ZXJ5IGVmZmljaWVudCBjb25kaXRpb24gdmFyaWFibGUuIEl0IG9ubHkgcmVxdWly
ZXMKLS8vIG9uZSBieXRlIG9mIG1lbW9yeS4gbm90aWZ5T25lKCkgYW5kIG5vdGlmeUFsbCgpIHJl
cXVpcmUganVzdCBhIGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QKLS8vIGNhc2Ugd2hlcmUg
bm8gdGhyZWFkIGlzIHdhaXRpbmcuIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3aGVuIHVzZWQg
d2l0aCBXVEY6OkxvY2ssIGNhbgotLy8gb3V0cGVyZm9ybSBhIHN5c3RlbSBjb25kaXRpb24gdmFy
aWFibGUgYW5kIGxvY2sgYnkgdXAgdG8gNTh4LgorLy8gdGltZSwgbGlrZSB3YWxsLWNsb2NrIHRp
bWUgKGkuZS4gV2FsbFRpbWUpIGFuZCBtb25vdG9uaWMgdGltZSAoaS5lLiBNb25vdG9uaWNUaW1l
KS4gVGhpcyBpcworLy8gYSB2ZXJ5IGVmZmljaWVudCBjb25kaXRpb24gdmFyaWFibGUuIEl0IG9u
bHkgcmVxdWlyZXMgb25lIGJ5dGUgb2YgbWVtb3J5LiBub3RpZnlPbmUoKSBhbmQKKy8vIG5vdGlm
eUFsbCgpIHJlcXVpcmUganVzdCBhIGxvYWQgYW5kIGJyYW5jaCBmb3IgdGhlIGZhc3QgY2FzZSB3
aGVyZSBubyB0aHJlYWQgaXMgd2FpdGluZy4KKy8vIFRoaXMgY29uZGl0aW9uIHZhcmlhYmxlLCB3
aGVuIHVzZWQgd2l0aCBXVEY6OkxvY2ssIGNhbiBvdXRwZXJmb3JtIGEgc3lzdGVtIGNvbmRpdGlv
biB2YXJpYWJsZQorLy8gYW5kIGxvY2sgYnkgdXAgdG8gNTh4LgogY2xhc3MgQ29uZGl0aW9uIHsK
ICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb25kaXRpb24pOwogcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvQ3VycmVudFRpbWUuY3BwIGIvU291cmNlL1dURi93dGYvQ3VycmVu
dFRpbWUuY3BwCmluZGV4IGI4OThjYmQyNzUzN2Q2NTAzNDZiMjE2OTIzZWE1NjBjNzg1MGQwYWEu
LjhhYmMyZmYyNWUwZTFjNTIzZTgyZmUwZTQyNDg2YWE3ZDcxYTBkMjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL0N1cnJlbnRUaW1lLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50
VGltZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJDdXJyZW50VGltZS5oIgogI2luY2x1ZGUgIk1vbm90b25pY1RpbWUuaCIKKyNpbmNsdWRlICJX
YWxsVGltZS5oIgogCiAjaW5jbHVkZSAiQ29uZGl0aW9uLmgiCiAjaW5jbHVkZSAiTG9jay5oIgpA
QCAtMTUxLDcgKzE1Miw3IEBAIHN0YXRpYyBib29sIHFwY0F2YWlsYWJsZSgpCiAgICAgcmV0dXJu
IGF2YWlsYWJsZTsKIH0KIAotZG91YmxlIGN1cnJlbnRUaW1lKCkKK3N0YXRpYyBpbmxpbmUgZG91
YmxlIGN1cnJlbnRUaW1lKCkKIHsKICAgICAvLyBVc2UgYSBjb21iaW5hdGlvbiBvZiBmdGltZSBh
bmQgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIuCiAgICAgLy8gZnRpbWUgcmV0dXJucyB0aGUgaW5m
b3JtYXRpb24gd2Ugd2FudCwgYnV0IGRvZXNuJ3QgaGF2ZSBzdWZmaWNpZW50IHJlc29sdXRpb24u
CkBAIC0xOTYsNyArMTk3LDcgQEAgZG91YmxlIGN1cnJlbnRUaW1lKCkKIAogI2Vsc2UKIAotZG91
YmxlIGN1cnJlbnRUaW1lKCkKK3N0YXRpYyBpbmxpbmUgZG91YmxlIGN1cnJlbnRUaW1lKCkKIHsK
ICAgICBzdGF0aWMgYm9vbCBpbml0ID0gZmFsc2U7CiAgICAgc3RhdGljIGRvdWJsZSBsYXN0VGlt
ZTsKQEAgLTIyNiw3ICsyMjcsNyBAQCBkb3VibGUgY3VycmVudFRpbWUoKQogLy8gYmV0dGVyIGFj
Y3VyYWN5IGNvbXBhcmVkIHdpdGggV2luZG93cyBpbXBsZW1lbnRhdGlvbiBvZiBnX2dldF9jdXJy
ZW50X3RpbWU6CiAvLyAoaHR0cDovL3d3dy5nb29nbGUuY29tL2NvZGVzZWFyY2gvcD9obD1lbiNI
SG5OUmprczF0MC9nbGliLTIuNS4yL2dsaWIvZ21haW4uYyZxPWdfZ2V0X2N1cnJlbnRfdGltZSku
CiAvLyBOb24tV2luZG93cyBHVEsgYnVpbGRzIGNvdWxkIHVzZSBnZXR0aW1lb2ZkYXkoKSBkaXJl
Y3RseSBidXQgZm9yIHRoZSBzYWtlIG9mIGNvbnNpc3RlbmN5IGxldHMgdXNlIEdUSyBmdW5jdGlv
bi4KLWRvdWJsZSBjdXJyZW50VGltZSgpCitzdGF0aWMgaW5saW5lIGRvdWJsZSBjdXJyZW50VGlt
ZSgpCiB7CiAgICAgR1RpbWVWYWwgbm93OwogICAgIGdfZ2V0X2N1cnJlbnRfdGltZSgmbm93KTsK
QEAgLTIzNSw3ICsyMzYsNyBAQCBkb3VibGUgY3VycmVudFRpbWUoKQogCiAjZWxzZQogCi1kb3Vi
bGUgY3VycmVudFRpbWUoKQorc3RhdGljIGlubGluZSBkb3VibGUgY3VycmVudFRpbWUoKQogewog
ICAgIHN0cnVjdCB0aW1ldmFsIG5vdzsKICAgICBnZXR0aW1lb2ZkYXkoJm5vdywgMCk7CkBAIC0y
NDQsNiArMjQ1LDExIEBAIGRvdWJsZSBjdXJyZW50VGltZSgpCiAKICNlbmRpZgogCitXYWxsVGlt
ZSBXYWxsVGltZTo6bm93KCkKK3sKKyAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoY3VycmVudFRp
bWUoKSk7Cit9CisKICNpZiBVU0UoR0xJQikKIAogZG91YmxlIG1vbm90b25pY2FsbHlJbmNyZWFz
aW5nVGltZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5oIGIvU291
cmNlL1dURi93dGYvQ3VycmVudFRpbWUuaAppbmRleCBhZWVhNzBmMzE0MTBlMWY2ZmJmNGM5MDI4
ZjQzMTA3MWI4NTliMjMzLi5iM2U2YzE0NmQxY2E0MDdhOTI5NzVkNDcyNTZmNjlmZDYwOTI4YmI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DdXJyZW50VGltZS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL0N1cnJlbnRUaW1lLmgKQEAgLTM3LDE5ICszNyw2IEBACiAKIG5hbWVzcGFjZSBXVEYg
ewogCi0vLyBSZXR1cm5zIHRoZSBjdXJyZW50IFVUQyB0aW1lIGluIHNlY29uZHMsIGNvdW50ZWQg
ZnJvbSBKYW51YXJ5IDEsIDE5NzAuCi0vLyBQcmVjaXNpb24gdmFyaWVzIGRlcGVuZGluZyBvbiBw
bGF0Zm9ybSBidXQgaXMgdXN1YWxseSBhcyBnb29kIG9yIGJldHRlcgotLy8gdGhhbiBhIG1pbGxp
c2Vjb25kLgotLy8gVXNlIHRoaXMgZnVuY3Rpb24gb25seSBpZiB3YWxsIGNsb2NrIHRpbWUgaXMg
bmVlZGVkLiBGb3IgZWxhcHNlZCB0aW1lCi0vLyBtZWFzdXJlbWVudCB1c2UgbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkgaW5zdGVhZC4KLVdURl9FWFBPUlRfUFJJVkFURSBkb3VibGUgY3Vy
cmVudFRpbWUoKTsKLQotLy8gU2FtZSB0aGluZywgaW4gbWlsbGlzZWNvbmRzLgotaW5saW5lIGRv
dWJsZSBjdXJyZW50VGltZU1TKCkKLXsKLSAgICByZXR1cm4gY3VycmVudFRpbWUoKSAqIDEwMDAu
MDsKLX0KLQogLy8gUHJvdmlkZXMgYSBtb25vdG9uaWNhbGx5IGluY3JlYXNpbmcgdGltZSBpbiBz
ZWNvbmRzIHNpbmNlIGFuIGFyYml0cmFyeSBwb2ludCBpbiB0aGUgcGFzdC4KIC8vIE9uIHVuc3Vw
cG9ydGVkIHBsYXRmb3JtcywgdGhpcyBmdW5jdGlvbiBvbmx5IGd1YXJhbnRlZXMgdGhlIHJlc3Vs
dCB3aWxsIGJlIG5vbi1kZWNyZWFzaW5nLgogLy8gUmVzdWx0IG9mIHRoaXMgZnVuY3Rpb24gaW5j
cmVhc2VzIG1vbm90b25pY2FsbHkgZXZlbiB3aGVuIGNsb2NrIHRpbWUgZ29lcyBiYWNrIGR1ZSB0
bwpAQCAtNzEsOCArNTgsNiBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzbGVlcChTZWNvbmRz
KTsKIH0gLy8gbmFtZXNwYWNlIFdURgogCiB1c2luZyBXVEY6OmN1cnJlbnRDUFVUaW1lOwotdXNp
bmcgV1RGOjpjdXJyZW50VGltZTsKLXVzaW5nIFdURjo6Y3VycmVudFRpbWVNUzsKIHVzaW5nIFdU
Rjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lOwogdXNpbmcgV1RGOjptb25vdG9uaWNhbGx5
SW5jcmVhc2luZ1RpbWVNUzsKIHVzaW5nIFdURjo6c2xlZXA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9EYXRlTWF0aC5oIGIvU291cmNlL1dURi93dGYvRGF0ZU1hdGguaAppbmRleCBhZmZi
NTU4NjkxNGNlMzY1ZTRhOWFhYTMwYzU3OGY1MTcyY2ExYWI2Li4zZTI5MTY2ZmZlYmNjNTczOTJi
MmNlMTdiZWFmYTA3NzIwMzllZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9EYXRlTWF0
aC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0RhdGVNYXRoLmgKQEAgLTQ3LDcgKzQ3LDcgQEAKICNp
bmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KICNpbmNsdWRlIDx0aW1lLmg+
Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAt
OTgsNyArOTgsNyBAQCBTdHJpbmcgbWFrZVJGQzI4MjJEYXRlU3RyaW5nKHVuc2lnbmVkIGRheU9m
V2VlaywgdW5zaWduZWQgZGF5LCB1bnNpZ25lZCBtb250aCwgdQogaW5saW5lIGRvdWJsZSBqc0N1
cnJlbnRUaW1lKCkKIHsKICAgICAvLyBKYXZhU2NyaXB0IGRvZXNuJ3QgcmVjb2duaXplIGZyYWN0
aW9ucyBvZiBhIG1pbGxpc2Vjb25kLgotICAgIHJldHVybiBmbG9vcihXVEY6OmN1cnJlbnRUaW1l
TVMoKSk7CisgICAgcmV0dXJuIGZsb29yKFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9j
aCgpLm1pbGxpc2Vjb25kcygpKTsKIH0KIAogY29uc3QgY2hhciogY29uc3Qgd2Vla2RheU5hbWVb
N10gPSB7ICJNb24iLCAiVHVlIiwgIldlZCIsICJUaHUiLCAiRnJpIiwgIlNhdCIsICJTdW4iIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QYXJraW5nTG90LmNwcCBiL1NvdXJjZS9XVEYv
d3RmL1BhcmtpbmdMb3QuY3BwCmluZGV4IGIxNGQ3YTJjZGVkOGY1ZWQzZDM0MDJmNzg4MGQzNzE2
MjY4OWU4YjguLjhhNWVjOGQxMWQwNDM5ODQ0ZTE5MDc3ZjczODMxYTZlZTQ4N2U1OTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmtpbmdMb3QuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1BhcmtpbmdMb3QuY3BwCkBAIC01OTUsNyArNTk1LDcgQEAgTkVWRVJfSU5MSU5FIFBhcmtpbmdM
b3Q6OlBhcmtSZXN1bHQgUGFya2luZ0xvdDo6cGFya0NvbmRpdGlvbmFsbHlJbXBsKAogICAgICAg
ICBNdXRleExvY2tlciBsb2NrZXIobWUtPnBhcmtpbmdMb2NrKTsKICAgICAgICAgd2hpbGUgKG1l
LT5hZGRyZXNzICYmIHRpbWVvdXQubm93V2l0aFNhbWVDbG9jaygpIDwgdGltZW91dCkgewogICAg
ICAgICAgICAgbWUtPnBhcmtpbmdDb25kaXRpb24udGltZWRXYWl0KAotICAgICAgICAgICAgICAg
IG1lLT5wYXJraW5nTG9jaywgdGltZW91dC5hcHByb3hpbWF0ZVdhbGxUaW1lKCkuc2Vjb25kc1Np
bmNlRXBvY2goKS52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICBtZS0+cGFya2luZ0xvY2ssIHRp
bWVvdXQuYXBwcm94aW1hdGVXYWxsVGltZSgpKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAg
Ly8gSXQncyBwb3NzaWJsZSBmb3IgdGhlIE9TIHRvIGRlY2lkZSBub3QgdG8gd2FpdC4gSWYgaXQg
ZG9lcyB0aGF0IHRoZW4gaXQgd2lsbCBhbHNvCiAgICAgICAgICAgICAvLyBkZWNpZGUgbm90IHRv
IHJlbGVhc2UgdGhlIGxvY2suIElmIHRoZXJlJ3MgYSBidWcgaW4gdGhlIHRpbWUgbWF0aCwgdGhl
biB0aGlzIGNvdWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRp
dmVzLmggYi9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmgKaW5kZXggNGFjZTI4
ZjFmNTlmODg2OTcwOTEwMDhhMGEwYjEyMDEwYzk3NjJjMS4uMjhmNDc5YmU2NTNkYjM5NTA4ZmMz
ZGNjMzJiNGE5NmI5NjhiZGNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVGhyZWFkaW5n
UHJpbWl0aXZlcy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1ByaW1pdGl2ZXMuaApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2tlci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi9XYWxsVGltZS5oPgogCiAjaWYgT1MoV0lORE9XUykKICNpbmNsdWRlIDx3aW5kb3dzLmg+CkBA
IC0xMDAsOCArMTAxLDcgQEAgY2xhc3MgVGhyZWFkQ29uZGl0aW9uIHsKICAgICAKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCB3YWl0KE11dGV4JiBtdXRleCk7CiAgICAgLy8gUmV0dXJucyB0
cnVlIGlmIHRoZSBjb25kaXRpb24gd2FzIHNpZ25hbGVkIGJlZm9yZSBhYnNvbHV0ZVRpbWUsIGZh
bHNlIGlmIHRoZSBhYnNvbHV0ZVRpbWUgd2FzIHJlYWNoZWQgb3IgaXMgaW4gdGhlIHBhc3QuCi0g
ICAgLy8gVGhlIGFic29sdXRlVGltZSBpcyBpbiBzZWNvbmRzLCBzdGFydGluZyBvbiBKYW51YXJ5
IDEsIDE5NzAuIFRoZSB0aW1lIGlzIGFzc3VtZWQgdG8gdXNlIHRoZSBzYW1lIHRpbWUgem9uZSBh
cyBXVEY6OmN1cnJlbnRUaW1lKCkuCi0gICAgV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgdGltZWRX
YWl0KE11dGV4JiwgZG91YmxlIGFic29sdXRlVGltZSk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRF
IGJvb2wgdGltZWRXYWl0KE11dGV4JiwgV2FsbFRpbWUgYWJzb2x1dGVUaW1lKTsKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBzaWduYWwoKTsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9p
ZCBicm9hZGNhc3QoKTsKICAgICAKQEAgLTExMCw5ICsxMTAsOCBAQCBjbGFzcyBUaHJlYWRDb25k
aXRpb24gewogfTsKIAogI2lmIE9TKFdJTkRPV1MpCi0vLyBUaGUgYWJzb2x1dGVUaW1lIGlzIGlu
IHNlY29uZHMsIHN0YXJ0aW5nIG9uIEphbnVhcnkgMSwgMTk3MC4gVGhlIHRpbWUgaXMgYXNzdW1l
ZCB0byB1c2UgdGhlIHNhbWUgdGltZSB6b25lIGFzIFdURjo6Y3VycmVudFRpbWUoKS4KIC8vIFJl
dHVybnMgYW4gaW50ZXJ2YWwgaW4gbWlsbGlzZWNvbmRzIHN1aXRhYmxlIGZvciBwYXNzaW5nIHRv
IG9uZSBvZiB0aGUgV2luMzIgd2FpdCBmdW5jdGlvbnMgKGUuZy4sIDo6V2FpdEZvclNpbmdsZU9i
amVjdCkuCi1XVEZfRVhQT1JUX1BSSVZBVEUgRFdPUkQgYWJzb2x1dGVUaW1lVG9XYWl0VGltZW91
dEludGVydmFsKGRvdWJsZSBhYnNvbHV0ZVRpbWUpOworV1RGX0VYUE9SVF9QUklWQVRFIERXT1JE
IGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRlcnZhbChXYWxsVGltZSBhYnNvbHV0ZVRpbWUp
OwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvVGhyZWFkaW5nUHRocmVhZHMuY3BwIGIvU291cmNlL1dURi93dGYvVGhyZWFkaW5nUHRocmVh
ZHMuY3BwCmluZGV4IGIyY2E3N2RlOWUzYTYxNWJjMmEzYzE2ZDU3Y2IxOTAwZWE5Mzg2MTAuLmEx
MDU5NGJmNDExMmZiODU5OGFmY2Q0OTMxZmMyNTdmNjQ0MGI3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1RocmVhZGluZ1B0aHJlYWRzLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9UaHJl
YWRpbmdQdGhyZWFkcy5jcHAKQEAgLTU0OSwxOCArNTQ5LDIwIEBAIHZvaWQgVGhyZWFkQ29uZGl0
aW9uOjp3YWl0KE11dGV4JiBtdXRleCkKICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgIXJlc3Vs
dCk7CiB9CiAKLWJvb2wgVGhyZWFkQ29uZGl0aW9uOjp0aW1lZFdhaXQoTXV0ZXgmIG11dGV4LCBk
b3VibGUgYWJzb2x1dGVUaW1lKQorYm9vbCBUaHJlYWRDb25kaXRpb246OnRpbWVkV2FpdChNdXRl
eCYgbXV0ZXgsIFdhbGxUaW1lIGFic29sdXRlVGltZSkKIHsKLSAgICBpZiAoYWJzb2x1dGVUaW1l
IDwgY3VycmVudFRpbWUoKSkKKyAgICBpZiAoYWJzb2x1dGVUaW1lIDwgV2FsbFRpbWU6Om5vdygp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoYWJzb2x1dGVUaW1lID4gSU5UX01B
WCkgeworICAgIGlmIChhYnNvbHV0ZVRpbWUgPiBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoSU5U
X01BWCkpIHsKICAgICAgICAgd2FpdChtdXRleCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIGludCB0aW1lU2Vjb25kcyA9IHN0YXRpY19jYXN0PGludD4oYWJzb2x1dGVUaW1l
KTsKLSAgICBpbnQgdGltZU5hbm9zZWNvbmRzID0gc3RhdGljX2Nhc3Q8aW50PigoYWJzb2x1dGVU
aW1lIC0gdGltZVNlY29uZHMpICogMUU5KTsKKyAgICBkb3VibGUgcmF3U2Vjb25kcyA9IGFic29s
dXRlVGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCk7CisKKyAgICBpbnQgdGltZVNlY29u
ZHMgPSBzdGF0aWNfY2FzdDxpbnQ+KHJhd1NlY29uZHMpOworICAgIGludCB0aW1lTmFub3NlY29u
ZHMgPSBzdGF0aWNfY2FzdDxpbnQ+KChyYXdTZWNvbmRzIC0gdGltZVNlY29uZHMpICogMUU5KTsK
IAogICAgIHRpbWVzcGVjIHRhcmdldFRpbWU7CiAgICAgdGFyZ2V0VGltZS50dl9zZWMgPSB0aW1l
U2Vjb25kczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9UaHJlYWRpbmdXaW4uY3BwCmluZGV4IGE1ZGJiZGVkYjQ5YmM1NjRmNDhm
YTg1NzQzZmIzM2ZmODdmM2U1Y2EuLjRhNTU0NDNkN2RhYjY0OGI4NTk2NWMzOGJlZGJiZmQwMTZh
MmZkNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvVGhyZWFkaW5nV2luLmNwcApAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQg
VGhyZWFkQ29uZGl0aW9uOjp3YWl0KE11dGV4JiBtdXRleCkKICAgICBtX2NvbmRpdGlvbi50aW1l
ZFdhaXQobXV0ZXguaW1wbCgpLCBJTkZJTklURSk7CiB9CiAKLWJvb2wgVGhyZWFkQ29uZGl0aW9u
Ojp0aW1lZFdhaXQoTXV0ZXgmIG11dGV4LCBkb3VibGUgYWJzb2x1dGVUaW1lKQorYm9vbCBUaHJl
YWRDb25kaXRpb246OnRpbWVkV2FpdChNdXRleCYgbXV0ZXgsIFdhbGxUaW1lIGFic29sdXRlVGlt
ZSkKIHsKICAgICBEV09SRCBpbnRlcnZhbCA9IGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJbnRl
cnZhbChhYnNvbHV0ZVRpbWUpOwogCkBAIC01NzUsMTkgKzU3NSwxOSBAQCB2b2lkIFRocmVhZENv
bmRpdGlvbjo6YnJvYWRjYXN0KCkKICAgICBtX2NvbmRpdGlvbi5zaWduYWwodHJ1ZSk7IC8vIFVu
YmxvY2sgYWxsIHRocmVhZHMuCiB9CiAKLURXT1JEIGFic29sdXRlVGltZVRvV2FpdFRpbWVvdXRJ
bnRlcnZhbChkb3VibGUgYWJzb2x1dGVUaW1lKQorRFdPUkQgYWJzb2x1dGVUaW1lVG9XYWl0VGlt
ZW91dEludGVydmFsKFdhbGxUaW1lIGFic29sdXRlVGltZSkKIHsKLSAgICBkb3VibGUgY3VycmVu
dFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CisgICAgV2FsbFRpbWUgY3VycmVudFRpbWUgPSBX
YWxsVGltZTo6bm93KCk7CiAKICAgICAvLyBUaW1lIGlzIGluIHRoZSBwYXN0IC0gcmV0dXJuIGlt
bWVkaWF0ZWx5LgogICAgIGlmIChhYnNvbHV0ZVRpbWUgPCBjdXJyZW50VGltZSkKICAgICAgICAg
cmV0dXJuIDA7CiAKICAgICAvLyBUaW1lIGlzIHRvbyBmYXIgaW4gdGhlIGZ1dHVyZSAoYW5kIHdv
dWxkIG92ZXJmbG93IHVuc2lnbmVkIGxvbmcpIC0gd2FpdCBmb3JldmVyLgotICAgIGlmIChhYnNv
bHV0ZVRpbWUgLSBjdXJyZW50VGltZSA+IHN0YXRpY19jYXN0PGRvdWJsZT4oSU5UX01BWCkgLyAx
MDAwLjApCisgICAgaWYgKChhYnNvbHV0ZVRpbWUgLSBjdXJyZW50VGltZSkgPiBTZWNvbmRzOjpm
cm9tTWlsbGlzZWNvbmRzKElOVF9NQVgpKQogICAgICAgICByZXR1cm4gSU5GSU5JVEU7CiAKLSAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8RFdPUkQ+KChhYnNvbHV0ZVRpbWUgLSBjdXJyZW50VGltZSkg
KiAxMDAwLjApOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEV09SRD4oKGFic29sdXRlVGltZSAt
IGN1cnJlbnRUaW1lKS5taWxsaXNlY29uZHMoKSk7CiB9CiAKIC8vIFJlbW92ZSB0aGlzIHdvcmth
cm91bmQgY29kZSB3aGVuIDxyZGFyOi8vcHJvYmxlbS8zMTc5MzIxMz4gaXMgZml4ZWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9XYWxsVGltZS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9XYWxs
VGltZS5jcHAKaW5kZXggMTYyMmFiM2M2YzIzZGZlMGIzY2RhZmIyYmQ3YjZjMjRlOTllM2U3ZC4u
YjdiYzlkYjBiYzc3MmQzMjJhYTk2NGMzMDcxNDRjOGNmYzA5ODRmNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvV2FsbFRpbWUuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmNw
cApAQCAtMjYsMTggKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2Fs
bFRpbWUuaCIKIAotI2luY2x1ZGUgIkN1cnJlbnRUaW1lLmgiCiAjaW5jbHVkZSAiTW9ub3Rvbmlj
VGltZS5oIgogI2luY2x1ZGUgIlByaW50U3RyZWFtLmgiCiAjaW5jbHVkZSAiVGltZVdpdGhEeW5h
bWljQ2xvY2tUeXBlLmgiCiAKIG5hbWVzcGFjZSBXVEYgewogCi1XYWxsVGltZSBXYWxsVGltZTo6
bm93KCkKLXsKLSAgICByZXR1cm4gZnJvbVJhd1NlY29uZHMoY3VycmVudFRpbWUoKSk7Ci19Ci0K
IE1vbm90b25pY1RpbWUgV2FsbFRpbWU6OmFwcHJveGltYXRlTW9ub3RvbmljVGltZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuICp0aGlzIC0gbm93KCkgKyBNb25vdG9uaWNUaW1lOjpub3coKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dhbGxUaW1lLmggYi9Tb3VyY2UvV1RGL3d0Zi9XYWxs
VGltZS5oCmluZGV4IDkwYWEwOTFkMmU3YWZkOTNmNzM0YmVlZTg1M2Q3MjU4ZDg4MDY5OWMuLmJm
NjYyMDEwOTBmMzMxZmZmZWI2YTc2NTJmNDEzZjM1YTllMjlkZjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1dhbGxUaW1lLmgKKysrIGIvU291cmNlL1dURi93dGYvV2FsbFRpbWUuaApAQCAt
MzcsOCArMzcsOCBAQCBjbGFzcyBQcmludFN0cmVhbTsKIC8vIFRoZSBjdXJyZW50IHRpbWUgYWNj
b3JkaW5nIHRvIGEgd2FsbCBjbG9jayAoYWthIHJlYWwgdGltZSBjbG9jaykuIFRoaXMgdXNlcyBm
bG9hdGluZyBwb2ludAogLy8gaW50ZXJuYWxseSBzbyB0aGF0IHlvdSBjYW4gcmVhc29uIGFib3V0
IGluZmluaXR5IGFuZCBvdGhlciB0aGluZ3MgdGhhdCBhcmlzZSBpbiBtYXRoLiBJdCdzCiAvLyBh
Y2NlcHRhYmxlIHRvIHVzZSB0aGlzIHRvIHdyYXAgTmFOIHRpbWVzLCBuZWdhdGl2ZSB0aW1lcywg
YW5kIGluZmluaXRlIHRpbWVzLCBzbyBsb25nIGFzIHRoZXkKLS8vIGFyZSByZWxhdGl2ZSB0byB0
aGUgc2FtZSBjbG9jay4gU3BlY2lmaWNhbGx5LCBXYWxsVGltZSBzaG91bGQgYmUgdXNlZCBpbiBh
Z3JlZW1lbnQgd2l0aCB0aGUKLS8vIHByaW5jaXBsZSB0aGF0IFdhbGxUaW1lOjpub3coKS5zZWNv
bmRzU2luY2VFcG9jaCgpLnZhbHVlKCkgaXMgdGhlIHNhbWUgYXMgV1RGOjpjdXJyZW50VGltZSgp
LgorLy8gYXJlIHJlbGF0aXZlIHRvIHRoZSBzYW1lIGNsb2NrLiBVc2UgdGhpcyBvbmx5IGlmIHdh
bGwgY2xvY2sgdGltZSBpcyBuZWVkZWQuIEZvciBlbGFwc2VkIHRpbWUKKy8vIG1lYXN1cmVtZW50
IHVzZSBNb25vdG9uaWNUaW1lIGluc3RlYWQuCiBjbGFzcyBXYWxsVGltZSB7CiBwdWJsaWM6CiAg
ICAgc3RhdGljIGNvbnN0IENsb2NrVHlwZSBjbG9ja1R5cGUgPSBDbG9ja1R5cGU6OldhbGw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0dlb2xvY2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3Bw
CmluZGV4IGRiZWVkZjFkMDk3MjkyNTZiMDIwZGNlNmQ3OWVlNjYwMjUzYjA3ZTQuLjY4ZjVhODEx
NDk5ZjgxNDg0MTk5MjE5MWMzMmJmZDFiNjUyYzNlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vR2VvbG9jYXRpb24uY3BwCkBAIC00NjgsNyArNDY4LDcg
QEAgYm9vbCBHZW9sb2NhdGlvbjo6aGF2ZVN1aXRhYmxlQ2FjaGVkUG9zaXRpb24oY29uc3QgUG9z
aXRpb25PcHRpb25zJiBvcHRpb25zKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFv
cHRpb25zLm1heGltdW1BZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBET01UaW1lU3Rh
bXAgY3VycmVudFRpbWVNaWxsaXMgPSBjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKGN1cnJl
bnRUaW1lKCkpOworICAgIERPTVRpbWVTdGFtcCBjdXJyZW50VGltZU1pbGxpcyA9IGNvbnZlcnRT
ZWNvbmRzVG9ET01UaW1lU3RhbXAoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkp
OwogICAgIHJldHVybiBjYWNoZWRQb3NpdGlvbi0+dGltZXN0YW1wKCkgPiBjdXJyZW50VGltZU1p
bGxpcyAtIG9wdGlvbnMubWF4aW11bUFnZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RPTVRpbWVTdGFtcC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVRpbWVTdGFtcC5o
CmluZGV4IGVlMjE4NzVhOTRkODdlOTNkOWM4Yzg4MjQ0ZDZiMDg2ZGQ0MjJjYjYuLjg5ZjRjYmY5
N2M4NTExMjkyZDEyNTcwZjFhZWY3ZDM5ZDliNWQ1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9ET01UaW1lU3RhbXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NVGltZVN0
YW1wLmgKQEAgLTMwLDYgKzMwLDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlIDx3dGYv
U2Vjb25kcy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgdW5zaWduZWQgbG9u
ZyBsb25nIERPTVRpbWVTdGFtcDsKQEAgLTM5LDYgKzQxLDExIEBAIGlubGluZSBET01UaW1lU3Rh
bXAgY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChkb3VibGUgc2Vjb25kcykKICAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RE9NVGltZVN0YW1wPihzZWNvbmRzICogMTAwMC4wKTsKIH0KIAoraW5s
aW5lIERPTVRpbWVTdGFtcCBjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKFNlY29uZHMgc2Vj
b25kcykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NVGltZVN0YW1wPihzZWNvbmRzLm1p
bGxpc2Vjb25kcygpKTsKK30KKwogaW5saW5lIGRvdWJsZSBjb252ZXJ0RE9NVGltZVN0YW1wVG9T
ZWNvbmRzKERPTVRpbWVTdGFtcCBtaWxsaXNlY29uZHMpCiB7CiAgICAgcmV0dXJuIG1pbGxpc2Vj
b25kcyAvIDEwMDAuMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGUuY3BwCmluZGV4IDAyNjFhMGZkMDAyYTNl
ZmIxNjliZjJiMDc5MjVjZTk2MDUzM2IxYTguLmFkMTBiZGNlYTZkYjRiNGI0YWU3ZDY1N2UzZjk2
NGQxYmZhN2EzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlLmNwcApAQCAtODEsNyArODEsNyBAQCBz
dGF0aWMgQmxvYlByb3BlcnR5QmFnIGNvbnZlcnRQcm9wZXJ0eUJhZyhjb25zdCBGaWxlOjpQcm9w
ZXJ0eUJhZyYgaW5pdGlhbEJhZykKIEZpbGU6OkZpbGUoVmVjdG9yPEJsb2JQYXJ0VmFyaWFudD4m
JiBibG9iUGFydFZhcmlhbnRzLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBQcm9wZXJ0
eUJhZyYgcHJvcGVydHlCYWcpCiAgICAgOiBCbG9iKFdURk1vdmUoYmxvYlBhcnRWYXJpYW50cyks
IGNvbnZlcnRQcm9wZXJ0eUJhZyhwcm9wZXJ0eUJhZykpCiAgICAgLCBtX25hbWUoZmlsZW5hbWUp
Ci0gICAgLCBtX292ZXJyaWRlTGFzdE1vZGlmaWVkRGF0ZShwcm9wZXJ0eUJhZy5sYXN0TW9kaWZp
ZWQudmFsdWVfb3IoY3VycmVudFRpbWVNUygpKSkKKyAgICAsIG1fb3ZlcnJpZGVMYXN0TW9kaWZp
ZWREYXRlKHByb3BlcnR5QmFnLmxhc3RNb2RpZmllZC52YWx1ZV9vcihXYWxsVGltZTo6bm93KCku
c2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKSkpCiB7CiB9CiAKQEAgLTExNiw3ICsx
MTYsNyBAQCBkb3VibGUgRmlsZTo6bGFzdE1vZGlmaWVkKCkgY29uc3QKICAgICBpZiAoRmlsZVN5
c3RlbTo6Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUobV9wYXRoLCBtb2RpZmljYXRpb25UaW1lKSAm
JiBGaWxlU3lzdGVtOjppc1ZhbGlkRmlsZVRpbWUobW9kaWZpY2F0aW9uVGltZSkpCiAgICAgICAg
IHJlc3VsdCA9IG1vZGlmaWNhdGlvblRpbWUgKiBtc1BlclNlY29uZDsKICAgICBlbHNlCi0gICAg
ICAgIHJlc3VsdCA9IGN1cnJlbnRUaW1lKCkgKiBtc1BlclNlY29uZDsKKyAgICAgICAgcmVzdWx0
ID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiAK
ICAgICByZXR1cm4gV1RGOjp0aW1lQ2xpcChyZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0hpc3RvcnlJdGVtLmNwcAppbmRleCBhODY2MTg1MjMxOGU5MjUzY2ZjYjJmNmZhOGYzNDhiNTg0
NDc2NzZiLi42YzMwMzRjYWUwMjUwNzNkNDhiMjA5MTY3NDJlYzk0ZGFhMzZkYzhiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtMzQsOCArMzQsOCBAQAogI2luY2x1
ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgog
I2luY2x1ZGUgPHN0ZGlvLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL0RhdGVNYXRoLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw3ICs0NCw3
IEBAIHN0YXRpYyBsb25nIGxvbmcgZ2VuZXJhdGVTZXF1ZW5jZU51bWJlcigpCiB7CiAgICAgLy8g
SW5pdGlhbGl6ZSB0byB0aGUgY3VycmVudCB0aW1lIHRvIHJlZHVjZSB0aGUgbGlrZWxpaG9vZCBv
ZiBnZW5lcmF0aW5nCiAgICAgLy8gaWRlbnRpZmllcnMgdGhhdCBvdmVybGFwIHdpdGggdGhvc2Ug
ZnJvbSBwYXN0L2Z1dHVyZSBicm93c2VyIHNlc3Npb25zLgotICAgIHN0YXRpYyBsb25nIGxvbmcg
bmV4dCA9IHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oY3VycmVudFRpbWUoKSAqIDEwMDAwMDAuMCk7
CisgICAgc3RhdGljIGxvbmcgbG9uZyBuZXh0ID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihXYWxs
VGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWNyb3NlY29uZHMoKSk7CiAgICAgcmV0
dXJuICsrbmV4dDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCmluZGV4IDNiYzlkNWNkYWM1NDQyODIzOGQ0Mzg4OWE3MzNiODMwNmE2
MmMyMTMuLmRhMGNiMDRiY2RkNmVkMGFmZGQ0ZjdiNDUxMDkwMDM5Njk2NmM1YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTg2
LDcgKzg2LDcgQEAgYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnR5cGVNaXNtYXRjaCgp
IGNvbnN0CiAKIERlY2ltYWwgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVG
b3JTdGVwVXAoKSBjb25zdAogewotICAgIGRvdWJsZSBtcyA9IGN1cnJlbnRUaW1lTVMoKTsKKyAg
ICBkb3VibGUgbXMgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5taWxsaXNl
Y29uZHMoKTsKICAgICBpbnQgb2Zmc2V0ID0gY2FsY3VsYXRlTG9jYWxUaW1lT2Zmc2V0KG1zKS5v
ZmZzZXQgLyBtc1Blck1pbnV0ZTsKICAgICByZXR1cm4gRGVjaW1hbDo6ZnJvbURvdWJsZShtcyAr
IChvZmZzZXQgKiBtc1Blck1pbnV0ZSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
SW5wdXRUeXBlLmNwcAppbmRleCA0N2VkOGVhNTNlYTk1OTdiOTllYWFkMzI3NmIxNmU4YTNiZmNh
NTEyLi5iMmZjMDE2MDA0NTkxNDAxMTVmNWMyZmExYzc2NTdlZGY5OTFkMjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcApAQCAtNTgsNyArNTgsNyBAQCBEYXRl
Q29tcG9uZW50czo6VHlwZSBEYXRlVGltZUlucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogCiBE
ZWNpbWFsIERhdGVUaW1lSW5wdXRUeXBlOjpkZWZhdWx0VmFsdWVGb3JTdGVwVXAoKSBjb25zdAog
ewotICAgIHJldHVybiBEZWNpbWFsOjpmcm9tRG91YmxlKGN1cnJlbnRUaW1lTVMoKSk7CisgICAg
cmV0dXJuIERlY2ltYWw6OmZyb21Eb3VibGUoV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVw
b2NoKCkubWlsbGlzZWNvbmRzKCkpOwogfQogCiBTdGVwUmFuZ2UgRGF0ZVRpbWVJbnB1dFR5cGU6
OmNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcgYW55U3RlcEhhbmRsaW5nKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAppbmRleCA5ODZkNDY4NDEzNzljNWEw
OWNiNTA2ODE4ODRkMTA2ZGFlNmQxY2VhLi41N2Y2NjhjYWM4YzYyZThlOGI3M2M0YmY4ZDIzNTJh
YTAxMTgzODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtNzgs
NyArNzgsNyBAQCBTdHJpbmcgTW9udGhJbnB1dFR5cGU6OnNlcmlhbGl6ZVdpdGhNaWxsaXNlY29u
ZHMoZG91YmxlIHZhbHVlKSBjb25zdAogCiBEZWNpbWFsIE1vbnRoSW5wdXRUeXBlOjpkZWZhdWx0
VmFsdWVGb3JTdGVwVXAoKSBjb25zdAogewotICAgIGRvdWJsZSBjdXJyZW50ID0gY3VycmVudFRp
bWVNUygpOworICAgIGRvdWJsZSBjdXJyZW50ID0gV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5j
ZUVwb2NoKCkubWlsbGlzZWNvbmRzKCk7CiAgICAgaW50IG9mZnNldCA9IGNhbGN1bGF0ZUxvY2Fs
VGltZU9mZnNldChjdXJyZW50KS5vZmZzZXQgLyBtc1Blck1pbnV0ZTsKICAgICBjdXJyZW50ICs9
IG9mZnNldCAqIG1zUGVyTWludXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cAppbmRleCA1ODBlZjIzNDVmMWVlOWMyNThmYzQ0ZTQ1NGU2ZmUxZWUxOWYwOWQ3Li44ZGI5NDJk
NTk4ZGU1M2ZkYzcwYTkxMzdiZGJlNDMwNmQ3MWZlYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgRGF0ZUNvbXBvbmVudHM6OlR5cGUgVGlt
ZUlucHV0VHlwZTo6ZGF0ZVR5cGUoKSBjb25zdAogCiBEZWNpbWFsIFRpbWVJbnB1dFR5cGU6OmRl
ZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0CiB7Ci0gICAgZG91YmxlIGN1cnJlbnQgPSBjdXJy
ZW50VGltZU1TKCk7CisgICAgZG91YmxlIGN1cnJlbnQgPSBXYWxsVGltZTo6bm93KCkuc2Vjb25k
c1NpbmNlRXBvY2goKS5taWxsaXNlY29uZHMoKTsKICAgICBpbnQgb2Zmc2V0ID0gY2FsY3VsYXRl
TG9jYWxUaW1lT2Zmc2V0KGN1cnJlbnQpLm9mZnNldCAvIG1zUGVyTWludXRlOwogICAgIGN1cnJl
bnQgKz0gb2Zmc2V0ICogbXNQZXJNaW51dGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcAppbmRleCAxNmU4
MjU1OWIzNDM3NTdmYmJiMGQ1MjkzMDNhMjRhMzU1MmY3YjQxLi5iYmYzNTExNGFlMjYyZWZlZTZh
NjhmNGI2YzY0YTY5MGFkYTU0OTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCkBAIC0zNTEsNyArMzUx
LDcgQEAgdm9pZCBJbnNwZWN0b3JOZXR3b3JrQWdlbnQ6OndpbGxTZW5kUmVxdWVzdCh1bnNpZ25l
ZCBsb25nIGlkZW50aWZpZXIsIERvY3VtZW50TG8KICAgICB9CiAKICAgICBkb3VibGUgc2VuZFRp
bWVzdGFtcCA9IHRpbWVzdGFtcCgpOwotICAgIGRvdWJsZSB3YWxsdGltZSA9IGN1cnJlbnRUaW1l
KCk7CisgICAgV2FsbFRpbWUgd2FsbHRpbWUgPSBXYWxsVGltZTo6bm93KCk7CiAKICAgICBTdHJp
bmcgcmVxdWVzdElkID0gSWRlbnRpZmllcnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllcik7
CiAgICAgU3RyaW5nIGZyYW1lSWQgPSBmcmFtZUlkZW50aWZpZXIobG9hZGVyKTsKQEAgLTM4NCw3
ICszODQsNyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6d2lsbFNlbmRSZXF1ZXN0KHVu
c2lnbmVkIGxvbmcgaWRlbnRpZmllciwgRG9jdW1lbnRMbwogICAgIGF1dG8gaW5pdGlhdG9yT2Jq
ZWN0ID0gYnVpbGRJbml0aWF0b3JPYmplY3QoZG9jdW1lbnQpOwogCiAgICAgU3RyaW5nIHVybCA9
IGxvYWRlciA/IGxvYWRlci0+dXJsKCkuc3RyaW5nKCkgOiByZXF1ZXN0LnVybCgpOwotICAgIG1f
ZnJvbnRlbmREaXNwYXRjaGVyLT5yZXF1ZXN0V2lsbEJlU2VudChyZXF1ZXN0SWQsIGZyYW1lSWQs
IGxvYWRlcklkLCB1cmwsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpLCBz
ZW5kVGltZXN0YW1wLCB3YWxsdGltZSwgaW5pdGlhdG9yT2JqZWN0LCBidWlsZE9iamVjdEZvclJl
c291cmNlUmVzcG9uc2UocmVkaXJlY3RSZXNwb25zZSwgbnVsbHB0ciksIHR5cGUgIT0gSW5zcGVj
dG9yUGFnZUFnZW50OjpPdGhlclJlc291cmNlID8gJnByb3RvY29sUmVzb3VyY2VUeXBlIDogbnVs
bHB0ciwgdGFyZ2V0SWQuaXNFbXB0eSgpID8gbnVsbHB0ciA6ICZ0YXJnZXRJZCk7CisgICAgbV9m
cm9udGVuZERpc3BhdGNoZXItPnJlcXVlc3RXaWxsQmVTZW50KHJlcXVlc3RJZCwgZnJhbWVJZCwg
bG9hZGVySWQsIHVybCwgYnVpbGRPYmplY3RGb3JSZXNvdXJjZVJlcXVlc3QocmVxdWVzdCksIHNl
bmRUaW1lc3RhbXAsIHdhbGx0aW1lLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpLCBpbml0
aWF0b3JPYmplY3QsIGJ1aWxkT2JqZWN0Rm9yUmVzb3VyY2VSZXNwb25zZShyZWRpcmVjdFJlc3Bv
bnNlLCBudWxscHRyKSwgdHlwZSAhPSBJbnNwZWN0b3JQYWdlQWdlbnQ6Ok90aGVyUmVzb3VyY2Ug
PyAmcHJvdG9jb2xSZXNvdXJjZVR5cGUgOiBudWxscHRyLCB0YXJnZXRJZC5pc0VtcHR5KCkgPyBu
dWxscHRyIDogJnRhcmdldElkKTsKIH0KIAogc3RhdGljIEluc3BlY3RvclBhZ2VBZ2VudDo6UmVz
b3VyY2VUeXBlIHJlc291cmNlVHlwZUZvckNhY2hlZFJlc291cmNlKENhY2hlZFJlc291cmNlKiBy
ZXNvdXJjZSkKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6
d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KHVuc2lnbmVkIGxvbmcgaWRlbgogICAg
IGF1dG8gcmVxdWVzdE9iamVjdCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6Ok5ldHdvcms6OldlYlNv
Y2tldFJlcXVlc3Q6OmNyZWF0ZSgpCiAgICAgICAgIC5zZXRIZWFkZXJzKGJ1aWxkT2JqZWN0Rm9y
SGVhZGVycyhyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSkpCiAgICAgICAgIC5yZWxlYXNlKCk7
Ci0gICAgbV9mcm9udGVuZERpc3BhdGNoZXItPndlYlNvY2tldFdpbGxTZW5kSGFuZHNoYWtlUmVx
dWVzdChJZGVudGlmaWVyc0ZhY3Rvcnk6OnJlcXVlc3RJZChpZGVudGlmaWVyKSwgdGltZXN0YW1w
KCksIGN1cnJlbnRUaW1lKCksIFdURk1vdmUocmVxdWVzdE9iamVjdCkpOworICAgIG1fZnJvbnRl
bmREaXNwYXRjaGVyLT53ZWJTb2NrZXRXaWxsU2VuZEhhbmRzaGFrZVJlcXVlc3QoSWRlbnRpZmll
cnNGYWN0b3J5OjpyZXF1ZXN0SWQoaWRlbnRpZmllciksIHRpbWVzdGFtcCgpLCBXYWxsVGltZTo6
bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIFdURk1vdmUocmVxdWVzdE9iamVj
dCkpOwogfQogCiB2b2lkIEluc3BlY3Rvck5ldHdvcmtBZ2VudDo6ZGlkUmVjZWl2ZVdlYlNvY2tl
dEhhbmRzaGFrZVJlc3BvbnNlKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5RnJh
bWVMb2FkZXJDbGllbnQuaAppbmRleCBlOGQzMzkwMTFjNGRjOWM3YWZmMjI1YWMyMDY4OTUzNGRi
YmRjYWQzLi5lZjM4ZmE0ZTMzN2M2Njc0MWQ0YTQyNzM4YWQxN2VkNTZiM2I4OTAxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTc1LDcg
Kzc1LDcgQEAgY2xhc3MgV0VCQ09SRV9FWFBPUlQgRW1wdHlGcmFtZUxvYWRlckNsaWVudCA6IHB1
YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAgICAgdm9pZCBkaXNwYXRjaERpZERpc3BhdGNoT25s
b2FkRXZlbnRzKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJS
ZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlzcGF0Y2hE
aWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpIGZpbmFsIHsgfQotICAgIHZvaWQgZGlzcGF0Y2hXaWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSwgZG91YmxlKSBmaW5hbCB7
IH0KKyAgICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBVUkwm
LCBkb3VibGUsIFdhbGxUaW1lKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdl
TG9jYXRpb25XaXRoaW5QYWdlKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaXNwYXRjaERpZFB1c2hT
dGF0ZVdpdGhpblBhZ2UoKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0
YXRlV2l0aGluUGFnZSgpIGZpbmFsIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb3JtU3VibWlz
c2lvbi5jcHAKaW5kZXggYWJiMzg1ZmE2ODdhZmI5MTFjNzBiMWVlM2U0YWRiNzE2YmZjODBlOS4u
YzcwMzg5YWQ3YzE0ODVmNDgyNWZiODA5MzFlNzU1YzM4NzNlNzJlMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0Zvcm1TdWJtaXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRm9ybVN1Ym1pc3Npb24uY3BwCkBAIC00OSw3ICs0OSw3IEBACiAjaW5jbHVkZSAi
SFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIlNjcmlwdERpc2FsbG93ZWRTY29wZS5oIgog
I2luY2x1ZGUgIlRleHRFbmNvZGluZy5oIgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgor
I2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU5
LDcgKzU5LDcgQEAgc3RhdGljIGludDY0X3QgZ2VuZXJhdGVGb3JtRGF0YUlkZW50aWZpZXIoKQog
ewogICAgIC8vIEluaXRpYWxpemUgdG8gdGhlIGN1cnJlbnQgdGltZSB0byByZWR1Y2UgdGhlIGxp
a2VsaWhvb2Qgb2YgZ2VuZXJhdGluZwogICAgIC8vIGlkZW50aWZpZXJzIHRoYXQgb3ZlcmxhcCB3
aXRoIHRob3NlIGZyb20gcGFzdC9mdXR1cmUgYnJvd3NlciBzZXNzaW9ucy4KLSAgICBzdGF0aWMg
aW50NjRfdCBuZXh0SWRlbnRpZmllciA9IHN0YXRpY19jYXN0PGludDY0X3Q+KGN1cnJlbnRUaW1l
KCkgKiAxMDAwMDAwLjApOworICAgIHN0YXRpYyBpbnQ2NF90IG5leHRJZGVudGlmaWVyID0gc3Rh
dGljX2Nhc3Q8aW50NjRfdD4oV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2NoKCkubWlj
cm9zZWNvbmRzKCkpOwogICAgIHJldHVybiArK25leHRJZGVudGlmaWVyOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCA0Yjk4NGM3OWY0MTE4MzkzNmEwNTg5NTUw
ZjI3MzQwNGM1NTdkNzU4Li42NWRiOTBiYTlkMWFlNzJjMzJkZjcxNDA2YWQ2M2MxY2Q3MjNhMWRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTIwNzUsNyArMjA3NSw3
IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChi
b29sIGNhbmNlbFdpdGhMb2FkSW5Qcm9ncmVzCiAgICAgbV9zZW50UmVkaXJlY3ROb3RpZmljYXRp
b24gPSBmYWxzZTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVkaXJlY3RlZChjb25z
dCBVUkwmIHVybCwgZG91YmxlIHNlY29uZHMsIGRvdWJsZSBmaXJlRGF0ZSwgTG9ja0JhY2tGb3J3
YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0KQordm9pZCBGcmFtZUxvYWRlcjo6Y2xpZW50UmVk
aXJlY3RlZChjb25zdCBVUkwmIHVybCwgZG91YmxlIHNlY29uZHMsIFdhbGxUaW1lIGZpcmVEYXRl
LCBMb2NrQmFja0ZvcndhcmRMaXN0IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAgICAgbV9jbGll
bnQuZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KHVybCwgc2Vjb25kcywgZmlyZURh
dGUpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCA5MjY1Y2IxMjEy
YmMyNjRmMTQ5OWU2NjA2MDNlYWU2MThiNjE0MDk4Li5mM2VjOGFmMGU2MTMyZWE4OTliNjUyZjU1
MWRmZWQxMjNlMDk4ODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtNDcs
NiArNDcsNyBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlv
blNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGlt
ZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTI2OCw3ICsyNjksNyBAQCBjbGFzcyBG
cmFtZUxvYWRlciB7CiAKICAgICB2b2lkIGNvbXBsZXRlZCgpOwogICAgIGJvb2wgYWxsQW5jZXN0
b3JzQXJlQ29tcGxldGUoKSBjb25zdDsgLy8gaW5jbHVkaW5nIHRoaXMKLSAgICB2b2lkIGNsaWVu
dFJlZGlyZWN0ZWQoY29uc3QgVVJMJiwgZG91YmxlIGRlbGF5LCBkb3VibGUgZmlyZURhdGUsIExv
Y2tCYWNrRm9yd2FyZExpc3QpOworICAgIHZvaWQgY2xpZW50UmVkaXJlY3RlZChjb25zdCBVUkwm
LCBkb3VibGUgZGVsYXksIFdhbGxUaW1lIGZpcmVEYXRlLCBMb2NrQmFja0ZvcndhcmRMaXN0KTsK
ICAgICB2b2lkIGNsaWVudFJlZGlyZWN0Q2FuY2VsbGVkT3JGaW5pc2hlZChib29sIGNhbmNlbFdp
dGhMb2FkSW5Qcm9ncmVzcyk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE9yaWdpbmFs
VVJMRm9yRG93bmxvYWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3ZGQyNWUzNDkxYTBlNzAyMjcwYzBmMTll
NTY2YWU5NmNjYzkwNmI4Li5kY2FmMzc3NjcyY2RjZmIxODdiMGEzZjQwN2NkYjUyNDUwOWUyMGM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMzQsNiAr
MzQsNyBAQAogI2luY2x1ZGUgIkxpbmtJY29uLmgiCiAjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgRU5BQkxFKEFQUExJQ0FUSU9OX01BTklG
RVNUKQpAQCAtMTU5LDcgKzE2MCw3IEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIEZyYW1lTG9hZGVy
Q2xpZW50IHsKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJl
Y3RGb3JQcm92aXNpb25hbExvYWQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
Q2hhbmdlUHJvdmlzaW9uYWxVUkwoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRD
YW5jZWxDbGllbnRSZWRpcmVjdCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxs
UGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91Ymxl
IGZpcmVEYXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGll
bnRSZWRpcmVjdChjb25zdCBVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIFdhbGxUaW1lIGZpcmVEYXRl
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTWFpbkRvY3VtZW50KCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbENoYW5nZURvY3VtZW50KCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkTmF2aWdhdGVXaXRoaW5QYWdlKCkgeyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmF2aWdhdGlvblNjaGVkdWxlci5jcHAKaW5kZXggNzUyYjgw
OTg1MDEzMmJiZGE4YjJhYTRkMmQwZjM5NzlhZjJjMDk5Mi4uZDI4NGE5MTVmYjU0ZGExYjUyNzc2
YmU5MjBkN2YxYmI3YWM5OTljYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05h
dmlnYXRpb25TY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0
aW9uU2NoZWR1bGVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGNsYXNzIFNjaGVkdWxlZFVSTE5h
dmlnYXRpb24gOiBwdWJsaWMgU2NoZWR1bGVkTmF2aWdhdGlvbiB7CiAgICAgICAgIG1faGF2ZVRv
bGRDbGllbnQgPSB0cnVlOwogCiAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJ
bmRpY2F0b3IodXNlckdlc3R1cmVUb0ZvcndhcmQoKSk7Ci0gICAgICAgIGZyYW1lLmxvYWRlcigp
LmNsaWVudFJlZGlyZWN0ZWQobV91cmwsIGRlbGF5KCksIGN1cnJlbnRUaW1lKCkgKyB0aW1lci5u
ZXh0RmlyZUludGVydmFsKCkudmFsdWUoKSwgbG9ja0JhY2tGb3J3YXJkTGlzdCgpKTsKKyAgICAg
ICAgZnJhbWUubG9hZGVyKCkuY2xpZW50UmVkaXJlY3RlZChtX3VybCwgZGVsYXkoKSwgV2FsbFRp
bWU6Om5vdygpICsgdGltZXIubmV4dEZpcmVJbnRlcnZhbCgpLCBsb2NrQmFja0ZvcndhcmRMaXN0
KCkpOwogICAgIH0KIAogICAgIHZvaWQgZGlkU3RvcFRpbWVyKEZyYW1lJiBmcmFtZSwgYm9vbCBu
ZXdMb2FkSW5Qcm9ncmVzcykgb3ZlcnJpZGUKQEAgLTI4Myw3ICsyODMsNyBAQCBjbGFzcyBTY2hl
ZHVsZWRGb3JtU3VibWlzc2lvbiA6IHB1YmxpYyBTY2hlZHVsZWROYXZpZ2F0aW9uIHsKICAgICAg
ICAgbV9oYXZlVG9sZENsaWVudCA9IHRydWU7CiAKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgZ2VzdHVyZUluZGljYXRvcih1c2VyR2VzdHVyZVRvRm9yd2FyZCgpKTsKLSAgICAgICAgZnJh
bWUubG9hZGVyKCkuY2xpZW50UmVkaXJlY3RlZChtX3N1Ym1pc3Npb24tPnJlcXVlc3RVUkwoKSwg
ZGVsYXkoKSwgY3VycmVudFRpbWUoKSArIHRpbWVyLm5leHRGaXJlSW50ZXJ2YWwoKS52YWx1ZSgp
LCBsb2NrQmFja0ZvcndhcmRMaXN0KCkpOworICAgICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnRS
ZWRpcmVjdGVkKG1fc3VibWlzc2lvbi0+cmVxdWVzdFVSTCgpLCBkZWxheSgpLCBXYWxsVGltZTo6
bm93KCkgKyB0aW1lci5uZXh0RmlyZUludGVydmFsKCksIGxvY2tCYWNrRm9yd2FyZExpc3QoKSk7
CiAgICAgfQogCiAgICAgdm9pZCBkaWRTdG9wVGltZXIoRnJhbWUmIGZyYW1lLCBib29sIG5ld0xv
YWRJblByb2dyZXNzKSBvdmVycmlkZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9I
aXN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKaW5kZXggMDljN2Q4
YjI5MDM2ZDY3YzQxNjViYTVmY2UxNDk0Y2M1NGIxNTJhYi4uOGQwYjk1OWQwMzczY2NhMTZiYTJl
ZTQyNmNhOTkxYmU2Y2YwYjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0
b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCkBAIC0xNjcsNyAr
MTY3LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSGlzdG9yeTo6c3RhdGVPYmplY3RBZGRlZChSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEKIHsKICAgICAvLyBFYWNoIHVuaXF1ZSBt
YWluLWZyYW1lIGRvY3VtZW50IGlzIG9ubHkgYWxsb3dlZCB0byBzZW5kIDY0TUIgb2Ygc3RhdGUg
b2JqZWN0IHBheWxvYWQgdG8gdGhlIFVJIGNsaWVudC9wcm9jZXNzLgogICAgIHN0YXRpYyB1aW50
MzJfdCB0b3RhbFN0YXRlT2JqZWN0UGF5bG9hZExpbWl0ID0gMHg0MDAwMDAwOwotICAgIHN0YXRp
YyBkb3VibGUgc3RhdGVPYmplY3RUaW1lU3BhbiA9IDMwLjA7CisgICAgc3RhdGljIFNlY29uZHMg
c3RhdGVPYmplY3RUaW1lU3BhbiB7IDMwX3MgfTsKICAgICBzdGF0aWMgdW5zaWduZWQgcGVyU3Rh
dGVPYmplY3RUaW1lU3BhbkxpbWl0ID0gMTAwOwogCiAgICAgaWYgKCFtX2ZyYW1lIHx8ICFtX2Zy
YW1lLT5wYWdlKCkpCkBAIC0xOTgsNyArMTk4LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gSGlzdG9y
eTo6c3RhdGVPYmplY3RBZGRlZChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIGRhdGEK
ICAgICBpZiAoIW1haW5IaXN0b3J5KQogICAgICAgICByZXR1cm4geyB9OwogCi0gICAgZG91Ymxl
IGN1cnJlbnRUaW1lc3RhbXAgPSBjdXJyZW50VGltZSgpOworICAgIFdhbGxUaW1lIGN1cnJlbnRU
aW1lc3RhbXAgPSBXYWxsVGltZTo6bm93KCk7CiAgICAgaWYgKGN1cnJlbnRUaW1lc3RhbXAgLSBt
YWluSGlzdG9yeS0+bV9jdXJyZW50U3RhdGVPYmplY3RUaW1lU3BhblN0YXJ0ID4gc3RhdGVPYmpl
Y3RUaW1lU3BhbikgewogICAgICAgICBtYWluSGlzdG9yeS0+bV9jdXJyZW50U3RhdGVPYmplY3RU
aW1lU3BhblN0YXJ0ID0gY3VycmVudFRpbWVzdGFtcDsKICAgICAgICAgbWFpbkhpc3RvcnktPm1f
Y3VycmVudFN0YXRlT2JqZWN0VGltZVNwYW5PYmplY3RzQWRkZWQgPSAwOwpAQCAtMjA2LDggKzIw
Niw4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhpc3Rvcnk6OnN0YXRlT2JqZWN0QWRkZWQoUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBkYXRhCiAgICAgCiAgICAgaWYgKG1haW5IaXN0b3J5
LT5tX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuT2JqZWN0c0FkZGVkID49IHBlclN0YXRlT2Jq
ZWN0VGltZVNwYW5MaW1pdCkgewogICAgICAgICBpZiAoc3RhdGVPYmplY3RUeXBlID09IFN0YXRl
T2JqZWN0VHlwZTo6UmVwbGFjZSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1
cml0eUVycm9yLCBTdHJpbmc6OmZvcm1hdCgiQXR0ZW1wdCB0byB1c2UgaGlzdG9yeS5yZXBsYWNl
U3RhdGUoKSBtb3JlIHRoYW4gJXUgdGltZXMgcGVyICVmIHNlY29uZHMiLCBwZXJTdGF0ZU9iamVj
dFRpbWVTcGFuTGltaXQsIHN0YXRlT2JqZWN0VGltZVNwYW4pIH07Ci0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBTZWN1cml0eUVycm9yLCBTdHJpbmc6OmZvcm1hdCgiQXR0ZW1wdCB0byB1c2Ug
aGlzdG9yeS5wdXNoU3RhdGUoKSBtb3JlIHRoYW4gJXUgdGltZXMgcGVyICVmIHNlY29uZHMiLCBw
ZXJTdGF0ZU9iamVjdFRpbWVTcGFuTGltaXQsIHN0YXRlT2JqZWN0VGltZVNwYW4pIH07CisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgU3RyaW5nOjpmb3JtYXQo
IkF0dGVtcHQgdG8gdXNlIGhpc3RvcnkucmVwbGFjZVN0YXRlKCkgbW9yZSB0aGFuICV1IHRpbWVz
IHBlciAlZiBzZWNvbmRzIiwgcGVyU3RhdGVPYmplY3RUaW1lU3BhbkxpbWl0LCBzdGF0ZU9iamVj
dFRpbWVTcGFuLnNlY29uZHMoKSkgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3Vy
aXR5RXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJBdHRlbXB0IHRvIHVzZSBoaXN0b3J5LnB1c2hTdGF0
ZSgpIG1vcmUgdGhhbiAldSB0aW1lcyBwZXIgJWYgc2Vjb25kcyIsIHBlclN0YXRlT2JqZWN0VGlt
ZVNwYW5MaW1pdCwgc3RhdGVPYmplY3RUaW1lU3Bhbi5zZWNvbmRzKCkpIH07CiAgICAgfQogCiAg
ICAgQ2hlY2tlZDx1bnNpZ25lZD4gdGl0bGVTaXplID0gdGl0bGUubGVuZ3RoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
SGlzdG9yeS5oCmluZGV4IDZkYmIyZmYyNjRlNDJiNTMwNDRhNzhkMWU5MWMzMzdmNDMzM2ZlYTcu
LjhkODMyNzUwOTQ0ZTg5MTZhODM2ODE0MzI0MGFkODMzYTcwZTNmMjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlz
dG9yeS5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKICNpbmNs
dWRlICJTY3JpcHRXcmFwcGFibGUuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUu
aCIKKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC03NSw3ICs3Niw3IEBAIGNsYXNzIEhpc3RvcnkgZmluYWwgOiBwdWJsaWMgU2NyaXB0V3JhcHBh
YmxlLCBwdWJsaWMgUmVmQ291bnRlZDxIaXN0b3J5PiwgcHVibGljCiAgICAgUmVmUHRyPFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZT4gbV9sYXN0U3RhdGVPYmplY3RSZXF1ZXN0ZWQ7CiAKICAgICB1bnNp
Z25lZCBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuT2JqZWN0c0FkZGVkIHsgMCB9OwotICAg
IGRvdWJsZSBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuU3RhcnQgeyAwLjAgfTsKKyAgICBX
YWxsVGltZSBtX2N1cnJlbnRTdGF0ZU9iamVjdFRpbWVTcGFuU3RhcnQ7CiAKICAgICAvLyBGb3Ig
dGhlIG1haW4gZnJhbWUncyBIaXN0b3J5IG9iamVjdCB0byBrZWVwIHRyYWNrIG9mIGFsbCBzdGF0
ZSBvYmplY3QgdXNhZ2UuCiAgICAgdWludDY0X3QgbV90b3RhbFN0YXRlT2JqZWN0VXNhZ2UgeyAw
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCmluZGV4IDkzMmExMWU1NjIzNWUyMDA4
M2I0NjBmYjM5NWIyZGU0YmQxM2QyYmQuLjY2MDcwMDJkMGQzOTI0OWM5ZTgxNzJkZDcyMWVlODhk
OTQ1OTQxYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCkBAIC0zMywxMSArMzMs
MTAgQEAKICNpbmNsdWRlICJQYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybU1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgotI2luY2x1ZGUg
PHd0Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0YXRpYyBjb25z
dCBkb3VibGUgZmFkZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4yOworc3RhdGljIGNvbnN0IFNlY29u
ZHMgZmFkZUFuaW1hdGlvbkR1cmF0aW9uIHsgMjAwX21zIH07CiBzdGF0aWMgY29uc3QgZG91Ymxl
IGZhZGVBbmltYXRpb25GcmFtZVJhdGUgPSAzMDsKIAogc3RhdGljIFBhZ2VPdmVybGF5OjpQYWdl
T3ZlcmxheUlEIGdlbmVyYXRlUGFnZU92ZXJsYXlJRCgpCkBAIC0yNTMsMTMgKzI1MiwxMyBAQCB2
b2lkIFBhZ2VPdmVybGF5OjpzdG9wRmFkZU91dEFuaW1hdGlvbigpCiAKIHZvaWQgUGFnZU92ZXJs
YXk6OnN0YXJ0RmFkZUFuaW1hdGlvbigpCiB7Ci0gICAgbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1l
ID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWUgPSBXYWxsVGlt
ZTo6bm93KCk7CiAgICAgbV9mYWRlQW5pbWF0aW9uVGltZXIuc3RhcnRSZXBlYXRpbmcoMV9zIC8g
ZmFkZUFuaW1hdGlvbkZyYW1lUmF0ZSk7CiB9CiAKIHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKCkKIHsKLSAgICBmbG9hdCBhbmltYXRpb25Qcm9ncmVzcyA9IChjdXJy
ZW50VGltZSgpIC0gbV9mYWRlQW5pbWF0aW9uU3RhcnRUaW1lKSAvIG1fZmFkZUFuaW1hdGlvbkR1
cmF0aW9uOworICAgIGZsb2F0IGFuaW1hdGlvblByb2dyZXNzID0gKFdhbGxUaW1lOjpub3coKSAt
IG1fZmFkZUFuaW1hdGlvblN0YXJ0VGltZSkgLyBtX2ZhZGVBbmltYXRpb25EdXJhdGlvbjsKIAog
ICAgIGlmIChhbmltYXRpb25Qcm9ncmVzcyA+PSAxLjApCiAgICAgICAgIGFuaW1hdGlvblByb2dy
ZXNzID0gMS4wOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5oCmluZGV4IGE0N2Y2ZjBlOWNmOGRk
ZTA4M2Y0MjYwMDEyMzM1MWVjNmUyMzVlNzIuLjY2MzMwMzdiMmViMjViOWMzNTBlZjc5ZGY2Yzkx
ZTgyNjczMjczNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmgKQEAgLTMwLDYgKzMwLDcg
QEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMjYsOCArMTI3
LDggQEAgY2xhc3MgUGFnZU92ZXJsYXkgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxQYWdlT3Zl
cmxheT4gewogICAgIFBhZ2UqIG1fcGFnZSB7IG51bGxwdHIgfTsKIAogICAgIFRpbWVyIG1fZmFk
ZUFuaW1hdGlvblRpbWVyOwotICAgIGRvdWJsZSBtX2ZhZGVBbmltYXRpb25TdGFydFRpbWUgeyAw
IH07Ci0gICAgZG91YmxlIG1fZmFkZUFuaW1hdGlvbkR1cmF0aW9uOworICAgIFdhbGxUaW1lIG1f
ZmFkZUFuaW1hdGlvblN0YXJ0VGltZTsKKyAgICBTZWNvbmRzIG1fZmFkZUFuaW1hdGlvbkR1cmF0
aW9uOwogCiAgICAgZW51bSBGYWRlQW5pbWF0aW9uVHlwZSB7CiAgICAgICAgIE5vQW5pbWF0aW9u
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhp
Y3NDb250ZXh0Q0cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuY3BwCmluZGV4IGRiZmI2ZDIyY2VmNzY4MWNiY2YxOWU1ZGVhZWZhYzI0
YjIyYTM4NGMuLjJjYjIzMDBiZGZmMjRmNWM4ZTdlYjViNWUzNTcxYWJiZjQ4MzQyMTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4
dENHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGlj
c0NvbnRleHRDRy5jcHAKQEAgLTI4OSw3ICsyODksNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6
ZHJhd05hdGl2ZUltYWdlKGNvbnN0IFJldGFpblB0cjxDR0ltYWdlUmVmPiYgaW1hZ2UsIGNvbnN0
CiAgICAgfQogCiAjaWYgIUxPR19ESVNBQkxFRAotICAgIGRvdWJsZSBzdGFydFRpbWUgPSBjdXJy
ZW50VGltZSgpOworICAgIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CiAjZW5kaWYKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gc3ViSW1hZ2UoaW1hZ2Up
OwogCkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJ
bWFnZShjb25zdCBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4mIGltYWdlLCBjb25zdAogI2VuZGlmCiAg
ICAgfQogCi0gICAgTE9HX1dJVEhfU1RSRUFNKEltYWdlcywgc3RyZWFtIDw8ICJHcmFwaGljc0Nv
bnRleHQ6OmRyYXdOYXRpdmVJbWFnZSAiIDw8IGltYWdlLmdldCgpIDw8ICIgc2l6ZSAiIDw8IGlt
YWdlU2l6ZSA8PCAiIGludG8gIiA8PCBkZXN0UmVjdCA8PCAiIHRvb2sgIiA8PCAxMDAwLjAgKiAo
Y3VycmVudFRpbWUoKSAtIHN0YXJ0VGltZSkgPDwgIm1zIik7CisgICAgTE9HX1dJVEhfU1RSRUFN
KEltYWdlcywgc3RyZWFtIDw8ICJHcmFwaGljc0NvbnRleHQ6OmRyYXdOYXRpdmVJbWFnZSAiIDw8
IGltYWdlLmdldCgpIDw8ICIgc2l6ZSAiIDw8IGltYWdlU2l6ZSA8PCAiIGludG8gIiA8PCBkZXN0
UmVjdCA8PCAiIHRvb2sgIiA8PCAoTW9ub3RvbmljVGltZTo6bm93KCkgLSBzdGFydFRpbWUpLm1p
bGxpc2Vjb25kcygpIDw8ICJtcyIpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3UGF0dGVybkNhbGxi
YWNrKHZvaWQqIGluZm8sIENHQ29udGV4dFJlZiBjb250ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXllclBvb2wuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLmgKaW5kZXggNTM3YzllZGY2NThm
NmE5YjllZmRhYjdkYzIzN2FkYTI3MjZjMWY0ZC4uMDU2MzYyNTM4NzQyNmQzNzVkMTgwMmEwODZj
NGEwMjMwMGQwODQ1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xl
Z2FjeVRpbGVMYXllclBvb2wuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvTGVn
YWN5VGlsZUxheWVyUG9vbC5oCkBAIC03Nyw3ICs3Nyw3IEBAIGNsYXNzIExlZ2FjeVRpbGVMYXll
clBvb2wgewogICAgIHVuc2lnbmVkIG1fY2FwYWNpdHk7CiAgICAgTG9jayBtX2xheWVyUG9vbE11
dGV4OwogCi0gICAgZG91YmxlIG1fbGFzdEFkZFRpbWU7CisgICAgV2FsbFRpbWUgbV9sYXN0QWRk
VGltZTsKICAgICBib29sIG1fbmVlZHNQcnVuZTsKIAogICAgIGZyaWVuZCBOZXZlckRlc3Ryb3ll
ZDxMZWdhY3lUaWxlTGF5ZXJQb29sPjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9MZWdhY3lUaWxlTGF5ZXJQb29sLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL0xlZ2FjeVRpbGVMYXllclBvb2wubW0KaW5kZXggZmM5YzI0NjY2N2JiNGQxMDgxNjAxZTA5
NDdjZDQ2MjQ0N2I5ZDA5My4uMjUwMDI4ZmY5YWJhODU4MjIzNzIyNmQxMGRjZWVjMjNhNjdmNWE3
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXll
clBvb2wubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0xlZ2FjeVRpbGVMYXll
clBvb2wubW0KQEAgLTM3LDEyICszNywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0
YXRpYyBjb25zdCBkb3VibGUgY2FwYWNpdHlEZWNheVRpbWUgPSA1Oworc3RhdGljIGNvbnN0IFNl
Y29uZHMgY2FwYWNpdHlEZWNheVRpbWUgeyA1X3MgfTsKIAogTGVnYWN5VGlsZUxheWVyUG9vbDo6
TGVnYWN5VGlsZUxheWVyUG9vbCgpCiAgICAgOiBtX3RvdGFsQnl0ZXMoMCkKICAgICAsIG1fY2Fw
YWNpdHkoMCkKLSAgICAsIG1fbGFzdEFkZFRpbWUoMCkKICAgICAsIG1fbmVlZHNQcnVuZShmYWxz
ZSkKIHsKIH0KQEAgLTg4LDcgKzg3LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjphZGRM
YXllcihjb25zdCBSZXRhaW5QdHI8TGVnYWN5VGlsZUxheWVyPiYgbGF5ZXIpCiAgICAgbGlzdE9m
TGF5ZXJzV2l0aFNpemUobGF5ZXJTaXplKS5wcmVwZW5kKGxheWVyKTsKICAgICBtX3RvdGFsQnl0
ZXMgKz0gYnl0ZXNCYWNraW5nTGF5ZXJXaXRoUGl4ZWxTaXplKGxheWVyU2l6ZSk7CiAKLSAgICBt
X2xhc3RBZGRUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBtX2xhc3RBZGRUaW1lID0gV2FsbFRp
bWU6Om5vdygpOwogICAgIHNjaGVkdWxlUHJ1bmUoKTsKIH0KIApAQCAtMTE1LDcgKzExNCw3IEBA
IHZvaWQgTGVnYWN5VGlsZUxheWVyUG9vbDo6c2V0Q2FwYWNpdHkodW5zaWduZWQgY2FwYWNpdHkp
CiB1bnNpZ25lZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpkZWNheWVkQ2FwYWNpdHkoKSBjb25zdAog
ewogICAgIC8vIERlY2F5IHRvIG9uZSBxdWFydGVyIG92ZXIgY2FwYWNpdHlEZWNheVRpbWUKLSAg
ICBkb3VibGUgdGltZVNpbmNlTGFzdEFkZCA9IGN1cnJlbnRUaW1lKCkgLSBtX2xhc3RBZGRUaW1l
OworICAgIFNlY29uZHMgdGltZVNpbmNlTGFzdEFkZCA9IFdhbGxUaW1lOjpub3coKSAtIG1fbGFz
dEFkZFRpbWU7CiAgICAgaWYgKHRpbWVTaW5jZUxhc3RBZGQgPiBjYXBhY2l0eURlY2F5VGltZSkK
ICAgICAgICAgcmV0dXJuIG1fY2FwYWNpdHkgLyA0OwogICAgIGZsb2F0IGRlY2F5UHJvZ2VzcyA9
IGZsb2F0KHRpbWVTaW5jZUxhc3RBZGQgLyBjYXBhY2l0eURlY2F5VGltZSk7CkBAIC0xNTcsNyAr
MTU2LDcgQEAgdm9pZCBMZWdhY3lUaWxlTGF5ZXJQb29sOjpwcnVuZSgpCiAgICAgICAgIC8vIHN0
aWxsIGhhdmUgYSBiYWNraW5nIHN0b3JlLgogICAgICAgICBvbGRlc3RSZXVzZUxpc3QucmVtb3Zl
TGFzdCgpOwogICAgIH0KLSAgICBpZiAoY3VycmVudFRpbWUoKSAtIG1fbGFzdEFkZFRpbWUgPD0g
Y2FwYWNpdHlEZWNheVRpbWUpCisgICAgaWYgKFdhbGxUaW1lOjpub3coKSAtIG1fbGFzdEFkZFRp
bWUgPD0gY2FwYWNpdHlEZWNheVRpbWUpCiAgICAgICAgIHNjaGVkdWxlUHJ1bmUoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1N5c3RlbU1lbW9yeUlPUy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNwcAppbmRl
eCA2ZWE0MWRlM2ExOGM2M2ZjMTg4ZjY0NWQ1YjJiOWZiYTA2YTZiYzcwLi4xYWQxMmE0ZjA2MDIy
MzEzMDc1NDEwZGJlMzlkOWUyOTU1NjkxMGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvU3lzdGVtTWVtb3J5SU9TLmNwcApAQCAtMzMsNyArMzMsNyBAQAogCiAjaW5jbHVk
ZSA8c3lzL3N5c2N0bC5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIApAQCAtNDMsOSArNDMsOSBAQCBpbnQgc3lzdGVtTWVtb3J5TGV2ZWwoKQog
ICAgIHJldHVybiAzNTsKICNlbHNlCiAgICAgc3RhdGljIGludCBtZW1vcnlGcmVlTGV2ZWwgPSAt
MTsKLSAgICBzdGF0aWMgZG91YmxlIHByZXZpb3VzQ2hlY2tUaW1lOyAKLSAgICBkb3VibGUgdGlt
ZSA9IGN1cnJlbnRUaW1lKCk7Ci0gICAgaWYgKHRpbWUgLSBwcmV2aW91c0NoZWNrVGltZSA8IDAu
MSkKKyAgICBzdGF0aWMgV2FsbFRpbWUgcHJldmlvdXNDaGVja1RpbWU7CisgICAgV2FsbFRpbWUg
dGltZSA9IFdhbGxUaW1lOjpub3coKTsKKyAgICBpZiAodGltZSAtIHByZXZpb3VzQ2hlY2tUaW1l
IDwgMTAwX21zKQogICAgICAgICByZXR1cm4gbWVtb3J5RnJlZUxldmVsOwogICAgIHByZXZpb3Vz
Q2hlY2tUaW1lID0gdGltZTsKICAgICBzaXplX3Qgc2l6ZSA9IHNpemVvZihtZW1vcnlGcmVlTGV2
ZWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCmluZGV4IDI2MWNi
YTcwNGUxMTZmNGMwNzMzZWYxM2IwNmRjNTZjOTg4OWY5M2QuLmNiNDM2OGFiMzVhMzYyYmY3Mjlh
ZWUwYjc1NDI1ZmFjYWRiNmZmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxwYWwvY2YvQ29yZU1lZGlhU29m
dExpbmsuaD4KICNpbmNsdWRlIDxwYWwvc3BpL2NmL0NvcmVBdWRpb1NQSS5oPgogI2luY2x1ZGUg
PHN5cy90aW1lLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1NjcmVlbkRpc3Bs
YXlDYXB0dXJlU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1NjcmVlbkRpc3BsYXlDYXB0dXJlU291cmNlTWFjLm1tCmluZGV4IGNlOWJjZjg4MDg1
NDkwYTllOGNlNjExYjVjZTVlYzlmNmFiYTMyODIuLmZlZDZlZTU3N2YxOTQ2N2NhYmNiYzljOTRi
NDA3NmRjMGYyMjMyNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9TY3JlZW5EaXNwbGF5Q2FwdHVyZVNvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvU2NyZWVuRGlzcGxheUNhcHR1cmVTb3Vy
Y2VNYWMubW0KQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtTGF5ZXIuaCIKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2luY2x1ZGUgIkNv
cmVWaWRlb1NvZnRMaW5rLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lQ2FjaGUuY3BwIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAKaW5kZXggNjlm
NzcwNDFmN2RjZjNmOGVjMWYwZDlkNDBkMGIyZDg5ZmEzOTBjYy4uN2FhZjU3N2YxNmM0ODNjNDIy
YjdkZDQ3OGE0NmJjODZjMGFlYzdkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDYWNoZS5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NhY2hlUXVlcnlPcHRpb25zLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IVFRQUGFyc2Vycy5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9VVUlE
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL1dlYlByb2Nlc3NDb25u
ZWN0aW9uLmNwcAppbmRleCBhMGEyYzI0ZWVjNGYwMGExZTA4YzU2ZjU0NTA3MjQ0NDRjNGMyMGIz
Li45YjlkZjI5YzYzYjhjZjU2MmQ3ZjU0NjYwZWM2OGYyMDBiODZmOWI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KIAogI2lmICFPUyhXSU5ET1dTKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4
IDNkMDgxM2Y0Zjg3OTQwYzQ5YWRjODIxNGIxYWU2ODQ2MTU3ODkxMGYuLmRiOTM3NjBiZDBlNWNk
NWQyYjBlMzk4OThkMWRlZjFiY2ZiMWVmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTE2MSw3ICsxNjEsNyBAQCBz
dHJ1Y3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgSGFzaE1hcDxTdHJpbmcs
IGJvb2w+IG5vdGlmaWNhdGlvblBlcm1pc3Npb25zOwogI2VuZGlmCiAKLSAgICBIYXNoTWFwPFBB
TDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+PiBwbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXM7CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25l
ZCwgV2FsbFRpbWU+PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXM7CiAgICAgVmVjdG9yPFN0
cmluZz4gcGx1Z0luQXV0b1N0YXJ0T3JpZ2luczsKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVH
SU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5
U2FtcGxlckxpbnV4LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNh
bXBsZXJMaW51eC5jcHAKaW5kZXggNDdlMzE5MDlhMWU5N2RmOWEzZWEzOTdmNjdjYmMwYmFhZTc2
MDFjNC4uYWE4NDAwMTkzZmFhY2NjMjkyMjhmYmY1NjY1MTBhODIxMTA0OWQxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9saW51eC9XZWJNZW1vcnlTYW1wbGVyTGludXguY3Bw
CkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgog
I2luY2x1ZGUgPHN0cmluZy5oPgogI2luY2x1ZGUgPHN5cy9zeXNpbmZvLmg+Ci0jaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL2xpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKQEAgLTk1LDkgKzk1LDkgQEAgV2ViTWVtb3J5U3RhdGlzdGljcyBX
ZWJNZW1vcnlTYW1wbGVyOjpzYW1wbGVXZWJLaXQoKSBjb25zdAogewogICAgIFdlYk1lbW9yeVN0
YXRpc3RpY3Mgd2ViS2l0TWVtb3J5U3RhdHM7CiAKLSAgICBkb3VibGUgbm93ID0gY3VycmVudFRp
bWUoKTsKKyAgICBXYWxsVGltZSBub3cgPSBXYWxsVGltZTo6bm93KCk7CiAKLSAgICBhcHBlbmRL
ZXlWYWx1ZVBhaXIod2ViS2l0TWVtb3J5U3RhdHMsIEFTQ0lJTGl0ZXJhbCgiVGltZXN0YW1wIiks
IG5vdyk7CisgICAgYXBwZW5kS2V5VmFsdWVQYWlyKHdlYktpdE1lbW9yeVN0YXRzLCBBU0NJSUxp
dGVyYWwoIlRpbWVzdGFtcCIpLCBub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpOwog
CiAgICAgUHJvY2Vzc01lbW9yeVN0YXR1cyBwcm9jZXNzTWVtb3J5U3RhdHVzOwogICAgIGN1cnJl
bnRQcm9jZXNzTWVtb3J5U3RhdHVzKHByb2Nlc3NNZW1vcnlTdGF0dXMpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvbWFjL1dlYk1lbW9yeVNhbXBsZXIubWFjLm1tCmluZGV4IDYwN2Q1MGU3
Njk0ZjFiYmNlYmUwNGJmMjNjN2QwMDRmMzA4NjEyMGUuLjU5YTk4YWZjMzM5NDI3YTc1NGUyNjkz
MzQ5NzBmM2EzMGQ3MWMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL21hYy9X
ZWJNZW1vcnlTYW1wbGVyLm1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9tYWMvV2Vi
TWVtb3J5U2FtcGxlci5tYWMubW0KQEAgLTM3LDcgKzM3LDcgQEAKICNpbXBvcnQgPG1hY2gvdGFz
ay5oPgogI2ltcG9ydCA8bWFsbG9jL21hbGxvYy5oPgogI2ltcG9ydCA8bm90aWZ5Lmg+Ci0jaW1w
b3J0IDx3dGYvQ3VycmVudFRpbWUuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CkBAIC0xNDAsMTAgKzE0
MCwxMCBAQCBXZWJNZW1vcnlTdGF0aXN0aWNzIFdlYk1lbW9yeVNhbXBsZXI6OnNhbXBsZVdlYktp
dCgpIGNvbnN0CiAgICAgCiAgICAgc2l6ZV90IHJlc2lkZW50U2l6ZSA9IHNhbXBsZVByb2Nlc3ND
b21taXR0ZWRCeXRlcygpOwogCi0gICAgZG91YmxlIG5vdyA9IGN1cnJlbnRUaW1lKCk7CisgICAg
V2FsbFRpbWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOwogICAgICAgICAKICAgICB3ZWJLaXRNZW1v
cnlTdGF0cy5rZXlzLmFwcGVuZChTdHJpbmcoIlRpbWVzdGFtcCIpKTsKLSAgICB3ZWJLaXRNZW1v
cnlTdGF0cy52YWx1ZXMuYXBwZW5kKG5vdyk7CisgICAgd2ViS2l0TWVtb3J5U3RhdHMudmFsdWVz
LmFwcGVuZChub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpOwogICAgIHdlYktpdE1l
bW9yeVN0YXRzLmtleXMuYXBwZW5kKFN0cmluZygiVG90YWwgQnl0ZXMgb2YgTWVtb3J5IEluIFVz
ZSIpKTsKICAgICB3ZWJLaXRNZW1vcnlTdGF0cy52YWx1ZXMuYXBwZW5kKHRvdGFsQnl0ZXNJblVz
ZSk7CiAgICAgd2ViS2l0TWVtb3J5U3RhdHMua2V5cy5hcHBlbmQoU3RyaW5nKCJGYXN0IE1hbGxv
YyBab25lIEJ5dGVzIikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHAKaW5kZXggNDA1NDg2YzlkNzZkZDA2NjUyM2ZkYmM4NjcxMzMwZWU5ODI4YTg0MC4uZGVl
MGEwOWMwNTVkODQ4NWEwMjNhNDVmYTE3NDRjZmUzYWExODE0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuY3BwCkBAIC01NzYsNyArNTc2LDcgQEAgdm9pZCBX
S0NvbnRleHRTZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVk
QWZ0ZXJUaW1lKFdLQ29udGUKIHsKICAgICBpZiAoIWRpY3Rpb25hcnlSZWYpCiAgICAgICAgIHJl
dHVybjsKLSAgICB0b0ltcGwoY29udGV4dFJlZiktPnNldFBsdWdJbkF1dG9TdGFydE9yaWdpbnNG
aWx0ZXJpbmdPdXRFbnRyaWVzQWRkZWRBZnRlclRpbWUoKnRvSW1wbChkaWN0aW9uYXJ5UmVmKSwg
dGltZSk7CisgICAgdG9JbXBsKGNvbnRleHRSZWYpLT5zZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5z
RmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKCp0b0ltcGwoZGljdGlvbmFyeVJlZiks
IFdhbGxUaW1lOjpmcm9tUmF3U2Vjb25kcyh0aW1lKSk7CiB9CiAKIHZvaWQgV0tDb250ZXh0U2V0
UGx1Z0luQXV0b1N0YXJ0T3JpZ2lucyhXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tBcnJheVJl
ZiBhcnJheVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L0ljb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29u
RGF0YWJhc2UuY3BwCmluZGV4IDU2YjFmZTUzZGVkMWRjZTU5NGRkYzYwNjhlZTRiZjYxOWE3OTNj
YTMuLmE2MDBmOWExZTNmMThlYTI1YWU1NzdiYWQzZjUwZjM4ODVjMmZlYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcApAQCAtNjcs
NyArNjcsNyBAQCBzdGF0aWMgYm9vbCBjaGVja0ludGVncml0eU9uT3BlbiA9IGZhbHNlOwogCiAv
LyBXZSBhcmUgbm90IGludGVyZXN0ZWQgaW4gaWNvbnMgdGhhdCBoYXZlIGJlZW4gdW51c2VkIGZv
ciBtb3JlIHRoYW4KIC8vIDMwIGRheXMsIGRlbGV0ZSB0aGVtIGV2ZW4gaWYgdGhleSBoYXZlIG5v
dCBiZWVuIGV4cGxpY2l0bHkgcmVsZWFzZWQuCi1zdGF0aWMgY29uc3QgaW50IG5vdFVzZWRJY29u
RXhwaXJhdGlvblRpbWUgPSA2MCo2MCoyNCozMDsKK3N0YXRpYyBjb25zdCBTZWNvbmRzIG5vdFVz
ZWRJY29uRXhwaXJhdGlvblRpbWUgeyA2MCo2MCoyNCozMCB9OwogCiAjaWYgIUxPR19ESVNBQkxF
RCB8fCAhRVJST1JfRElTQUJMRUQKIHN0YXRpYyBTdHJpbmcgdXJsRm9yTG9nZ2luZyhjb25zdCBT
dHJpbmcmIHVybCkKQEAgLTU0Niw3ICs1NDYsNyBAQCB2b2lkIEljb25EYXRhYmFzZTo6c2V0SWNv
bkRhdGFGb3JJY29uVVJMKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZGF0YSwgY29uc3QgU3RyaQog
CiAgICAgICAgIC8vIFVwZGF0ZSB0aGUgZGF0YSBhbmQgc2V0IHRoZSB0aW1lIHN0YW1wCiAgICAg
ICAgIGljb24tPnNldEltYWdlRGF0YShXVEZNb3ZlKGRhdGEpKTsKLSAgICAgICAgaWNvbi0+c2V0
VGltZXN0YW1wKChpbnQpY3VycmVudFRpbWUoKSk7CisgICAgICAgIGljb24tPnNldFRpbWVzdGFt
cCgoaW50KVdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSk7CiAK
ICAgICAgICAgLy8gQ29weSB0aGUgY3VycmVudCByZXRhaW5pbmcgcGFnZVVSTHMgLSBpZiBhbnkg
LSB0byBub3RpZnkgdGhlbSBvZiB0aGUgY2hhbmdlCiAgICAgICAgIHBhZ2VVUkxzLmFwcGVuZFJh
bmdlKGljb24tPnJldGFpbmluZ1BhZ2VVUkxzKCkuYmVnaW4oKSwgaWNvbi0+cmV0YWluaW5nUGFn
ZVVSTHMoKS5lbmQoKSk7CkBAIC02NTcsNyArNjU3LDcgQEAgSWNvbkRhdGFiYXNlOjpJY29uTG9h
ZERlY2lzaW9uIEljb25EYXRhYmFzZTo6c3luY2hyb25vdXNMb2FkRGVjaXNpb25Gb3JJY29uVVJM
KGMKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV91cmxBbmRJY29uTG9jayk7CiAgICAgICAg
IGlmIChJY29uUmVjb3JkKiBpY29uID0gbV9pY29uVVJMVG9SZWNvcmRNYXAuZ2V0KGljb25VUkwp
KSB7CiAgICAgICAgICAgICBMT0coSWNvbkRhdGFiYXNlLCAiRm91bmQgZXhwaXJhdGlvbiB0aW1l
IG9uIGEgcHJlc2VudCBpY29uIGJhc2VkIG9uIGV4aXN0aW5nIEljb25SZWNvcmQiKTsKLSAgICAg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KGN1cnJlbnRUaW1lKCkpIC0gc3RhdGljX2Nh
c3Q8aW50PihpY29uLT5nZXRUaW1lc3RhbXAoKSkgPiBpY29uRXhwaXJhdGlvblRpbWUgPyBJY29u
TG9hZERlY2lzaW9uOjpZZXMgOiBJY29uTG9hZERlY2lzaW9uOjpObzsKKyAgICAgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxpbnQ+KFdhbGxUaW1lOjpub3coKS5zZWNvbmRzU2luY2VFcG9jaCgp
LnNlY29uZHMoKSkgLSBzdGF0aWNfY2FzdDxpbnQ+KGljb24tPmdldFRpbWVzdGFtcCgpKSA+IGlj
b25FeHBpcmF0aW9uVGltZSA/IEljb25Mb2FkRGVjaXNpb246OlllcyA6IEljb25Mb2FkRGVjaXNp
b246Ok5vOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMDc5LDcgKzEwNzksNyBAQCB2b2lkIElj
b25EYXRhYmFzZTo6cGVyZm9ybVVSTEltcG9ydCgpCiAgICAgLy8gTm90ZSB0aGF0IEljb25JbmZv
LnN0YW1wIGlzIG9ubHkgc2V0IHdoZW4gdGhlIGljb24gZGF0YSBpcyByZXRyaWV2ZWQgZnJvbSB0
aGUgc2VydmVyIChhbmQgdGh1cyBpcyBub3QgdXBkYXRlZCB3aGV0aGVyCiAgICAgLy8gd2UgdXNl
IGl0IG9yIG5vdCkuIFRoaXMgY29kZSB3b3JrcyBhbnl3YXkgYmVjYXVzZSB0aGUgSWNvbkRhdGFi
YXNlIGRvd25sb2FkcyBpY29ucyBhZ2FpbiBpZiB0aGV5IGFyZSBvbGRlciB0aGFuIDQgZGF5cywK
ICAgICAvLyBzbyBpZiB0aGUgdGltZXN0YW1wIGdvZXMgYmFjayBpbiB0aW1lIG1vcmUgdGhhbiB0
aG9zZSAzMCBkYXlzIHdlIGNhbiBiZSBzdXJlIHRoYXQgdGhlIGljb24gd2FzIG5vdCB1c2VkIGF0
IGFsbC4KLSAgICBTdHJpbmcgaW1wb3J0UXVlcnkgPSBTdHJpbmc6OmZvcm1hdCgiU0VMRUNUIFBh
Z2VVUkwudXJsLCBJY29uSW5mby51cmwsIEljb25JbmZvLnN0YW1wIEZST00gUGFnZVVSTCBJTk5F
UiBKT0lOIEljb25JbmZvIE9OIFBhZ2VVUkwuaWNvbklEPUljb25JbmZvLmljb25JRCBXSEVSRSBJ
Y29uSW5mby5zdGFtcCA+ICUuMGY7IiwgZmxvb3IoY3VycmVudFRpbWUoKSAtIG5vdFVzZWRJY29u
RXhwaXJhdGlvblRpbWUpKTsKKyAgICBTdHJpbmcgaW1wb3J0UXVlcnkgPSBTdHJpbmc6OmZvcm1h
dCgiU0VMRUNUIFBhZ2VVUkwudXJsLCBJY29uSW5mby51cmwsIEljb25JbmZvLnN0YW1wIEZST00g
UGFnZVVSTCBJTk5FUiBKT0lOIEljb25JbmZvIE9OIFBhZ2VVUkwuaWNvbklEPUljb25JbmZvLmlj
b25JRCBXSEVSRSBJY29uSW5mby5zdGFtcCA+ICUuMGY7IiwgZmxvb3IoKFdhbGxUaW1lOjpub3co
KSAtIG5vdFVzZWRJY29uRXhwaXJhdGlvblRpbWUpLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25k
cygpKSk7CiAKICAgICBTUUxpdGVTdGF0ZW1lbnQgcXVlcnkobV9zeW5jREIsIGltcG9ydFF1ZXJ5
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eUltcGwu
Y3BwCmluZGV4IGE1MzIzODZjYTE3ZmIzNzhmODViMDhjMGVkNzIzNjJhNjgyYjAxYWQuLmU1NDIy
Mzk4YjgxYWI2NjBiNjNkZWMyNWUyZjQ0MDI1YTcxMTQxNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHlJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5SW1wbC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvUmVnaW9uLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1l
Lmg+CiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLmNwcAppbmRleCAyMjI1ZTMzMjU2NmY1Y2M1MTNkOTczNWVhMmVkOTFhOTMwMjZhMmRk
Li4wNjJlODdjYmRlZWQwNzg4MWYwNDNhNGEwZWZhMWZkMmRkODczYmM0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFBy
b3ZpZGVyLmNwcApAQCAtMzEsMTEgKzMxLDExIEBACiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVu
dC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQb29sLmgiCi0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW5jbHVkZSA8d3RmL1dh
bGxUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1zdGF0aWMgY29uc3QgZG91
YmxlIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xkID0gMzAgKiAyNCAqIDYw
ICogNjA7CitzdGF0aWMgY29uc3QgU2Vjb25kcyBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9uVGlt
ZVRocmVzaG9sZCB7IDMwICogMjQgKiA2MCAqIDYwIH07CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC00Niw5ICs0Niw5IEBAIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpQbHVnSW5BdXRvU3Rh
cnRQcm92aWRlcihXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgbV9hdXRvU3RhcnRU
YWJsZS5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgQXV0b1N0YXJ0VGFi
bGUoKSk7CiB9CiAKLXN0YXRpYyBkb3VibGUgZXhwaXJhdGlvblRpbWVGcm9tTm93KCkKK3N0YXRp
YyBXYWxsVGltZSBleHBpcmF0aW9uVGltZUZyb21Ob3coKQogewotICAgIHJldHVybiBjdXJyZW50
VGltZSgpICsgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQ7CisgICAgcmV0
dXJuIFdhbGxUaW1lOjpub3coKSArIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNo
b2xkOwogfQogCiB2b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRvU3RhcnRPcmln
aW5IYXNoKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgdW5zaWduZWQgcGx1Z0luT3JpZ2luSGFz
aCwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQpAQCAtNjMsNyArNjMsNyBAQCB2b2lkIFBsdWdJ
bkF1dG9TdGFydFByb3ZpZGVyOjphZGRBdXRvU3RhcnRPcmlnaW5IYXNoKGNvbnN0IFN0cmluZyYg
cGFnZU9yaWdpbiwgdQogCiAgICAgQXV0b1N0YXJ0VGFibGU6Oml0ZXJhdG9yIGl0ID0gbV9hdXRv
U3RhcnRUYWJsZS5hZGQoc2Vzc2lvbklELCBBdXRvU3RhcnRUYWJsZSgpKS5pdGVyYXRvci0+dmFs
dWUuYWRkKHBhZ2VPcmlnaW4sIFBsdWdJbkF1dG9TdGFydE9yaWdpbk1hcCgpKS5pdGVyYXRvcjsK
IAotICAgIGRvdWJsZSBleHBpcmF0aW9uVGltZSA9IGV4cGlyYXRpb25UaW1lRnJvbU5vdygpOwor
ICAgIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lID0gZXhwaXJhdGlvblRpbWVGcm9tTm93KCk7CiAg
ICAgaXQtPnZhbHVlLnNldChwbHVnSW5PcmlnaW5IYXNoLCBleHBpcmF0aW9uVGltZSk7CiAgICAg
c2Vzc2lvbkl0ZXJhdG9yLT52YWx1ZS5zZXQocGx1Z0luT3JpZ2luSGFzaCwgcGFnZU9yaWdpbik7
CiAKQEAgLTkxLDEyICs5MSwxMiBAQCBSZWY8QVBJOjpEaWN0aW9uYXJ5PiBQbHVnSW5BdXRvU3Rh
cnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0CiB7CiAgICAgQVBJ
OjpEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKIAotICAgIGRvdWJsZSBub3cgPSBjdXJyZW50VGlt
ZSgpOworICAgIFdhbGxUaW1lIG5vdyA9IFdhbGxUaW1lOjpub3coKTsKICAgICBmb3IgKGNvbnN0
IGF1dG8mIHN0cmluZ09yaWdpbkhhc2ggOiBtX2F1dG9TdGFydFRhYmxlLmdldChQQUw6OlNlc3Np
b25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpKSkgewogICAgICAgICBBUEk6OkRpY3Rpb25hcnk6Ok1h
cFR5cGUgaGFzaE1hcDsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBvcmlnaW5IYXNoIDogc3Ry
aW5nT3JpZ2luSGFzaC52YWx1ZSkgewogICAgICAgICAgICAgaWYgKG5vdyA8PSBvcmlnaW5IYXNo
LnZhbHVlKQotICAgICAgICAgICAgICAgIGhhc2hNYXAuc2V0KFN0cmluZzo6bnVtYmVyKG9yaWdp
bkhhc2gua2V5KSwgQVBJOjpEb3VibGU6OmNyZWF0ZShvcmlnaW5IYXNoLnZhbHVlKSk7CisgICAg
ICAgICAgICAgICAgaGFzaE1hcC5zZXQoU3RyaW5nOjpudW1iZXIob3JpZ2luSGFzaC5rZXkpLCBB
UEk6OkRvdWJsZTo6Y3JlYXRlKG9yaWdpbkhhc2gudmFsdWUuc2Vjb25kc1NpbmNlRXBvY2goKS5z
ZWNvbmRzKCkpKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaGFzaE1hcC5zaXplKCkpCiAgICAg
ICAgICAgICBtYXAuc2V0KHN0cmluZ09yaWdpbkhhc2gua2V5LCBBUEk6OkRpY3Rpb25hcnk6OmNy
ZWF0ZShXVEZNb3ZlKGhhc2hNYXApKSk7CkBAIC0xMDcsMjYgKzEwNywyNiBAQCBSZWY8QVBJOjpE
aWN0aW9uYXJ5PiBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6YXV0b1N0YXJ0T3JpZ2luc1RhYmxl
Q29weSgpIGNvbnN0CiAKIHZvaWQgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFy
dE9yaWdpbnNUYWJsZShBUEk6OkRpY3Rpb25hcnkmIHRhYmxlKQogewotICAgIHNldEF1dG9TdGFy
dE9yaWdpbnNUYWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KHRhYmxlLCBbXShkb3VibGUpIHsKKyAg
ICBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5nVGVzdCh0YWJsZSwgW10o
V2FsbFRpbWUpIHsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSk7CiB9CiAKLXZvaWQgUGx1
Z0luQXV0b1N0YXJ0UHJvdmlkZXI6OnNldEF1dG9TdGFydE9yaWdpbnNGaWx0ZXJpbmdPdXRFbnRy
aWVzQWRkZWRBZnRlclRpbWUoQVBJOjpEaWN0aW9uYXJ5JiB0YWJsZSwgZG91YmxlIHRpbWUpCit2
b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5n
T3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYgdGFibGUsIFdhbGxUaW1l
IHRpbWUpCiB7Ci0gICAgZG91YmxlIGFkanVzdGVkVGltZXN0YW1wID0gdGltZSArIHBsdWdJbkF1
dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xkOwotICAgIHNldEF1dG9TdGFydE9yaWdpbnNU
YWJsZVdpdGhJdGVtc1Bhc3NpbmdUZXN0KHRhYmxlLCBbYWRqdXN0ZWRUaW1lc3RhbXBdKGRvdWJs
ZSBleHBpcmF0aW9uVGltZXN0YW1wKSB7CisgICAgV2FsbFRpbWUgYWRqdXN0ZWRUaW1lc3RhbXAg
PSB0aW1lICsgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVUaHJlc2hvbGQ7CisgICAgc2V0
QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QodGFibGUsIFthZGp1c3Rl
ZFRpbWVzdGFtcF0oV2FsbFRpbWUgZXhwaXJhdGlvblRpbWVzdGFtcCkgewogICAgICAgICByZXR1
cm4gYWRqdXN0ZWRUaW1lc3RhbXAgPiBleHBpcmF0aW9uVGltZXN0YW1wOwogICAgIH0pOwogfQog
Ci12b2lkIFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVX
aXRoSXRlbXNQYXNzaW5nVGVzdChBUEk6OkRpY3Rpb25hcnkmIHRhYmxlLCBXVEY6OkZ1bmN0aW9u
PGJvb2woZG91YmxlIGV4cGlyYXRpb25UaW1lc3RhbXApPiYmIGlzRXhwaXJhdGlvblRpbWVBY2Nl
cHRhYmxlKQordm9pZCBQbHVnSW5BdXRvU3RhcnRQcm92aWRlcjo6c2V0QXV0b1N0YXJ0T3JpZ2lu
c1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QoQVBJOjpEaWN0aW9uYXJ5JiB0YWJsZSwgV1RGOjpG
dW5jdGlvbjxib29sKFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lc3RhbXApPiYmIGlzRXhwaXJhdGlv
blRpbWVBY2NlcHRhYmxlKQogewogICAgIEFTU0VSVChpc0V4cGlyYXRpb25UaW1lQWNjZXB0YWJs
ZSk7CiAKICAgICBtX2hhc2hUb09yaWdpbk1hcC5jbGVhcigpOwogICAgIG1fYXV0b1N0YXJ0VGFi
bGUuY2xlYXIoKTsKLSAgICBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+IGhhc2hNYXA7CisgICAg
SGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+IGhhc2hNYXA7CiAgICAgSGFzaE1hcDx1bnNpZ25l
ZCwgU3RyaW5nPiYgaGFzaFRvT3JpZ2luTWFwID0gbV9oYXNoVG9PcmlnaW5NYXAuYWRkKFBBTDo6
U2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCksIEhhc2hNYXA8dW5zaWduZWQsIFN0cmluZz4o
KSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIEF1dG9TdGFydFRhYmxlJiBhc3QgPSBtX2F1dG9TdGFy
dFRhYmxlLmFkZChQQUw6OlNlc3Npb25JRDo6ZGVmYXVsdFNlc3Npb25JRCgpLCBBdXRvU3RhcnRU
YWJsZSgpKS5pdGVyYXRvci0+dmFsdWU7CiAKQEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIFBsdWdJ
bkF1dG9TdGFydFByb3ZpZGVyOjpzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNz
aW5nVGVzdChBUEk6OgogICAgICAgICAgICAgaWYgKGhhc2hUaW1lLnZhbHVlLT50eXBlKCkgIT0g
QVBJOjpEb3VibGU6OkFQSVR5cGUpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgICAgIGRvdWJsZSBleHBpcmF0aW9uVGltZSA9IHN0YXRpY19jYXN0PEFQSTo6RG91YmxlKj4o
aGFzaFRpbWUudmFsdWUuZ2V0KCkpLT52YWx1ZSgpOworICAgICAgICAgICAgV2FsbFRpbWUgZXhw
aXJhdGlvblRpbWUgPSBXYWxsVGltZTo6ZnJvbVJhd1NlY29uZHMoc3RhdGljX2Nhc3Q8QVBJOjpE
b3VibGUqPihoYXNoVGltZS52YWx1ZS5nZXQoKSktPnZhbHVlKCkpOwogICAgICAgICAgICAgaWYg
KCFpc0V4cGlyYXRpb25UaW1lQWNjZXB0YWJsZShleHBpcmF0aW9uVGltZSkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAKQEAgLTE4Miw3ICsxODIsNyBAQCB2b2lkIFBsdWdJbkF1dG9TdGFy
dFByb3ZpZGVyOjpkaWRSZWNlaXZlVXNlckludGVyYWN0aW9uKHVuc2lnbmVkIHBsdWdJbk9yaWdp
bkhhcwogICAgICAgICB9CiAgICAgfQogCi0gICAgZG91YmxlIG5ld0V4cGlyYXRpb25UaW1lID0g
ZXhwaXJhdGlvblRpbWVGcm9tTm93KCk7CisgICAgV2FsbFRpbWUgbmV3RXhwaXJhdGlvblRpbWUg
PSBleHBpcmF0aW9uVGltZUZyb21Ob3coKTsKICAgICBtX2F1dG9TdGFydFRhYmxlLmFkZChzZXNz
aW9uSUQsIEF1dG9TdGFydFRhYmxlKCkpLml0ZXJhdG9yLT52YWx1ZS5hZGQoaXQtPnZhbHVlLCBQ
bHVnSW5BdXRvU3RhcnRPcmlnaW5NYXAoKSkuaXRlcmF0b3ItPnZhbHVlLnNldChwbHVnSW5Pcmln
aW5IYXNoLCBuZXdFeHBpcmF0aW9uVGltZSk7CiAgICAgbV9wcm9jZXNzUG9vbC0+c2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKHBsdWdJbk9yaWdpbkhhc2gsIG5ld0V4cGlyYXRpb25UaW1lLCBzZXNzaW9uSUQpKTsK
ICAgICBtX3Byb2Nlc3NQb29sLT5jbGllbnQoKS5wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXND
aGFuZ2VkKG1fcHJvY2Vzc1Bvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnSW5BdXRvU3RhcnRQcm92aWRlci5oCmluZGV4IDk4YmYwNjc2M2Jm
NDQ0YmUyZTQ5Njg5MGYyYzE4YmE1YTI2NmMyOTUuLmM4ZDcxMGU1MTYwZjI4NmFiMTgzOThjNTU0
ZjY0ZTA3MmE0Y2Q2OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdp
bnMvUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdJbkF1dG9TdGFydFByb3ZpZGVyLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKQEAgLTQzLDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlByb2Nl
c3NQb29sOwogCi10eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4gUGx1Z0luQXV0b1N0
YXJ0T3JpZ2luTWFwOwordHlwZWRlZiBIYXNoTWFwPHVuc2lnbmVkLCBXYWxsVGltZT4gUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luTWFwOwogdHlwZWRlZiBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBQbHVn
SW5BdXRvU3RhcnRPcmlnaW5NYXA+IFNlc3Npb25QbHVnSW5BdXRvU3RhcnRPcmlnaW5NYXA7CiB0
eXBlZGVmIFZlY3RvcjxTdHJpbmc+IFBsdWdJbkF1dG9TdGFydE9yaWdpbnM7CiAKQEAgLTU3LDcg
KzU4LDcgQEAgY2xhc3MgUGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIgewogCiAgICAgUmVmPEFQSTo6
RGljdGlvbmFyeT4gYXV0b1N0YXJ0T3JpZ2luc1RhYmxlQ29weSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlKEFQSTo6RGljdGlvbmFyeSYpOwotICAgIHZvaWQgc2V0
QXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZShBUEk6OkRp
Y3Rpb25hcnkmLCBkb3VibGUgdGltZSk7CisgICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zRmls
dGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYsIFdhbGxUaW1l
KTsKICAgICB2b2lkIHNldEF1dG9TdGFydE9yaWdpbnNBcnJheShBUEk6OkFycmF5Jik7CiAKICAg
ICBTZXNzaW9uUGx1Z0luQXV0b1N0YXJ0T3JpZ2luTWFwIGF1dG9TdGFydE9yaWdpbkhhc2hlc0Nv
cHkoKSBjb25zdDsKQEAgLTY2LDcgKzY3LDcgQEAgY2xhc3MgUGx1Z0luQXV0b1N0YXJ0UHJvdmlk
ZXIgewogcHJpdmF0ZToKICAgICBXZWJQcm9jZXNzUG9vbCogbV9wcm9jZXNzUG9vbDsKIAotICAg
IHZvaWQgc2V0QXV0b1N0YXJ0T3JpZ2luc1RhYmxlV2l0aEl0ZW1zUGFzc2luZ1Rlc3QoQVBJOjpE
aWN0aW9uYXJ5JiwgV1RGOjpGdW5jdGlvbjxib29sKGRvdWJsZSBleHBpcmF0aW9uVGltZXN0YW1w
KT4mJik7CisgICAgdm9pZCBzZXRBdXRvU3RhcnRPcmlnaW5zVGFibGVXaXRoSXRlbXNQYXNzaW5n
VGVzdChBUEk6OkRpY3Rpb25hcnkmLCBXVEY6OkZ1bmN0aW9uPGJvb2woV2FsbFRpbWUgZXhwaXJh
dGlvblRpbWVzdGFtcCk+JiYpOwogCiAgICAgdHlwZWRlZiBIYXNoTWFwPFN0cmluZywgUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luTWFwLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IEF1dG9TdGFydFRh
YmxlOwogICAgIHR5cGVkZWYgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgQXV0b1N0YXJ0VGFibGU+
IFNlc3Npb25BdXRvU3RhcnRUYWJsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAppbmRleCBiNmY5MGE1OTJjOTUyYzExNTJiOTQ0NzFhOGQ3YzE5NGI1YmFjZjA3
Li4zZmNhZjVhYjQ1ZDQ2OGM1MWU2NDQwNDIxYTMyNGQ1Y2VmZGM2ZWY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC04MiwxMSArODIsMTEgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVVJM
UGFyc2VyLmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgotI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdCdWlsZGVyLmg+CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKQEAgLTk0
Miw4ICs5NDIsOCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwcm9jZXNzRGlkRmluaXNoTGF1bmNo
aW5nKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcykKICAgICAvLyBzbyBjaGVjayBpZiBpdCBuZWVk
cyB0byBiZSBzdGFydGVkIGhlcmUKICAgICBpZiAobV9tZW1vcnlTYW1wbGVyRW5hYmxlZCkgewog
ICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FtcGxlTG9nU2FuZGJveEhhbmRsZTsg
ICAgICAgIAotICAgICAgICBkb3VibGUgbm93ID0gV1RGOjpjdXJyZW50VGltZSgpOwotICAgICAg
ICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVs
bHVwaWQlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obm93KSwgcHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIFdhbGxUaW1lIG5vdyA9IFdhbGxUaW1lOjpu
b3coKTsKKyAgICAgICAgU3RyaW5nIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU3RyaW5nOjpmb3JtYXQo
IldlYlByb2Nlc3MlbGx1cGlkJWQiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG5v
dy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSksIHByb2Nlc3MtPnByb2Nlc3NJZGVudGlm
aWVyKCkpOwogICAgICAgICBzYW1wbGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNhbmRib3hFeHRl
bnNpb246OlR5cGU6OlJlYWRXcml0ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7CiAgICAgICAg
IAogICAgICAgICBwcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1lbW9y
eVNhbXBsZXIoc2FtcGxlTG9nU2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIG1fbWVt
b3J5U2FtcGxlckludGVydmFsKSwgMCk7CkBAIC0xNDI1LDggKzE0MjUsOCBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpzdGFydE1lbW9yeVNhbXBsZXIoY29uc3QgZG91YmxlIGludGVydmFsKQogICAg
IAogICAgIC8vIEZvciBXZWJQcm9jZXNzCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bXBsZUxvZ1NhbmRib3hIYW5kbGU7ICAgIAotICAgIGRvdWJsZSBub3cgPSBXVEY6OmN1cnJlbnRU
aW1lKCk7Ci0gICAgU3RyaW5nIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU3RyaW5nOjpmb3JtYXQoIldl
YlByb2Nlc3MlbGx1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihub3cpKTsKKyAg
ICBXYWxsVGltZSBub3cgPSBXYWxsVGltZTo6bm93KCk7CisgICAgU3RyaW5nIHNhbXBsZUxvZ0Zp
bGVQYXRoID0gU3RyaW5nOjpmb3JtYXQoIldlYlByb2Nlc3MlbGx1Iiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQgbG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpKTsKICAg
ICBzYW1wbGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclRl
bXBvcmFyeUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRXcml0ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7CiAgICAgCiAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1lbW9yeVNhbXBsZXIoc2FtcGxlTG9n
U2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIGludGVydmFsKSk7CkBAIC0xNzQ4LDcg
KzE3NDgsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5z
KEFQSTo6QXJyYXkmIGFycmF5KQogICAgIG1fcGx1Z0luQXV0b1N0YXJ0UHJvdmlkZXIuc2V0QXV0
b1N0YXJ0T3JpZ2luc0FycmF5KGFycmF5KTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0
UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZShB
UEk6OkRpY3Rpb25hcnkmIGRpY3Rpb25hcnksIGRvdWJsZSB0aW1lKQordm9pZCBXZWJQcm9jZXNz
UG9vbDo6c2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFm
dGVyVGltZShBUEk6OkRpY3Rpb25hcnkmIGRpY3Rpb25hcnksIFdhbGxUaW1lIHRpbWUpCiB7CiAg
ICAgbV9wbHVnSW5BdXRvU3RhcnRQcm92aWRlci5zZXRBdXRvU3RhcnRPcmlnaW5zRmlsdGVyaW5n
T3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKGRpY3Rpb25hcnksIHRpbWUpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNDEyNTgxOWNiNTgxMDA2OGZiMDUw
NjZiNTk1YjgwMmE4NDVkNmRmMy4uMWIzMTc1NGMxMDE1ZjdhZjFmMzNjZjU2NWYyMTI0ZDRjN2Zi
MTM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0zMTQs
NyArMzE0LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2wgZmluYWwgOiBwdWJsaWMgQVBJOjpPYmpl
Y3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpQcm9jZXNzUG8KICAgICBSZWY8QVBJOjpEaWN0aW9u
YXJ5PiBwbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoKSBjb25zdDsKICAgICB2b2lkIHNldFBs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcyhBUEk6OkRpY3Rpb25hcnkmKTsKICAgICB2b2lkIHNl
dFBsdWdJbkF1dG9TdGFydE9yaWdpbnMoQVBJOjpBcnJheSYpOwotICAgIHZvaWQgc2V0UGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luc0ZpbHRlcmluZ091dEVudHJpZXNBZGRlZEFmdGVyVGltZShBUEk6OkRp
Y3Rpb25hcnkmLCBkb3VibGUgdGltZSk7CisgICAgdm9pZCBzZXRQbHVnSW5BdXRvU3RhcnRPcmln
aW5zRmlsdGVyaW5nT3V0RW50cmllc0FkZGVkQWZ0ZXJUaW1lKEFQSTo6RGljdGlvbmFyeSYsIFdh
bGxUaW1lKTsKIAogICAgIC8vIE5ldHdvcmsgUHJvY2VzcyBNYW5hZ2VtZW50CiAgICAgTmV0d29y
a1Byb2Nlc3NQcm94eSYgZW5zdXJlTmV0d29ya1Byb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSogd2l0
aFdlYnNpdGVEYXRhU3RvcmUgPSBudWxscHRyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQ
SUluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCmluZGV4IGZlNzM5YjI2ZDMxYTdjMTE0
OGJkYzA5NTM2YTkwZTJlOGQ0ZTYxYzguLjU4YzY0ZDIwZDExNjgxYzRkOTQyOWNlMmZhMWNlNDA4
ODdhN2I1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZVBh
Z2VMb2FkZXJDbGllbnQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MYXlvdXRNaWxlc3RvbmVzLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
ODAsNyArODEsNyBAQCBjbGFzcyBQYWdlTG9hZGVyQ2xpZW50IHsKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDbGVhcldpbmRvd09iamVjdEZvckZyYW1lKFdlYktpdDo6V2ViUGFnZSYsIFdlYktpdDo6
V2ViRnJhbWUmLCBXZWJDb3JlOjpET01XcmFwcGVyV29ybGQmKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJL
aXQ6OldlYkZyYW1lJikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1lJiwgY29uc3Qg
V1RGOjpTdHJpbmcmLCBkb3VibGUgLypkZWxheSovLCBkb3VibGUgLypkYXRlKi8pIHsgfQorICAg
IHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWUoV2ViS2l0OjpX
ZWJQYWdlJiwgV2ViS2l0OjpXZWJGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgZG91YmxlIC8q
ZGVsYXkqLywgV2FsbFRpbWUgLypkYXRlKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5k
bGVPbmxvYWRFdmVudHNGb3JGcmFtZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1l
JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2xvYmFsT2JqZWN0SXNBdmFpbGFibGVGb3JGcmFt
ZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJLaXQ6OldlYkZyYW1lJiwgV2ViQ29yZTo6RE9NV3JhcHBl
cldvcmxkJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDQ4ZmQxYmE0MTBlNGIzY2ZhOWI1NWU1ODdkZWY0MWVhYzcxOTU1MDQuLmU0
MWU4MzE4MDk5MDRiZWVjNmJlZGJkOWQwMzcyNmZmODgwZDQzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCkBAIC0yODMsMTIgKzI4MywxMiBA
QCB2b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6ZGlkQ2FuY2VsQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZShXZWJQYWdlJiBwYQogICAgIG1fY2xpZW50LmRpZENhbmNlbENsaWVudFJl
ZGlyZWN0Rm9yRnJhbWUodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6
d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UmIHBhZ2UsIFdlYkZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGRhdGUpCit2
b2lkIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudDo6d2lsbFBlcmZvcm1DbGllbnRSZWRp
cmVjdEZvckZyYW1lKFdlYlBhZ2UmIHBhZ2UsIFdlYkZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiB1cmwsIGRvdWJsZSBkZWxheSwgV2FsbFRpbWUgZGF0ZSkKIHsKICAgICBpZiAoIW1fY2xpZW50
LndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RGb3JGcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9jbGllbnQud2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1lKHRvQVBJKCZwYWdl
KSwgdG9BUEkoJmZyYW1lKSwgdG9VUkxSZWYodXJsLmltcGwoKSksIGRlbGF5LCBkYXRlLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworICAgIG1fY2xpZW50LndpbGxQZXJmb3JtQ2xpZW50UmVk
aXJlY3RGb3JGcmFtZSh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIHRvVVJMUmVmKHVybC5p
bXBsKCkpLCBkZWxheSwgZGF0ZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJD
bGllbnQ6OmRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYlBhZ2UmIHBhZ2UsIFdlYkZy
YW1lJiBmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
aAppbmRleCBkY2IwY2ZjYmEwYjRhZTVmNDA0YjcyN2FkNDNiYzQyNjEzOTJhYTIzLi5hOTBlZDYw
YWYxZmU2OTVhOWE1NDU1NjlmMDNhMTA4MDI1ZjhkNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oCkBAIC03Myw3ICs3Myw3IEBAIGNsYXNzIEluamVj
dGVkQnVuZGxlUGFnZUxvYWRlckNsaWVudCA6IHB1YmxpYyBBUEk6OkNsaWVudDxXS0J1bmRsZVBh
Z2VMb2FkZXJDbGllCiAKICAgICB2b2lkIGRpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJhbWUoV2Vi
UGFnZSYsIFdlYkZyYW1lJiwgV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBkaWRDYW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lKFdlYlBhZ2UmLCBXZWJGcmFt
ZSYpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdEZvckZyYW1l
KFdlYlBhZ2UmLCBXZWJGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgZG91YmxlIC8qZGVsYXkq
LywgZG91YmxlIC8qZGF0ZSovKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxQZXJmb3JtQ2xpZW50
UmVkaXJlY3RGb3JGcmFtZShXZWJQYWdlJiwgV2ViRnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYs
IGRvdWJsZSAvKmRlbGF5Ki8sIFdhbGxUaW1lIC8qZGF0ZSovKSBvdmVycmlkZTsKICAgICB2b2lk
IGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lKFdlYlBhZ2UmLCBXZWJGcmFtZSYpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lKFdlYlBhZ2Um
LCBXZWJGcmFtZSYsIFdlYkNvcmU6OkRPTVdyYXBwZXJXb3JsZCYpIG92ZXJyaWRlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMWU5OGI0ODNiMTg5OGVhMjVlMTBkYWNjMzA2
MGFjMDRhN2RjY2EwNS4uMjM5YzQ0MDhiZjJhOGZhNTVlZjRkNDZlOTg1ZTkzZWE2YWRkNjlmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0zMzUsNyArMzM1LDcgQEAgdm9p
ZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgp
CiAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDYW5jZWxDbGll
bnRSZWRpcmVjdEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSkpOwogfQogCi12b2lkIFdlYkZy
YW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3Qg
VVJMJiB1cmwsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZpcmVEYXRlKQordm9pZCBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFVS
TCYgdXJsLCBkb3VibGUgaW50ZXJ2YWwsIFdhbGxUaW1lIGZpcmVEYXRlKQogewogICAgIFdlYlBh
Z2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCBiNjgwMzJlMjkwZDM3MTAxNmM4MWY1ZTc4MDE2NDkz
ZTk4Zjc0NzM0Li5lZmJmMjg3YTFlZGU0ZTQ3MWM3OTk1NjAxOTI3MDE4ZDlkNmI3MDVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMTAzLDcgKzEwMyw3IEBAIGNsYXNzIFdlYkZy
YW1lTG9hZGVyQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
IHsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJvdmlzaW9u
YWxMb2FkKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENoYW5nZVByb3Zpc2lvbmFsVVJM
KCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZENhbmNlbENsaWVudFJlZGlyZWN0KCkgZmlu
YWw7Ci0gICAgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2Vi
Q29yZTo6VVJMJiwgZG91YmxlIGludGVydmFsLCBkb3VibGUgZmlyZURhdGUpIGZpbmFsOworICAg
IHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVS
TCYsIGRvdWJsZSBpbnRlcnZhbCwgV2FsbFRpbWUgZmlyZURhdGUpIGZpbmFsOwogICAgIHZvaWQg
ZGlzcGF0Y2hEaWRDaGFuZ2VMb2NhdGlvbldpdGhpblBhZ2UoKSBmaW5hbDsKICAgICB2b2lkIGRp
c3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hE
aWRSZXBsYWNlU3RhdGVXaXRoaW5QYWdlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5jcHAKaW5kZXggODVlZjNmOTMyNDJhZmMyZmFiZDExNDY3YTQxNDI2NDcwNTg5
ZmJiMy4uZmE1MTkyNDIyZTI4YmQyYmQ1Njg0M2RlODU3MGJiMzY5NDc4NTJmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIHVzaW5n
IG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogLy8gVGhpcyBzaG91
bGQgYmUgbGVzcyB0aGFuIHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVGhyZXNob2xkIGlu
IFBsdWdJbkF1dG9TdGFydFByb3ZpZGVyLgotc3RhdGljIGNvbnN0IGRvdWJsZSBwbHVnSW5BdXRv
U3RhcnRFeHBpcmF0aW9uVGltZVVwZGF0ZVRocmVzaG9sZCA9IDI5ICogMjQgKiA2MCAqIDYwOwor
c3RhdGljIGNvbnN0IFNlY29uZHMgcGx1Z0luQXV0b1N0YXJ0RXhwaXJhdGlvblRpbWVVcGRhdGVU
aHJlc2hvbGQgeyAyOSAqIDI0ICogNjAgKiA2MCB9OwogCiAvLyBUaGlzIHNob3VsZCBiZSBncmVh
dGVyIHRoYW4gdGlsZVJldmFsaWRhdGlvblRpbWVvdXQgaW4gVGlsZUNvbnRyb2xsZXIuCiBzdGF0
aWMgY29uc3QgU2Vjb25kcyBub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBEZWxheSB7IDEwX3MgfTsK
QEAgLTIwMiw3ICsyMDIsNyBAQCBXZWJQcm9jZXNzOjpXZWJQcm9jZXNzKCkKICAgICBhZGRTdXBw
bGVtZW50PFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyPigpOwogI2VuZGlmCiAKLSAgICBtX3BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9u
SUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKTsKKyAgICBtX3BsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNzaW9uSUQoKSwgSGFz
aE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+KCkpOwogCiAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OnNoYXJlZCgpLnNldE5vdGlmaWNhdGlvbkNhbGxiYWNrKFt0aGlzXSAoVmVjdG9yPFJlc291cmNl
TG9hZFN0YXRpc3RpY3M+JiYgc3RhdGlzdGljcykgewogICAgICAgICBBU1NFUlQoIXN0YXRpc3Rp
Y3MuaXNFbXB0eSgpKTsKQEAgLTgwMCw4ICs4MDAsOCBAQCBzdGF0aWMgdW5zaWduZWQgaGFzaEZv
clBsdWdJbk9yaWdpbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1
ZwogCiBib29sIFdlYlByb2Nlc3M6OmlzUGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25l
ZCBwbHVnSW5PcmlnaW5IYXNoLCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7Ci0gICAgSGFz
aE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj46OmNvbnN0X2l0
ZXJhdG9yIHNlc3Npb25JdGVyYXRvciA9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmZp
bmQoc2Vzc2lvbklEKTsKLSAgICBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+Ojpjb25zdF9pdGVy
YXRvciBpdDsKKyAgICBIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBX
YWxsVGltZT4+Ojpjb25zdF9pdGVyYXRvciBzZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Npb25JRCk7CisgICAgSGFzaE1hcDx1bnNpZ25lZCwg
V2FsbFRpbWU+Ojpjb25zdF9pdGVyYXRvciBpdDsKICAgICBib29sIGNvbnRhaW5zID0gZmFsc2U7
CiAKICAgICBpZiAoc2Vzc2lvbkl0ZXJhdG9yICE9IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFz
aGVzLmVuZCgpKSB7CkBAIC04MTQsNyArODE0LDcgQEAgYm9vbCBXZWJQcm9jZXNzOjppc1BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQgcGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXMK
ICAgICAgICAgaWYgKGl0ID09IHNlc3Npb25JdGVyYXRvci0+dmFsdWUuZW5kKCkpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHJldHVybiBjdXJyZW50VGltZSgpIDwgaXQt
PnZhbHVlOworICAgIHJldHVybiBXYWxsVGltZTo6bm93KCkgPCBpdC0+dmFsdWU7CiB9CiAKIGJv
b2wgV2ViUHJvY2Vzczo6c2hvdWxkUGx1Z0luQXV0b1N0YXJ0RnJvbU9yaWdpbihXZWJQYWdlJiB3
ZWJQYWdlLCBjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYgcGx1Z2luT3Jp
Z2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQpAQCAtODUxLDI4ICs4NTEsMjggQEAgdm9pZCBX
ZWJQcm9jZXNzOjpwbHVnSW5EaWRTdGFydEZyb21PcmlnaW4oY29uc3QgU3RyaW5nJiBwYWdlT3Jp
Z2luLCBjb25zdCBTdHJpbmcKICAgICAvLyBjb21lcyBiYWNrIGZyb20gdGhlIHBhcmVudCBwcm9j
ZXNzLiBUZW1wb3JhcmlseSBhZGQgdGhpcyBoYXNoIHRvIHRoZSBsaXN0IHdpdGggYSB0aGlydHkK
ICAgICAvLyBzZWNvbmQgdGltZW91dC4gVGhhdCB3YXksIGV2ZW4gaWYgdGhlIHBhcmVudCBkZWNp
ZGVzIG5vdCB0byBhZGQgaXQsIHdlJ2xsIG9ubHkgYmUKICAgICAvLyBpbmNvcnJlY3QgZm9yIGEg
bGl0dGxlIHdoaWxlLgotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChzZXNz
aW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnNldChw
bHVnSW5PcmlnaW5IYXNoLCBjdXJyZW50VGltZSgpICsgMzAgKiAxMDAwKTsKKyAgICBtX3BsdWdJ
bkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoc2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBX
YWxsVGltZT4oKSkuaXRlcmF0b3ItPnZhbHVlLnNldChwbHVnSW5PcmlnaW5IYXNoLCBXYWxsVGlt
ZTo6bm93KCkgKyAzMF9zICogMTAwMCk7CiAKICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUG9vbDo6QWRkUGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
SGFzaChwYWdlT3JpZ2luLCBwbHVnSW5PcmlnaW5IYXNoLCBzZXNzaW9uSUQpLCAwKTsKIH0KIAot
dm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVk
IHBsdWdJbk9yaWdpbkhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklEKQordm9pZCBXZWJQcm9jZXNzOjpkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5I
YXNoKHVuc2lnbmVkIHBsdWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lLCBQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB7CiAgICAgLy8gV2hlbiBjYWxsZWQsIHNvbWUgd2Vi
IHByb2Nlc3MgKHdoaWNoIGFsc28gbWlnaHQgYmUgdGhpcyBvbmUpIGFkZGVkIHRoZSBvcmlnaW4g
Zm9yIGF1dG8tc3RhcnRpbmcsCiAgICAgLy8gb3IgcmVjZWl2ZWQgdXNlciBpbnRlcmFjdGlvbi4K
ICAgICAvLyBTZXQgdGhlIGJpdCB0byBhdm9pZCBoYXZpbmcgcmVkdW5kYW50bHkgY2FsbCBpbnRv
IHRoZSBVSSBwcm9jZXNzIHVwb24gdXNlciBpbnRlcmFjdGlvbi4KLSAgICBtX3BsdWdJbkF1dG9T
dGFydE9yaWdpbkhhc2hlcy5hZGQoc2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+
KCkpLml0ZXJhdG9yLT52YWx1ZS5zZXQocGx1Z0luT3JpZ2luSGFzaCwgZXhwaXJhdGlvblRpbWUp
OworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLmFkZChzZXNzaW9uSUQsIEhhc2hN
YXA8dW5zaWduZWQsIFdhbGxUaW1lPigpKS5pdGVyYXRvci0+dmFsdWUuc2V0KHBsdWdJbk9yaWdp
bkhhc2gsIGV4cGlyYXRpb25UaW1lKTsKIH0KIAotdm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJ
bkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29uc3QgSGFzaE1hcDx1bnNpZ25lZCwgZG91
YmxlPiYgaGFzaGVzKQordm9pZCBXZWJQcm9jZXNzOjpyZXNldFBsdWdJbkF1dG9TdGFydE9yaWdp
bkRlZmF1bHRIYXNoZXMoY29uc3QgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+JiBoYXNoZXMp
CiB7CiAgICAgbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuY2xlYXIoKTsKLSAgICBtX3Bs
dWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRTZXNz
aW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPigpKS5pdGVyYXRvci0+dmFsdWUuc3dh
cChjb25zdF9jYXN0PEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4mPihoYXNoZXMpKTsKKyAgICBt
X3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5hZGQoUEFMOjpTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+KCkpLml0ZXJhdG9yLT52YWx1
ZS5zd2FwKGNvbnN0X2Nhc3Q8SGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+Jj4oaGFzaGVzKSk7
CiB9CiAKLXZvaWQgV2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMo
Y29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4m
IGhhc2hlcykKK3ZvaWQgV2ViUHJvY2Vzczo6cmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNo
ZXMoY29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRp
bWU+PiYgaGFzaGVzKQogewotICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLnN3YXAo
Y29uc3RfY2FzdDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBkb3Vi
bGU+PiY+KGhhc2hlcykpOworICAgIG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzLnN3YXAo
Y29uc3RfY2FzdDxIYXNoTWFwPFBBTDo6U2Vzc2lvbklELCBIYXNoTWFwPHVuc2lnbmVkLCBXYWxs
VGltZT4+Jj4oaGFzaGVzKSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzczo6cGx1Z0luRGlkUmVjZWl2
ZVVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcmIHBhZ2VPcmlnaW4sIGNvbnN0IFN0cmluZyYg
cGx1Z2luT3JpZ2luLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpCkBAIC04ODQsOCArODg0LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNl
aXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICBp
ZiAoIXBsdWdJbk9yaWdpbkhhc2gpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhhc2hNYXA8UEFM
OjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRvdWJsZT4+Ojpjb25zdF9pdGVyYXRvciBz
ZXNzaW9uSXRlcmF0b3IgPSBtX3BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2hlcy5maW5kKHNlc3Np
b25JRCk7Ci0gICAgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPjo6Y29uc3RfaXRlcmF0b3IgaXQ7
CisgICAgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+
Pjo6Y29uc3RfaXRlcmF0b3Igc2Vzc2lvbkl0ZXJhdG9yID0gbV9wbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoZXMuZmluZChzZXNzaW9uSUQpOworICAgIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1l
Pjo6Y29uc3RfaXRlcmF0b3IgaXQ7CiAgICAgYm9vbCBjb250YWlucyA9IGZhbHNlOwogICAgIGlm
IChzZXNzaW9uSXRlcmF0b3IgIT0gbV9wbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMuZW5kKCkp
IHsKICAgICAgICAgaXQgPSBzZXNzaW9uSXRlcmF0b3ItPnZhbHVlLmZpbmQocGx1Z0luT3JpZ2lu
SGFzaCk7CkBAIC04OTgsNyArODk4LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbHVnSW5EaWRSZWNl
aXZlVXNlckludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFnZU9yaWdpbiwgY29uc3QKICAgICAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoaXQtPnZhbHVlIC0gY3VycmVudFRpbWUo
KSA+IHBsdWdJbkF1dG9TdGFydEV4cGlyYXRpb25UaW1lVXBkYXRlVGhyZXNob2xkKQorICAgIGlm
IChpdC0+dmFsdWUgLSBXYWxsVGltZTo6bm93KCkgPiBwbHVnSW5BdXRvU3RhcnRFeHBpcmF0aW9u
VGltZVVwZGF0ZVRocmVzaG9sZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgcGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Bvb2w6OlBsdWdJbkRpZFJl
Y2VpdmVVc2VySW50ZXJhY3Rpb24ocGx1Z0luT3JpZ2luSGFzaCwgc2Vzc2lvbklEKSwgMCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCA1MmI5ZDNmZWM0NDM0NTY0N2I1
NDYxNjUyYmE5Mzc5ZWVmMWFlMGY4Li45ZTc5ZmViYjJjYzk1NDllOWEyYThlMGJiMTAwMjM3NDM3
M2UxYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTI4MCw5ICsy
ODAsOSBAQCBjbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CiAgICAgdm9p
ZCBmdWxsS2V5Ym9hcmRBY2Nlc3NNb2RlQ2hhbmdlZChib29sIGZ1bGxLZXlib2FyZEFjY2Vzc0Vu
YWJsZWQpOwogCiAgICAgYm9vbCBpc1BsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godW5zaWduZWQg
cGx1Z0luT3JpZ2luSGFzaCwgUEFMOjpTZXNzaW9uSUQpOwotICAgIHZvaWQgZGlkQWRkUGx1Z0lu
QXV0b1N0YXJ0T3JpZ2luSGFzaCh1bnNpZ25lZCBwbHVnSW5PcmlnaW5IYXNoLCBkb3VibGUgZXhw
aXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEKTsKLSAgICB2b2lkIHJlc2V0UGx1Z0luQXV0b1N0
YXJ0T3JpZ2luRGVmYXVsdEhhc2hlcyhjb25zdCBIYXNoTWFwPHVuc2lnbmVkLCBkb3VibGU+JiBo
YXNoZXMpOwotICAgIHZvaWQgcmVzZXRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoY29uc3Qg
SGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFzaE1hcDx1bnNpZ25lZCwgZG91YmxlPj4mIGhhc2hl
cyk7CisgICAgdm9pZCBkaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmlnaW5IYXNoKHVuc2lnbmVkIHBs
dWdJbk9yaWdpbkhhc2gsIFdhbGxUaW1lIGV4cGlyYXRpb25UaW1lLCBQQUw6OlNlc3Npb25JRCk7
CisgICAgdm9pZCByZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoY29uc3Qg
SGFzaE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+JiBoYXNoZXMpOworICAgIHZvaWQgcmVzZXRQbHVn
SW5BdXRvU3RhcnRPcmlnaW5IYXNoZXMoY29uc3QgSGFzaE1hcDxQQUw6OlNlc3Npb25JRCwgSGFz
aE1hcDx1bnNpZ25lZCwgV2FsbFRpbWU+PiYgaGFzaGVzKTsKIAogICAgIHZvaWQgcGxhdGZvcm1T
ZXRDYWNoZU1vZGVsKENhY2hlTW9kZWwpOwogCkBAIC0zODYsNyArMzg2LDcgQEAgY2xhc3MgV2Vi
UHJvY2VzcyA6IHB1YmxpYyBDaGlsZFByb2Nlc3MgewogI2VuZGlmCiAgICAgUmVmUHRyPFdlYklu
c3BlY3RvckludGVycnVwdERpc3BhdGNoZXI+IG1fd2ViSW5zcGVjdG9ySW50ZXJydXB0RGlzcGF0
Y2hlcjsKIAotICAgIEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIGRv
dWJsZT4+IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2luSGFzaGVzOworICAgIEhhc2hNYXA8UEFMOjpT
ZXNzaW9uSUQsIEhhc2hNYXA8dW5zaWduZWQsIFdhbGxUaW1lPj4gbV9wbHVnSW5BdXRvU3RhcnRP
cmlnaW5IYXNoZXM7CiAgICAgSGFzaFNldDxTdHJpbmc+IG1fcGx1Z0luQXV0b1N0YXJ0T3JpZ2lu
czsKIAogICAgIGJvb2wgbV9oYXNTZXRDYWNoZU1vZGVsIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNTc5OGQ3ZDE0
ZjM3YzE0Njg5NWVmMWEyOWQ2MGIzYmFhNDNjMWNlMC4uNTUzZGU0NmM2NmRmN2E1NzE4MjM2YmVk
ZWFhM2Y2MTc2M2VlNTFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUxLDkgKzUxLDkgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAgICAgRGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKQogCiAgICAgIyBQbHVnLWlucy4KLSAgICBEaWRBZGRQbHVnSW5BdXRvU3RhcnRPcmln
aW5IYXNoKHVpbnQzMl90IGhhc2gsIGRvdWJsZSBleHBpcmF0aW9uVGltZSwgUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKQotICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3JpZ2luRGVmYXVsdEhhc2hl
cyhIYXNoTWFwPHVpbnQzMl90LGRvdWJsZT4gaGFzaGVzKQotICAgIFJlc2V0UGx1Z0luQXV0b1N0
YXJ0T3JpZ2luSGFzaGVzKEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dWludDMyX3Qs
ZG91YmxlPj4gaGFzaGVzKQorICAgIERpZEFkZFBsdWdJbkF1dG9TdGFydE9yaWdpbkhhc2godWlu
dDMyX3QgaGFzaCwgV2FsbFRpbWUgZXhwaXJhdGlvblRpbWUsIFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkKKyAgICBSZXNldFBsdWdJbkF1dG9TdGFydE9yaWdpbkRlZmF1bHRIYXNoZXMoSGFzaE1h
cDx1aW50MzJfdCxXYWxsVGltZT4gaGFzaGVzKQorICAgIFJlc2V0UGx1Z0luQXV0b1N0YXJ0T3Jp
Z2luSGFzaGVzKEhhc2hNYXA8UEFMOjpTZXNzaW9uSUQsIEhhc2hNYXA8dWludDMyX3QsV2FsbFRp
bWU+PiBoYXNoZXMpCiAgICAgU2V0UGx1Z2luTG9hZENsaWVudFBvbGljeSh1aW50OF90IHBvbGlj
eSwgU3RyaW5nIGhvc3QsIFN0cmluZyBidW5kbGVJZGVudGlmaWVyLCBTdHJpbmcgdmVyc2lvblN0
cmluZykKICAgICBSZXNldFBsdWdpbkxvYWRDbGllbnRQb2xpY2llcyhIYXNoTWFwPFN0cmluZywg
SGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8U3RyaW5nLCB1aW50OF90Pj4+IHBsdWdpbkxvYWRDbGll
bnRQb2xpY2llcykKICAgICBDbGVhclBsdWdpbkNsaWVudFBvbGljaWVzKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IDhkZjYx
Yzc2MGU2ZmU1OWUzYmRjMTU3YzU1Yjk0MmYzMDc3ZDAxZjcuLjA2ZjQzMzlkY2VmZjU3MjBjYzU2
MjU2NmY2NTQ0MTdjNzg1YTY2NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQpAQCAtNzAsNiArNzAsNyBAQAogI2ltcG9ydCA8cGFs
L3NwaS9tYWMvTlNBY2Nlc3NpYmlsaXR5U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9OU0Fw
cGxpY2F0aW9uU1BJLmg+CiAjaW1wb3J0IDxzdGRpby5oPgorI2ltcG9ydCA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAKICNpZiBQTEFURk9STShJT1MpCiAjaW1wb3J0IDxVSUtpdC9VSUFjY2Vzc2liaWxp
dHkuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vz
c01haW5XUEUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFp
bldQRS5jcHAKaW5kZXggZDY1Mzg1OTI3OTI1ZjE3NmUzOTlhNTQzZTMzMTlmODI3NzQ3ODRjZi4u
MDIzNTRjNjI0NmVlMzQ0MzIyMDMzOWVlMjlhM2Q0MDM4YzZiNTYzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlIDxnbGliLmg+CiAjaW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVk
ZSA8bGlic291cC9zb3VwLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCA3NjQ5
ZWEzYzQwNTdhY2Q2MDRjY2VhZmU0MWY4Nzg3NTY4NmRjMmExLi4zNGM0NmZmMzFhNjU0NjlhNGJh
NDc5YTM3YTcwZmM1YjkyOTU4YmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEw
Niw3ICsxMDYsNyBAQCBjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudCB7CiAgICAgdm9pZCBkaXNwYXRjaERpZERpc3BhdGNoT25sb2Fk
RXZlbnRzKCkgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVj
dEZvclByb3Zpc2lvbmFsTG9hZCgpIGZpbmFsOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxD
bGllbnRSZWRpcmVjdCgpIGZpbmFsOwotICAgIHZvaWQgZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVu
dFJlZGlyZWN0KGNvbnN0IFdlYkNvcmU6OlVSTCYsIGRvdWJsZSBpbnRlcnZhbCwgZG91YmxlIGZp
cmVEYXRlKSBmaW5hbDsKKyAgICB2b2lkIGRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUgaW50ZXJ2YWwsIFdhbGxUaW1lIGZpcmVEYXRl
KSBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdlKCkg
ZmluYWw7CiAgICAgdm9pZCBkaXNwYXRjaERpZFB1c2hTdGF0ZVdpdGhpblBhZ2UoKSBmaW5hbDsK
ICAgICB2b2lkIGRpc3BhdGNoRGlkUmVwbGFjZVN0YXRlV2l0aGluUGFnZSgpIGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5tbQppbmRleCA2MjdiM2U0MTM0NzMxMjhmMTU1MTQ3Mjc0ODIw
YzdhZDIyZGY3OGFlLi43Zjg1NjRhZjI5NzAzYmI2YzVmNzQ2YTM5MWFkNDM0OWJmYjFhOTY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQpAQCAtNTk4LDEzICs1OTgsMTMgQEAgdm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRSZWRpcmVjdCgpCiAg
ICAgICAgIENhbGxGcmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPmRpZENhbmNlbENs
aWVudFJlZGlyZWN0Rm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRD
YW5jZWxDbGllbnRSZWRpcmVjdEZvckZyYW1lOiksIG1fd2ViRnJhbWUuZ2V0KCkpOwogfQogCi12
b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3QoY29uc3QgVVJMJiB1cmwsIGRvdWJsZSBkZWxheSwgZG91YmxlIGZpcmVEYXRlKQordm9pZCBX
ZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0KGNv
bnN0IFVSTCYgdXJsLCBkb3VibGUgZGVsYXksIFdhbGxUaW1lIGZpcmVEYXRlKQogewogICAgIFdl
YlZpZXcgKndlYlZpZXcgPSBnZXRXZWJWaWV3KG1fd2ViRnJhbWUuZ2V0KCkpOwogICAgIFdlYkZy
YW1lTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25DYWNoZSogaW1wbGVtZW50YXRpb25zID0gV2Vi
Vmlld0dldEZyYW1lTG9hZERlbGVnYXRlSW1wbGVtZW50YXRpb25zKHdlYlZpZXcpOwogICAgIGlm
IChpbXBsZW1lbnRhdGlvbnMtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTERlbGF5Rmly
ZURhdGVGb3JGcmFtZUZ1bmMpIHsKICAgICAgICAgTlNVUkwgKmNvY29hVVJMID0gdXJsOwotICAg
ICAgICBDYWxsRnJhbWVMb2FkRGVsZWdhdGUoaW1wbGVtZW50YXRpb25zLT53aWxsUGVyZm9ybUNs
aWVudFJlZGlyZWN0VG9VUkxEZWxheUZpcmVEYXRlRm9yRnJhbWVGdW5jLCB3ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzp3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0VG9VUkw6ZGVsYXk6ZmlyZURh
dGU6Zm9yRnJhbWU6KSwgY29jb2FVUkwsIGRlbGF5LCBbTlNEYXRlIGRhdGVXaXRoVGltZUludGVy
dmFsU2luY2UxOTcwOmZpcmVEYXRlXSwgbV93ZWJGcmFtZS5nZXQoKSk7CisgICAgICAgIENhbGxG
cmFtZUxvYWREZWxlZ2F0ZShpbXBsZW1lbnRhdGlvbnMtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJl
Y3RUb1VSTERlbGF5RmlyZURhdGVGb3JGcmFtZUZ1bmMsIHdlYlZpZXcsIEBzZWxlY3Rvcih3ZWJW
aWV3OndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTDpkZWxheTpmaXJlRGF0ZTpmb3JGcmFt
ZTopLCBjb2NvYVVSTCwgZGVsYXksIFtOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5
NzA6ZmlyZURhdGUuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCldLCBtX3dlYkZyYW1lLmdl
dCgpKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCBjNTkz
MzU2MTllNjc2NjFmNGE0MTczZTIzNzhkNjRhMzY4ZjAxNzBmLi5mZDg0YzFjZTVjZjFhM2QyNTYz
MjVkYmRmYTEwOWQyNjczMzFkNzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC0zNTQsMTIgKzM1NCwxMiBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZENhbmNlbENsaWVudFJlZGlyZWN0KCkKICAgICAgICAgZnJhbWVMb2FkRGVsZWdhdGUtPmRpZENh
bmNlbENsaWVudFJlZGlyZWN0Rm9yRnJhbWUod2ViVmlldywgbV93ZWJGcmFtZSk7CiB9CiAKLXZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVj
dChjb25zdCBVUkwmIHVybCwgZG91YmxlIGRlbGF5LCBkb3VibGUgZmlyZURhdGUpCit2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaFdpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29u
c3QgVVJMJiB1cmwsIGRvdWJsZSBkZWxheSwgV2FsbFRpbWUgZmlyZURhdGUpCiB7CiAgICAgV2Vi
Vmlldyogd2ViVmlldyA9IG1fd2ViRnJhbWUtPndlYlZpZXcoKTsKICAgICBDT01QdHI8SVdlYkZy
YW1lTG9hZERlbGVnYXRlPiBmcmFtZUxvYWREZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKHdl
YlZpZXctPmZyYW1lTG9hZERlbGVnYXRlKCZmcmFtZUxvYWREZWxlZ2F0ZSkpKQotICAgICAgICBm
cmFtZUxvYWREZWxlZ2F0ZS0+d2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdFRvVVJMKHdlYlZpZXcs
IEJTdHJpbmcodXJsLnN0cmluZygpKSwgZGVsYXksIE1hcnNoYWxsaW5nSGVscGVyczo6Q0ZBYnNv
bHV0ZVRpbWVUb0RBVEUoZmlyZURhdGUpLCBtX3dlYkZyYW1lKTsKKyAgICAgICAgZnJhbWVMb2Fk
RGVsZWdhdGUtPndpbGxQZXJmb3JtQ2xpZW50UmVkaXJlY3RUb1VSTCh3ZWJWaWV3LCBCU3RyaW5n
KHVybC5zdHJpbmcoKSksIGRlbGF5LCBNYXJzaGFsbGluZ0hlbHBlcnM6OkNGQWJzb2x1dGVUaW1l
VG9EQVRFKGZpcmVEYXRlLnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpKSwgbV93ZWJGcmFt
ZSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ2hhbmdlTG9j
YXRpb25XaXRoaW5QYWdlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDAxYTBlZWYz
NjViMDMzM2EyNjRiOTMwYTQxY2ZjNGYyMWE4YTQyMDIuLjliODMzM2JjMWFiOTk2N2I2ZjdlMzlh
MjViNzU0ZmYzNDk4MDg2MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtODUsNyAr
ODUsNyBAQCBjbGFzcyBXZWJGcmFtZUxvYWRlckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpGcmFt
ZUxvYWRlckNsaWVudCwgcHVibGljIFdlYkNvcmU6OgogICAgIHZvaWQgZGlzcGF0Y2hEaWREaXNw
YXRjaE9ubG9hZEV2ZW50cygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZl
U2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRp
c3BhdGNoRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3QoKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc3Bh
dGNoV2lsbFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUg
aW50ZXJ2YWwsIGRvdWJsZSBmaXJlRGF0ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaFdp
bGxQZXJmb3JtQ2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlIGludGVy
dmFsLCBXYWxsVGltZSBmaXJlRGF0ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZENo
YW5nZUxvY2F0aW9uV2l0aGluUGFnZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hEaWRQ
dXNoU3RhdGVXaXRoaW5QYWdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERpZFJlcGxh
Y2VTdGF0ZVdpdGhpblBhZ2UoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkRvd25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJEb3du
bG9hZC5oCmluZGV4IDZhZDczNDY4YTcyMGE5NzlkZjA2NjJmNGNlYmVhZmJhMzMxMDlhZTQuLjg0
ODg1ZjI0ZmI4MzRhMmRmY2E4MmVlYjc5ZTE5YzcxOTEwNGE0NzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1dlYkRvd25sb2FkLmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vV2ViRG93bmxvYWQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldlYktpdC5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9XYWxsVGltZS5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKQEAgLTExNyw4ICsxMTgsOCBAQCBjbGFz
cyBXZWJEb3dubG9hZAogICAgIENPTVB0cjxJV2ViRG93bmxvYWREZWxlZ2F0ZT4gbV9kZWxlZ2F0
ZTsKIAogI2lmbmRlZiBOREVCVUcKLSAgICBkb3VibGUgbV9zdGFydFRpbWU7Ci0gICAgZG91Ymxl
IG1fZGF0YVRpbWU7CisgICAgV2FsbFRpbWUgbV9zdGFydFRpbWU7CisgICAgV2FsbFRpbWUgbV9k
YXRhVGltZTsKICAgICBpbnQgbV9yZWNlaXZlZDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkRvd25sb2FkQ0ZOZXQuY3BwIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vV2ViRG93bmxvYWRDRk5ldC5jcHAKaW5kZXggMjZlZjVkOWQ3NGQ0NDdiYWJk
ZWM3NTM2MTZkODE4YmVmZTM1NzJhYy4uOGU3MTk3OWNhOTdmZDU1MDJlYWNiMmRlY2NlOWFmNjM5
MDc1NjVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRG93bmxvYWRD
Rk5ldC5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViRG93bmxvYWRDRk5ldC5j
cHAKQEAgLTM0NSw5ICszNDUsOSBAQCBIUkVTVUxUIFdlYkRvd25sb2FkOjp1c2VDcmVkZW50aWFs
KF9Jbl9vcHRfIElXZWJVUkxDcmVkZW50aWFsKiBjcmVkZW50aWFsLCBfSW5fbwogdm9pZCBXZWJE
b3dubG9hZDo6ZGlkU3RhcnQoKQogewogI2lmbmRlZiBOREVCVUcKLSAgICBtX3N0YXJ0VGltZSA9
IG1fZGF0YVRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIG1fc3RhcnRUaW1lID0gbV9kYXRhVGlt
ZSA9IFdhbGxUaW1lOjpub3coKTsKICAgICBtX3JlY2VpdmVkID0gMDsKLSAgICBMT0coRG93bmxv
YWQsICJET1dOTE9BRCAtIFN0YXJ0ZWQgJXAgYXQgJS4zZiBzZWNvbmRzIiwgdGhpcywgbV9zdGFy
dFRpbWUpOworICAgIExPRyhEb3dubG9hZCwgIkRPV05MT0FEIC0gU3RhcnRlZCAlcCBhdCAlLjNm
IHNlY29uZHMiLCB0aGlzLCBtX3N0YXJ0VGltZS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMo
KSk7CiAjZW5kaWYKICAgICBpZiAoRkFJTEVEKG1fZGVsZWdhdGUtPmRpZEJlZ2luKHRoaXMpKSkK
ICAgICAgICAgTE9HX0VSUk9SKCJEb3dubG9hZERlbGVnYXRlLT5kaWRCZWdpbiBmYWlsZWQiKTsK
QEAgLTQxMSw5ICs0MTEsOSBAQCB2b2lkIFdlYkRvd25sb2FkOjpkaWRSZWNlaXZlRGF0YShDRklu
ZGV4IGxlbmd0aCkKIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgbV9yZWNlaXZlZCArPSBsZW5ndGg7
Ci0gICAgZG91YmxlIGN1cnJlbnQgPSBjdXJyZW50VGltZSgpOwotICAgIGlmIChjdXJyZW50IC0g
bV9kYXRhVGltZSA+IDIuMCkKLSAgICAgICAgTE9HKERvd25sb2FkLCAiRE9XTkxPQUQgLSAlcCBo
YW5nZWQgZm9yICUuM2Ygc2Vjb25kcyAtIFJlY2VpdmVkICVpIGJ5dGVzIGZvciBhIHRvdGFsIG9m
ICVpIiwgdGhpcywgY3VycmVudCAtIG1fZGF0YVRpbWUsIGxlbmd0aCwgbV9yZWNlaXZlZCk7Cisg
ICAgV2FsbFRpbWUgY3VycmVudCA9IFdhbGxUaW1lOjpub3coKTsKKyAgICBpZiAoKGN1cnJlbnQg
LSBtX2RhdGFUaW1lKSA+IDJfcykKKyAgICAgICAgTE9HKERvd25sb2FkLCAiRE9XTkxPQUQgLSAl
cCBoYW5nZWQgZm9yICUuM2Ygc2Vjb25kcyAtIFJlY2VpdmVkICVpIGJ5dGVzIGZvciBhIHRvdGFs
IG9mICVpIiwgdGhpcywgKGN1cnJlbnQgLSBtX2RhdGFUaW1lKS5zZWNvbmRzKCksIGxlbmd0aCwg
bV9yZWNlaXZlZCk7CiAgICAgbV9kYXRhVGltZSA9IGN1cnJlbnQ7CiAjZW5kaWYKICAgICBpZiAo
RkFJTEVEKG1fZGVsZWdhdGUtPmRpZFJlY2VpdmVEYXRhT2ZMZW5ndGgodGhpcywgbGVuZ3RoKSkp
CkBAIC00NTgsNyArNDU4LDcgQEAgdm9pZCBXZWJEb3dubG9hZDo6ZGlkQ3JlYXRlRGVzdGluYXRp
b24oQ0ZVUkxSZWYgZGVzdGluYXRpb24pCiB2b2lkIFdlYkRvd25sb2FkOjpkaWRGaW5pc2goKQog
ewogI2lmbmRlZiBOREVCVUcKLSAgICBMT0coRG93bmxvYWQsICJET1dOTE9BRCAtIEZpbmlzaGVk
ICVwIGFmdGVyICVpIGJ5dGVzIGFuZCAlLjNmIHNlY29uZHMiLCB0aGlzLCBtX3JlY2VpdmVkLCBj
dXJyZW50VGltZSgpIC0gbV9zdGFydFRpbWUpOworICAgIExPRyhEb3dubG9hZCwgIkRPV05MT0FE
IC0gRmluaXNoZWQgJXAgYWZ0ZXIgJWkgYnl0ZXMgYW5kICUuM2Ygc2Vjb25kcyIsIHRoaXMsIG1f
cmVjZWl2ZWQsIChXYWxsVGltZTo6bm93KCkgLSBtX3N0YXJ0VGltZSkuc2Vjb25kcygpKTsKICNl
bmRpZgogCiAgICAgQVNTRVJUKCFtX2J1bmRsZVBhdGguaXNFbXB0eSgpICYmICFtX2Rlc3RpbmF0
aW9uLmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMGM5N2IzYzliY2I4NmRhODExNTM5YmRlYzhjMDhmODQ4ZTA5YzU5Yi4uMmY0
NGI0ZTA1NzlhMDUyN2JlZGUxZDlhNmJiNDU0NWQ2MWI5NzY2NSAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE4LTAy
LTIyICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCisgICAgICAgIFJl
bW92ZSBjdXJyZW50VGltZSgpIC8gY3VycmVudFRpbWVNUygpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwNTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAocHJlY2lzZVRpbWVDYWxsYmFjayk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgIChUZXN0UnVubmVyOjpzZXRNb2Nr
R2VvbG9jYXRpb25Qb3NpdGlvbik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q29uZGl0aW9uLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaHJlYWRH
cm91cC5jcHA6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNw
cDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNw
cDoKKyAgICAgICAgKFdUUjo6R2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBvc2l0aW9uKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpwcmVjaXNlVGltZSk6CisKKzIwMTgtMDItMjIg
IFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgUmVtb3Zl
IHNsZWVwKGRvdWJsZSkgYW5kIHNsZWVwTVMoZG91YmxlKSBpbnRlcmZhY2VzCiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODMwMzgKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAppbmRleCA0MGFmZDEwYzVlYzhlMWM1MzhiNGE4ODcxMmJhM2Jl
OTE0ZGUxZDRiLi43MmM2NDVjMDE5ZmY3OTBlMDA4ODkxZDlmYWUwMTk4MWExMzQwZGY5IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtNDgsMTIgKzQ4LDEyIEBACiAjaW5jbHVk
ZSA8bG9jYWxlLmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgotI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2dnaW5n
QWNjdW11bGF0b3IuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE3NjgsNyArMTc2OCw3IEBA
IHN0YXRpYyBKU1ZhbHVlUmVmIHNldEJhY2tpbmdTY2FsZUZhY3RvckNhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIHByZWNpc2VUaW1l
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewotICAgIHJldHVybiBKU1ZhbHVlTWFrZU51
bWJlcihjb250ZXh0LCBXVEY6OmN1cnJlbnRUaW1lKCkpOworICAgIHJldHVybiBKU1ZhbHVlTWFr
ZU51bWJlcihjb250ZXh0LCBXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNv
bmRzKCkpOwogfQogCiBzdGF0aWMgSlNWYWx1ZVJlZiBpbWFnZUNvdW50SW5HZW5lcmFsUGFzdGVi
b2FyZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggOTQ4YWJhMDc1MmNlOGIyMWY4M2RkNzM0
M2U3NTAzZTBkMmYyMjZmMC4uMWU5ZDYyN2I1YjViZjYxMmFhZWJkM2FhZmNhNjIzYzdkZTVlMzZh
OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTc0LDkg
Kzc0LDkgQEAKICNpbXBvcnQgPFdlYktpdC9XZWJTdG9yYWdlTWFuYWdlclByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XZWJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUu
aD4KLSNpbXBvcnQgPHd0Zi9DdXJyZW50VGltZS5oPgogI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4K
ICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi9XYWxsVGltZS5oPgogCiAj
aWYgIVBMQVRGT1JNKElPUykKICNpbXBvcnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgpAQCAtNDQ3LDkg
KzQ0Nyw5IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91
YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkCiAgICAgV2ViR2VvbG9jYXRpb25Qb3Np
dGlvbiAqcG9zaXRpb24gPSBuaWw7CiAgICAgaWYgKCFwcm92aWRlc0FsdGl0dWRlICYmICFwcm92
aWRlc0FsdGl0dWRlQWNjdXJhY3kgJiYgIXByb3ZpZGVzSGVhZGluZyAmJiAhcHJvdmlkZXNTcGVl
ZCkgewogICAgICAgICAvLyBUZXN0IHRoZSBleHBvc2VkIEFQSS4KLSAgICAgICAgcG9zaXRpb24g
PSBbW1dlYkdlb2xvY2F0aW9uUG9zaXRpb24gYWxsb2NdIGluaXRXaXRoVGltZXN0YW1wOmN1cnJl
bnRUaW1lKCkgbGF0aXR1ZGU6bGF0aXR1ZGUgbG9uZ2l0dWRlOmxvbmdpdHVkZSBhY2N1cmFjeTph
Y2N1cmFjeV07CisgICAgICAgIHBvc2l0aW9uID0gW1tXZWJHZW9sb2NhdGlvblBvc2l0aW9uIGFs
bG9jXSBpbml0V2l0aFRpbWVzdGFtcDpXYWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2go
KS5zZWNvbmRzKCkgbGF0aXR1ZGU6bGF0aXR1ZGUgbG9uZ2l0dWRlOmxvbmdpdHVkZSBhY2N1cmFj
eTphY2N1cmFjeV07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Q
b3NpdGlvbiBnZW9sb2NhdGlvblBvc2l0aW9uIHsgY3VycmVudFRpbWUoKSwgbGF0aXR1ZGUsIGxv
bmdpdHVkZSwgYWNjdXJhY3kgfTsKKyAgICAgICAgV2ViQ29yZTo6R2VvbG9jYXRpb25Qb3NpdGlv
biBnZW9sb2NhdGlvblBvc2l0aW9uIHsgV2FsbFRpbWU6Om5vdygpLnNlY29uZHNTaW5jZUVwb2No
KCkuc2Vjb25kcygpLCBsYXRpdHVkZSwgbG9uZ2l0dWRlLCBhY2N1cmFjeSB9OwogICAgICAgICBp
ZiAocHJvdmlkZXNBbHRpdHVkZSkKICAgICAgICAgICAgIGdlb2xvY2F0aW9uUG9zaXRpb24uYWx0
aXR1ZGUgPSBhbHRpdHVkZTsKICAgICAgICAgaWYgKHByb3ZpZGVzQWx0aXR1ZGVBY2N1cmFjeSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0NvbmRpdGlvbi5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9Db25kaXRpb24uY3BwCmluZGV4IDBhMzI5
YzI4M2Y3Mjg3MWYxOGRkZmNjYzc1YjNhNTRhNDRlZDIxYjYuLjRlOGQ2ODA0OTAzYzM5MDBjZTNl
ZjFkYTM1NTJiNTQ3OGMzMzM2OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL0NvbmRpdGlvbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
Q29uZGl0aW9uLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgPG11dGV4PgogI2luY2x1
ZGUgPHRocmVhZD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0RhdGFMb2cuaD4KICNpbmNsdWRlIDx3dGYvRGVx
dWUuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvVGhyZWFkR3JvdXAuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvVGhyZWFkR3JvdXAuY3BwCmluZGV4IDI5MWEzZjAxOTQ5NTA3MDdjZTZiZGEzNmI3MDhm
ZDBhZGNkODEwNzcuLmRhZThlYzI2MmI3OTAxNThiYzZjMWQ3MTY0ZDM3OGFmZmZmYWFlNTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1RocmVhZEdyb3VwLmNwcAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9UaHJlYWRHcm91cC5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPHd0Zi9Db25kaXRp
b24uaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
R3JvdXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9Xb3JrUXVldWUuY3BwCmluZGV4IDVjZjE2NzEwN2Y2YzE0YWNiZDBjNmM5ZTI1
ZjY2YzNmMDkyOTkyNTEuLmZhZTVhODMyNTNjMzFlNjRhYjIxMDJlNjVhNGJlYTUxMmEwMzk2ZDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1dvcmtRdWV1ZS5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvV29ya1F1ZXVlLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogCiAjaW5jbHVkZSAiVGVzdC5oIgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0dlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCmlu
ZGV4IGMwYTkzNzA1ZGZlNTg0ZTRjZmIyNWExN2NkMzkwYTZkYzY2MDZmZTYuLjZmOTNjYTI3MzAz
MGY1Nzc2ZTMxOGY5ZTQ1NjkwMjJjZWUxNGI5MGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvR2VvbG9jYXRpb25Qcm92aWRlck1vY2suY3BwCkBAIC0yOSw3ICsyOSw3IEBACiAj
aW5jbHVkZSA8V2ViS2l0L1dLR2VvbG9jYXRpb25NYW5hZ2VyLmg+CiAjaW5jbHVkZSA8c3RyaW5n
Lmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvQ3VycmVudFRp
bWUuaD4KKyNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKQEAg
LTY1LDcgKzY1LDcgQEAgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6On5HZW9sb2NhdGlvblByb3Zp
ZGVyTW9jaygpCiAKIHZvaWQgR2VvbG9jYXRpb25Qcm92aWRlck1vY2s6OnNldFBvc2l0aW9uKGRv
dWJsZSBsYXRpdHVkZSwgZG91YmxlIGxvbmdpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHBy
b3ZpZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgYm9vbCBwcm92aWRlc0FsdGl0dWRlQWNj
dXJhY3ksIGRvdWJsZSBhbHRpdHVkZUFjY3VyYWN5LCBib29sIHByb3ZpZGVzSGVhZGluZywgZG91
YmxlIGhlYWRpbmcsIGJvb2wgcHJvdmlkZXNTcGVlZCwgZG91YmxlIHNwZWVkLCBib29sIHByb3Zp
ZGVzRmxvb3JMZXZlbCwgZG91YmxlIGZsb29yTGV2ZWwpCiB7Ci0gICAgbV9wb3NpdGlvbi5hZG9w
dChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYyhjdXJyZW50VGltZSgpLCBsYXRpdHVkZSwg
bG9uZ2l0dWRlLCBhY2N1cmFjeSwgcHJvdmlkZXNBbHRpdHVkZSwgYWx0aXR1ZGUsIHByb3ZpZGVz
QWx0aXR1ZGVBY2N1cmFjeSwgYWx0aXR1ZGVBY2N1cmFjeSwgcHJvdmlkZXNIZWFkaW5nLCBoZWFk
aW5nLCBwcm92aWRlc1NwZWVkLCBzcGVlZCwgcHJvdmlkZXNGbG9vckxldmVsLCBmbG9vckxldmVs
KSk7CisgICAgbV9wb3NpdGlvbi5hZG9wdChXS0dlb2xvY2F0aW9uUG9zaXRpb25DcmVhdGVfYyhX
YWxsVGltZTo6bm93KCkuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCksIGxhdGl0dWRlLCBs
b25naXR1ZGUsIGFjY3VyYWN5LCBwcm92aWRlc0FsdGl0dWRlLCBhbHRpdHVkZSwgcHJvdmlkZXNB
bHRpdHVkZUFjY3VyYWN5LCBhbHRpdHVkZUFjY3VyYWN5LCBwcm92aWRlc0hlYWRpbmcsIGhlYWRp
bmcsIHByb3ZpZGVzU3BlZWQsIHNwZWVkLCBwcm92aWRlc0Zsb29yTGV2ZWwsIGZsb29yTGV2ZWwp
KTsKIAogICAgIG1faGFzRXJyb3IgPSBmYWxzZTsKICAgICBtX2Vycm9yTWVzc2FnZS5jbGVhcigp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggMGM4YzA0MDAyZTE4ODA2MGQwNjc1Y2RkZGJkMmQ0ZWE5MGFiMzYyYS4u
NDcwZGRhNzY1MjM3ZjNhMzdhZjZjMTU1ZTlmN2Y1ZDdlOTllMjc1ZSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC03
ODgsNyArNzg4LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRDb29raWVTdG9yYWdlUGFydGl0aW9u
aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAKIGRvdWJsZSBUZXN0UnVubmVyOjpwcmVjaXNlVGlt
ZSgpCiB7Ci0gICAgcmV0dXJuIGN1cnJlbnRUaW1lKCk7CisgICAgcmV0dXJuIFdhbGxUaW1lOjpu
b3coKS5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKTsKIH0KIAogdm9pZCBUZXN0UnVubmVy
OjpzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9vbCBlbmFibGVkKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>