<?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>167249</bug_id>
          
          <creation_ts>2017-01-20 12:56:40 -0800</creation_ts>
          <short_desc>Land the stochastic space-time scheduler disabled</short_desc>
          <delta_ts>2017-01-24 13:58:49 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>167248</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1268522</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-20 12:56:40 -0800</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268530</commentid>
    <comment_count>1</comment_count>
      <attachid>299370</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-20 13:06:53 -0800</bug_when>
    <thetext>Created attachment 299370
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268531</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-20 13:08:47 -0800</bug_when>
    <thetext>Attachment 299370 did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/StochasticSpaceTimeMutatorScheduler.cpp:106:  Declaration has space between type name and * in constraintExecutionDuration * m_pauseScale  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:58:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268769</commentid>
    <comment_count>3</comment_count>
      <attachid>299436</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-21 11:17:57 -0800</bug_when>
    <thetext>Created attachment 299436
more

Having tuned it I&apos;m seeing some wins but now I need to verify that I didn&apos;t break perf of the old scheduler.

I sorta want to land with the new scheduler disabled because I had to make other changes and I want to make sure that those changes don&apos;t mess anything up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268952</commentid>
    <comment_count>4</comment_count>
      <attachid>299491</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-22 19:23:03 -0800</bug_when>
    <thetext>Created attachment 299491
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268953</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-22 19:25:43 -0800</bug_when>
    <thetext>Attachment 299491 did not pass style-queue:


ERROR: Source/JavaScriptCore/heap/StochasticSpaceTimeMutatorScheduler.cpp:106:  Declaration has space between type name and * in constraintExecutionDuration * m_pauseScale  [whitespace/declaration] [3]
ERROR: Source/JavaScriptCore/heap/Heap.cpp:58:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269236</commentid>
    <comment_count>6</comment_count>
      <attachid>299491</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-01-23 15:43:47 -0800</bug_when>
    <thetext>Comment on attachment 299491
the patch

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

r=me

&gt; Source/JavaScriptCore/heap/StochasticSpaceTimeMutatorScheduler.cpp:2
&gt; + * Copyright (C) 2016-2017 Apple Inc. All rights reserved.

2017

&gt; Source/JavaScriptCore/heap/StochasticSpaceTimeMutatorScheduler.h:2
&gt; + * Copyright (C) 2016-2017 Apple Inc. All rights reserved.

2017</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269247</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-01-23 16:02:43 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/211069</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269540</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-01-24 13:58:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/30173274&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299370</attachid>
            <date>2017-01-20 13:06:53 -0800</date>
            <delta_ts>2017-01-21 11:17:57 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>29364</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjEwOTc1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg5IEBA
CisyMDE3LTAxLTIwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TGFuZCB0aGUgc3RvY2hhc3RpYyBzcGFjZS10aW1lIHNjaGVkdWxlciBkaXNhYmxlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGUgc3Bh
Y2UtdGltZSBzY2hlZHVsZXIgaXMgcHJldHR5IHdlaXJkLiBJdCB1c2VzIGEgcGVyaW9kaWMgc2No
ZWR1bGVyIHdoZXJlIHRoZSBuZXh0IHBlcmlvZCBpcworICAgICAgICBzaW1wbHkgZGV0ZXJtaW5l
ZCBieSBhbiBpbnRlZ2VyIG11bHRpcGxlIG9mIHRpbWUgc2luY2Ugd2hlbiB0aGUgc2NoZWR1bGVy
IGxhc3Qgc25hcHBlZCBwaGFzZS4gSXQKKyAgICAgICAgc25hcHMgcGhhc2UgYWZ0ZXIgY29uc3Ry
YWludCBzb2x2aW5nLiBCb3RoIHRoZSBzbmFwcGluZyBvZiB0aGUgcGhhc2UgYWZ0ZXIgY29uc3Ry
YWludCBzb2x2aW5nIGFuZAorICAgICAgICB0aGUgcGVyaW9kaWNpdHkgYXBwZWFyIHRvIGJlIG5l
Y2Vzc2FyeSBmb3IgZ29vZCBwZXJmb3JtYW5jZS4gRm9yIGV4YW1wbGUsIGlmIHRoZSBzcGFjZS10
aW1lCisgICAgICAgIHNjaGVkdWxlciBkZWNpZGVkIHRoYXQgaXQgd2FzIGluIHRoZSByZXN1bWUg
cGFydCBvZiB0aGUgcGhhc2UganVzdCBieSB2aXJ0dWUgb2YgaGF2aW5nIGp1c3QKKyAgICAgICAg
cmVzdW1lZCwgdGhlbiBpdCB3b3VsZCBiZSBlbXBpcmljYWxseSB3b3JzZSB0aGFuIG91ciBzY2hl
ZHVsZXIgd2hpY2ggYXNrcyAid2hhdCB0aW1lIGlzIGl0PyIgdG8KKyAgICAgICAgZGVjaWRlIHdo
ZXRoZXIgaXQgc2hvdWxkIGJlIHN1c3BlbmRlZCBvciByZXN1bWVkIGV2ZW4gaWYgaXQganVzdCBz
dXNwZW5kZWQgb3IgcmVzdW1lZC4gSSd2ZSBzcGVudAorICAgICAgICBhIGxvdCBvZiB0aW1lIHdv
bmRlcmluZyB3aHkgdGhlc2UgdHdvIGZlYXR1cmVzIGFyZSBlc3NlbnRpYWwsIGFuZCBJIHRoaW5r
IEkgZm91bmQgYSByZWFzb24uCisgICAgICAgIAorICAgICAgICBXaGF0J3MgaGFwcGVuaW5nIGlz
IHRoYXQgc29tZXRpbWVzIHRoZSBHQyBoYXMgYW4gb3ZlcnJ1biBhbmQgaXRzIGluY3JlbWVudCB0
YWtlcyBsb25nZXIgdGhhbiBpdAorICAgICAgICBzaG91bGQgaGF2ZS4gVGhlIGN1cnJlbnQgc2No
ZWR1bGVyIGZvcmdpdmVzIG92ZXJydW5zIHdoZW4gY29uc3RyYWludCBzb2x2aW5nLCB3aGljaCBz
ZWVtcyB0bworICAgICAgICBtYWtlIHNlbnNlIGJlY2F1c2UgaXQgY2Fubm90IGNvbnRyb2wgd2hl
dGhlciBjb25zdHJhaW50IHNvbHZpbmcgcnVucyB3aXRoIHRoZSBtdXRhdG9yIHJlc3VtZWQgb3IK
KyAgICAgICAgc3VzcGVuZGVkLiBJdCBoYXMgdG8gYmUgc3VzcGVuZGVkIGN1cnJlbnRseS4gU25h
cHBpbmcgcGhhc2UgYWZ0ZXIgY29uc3RyYWludCBzb2x2aW5nIGFjY29tcGxpc2hlcworICAgICAg
ICB0aGlzLiBXaGF0J3MgbW9yZSBzdXJwcmlzaW5nIGlzIGhvdyBpbXBvcnRhbnQgaXQgaXMgdG8g
bWFuYWdlIGRlYWRsaW5lIG1pc3NlcyBkdXJpbmcgZHJhaW5pbmcuCisgICAgICAgIFRoZSByZWxl
dmFudCBraW5kIG9mIGRlYWRsaW5lIG1pc3MgaXMgd2hlbiBkb2luZyBtdXRhdG9yLXN1c3BlbmRl
ZCBkcmFpbmluZyB0byBjYXRjaCB1cCB0byB0aGUKKyAgICAgICAgcmV0cmVhdGluZyB3YXZlZnJv
bnQuIERlYWRsaW5lIG1pc3NlcyB3aGlsZSBkb2luZyB0aGlzIGNhbiBoYXBwZW4gc3lzdGVtYXRp
Y2FsbHkgaW4gc29tZQorICAgICAgICB3b3JrbG9hZHMsIGxpa2UgSmV0U3RyZWFtL2hhc2gtbWFw
IGFuZCBzb21lIHRlc3QgaW4gU3BlZWRvbWV0ZXIuIFRoZSBzcGFjZS10aW1lIHNjaGVkdWxlcidz
IHVzZQorICAgICAgICBvZiB0aW1lIHRvIGRlY2lkZSB3aGF0IHRvIGRvIHNhdmVzIHRoZSBkYXkg
aGVyZTogYWZ0ZXIgdGhlIGRlYWRsaW5lIG1pc3MsIHRoZSBzY2hlZHVsZXIgd2lsbAorICAgICAg
ICBpbml0aWFsbHkgcmVhbGl6ZSB0aGF0IGl0IG1pc3NlZCBpdHMgZGVhZGxpbmUgdG8gcmVzdW1l
IHRoZSBtdXRhdG9yLiBCdXQgYXMgc29vbiBhcyBpdCBkb2VzIHRoaXMKKyAgICAgICAgaXQgYXNr
czogImJhc2VkIG9uIGN1cnJlbnQgdGltZSBzaW5jZSBwaGFzZSBzbmFwLCB3aGF0IHNob3VsZCBJ
IGRvPyIuIEluIHRoZSBjYXNlIG9mIGEgZGVhZGxpbmUKKyAgICAgICAgbWlzcywgdGhpcyBxdWVz
dGlvbiBpcyBlc3NlbnRpYWxseSBhIHdlaWdodGVkIGNvaW4gZmxpcC4gSWYgeW91IG92ZXJydW4s
IHlvdSB3aWxsIHByb2JhYmx5CisgICAgICAgIG92ZXJydW4gYnkgbXVsdGlwbGUgbWlsbGlzZWNv
bmRzLCB3aGljaCBpcyBlbm91Z2ggdGhhdCB3aGVyZSB5b3UgbGFuZCBpbiB0aGUgc3BhY2UtdGlt
ZQorICAgICAgICBzY2hlZHVsZXIncyB0aW1lbGluZSBpcyByYW5kb20uIFRoZSBsaWtlbGlob29k
IHRoYXQgeW91IGxhbmQgaW4gdGhlICJyZXN1bWUgbXV0YXRvciIgcGFydCBvZiB0aGUKKyAgICAg
ICAgdGltZWxpbmUgaGFzIGEgcHJvYmFiaWxpdHkgdGhhdCBpcyByb3VnaGx5IHRoZSBzYW1lIGFz
IHdoYXQgdGhlIHNwYWNlLXRpbWUgc2NoZWR1bGVyIGNhbGxzCisgICAgICAgIG11dGF0b3IgdXRp
bGl6YXRpb24uCisgICAgICAgIAorICAgICAgICBCYXNlZCBvbiB0aGlzLCBpdCBzZWVtcyB0aGF0
IHRoZSBmYWN0IHRoYXQgdGhlIHNwYWNlLXRpbWUgc2NoZWR1bGVyIGNvdWxkIHN1c3BlbmQgdGhl
IG11dGF0b3IKKyAgICAgICAgYmVmb3JlIGRyYWluaW5nIHJ1bnMgb3V0IG9mIHdvcmsgZG9lc24n
dCBhY2NvbXBsaXNoIGFueXRoaW5nLiBBcyBzb29uIGFzIHlvdSByZXN1bWUgdGhlCisgICAgICAg
IG11dGF0b3IsIHlvdSBoYXZlIGEgcmV0cmVhdGluZyB3YXZlZnJvbnQgdG8gd29ycnkgYWJvdXQu
IEJ1dCBpZiB0aGUgY29sbGVjdG9yIGlzIGhhcHBpbHkgc2Nhbm5pbmcKKyAgICAgICAgdGhpbmdz
IHRoZW4gaXQncyBhbG1vc3QgY2VydGFpbiB0aGF0IHRoZSBjb2xsZWN0b3Igd2lsbCBvdXRwYWNl
IHRoZSBtdXRhdG9yLiBBbHNvLCBhbnl0aGluZyB0aGF0CisgICAgICAgIHRoZSBtdXRhdG9yIGFz
a3MgdXMgdG8gcmV2aXNpdCBpcyBkZWZlcnJlZCBhbnl3YXkuCisgICAgICAgIAorICAgICAgICBJ
biB0aGUgcGFzdCBJJ3ZlIHRyaWVkIHRvIHJlcGxhY2UgdGhlIHNjaGVkdWxlciBpbiBvbmUgcGF0
Y2ggYW5kIHRoaXMgdHVybmVkIG91dCB0byBiZSBhbm5veWluZworICAgICAgICBiZWNhdXNlIGV2
ZW4gYSBwb29ybHkgY29uY2VpdmVkIHNjaGVkdWxlciBzaG91bGQgYmUgaXRlcmF0ZWQgb24uIFRo
aXMgcGF0Y2ggbGFuZHMgYSBoYWxmLWJha2VkCisgICAgICAgIGJ1dCBjb3JyZWN0ICJzdG9jaGFz
dGljIiBzcGFjZS10aW1lIHNjaGVkdWxlciB0aGF0IHRyaWVzIHRvIHJlcGxpY2F0ZSB0aG9zZSB0
d28gZ29vZCBmZWF0dXJlcyBvZgorICAgICAgICB0aGUgb2xkIHNjaGVkdWxlcjogKDEpIGl0IGZv
cmdpdmVzIGNvbnN0cmFpbnQgcGF1c2VzIGFuZCAoMikgYWZ0ZXIgZGVhZGxpbmUgb3ZlcnJ1biBp
dHMgY2hvaWNlIGlzCisgICAgICAgIHJhbmRvbSwgd2VpZ2h0ZWQgYnkgdGhlIG11dGF0b3IgdXRp
bGl6YXRpb24gdGFyZ2V0LgorICAgICAgICAKKyAgICAgICAgVGhpcyBzY2hlZHVsZXIgaXMgZGlz
YWJsZWQgYnkgZGVmYXVsdC4gWW91IGNhbiBlbmFibGUgaXQgd2l0aAorICAgICAgICAtLXVzZVN0
b2NoYXN0aWNNdXRhdG9yU2NoZWR1bGVyPXRydWUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OkhlYXApOgorICAg
ICAgICAoSlNDOjpIZWFwOjptYXJrVG9GaXhwb2ludCk6CisgICAgICAgICogaGVhcC9IZWFwLmg6
CisgICAgICAgICogaGVhcC9NdXRhdG9yU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKEpTQzo6TXV0
YXRvclNjaGVkdWxlcjo6ZGlkUmVhY2hUZXJtaW5hdGlvbik6CisgICAgICAgIChKU0M6Ok11dGF0
b3JTY2hlZHVsZXI6OmRpZE5vdFJlYWNoVGVybWluYXRpb24pOgorICAgICAgICAoSlNDOjpNdXRh
dG9yU2NoZWR1bGVyOjpzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwpOgorICAgICAgICAqIGhl
YXAvTXV0YXRvclNjaGVkdWxlci5oOgorICAgICAgICAqIGhlYXAvU3RvY2hhc3RpY1NwYWNlVGlt
ZU11dGF0b3JTY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1Nw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OlNuYXBzaG90OjpTbmFwc2hvdCk6CisgICAgICAgIChK
U0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpTbmFwc2hvdDo6bm93KToK
KyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OlNuYXBz
aG90OjpieXRlc0FsbG9jYXRlZFRoaXNDeWNsZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNT
cGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVk
dWxlcik6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
Ojp+U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIpOgorICAgICAgICAoSlNDOjpT
dG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6c3RhdGUpOgorICAgICAgICAoSlND
OjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6YmVnaW5Db2xsZWN0aW9uKToK
KyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmRpZFN0
b3ApOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6
d2lsbFJlc3VtZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyOjpkaWRSZWFjaFRlcm1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1Nw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmRpZEV4ZWN1dGVDb25zdHJhaW50cyk6CisgICAgICAg
IChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpkaWROb3RSZWFjaFRl
cm1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hl
ZHVsZXI6OnN5bmNocm9ub3VzRHJhaW5pbmdEaWRTdGFsbCk6CisgICAgICAgIChKU0M6OlN0b2No
YXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjp0aW1lVG9TdG9wKToKKyAgICAgICAgKEpT
Qzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OnRpbWVUb1Jlc3VtZSk6Cisg
ICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpsb2cpOgor
ICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6ZW5kQ29s
bGVjdGlvbik6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1
bGVyOjpzZXRSZXN1bWVUaW1lKToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXI6OmJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlSW1wbCk6CisgICAgICAgIChK
U0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpieXRlc1NpbmNlQmVnaW5u
aW5nT2ZDeWNsZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyOjptYXhIZWFkcm9vbSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyOjpoZWFkcm9vbUZ1bGxuZXNzKToKKyAgICAgICAgKEpTQzo6U3RvY2hh
c3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6Om11dGF0b3JVdGlsaXphdGlvbik6CisgICAg
ICAgICogaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oOiBBZGRlZC4K
KyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKwogMjAxNy0wMS0yMCAgU2FhbSBCYXJhdGkg
IDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXZSBzaG91bGQgZmxhc2ggYSBzYWZlcG9p
bnQgYmVmb3JlIGVhY2ggREZHL0ZUTCBwaGFzZQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFr
ZUxpc3RzLnR4dAkocmV2aXNpb24gMjEwOTQ1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01MDMsNiArNTAzLDcgQEAgc2V0KEphdmFT
Y3JpcHRDb3JlX1NPVVJDRVMKICAgICBoZWFwL011dGF0b3JTdGF0ZS5jcHAKICAgICBoZWFwL1Ns
b3RWaXNpdG9yLmNwcAogICAgIGhlYXAvU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAKKyAg
ICBoZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcAogICAgIGhlYXAv
U3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwCiAgICAgaGVhcC9TdWJzcGFjZS5jcHAKICAgICBoZWFw
L1N5bmNocm9ub3VzU3RvcFRoZVdvcmxkTXV0YXRvclNjaGVkdWxlci5jcHAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTA5NDUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNDEwLDYgKzQxMCw4IEBACiAJCTBGNEYyOUUwMThCNkFEMUMwMDU3QkMxNSAv
KiBERkdTdGF0aWNFeGVjdXRpb25Db3VudEVzdGltYXRpb25QaGFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RjI5REUxOEI2QUQxQzAwNTdCQzE1
IC8qIERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1hdGlvblBoYXNlLmggKi87IH07CiAJCTBG
NEY4Mjg3MUUyRkZEREQwMDc1MTg0QyAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0U3Vic3Bh
Y2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
RjgyODUxRTJGRkREQjAwNzUxODRDIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RTdWJzcGFj
ZS5jcHAgKi87IH07CiAJCTBGNEY4Mjg4MUUyRkZERTAwMDc1MTg0QyAvKiBKU1NlZ21lbnRlZFZh
cmlhYmxlT2JqZWN0U3Vic3BhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNEY4Mjg2MUUyRkZEREIwMDc1MTg0QyAvKiBKU1NlZ21lbnRlZFZhcmlh
YmxlT2JqZWN0U3Vic3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkwRjRGODI4QjFFMzFCOTc0MDA3NTE4NEMgLyogU3RvY2hhc3RpY1NwYWNl
VGltZU11dGF0b3JTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMEY0RjgyODkxRTMxQjk3MTAwNzUxODRDIC8qIFN0b2NoYXN0aWNTcGFj
ZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcCAqLzsgfTsKKwkJMEY0RjgyOEMxRTMxQjk3NjAwNzUx
ODRDIC8qIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRGODI4QTFFMzFCOTcxMDA3NTE4
NEMgLyogU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCAqLzsgfTsKIAkJMEY1
MEFGM0MxOTNFOEIzOTAwNjc0RUU4IC8qIERGR1N0cnVjdHVyZUNsb2JiZXJTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MEFGM0IxOTNFOEIz
OTAwNjc0RUU4IC8qIERGR1N0cnVjdHVyZUNsb2JiZXJTdGF0ZS5oICovOyB9OwogCQkwRjU1MTNB
NjFENUE2ODJDMDBDMzJCRDggLyogRnJlZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTUxM0E1MUQ1QTY4MkEwMEMzMkJEOCAvKiBGcmVlTGlz
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
NTUxM0E4MUQ1QTY4Q0QwMEMzMkJEOCAvKiBGcmVlTGlzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1MTNBNzFENUE2OENCMDBDMzJCRDggLyog
RnJlZUxpc3QuY3BwICovOyB9OwpAQCAtMjg2Myw2ICsyODY1LDggQEAKIAkJMEY0RjI5REUxOEI2
QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50RXN0aW1hdGlvblBoYXNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERGR1N0YXRpY0V4ZWN1dGlvbkNvdW50
RXN0aW1hdGlvblBoYXNlLmg7IHBhdGggPSBkZmcvREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3Rp
bWF0aW9uUGhhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0RjgyODUxRTJG
RkREQjAwNzUxODRDIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RTdWJzcGFjZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0U3Vic3BhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjRGODI4NjFF
MkZGRERCMDA3NTE4NEMgLyogSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdFN1YnNwYWNlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RT
dWJzcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjRGODI4OTFFMzFCOTcx
MDA3NTE4NEMgLyogU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0
b3JTY2hlZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRjRGODI4QTFF
MzFCOTcxMDA3NTE4NEMgLyogU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0
b3JTY2hlZHVsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1MEFGM0IxOTNF
OEIzOTAwNjc0RUU4IC8qIERGR1N0cnVjdHVyZUNsb2JiZXJTdGF0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaDsgcGF0aCA9IGRm
Zy9ERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEY1NTEzQTUxRDVBNjgyQTAwQzMyQkQ4IC8qIEZyZWVMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZyZWVMaXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGNTUxM0E3MUQ1QTY4Q0IwMEMzMkJEOCAvKiBGcmVlTGlzdC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGcmVlTGlzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC01ODIxLDYgKzU4MjUsOCBAQAogCQkJCTBGQ0I0MDg1MTVDMEEzQzMwMDQ4
OTMyQiAvKiBTbG90VmlzaXRvcklubGluZXMuaCAqLywKIAkJCQkwRkRFODdGQTFERkU2RTUwMDA2
NEMzOTAgLyogU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAgKi8sCiAJCQkJMEZERTg3RkIx
REZFNkU1MDAwNjRDMzkwIC8qIFNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCAqLywKKwkJCQkw
RjRGODI4OTFFMzFCOTcxMDA3NTE4NEMgLyogU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hl
ZHVsZXIuY3BwICovLAorCQkJCTBGNEY4MjhBMUUzMUI5NzEwMDc1MTg0QyAvKiBTdG9jaGFzdGlj
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oICovLAogCQkJCTBGN0NGOTUwMURDMDI3RDcwMDk4
Q0MxMiAvKiBTdG9wSWZOZWNlc3NhcnlUaW1lci5jcHAgKi8sCiAJCQkJMEY3Q0Y5NTExREMwMjdE
NzAwOThDQzEyIC8qIFN0b3BJZk5lY2Vzc2FyeVRpbWVyLmggKi8sCiAJCQkJMTQyRTMxMzIxMzRG
RjBBNjAwQUZBREI1IC8qIFN0cm9uZy5oICovLApAQCAtODE5NCw2ICs4MjAwLDcgQEAKIAkJCQkw
RjlEMzM5NzE3RkZDNEU2MDA3M0MyQkMgLyogREZHRmx1c2hlZEF0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBN0Q4OUNGODE3QTBCOENDMDA3NzNBRDggLyogREZHRmx1c2hGb3JtYXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGMkREODE1MUFCM0Q4QkUwMEJCQjhFOCAvKiBERkdGb3JBbGxLaWxscy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMEY0RjgyOEMxRTMxQjk3NjAwNzUxODRDIC8qIFN0b2NoYXN0
aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY5Q0M4
OTE5M0FDNjBBMDA0NTc1OUUgLyogREZHRnJvemVuVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg2RUM5REM2MTMyOERGODIwMDJCMkFENyAvKiBERkdHZW5lcmF0aW9uSW5mby5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJODZFQzlEQzgxMzI4REY4MjAwMkIyQUQ3IC8qIERGR0dyYXBoLmggaW4gSGVh
ZGVycyAqLywKQEAgLTk5OTAsNiArOTk5Nyw3IEBACiAJCQkJMEYyRkNDRkUxOEE2MDA3MDAwMUEy
N0Y4IC8qIERGR1RocmVhZERhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDMDk3QTExNDZC
MjhDQTAwQ0YyNDQyIC8qIERGR1RodW5rcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMy
NzE3RDUxRjU3MDBDQTJDNDAgLyogREZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQkwRjRGODI4QjFFMzFCOTc0MDA3NTE4NEMgLyogU3RvY2hhc3RpY1Nw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZEOEEzMjkx
N0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDhBMzJCMTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZU
TEZvck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGRTcyMTFEMTkzQjlDNTkwMDMxRjZFRCAvKiBERkdUcmFuc2l0aW9uLmNwcCBpbiBT
b3VyY2VzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHJldmlzaW9u
IDIxMDk0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2hhZG93Q2hpY2tlbi5oIgogI2lu
Y2x1ZGUgIlNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCIKICNpbmNsdWRlICJTdXBlclNhbXBs
ZXIuaCIKKyNpbmNsdWRlICJTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oIgog
I2luY2x1ZGUgIlN0b3BJZk5lY2Vzc2FyeVRpbWVyLmgiCiAjaW5jbHVkZSAiU3luY2hyb25vdXNT
dG9wVGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiVHlwZVByb2ZpbGVyTG9n
LmgiCkBAIC0yODQsMTUgKzI4NSwxNyBAQCBIZWFwOjpIZWFwKFZNKiB2bSwgSGVhcFR5cGUgaGVh
cFR5cGUpCiAgICAgLCBtX3NoYXJlZENvbGxlY3Rvck1hcmtTdGFjayhzdGQ6Om1ha2VfdW5pcXVl
PE1hcmtTdGFja0FycmF5PigpKQogICAgICwgbV9zaGFyZWRNdXRhdG9yTWFya1N0YWNrKHN0ZDo6
bWFrZV91bmlxdWU8TWFya1N0YWNrQXJyYXk+KCkpCiAgICAgLCBtX2hlbHBlckNsaWVudCgmaGVh
cEhlbHBlclBvb2woKSkKLSAgICAsIG1fc2NoZWR1bGVyKHN0ZDo6bWFrZV91bmlxdWU8U3BhY2VU
aW1lTXV0YXRvclNjaGVkdWxlcj4oKnRoaXMpKQogICAgICwgbV90aHJlYWRMb2NrKEJveDxMb2Nr
Pjo6Y3JlYXRlKCkpCiAgICAgLCBtX3RocmVhZENvbmRpdGlvbihBdXRvbWF0aWNUaHJlYWRDb25k
aXRpb246OmNyZWF0ZSgpKQogewogICAgIG1fd29ybGRTdGF0ZS5zdG9yZSgwKTsKICAgICAKLSAg
ICBpZiAoT3B0aW9uczo6dXNlQ29uY3VycmVudEdDKCkpCi0gICAgICAgIG1fc2NoZWR1bGVyID0g
c3RkOjptYWtlX3VuaXF1ZTxTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyPigqdGhpcyk7Ci0gICAg
ZWxzZSB7CisgICAgaWYgKE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpKSB7CisgICAgICAgIGlm
IChPcHRpb25zOjp1c2VTdG9jaGFzdGljTXV0YXRvclNjaGVkdWxlcigpKQorICAgICAgICAgICAg
bV9zY2hlZHVsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9y
U2NoZWR1bGVyPigqdGhpcyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fc2NoZWR1bGVy
ID0gc3RkOjptYWtlX3VuaXF1ZTxTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyPigqdGhpcyk7Cisg
ICAgfSBlbHNlIHsKICAgICAgICAgLy8gV2Ugc2ltdWxhdGUgdHVybmluZyBvZmYgY29uY3VycmVu
dCBHQyBieSBtYWtpbmcgdGhlIHNjaGVkdWxlciBzYXkgdGhhdCB0aGUgd29ybGQKICAgICAgICAg
Ly8gc2hvdWxkIGFsd2F5cyBiZSBzdG9wcGVkIHdoZW4gdGhlIGNvbGxlY3RvciBpcyBydW5uaW5n
LgogICAgICAgICBtX3NjaGVkdWxlciA9IHN0ZDo6bWFrZV91bmlxdWU8U3luY2hyb25vdXNTdG9w
VGhlV29ybGRNdXRhdG9yU2NoZWR1bGVyPigpOwpAQCAtNTkzLDYgKzU5Niw4IEBAIHZvaWQgSGVh
cDo6bWFya1RvRml4cG9pbnQoZG91YmxlIGdjU3RhcnQKICAgICAgICAgICAgIGRhdGFMb2coInY9
IiwgYnl0ZXNWaXNpdGVkKCkgLyAxMDI0LCAia2Igbz0iLCBtX29wYXF1ZVJvb3RzLnNpemUoKSwg
IiBiPSIsIG1fYmFycmllcnNFeGVjdXRlZCwgIiAiKTsKICAgICAgICAgCiAgICAgICAgIGlmIChz
bG90VmlzaXRvci5kaWRSZWFjaFRlcm1pbmF0aW9uKCkpIHsKKyAgICAgICAgICAgIG1fc2NoZWR1
bGVyLT5kaWRSZWFjaFRlcm1pbmF0aW9uKCk7CisgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
IChPcHRpb25zOjpsb2dHQygpKQogICAgICAgICAgICAgICAgIGRhdGFMb2coImkjIiwgaXRlcmF0
aW9uLCAiICIpOwogICAgICAgICAKQEAgLTYyMiw3ICs2MjcsOCBAQCB2b2lkIEhlYXA6Om1hcmtU
b0ZpeHBvaW50KGRvdWJsZSBnY1N0YXJ0CiAgICAgICAgICAgICAKICAgICAgICAgICAgIG1fc2No
ZWR1bGVyLT5kaWRFeGVjdXRlQ29uc3RyYWludHMoKTsKICAgICAgICAgICAgIGl0ZXJhdGlvbisr
OwotICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbV9zY2hlZHVsZXItPmRp
ZE5vdFJlYWNoVGVybWluYXRpb24oKTsKICAgICAgICAgCiAgICAgICAgIGlmIChPcHRpb25zOjps
b2dHQygpKQogICAgICAgICAgICAgZGF0YUxvZyhzbG90VmlzaXRvci5jb2xsZWN0b3JNYXJrU3Rh
Y2soKS5zaXplKCksICIrIiwgbV9tdXRhdG9yTWFya1N0YWNrLT5zaXplKCkgKyBzbG90VmlzaXRv
ci5tdXRhdG9yTWFya1N0YWNrKCkuc2l6ZSgpLCAiICIpOwpAQCAtNjMyLDYgKzYzOCw4IEBAIHZv
aWQgSGVhcDo6bWFya1RvRml4cG9pbnQoZG91YmxlIGdjU3RhcnQKICAgICAgICAgICAgIHNsb3RW
aXNpdG9yLmRyYWluSW5QYXJhbGxlbChtX3NjaGVkdWxlci0+dGltZVRvUmVzdW1lKCkpOwogICAg
ICAgICB9CiAgICAgICAgIAorICAgICAgICBtX3NjaGVkdWxlci0+c3luY2hyb25vdXNEcmFpbmlu
Z0RpZFN0YWxsKCk7CisgICAgICAgIAogICAgICAgICBpZiAoIW1fc2NoZWR1bGVyLT5zaG91bGRS
ZXN1bWUoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDIxMDk0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMzY4LDYgKzM2OCw3IEBAIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIE1hcmtlZEJsb2NrOwogICAgIGZyaWVuZCBjbGFzcyBTbG90
VmlzaXRvcjsKICAgICBmcmllbmQgY2xhc3MgU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjsKKyAg
ICBmcmllbmQgY2xhc3MgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI7CiAgICAg
ZnJpZW5kIGNsYXNzIEluY3JlbWVudGFsU3dlZXBlcjsKICAgICBmcmllbmQgY2xhc3MgSGVhcFN0
YXRpc3RpY3M7CiAgICAgZnJpZW5kIGNsYXNzIFZNOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvTXV0YXRvclNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvTXV0YXRvclNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDIxMDk0NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL011dGF0b3JTY2hlZHVsZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00NiwxMCArNDYsMjIgQEAgdm9pZCBNdXRhdG9yU2NoZWR1bGVyOjp3aWxsUmVz
dW1lKCkKIHsKIH0KIAordm9pZCBNdXRhdG9yU2NoZWR1bGVyOjpkaWRSZWFjaFRlcm1pbmF0aW9u
KCkKK3sKK30KKwordm9pZCBNdXRhdG9yU2NoZWR1bGVyOjpkaWROb3RSZWFjaFRlcm1pbmF0aW9u
KCkKK3sKK30KKwogdm9pZCBNdXRhdG9yU2NoZWR1bGVyOjpkaWRFeGVjdXRlQ29uc3RyYWludHMo
KQogewogfQogCit2b2lkIE11dGF0b3JTY2hlZHVsZXI6OnN5bmNocm9ub3VzRHJhaW5pbmdEaWRT
dGFsbCgpCit7Cit9CisKIHZvaWQgTXV0YXRvclNjaGVkdWxlcjo6bG9nKCkKIHsKIH0KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL011dGF0b3JTY2hlZHVsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NdXRhdG9yU2NoZWR1bGVyLmgJKHJldmlz
aW9uIDIxMDk0NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL011dGF0b3JTY2hlZHVs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsOCArNTAsMTggQEAgcHVibGljOgogICAgIAogICAg
IHZpcnR1YWwgdm9pZCBkaWRTdG9wKCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZXN1bWUoKTsK
KyAgICAKKyAgICAvLyBBdCB0aGUgdG9wIG9mIGFuIGl0ZXJhdGlvbiwgdGhlIEdDIHdpbGwgY2Fs
bCBlaXRoZXIgZGlkUmVhY2hUZXJtaW5hdGlvbiBvciBkaWROb3RSZWFjaFRlcm1pbmF0aW9uLgor
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWFjaFRlcm1pbmF0aW9uKCk7CisgICAgdmlydHVhbCB2b2lk
IGRpZE5vdFJlYWNoVGVybWluYXRpb24oKTsKKyAgICAKKyAgICAvLyBJZiBpdCBjYWxsZWQgZGlk
UmVhY2hUZXJtaW5hdGlvbiwgaXQgd2lsbCB0aGVuIGxhdGVyIGNhbGwgZGlkRXhlY3V0ZUNvbnN0
cmFpbnRzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGVjdXRlQ29uc3RyYWludHMoKTsKICAgICAK
KyAgICAvLyBBZnRlciBkb2luZyB0aGF0LCBpdCB3aWxsIGRvIHN5bmNocm9ub3VzIGRyYWluaW5n
LiBXaGVuIHRoaXMgc3RhbGxzIC0gZWl0aGVyIGR1ZSB0byB0aW1lb3V0IG9yCisgICAgLy8ganVz
dCAnY2F1c2UsIGl0IHdpbGwgY2FsbCB0aGlzLgorICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbm91
c0RyYWluaW5nRGlkU3RhbGwoKTsKKyAgICAKICAgICB2aXJ0dWFsIE1vbm90b25pY1RpbWUgdGlt
ZVRvU3RvcCgpID0gMDsgLy8gQ2FsbCB3aGlsZSByZXN1bWVkLCB0byBhc2sgd2hlbiB0byBzdG9w
LgogICAgIHZpcnR1YWwgTW9ub3RvbmljVGltZSB0aW1lVG9SZXN1bWUoKSA9IDA7IC8vIENhbGwg
d2hpbGUgc3RvcHBlZCwgdG8gYXNrIHdoZW4gdG8gcmVzdW1lLgogICAgIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNT
cGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCIKKworI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKKworbmFtZXNwYWNlIEpTQyB7CisKKy8vIFRoZSBzY2hlZHVsZXIgd2lsbCBv
ZnRlbiBtYWtlIGRlY2lzaW9ucyBiYXNlZCBvbiBzdGF0ZSB0aGF0IGlzIGluIGZsdXguIEl0IHdp
bGwgYmUgZmluZSBzbworLy8gbG9uZyBhcyBtdWx0aXBsZSB1c2VzIG9mIHRoZSBzYW1lIHZhbHVl
IGFsbCBzZWUgdGhlIHNhbWUgdmFsdWUuIFdlIHdvdWxkbid0IGdldCB0aGlzIGZvciBmcmVlLAor
Ly8gc2luY2Ugb3VyIG5lZWQgdG8gbW9kdWxhcml6ZSB0aGUgY2FsY3VsYXRpb24gcmVzdWx0cyBp
biBhIHRlbmRlbmN5IHRvIGFjY2VzcyB0aGUgc2FtZSBtdXRhYmxlCisvLyBmaWVsZCBpbiBIZWFw
IG11bHRpcGxlIHRpbWVzLCBhbmQgdG8gYWNjZXNzIHRoZSBjdXJyZW50IHRpbWUgbXVsdGlwbGUg
dGltZXMuCitjbGFzcyBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6U25hcHNo
b3QgeworcHVibGljOgorICAgIFNuYXBzaG90KFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyJiBzY2hlZHVsZXIpCisgICAgeworICAgICAgICBtX25vdyA9IE1vbm90b25pY1RpbWU6
Om5vdygpOworICAgICAgICBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlID0gc2NoZWR1bGVyLmJ5
dGVzQWxsb2NhdGVkVGhpc0N5Y2xlSW1wbCgpOworICAgIH0KKyAgICAKKyAgICBNb25vdG9uaWNU
aW1lIG5vdygpIGNvbnN0IHsgcmV0dXJuIG1fbm93OyB9CisgICAgCisgICAgZG91YmxlIGJ5dGVz
QWxsb2NhdGVkVGhpc0N5Y2xlKCkgY29uc3QgeyByZXR1cm4gbV9ieXRlc0FsbG9jYXRlZFRoaXND
eWNsZTsgfQorICAgIAorcHJpdmF0ZToKKyAgICBNb25vdG9uaWNUaW1lIG1fbm93OworICAgIGRv
dWJsZSBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlOworfTsKKworU3RvY2hhc3RpY1NwYWNlVGlt
ZU11dGF0b3JTY2hlZHVsZXI6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyKEhl
YXAmIGhlYXApCisgICAgOiBtX2hlYXAoaGVhcCkKKyAgICAsIG1fbWluaW11bVBhdXNlKFNlY29u
ZHM6OmZyb21NaWxsaXNlY29uZHMoT3B0aW9uczo6bWluaW11bUdDUGF1c2VNUygpKSkKKyAgICAs
IG1fcGF1c2VTY2FsZShPcHRpb25zOjpnY1BhdXNlU2NhbGUoKSkKK3sKK30KKworU3RvY2hhc3Rp
Y1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6On5TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNj
aGVkdWxlcigpCit7Cit9CisKK011dGF0b3JTY2hlZHVsZXI6OlN0YXRlIFN0b2NoYXN0aWNTcGFj
ZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpzdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3Rh
dGU7Cit9CisKK3ZvaWQgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmJlZ2lu
Q29sbGVjdGlvbigpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9zdGF0ZSA9PSBOb3JtYWwpOwor
ICAgIG1fc3RhdGUgPSBTdG9wcGVkOworCisgICAgbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0
VGhlQmVnaW5uaW5nID0gbV9oZWFwLm1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGU7CisgICAgbV9i
eXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0VGhlRW5kID0gCisgICAgICAgIE9wdGlvbnM6OmNvbmN1
cnJlbnRHQ01heEhlYWRyb29tKCkgKgorICAgICAgICBzdGQ6Om1heDxkb3VibGU+KG1fYnl0ZXNB
bGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJlZ2lubmluZywgbV9oZWFwLm1fbWF4RWRlblNpemUpOwor
ICAgIG1fYmVmb3JlQ29uc3RyYWludHMgPSBNb25vdG9uaWNUaW1lOjpub3coKTsKK30KKwordm9p
ZCBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6ZGlkU3RvcCgpCit7CisgICAg
UkVMRUFTRV9BU1NFUlQobV9zdGF0ZSA9PSBTdG9wcGVkIHx8IG1fc3RhdGUgPT0gUmVzdW1lZCk7
CisgICAgbV9zdGF0ZSA9IFN0b3BwZWQ7Cit9CisKK3ZvaWQgU3RvY2hhc3RpY1NwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXI6OndpbGxSZXN1bWUoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fc3Rh
dGUgPT0gU3RvcHBlZCB8fCBtX3N0YXRlID09IFJlc3VtZWQpOworICAgIG1fc3RhdGUgPSBSZXN1
bWVkOworfQorCit2b2lkIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpkaWRS
ZWFjaFRlcm1pbmF0aW9uKCkKK3sKKyAgICBtX2JlZm9yZUNvbnN0cmFpbnRzID0gTW9ub3Rvbmlj
VGltZTo6bm93KCk7Cit9CisKK3ZvaWQgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXI6OmRpZEV4ZWN1dGVDb25zdHJhaW50cygpCit7CisgICAgU25hcHNob3Qgc25hcHNob3QoKnRo
aXMpOworICAgIAorICAgIFNlY29uZHMgY29uc3RyYWludEV4ZWN1dGlvbkR1cmF0aW9uID0gc25h
cHNob3Qubm93KCkgLSBtX2JlZm9yZUNvbnN0cmFpbnRzOworICAgIAorICAgIG1fdGFyZ2V0UGF1
c2UgPSBzdGQ6Om1heCgKKyAgICAgICAgY29uc3RyYWludEV4ZWN1dGlvbkR1cmF0aW9uICogbV9w
YXVzZVNjYWxlLAorICAgICAgICBtX21pbmltdW1QYXVzZSk7CisgICAgCisgICAgbV9wbGFubmVk
UmVzdW1lVGltZSA9IHNuYXBzaG90Lm5vdygpICsgbV90YXJnZXRQYXVzZTsKK30KKwordm9pZCBT
dG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6ZGlkTm90UmVhY2hUZXJtaW5hdGlv
bigpCit7CisgICAgc2V0UmVzdW1lVGltZSgpOworfQorCit2b2lkIFN0b2NoYXN0aWNTcGFjZVRp
bWVNdXRhdG9yU2NoZWR1bGVyOjpzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwoKQoreworICAg
IHNldFJlc3VtZVRpbWUoKTsKK30KKworTW9ub3RvbmljVGltZSBTdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlcjo6dGltZVRvU3RvcCgpCit7CisgICAgc3dpdGNoIChtX3N0YXRlKSB7
CisgICAgY2FzZSBOb3JtYWw6CisgICAgICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjppbmZpbml0
eSgpOworICAgIGNhc2UgU3RvcHBlZDoKKyAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6Om5v
dygpOworICAgIGNhc2UgUmVzdW1lZDogeworICAgICAgICAvLyBPbmNlIHdlJ3JlIHJ1bm5pbmcs
IHdlIGtlZXAgZ29pbmcuCisgICAgICAgIHJldHVybiBNb25vdG9uaWNUaW1lOjppbmZpbml0eSgp
OworICAgIH0gfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIE1vbm90b25pY1RpbWUoKTsKK30KKworTW9ub3RvbmljVGltZSBTdG9jaGFzdGljU3Bh
Y2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6dGltZVRvUmVzdW1lKCkKK3sKKyAgICBzd2l0Y2ggKG1f
c3RhdGUpIHsKKyAgICBjYXNlIE5vcm1hbDoKKyAgICBjYXNlIFJlc3VtZWQ6CisgICAgICAgIHJl
dHVybiBNb25vdG9uaWNUaW1lOjpub3coKTsKKyAgICBjYXNlIFN0b3BwZWQ6CisgICAgICAgIHJl
dHVybiBtX3BsYW5uZWRSZXN1bWVUaW1lOworICAgIH0KKyAgICAKKyAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBNb25vdG9uaWNUaW1lKCk7Cit9CisKK3ZvaWQg
U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmxvZygpCit7CisgICAgQVNTRVJU
KE9wdGlvbnM6OmxvZ0dDKCkpOworICAgIFNuYXBzaG90IHNuYXBzaG90KCp0aGlzKTsKKyAgICBk
YXRhTG9nKAorICAgICAgICAiYT0iLCBmb3JtYXQoIiUuMGxmIiwgYnl0ZXNTaW5jZUJlZ2lubmlu
Z09mQ3ljbGUoc25hcHNob3QpIC8gMTAyNCksICIga2IgIiwKKyAgICAgICAgImhmPSIsIGZvcm1h
dCgiJS4zbGYiLCBoZWFkcm9vbUZ1bGxuZXNzKHNuYXBzaG90KSksICIgIiwKKyAgICAgICAgIm11
PSIsIGZvcm1hdCgiJS4zbGYiLCBtdXRhdG9yVXRpbGl6YXRpb24oc25hcHNob3QpKSwgIiAiKTsK
K30KKwordm9pZCBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6ZW5kQ29sbGVj
dGlvbigpCit7CisgICAgbV9zdGF0ZSA9IE5vcm1hbDsKK30KKwordm9pZCBTdG9jaGFzdGljU3Bh
Y2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6c2V0UmVzdW1lVGltZSgpCit7CisgICAgU25hcHNob3Qg
c25hcHNob3QoKnRoaXMpOworICAgIAorICAgIGRvdWJsZSByZXN1bWVQcm9iYWJpbGl0eSA9IG11
dGF0b3JVdGlsaXphdGlvbihzbmFwc2hvdCk7CisgICAgYm9vbCBzaG91bGRSZXN1bWUgPSBtX3Jh
bmRvbS5nZXQoKSA8IHJlc3VtZVByb2JhYmlsaXR5OworICAgIAorICAgIGlmIChzaG91bGRSZXN1
bWUpIHsKKyAgICAgICAgbV9wbGFubmVkUmVzdW1lVGltZSA9IHNuYXBzaG90Lm5vdygpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIAorICAgIG1fcGxhbm5lZFJlc3VtZVRpbWUgPSBzbmFw
c2hvdC5ub3coKSArIG1fdGFyZ2V0UGF1c2U7Cit9CisKK2RvdWJsZSBTdG9jaGFzdGljU3BhY2VU
aW1lTXV0YXRvclNjaGVkdWxlcjo6Ynl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVJbXBsKCkKK3sKKyAg
ICByZXR1cm4gbV9oZWFwLm1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGU7Cit9CisKK2RvdWJsZSBT
dG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6Ynl0ZXNTaW5jZUJlZ2lubmluZ09m
Q3ljbGUoY29uc3QgU25hcHNob3QmIHNuYXBzaG90KQoreworICAgIHJldHVybiBzbmFwc2hvdC5i
eXRlc0FsbG9jYXRlZFRoaXNDeWNsZSgpIC0gbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0VGhl
QmVnaW5uaW5nOworfQorCitkb3VibGUgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXI6Om1heEhlYWRyb29tKCkKK3sKKyAgICByZXR1cm4gbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNs
ZUF0VGhlRW5kIC0gbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0VGhlQmVnaW5uaW5nOworfQor
Citkb3VibGUgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmhlYWRyb29tRnVs
bG5lc3MoY29uc3QgU25hcHNob3QmIHNuYXBzaG90KQoreworICAgIGRvdWJsZSByZXN1bHQgPSBi
eXRlc1NpbmNlQmVnaW5uaW5nT2ZDeWNsZShzbmFwc2hvdCkgLyBtYXhIZWFkcm9vbSgpOworCisg
ICAgLy8gaGVhZHJvb21GdWxsbmVzcyBjYW4gYmUgTmFOIGFuZCBvdGhlciBpbnRlcmVzdGluZyB0
aGluZ3MgaWYKKyAgICAvLyBieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0VGhlQmVnaW5uaW5nIGlz
IHplcm8uIFdlIHNlZSB0aGF0IGluIGRlYnVnIHRlc3RzLiBUaGlzIGNvZGUKKyAgICAvLyBkZWZl
bmRzIGFnYWluc3QgYWxsIGZsb2F0aW5nIHBvaW50IGRyYWdvbnMuCisgICAgCisgICAgaWYgKCEo
cmVzdWx0ID49IDApKQorICAgICAgICByZXN1bHQgPSAwOworICAgIGlmICghKHJlc3VsdCA8PSAx
KSkKKyAgICAgICAgcmVzdWx0ID0gMTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2RvdWJs
ZSBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6bXV0YXRvclV0aWxpemF0aW9u
KGNvbnN0IFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICBkb3VibGUgbXV0YXRvclV0aWxpemF0
aW9uID0gMSAtIGhlYWRyb29tRnVsbG5lc3Moc25hcHNob3QpOworICAgIAorICAgIC8vIFNjYWxl
IHRoZSBtdXRhdG9yIHV0aWxpemF0aW9uIGludG8gdGhlIHBlcm1pdHRlZCB3aW5kb3cuCisgICAg
bXV0YXRvclV0aWxpemF0aW9uID0KKyAgICAgICAgT3B0aW9uczo6bWluaW11bU11dGF0b3JVdGls
aXphdGlvbigpICsKKyAgICAgICAgbXV0YXRvclV0aWxpemF0aW9uICogKAorICAgICAgICAgICAg
T3B0aW9uczo6bWF4aW11bU11dGF0b3JVdGlsaXphdGlvbigpIC0KKyAgICAgICAgICAgIE9wdGlv
bnM6Om1pbmltdW1NdXRhdG9yVXRpbGl6YXRpb24oKSk7CisgICAgCisgICAgcmV0dXJuIG11dGF0
b3JVdGlsaXphdGlvbjsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNl
VGltZU11dGF0b3JTY2hlZHVsZXIuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsOTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIk11dGF0b3JTY2hl
ZHVsZXIuaCIKKyNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgorI2luY2x1ZGUgPHd0Zi9XZWFrUmFu
ZG9tLmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBIZWFwOworCisvLyBUaGUgSlNDIGNv
bmN1cnJlbnQgR0Mgc29tZXRpbWVzIHN0b3BzIHRoZSB3b3JsZCBpbiBvcmRlciB0byBzdGF5IGFo
ZWFkIG9mIGl0LiBUaGVzZSBkZWxpYmVyYXRlLAorLy8gc3ludGhldGljIHBhdXNlcyBlbnN1cmUg
dGhhdCB0aGUgR0Mgd29uJ3QgaGF2ZSB0byBkbyBvbmUgaHVnZSBwYXVzZSBpbiBvcmRlciB0byBj
YXRjaCB1cCB0byB0aGUKKy8vIHJldHJlYXRpbmcgd2F2ZWZyb250LiBUaGUgc2NoZWR1bGVyIGlz
IGNhbGxlZCAic3BhY2UtdGltZSIgYmVjYXVzZSBpdCBsaW5rcyB0aGUgYW1vdW50IG9mIHRpbWUK
Ky8vIHRoYXQgdGhlIHdvcmxkIGlzIHBhdXNlZCBmb3IgdG8gdGhlIGFtb3VudCBvZiBzcGFjZSB0
aGF0IHRoZSB3b3JsZCBhbGxvY2F0ZWQgc2luY2UgdGhlIEdDIGN5Y2xlCisvLyBiZWdhbi4KKwor
Y2xhc3MgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIgOiBwdWJsaWMgTXV0YXRv
clNjaGVkdWxlciB7CitwdWJsaWM6CisgICAgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hl
ZHVsZXIoSGVhcCYpOworICAgIH5TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcigp
OworICAgIAorICAgIFN0YXRlIHN0YXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgCisgICAgdm9p
ZCBiZWdpbkNvbGxlY3Rpb24oKSBvdmVycmlkZTsKKyAgICAKKyAgICB2b2lkIGRpZFN0b3AoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZXN1bWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFJl
YWNoVGVybWluYXRpb24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZE5vdFJlYWNoVGVybWluYXRp
b24oKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEV4ZWN1dGVDb25zdHJhaW50cygpIG92ZXJyaWRl
OworICAgIHZvaWQgc3luY2hyb25vdXNEcmFpbmluZ0RpZFN0YWxsKCkgb3ZlcnJpZGU7CisgICAg
CisgICAgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9wKCkgb3ZlcnJpZGU7CisgICAgTW9ub3Rvbmlj
VGltZSB0aW1lVG9SZXN1bWUoKSBvdmVycmlkZTsKKyAgICAKKyAgICB2b2lkIGxvZygpIG92ZXJy
aWRlOworICAgIAorICAgIHZvaWQgZW5kQ29sbGVjdGlvbigpIG92ZXJyaWRlOworICAgIAorcHJp
dmF0ZToKKyAgICBjbGFzcyBTbmFwc2hvdDsKKyAgICBmcmllbmQgY2xhc3MgU25hcHNob3Q7Cisg
ICAgCisgICAgdm9pZCBzZXRSZXN1bWVUaW1lKCk7CisgICAgCisgICAgZG91YmxlIGJ5dGVzQWxs
b2NhdGVkVGhpc0N5Y2xlSW1wbCgpOworICAgIAorICAgIGRvdWJsZSBieXRlc1NpbmNlQmVnaW5u
aW5nT2ZDeWNsZShjb25zdCBTbmFwc2hvdCYpOworICAgIGRvdWJsZSBtYXhIZWFkcm9vbSgpOwor
ICAgIGRvdWJsZSBoZWFkcm9vbUZ1bGxuZXNzKGNvbnN0IFNuYXBzaG90Jik7CisgICAgZG91Ymxl
IG11dGF0b3JVdGlsaXphdGlvbihjb25zdCBTbmFwc2hvdCYpOworICAgIAorICAgIEhlYXAmIG1f
aGVhcDsKKyAgICBTdGF0ZSBtX3N0YXRlIHsgTm9ybWFsIH07CisgICAgCisgICAgV2Vha1JhbmRv
bSBtX3JhbmRvbTsKKyAgICAKKyAgICBTZWNvbmRzIG1fbWluaW11bVBhdXNlOworICAgIGRvdWJs
ZSBtX3BhdXNlU2NhbGU7CisgICAgU2Vjb25kcyBtX3RhcmdldFBhdXNlOworICAgIAorICAgIGRv
dWJsZSBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRUaGVCZWdpbm5pbmcgeyAwIH07CisgICAg
ZG91YmxlIG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUVuZCB7IDAgfTsKKyAgICAKKyAg
ICBNb25vdG9uaWNUaW1lIG1fYmVmb3JlQ29uc3RyYWludHM7CisgICAgTW9ub3RvbmljVGltZSBt
X3BsYW5uZWRSZXN1bWVUaW1lOworfTsKKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDIxMDk0NSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5KQpA
QCAtMTk3LDExICsxOTcsMTMgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAg
ICAgdihkb3VibGUsIG1lZGl1bUhlYXBSQU1GcmFjdGlvbiwgMC41LCBOb3JtYWwsIG51bGxwdHIp
IFwKICAgICB2KGRvdWJsZSwgbWVkaXVtSGVhcEdyb3d0aEZhY3RvciwgMS41LCBOb3JtYWwsIG51
bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbGFyZ2VIZWFwR3Jvd3RoRmFjdG9yLCAxLjI0LCBOb3Jt
YWwsIG51bGxwdHIpIFwKLSAgICB2KGJvb2wsIHVzZUNvbGxlY3RvclRpbWVzbGljaW5nLCB0cnVl
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbWluaW11bU11dGF0b3JVdGlsaXph
dGlvbiwgMCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihkb3VibGUsIG1heGltdW1NdXRhdG9y
VXRpbGl6YXRpb24sIDAuNywgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihkb3VibGUsIGNvbmN1
cnJlbnRHQ01heEhlYWRyb29tLCAxLjUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoZG91Ymxl
LCBjb25jdXJyZW50R0NQZXJpb2RNUywgMiwgTm9ybWFsLCBudWxscHRyKSBcCisgICAgdihib29s
LCB1c2VTdG9jaGFzdGljTXV0YXRvclNjaGVkdWxlciwgZmFsc2UsIE5vcm1hbCwgbnVsbHB0cikg
XAorICAgIHYoYm9vbCwgbWluaW11bUdDUGF1c2VNUywgMC4zLCBOb3JtYWwsIG51bGxwdHIpIFwK
KyAgICB2KGJvb2wsIGdjUGF1c2VTY2FsZSwgMC4zLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2
KGJvb2wsIHNjcmliYmxlRnJlZUNlbGxzLCBmYWxzZSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAg
dihkb3VibGUsIHNpemVDbGFzc1Byb2dyZXNzaW9uLCAxLjQsIE5vcm1hbCwgbnVsbHB0cikgXAog
ICAgIHYodW5zaWduZWQsIGxhcmdlQWxsb2NhdGlvbkN1dG9mZiwgMTAwMDAwLCBOb3JtYWwsIG51
bGxwdHIpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299436</attachid>
            <date>2017-01-21 11:17:57 -0800</date>
            <delta_ts>2017-01-22 19:23:03 -0800</delta_ts>
            <desc>more</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>37299</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjExMDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkyIEBA
CisyMDE3LTAxLTIwICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TGFuZCB0aGUgc3RvY2hhc3RpYyBzcGFjZS10aW1lIHNjaGVkdWxlciBkaXNhYmxlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjQ5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBUaGUgc3Bh
Y2UtdGltZSBzY2hlZHVsZXIgaXMgcHJldHR5IHdlaXJkLiBJdCB1c2VzIGEgcGVyaW9kaWMgc2No
ZWR1bGVyIHdoZXJlIHRoZSBuZXh0IHBlcmlvZCBpcworICAgICAgICBzaW1wbHkgZGV0ZXJtaW5l
ZCBieSBhbiBpbnRlZ2VyIG11bHRpcGxlIG9mIHRpbWUgc2luY2Ugd2hlbiB0aGUgc2NoZWR1bGVy
IGxhc3Qgc25hcHBlZCBwaGFzZS4gSXQKKyAgICAgICAgc25hcHMgcGhhc2UgYWZ0ZXIgY29uc3Ry
YWludCBzb2x2aW5nLiBCb3RoIHRoZSBzbmFwcGluZyBvZiB0aGUgcGhhc2UgYWZ0ZXIgY29uc3Ry
YWludCBzb2x2aW5nIGFuZAorICAgICAgICB0aGUgcGVyaW9kaWNpdHkgYXBwZWFyIHRvIGJlIG5l
Y2Vzc2FyeSBmb3IgZ29vZCBwZXJmb3JtYW5jZS4gRm9yIGV4YW1wbGUsIGlmIHRoZSBzcGFjZS10
aW1lCisgICAgICAgIHNjaGVkdWxlciBkZWNpZGVkIHRoYXQgaXQgd2FzIGluIHRoZSByZXN1bWUg
cGFydCBvZiB0aGUgcGhhc2UganVzdCBieSB2aXJ0dWUgb2YgaGF2aW5nIGp1c3QKKyAgICAgICAg
cmVzdW1lZCwgdGhlbiBpdCB3b3VsZCBiZSBlbXBpcmljYWxseSB3b3JzZSB0aGFuIG91ciBzY2hl
ZHVsZXIgd2hpY2ggYXNrcyAid2hhdCB0aW1lIGlzIGl0PyIgdG8KKyAgICAgICAgZGVjaWRlIHdo
ZXRoZXIgaXQgc2hvdWxkIGJlIHN1c3BlbmRlZCBvciByZXN1bWVkIGV2ZW4gaWYgaXQganVzdCBz
dXNwZW5kZWQgb3IgcmVzdW1lZC4gSSd2ZSBzcGVudAorICAgICAgICBhIGxvdCBvZiB0aW1lIHdv
bmRlcmluZyB3aHkgdGhlc2UgdHdvIGZlYXR1cmVzIGFyZSBlc3NlbnRpYWwsIGFuZCBJIHRoaW5r
IEkgZm91bmQgYSByZWFzb24uCisgICAgICAgIAorICAgICAgICBXaGF0J3MgaGFwcGVuaW5nIGlz
IHRoYXQgc29tZXRpbWVzIHRoZSBHQyBoYXMgYW4gb3ZlcnJ1biBhbmQgaXRzIGluY3JlbWVudCB0
YWtlcyBsb25nZXIgdGhhbiBpdAorICAgICAgICBzaG91bGQgaGF2ZS4gVGhlIGN1cnJlbnQgc2No
ZWR1bGVyIGZvcmdpdmVzIG92ZXJydW5zIHdoZW4gY29uc3RyYWludCBzb2x2aW5nLCB3aGljaCBz
ZWVtcyB0bworICAgICAgICBtYWtlIHNlbnNlIGJlY2F1c2UgaXQgY2Fubm90IGNvbnRyb2wgd2hl
dGhlciBjb25zdHJhaW50IHNvbHZpbmcgcnVucyB3aXRoIHRoZSBtdXRhdG9yIHJlc3VtZWQgb3IK
KyAgICAgICAgc3VzcGVuZGVkLiBJdCBoYXMgdG8gYmUgc3VzcGVuZGVkIGN1cnJlbnRseS4gU25h
cHBpbmcgcGhhc2UgYWZ0ZXIgY29uc3RyYWludCBzb2x2aW5nIGFjY29tcGxpc2hlcworICAgICAg
ICB0aGlzLiBXaGF0J3MgbW9yZSBzdXJwcmlzaW5nIGlzIGhvdyBpbXBvcnRhbnQgaXQgaXMgdG8g
bWFuYWdlIGRlYWRsaW5lIG1pc3NlcyBkdXJpbmcgZHJhaW5pbmcuCisgICAgICAgIFRoZSByZWxl
dmFudCBraW5kIG9mIGRlYWRsaW5lIG1pc3MgaXMgd2hlbiBkb2luZyBtdXRhdG9yLXN1c3BlbmRl
ZCBkcmFpbmluZyB0byBjYXRjaCB1cCB0byB0aGUKKyAgICAgICAgcmV0cmVhdGluZyB3YXZlZnJv
bnQuIERlYWRsaW5lIG1pc3NlcyB3aGlsZSBkb2luZyB0aGlzIGNhbiBoYXBwZW4gc3lzdGVtYXRp
Y2FsbHkgaW4gc29tZQorICAgICAgICB3b3JrbG9hZHMsIGxpa2UgSmV0U3RyZWFtL2hhc2gtbWFw
IGFuZCBzb21lIHRlc3QgaW4gU3BlZWRvbWV0ZXIuIEl0J3MgYmVjYXVzZSB0aGV5IGhhdmUgc29t
ZQorICAgICAgICBnaW5vcm1vdXMgb2JqZWN0IGFuZCBpdCB0YWtlcyBsaWtlIH4zbXMrLTEuNW1z
IGp1c3QgdG8gc2NhbiBpdC4gVGhlIHNwYWNlLXRpbWUgc2NoZWR1bGVyJ3MgdXNlCisgICAgICAg
IG9mIHRpbWUgdG8gZGVjaWRlIHdoYXQgdG8gZG8gc2F2ZXMgdGhlIGRheSBoZXJlOiBhZnRlciB0
aGUgZGVhZGxpbmUgbWlzcywgdGhlIHNjaGVkdWxlciB3aWxsCisgICAgICAgIGluaXRpYWxseSBy
ZWFsaXplIHRoYXQgaXQgbWlzc2VkIGl0cyBkZWFkbGluZSB0byByZXN1bWUgdGhlIG11dGF0b3Iu
IEJ1dCBhcyBzb29uIGFzIGl0IGRvZXMgdGhpcworICAgICAgICBpdCBhc2tzOiAiYmFzZWQgb24g
Y3VycmVudCB0aW1lIHNpbmNlIHBoYXNlIHNuYXAsIHdoYXQgc2hvdWxkIEkgZG8/Ii4gSW4gdGhl
IGNhc2Ugb2YgYSBkZWFkbGluZQorICAgICAgICBtaXNzLCB0aGlzIHF1ZXN0aW9uIGlzIGVzc2Vu
dGlhbGx5IGEgd2VpZ2h0ZWQgY29pbiBmbGlwIGJlY2F1c2Ugb2YgdGhlIGhpZ2ggbm9pc2UgaW4g
dGhlIGFtb3VudAorICAgICAgICBvZiB0aW1lIHRoYXQgaXQgdGFrZXMgdG8gZG8gdGhpbmdzIGlu
IHRoZSBHQy4gSWYgeW91IG92ZXJydW4sIHlvdSB3aWxsIHByb2JhYmx5IG92ZXJydW4gYnkKKyAg
ICAgICAgbXVsdGlwbGUgbWlsbGlzZWNvbmRzLCB3aGljaCBpcyBlbm91Z2ggdGhhdCB3aGVyZSB5
b3UgbGFuZCBpbiB0aGUgc3BhY2UtdGltZSBzY2hlZHVsZXIncyB0aW1lbGluZQorICAgICAgICBp
cyByYW5kb20uIFRoZSBsaWtlbGlob29kIHRoYXQgeW91IGxhbmQgaW4gdGhlICJyZXN1bWUgbXV0
YXRvciIgcGFydCBvZiB0aGUgdGltZWxpbmUgaGFzIGEKKyAgICAgICAgcHJvYmFiaWxpdHkgdGhh
dCBpcyByb3VnaGx5IHRoZSBzYW1lIGFzIHdoYXQgdGhlIHNwYWNlLXRpbWUgc2NoZWR1bGVyIGNh
bGxzIG11dGF0b3IgdXRpbGl6YXRpb24uCisgICAgICAgIFRoaXMgaXMgYSBzdXBlciB3ZWlyZCBw
cm9wZXJ0eS4gSSBkaWQgbm90IGludGVuZCBmb3IgaXQgdG8gaGF2ZSB0aGlzIHByb3BlcnR5LCBi
dXQgaXQgYXBwZWFycyB0bworICAgICAgICBiZSB0aGUgbW9zdCBpbXBvcnRhbnQgcHJvcGVydHkg
b2YgdGhpcyBzY2hlZHVsZXIuCisgICAgICAgIAorICAgICAgICBCYXNlZCBvbiB0aGlzLCBpdCBz
ZWVtcyB0aGF0IHRoZSBmYWN0IHRoYXQgdGhlIHNwYWNlLXRpbWUgc2NoZWR1bGVyIGNvdWxkIHN1
c3BlbmQgdGhlIG11dGF0b3IKKyAgICAgICAgYmVmb3JlIGRyYWluaW5nIHJ1bnMgb3V0IG9mIHdv
cmsgZG9lc24ndCBhY2NvbXBsaXNoIGFueXRoaW5nLiBBcyBzb29uIGFzIHlvdSByZXN1bWUgdGhl
CisgICAgICAgIG11dGF0b3IsIHlvdSBoYXZlIGEgcmV0cmVhdGluZyB3YXZlZnJvbnQgdG8gd29y
cnkgYWJvdXQuIEJ1dCBpZiB0aGUgY29sbGVjdG9yIGlzIGhhcHBpbHkgc2Nhbm5pbmcKKyAgICAg
ICAgdGhpbmdzIHRoZW4gaXQncyBhbG1vc3QgY2VydGFpbiB0aGF0IHRoZSBjb2xsZWN0b3Igd2ls
bCBvdXRwYWNlIHRoZSBtdXRhdG9yLiBBbHNvLCBhbnl0aGluZyB0aGF0CisgICAgICAgIHRoZSBt
dXRhdG9yIGFza3MgdXMgdG8gcmV2aXNpdCBpcyBkZWZlcnJlZCBhbnl3YXkuCisgICAgICAgIAor
ICAgICAgICBJbiB0aGUgcGFzdCBJJ3ZlIHRyaWVkIHRvIHJlcGxhY2UgdGhlIHNjaGVkdWxlciBp
biBvbmUgcGF0Y2ggYW5kIHRoaXMgdHVybmVkIG91dCB0byBiZSBhbm5veWluZworICAgICAgICBi
ZWNhdXNlIGV2ZW4gYSBwb29ybHkgY29uY2VpdmVkIHNjaGVkdWxlciBzaG91bGQgYmUgaXRlcmF0
ZWQgb24uIFRoaXMgcGF0Y2ggbGFuZHMgYSBoYWxmLWJha2VkCisgICAgICAgIGJ1dCBjb3JyZWN0
ICJzdG9jaGFzdGljIiBzcGFjZS10aW1lIHNjaGVkdWxlciB0aGF0IHRyaWVzIHRvIHJlcGxpY2F0
ZSB0aG9zZSB0d28gZ29vZCBmZWF0dXJlcyBvZgorICAgICAgICB0aGUgb2xkIHNjaGVkdWxlcjog
KDEpIGl0IGZvcmdpdmVzIGNvbnN0cmFpbnQgcGF1c2VzIGFuZCAoMikgYWZ0ZXIgZGVhZGxpbmUg
b3ZlcnJ1biBpdHMgY2hvaWNlIGlzCisgICAgICAgIHJhbmRvbSwgd2VpZ2h0ZWQgYnkgdGhlIG11
dGF0b3IgdXRpbGl6YXRpb24gdGFyZ2V0LgorICAgICAgICAKKyAgICAgICAgVGhpcyBzY2hlZHVs
ZXIgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gWW91IGNhbiBlbmFibGUgaXQgd2l0aAorICAgICAg
ICAtLXVzZVN0b2NoYXN0aWNNdXRhdG9yU2NoZWR1bGVyPXRydWUuCisKKyAgICAgICAgKiBDTWFr
ZUxpc3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6Okhl
YXApOgorICAgICAgICAoSlNDOjpIZWFwOjptYXJrVG9GaXhwb2ludCk6CisgICAgICAgICogaGVh
cC9IZWFwLmg6CisgICAgICAgICogaGVhcC9NdXRhdG9yU2NoZWR1bGVyLmNwcDoKKyAgICAgICAg
KEpTQzo6TXV0YXRvclNjaGVkdWxlcjo6ZGlkUmVhY2hUZXJtaW5hdGlvbik6CisgICAgICAgIChK
U0M6Ok11dGF0b3JTY2hlZHVsZXI6OmRpZE5vdFJlYWNoVGVybWluYXRpb24pOgorICAgICAgICAo
SlNDOjpNdXRhdG9yU2NoZWR1bGVyOjpzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwpOgorICAg
ICAgICAqIGhlYXAvTXV0YXRvclNjaGVkdWxlci5oOgorICAgICAgICAqIGhlYXAvU3RvY2hhc3Rp
Y1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKEpTQzo6U3Rv
Y2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OlNuYXBzaG90OjpTbmFwc2hvdCk6Cisg
ICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpTbmFwc2hv
dDo6bm93KToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXI6OlNuYXBzaG90OjpieXRlc0FsbG9jYXRlZFRoaXNDeWNsZSk6CisgICAgICAgIChKU0M6OlN0
b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0
YXRvclNjaGVkdWxlcik6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9y
U2NoZWR1bGVyOjp+U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIpOgorICAgICAg
ICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6c3RhdGUpOgorICAg
ICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6YmVnaW5Db2xs
ZWN0aW9uKToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXI6OmRpZFN0b3ApOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNj
aGVkdWxlcjo6d2lsbFJlc3VtZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyOjpkaWRSZWFjaFRlcm1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6U3Rv
Y2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmRpZEV4ZWN1dGVDb25zdHJhaW50cyk6
CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpkaWRO
b3RSZWFjaFRlcm1pbmF0aW9uKToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXI6OnN5bmNocm9ub3VzRHJhaW5pbmdEaWRTdGFsbCk6CisgICAgICAgIChK
U0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjp0aW1lVG9TdG9wKToKKyAg
ICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OnRpbWVUb1Jl
c3VtZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
Ojpsb2cpOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxl
cjo6ZW5kQ29sbGVjdGlvbik6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRh
dG9yU2NoZWR1bGVyOjpzZXRSZXN1bWVUaW1lKToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1Nw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlSW1wbCk6Cisg
ICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpieXRlc1Np
bmNlQmVnaW5uaW5nT2ZDeWNsZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyOjptYXhIZWFkcm9vbSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNT
cGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpoZWFkcm9vbUZ1bGxuZXNzKToKKyAgICAgICAgKEpT
Qzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6Om11dGF0b3JVdGlsaXphdGlv
bik6CisgICAgICAgICogaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5o
OiBBZGRlZC4KKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKwogMjAxNy0wMS0yMCAgSm9z
ZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBvdXRk
YXRlZCBFTkFCTEUoQ1NQX05FWFQpIGJ1aWxkIGZsYWcKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMTAxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTAzLDYgKzUwMyw3IEBAIHNldChK
YXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgaGVhcC9NdXRhdG9yU3RhdGUuY3BwCiAgICAgaGVh
cC9TbG90VmlzaXRvci5jcHAKICAgICBoZWFwL1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3Bw
CisgICAgaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAKICAgICBo
ZWFwL1N0b3BJZk5lY2Vzc2FyeVRpbWVyLmNwcAogICAgIGhlYXAvU3Vic3BhY2UuY3BwCiAgICAg
aGVhcC9TeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hlZHVsZXIuY3BwCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjExMDE1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdv
cmtpbmcgY29weSkKQEAgLTQxMCw2ICs0MTAsOCBAQAogCQkwRjRGMjlFMDE4QjZBRDFDMDA1N0JD
MTUgLyogREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEYyOURFMThCNkFEMUMwMDU3
QkMxNSAvKiBERkdTdGF0aWNFeGVjdXRpb25Db3VudEVzdGltYXRpb25QaGFzZS5oICovOyB9Owog
CQkwRjRGODI4NzFFMkZGREREMDA3NTE4NEMgLyogSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdFN1
YnNwYWNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGNEY4Mjg1MUUyRkZEREIwMDc1MTg0QyAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0U3Vi
c3BhY2UuY3BwICovOyB9OwogCQkwRjRGODI4ODFFMkZGREUwMDA3NTE4NEMgLyogSlNTZWdtZW50
ZWRWYXJpYWJsZU9iamVjdFN1YnNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjRGODI4NjFFMkZGRERCMDA3NTE4NEMgLyogSlNTZWdtZW50ZWRW
YXJpYWJsZU9iamVjdFN1YnNwYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMEY0RjgyOEIxRTMxQjk3NDAwNzUxODRDIC8qIFN0b2NoYXN0aWNT
cGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDBGNEY4Mjg5MUUzMUI5NzEwMDc1MTg0QyAvKiBTdG9jaGFzdGlj
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAgKi87IH07CisJCTBGNEY4MjhDMUUzMUI5NzYw
MDc1MTg0QyAvKiBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0RjgyOEExRTMxQjk3MTAw
NzUxODRDIC8qIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmggKi87IH07CiAJ
CTBGNTBBRjNDMTkzRThCMzkwMDY3NEVFOCAvKiBERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTBBRjNCMTkz
RThCMzkwMDY3NEVFOCAvKiBERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaCAqLzsgfTsKIAkJMEY1
NTEzQTYxRDVBNjgyQzAwQzMyQkQ4IC8qIEZyZWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU1MTNBNTFENUE2ODJBMDBDMzJCRDggLyogRnJl
ZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkwRjU1MTNBODFENUE2OENEMDBDMzJCRDggLyogRnJlZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1NTEzQTcxRDVBNjhDQjAwQzMyQkQ4
IC8qIEZyZWVMaXN0LmNwcCAqLzsgfTsKQEAgLTI4NjMsNiArMjg2NSw4IEBACiAJCTBGNEYyOURF
MThCNkFEMUMwMDU3QkMxNSAvKiBERkdTdGF0aWNFeGVjdXRpb25Db3VudEVzdGltYXRpb25QaGFz
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBERkdTdGF0aWNFeGVjdXRpb25D
b3VudEVzdGltYXRpb25QaGFzZS5oOyBwYXRoID0gZGZnL0RGR1N0YXRpY0V4ZWN1dGlvbkNvdW50
RXN0aW1hdGlvblBoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNEY4Mjg1
MUUyRkZEREIwMDc1MTg0QyAvKiBKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0U3Vic3BhY2UuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNTZWdtZW50ZWRWYXJpYWJs
ZU9iamVjdFN1YnNwYWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY0Rjgy
ODYxRTJGRkREQjAwNzUxODRDIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RTdWJzcGFjZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0U3Vic3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0RjgyODkxRTMx
Qjk3MTAwNzUxODRDIC8qIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMEY0Rjgy
OEExRTMxQjk3MTAwNzUxODRDIC8qIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNTBBRjNC
MTkzRThCMzkwMDY3NEVFOCAvKiBERkdTdHJ1Y3R1cmVDbG9iYmVyU3RhdGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmg7IHBhdGgg
PSBkZmcvREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGNTUxM0E1MUQ1QTY4MkEwMEMzMkJEOCAvKiBGcmVlTGlzdC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBGcmVlTGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjU1MTNBNzFENUE2OENCMDBDMzJCRDggLyogRnJlZUxpc3QuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRnJlZUxpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTgyMSw2ICs1ODI1LDggQEAKIAkJCQkwRkNCNDA4NTE1QzBBM0Mz
MDA0ODkzMkIgLyogU2xvdFZpc2l0b3JJbmxpbmVzLmggKi8sCiAJCQkJMEZERTg3RkExREZFNkU1
MDAwNjRDMzkwIC8qIFNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwICovLAogCQkJCTBGREU4
N0ZCMURGRTZFNTAwMDY0QzM5MCAvKiBTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmggKi8sCisJ
CQkJMEY0RjgyODkxRTMxQjk3MTAwNzUxODRDIC8qIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9y
U2NoZWR1bGVyLmNwcCAqLywKKwkJCQkwRjRGODI4QTFFMzFCOTcxMDA3NTE4NEMgLyogU3RvY2hh
c3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCAqLywKIAkJCQkwRjdDRjk1MDFEQzAyN0Q3
MDA5OENDMTIgLyogU3RvcElmTmVjZXNzYXJ5VGltZXIuY3BwICovLAogCQkJCTBGN0NGOTUxMURD
MDI3RDcwMDk4Q0MxMiAvKiBTdG9wSWZOZWNlc3NhcnlUaW1lci5oICovLAogCQkJCTE0MkUzMTMy
MTM0RkYwQTYwMEFGQURCNSAvKiBTdHJvbmcuaCAqLywKQEAgLTgxOTQsNiArODIwMCw3IEBACiAJ
CQkJMEY5RDMzOTcxN0ZGQzRFNjAwNzNDMkJDIC8qIERGR0ZsdXNoZWRBdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTdEODlDRjgxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0ZsdXNoRm9ybWF0LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjJERDgxNTFBQjNEOEJFMDBCQkI4RTggLyogREZHRm9yQWxsS2ls
bHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTBGNEY4MjhDMUUzMUI5NzYwMDc1MTg0QyAvKiBTdG9j
aGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2
OUNDODkxOTNBQzYwQTAwNDU3NTlFIC8qIERGR0Zyb3plblZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NkVDOURDNjEzMjhERjgyMDAyQjJBRDcgLyogREZHR2VuZXJhdGlvbkluZm8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg2RUM5REM4MTMyOERGODIwMDJCMkFENyAvKiBERkdHcmFwaC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC05OTkwLDYgKzk5OTcsNyBAQAogCQkJCTBGMkZDQ0ZFMThBNjAwNzAw
MDFBMjdGOCAvKiBERkdUaHJlYWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzA5N0Ex
MTQ2QjI4Q0EwMENGMjQ0MiAvKiBERkdUaHVua3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZE
OEEzMjcxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMEY0RjgyOEIxRTMxQjk3NDAwNzUxODRDIC8qIFN0b2NoYXN0
aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDhB
MzI5MTdENTFGNTcwMENBMkM0MCAvKiBERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyQjE3RDUxRjU3MDBDQTJDNDAgLyogREZH
VG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkU3MjExRDE5M0I5QzU5MDAzMUY2RUQgLyogREZHVHJhbnNpdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZp
c2lvbiAyMTEwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgIlNoYWRvd0NoaWNrZW4uaCIK
ICNpbmNsdWRlICJTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU3VwZXJT
YW1wbGVyLmgiCisjaW5jbHVkZSAiU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIu
aCIKICNpbmNsdWRlICJTdG9wSWZOZWNlc3NhcnlUaW1lci5oIgogI2luY2x1ZGUgIlN5bmNocm9u
b3VzU3RvcFRoZVdvcmxkTXV0YXRvclNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlR5cGVQcm9maWxl
ckxvZy5oIgpAQCAtMjg0LDE1ICsyODUsMTcgQEAgSGVhcDo6SGVhcChWTSogdm0sIEhlYXBUeXBl
IGhlYXBUeXBlKQogICAgICwgbV9zaGFyZWRDb2xsZWN0b3JNYXJrU3RhY2soc3RkOjptYWtlX3Vu
aXF1ZTxNYXJrU3RhY2tBcnJheT4oKSkKICAgICAsIG1fc2hhcmVkTXV0YXRvck1hcmtTdGFjayhz
dGQ6Om1ha2VfdW5pcXVlPE1hcmtTdGFja0FycmF5PigpKQogICAgICwgbV9oZWxwZXJDbGllbnQo
JmhlYXBIZWxwZXJQb29sKCkpCi0gICAgLCBtX3NjaGVkdWxlcihzdGQ6Om1ha2VfdW5pcXVlPFNw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXI+KCp0aGlzKSkKICAgICAsIG1fdGhyZWFkTG9jayhCb3g8
TG9jaz46OmNyZWF0ZSgpKQogICAgICwgbV90aHJlYWRDb25kaXRpb24oQXV0b21hdGljVGhyZWFk
Q29uZGl0aW9uOjpjcmVhdGUoKSkKIHsKICAgICBtX3dvcmxkU3RhdGUuc3RvcmUoMCk7CiAgICAg
Ci0gICAgaWYgKE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRHQygpKQotICAgICAgICBtX3NjaGVkdWxl
ciA9IHN0ZDo6bWFrZV91bmlxdWU8U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcj4oKnRoaXMpOwot
ICAgIGVsc2UgeworICAgIGlmIChPcHRpb25zOjp1c2VDb25jdXJyZW50R0MoKSkgeworICAgICAg
ICBpZiAoT3B0aW9uczo6dXNlU3RvY2hhc3RpY011dGF0b3JTY2hlZHVsZXIoKSkKKyAgICAgICAg
ICAgIG1fc2NoZWR1bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxTdG9jaGFzdGljU3BhY2VUaW1lTXV0
YXRvclNjaGVkdWxlcj4oKnRoaXMpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3NjaGVk
dWxlciA9IHN0ZDo6bWFrZV91bmlxdWU8U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcj4oKnRoaXMp
OworICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFdlIHNpbXVsYXRlIHR1cm5pbmcgb2ZmIGNvbmN1
cnJlbnQgR0MgYnkgbWFraW5nIHRoZSBzY2hlZHVsZXIgc2F5IHRoYXQgdGhlIHdvcmxkCiAgICAg
ICAgIC8vIHNob3VsZCBhbHdheXMgYmUgc3RvcHBlZCB3aGVuIHRoZSBjb2xsZWN0b3IgaXMgcnVu
bmluZy4KICAgICAgICAgbV9zY2hlZHVsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFN5bmNocm9ub3Vz
U3RvcFRoZVdvcmxkTXV0YXRvclNjaGVkdWxlcj4oKTsKQEAgLTU3MCwzMiArNTczLDM1IEBAIHZv
aWQgSGVhcDo6bWFya1RvRml4cG9pbnQoZG91YmxlIGdjU3RhcnQKIAogICAgIFNsb3RWaXNpdG9y
JiBzbG90VmlzaXRvciA9ICptX2NvbGxlY3RvclNsb3RWaXNpdG9yOwogICAgIHNsb3RWaXNpdG9y
LmRpZFN0YXJ0TWFya2luZygpOwotCi0gICAgbV9jb25zdHJhaW50U2V0LT5yZXNldFN0YXRzKCk7
CisgICAgbV9jb25zdHJhaW50U2V0LT5kaWRTdGFydE1hcmtpbmcoKTsKICAgICAKICAgICBtX3Nj
aGVkdWxlci0+YmVnaW5Db2xsZWN0aW9uKCk7CiAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCiAg
ICAgICAgIG1fc2NoZWR1bGVyLT5sb2coKTsKICAgICAKLSAgICAvLyBXb25kZXJpbmcgd2hhdCBt
X2NvbnN0cmFpbnRTZXQtPmV4ZWN1dGVYWVogZG9lcz8gSXQncyBydW5uaW5nIHRoZSBjb25zdHJh
aW50cyBjcmVhdGVkIGJ5Ci0gICAgLy8gSGVhcDo6YnVpbGRDb25zdHJhaW50U2V0KCkuCi0gICAg
Ci0gICAgbV9jb25zdHJhaW50U2V0LT5leGVjdXRlQm9vdHN0cmFwKHNsb3RWaXNpdG9yLCBNb25v
dG9uaWNUaW1lOjppbmZpbml0eSgpKTsKLSAgICBtX3NjaGVkdWxlci0+ZGlkRXhlY3V0ZUNvbnN0
cmFpbnRzKCk7Ci0KICAgICAvLyBBZnRlciB0aGlzLCB3ZSB3aWxsIGFsbW9zdCBjZXJ0YWlubHkg
ZmFsbCB0aHJvdWdoIGFsbCBvZiB0aGUgInNsb3RWaXNpdG9yLmlzRW1wdHkoKSIKICAgICAvLyBj
aGVja3MgYmVjYXVzZSBib290c3RyYXAgd291bGQgaGF2ZSBwdXQgdGhpbmdzIGludG8gdGhlIHZp
c2l0b3IuIFNvLCB3ZSBzaG91bGQgZmFsbAogICAgIC8vIHRocm91Z2ggdG8gZHJhaW5pbmcuCiAg
ICAgCi0gICAgdW5zaWduZWQgaXRlcmF0aW9uID0gMTsKKyAgICBpZiAoIXNsb3RWaXNpdG9yLmRp
ZFJlYWNoVGVybWluYXRpb24oKSkgeworICAgICAgICBkYXRhTG9nKCJGYXRhbDogU2xvdFZpc2l0
b3Igc2hvdWxkIHRoaW5rIHRoYXQgR0Mgc2hvdWxkIHRlcm1pbmF0ZSBiZWZvcmUgY29uc3RyYWlu
dCBzb2x2aW5nLCBidXQgaXQgZG9lcyBub3QgdGhpbmsgdGhpcy5cbiIpOworICAgICAgICBkYXRh
TG9nKCJzbG90VmlzaXRvci5pc0VtcHR5KCk6ICIsIHNsb3RWaXNpdG9yLmlzRW1wdHkoKSwgIlxu
Iik7CisgICAgICAgIGRhdGFMb2coInNsb3RWaXNpdG9yLmNvbGxlY3Rvck1hcmtTdGFjaygpLmlz
RW1wdHkoKTogIiwgc2xvdFZpc2l0b3IuY29sbGVjdG9yTWFya1N0YWNrKCkuaXNFbXB0eSgpLCAi
XG4iKTsKKyAgICAgICAgZGF0YUxvZygic2xvdFZpc2l0b3IubXV0YXRvck1hcmtTdGFjaygpLmlz
RW1wdHkoKTogIiwgc2xvdFZpc2l0b3IubXV0YXRvck1hcmtTdGFjaygpLmlzRW1wdHkoKSwgIlxu
Iik7CisgICAgICAgIGRhdGFMb2coIm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnM6ICIs
IG1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMsICJcbiIpOworICAgICAgICBkYXRhTG9n
KCJtX3NoYXJlZENvbGxlY3Rvck1hcmtTdGFjay0+aXNFbXB0eSgpOiAiLCBtX3NoYXJlZENvbGxl
Y3Rvck1hcmtTdGFjay0+aXNFbXB0eSgpLCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygibV9zaGFy
ZWRNdXRhdG9yTWFya1N0YWNrLT5pc0VtcHR5KCk6ICIsIG1fc2hhcmVkTXV0YXRvck1hcmtTdGFj
ay0+aXNFbXB0eSgpLCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygic2xvdFZpc2l0b3IuZGlkUmVh
Y2hUZXJtaW5hdGlvbigpOiAiLCBzbG90VmlzaXRvci5kaWRSZWFjaFRlcm1pbmF0aW9uKCksICJc
biIpOworICAgICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKyAgICAK
ICAgICBmb3IgKDs7KSB7CiAgICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpKQogICAgICAgICAg
ICAgZGF0YUxvZygidj0iLCBieXRlc1Zpc2l0ZWQoKSAvIDEwMjQsICJrYiBvPSIsIG1fb3BhcXVl
Um9vdHMuc2l6ZSgpLCAiIGI9IiwgbV9iYXJyaWVyc0V4ZWN1dGVkLCAiICIpOwogICAgICAgICAK
ICAgICAgICAgaWYgKHNsb3RWaXNpdG9yLmRpZFJlYWNoVGVybWluYXRpb24oKSkgewotICAgICAg
ICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCi0gICAgICAgICAgICAgICAgZGF0YUxvZygiaSMi
LCBpdGVyYXRpb24sICIgIik7Ci0gICAgICAgIAorICAgICAgICAgICAgbV9zY2hlZHVsZXItPmRp
ZFJlYWNoVGVybWluYXRpb24oKTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgYXNzZXJ0U2hh
cmVkTWFya1N0YWNrc0VtcHR5KCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIHNsb3RWaXNp
dG9yLm1lcmdlSWZOZWNlc3NhcnkoKTsKQEAgLTYxMyw2ICs2MTksOCBAQCB2b2lkIEhlYXA6Om1h
cmtUb0ZpeHBvaW50KGRvdWJsZSBnY1N0YXJ0CiAgICAgICAgICAgICAvLyB3aGVuIHdlIGhhdmUg
ZGVlcCBzdGFja3Mgb3IgYSBsb3Qgb2YgRE9NIHN0dWZmLgogICAgICAgICAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NjgzMQogICAgICAgICAgICAgCisg
ICAgICAgICAgICAvLyBXb25kZXJpbmcgd2hhdCB0aGlzIGRvZXM/IExvb2sgYXQgSGVhcDo6YWRk
Q29yZUNvbnN0cmFpbnRzKCkuIFRoZSBET00gYW5kIG90aGVycyBjYW4gYWxzbworICAgICAgICAg
ICAgLy8gYWRkIHRoZWlyIG93biB1c2luZyBIZWFwOjphZGRNYXJraW5nQ29uc3RyYWludCgpLgog
ICAgICAgICAgICAgYm9vbCBjb252ZXJnZWQgPQogICAgICAgICAgICAgICAgIG1fY29uc3RyYWlu
dFNldC0+ZXhlY3V0ZUNvbnZlcmdlbmNlKHNsb3RWaXNpdG9yLCBNb25vdG9uaWNUaW1lOjppbmZp
bml0eSgpKTsKICAgICAgICAgICAgIGlmIChjb252ZXJnZWQgJiYgc2xvdFZpc2l0b3IuaXNFbXB0
eSgpKSB7CkBAIC02MjEsNyArNjI5LDYgQEAgdm9pZCBIZWFwOjptYXJrVG9GaXhwb2ludChkb3Vi
bGUgZ2NTdGFydAogICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICBtX3Nj
aGVkdWxlci0+ZGlkRXhlY3V0ZUNvbnN0cmFpbnRzKCk7Ci0gICAgICAgICAgICBpdGVyYXRpb24r
KzsKICAgICAgICAgfQogICAgICAgICAKICAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCkBA
IC02MzIsNiArNjM5LDExIEBAIHZvaWQgSGVhcDo6bWFya1RvRml4cG9pbnQoZG91YmxlIGdjU3Rh
cnQKICAgICAgICAgICAgIHNsb3RWaXNpdG9yLmRyYWluSW5QYXJhbGxlbChtX3NjaGVkdWxlci0+
dGltZVRvUmVzdW1lKCkpOwogICAgICAgICB9CiAgICAgICAgIAorICAgICAgICBtX3NjaGVkdWxl
ci0+c3luY2hyb25vdXNEcmFpbmluZ0RpZFN0YWxsKCk7CisKKyAgICAgICAgaWYgKHNsb3RWaXNp
dG9yLmRpZFJlYWNoVGVybWluYXRpb24oKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAKICAgICAgICAgaWYgKCFtX3NjaGVkdWxlci0+c2hvdWxkUmVzdW1lKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9I
ZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCShy
ZXZpc2lvbiAyMTEwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2OCw2ICszNjgsNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFz
cyBNYXJrZWRCbG9jazsKICAgICBmcmllbmQgY2xhc3MgU2xvdFZpc2l0b3I7CiAgICAgZnJpZW5k
IGNsYXNzIFNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI7CisgICAgZnJpZW5kIGNsYXNzIFN0b2No
YXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOwogICAgIGZyaWVuZCBjbGFzcyBJbmNyZW1l
bnRhbFN3ZWVwZXI7CiAgICAgZnJpZW5kIGNsYXNzIEhlYXBTdGF0aXN0aWNzOwogICAgIGZyaWVu
ZCBjbGFzcyBWTTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25z
dHJhaW50U2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9N
YXJraW5nQ29uc3RyYWludFNldC5jcHAJKHJldmlzaW9uIDIxMTAxNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U2V0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODYsNyArODYsNyBAQCBNYXJraW5nQ29uc3RyYWludFNldDo6fk1hcmtpbmdDb25zdHJhaW50
CiB7CiB9CiAKLXZvaWQgTWFya2luZ0NvbnN0cmFpbnRTZXQ6OnJlc2V0U3RhdHMoKQordm9pZCBN
YXJraW5nQ29uc3RyYWludFNldDo6ZGlkU3RhcnRNYXJraW5nKCkKIHsKICAgICBtX3VuZXhlY3V0
ZWRSb290cy5jbGVhckFsbCgpOwogICAgIG1fdW5leGVjdXRlZE91dGdyb3d0aHMuY2xlYXJBbGwo
KTsKQEAgLTEwMyw2ICsxMDMsNyBAQCB2b2lkIE1hcmtpbmdDb25zdHJhaW50U2V0OjpyZXNldFN0
YXRzKCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfQorICAgIG1faXRlcmF0
aW9uID0gMTsKIH0KIAogdm9pZCBNYXJraW5nQ29uc3RyYWludFNldDo6YWRkKENTdHJpbmcgYWJi
cmV2aWF0ZWROYW1lLCBDU3RyaW5nIG5hbWUsIEZ1bmN0aW9uPHZvaWQoU2xvdFZpc2l0b3ImLCBj
b25zdCBWaXNpdGluZ1RpbWVvdXQmKT4gZnVuY3Rpb24sIENvbnN0cmFpbnRWb2xhdGlsaXR5IHZv
bGF0aWxpdHkpCkBAIC0xMjksMjIgKzEzMCw2IEBAIHZvaWQgTWFya2luZ0NvbnN0cmFpbnRTZXQ6
OmFkZCgKICAgICBtX3NldC5hcHBlbmQoV1RGTW92ZShjb25zdHJhaW50KSk7CiB9CiAKLWJvb2wg
TWFya2luZ0NvbnN0cmFpbnRTZXQ6OmV4ZWN1dGVCb290c3RyYXAoU2xvdFZpc2l0b3ImIHZpc2l0
b3IsIE1vbm90b25pY1RpbWUgdGltZW91dCkKLXsKLSAgICAvLyBCb290c3RyYXAgbWVhbnMgdGhh
dCB3ZSBoYXZlbid0IGRvbmUgYW55IG9iamVjdCB2aXNpdGluZyB5ZXQuIFRoaXMgbWVhbnMgdGhh
dCB3ZSB3YW50IHRvCi0gICAgLy8gb25seSBleGVjdXRlIHJvb3QgY29uc3RyYWludHMgKHdoaWNo
IGFsc28gaGFwcGVucyB0byBiZSB0aG9zZSB0aGF0IHdlIHNheSBhcmUgZ3JleWVkIGJ5Ci0gICAg
Ly8gcmVzdW1wdGlvbiksIHNpbmNlIHRoZSBvdGhlciBjb25zdHJhaW50cyBhcmUgc3VwZXIgdW5s
aWtlbHkgdG8gdHJpZ2dlciB3aXRob3V0IHNvbWUgb2JqZWN0Ci0gICAgLy8gdmlzaXRpbmcuIFRo
ZSBleHBlY3RhdGlvbiBpcyB0aGF0IHRoZSBjYWxsZXIgd2lsbCBnbyBzdHJhaWdodCB0byBvYmpl
Y3QgdmlzaXRpbmcgYWZ0ZXIKLSAgICAvLyB0aGlzLgotICAgIEV4ZWN1dGlvbkNvbnRleHQgZXhl
Y3V0aW9uQ29udGV4dCgqdGhpcywgdmlzaXRvciwgdGltZW91dCk7Ci0gICAgaWYgKE9wdGlvbnM6
OmxvZ0dDKCkpCi0gICAgICAgIGRhdGFMb2coImJvb3Q6Iik7Ci0gICAgYm9vbCByZXN1bHQgPSBl
eGVjdXRpb25Db250ZXh0LmRyYWluKG1fdW5leGVjdXRlZFJvb3RzKTsKLSAgICBpZiAoT3B0aW9u
czo6bG9nR0MoKSkKLSAgICAgICAgZGF0YUxvZygiICIpOwotICAgIHJldHVybiByZXN1bHQ7Ci19
Ci0KIGJvb2wgTWFya2luZ0NvbnN0cmFpbnRTZXQ6OmV4ZWN1dGVDb252ZXJnZW5jZShTbG90Vmlz
aXRvciYgdmlzaXRvciwgTW9ub3RvbmljVGltZSB0aW1lb3V0KQogewogICAgIGJvb2wgcmVzdWx0
ID0gZXhlY3V0ZUNvbnZlcmdlbmNlSW1wbCh2aXNpdG9yLCB0aW1lb3V0KTsKQEAgLTE2NiwxMyAr
MTUxLDIxIEBAIGJvb2wgTWFya2luZ0NvbnN0cmFpbnRTZXQ6OmV4ZWN1dGVDb252ZXIKIHsKICAg
ICBFeGVjdXRpb25Db250ZXh0IGV4ZWN1dGlvbkNvbnRleHQoKnRoaXMsIHZpc2l0b3IsIHRpbWVv
dXQpOwogICAgIAorICAgIHVuc2lnbmVkIGl0ZXJhdGlvbiA9IG1faXRlcmF0aW9uKys7CisgICAg
CiAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCi0gICAgICAgIGRhdGFMb2coImNvbnZlcmdlOiIp
OworICAgICAgICBkYXRhTG9nKCJpIyIsIGl0ZXJhdGlvbiwgIjoiKTsKIAogICAgIC8vIElmIHRo
ZXJlIGFyZSBhbnkgY29uc3RyYWludHMgdGhhdCB3ZSBoYXZlIG5vdCBleGVjdXRlZCBhdCBhbGwg
ZHVyaW5nIHRoaXMgY3ljbGUsIHRoZW4KICAgICAvLyB3ZSBzaG91bGQgZXhlY3V0ZSB0aG9zZSBu
b3cuCiAgICAgaWYgKCFleGVjdXRpb25Db250ZXh0LmRyYWluKG1fdW5leGVjdXRlZFJvb3RzKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIC8vIEZpcnN0IGl0ZXJhdGlvbiBpcyBi
ZWZvcmUgYW55IHZpc2l0b3IgZHJhaW5pbmcsIHNvIGl0J3MgdW5saWtlbHkgdG8gdHJpZ2dlciBh
bnkgY29uc3RyYWludHMgb3RoZXIKKyAgICAvLyB0aGFuIHJvb3RzLgorICAgIGlmIChpdGVyYXRp
b24gPT0gMSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAogICAgIGlmICghZXhlY3V0aW9u
Q29udGV4dC5kcmFpbihtX3VuZXhlY3V0ZWRPdXRncm93dGhzKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0
cmFpbnRTZXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
aW5nQ29uc3RyYWludFNldC5oCShyZXZpc2lvbiAyMTEwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNldC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3
ICszNiw3IEBAIHB1YmxpYzoKICAgICBNYXJraW5nQ29uc3RyYWludFNldCgpOwogICAgIH5NYXJr
aW5nQ29uc3RyYWludFNldCgpOwogICAgIAotICAgIHZvaWQgcmVzZXRTdGF0cygpOworICAgIHZv
aWQgZGlkU3RhcnRNYXJraW5nKCk7CiAgICAgCiAgICAgdm9pZCBhZGQoCiAgICAgICAgIENTdHJp
bmcgYWJicmV2aWF0ZWROYW1lLApAQCAtNTgsMTAgKzU4LDYgQEAgcHVibGljOgogICAgIGJvb2wg
aXNXYXZlZnJvbnRBZHZhbmNpbmcoU2xvdFZpc2l0b3ImKTsKICAgICBib29sIGlzV2F2ZWZyb250
UmV0cmVhdGluZyhTbG90VmlzaXRvciYgdmlzaXRvcikgeyByZXR1cm4gIWlzV2F2ZWZyb250QWR2
YW5jaW5nKHZpc2l0b3IpOyB9CiAgICAgCi0gICAgLy8gRXhlY3V0ZXMgb25seSByb290cy4gUmV0
dXJucyB0cnVlIGlmIGFsbCByb290cyBoYXZlIGJlZW4gZXhlY3V0ZWQuIEl0J3MgZXhwZWN0ZWQK
LSAgICAvLyB0aGF0IHlvdSdsbCBkbyBzb21lIGRyYWluaW5nIGFmdGVyIHRoaXMgYW5kIHRoZW4g
dXNlIGV4ZWN1dGVDb252ZXJnZW5jZSgpLgotICAgIGJvb2wgZXhlY3V0ZUJvb3RzdHJhcChTbG90
VmlzaXRvciYsIE1vbm90b25pY1RpbWUgdGltZW91dCA9IE1vbm90b25pY1RpbWU6OmluZmluaXR5
KCkpOwotICAgIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGlzIGV4ZWN1dGVkIGFsbCBjb25z
dHJhaW50cyBhbmQgbm9uZSBvZiB0aGVtIHByb2R1Y2VkIG5ldyB3b3JrLiBUaGlzCiAgICAgLy8g
YXNzdW1lcyB0aGF0IHlvdSd2ZSBhbHJhZWR5IHZpc2l0ZWQgcm9vdHMgYW5kIGRyYWluZWQgZnJv
bSB0aGVyZS4KICAgICBib29sIGV4ZWN1dGVDb252ZXJnZW5jZSgKQEAgLTg0LDYgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPE1hcmtpbmdDb25zdHJhaW50Pj4g
bV9zZXQ7CiAgICAgVmVjdG9yPE1hcmtpbmdDb25zdHJhaW50Kj4gbV9vcmRlcmVkOwogICAgIFZl
Y3RvcjxNYXJraW5nQ29uc3RyYWludCo+IG1fb3V0Z3Jvd3RoczsKKyAgICB1bnNpZ25lZCBtX2l0
ZXJhdGlvbiB7IDEgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTXV0YXRvclNjaGVkdWxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTXV0YXRvclNjaGVkdWxlci5jcHAJKHJldmlzaW9uIDIx
MTAxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL011dGF0b3JTY2hlZHVsZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NiwxMCArNDYsMTggQEAgdm9pZCBNdXRhdG9yU2NoZWR1bGVy
Ojp3aWxsUmVzdW1lKCkKIHsKIH0KIAordm9pZCBNdXRhdG9yU2NoZWR1bGVyOjpkaWRSZWFjaFRl
cm1pbmF0aW9uKCkKK3sKK30KKwogdm9pZCBNdXRhdG9yU2NoZWR1bGVyOjpkaWRFeGVjdXRlQ29u
c3RyYWludHMoKQogewogfQogCit2b2lkIE11dGF0b3JTY2hlZHVsZXI6OnN5bmNocm9ub3VzRHJh
aW5pbmdEaWRTdGFsbCgpCit7Cit9CisKIHZvaWQgTXV0YXRvclNjaGVkdWxlcjo6bG9nKCkKIHsK
IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL011dGF0b3JTY2hlZHVsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NdXRhdG9yU2NoZWR1bGVy
LmgJKHJldmlzaW9uIDIxMTAxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL011dGF0
b3JTY2hlZHVsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTAsOCArNTAsMTcgQEAgcHVibGljOgog
ICAgIAogICAgIHZpcnR1YWwgdm9pZCBkaWRTdG9wKCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxS
ZXN1bWUoKTsKKyAgICAKKyAgICAvLyBBdCB0aGUgdG9wIG9mIGFuIGl0ZXJhdGlvbiwgdGhlIEdD
IHdpbGwgbWF5IGNhbGwgZGlkUmVhY2hUZXJtaW5hdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVhY2hUZXJtaW5hdGlvbigpOworICAgIAorICAgIC8vIElmIGl0IGNhbGxlZCBkaWRSZWFjaFRl
cm1pbmF0aW9uLCBpdCB3aWxsIHRoZW4gbGF0ZXIgY2FsbCBkaWRFeGVjdXRlQ29uc3RyYWludHMu
CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4ZWN1dGVDb25zdHJhaW50cygpOwogICAgIAorICAgIC8v
IEFmdGVyIGRvaW5nIHRoYXQsIGl0IHdpbGwgZG8gc3luY2hyb25vdXMgZHJhaW5pbmcuIFdoZW4g
dGhpcyBzdGFsbHMgLSBlaXRoZXIgZHVlIHRvIHRpbWVvdXQgb3IKKyAgICAvLyBqdXN0ICdjYXVz
ZSwgaXQgd2lsbCBjYWxsIHRoaXMuCisgICAgdmlydHVhbCB2b2lkIHN5bmNocm9ub3VzRHJhaW5p
bmdEaWRTdGFsbCgpOworICAgIAogICAgIHZpcnR1YWwgTW9ub3RvbmljVGltZSB0aW1lVG9TdG9w
KCkgPSAwOyAvLyBDYWxsIHdoaWxlIHJlc3VtZWQsIHRvIGFzayB3aGVuIHRvIHN0b3AuCiAgICAg
dmlydHVhbCBNb25vdG9uaWNUaW1lIHRpbWVUb1Jlc3VtZSgpID0gMDsgLy8gQ2FsbCB3aGlsZSBz
dG9wcGVkLCB0byBhc2sgd2hlbiB0byByZXN1bWUuCiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuY3BwCShyZXZpc2lvbiAyMTEwMTUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TbG90VmlzaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQ5MiwxMiArNDkyLDEzIEBAIHZvaWQgU2xvdFZpc2l0b3I6OmRyYWluKE1vbm90b25pY1RpbWUg
dGkKIGJvb2wgU2xvdFZpc2l0b3I6OmRpZFJlYWNoVGVybWluYXRpb24oKQogewogICAgIExvY2tI
b2xkZXIgbG9ja2VyKG1faGVhcC5tX21hcmtpbmdNdXRleCk7Ci0gICAgcmV0dXJuIGlzRW1wdHko
KSAmJiBkaWRSZWFjaFRlcm1pbmF0aW9uKGxvY2tlcik7CisgICAgcmV0dXJuIGRpZFJlYWNoVGVy
bWluYXRpb24obG9ja2VyKTsKIH0KIAogYm9vbCBTbG90VmlzaXRvcjo6ZGlkUmVhY2hUZXJtaW5h
dGlvbihjb25zdCBMb2NrSG9sZGVyJikKIHsKLSAgICByZXR1cm4gIW1faGVhcC5tX251bWJlck9m
QWN0aXZlUGFyYWxsZWxNYXJrZXJzCisgICAgcmV0dXJuIGlzRW1wdHkoKQorICAgICAgICAmJiAh
bV9oZWFwLm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMKICAgICAgICAgJiYgbV9oZWFw
Lm1fc2hhcmVkQ29sbGVjdG9yTWFya1N0YWNrLT5pc0VtcHR5KCkKICAgICAgICAgJiYgbV9oZWFw
Lm1fc2hhcmVkTXV0YXRvck1hcmtTdGFjay0+aXNFbXB0eSgpOwogfQpAQCAtNTE0LDE0ICs1MTUs
MTIgQEAgU2xvdFZpc2l0b3I6OlNoYXJlZERyYWluUmVzdWx0IFNsb3RWaXNpdAogICAgIAogICAg
IEFTU0VSVChPcHRpb25zOjpudW1iZXJPZkdDTWFya2VycygpKTsKICAgICAKLSAgICB7Ci0gICAg
ICAgIExvY2tIb2xkZXIgbG9ja2VyKG1faGVhcC5tX21hcmtpbmdNdXRleCk7Ci0gICAgICAgIG1f
aGVhcC5tX251bWJlck9mQWN0aXZlUGFyYWxsZWxNYXJrZXJzKys7Ci0gICAgfQorICAgIGJvb2wg
aXNBY3RpdmUgPSBmYWxzZTsKICAgICB3aGlsZSAodHJ1ZSkgewogICAgICAgICB7CiAgICAgICAg
ICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2hlYXAubV9tYXJraW5nTXV0ZXgpOwotICAgICAgICAg
ICAgbV9oZWFwLm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMtLTsKKyAgICAgICAgICAg
IGlmIChpc0FjdGl2ZSkKKyAgICAgICAgICAgICAgICBtX2hlYXAubV9udW1iZXJPZkFjdGl2ZVBh
cmFsbGVsTWFya2Vycy0tOwogICAgICAgICAgICAgbV9oZWFwLm1fbnVtYmVyT2ZXYWl0aW5nUGFy
YWxsZWxNYXJrZXJzKys7CiAKICAgICAgICAgICAgIGlmIChzaGFyZWREcmFpbk1vZGUgPT0gTWFz
dGVyRHJhaW4pIHsKQEAgLTU2OCw2ICs1NjcsNyBAQCBTbG90VmlzaXRvcjo6U2hhcmVkRHJhaW5S
ZXN1bHQgU2xvdFZpc2l0CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGRyYWluKHRpbWVv
dXQpOworICAgICAgICBpc0FjdGl2ZSA9IHRydWU7CiAgICAgfQogfQogCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1Nw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDIyNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oIgorCisjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworLy8gVGhlIHNjaGVkdWxlciB3aWxsIG9m
dGVuIG1ha2UgZGVjaXNpb25zIGJhc2VkIG9uIHN0YXRlIHRoYXQgaXMgaW4gZmx1eC4gSXQgd2ls
bCBiZSBmaW5lIHNvCisvLyBsb25nIGFzIG11bHRpcGxlIHVzZXMgb2YgdGhlIHNhbWUgdmFsdWUg
YWxsIHNlZSB0aGUgc2FtZSB2YWx1ZS4gV2Ugd291bGRuJ3QgZ2V0IHRoaXMgZm9yIGZyZWUsCisv
LyBzaW5jZSBvdXIgbmVlZCB0byBtb2R1bGFyaXplIHRoZSBjYWxjdWxhdGlvbiByZXN1bHRzIGlu
IGEgdGVuZGVuY3kgdG8gYWNjZXNzIHRoZSBzYW1lIG11dGFibGUKKy8vIGZpZWxkIGluIEhlYXAg
bXVsdGlwbGUgdGltZXMsIGFuZCB0byBhY2Nlc3MgdGhlIGN1cnJlbnQgdGltZSBtdWx0aXBsZSB0
aW1lcy4KK2NsYXNzIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpTbmFwc2hv
dCB7CitwdWJsaWM6CisgICAgU25hcHNob3QoU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hl
ZHVsZXImIHNjaGVkdWxlcikKKyAgICB7CisgICAgICAgIG1fbm93ID0gTW9ub3RvbmljVGltZTo6
bm93KCk7CisgICAgICAgIG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGUgPSBzY2hlZHVsZXIuYnl0
ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVJbXBsKCk7CisgICAgfQorICAgIAorICAgIE1vbm90b25pY1Rp
bWUgbm93KCkgY29uc3QgeyByZXR1cm4gbV9ub3c7IH0KKyAgICAKKyAgICBkb3VibGUgYnl0ZXNB
bGxvY2F0ZWRUaGlzQ3ljbGUoKSBjb25zdCB7IHJldHVybiBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5
Y2xlOyB9CisgICAgCitwcml2YXRlOgorICAgIE1vbm90b25pY1RpbWUgbV9ub3c7CisgICAgZG91
YmxlIG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGU7Cit9OworCitTdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlcjo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIoSGVh
cCYgaGVhcCkKKyAgICA6IG1faGVhcChoZWFwKQorICAgICwgbV9taW5pbXVtUGF1c2UoU2Vjb25k
czo6ZnJvbU1pbGxpc2Vjb25kcyhPcHRpb25zOjptaW5pbXVtR0NQYXVzZU1TKCkpKQorICAgICwg
bV9wYXVzZVNjYWxlKE9wdGlvbnM6OmdjUGF1c2VTY2FsZSgpKQoreworfQorCitTdG9jaGFzdGlj
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6flN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyKCkKK3sKK30KKworTXV0YXRvclNjaGVkdWxlcjo6U3RhdGUgU3RvY2hhc3RpY1NwYWNl
VGltZU11dGF0b3JTY2hlZHVsZXI6OnN0YXRlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zdGF0
ZTsKK30KKwordm9pZCBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6YmVnaW5D
b2xsZWN0aW9uKCkKK3sKKyAgICBSRUxFQVNFX0FTU0VSVChtX3N0YXRlID09IE5vcm1hbCk7Cisg
ICAgbV9zdGF0ZSA9IFN0b3BwZWQ7CisKKyAgICBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRU
aGVCZWdpbm5pbmcgPSBtX2hlYXAubV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZTsKKyAgICBtX2J5
dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRUaGVFbmQgPSAKKyAgICAgICAgT3B0aW9uczo6Y29uY3Vy
cmVudEdDTWF4SGVhZHJvb20oKSAqCisgICAgICAgIHN0ZDo6bWF4PGRvdWJsZT4obV9ieXRlc0Fs
bG9jYXRlZFRoaXNDeWNsZUF0VGhlQmVnaW5uaW5nLCBtX2hlYXAubV9tYXhFZGVuU2l6ZSk7Cisg
ICAgbV9iZWZvcmVDb25zdHJhaW50cyA9IE1vbm90b25pY1RpbWU6Om5vdygpOworfQorCit2b2lk
IFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpkaWRTdG9wKCkKK3sKKyAgICBS
RUxFQVNFX0FTU0VSVChtX3N0YXRlID09IFN0b3BwZWQgfHwgbV9zdGF0ZSA9PSBSZXN1bWVkKTsK
KyAgICBtX3N0YXRlID0gU3RvcHBlZDsKK30KKwordm9pZCBTdG9jaGFzdGljU3BhY2VUaW1lTXV0
YXRvclNjaGVkdWxlcjo6d2lsbFJlc3VtZSgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9zdGF0
ZSA9PSBTdG9wcGVkIHx8IG1fc3RhdGUgPT0gUmVzdW1lZCk7CisgICAgbV9zdGF0ZSA9IFJlc3Vt
ZWQ7Cit9CisKK3ZvaWQgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmRpZFJl
YWNoVGVybWluYXRpb24oKQoreworICAgIG1fYmVmb3JlQ29uc3RyYWludHMgPSBNb25vdG9uaWNU
aW1lOjpub3coKTsKK30KKwordm9pZCBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxl
cjo6ZGlkRXhlY3V0ZUNvbnN0cmFpbnRzKCkKK3sKKyAgICBTbmFwc2hvdCBzbmFwc2hvdCgqdGhp
cyk7CisgICAgCisgICAgU2Vjb25kcyBjb25zdHJhaW50RXhlY3V0aW9uRHVyYXRpb24gPSBzbmFw
c2hvdC5ub3coKSAtIG1fYmVmb3JlQ29uc3RyYWludHM7CisgICAgCisgICAgbV90YXJnZXRQYXVz
ZSA9IHN0ZDo6bWF4KAorICAgICAgICBjb25zdHJhaW50RXhlY3V0aW9uRHVyYXRpb24gKiBtX3Bh
dXNlU2NhbGUsCisgICAgICAgIG1fbWluaW11bVBhdXNlKTsKKyAgICAKKyAgICBpZiAoT3B0aW9u
czo6bG9nR0MoKSkKKyAgICAgICAgZGF0YUxvZygidHA9IiwgbV90YXJnZXRQYXVzZS5taWxsaXNl
Y29uZHMoKSwgIm1zICIpOworICAgIAorICAgIG1fcGxhbm5lZFJlc3VtZVRpbWUgPSBzbmFwc2hv
dC5ub3coKSArIG1fdGFyZ2V0UGF1c2U7Cit9CisKK3ZvaWQgU3RvY2hhc3RpY1NwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXI6OnN5bmNocm9ub3VzRHJhaW5pbmdEaWRTdGFsbCgpCit7CisgICAgc2V0
UmVzdW1lVGltZSgpOworfQorCitNb25vdG9uaWNUaW1lIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRh
dG9yU2NoZWR1bGVyOjp0aW1lVG9TdG9wKCkKK3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAg
ICBjYXNlIE5vcm1hbDoKKyAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7
CisgICAgY2FzZSBTdG9wcGVkOgorICAgICAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6bm93KCk7
CisgICAgY2FzZSBSZXN1bWVkOiB7CisgICAgICAgIC8vIE9uY2Ugd2UncmUgcnVubmluZywgd2Ug
a2VlcCBnb2luZy4KKyAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7Cisg
ICAgfSB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gTW9ub3RvbmljVGltZSgpOworfQorCitNb25vdG9uaWNUaW1lIFN0b2NoYXN0aWNTcGFjZVRp
bWVNdXRhdG9yU2NoZWR1bGVyOjp0aW1lVG9SZXN1bWUoKQoreworICAgIHN3aXRjaCAobV9zdGF0
ZSkgeworICAgIGNhc2UgTm9ybWFsOgorICAgIGNhc2UgUmVzdW1lZDoKKyAgICAgICAgcmV0dXJu
IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgIGNhc2UgU3RvcHBlZDoKKyAgICAgICAgcmV0dXJu
IG1fcGxhbm5lZFJlc3VtZVRpbWU7CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoKTsKK30KKwordm9pZCBTdG9j
aGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6bG9nKCkKK3sKKyAgICBBU1NFUlQoT3B0
aW9uczo6bG9nR0MoKSk7CisgICAgU25hcHNob3Qgc25hcHNob3QoKnRoaXMpOworICAgIGRhdGFM
b2coCisgICAgICAgICJhPSIsIGZvcm1hdCgiJS4wbGYiLCBieXRlc1NpbmNlQmVnaW5uaW5nT2ZD
eWNsZShzbmFwc2hvdCkgLyAxMDI0KSwgIiBrYiAiLAorICAgICAgICAiaGY9IiwgZm9ybWF0KCIl
LjNsZiIsIGhlYWRyb29tRnVsbG5lc3Moc25hcHNob3QpKSwgIiAiLAorICAgICAgICAibXU9Iiwg
Zm9ybWF0KCIlLjNsZiIsIG11dGF0b3JVdGlsaXphdGlvbihzbmFwc2hvdCkpLCAiICIpOworfQor
Cit2b2lkIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjplbmRDb2xsZWN0aW9u
KCkKK3sKKyAgICBtX3N0YXRlID0gTm9ybWFsOworfQorCit2b2lkIFN0b2NoYXN0aWNTcGFjZVRp
bWVNdXRhdG9yU2NoZWR1bGVyOjpzZXRSZXN1bWVUaW1lKCkKK3sKKyAgICBTbmFwc2hvdCBzbmFw
c2hvdCgqdGhpcyk7CisgICAgCisgICAgZG91YmxlIHJlc3VtZVByb2JhYmlsaXR5ID0gbXV0YXRv
clV0aWxpemF0aW9uKHNuYXBzaG90KTsKKyAgICBib29sIHNob3VsZFJlc3VtZSA9IG1fcmFuZG9t
LmdldCgpIDwgcmVzdW1lUHJvYmFiaWxpdHk7CisgICAgCisgICAgaWYgKHNob3VsZFJlc3VtZSkg
eworICAgICAgICBtX3BsYW5uZWRSZXN1bWVUaW1lID0gc25hcHNob3Qubm93KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgCisgICAgbV9wbGFubmVkUmVzdW1lVGltZSA9IHNuYXBzaG90
Lm5vdygpICsgbV90YXJnZXRQYXVzZTsKK30KKworZG91YmxlIFN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyOjpieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUltcGwoKQoreworICAgIHJl
dHVybiBtX2hlYXAubV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZTsKK30KKworZG91YmxlIFN0b2No
YXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpieXRlc1NpbmNlQmVnaW5uaW5nT2ZDeWNs
ZShjb25zdCBTbmFwc2hvdCYgc25hcHNob3QpCit7CisgICAgcmV0dXJuIHNuYXBzaG90LmJ5dGVz
QWxsb2NhdGVkVGhpc0N5Y2xlKCkgLSBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRUaGVCZWdp
bm5pbmc7Cit9CisKK2RvdWJsZSBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6
bWF4SGVhZHJvb20oKQoreworICAgIHJldHVybiBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRU
aGVFbmQgLSBtX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRUaGVCZWdpbm5pbmc7Cit9CisKK2Rv
dWJsZSBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6aGVhZHJvb21GdWxsbmVz
cyhjb25zdCBTbmFwc2hvdCYgc25hcHNob3QpCit7CisgICAgZG91YmxlIHJlc3VsdCA9IGJ5dGVz
U2luY2VCZWdpbm5pbmdPZkN5Y2xlKHNuYXBzaG90KSAvIG1heEhlYWRyb29tKCk7CisKKyAgICAv
LyBoZWFkcm9vbUZ1bGxuZXNzIGNhbiBiZSBOYU4gYW5kIG90aGVyIGludGVyZXN0aW5nIHRoaW5n
cyBpZgorICAgIC8vIGJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlQXRUaGVCZWdpbm5pbmcgaXMgemVy
by4gV2Ugc2VlIHRoYXQgaW4gZGVidWcgdGVzdHMuIFRoaXMgY29kZQorICAgIC8vIGRlZmVuZHMg
YWdhaW5zdCBhbGwgZmxvYXRpbmcgcG9pbnQgZHJhZ29ucy4KKyAgICAKKyAgICBpZiAoIShyZXN1
bHQgPj0gMCkpCisgICAgICAgIHJlc3VsdCA9IDA7CisgICAgaWYgKCEocmVzdWx0IDw9IDEpKQor
ICAgICAgICByZXN1bHQgPSAxOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworZG91YmxlIFN0
b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjptdXRhdG9yVXRpbGl6YXRpb24oY29u
c3QgU25hcHNob3QmIHNuYXBzaG90KQoreworICAgIGRvdWJsZSBtdXRhdG9yVXRpbGl6YXRpb24g
PSAxIC0gaGVhZHJvb21GdWxsbmVzcyhzbmFwc2hvdCk7CisgICAgCisgICAgLy8gU2NhbGUgdGhl
IG11dGF0b3IgdXRpbGl6YXRpb24gaW50byB0aGUgcGVybWl0dGVkIHdpbmRvdy4KKyAgICBtdXRh
dG9yVXRpbGl6YXRpb24gPQorICAgICAgICBPcHRpb25zOjptaW5pbXVtTXV0YXRvclV0aWxpemF0
aW9uKCkgKworICAgICAgICBtdXRhdG9yVXRpbGl6YXRpb24gKiAoCisgICAgICAgICAgICBPcHRp
b25zOjptYXhpbXVtTXV0YXRvclV0aWxpemF0aW9uKCkgLQorICAgICAgICAgICAgT3B0aW9uczo6
bWluaW11bU11dGF0b3JVdGlsaXphdGlvbigpKTsKKyAgICAKKyAgICByZXR1cm4gbXV0YXRvclV0
aWxpemF0aW9uOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTXV0YXRvclNjaGVkdWxl
ci5oIgorI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtSYW5kb20u
aD4KKworbmFtZXNwYWNlIEpTQyB7CisKK2NsYXNzIEhlYXA7CisKKy8vIFRoZSBKU0MgY29uY3Vy
cmVudCBHQyBzb21ldGltZXMgc3RvcHMgdGhlIHdvcmxkIGluIG9yZGVyIHRvIHN0YXkgYWhlYWQg
b2YgaXQuIFRoZXNlIGRlbGliZXJhdGUsCisvLyBzeW50aGV0aWMgcGF1c2VzIGVuc3VyZSB0aGF0
IHRoZSBHQyB3b24ndCBoYXZlIHRvIGRvIG9uZSBodWdlIHBhdXNlIGluIG9yZGVyIHRvIGNhdGNo
IHVwIHRvIHRoZQorLy8gcmV0cmVhdGluZyB3YXZlZnJvbnQuIFRoZSBzY2hlZHVsZXIgaXMgY2Fs
bGVkICJzcGFjZS10aW1lIiBiZWNhdXNlIGl0IGxpbmtzIHRoZSBhbW91bnQgb2YgdGltZQorLy8g
dGhhdCB0aGUgd29ybGQgaXMgcGF1c2VkIGZvciB0byB0aGUgYW1vdW50IG9mIHNwYWNlIHRoYXQg
dGhlIHdvcmxkIGFsbG9jYXRlZCBzaW5jZSB0aGUgR0MgY3ljbGUKKy8vIGJlZ2FuLgorCitjbGFz
cyBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlciA6IHB1YmxpYyBNdXRhdG9yU2No
ZWR1bGVyIHsKK3B1YmxpYzoKKyAgICBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxl
cihIZWFwJik7CisgICAgflN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyKCk7Cisg
ICAgCisgICAgU3RhdGUgc3RhdGUoKSBjb25zdCBvdmVycmlkZTsKKyAgICAKKyAgICB2b2lkIGJl
Z2luQ29sbGVjdGlvbigpIG92ZXJyaWRlOworICAgIAorICAgIHZvaWQgZGlkU3RvcCgpIG92ZXJy
aWRlOworICAgIHZvaWQgd2lsbFJlc3VtZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVhY2hU
ZXJtaW5hdGlvbigpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkRXhlY3V0ZUNvbnN0cmFpbnRzKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwoKSBvdmVycmlk
ZTsKKyAgICAKKyAgICBNb25vdG9uaWNUaW1lIHRpbWVUb1N0b3AoKSBvdmVycmlkZTsKKyAgICBN
b25vdG9uaWNUaW1lIHRpbWVUb1Jlc3VtZSgpIG92ZXJyaWRlOworICAgIAorICAgIHZvaWQgbG9n
KCkgb3ZlcnJpZGU7CisgICAgCisgICAgdm9pZCBlbmRDb2xsZWN0aW9uKCkgb3ZlcnJpZGU7Cisg
ICAgCitwcml2YXRlOgorICAgIGNsYXNzIFNuYXBzaG90OworICAgIGZyaWVuZCBjbGFzcyBTbmFw
c2hvdDsKKyAgICAKKyAgICB2b2lkIHNldFJlc3VtZVRpbWUoKTsKKyAgICAKKyAgICBkb3VibGUg
Ynl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVJbXBsKCk7CisgICAgCisgICAgZG91YmxlIGJ5dGVzU2lu
Y2VCZWdpbm5pbmdPZkN5Y2xlKGNvbnN0IFNuYXBzaG90Jik7CisgICAgZG91YmxlIG1heEhlYWRy
b29tKCk7CisgICAgZG91YmxlIGhlYWRyb29tRnVsbG5lc3MoY29uc3QgU25hcHNob3QmKTsKKyAg
ICBkb3VibGUgbXV0YXRvclV0aWxpemF0aW9uKGNvbnN0IFNuYXBzaG90Jik7CisgICAgCisgICAg
SGVhcCYgbV9oZWFwOworICAgIFN0YXRlIG1fc3RhdGUgeyBOb3JtYWwgfTsKKyAgICAKKyAgICBX
ZWFrUmFuZG9tIG1fcmFuZG9tOworICAgIAorICAgIFNlY29uZHMgbV9taW5pbXVtUGF1c2U7Cisg
ICAgZG91YmxlIG1fcGF1c2VTY2FsZTsKKyAgICBTZWNvbmRzIG1fdGFyZ2V0UGF1c2U7CisgICAg
CisgICAgZG91YmxlIG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJlZ2lubmluZyB7IDAg
fTsKKyAgICBkb3VibGUgbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0VGhlRW5kIHsgMCB9Owor
ICAgIAorICAgIE1vbm90b25pY1RpbWUgbV9iZWZvcmVDb25zdHJhaW50czsKKyAgICBNb25vdG9u
aWNUaW1lIG1fcGxhbm5lZFJlc3VtZVRpbWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBKU0MKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMjEx
MDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xOTgsMTEgKzE5OCwxMyBAQCB0eXBlZGVmIGNvbnN0IGNoYXIqIG9wdGlvblN0
cmluZzsKICAgICB2KGRvdWJsZSwgbWVkaXVtSGVhcFJBTUZyYWN0aW9uLCAwLjUsIE5vcm1hbCwg
bnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBtZWRpdW1IZWFwR3Jvd3RoRmFjdG9yLCAxLjUsIE5v
cm1hbCwgbnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBsYXJnZUhlYXBHcm93dGhGYWN0b3IsIDEu
MjQsIE5vcm1hbCwgbnVsbHB0cikgXAotICAgIHYoYm9vbCwgdXNlQ29sbGVjdG9yVGltZXNsaWNp
bmcsIHRydWUsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBtaW5pbXVtTXV0YXRv
clV0aWxpemF0aW9uLCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbWF4aW11
bU11dGF0b3JVdGlsaXphdGlvbiwgMC43LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJs
ZSwgY29uY3VycmVudEdDTWF4SGVhZHJvb20sIDEuNSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAg
dihkb3VibGUsIGNvbmN1cnJlbnRHQ1BlcmlvZE1TLCAyLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAg
ICB2KGJvb2wsIHVzZVN0b2NoYXN0aWNNdXRhdG9yU2NoZWR1bGVyLCBmYWxzZSwgTm9ybWFsLCBu
dWxscHRyKSBcCisgICAgdihkb3VibGUsIG1pbmltdW1HQ1BhdXNlTVMsIDAuMywgTm9ybWFsLCBu
dWxscHRyKSBcCisgICAgdihkb3VibGUsIGdjUGF1c2VTY2FsZSwgMC4zLCBOb3JtYWwsIG51bGxw
dHIpIFwKICAgICB2KGJvb2wsIHNjcmliYmxlRnJlZUNlbGxzLCBmYWxzZSwgTm9ybWFsLCBudWxs
cHRyKSBcCiAgICAgdihkb3VibGUsIHNpemVDbGFzc1Byb2dyZXNzaW9uLCAxLjQsIE5vcm1hbCwg
bnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIGxhcmdlQWxsb2NhdGlvbkN1dG9mZiwgMTAwMDAw
LCBOb3JtYWwsIG51bGxwdHIpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299491</attachid>
            <date>2017-01-22 19:23:03 -0800</date>
            <delta_ts>2017-01-23 15:43:47 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>39833</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjExMDI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyNCBA
QAorMjAxNy0wMS0yMiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAg
IExhbmQgdGhlIHN0b2NoYXN0aWMgc3BhY2UtdGltZSBzY2hlZHVsZXIgZGlzYWJsZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzI0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgVGhlIHNw
YWNlLXRpbWUgc2NoZWR1bGVyIGlzIHByZXR0eSB3ZWlyZC4gSXQgdXNlcyBhIHBlcmlvZGljIHNj
aGVkdWxlciB3aGVyZSB0aGUgbmV4dCBwZXJpb2QgaXMKKyAgICAgICAgc2ltcGx5IGRldGVybWlu
ZWQgYnkgYW4gaW50ZWdlciBtdWx0aXBsZSBvZiB0aW1lIHNpbmNlIHdoZW4gdGhlIHNjaGVkdWxl
ciBsYXN0IHNuYXBwZWQgcGhhc2UuIEl0CisgICAgICAgIHNuYXBzIHBoYXNlIGFmdGVyIGNvbnN0
cmFpbnQgc29sdmluZy4gQm90aCB0aGUgc25hcHBpbmcgb2YgdGhlIHBoYXNlIGFmdGVyIGNvbnN0
cmFpbnQgc29sdmluZyBhbmQKKyAgICAgICAgdGhlIHBlcmlvZGljaXR5IGFwcGVhciB0byBiZSBu
ZWNlc3NhcnkgZm9yIGdvb2QgcGVyZm9ybWFuY2UuIEZvciBleGFtcGxlLCBpZiB0aGUgc3BhY2Ut
dGltZQorICAgICAgICBzY2hlZHVsZXIgZGVjaWRlZCB0aGF0IGl0IHdhcyBpbiB0aGUgcmVzdW1l
IHBhcnQgb2YgdGhlIHBoYXNlIGp1c3QgYnkgdmlydHVlIG9mIGhhdmluZyBqdXN0CisgICAgICAg
IHJlc3VtZWQsIHRoZW4gaXQgd291bGQgYmUgZW1waXJpY2FsbHkgd29yc2UgdGhhbiBvdXIgc2No
ZWR1bGVyIHdoaWNoIGFza3MgIndoYXQgdGltZSBpcyBpdD8iIHRvCisgICAgICAgIGRlY2lkZSB3
aGV0aGVyIGl0IHNob3VsZCBiZSBzdXNwZW5kZWQgb3IgcmVzdW1lZCBldmVuIGlmIGl0IGp1c3Qg
c3VzcGVuZGVkIG9yIHJlc3VtZWQuIEkndmUgc3BlbnQKKyAgICAgICAgYSBsb3Qgb2YgdGltZSB3
b25kZXJpbmcgd2h5IHRoZXNlIHR3byBmZWF0dXJlcyBhcmUgZXNzZW50aWFsLCBhbmQgSSB0aGlu
ayBJIGZvdW5kIGEgcmVhc29uLgorICAgICAgICAKKyAgICAgICAgV2hhdCdzIGhhcHBlbmluZyBp
cyB0aGF0IHNvbWV0aW1lcyB0aGUgR0MgaGFzIGFuIG92ZXJydW4gYW5kIGl0cyBpbmNyZW1lbnQg
dGFrZXMgbG9uZ2VyIHRoYW4gaXQKKyAgICAgICAgc2hvdWxkIGhhdmUuIFRoZSBjdXJyZW50IHNj
aGVkdWxlciBmb3JnaXZlcyBvdmVycnVucyB3aGVuIGNvbnN0cmFpbnQgc29sdmluZywgd2hpY2gg
c2VlbXMgdG8KKyAgICAgICAgbWFrZSBzZW5zZSBiZWNhdXNlIGl0IGNhbm5vdCBjb250cm9sIHdo
ZXRoZXIgY29uc3RyYWludCBzb2x2aW5nIHJ1bnMgd2l0aCB0aGUgbXV0YXRvciByZXN1bWVkIG9y
CisgICAgICAgIHN1c3BlbmRlZC4gSXQgaGFzIHRvIGJlIHN1c3BlbmRlZCBjdXJyZW50bHkuIFNu
YXBwaW5nIHBoYXNlIGFmdGVyIGNvbnN0cmFpbnQgc29sdmluZyBhY2NvbXBsaXNoZXMKKyAgICAg
ICAgdGhpcy4gV2hhdCdzIG1vcmUgc3VycHJpc2luZyBpcyBob3cgaW1wb3J0YW50IGl0IGlzIHRv
IG1hbmFnZSBkZWFkbGluZSBtaXNzZXMgZHVyaW5nIGRyYWluaW5nLgorICAgICAgICBUaGUgcmVs
ZXZhbnQga2luZCBvZiBkZWFkbGluZSBtaXNzIGlzIHdoZW4gZG9pbmcgbXV0YXRvci1zdXNwZW5k
ZWQgZHJhaW5pbmcgdG8gY2F0Y2ggdXAgdG8gdGhlCisgICAgICAgIHJldHJlYXRpbmcgd2F2ZWZy
b250LiBEZWFkbGluZSBtaXNzZXMgd2hpbGUgZG9pbmcgdGhpcyBjYW4gaGFwcGVuIHN5c3RlbWF0
aWNhbGx5IGluIHNvbWUKKyAgICAgICAgd29ya2xvYWRzLCBsaWtlIEpldFN0cmVhbS9oYXNoLW1h
cCBhbmQgc29tZSB0ZXN0IGluIFNwZWVkb21ldGVyLiBJdCdzIGJlY2F1c2UgdGhleSBoYXZlIHNv
bWUKKyAgICAgICAgZ2lub3Jtb3VzIG9iamVjdCBhbmQgaXQgdGFrZXMgbGlrZSB+M21zKy0xLjVt
cyBqdXN0IHRvIHNjYW4gaXQuIFRoZSBzcGFjZS10aW1lIHNjaGVkdWxlcidzIHVzZQorICAgICAg
ICBvZiB0aW1lIHRvIGRlY2lkZSB3aGF0IHRvIGRvIHNhdmVzIHRoZSBkYXkgaGVyZTogYWZ0ZXIg
dGhlIGRlYWRsaW5lIG1pc3MsIHRoZSBzY2hlZHVsZXIgd2lsbAorICAgICAgICBpbml0aWFsbHkg
cmVhbGl6ZSB0aGF0IGl0IG1pc3NlZCBpdHMgZGVhZGxpbmUgdG8gcmVzdW1lIHRoZSBtdXRhdG9y
LiBCdXQgYXMgc29vbiBhcyBpdCBkb2VzIHRoaXMKKyAgICAgICAgaXQgYXNrczogImJhc2VkIG9u
IGN1cnJlbnQgdGltZSBzaW5jZSBwaGFzZSBzbmFwLCB3aGF0IHNob3VsZCBJIGRvPyIuIEluIHRo
ZSBjYXNlIG9mIGEgZGVhZGxpbmUKKyAgICAgICAgbWlzcywgdGhpcyBxdWVzdGlvbiBpcyBlc3Nl
bnRpYWxseSBhIHdlaWdodGVkIGNvaW4gZmxpcCBiZWNhdXNlIG9mIHRoZSBoaWdoIG5vaXNlIGlu
IHRoZSBhbW91bnQKKyAgICAgICAgb2YgdGltZSB0aGF0IGl0IHRha2VzIHRvIGRvIHRoaW5ncyBp
biB0aGUgR0MuIElmIHlvdSBvdmVycnVuLCB5b3Ugd2lsbCBwcm9iYWJseSBvdmVycnVuIGJ5Cisg
ICAgICAgIG11bHRpcGxlIG1pbGxpc2Vjb25kcywgd2hpY2ggaXMgZW5vdWdoIHRoYXQgd2hlcmUg
eW91IGxhbmQgaW4gdGhlIHNwYWNlLXRpbWUgc2NoZWR1bGVyJ3MgdGltZWxpbmUKKyAgICAgICAg
aXMgcmFuZG9tLiBUaGUgbGlrZWxpaG9vZCB0aGF0IHlvdSBsYW5kIGluIHRoZSAicmVzdW1lIG11
dGF0b3IiIHBhcnQgb2YgdGhlIHRpbWVsaW5lIGhhcyBhCisgICAgICAgIHByb2JhYmlsaXR5IHRo
YXQgaXMgcm91Z2hseSB0aGUgc2FtZSBhcyB3aGF0IHRoZSBzcGFjZS10aW1lIHNjaGVkdWxlciBj
YWxscyBtdXRhdG9yIHV0aWxpemF0aW9uLgorICAgICAgICBUaGlzIGlzIGEgc3VwZXIgd2VpcmQg
cHJvcGVydHkuIEkgZGlkIG5vdCBpbnRlbmQgZm9yIGl0IHRvIGhhdmUgdGhpcyBwcm9wZXJ0eSwg
YnV0IGl0IGFwcGVhcnMgdG8KKyAgICAgICAgYmUgdGhlIG1vc3QgaW1wb3J0YW50IHByb3BlcnR5
IG9mIHRoaXMgc2NoZWR1bGVyLgorICAgICAgICAKKyAgICAgICAgQmFzZWQgb24gdGhpcywgaXQg
c2VlbXMgdGhhdCB0aGUgZmFjdCB0aGF0IHRoZSBzcGFjZS10aW1lIHNjaGVkdWxlciBjb3VsZCBz
dXNwZW5kIHRoZSBtdXRhdG9yCisgICAgICAgIGJlZm9yZSBkcmFpbmluZyBydW5zIG91dCBvZiB3
b3JrIGRvZXNuJ3QgYWNjb21wbGlzaCBhbnl0aGluZy4gQXMgc29vbiBhcyB5b3UgcmVzdW1lIHRo
ZQorICAgICAgICBtdXRhdG9yLCB5b3UgaGF2ZSBhIHJldHJlYXRpbmcgd2F2ZWZyb250IHRvIHdv
cnJ5IGFib3V0LiBCdXQgaWYgdGhlIGNvbGxlY3RvciBpcyBoYXBwaWx5IHNjYW5uaW5nCisgICAg
ICAgIHRoaW5ncyB0aGVuIGl0J3MgYWxtb3N0IGNlcnRhaW4gdGhhdCB0aGUgY29sbGVjdG9yIHdp
bGwgb3V0cGFjZSB0aGUgbXV0YXRvci4gQWxzbywgYW55dGhpbmcgdGhhdAorICAgICAgICB0aGUg
bXV0YXRvciBhc2tzIHVzIHRvIHJldmlzaXQgaXMgZGVmZXJyZWQgYW55d2F5LgorICAgICAgICAK
KyAgICAgICAgSW4gdGhlIHBhc3QgSSd2ZSB0cmllZCB0byByZXBsYWNlIHRoZSBzY2hlZHVsZXIg
aW4gb25lIHBhdGNoIGFuZCB0aGlzIHR1cm5lZCBvdXQgdG8gYmUgYW5ub3lpbmcKKyAgICAgICAg
YmVjYXVzZSBldmVuIGEgcG9vcmx5IGNvbmNlaXZlZCBzY2hlZHVsZXIgc2hvdWxkIGJlIGl0ZXJh
dGVkIG9uLiBUaGlzIHBhdGNoIGxhbmRzIGEgbmV3IHNjaGVkdWxlcgorICAgICAgICBjYWxsZWQg
dGhlIFN0b2NoYXN0aWNTcGFjZVRpbWUgc2NoZWR1bGVyLiBJdCByZXBsYWNlcyB0d28gb2YgdGhl
IGtub3duLWdvb2QgZmVhdHVyZXMgb2YgdGhlIG9sZAorICAgICAgICBzY2hlZHVsZXI6ICgxKSBp
dCBmb3JnaXZlcyBjb25zdHJhaW50IHBhdXNlcyBhbmQgKDIpIGFmdGVyIGRlYWRsaW5lIG92ZXJy
dW4gaXRzIGNob2ljZSBpcyByYW5kb20sCisgICAgICAgIHdlaWdodGVkIGJ5IHRoZSBtdXRhdG9y
IHV0aWxpemF0aW9uIHRhcmdldC4gVW5saWtlIHRoZSBvbGQgc2NoZWR1bGVyLCB0aGlzIG9uZSB3
aWxsIG9ubHkgc3VzcGVuZAorICAgICAgICB0aGUgbXV0YXRvciB3aGVuIHRoZSBkcmFpbmluZyB0
ZXJtaW5hdGVzLCBidXQgaXQgbWF5IHBhdXNlIGZvciBhbnkgYW1vdW50IG9mIHRpbWUgYWZ0ZXIg
YW4KKyAgICAgICAgaXRlcmF0aW9uIG9mIGNvbnN0cmFpbnQgc29sdmluZy4gSXQgY29tcHV0ZXMg
dGhlIHRhcmdldFBhdXNlIGJ5IG1lYXN1cmluZyBjb25zdHJhaW50IHNvbHZpbmcgdGltZQorICAg
ICAgICBhbmQgbXVsdGlwbHlpbmcgYnkgdGhlIHBhdXNlU2NhbGUgKDAuMyBieSBkZWZhdWx0KS4g
SWYgc21hbGxlciB0aGVuIG1pbmltdW1QYXVzZSAoMC4zbXMgYnkKKyAgICAgICAgZGVmYXVsdCks
IHRoZW4gaXQgdXNlcyBtaW5pbXVtUGF1c2UgaW5zdGVhZC4gVGhlIHN0b2NoYXN0aWMgc2NoZWR1
bGVyIHdpbGwgdGhlbiBkZWZpbml0ZWx5IGRvIGF0CisgICAgICAgIGxlYXN0IHRhcmdldFBhdXNl
IHdvcnRoIG9mIHN1c3BlbmRlZCBkcmFpbmluZyBhZnRlciB0aGUgY29uc3RyYWludCBzb2x2aW5n
IGl0ZXJhdGlvbiwgYW5kIHRoZW4KKyAgICAgICAgaXQgd2lsbCBkZWNpZGUgd2hldGhlciBvciBu
b3QgdG8gZG8gYW5vdGhlciBvbmUgYXQgcmFuZG9tLiBUaGUgcHJvYmFiaWxpdHkgdGhhdCBpdCB3
aWxsIGNob29zZSB0bworICAgICAgICByZXN1bWUgaXMgZXhhY3RseSBtdXRhdG9yVXRpbGl6YXRp
b24sIHdoaWNoIGlzIGNvbXB1dGVkIGV4YWN0bHkgYXMgYmVmb3JlLiBUaGVyZWZvcmUsIHRoZQor
ICAgICAgICBwcm9iYWJpbGl0eSBvZiByZXN1bXB0aW9uIHN0YXJ0cyBhdCAwLjcgYW5kIGdvZXMg
ZG93biBhcyBtZW1vcnkgdXNhZ2UgcmlzZXMuIENvbnZlcnNlbHksIHRoZQorICAgICAgICBwcm9i
YWJpbGl0eSB0aGF0IHdlIHdpbGwgc3RheSBzdXNwZW5kZWQgc3RhcnRzIGF0IDAuMyBhbmQgZ29l
cyB1cCBmcm9tIHRoZXJlLgorICAgICAgICAKKyAgICAgICAgVGhpcyBuZXcgc2NoZWR1bGVyIGxv
b2tzIGxpa2UgaXQgbWlnaHQgYmUgYSAyNSUgaW1wcm92ZW1lbnQgb24gc3BsYXktbGF0ZW5jeS4g
SXQgYWxzbyBsb29rcyBsaWtlCisgICAgICAgIGEgc21hbGwgcHJvZ3Jlc3Npb24gb24gaGFzaC1t
YXAuIEhhc2gtbWFwIGlzIGEgZ3JlYXQgdGVzdCBvZiBvbmUgb2YgdGhlIHdvcnN0IGNhc2VzIG9m
IHJldHJlYXRpbmcKKyAgICAgICAgd2F2ZWZyb250LCBzaW5jZSBpdCBpcyByZXBlYXRlZGx5IHN0
b3JpbmcgdG8gYSBnaW5vcm1vdXMgYXJyYXkuIFRoaXMgYXJyYXkgaXMgc3VyZSB0byB0YWtlIGEK
KyAgICAgICAgd2hpbGUgdG8gc2NhbiwgYW5kIHRvIGNvbXBsZXRlLCB0aGUgR0MgbXVzdCBiZSBz
bWFydCBlbm91Z2ggdG8gdmlzaXQgYW55IG5ldyBvYmplY3RzIGl0IGZpbmRzCisgICAgICAgIHdo
aWxlIHNjYW5uaW5nIHRoZSBhcnJheSBpbW1lZGlhdGVseSBhZnRlciBzY2FubmluZyB0aGF0IGFy
cmF5LiBUaGlzIG5ldyBzY2hlZHVsZXIgbWVhbnMgdGhhdAorICAgICAgICBhZnRlciBzY2Fubmlu
ZyB0aGUgYXJyYXksIHRoZSBwcm9iYWJpbGl0eSB0aGF0IHlvdSB3aWxsIHNjYW4gd2hhdGV2ZXIg
eW91IGZvdW5kIGluIGl0IHN0YXJ0cyBhdAorICAgICAgICAwLjMgYW5kIHJpc2VzIGFzIHRoZSBw
cm9ncmFtIGFsbG9jYXRlcy4gSXQncyBzdXJlIHRvIGJlIDAuMywgYW5kIG5vdCAwLjNeaywgYmVj
YXVzZSBhZnRlciB0aGUKKyAgICAgICAgd2F2ZWZyb250IHN0b3BzIGFkdmFuY2luZywgdGhlIG9u
bHkgb2JqZWN0IG9uIHRoZSBtYXJrIHN0YWNrIGFmdGVyIGEgY29uc3RyYWludCBpdGVyYXRpb24g
d2lsbCBiZQorICAgICAgICB0aGF0IGFycmF5LiBTaW5jZSB0aGVyZSBpcyBzdXJlIHRvIGJlIGEg
MC4zbXMgb3IgbG9uZ2VyIHBhdXNlLCB0aGUgR0Mgd2lsbCBiZSBzdXJlIHRvIHN0YXJ0CisgICAg
ICAgIHZpc2l0aW5nIHRoaXMgb2JqZWN0LiBUaGUgR0MgY2FuIHRoZW4gY29tcGxldGUgaWYgaXQg
anVzdCBhbGxvd3MgZW5vdWdoIHRpbWUgYWZ0ZXIgdGhpcyB0byBzY2FuCisgICAgICAgIHdoYXRl
dmVyIG5ldyBvYmplY3RzIGl0IGZpbmRzLiBJZiBzY2FubmluZyB0aGUgYXJyYXkgb3ZlcnJ1bnMg
dGhlIGRlYWRsaW5lIChhbmQgaXQgYWxtb3N0CisgICAgICAgIGNlcnRhaW5seSB3aWxsKSB0aGVu
IHRoZSBwcm9iYWJpbGl0eSB0aGF0IHRoZSBHQyBrZWVwcyB0aGUgbXV0YXRvciBzdXNwZW5kZWQg
aXMgc2ltcGx5CisgICAgICAgIDEgLSBtdXRhdG9yVXRpbGl6YXRpb24uCisgICAgICAgIAorICAg
ICAgICBUaGlzIHNjaGVkdWxlciBpcyBkaXNhYmxlZCBieSBkZWZhdWx0LiBZb3UgY2FuIGVuYWJs
ZSBpdCB3aXRoCisgICAgICAgIC0tdXNlU3RvY2hhc3RpY011dGF0b3JTY2hlZHVsZXI9dHJ1ZS4K
KworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAg
ICAgKEpTQzo6SGVhcDo6SGVhcCk6CisgICAgICAgIChKU0M6OkhlYXA6Om1hcmtUb0ZpeHBvaW50
KToKKyAgICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBoZWFwL01hcmtpbmdDb25zdHJh
aW50U2V0LmNwcDoKKyAgICAgICAgKEpTQzo6TWFya2luZ0NvbnN0cmFpbnRTZXQ6OmRpZFN0YXJ0
TWFya2luZyk6CisgICAgICAgIChKU0M6Ok1hcmtpbmdDb25zdHJhaW50U2V0OjpleGVjdXRlQ29u
dmVyZ2VuY2VJbXBsKToKKyAgICAgICAgKEpTQzo6TWFya2luZ0NvbnN0cmFpbnRTZXQ6OnJlc2V0
U3RhdHMpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpNYXJraW5nQ29uc3RyYWludFNldDo6ZXhl
Y3V0ZUJvb3RzdHJhcCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9NYXJraW5nQ29uc3RyYWlu
dFNldC5oOgorICAgICAgICAqIGhlYXAvTXV0YXRvclNjaGVkdWxlci5jcHA6CisgICAgICAgIChK
U0M6Ok11dGF0b3JTY2hlZHVsZXI6OmRpZFJlYWNoVGVybWluYXRpb24pOgorICAgICAgICAoSlND
OjpNdXRhdG9yU2NoZWR1bGVyOjpzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwpOgorICAgICAg
ICAqIGhlYXAvTXV0YXRvclNjaGVkdWxlci5oOgorICAgICAgICAqIGhlYXAvU2xvdFZpc2l0b3Iu
Y3BwOgorICAgICAgICAoSlNDOjpTbG90VmlzaXRvcjo6ZGlkUmVhY2hUZXJtaW5hdGlvbik6Cisg
ICAgICAgIChKU0M6OlNsb3RWaXNpdG9yOjpkcmFpbkZyb21TaGFyZWQpOgorICAgICAgICAqIGhl
YXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwOiBBZGRlZC4KKyAgICAg
ICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OlNuYXBzaG90OjpT
bmFwc2hvdCk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1
bGVyOjpTbmFwc2hvdDo6bm93KToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXI6OlNuYXBzaG90OjpieXRlc0FsbG9jYXRlZFRoaXNDeWNsZSk6CisgICAg
ICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpTdG9jaGFzdGlj
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcik6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFj
ZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjp+U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXIpOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6
c3RhdGUpOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxl
cjo6YmVnaW5Db2xsZWN0aW9uKToKKyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXI6OmRpZFN0b3ApOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VU
aW1lTXV0YXRvclNjaGVkdWxlcjo6d2lsbFJlc3VtZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0
aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpkaWRSZWFjaFRlcm1pbmF0aW9uKToKKyAgICAg
ICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmRpZEV4ZWN1dGVD
b25zdHJhaW50cyk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyOjpzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwpOgorICAgICAgICAoSlNDOjpTdG9j
aGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6dGltZVRvU3RvcCk6CisgICAgICAgIChK
U0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjp0aW1lVG9SZXN1bWUpOgor
ICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6bG9nKToK
KyAgICAgICAgKEpTQzo6U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmVuZENv
bGxlY3Rpb24pOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVk
dWxlcjo6c2V0UmVzdW1lVGltZSk6CisgICAgICAgIChKU0M6OlN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyOjpieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUltcGwpOgorICAgICAgICAo
SlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6Ynl0ZXNTaW5jZUJlZ2lu
bmluZ09mQ3ljbGUpOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNj
aGVkdWxlcjo6bWF4SGVhZHJvb20pOgorICAgICAgICAoSlNDOjpTdG9jaGFzdGljU3BhY2VUaW1l
TXV0YXRvclNjaGVkdWxlcjo6aGVhZHJvb21GdWxsbmVzcyk6CisgICAgICAgIChKU0M6OlN0b2No
YXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjptdXRhdG9yVXRpbGl6YXRpb24pOgorICAg
ICAgICAqIGhlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaDogQWRkZWQu
CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6b3ZlcnJpZGVE
ZWZhdWx0cyk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisKIDIwMTctMDEtMjEgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBKYXZhU2NyaXB0IGZvci1v
ZiBkb2VzIG5vdCB3b3JrIG9uIGEgbG90IG9mIGNvbGxlY3Rpb24gdHlwZXMgKGUuZy4gSFRNTENv
bGxlY3Rpb24pCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lv
biAyMTEwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTUwMyw2ICs1MDMsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfU09VUkNFUwog
ICAgIGhlYXAvTXV0YXRvclN0YXRlLmNwcAogICAgIGhlYXAvU2xvdFZpc2l0b3IuY3BwCiAgICAg
aGVhcC9TcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmNwcAorICAgIGhlYXAvU3RvY2hhc3RpY1Nw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwCiAgICAgaGVhcC9TdG9wSWZOZWNlc3NhcnlUaW1l
ci5jcHAKICAgICBoZWFwL1N1YnNwYWNlLmNwcAogICAgIGhlYXAvU3luY2hyb25vdXNTdG9wVGhl
V29ybGRNdXRhdG9yU2NoZWR1bGVyLmNwcApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDIxMTAxNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MTAsNiAr
NDEwLDggQEAKIAkJMEY0RjI5RTAxOEI2QUQxQzAwNTdCQzE1IC8qIERGR1N0YXRpY0V4ZWN1dGlv
bkNvdW50RXN0aW1hdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjRGMjlERTE4QjZBRDFDMDA1N0JDMTUgLyogREZHU3RhdGljRXhlY3V0
aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuaCAqLzsgfTsKIAkJMEY0RjgyODcxRTJGRkRERDAwNzUx
ODRDIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RTdWJzcGFjZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRGODI4NTFFMkZGRERCMDA3NTE4
NEMgLyogSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdFN1YnNwYWNlLmNwcCAqLzsgfTsKIAkJMEY0
RjgyODgxRTJGRkRFMDAwNzUxODRDIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RTdWJzcGFj
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0Rjgy
ODYxRTJGRkREQjAwNzUxODRDIC8qIEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RTdWJzcGFjZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTBGNEY4
MjhCMUUzMUI5NzQwMDc1MTg0QyAvKiBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRG
ODI4OTFFMzFCOTcxMDA3NTE4NEMgLyogU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXIuY3BwICovOyB9OworCQkwRjRGODI4QzFFMzFCOTc2MDA3NTE4NEMgLyogU3RvY2hhc3RpY1Nw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNEY4MjhBMUUzMUI5NzEwMDc1MTg0QyAvKiBTdG9jaGFzdGljU3Bh
Y2VUaW1lTXV0YXRvclNjaGVkdWxlci5oICovOyB9OwogCQkwRjUwQUYzQzE5M0U4QjM5MDA2NzRF
RTggLyogREZHU3RydWN0dXJlQ2xvYmJlclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjUwQUYzQjE5M0U4QjM5MDA2NzRFRTggLyogREZHU3Ry
dWN0dXJlQ2xvYmJlclN0YXRlLmggKi87IH07CiAJCTBGNTUxM0E2MUQ1QTY4MkMwMEMzMkJEOCAv
KiBGcmVlTGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEY1NTEzQTUxRDVBNjgyQTAwQzMyQkQ4IC8qIEZyZWVMaXN0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY1NTEzQTgxRDVBNjhDRDAwQzMy
QkQ4IC8qIEZyZWVMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNTUxM0E3MUQ1QTY4Q0IwMEMzMkJEOCAvKiBGcmVlTGlzdC5jcHAgKi87IH07
CkBAIC0yODYzLDYgKzI4NjUsOCBAQAogCQkwRjRGMjlERTE4QjZBRDFDMDA1N0JDMTUgLyogREZH
U3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gREZHU3RhdGljRXhlY3V0aW9uQ291bnRFc3RpbWF0aW9uUGhhc2UuaDsg
cGF0aCA9IGRmZy9ERkdTdGF0aWNFeGVjdXRpb25Db3VudEVzdGltYXRpb25QaGFzZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjRGODI4NTFFMkZGRERCMDA3NTE4NEMgLyogSlNT
ZWdtZW50ZWRWYXJpYWJsZU9iamVjdFN1YnNwYWNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTU2VnbWVudGVkVmFyaWFibGVPYmplY3RTdWJzcGFjZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGNEY4Mjg2MUUyRkZEREIwMDc1MTg0QyAvKiBK
U1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0U3Vic3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdFN1YnNwYWNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNEY4Mjg5MUUzMUI5NzEwMDc1MTg0QyAvKiBTdG9jaGFz
dGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGNEY4MjhBMUUzMUI5NzEwMDc1MTg0QyAvKiBT
dG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjUwQUYzQjE5M0U4QjM5MDA2NzRFRTggLyogREZH
U3RydWN0dXJlQ2xvYmJlclN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IERGR1N0cnVjdHVyZUNsb2JiZXJTdGF0ZS5oOyBwYXRoID0gZGZnL0RGR1N0cnVjdHVyZUNsb2Ji
ZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjU1MTNBNTFENUE2ODJB
MDBDMzJCRDggLyogRnJlZUxpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RnJlZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY1NTEzQTcxRDVBNjhD
QjAwQzMyQkQ4IC8qIEZyZWVMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEZyZWVMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU4MjEs
NiArNTgyNSw4IEBACiAJCQkJMEZDQjQwODUxNUMwQTNDMzAwNDg5MzJCIC8qIFNsb3RWaXNpdG9y
SW5saW5lcy5oICovLAogCQkJCTBGREU4N0ZBMURGRTZFNTAwMDY0QzM5MCAvKiBTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyLmNwcCAqLywKIAkJCQkwRkRFODdGQjFERkU2RTUwMDA2NEMzOTAgLyog
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oICovLAorCQkJCTBGNEY4Mjg5MUUzMUI5NzEwMDc1
MTg0QyAvKiBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAgKi8sCisJCQkJ
MEY0RjgyOEExRTMxQjk3MTAwNzUxODRDIC8qIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2No
ZWR1bGVyLmggKi8sCiAJCQkJMEY3Q0Y5NTAxREMwMjdENzAwOThDQzEyIC8qIFN0b3BJZk5lY2Vz
c2FyeVRpbWVyLmNwcCAqLywKIAkJCQkwRjdDRjk1MTFEQzAyN0Q3MDA5OENDMTIgLyogU3RvcElm
TmVjZXNzYXJ5VGltZXIuaCAqLywKIAkJCQkxNDJFMzEzMjEzNEZGMEE2MDBBRkFEQjUgLyogU3Ry
b25nLmggKi8sCkBAIC04MTk0LDYgKzgyMDAsNyBAQAogCQkJCTBGOUQzMzk3MTdGRkM0RTYwMDcz
QzJCQyAvKiBERkdGbHVzaGVkQXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDg5Q0Y4MTdBMEI4
Q0MwMDc3M0FEOCAvKiBERkdGbHVzaEZvcm1hdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyREQ4
MTUxQUIzRDhCRTAwQkJCOEU4IC8qIERGR0ZvckFsbEtpbGxzLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkwRjRGODI4QzFFMzFCOTc2MDA3NTE4NEMgLyogU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JT
Y2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjlDQzg5MTkzQUM2MEEwMDQ1NzU5RSAv
KiBERkdGcm96ZW5WYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlEQzYxMzI4REY4MjAw
MkIyQUQ3IC8qIERGR0dlbmVyYXRpb25JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkVDOURD
ODEzMjhERjgyMDAyQjJBRDcgLyogREZHR3JhcGguaCBpbiBIZWFkZXJzICovLApAQCAtOTk5MCw2
ICs5OTk3LDcgQEAKIAkJCQkwRjJGQ0NGRTE4QTYwMDcwMDAxQTI3RjggLyogREZHVGhyZWFkRGF0
YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkMwOTdBMTE0NkIyOENBMDBDRjI0NDIgLyogREZH
VGh1bmtzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDhBMzI3MTdENTFGNTcwMENBMkM0MCAv
KiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTBG
NEY4MjhCMUUzMUI5NzQwMDc1MTg0QyAvKiBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVk
dWxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ4QTMyOTE3RDUxRjU3MDBDQTJDNDAgLyog
REZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZEOEEzMkIxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJl
ZENvbXBpbGF0aW9uQ2FsbGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFNzIxMUQxOTNC
OUM1OTAwMzFGNkVEIC8qIERGR1RyYW5zaXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkocmV2aXNpb24gMjExMDE1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1
LDcgQEAKICNpbmNsdWRlICJTaGFkb3dDaGlja2VuLmgiCiAjaW5jbHVkZSAiU3BhY2VUaW1lTXV0
YXRvclNjaGVkdWxlci5oIgogI2luY2x1ZGUgIlN1cGVyU2FtcGxlci5oIgorI2luY2x1ZGUgIlN0
b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyLmgiCiAjaW5jbHVkZSAiU3RvcElmTmVj
ZXNzYXJ5VGltZXIuaCIKICNpbmNsdWRlICJTeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JT
Y2hlZHVsZXIuaCIKICNpbmNsdWRlICJUeXBlUHJvZmlsZXJMb2cuaCIKQEAgLTI4NCwxNSArMjg1
LDE3IEBAIEhlYXA6OkhlYXAoVk0qIHZtLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICAsIG1fc2hh
cmVkQ29sbGVjdG9yTWFya1N0YWNrKHN0ZDo6bWFrZV91bmlxdWU8TWFya1N0YWNrQXJyYXk+KCkp
CiAgICAgLCBtX3NoYXJlZE11dGF0b3JNYXJrU3RhY2soc3RkOjptYWtlX3VuaXF1ZTxNYXJrU3Rh
Y2tBcnJheT4oKSkKICAgICAsIG1faGVscGVyQ2xpZW50KCZoZWFwSGVscGVyUG9vbCgpKQotICAg
ICwgbV9zY2hlZHVsZXIoc3RkOjptYWtlX3VuaXF1ZTxTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
PigqdGhpcykpCiAgICAgLCBtX3RocmVhZExvY2soQm94PExvY2s+OjpjcmVhdGUoKSkKICAgICAs
IG1fdGhyZWFkQ29uZGl0aW9uKEF1dG9tYXRpY1RocmVhZENvbmRpdGlvbjo6Y3JlYXRlKCkpCiB7
CiAgICAgbV93b3JsZFN0YXRlLnN0b3JlKDApOwogICAgIAotICAgIGlmIChPcHRpb25zOjp1c2VD
b25jdXJyZW50R0MoKSkKLSAgICAgICAgbV9zY2hlZHVsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFNw
YWNlVGltZU11dGF0b3JTY2hlZHVsZXI+KCp0aGlzKTsKLSAgICBlbHNlIHsKKyAgICBpZiAoT3B0
aW9uczo6dXNlQ29uY3VycmVudEdDKCkpIHsKKyAgICAgICAgaWYgKE9wdGlvbnM6OnVzZVN0b2No
YXN0aWNNdXRhdG9yU2NoZWR1bGVyKCkpCisgICAgICAgICAgICBtX3NjaGVkdWxlciA9IHN0ZDo6
bWFrZV91bmlxdWU8U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI+KCp0aGlzKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9zY2hlZHVsZXIgPSBzdGQ6Om1ha2VfdW5pcXVl
PFNwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI+KCp0aGlzKTsKKyAgICB9IGVsc2UgewogICAgICAg
ICAvLyBXZSBzaW11bGF0ZSB0dXJuaW5nIG9mZiBjb25jdXJyZW50IEdDIGJ5IG1ha2luZyB0aGUg
c2NoZWR1bGVyIHNheSB0aGF0IHRoZSB3b3JsZAogICAgICAgICAvLyBzaG91bGQgYWx3YXlzIGJl
IHN0b3BwZWQgd2hlbiB0aGUgY29sbGVjdG9yIGlzIHJ1bm5pbmcuCiAgICAgICAgIG1fc2NoZWR1
bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxTeW5jaHJvbm91c1N0b3BUaGVXb3JsZE11dGF0b3JTY2hl
ZHVsZXI+KCk7CkBAIC01NzAsMzIgKzU3MywzNSBAQCB2b2lkIEhlYXA6Om1hcmtUb0ZpeHBvaW50
KGRvdWJsZSBnY1N0YXJ0CiAKICAgICBTbG90VmlzaXRvciYgc2xvdFZpc2l0b3IgPSAqbV9jb2xs
ZWN0b3JTbG90VmlzaXRvcjsKICAgICBzbG90VmlzaXRvci5kaWRTdGFydE1hcmtpbmcoKTsKLQot
ICAgIG1fY29uc3RyYWludFNldC0+cmVzZXRTdGF0cygpOworICAgIG1fY29uc3RyYWludFNldC0+
ZGlkU3RhcnRNYXJraW5nKCk7CiAgICAgCiAgICAgbV9zY2hlZHVsZXItPmJlZ2luQ29sbGVjdGlv
bigpOwogICAgIGlmIChPcHRpb25zOjpsb2dHQygpKQogICAgICAgICBtX3NjaGVkdWxlci0+bG9n
KCk7CiAgICAgCi0gICAgLy8gV29uZGVyaW5nIHdoYXQgbV9jb25zdHJhaW50U2V0LT5leGVjdXRl
WFlaIGRvZXM/IEl0J3MgcnVubmluZyB0aGUgY29uc3RyYWludHMgY3JlYXRlZCBieQotICAgIC8v
IEhlYXA6OmJ1aWxkQ29uc3RyYWludFNldCgpLgotICAgIAotICAgIG1fY29uc3RyYWludFNldC0+
ZXhlY3V0ZUJvb3RzdHJhcChzbG90VmlzaXRvciwgTW9ub3RvbmljVGltZTo6aW5maW5pdHkoKSk7
Ci0gICAgbV9zY2hlZHVsZXItPmRpZEV4ZWN1dGVDb25zdHJhaW50cygpOwotCiAgICAgLy8gQWZ0
ZXIgdGhpcywgd2Ugd2lsbCBhbG1vc3QgY2VydGFpbmx5IGZhbGwgdGhyb3VnaCBhbGwgb2YgdGhl
ICJzbG90VmlzaXRvci5pc0VtcHR5KCkiCiAgICAgLy8gY2hlY2tzIGJlY2F1c2UgYm9vdHN0cmFw
IHdvdWxkIGhhdmUgcHV0IHRoaW5ncyBpbnRvIHRoZSB2aXNpdG9yLiBTbywgd2Ugc2hvdWxkIGZh
bGwKICAgICAvLyB0aHJvdWdoIHRvIGRyYWluaW5nLgogICAgIAotICAgIHVuc2lnbmVkIGl0ZXJh
dGlvbiA9IDE7CisgICAgaWYgKCFzbG90VmlzaXRvci5kaWRSZWFjaFRlcm1pbmF0aW9uKCkpIHsK
KyAgICAgICAgZGF0YUxvZygiRmF0YWw6IFNsb3RWaXNpdG9yIHNob3VsZCB0aGluayB0aGF0IEdD
IHNob3VsZCB0ZXJtaW5hdGUgYmVmb3JlIGNvbnN0cmFpbnQgc29sdmluZywgYnV0IGl0IGRvZXMg
bm90IHRoaW5rIHRoaXMuXG4iKTsKKyAgICAgICAgZGF0YUxvZygic2xvdFZpc2l0b3IuaXNFbXB0
eSgpOiAiLCBzbG90VmlzaXRvci5pc0VtcHR5KCksICJcbiIpOworICAgICAgICBkYXRhTG9nKCJz
bG90VmlzaXRvci5jb2xsZWN0b3JNYXJrU3RhY2soKS5pc0VtcHR5KCk6ICIsIHNsb3RWaXNpdG9y
LmNvbGxlY3Rvck1hcmtTdGFjaygpLmlzRW1wdHkoKSwgIlxuIik7CisgICAgICAgIGRhdGFMb2co
InNsb3RWaXNpdG9yLm11dGF0b3JNYXJrU3RhY2soKS5pc0VtcHR5KCk6ICIsIHNsb3RWaXNpdG9y
Lm11dGF0b3JNYXJrU3RhY2soKS5pc0VtcHR5KCksICJcbiIpOworICAgICAgICBkYXRhTG9nKCJt
X251bWJlck9mQWN0aXZlUGFyYWxsZWxNYXJrZXJzOiAiLCBtX251bWJlck9mQWN0aXZlUGFyYWxs
ZWxNYXJrZXJzLCAiXG4iKTsKKyAgICAgICAgZGF0YUxvZygibV9zaGFyZWRDb2xsZWN0b3JNYXJr
U3RhY2stPmlzRW1wdHkoKTogIiwgbV9zaGFyZWRDb2xsZWN0b3JNYXJrU3RhY2stPmlzRW1wdHko
KSwgIlxuIik7CisgICAgICAgIGRhdGFMb2coIm1fc2hhcmVkTXV0YXRvck1hcmtTdGFjay0+aXNF
bXB0eSgpOiAiLCBtX3NoYXJlZE11dGF0b3JNYXJrU3RhY2stPmlzRW1wdHkoKSwgIlxuIik7Cisg
ICAgICAgIGRhdGFMb2coInNsb3RWaXNpdG9yLmRpZFJlYWNoVGVybWluYXRpb24oKTogIiwgc2xv
dFZpc2l0b3IuZGlkUmVhY2hUZXJtaW5hdGlvbigpLCAiXG4iKTsKKyAgICAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisgICAgCiAgICAgZm9yICg7OykgewogICAgICAg
ICBpZiAoT3B0aW9uczo6bG9nR0MoKSkKICAgICAgICAgICAgIGRhdGFMb2coInY9IiwgYnl0ZXNW
aXNpdGVkKCkgLyAxMDI0LCAia2Igbz0iLCBtX29wYXF1ZVJvb3RzLnNpemUoKSwgIiBiPSIsIG1f
YmFycmllcnNFeGVjdXRlZCwgIiAiKTsKICAgICAgICAgCiAgICAgICAgIGlmIChzbG90VmlzaXRv
ci5kaWRSZWFjaFRlcm1pbmF0aW9uKCkpIHsKLSAgICAgICAgICAgIGlmIChPcHRpb25zOjpsb2dH
QygpKQotICAgICAgICAgICAgICAgIGRhdGFMb2coImkjIiwgaXRlcmF0aW9uLCAiICIpOwotICAg
ICAgICAKKyAgICAgICAgICAgIG1fc2NoZWR1bGVyLT5kaWRSZWFjaFRlcm1pbmF0aW9uKCk7Cisg
ICAgICAgICAgICAKICAgICAgICAgICAgIGFzc2VydFNoYXJlZE1hcmtTdGFja3NFbXB0eSgpOwog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBzbG90VmlzaXRvci5tZXJnZUlmTmVjZXNzYXJ5KCk7
CkBAIC02MTMsNiArNjE5LDggQEAgdm9pZCBIZWFwOjptYXJrVG9GaXhwb2ludChkb3VibGUgZ2NT
dGFydAogICAgICAgICAgICAgLy8gd2hlbiB3ZSBoYXZlIGRlZXAgc3RhY2tzIG9yIGEgbG90IG9m
IERPTSBzdHVmZi4KICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjY4MzEKICAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gV29uZGVyaW5n
IHdoYXQgdGhpcyBkb2VzPyBMb29rIGF0IEhlYXA6OmFkZENvcmVDb25zdHJhaW50cygpLiBUaGUg
RE9NIGFuZCBvdGhlcnMgY2FuIGFsc28KKyAgICAgICAgICAgIC8vIGFkZCB0aGVpciBvd24gdXNp
bmcgSGVhcDo6YWRkTWFya2luZ0NvbnN0cmFpbnQoKS4KICAgICAgICAgICAgIGJvb2wgY29udmVy
Z2VkID0KICAgICAgICAgICAgICAgICBtX2NvbnN0cmFpbnRTZXQtPmV4ZWN1dGVDb252ZXJnZW5j
ZShzbG90VmlzaXRvciwgTW9ub3RvbmljVGltZTo6aW5maW5pdHkoKSk7CiAgICAgICAgICAgICBp
ZiAoY29udmVyZ2VkICYmIHNsb3RWaXNpdG9yLmlzRW1wdHkoKSkgewpAQCAtNjIxLDcgKzYyOSw2
IEBAIHZvaWQgSGVhcDo6bWFya1RvRml4cG9pbnQoZG91YmxlIGdjU3RhcnQKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIAogICAgICAgICAgICAgbV9zY2hlZHVsZXItPmRpZEV4ZWN1dGVDb25z
dHJhaW50cygpOwotICAgICAgICAgICAgaXRlcmF0aW9uKys7CiAgICAgICAgIH0KICAgICAgICAg
CiAgICAgICAgIGlmIChPcHRpb25zOjpsb2dHQygpKQpAQCAtNjMyLDYgKzYzOSwxMSBAQCB2b2lk
IEhlYXA6Om1hcmtUb0ZpeHBvaW50KGRvdWJsZSBnY1N0YXJ0CiAgICAgICAgICAgICBzbG90Vmlz
aXRvci5kcmFpbkluUGFyYWxsZWwobV9zY2hlZHVsZXItPnRpbWVUb1Jlc3VtZSgpKTsKICAgICAg
ICAgfQogICAgICAgICAKKyAgICAgICAgbV9zY2hlZHVsZXItPnN5bmNocm9ub3VzRHJhaW5pbmdE
aWRTdGFsbCgpOworCisgICAgICAgIGlmIChzbG90VmlzaXRvci5kaWRSZWFjaFRlcm1pbmF0aW9u
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCiAgICAgICAgIGlmICghbV9zY2hl
ZHVsZXItPnNob3VsZFJlc3VtZSgpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkocmV2aXNpb24gMjExMDE1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjgsNiAr
MzY4LDcgQEAgcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTWFya2VkQmxvY2s7CiAgICAgZnJp
ZW5kIGNsYXNzIFNsb3RWaXNpdG9yOwogICAgIGZyaWVuZCBjbGFzcyBTcGFjZVRpbWVNdXRhdG9y
U2NoZWR1bGVyOworICAgIGZyaWVuZCBjbGFzcyBTdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNj
aGVkdWxlcjsKICAgICBmcmllbmQgY2xhc3MgSW5jcmVtZW50YWxTd2VlcGVyOwogICAgIGZyaWVu
ZCBjbGFzcyBIZWFwU3RhdGlzdGljczsKICAgICBmcmllbmQgY2xhc3MgVk07CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5nQ29uc3RyYWludFNldC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTZXQuY3Bw
CShyZXZpc2lvbiAyMTEwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJraW5n
Q29uc3RyYWludFNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgTWFya2lu
Z0NvbnN0cmFpbnRTZXQ6On5NYXJraW5nQ29uc3RyYWludAogewogfQogCi12b2lkIE1hcmtpbmdD
b25zdHJhaW50U2V0OjpyZXNldFN0YXRzKCkKK3ZvaWQgTWFya2luZ0NvbnN0cmFpbnRTZXQ6OmRp
ZFN0YXJ0TWFya2luZygpCiB7CiAgICAgbV91bmV4ZWN1dGVkUm9vdHMuY2xlYXJBbGwoKTsKICAg
ICBtX3VuZXhlY3V0ZWRPdXRncm93dGhzLmNsZWFyQWxsKCk7CkBAIC0xMDMsNiArMTAzLDcgQEAg
dm9pZCBNYXJraW5nQ29uc3RyYWludFNldDo6cmVzZXRTdGF0cygpCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgfQogICAgIH0KKyAgICBtX2l0ZXJhdGlvbiA9IDE7CiB9CiAKIHZvaWQgTWFy
a2luZ0NvbnN0cmFpbnRTZXQ6OmFkZChDU3RyaW5nIGFiYnJldmlhdGVkTmFtZSwgQ1N0cmluZyBu
YW1lLCBGdW5jdGlvbjx2b2lkKFNsb3RWaXNpdG9yJiwgY29uc3QgVmlzaXRpbmdUaW1lb3V0Jik+
IGZ1bmN0aW9uLCBDb25zdHJhaW50Vm9sYXRpbGl0eSB2b2xhdGlsaXR5KQpAQCAtMTI5LDIyICsx
MzAsNiBAQCB2b2lkIE1hcmtpbmdDb25zdHJhaW50U2V0OjphZGQoCiAgICAgbV9zZXQuYXBwZW5k
KFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1ib29sIE1hcmtpbmdDb25zdHJhaW50U2V0Ojpl
eGVjdXRlQm9vdHN0cmFwKFNsb3RWaXNpdG9yJiB2aXNpdG9yLCBNb25vdG9uaWNUaW1lIHRpbWVv
dXQpCi17Ci0gICAgLy8gQm9vdHN0cmFwIG1lYW5zIHRoYXQgd2UgaGF2ZW4ndCBkb25lIGFueSBv
YmplY3QgdmlzaXRpbmcgeWV0LiBUaGlzIG1lYW5zIHRoYXQgd2Ugd2FudCB0bwotICAgIC8vIG9u
bHkgZXhlY3V0ZSByb290IGNvbnN0cmFpbnRzICh3aGljaCBhbHNvIGhhcHBlbnMgdG8gYmUgdGhv
c2UgdGhhdCB3ZSBzYXkgYXJlIGdyZXllZCBieQotICAgIC8vIHJlc3VtcHRpb24pLCBzaW5jZSB0
aGUgb3RoZXIgY29uc3RyYWludHMgYXJlIHN1cGVyIHVubGlrZWx5IHRvIHRyaWdnZXIgd2l0aG91
dCBzb21lIG9iamVjdAotICAgIC8vIHZpc2l0aW5nLiBUaGUgZXhwZWN0YXRpb24gaXMgdGhhdCB0
aGUgY2FsbGVyIHdpbGwgZ28gc3RyYWlnaHQgdG8gb2JqZWN0IHZpc2l0aW5nIGFmdGVyCi0gICAg
Ly8gdGhpcy4KLSAgICBFeGVjdXRpb25Db250ZXh0IGV4ZWN1dGlvbkNvbnRleHQoKnRoaXMsIHZp
c2l0b3IsIHRpbWVvdXQpOwotICAgIGlmIChPcHRpb25zOjpsb2dHQygpKQotICAgICAgICBkYXRh
TG9nKCJib290OiIpOwotICAgIGJvb2wgcmVzdWx0ID0gZXhlY3V0aW9uQ29udGV4dC5kcmFpbiht
X3VuZXhlY3V0ZWRSb290cyk7Ci0gICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCi0gICAgICAgIGRh
dGFMb2coIiAiKTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiBib29sIE1hcmtpbmdDb25zdHJh
aW50U2V0OjpleGVjdXRlQ29udmVyZ2VuY2UoU2xvdFZpc2l0b3ImIHZpc2l0b3IsIE1vbm90b25p
Y1RpbWUgdGltZW91dCkKIHsKICAgICBib29sIHJlc3VsdCA9IGV4ZWN1dGVDb252ZXJnZW5jZUlt
cGwodmlzaXRvciwgdGltZW91dCk7CkBAIC0xNjYsMTMgKzE1MSwyMSBAQCBib29sIE1hcmtpbmdD
b25zdHJhaW50U2V0OjpleGVjdXRlQ29udmVyCiB7CiAgICAgRXhlY3V0aW9uQ29udGV4dCBleGVj
dXRpb25Db250ZXh0KCp0aGlzLCB2aXNpdG9yLCB0aW1lb3V0KTsKICAgICAKKyAgICB1bnNpZ25l
ZCBpdGVyYXRpb24gPSBtX2l0ZXJhdGlvbisrOworICAgIAogICAgIGlmIChPcHRpb25zOjpsb2dH
QygpKQotICAgICAgICBkYXRhTG9nKCJjb252ZXJnZToiKTsKKyAgICAgICAgZGF0YUxvZygiaSMi
LCBpdGVyYXRpb24sICI6Iik7CiAKICAgICAvLyBJZiB0aGVyZSBhcmUgYW55IGNvbnN0cmFpbnRz
IHRoYXQgd2UgaGF2ZSBub3QgZXhlY3V0ZWQgYXQgYWxsIGR1cmluZyB0aGlzIGN5Y2xlLCB0aGVu
CiAgICAgLy8gd2Ugc2hvdWxkIGV4ZWN1dGUgdGhvc2Ugbm93LgogICAgIGlmICghZXhlY3V0aW9u
Q29udGV4dC5kcmFpbihtX3VuZXhlY3V0ZWRSb290cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAKKyAgICAvLyBGaXJzdCBpdGVyYXRpb24gaXMgYmVmb3JlIGFueSB2aXNpdG9yIGRyYWlu
aW5nLCBzbyBpdCdzIHVubGlrZWx5IHRvIHRyaWdnZXIgYW55IGNvbnN0cmFpbnRzIG90aGVyCisg
ICAgLy8gdGhhbiByb290cy4KKyAgICBpZiAoaXRlcmF0aW9uID09IDEpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAKICAgICBpZiAoIWV4ZWN1dGlvbkNvbnRleHQuZHJhaW4obV91bmV4ZWN1
dGVkT3V0Z3Jvd3RocykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtpbmdDb25zdHJhaW50U2V0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0cmFpbnRTZXQuaAkocmV2
aXNpb24gMjExMDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2luZ0NvbnN0
cmFpbnRTZXQuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiAgICAg
TWFya2luZ0NvbnN0cmFpbnRTZXQoKTsKICAgICB+TWFya2luZ0NvbnN0cmFpbnRTZXQoKTsKICAg
ICAKLSAgICB2b2lkIHJlc2V0U3RhdHMoKTsKKyAgICB2b2lkIGRpZFN0YXJ0TWFya2luZygpOwog
ICAgIAogICAgIHZvaWQgYWRkKAogICAgICAgICBDU3RyaW5nIGFiYnJldmlhdGVkTmFtZSwKQEAg
LTU4LDEwICs1OCw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzV2F2ZWZyb250QWR2YW5jaW5nKFNs
b3RWaXNpdG9yJik7CiAgICAgYm9vbCBpc1dhdmVmcm9udFJldHJlYXRpbmcoU2xvdFZpc2l0b3Im
IHZpc2l0b3IpIHsgcmV0dXJuICFpc1dhdmVmcm9udEFkdmFuY2luZyh2aXNpdG9yKTsgfQogICAg
IAotICAgIC8vIEV4ZWN1dGVzIG9ubHkgcm9vdHMuIFJldHVybnMgdHJ1ZSBpZiBhbGwgcm9vdHMg
aGF2ZSBiZWVuIGV4ZWN1dGVkLiBJdCdzIGV4cGVjdGVkCi0gICAgLy8gdGhhdCB5b3UnbGwgZG8g
c29tZSBkcmFpbmluZyBhZnRlciB0aGlzIGFuZCB0aGVuIHVzZSBleGVjdXRlQ29udmVyZ2VuY2Uo
KS4KLSAgICBib29sIGV4ZWN1dGVCb290c3RyYXAoU2xvdFZpc2l0b3ImLCBNb25vdG9uaWNUaW1l
IHRpbWVvdXQgPSBNb25vdG9uaWNUaW1lOjppbmZpbml0eSgpKTsKLSAgICAKICAgICAvLyBSZXR1
cm5zIHRydWUgaWYgdGhpcyBleGVjdXRlZCBhbGwgY29uc3RyYWludHMgYW5kIG5vbmUgb2YgdGhl
bSBwcm9kdWNlZCBuZXcgd29yay4gVGhpcwogICAgIC8vIGFzc3VtZXMgdGhhdCB5b3UndmUgYWxy
YWVkeSB2aXNpdGVkIHJvb3RzIGFuZCBkcmFpbmVkIGZyb20gdGhlcmUuCiAgICAgYm9vbCBleGVj
dXRlQ29udmVyZ2VuY2UoCkBAIC04NCw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPHN0
ZDo6dW5pcXVlX3B0cjxNYXJraW5nQ29uc3RyYWludD4+IG1fc2V0OwogICAgIFZlY3RvcjxNYXJr
aW5nQ29uc3RyYWludCo+IG1fb3JkZXJlZDsKICAgICBWZWN0b3I8TWFya2luZ0NvbnN0cmFpbnQq
PiBtX291dGdyb3d0aHM7CisgICAgdW5zaWduZWQgbV9pdGVyYXRpb24geyAxIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL011dGF0
b3JTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L011dGF0b3JTY2hlZHVsZXIuY3BwCShyZXZpc2lvbiAyMTEwMTUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NdXRhdG9yU2NoZWR1bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYs
MTAgKzQ2LDE4IEBAIHZvaWQgTXV0YXRvclNjaGVkdWxlcjo6d2lsbFJlc3VtZSgpCiB7CiB9CiAK
K3ZvaWQgTXV0YXRvclNjaGVkdWxlcjo6ZGlkUmVhY2hUZXJtaW5hdGlvbigpCit7Cit9CisKIHZv
aWQgTXV0YXRvclNjaGVkdWxlcjo6ZGlkRXhlY3V0ZUNvbnN0cmFpbnRzKCkKIHsKIH0KIAordm9p
ZCBNdXRhdG9yU2NoZWR1bGVyOjpzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwoKQoreworfQor
CiB2b2lkIE11dGF0b3JTY2hlZHVsZXI6OmxvZygpCiB7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9NdXRhdG9yU2NoZWR1bGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvTXV0YXRvclNjaGVkdWxlci5oCShyZXZpc2lvbiAyMTEwMTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NdXRhdG9yU2NoZWR1bGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUwLDggKzUwLDE3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkU3RvcCgpOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVzdW1lKCk7CisgICAgCisgICAgLy8g
QXQgdGhlIHRvcCBvZiBhbiBpdGVyYXRpb24sIHRoZSBHQyB3aWxsIG1heSBjYWxsIGRpZFJlYWNo
VGVybWluYXRpb24uCisgICAgdmlydHVhbCB2b2lkIGRpZFJlYWNoVGVybWluYXRpb24oKTsKKyAg
ICAKKyAgICAvLyBJZiBpdCBjYWxsZWQgZGlkUmVhY2hUZXJtaW5hdGlvbiwgaXQgd2lsbCB0aGVu
IGxhdGVyIGNhbGwgZGlkRXhlY3V0ZUNvbnN0cmFpbnRzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRF
eGVjdXRlQ29uc3RyYWludHMoKTsKICAgICAKKyAgICAvLyBBZnRlciBkb2luZyB0aGF0LCBpdCB3
aWxsIGRvIHN5bmNocm9ub3VzIGRyYWluaW5nLiBXaGVuIHRoaXMgc3RhbGxzIC0gZWl0aGVyIGR1
ZSB0byB0aW1lb3V0IG9yCisgICAgLy8ganVzdCAnY2F1c2UsIGl0IHdpbGwgY2FsbCB0aGlzLgor
ICAgIHZpcnR1YWwgdm9pZCBzeW5jaHJvbm91c0RyYWluaW5nRGlkU3RhbGwoKTsKKyAgICAKICAg
ICB2aXJ0dWFsIE1vbm90b25pY1RpbWUgdGltZVRvU3RvcCgpID0gMDsgLy8gQ2FsbCB3aGlsZSBy
ZXN1bWVkLCB0byBhc2sgd2hlbiB0byBzdG9wLgogICAgIHZpcnR1YWwgTW9ub3RvbmljVGltZSB0
aW1lVG9SZXN1bWUoKSA9IDA7IC8vIENhbGwgd2hpbGUgc3RvcHBlZCwgdG8gYXNrIHdoZW4gdG8g
cmVzdW1lLgogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNp
dG9yLmNwcAkocmV2aXNpb24gMjExMDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
U2xvdFZpc2l0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OTIsMTIgKzQ5MiwxMyBAQCB2b2lk
IFNsb3RWaXNpdG9yOjpkcmFpbihNb25vdG9uaWNUaW1lIHRpCiBib29sIFNsb3RWaXNpdG9yOjpk
aWRSZWFjaFRlcm1pbmF0aW9uKCkKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX2hlYXAubV9t
YXJraW5nTXV0ZXgpOwotICAgIHJldHVybiBpc0VtcHR5KCkgJiYgZGlkUmVhY2hUZXJtaW5hdGlv
bihsb2NrZXIpOworICAgIHJldHVybiBkaWRSZWFjaFRlcm1pbmF0aW9uKGxvY2tlcik7CiB9CiAK
IGJvb2wgU2xvdFZpc2l0b3I6OmRpZFJlYWNoVGVybWluYXRpb24oY29uc3QgTG9ja0hvbGRlciYp
CiB7Ci0gICAgcmV0dXJuICFtX2hlYXAubV9udW1iZXJPZkFjdGl2ZVBhcmFsbGVsTWFya2Vycwor
ICAgIHJldHVybiBpc0VtcHR5KCkKKyAgICAgICAgJiYgIW1faGVhcC5tX251bWJlck9mQWN0aXZl
UGFyYWxsZWxNYXJrZXJzCiAgICAgICAgICYmIG1faGVhcC5tX3NoYXJlZENvbGxlY3Rvck1hcmtT
dGFjay0+aXNFbXB0eSgpCiAgICAgICAgICYmIG1faGVhcC5tX3NoYXJlZE11dGF0b3JNYXJrU3Rh
Y2stPmlzRW1wdHkoKTsKIH0KQEAgLTUxNCwxNCArNTE1LDEyIEBAIFNsb3RWaXNpdG9yOjpTaGFy
ZWREcmFpblJlc3VsdCBTbG90VmlzaXQKICAgICAKICAgICBBU1NFUlQoT3B0aW9uczo6bnVtYmVy
T2ZHQ01hcmtlcnMoKSk7CiAgICAgCi0gICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2hlYXAubV9tYXJraW5nTXV0ZXgpOwotICAgICAgICBtX2hlYXAubV9udW1iZXJPZkFjdGl2ZVBh
cmFsbGVsTWFya2VycysrOwotICAgIH0KKyAgICBib29sIGlzQWN0aXZlID0gZmFsc2U7CiAgICAg
d2hpbGUgKHRydWUpIHsKICAgICAgICAgewogICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9oZWFwLm1fbWFya2luZ011dGV4KTsKLSAgICAgICAgICAgIG1faGVhcC5tX251bWJlck9mQWN0
aXZlUGFyYWxsZWxNYXJrZXJzLS07CisgICAgICAgICAgICBpZiAoaXNBY3RpdmUpCisgICAgICAg
ICAgICAgICAgbV9oZWFwLm1fbnVtYmVyT2ZBY3RpdmVQYXJhbGxlbE1hcmtlcnMtLTsKICAgICAg
ICAgICAgIG1faGVhcC5tX251bWJlck9mV2FpdGluZ1BhcmFsbGVsTWFya2VycysrOwogCiAgICAg
ICAgICAgICBpZiAoc2hhcmVkRHJhaW5Nb2RlID09IE1hc3RlckRyYWluKSB7CkBAIC01NjgsNiAr
NTY3LDcgQEAgU2xvdFZpc2l0b3I6OlNoYXJlZERyYWluUmVzdWx0IFNsb3RWaXNpdAogICAgICAg
ICB9CiAgICAgICAgIAogICAgICAgICBkcmFpbih0aW1lb3V0KTsKKyAgICAgICAgaXNBY3RpdmUg
PSB0cnVlOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Rv
Y2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
LmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFz
dGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwyMjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3RvY2hhc3RpY1NwYWNlVGltZU11
dGF0b3JTY2hlZHVsZXIuaCIKKworI2luY2x1ZGUgIkpTQ0lubGluZXMuaCIKKworbmFtZXNwYWNl
IEpTQyB7CisKKy8vIFRoZSBzY2hlZHVsZXIgd2lsbCBvZnRlbiBtYWtlIGRlY2lzaW9ucyBiYXNl
ZCBvbiBzdGF0ZSB0aGF0IGlzIGluIGZsdXguIEl0IHdpbGwgYmUgZmluZSBzbworLy8gbG9uZyBh
cyBtdWx0aXBsZSB1c2VzIG9mIHRoZSBzYW1lIHZhbHVlIGFsbCBzZWUgdGhlIHNhbWUgdmFsdWUu
IFdlIHdvdWxkbid0IGdldCB0aGlzIGZvciBmcmVlLAorLy8gc2luY2Ugb3VyIG5lZWQgdG8gbW9k
dWxhcml6ZSB0aGUgY2FsY3VsYXRpb24gcmVzdWx0cyBpbiBhIHRlbmRlbmN5IHRvIGFjY2VzcyB0
aGUgc2FtZSBtdXRhYmxlCisvLyBmaWVsZCBpbiBIZWFwIG11bHRpcGxlIHRpbWVzLCBhbmQgdG8g
YWNjZXNzIHRoZSBjdXJyZW50IHRpbWUgbXVsdGlwbGUgdGltZXMuCitjbGFzcyBTdG9jaGFzdGlj
U3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6U25hcHNob3QgeworcHVibGljOgorICAgIFNuYXBz
aG90KFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyJiBzY2hlZHVsZXIpCisgICAg
eworICAgICAgICBtX25vdyA9IE1vbm90b25pY1RpbWU6Om5vdygpOworICAgICAgICBtX2J5dGVz
QWxsb2NhdGVkVGhpc0N5Y2xlID0gc2NoZWR1bGVyLmJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlSW1w
bCgpOworICAgIH0KKyAgICAKKyAgICBNb25vdG9uaWNUaW1lIG5vdygpIGNvbnN0IHsgcmV0dXJu
IG1fbm93OyB9CisgICAgCisgICAgZG91YmxlIGJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlKCkgY29u
c3QgeyByZXR1cm4gbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZTsgfQorICAgIAorcHJpdmF0ZToK
KyAgICBNb25vdG9uaWNUaW1lIG1fbm93OworICAgIGRvdWJsZSBtX2J5dGVzQWxsb2NhdGVkVGhp
c0N5Y2xlOworfTsKKworU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OlN0b2No
YXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyKEhlYXAmIGhlYXApCisgICAgOiBtX2hlYXAo
aGVhcCkKKyAgICAsIG1fbWluaW11bVBhdXNlKFNlY29uZHM6OmZyb21NaWxsaXNlY29uZHMoT3B0
aW9uczo6bWluaW11bUdDUGF1c2VNUygpKSkKKyAgICAsIG1fcGF1c2VTY2FsZShPcHRpb25zOjpn
Y1BhdXNlU2NhbGUoKSkKK3sKK30KKworU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVs
ZXI6On5TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcigpCit7Cit9CisKK011dGF0
b3JTY2hlZHVsZXI6OlN0YXRlIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpz
dGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RhdGU7Cit9CisKK3ZvaWQgU3RvY2hhc3Rp
Y1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmJlZ2luQ29sbGVjdGlvbigpCit7CisgICAgUkVM
RUFTRV9BU1NFUlQobV9zdGF0ZSA9PSBOb3JtYWwpOworICAgIG1fc3RhdGUgPSBTdG9wcGVkOwor
CisgICAgbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0VGhlQmVnaW5uaW5nID0gbV9oZWFwLm1f
Ynl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGU7CisgICAgbV9ieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUF0
VGhlRW5kID0gCisgICAgICAgIE9wdGlvbnM6OmNvbmN1cnJlbnRHQ01heEhlYWRyb29tKCkgKgor
ICAgICAgICBzdGQ6Om1heDxkb3VibGU+KG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJl
Z2lubmluZywgbV9oZWFwLm1fbWF4RWRlblNpemUpOworICAgIG1fYmVmb3JlQ29uc3RyYWludHMg
PSBNb25vdG9uaWNUaW1lOjpub3coKTsKK30KKwordm9pZCBTdG9jaGFzdGljU3BhY2VUaW1lTXV0
YXRvclNjaGVkdWxlcjo6ZGlkU3RvcCgpCit7CisgICAgUkVMRUFTRV9BU1NFUlQobV9zdGF0ZSA9
PSBTdG9wcGVkIHx8IG1fc3RhdGUgPT0gUmVzdW1lZCk7CisgICAgbV9zdGF0ZSA9IFN0b3BwZWQ7
Cit9CisKK3ZvaWQgU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OndpbGxSZXN1
bWUoKQoreworICAgIFJFTEVBU0VfQVNTRVJUKG1fc3RhdGUgPT0gU3RvcHBlZCB8fCBtX3N0YXRl
ID09IFJlc3VtZWQpOworICAgIG1fc3RhdGUgPSBSZXN1bWVkOworfQorCit2b2lkIFN0b2NoYXN0
aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpkaWRSZWFjaFRlcm1pbmF0aW9uKCkKK3sKKyAg
ICBtX2JlZm9yZUNvbnN0cmFpbnRzID0gTW9ub3RvbmljVGltZTo6bm93KCk7Cit9CisKK3ZvaWQg
U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmRpZEV4ZWN1dGVDb25zdHJhaW50
cygpCit7CisgICAgU25hcHNob3Qgc25hcHNob3QoKnRoaXMpOworICAgIAorICAgIFNlY29uZHMg
Y29uc3RyYWludEV4ZWN1dGlvbkR1cmF0aW9uID0gc25hcHNob3Qubm93KCkgLSBtX2JlZm9yZUNv
bnN0cmFpbnRzOworICAgIAorICAgIG1fdGFyZ2V0UGF1c2UgPSBzdGQ6Om1heCgKKyAgICAgICAg
Y29uc3RyYWludEV4ZWN1dGlvbkR1cmF0aW9uICogbV9wYXVzZVNjYWxlLAorICAgICAgICBtX21p
bmltdW1QYXVzZSk7CisgICAgCisgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCisgICAgICAgIGRh
dGFMb2coInRwPSIsIG1fdGFyZ2V0UGF1c2UubWlsbGlzZWNvbmRzKCksICJtcyAiKTsKKyAgICAK
KyAgICBtX3BsYW5uZWRSZXN1bWVUaW1lID0gc25hcHNob3Qubm93KCkgKyBtX3RhcmdldFBhdXNl
OworfQorCit2b2lkIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpzeW5jaHJv
bm91c0RyYWluaW5nRGlkU3RhbGwoKQoreworICAgIFNuYXBzaG90IHNuYXBzaG90KCp0aGlzKTsK
KyAgICAKKyAgICBkb3VibGUgcmVzdW1lUHJvYmFiaWxpdHkgPSBtdXRhdG9yVXRpbGl6YXRpb24o
c25hcHNob3QpOworICAgIGJvb2wgc2hvdWxkUmVzdW1lID0gbV9yYW5kb20uZ2V0KCkgPCByZXN1
bWVQcm9iYWJpbGl0eTsKKyAgICAKKyAgICBpZiAoc2hvdWxkUmVzdW1lKSB7CisgICAgICAgIG1f
cGxhbm5lZFJlc3VtZVRpbWUgPSBzbmFwc2hvdC5ub3coKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICAKKyAgICBtX3BsYW5uZWRSZXN1bWVUaW1lID0gc25hcHNob3Qubm93KCkgKyBtX3Rh
cmdldFBhdXNlOworfQorCitNb25vdG9uaWNUaW1lIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9y
U2NoZWR1bGVyOjp0aW1lVG9TdG9wKCkKK3sKKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBj
YXNlIE5vcm1hbDoKKyAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7Cisg
ICAgY2FzZSBTdG9wcGVkOgorICAgICAgICByZXR1cm4gTW9ub3RvbmljVGltZTo6bm93KCk7Cisg
ICAgY2FzZSBSZXN1bWVkOiB7CisgICAgICAgIC8vIE9uY2Ugd2UncmUgcnVubmluZywgd2Uga2Vl
cCBnb2luZy4KKyAgICAgICAgcmV0dXJuIE1vbm90b25pY1RpbWU6OmluZmluaXR5KCk7CisgICAg
fSB9CisgICAgCisgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4g
TW9ub3RvbmljVGltZSgpOworfQorCitNb25vdG9uaWNUaW1lIFN0b2NoYXN0aWNTcGFjZVRpbWVN
dXRhdG9yU2NoZWR1bGVyOjp0aW1lVG9SZXN1bWUoKQoreworICAgIHN3aXRjaCAobV9zdGF0ZSkg
eworICAgIGNhc2UgTm9ybWFsOgorICAgIGNhc2UgUmVzdW1lZDoKKyAgICAgICAgcmV0dXJuIE1v
bm90b25pY1RpbWU6Om5vdygpOworICAgIGNhc2UgU3RvcHBlZDoKKyAgICAgICAgcmV0dXJuIG1f
cGxhbm5lZFJlc3VtZVRpbWU7CisgICAgfQorICAgIAorICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIE1vbm90b25pY1RpbWUoKTsKK30KKwordm9pZCBTdG9jaGFz
dGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlcjo6bG9nKCkKK3sKKyAgICBBU1NFUlQoT3B0aW9u
czo6bG9nR0MoKSk7CisgICAgU25hcHNob3Qgc25hcHNob3QoKnRoaXMpOworICAgIGRhdGFMb2co
CisgICAgICAgICJhPSIsIGZvcm1hdCgiJS4wbGYiLCBieXRlc1NpbmNlQmVnaW5uaW5nT2ZDeWNs
ZShzbmFwc2hvdCkgLyAxMDI0KSwgIiBrYiAiLAorICAgICAgICAiaGY9IiwgZm9ybWF0KCIlLjNs
ZiIsIGhlYWRyb29tRnVsbG5lc3Moc25hcHNob3QpKSwgIiAiLAorICAgICAgICAibXU9IiwgZm9y
bWF0KCIlLjNsZiIsIG11dGF0b3JVdGlsaXphdGlvbihzbmFwc2hvdCkpLCAiICIpOworfQorCit2
b2lkIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjplbmRDb2xsZWN0aW9uKCkK
K3sKKyAgICBtX3N0YXRlID0gTm9ybWFsOworfQorCitkb3VibGUgU3RvY2hhc3RpY1NwYWNlVGlt
ZU11dGF0b3JTY2hlZHVsZXI6OmJ5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlSW1wbCgpCit7CisgICAg
cmV0dXJuIG1faGVhcC5tX2J5dGVzQWxsb2NhdGVkVGhpc0N5Y2xlOworfQorCitkb3VibGUgU3Rv
Y2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6OmJ5dGVzU2luY2VCZWdpbm5pbmdPZkN5
Y2xlKGNvbnN0IFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICByZXR1cm4gc25hcHNob3QuYnl0
ZXNBbGxvY2F0ZWRUaGlzQ3ljbGUoKSAtIG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJl
Z2lubmluZzsKK30KKworZG91YmxlIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVy
OjptYXhIZWFkcm9vbSgpCit7CisgICAgcmV0dXJuIG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVB
dFRoZUVuZCAtIG1fYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJlZ2lubmluZzsKK30KKwor
ZG91YmxlIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyOjpoZWFkcm9vbUZ1bGxu
ZXNzKGNvbnN0IFNuYXBzaG90JiBzbmFwc2hvdCkKK3sKKyAgICBkb3VibGUgcmVzdWx0ID0gYnl0
ZXNTaW5jZUJlZ2lubmluZ09mQ3ljbGUoc25hcHNob3QpIC8gbWF4SGVhZHJvb20oKTsKKworICAg
IC8vIGhlYWRyb29tRnVsbG5lc3MgY2FuIGJlIE5hTiBhbmQgb3RoZXIgaW50ZXJlc3RpbmcgdGhp
bmdzIGlmCisgICAgLy8gYnl0ZXNBbGxvY2F0ZWRUaGlzQ3ljbGVBdFRoZUJlZ2lubmluZyBpcyB6
ZXJvLiBXZSBzZWUgdGhhdCBpbiBkZWJ1ZyB0ZXN0cy4gVGhpcyBjb2RlCisgICAgLy8gZGVmZW5k
cyBhZ2FpbnN0IGFsbCBmbG9hdGluZyBwb2ludCBkcmFnb25zLgorICAgIAorICAgIGlmICghKHJl
c3VsdCA+PSAwKSkKKyAgICAgICAgcmVzdWx0ID0gMDsKKyAgICBpZiAoIShyZXN1bHQgPD0gMSkp
CisgICAgICAgIHJlc3VsdCA9IDE7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitkb3VibGUg
U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXI6Om11dGF0b3JVdGlsaXphdGlvbihj
b25zdCBTbmFwc2hvdCYgc25hcHNob3QpCit7CisgICAgZG91YmxlIG11dGF0b3JVdGlsaXphdGlv
biA9IDEgLSBoZWFkcm9vbUZ1bGxuZXNzKHNuYXBzaG90KTsKKyAgICAKKyAgICAvLyBTY2FsZSB0
aGUgbXV0YXRvciB1dGlsaXphdGlvbiBpbnRvIHRoZSBwZXJtaXR0ZWQgd2luZG93LgorICAgIG11
dGF0b3JVdGlsaXphdGlvbiA9CisgICAgICAgIE9wdGlvbnM6Om1pbmltdW1NdXRhdG9yVXRpbGl6
YXRpb24oKSArCisgICAgICAgIG11dGF0b3JVdGlsaXphdGlvbiAqICgKKyAgICAgICAgICAgIE9w
dGlvbnM6Om1heGltdW1NdXRhdG9yVXRpbGl6YXRpb24oKSAtCisgICAgICAgICAgICBPcHRpb25z
OjptaW5pbXVtTXV0YXRvclV0aWxpemF0aW9uKCkpOworICAgIAorICAgIHJldHVybiBtdXRhdG9y
VXRpbGl6YXRpb247Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9TdG9jaGFzdGljU3BhY2VUaW1lTXV0YXRvclNjaGVkdWxlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1N0b2NoYXN0aWNTcGFjZVRp
bWVNdXRhdG9yU2NoZWR1bGVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvU3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJNdXRhdG9yU2NoZWR1
bGVyLmgiCisjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1JhbmRv
bS5oPgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgSGVhcDsKKworLy8gVGhlIEpTQyBjb25j
dXJyZW50IEdDIHNvbWV0aW1lcyBzdG9wcyB0aGUgd29ybGQgaW4gb3JkZXIgdG8gc3RheSBhaGVh
ZCBvZiBpdC4gVGhlc2UgZGVsaWJlcmF0ZSwKKy8vIHN5bnRoZXRpYyBwYXVzZXMgZW5zdXJlIHRo
YXQgdGhlIEdDIHdvbid0IGhhdmUgdG8gZG8gb25lIGh1Z2UgcGF1c2UgaW4gb3JkZXIgdG8gY2F0
Y2ggdXAgdG8gdGhlCisvLyByZXRyZWF0aW5nIHdhdmVmcm9udC4gVGhlIHNjaGVkdWxlciBpcyBj
YWxsZWQgInNwYWNlLXRpbWUiIGJlY2F1c2UgaXQgbGlua3MgdGhlIGFtb3VudCBvZiB0aW1lCisv
LyB0aGF0IHRoZSB3b3JsZCBpcyBwYXVzZWQgZm9yIHRvIHRoZSBhbW91bnQgb2Ygc3BhY2UgdGhh
dCB0aGUgd29ybGQgYWxsb2NhdGVkIHNpbmNlIHRoZSBHQyBjeWNsZQorLy8gYmVnYW4uCisKK2Ns
YXNzIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1bGVyIDogcHVibGljIE11dGF0b3JT
Y2hlZHVsZXIgeworcHVibGljOgorICAgIFN0b2NoYXN0aWNTcGFjZVRpbWVNdXRhdG9yU2NoZWR1
bGVyKEhlYXAmKTsKKyAgICB+U3RvY2hhc3RpY1NwYWNlVGltZU11dGF0b3JTY2hlZHVsZXIoKTsK
KyAgICAKKyAgICBTdGF0ZSBzdGF0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIAorICAgIHZvaWQg
YmVnaW5Db2xsZWN0aW9uKCkgb3ZlcnJpZGU7CisgICAgCisgICAgdm9pZCBkaWRTdG9wKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCB3aWxsUmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRSZWFj
aFRlcm1pbmF0aW9uKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRFeGVjdXRlQ29uc3RyYWludHMo
KSBvdmVycmlkZTsKKyAgICB2b2lkIHN5bmNocm9ub3VzRHJhaW5pbmdEaWRTdGFsbCgpIG92ZXJy
aWRlOworICAgIAorICAgIE1vbm90b25pY1RpbWUgdGltZVRvU3RvcCgpIG92ZXJyaWRlOworICAg
IE1vbm90b25pY1RpbWUgdGltZVRvUmVzdW1lKCkgb3ZlcnJpZGU7CisgICAgCisgICAgdm9pZCBs
b2coKSBvdmVycmlkZTsKKyAgICAKKyAgICB2b2lkIGVuZENvbGxlY3Rpb24oKSBvdmVycmlkZTsK
KyAgICAKK3ByaXZhdGU6CisgICAgY2xhc3MgU25hcHNob3Q7CisgICAgZnJpZW5kIGNsYXNzIFNu
YXBzaG90OworICAgIAorICAgIGRvdWJsZSBieXRlc0FsbG9jYXRlZFRoaXNDeWNsZUltcGwoKTsK
KyAgICAKKyAgICBkb3VibGUgYnl0ZXNTaW5jZUJlZ2lubmluZ09mQ3ljbGUoY29uc3QgU25hcHNo
b3QmKTsKKyAgICBkb3VibGUgbWF4SGVhZHJvb20oKTsKKyAgICBkb3VibGUgaGVhZHJvb21GdWxs
bmVzcyhjb25zdCBTbmFwc2hvdCYpOworICAgIGRvdWJsZSBtdXRhdG9yVXRpbGl6YXRpb24oY29u
c3QgU25hcHNob3QmKTsKKyAgICAKKyAgICBIZWFwJiBtX2hlYXA7CisgICAgU3RhdGUgbV9zdGF0
ZSB7IE5vcm1hbCB9OworICAgIAorICAgIFdlYWtSYW5kb20gbV9yYW5kb207CisgICAgCisgICAg
U2Vjb25kcyBtX21pbmltdW1QYXVzZTsKKyAgICBkb3VibGUgbV9wYXVzZVNjYWxlOworICAgIFNl
Y29uZHMgbV90YXJnZXRQYXVzZTsKKyAgICAKKyAgICBkb3VibGUgbV9ieXRlc0FsbG9jYXRlZFRo
aXNDeWNsZUF0VGhlQmVnaW5uaW5nIHsgMCB9OworICAgIGRvdWJsZSBtX2J5dGVzQWxsb2NhdGVk
VGhpc0N5Y2xlQXRUaGVFbmQgeyAwIH07CisgICAgCisgICAgTW9ub3RvbmljVGltZSBtX2JlZm9y
ZUNvbnN0cmFpbnRzOworICAgIE1vbm90b25pY1RpbWUgbV9wbGFubmVkUmVzdW1lVGltZTsKK307
CisKK30gLy8gbmFtZXNwYWNlIEpTQworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCShyZXZpc2lvbiAyMTEwMTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5OCwxMSArMTk4LDEzIEBAIHR5
cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoZG91YmxlLCBtZWRpdW1IZWFw
UkFNRnJhY3Rpb24sIDAuNSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihkb3VibGUsIG1lZGl1
bUhlYXBHcm93dGhGYWN0b3IsIDEuNSwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdihkb3VibGUs
IGxhcmdlSGVhcEdyb3d0aEZhY3RvciwgMS4yNCwgTm9ybWFsLCBudWxscHRyKSBcCi0gICAgdihi
b29sLCB1c2VDb2xsZWN0b3JUaW1lc2xpY2luZywgdHJ1ZSwgTm9ybWFsLCBudWxscHRyKSBcCiAg
ICAgdihkb3VibGUsIG1pbmltdW1NdXRhdG9yVXRpbGl6YXRpb24sIDAsIE5vcm1hbCwgbnVsbHB0
cikgXAogICAgIHYoZG91YmxlLCBtYXhpbXVtTXV0YXRvclV0aWxpemF0aW9uLCAwLjcsIE5vcm1h
bCwgbnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBjb25jdXJyZW50R0NNYXhIZWFkcm9vbSwgMS41
LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgY29uY3VycmVudEdDUGVyaW9kTVMs
IDIsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdXNlU3RvY2hhc3RpY011dGF0b3JT
Y2hlZHVsZXIsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGRvdWJsZSwgbWluaW11
bUdDUGF1c2VNUywgMC4zLCBOb3JtYWwsIG51bGxwdHIpIFwKKyAgICB2KGRvdWJsZSwgZ2NQYXVz
ZVNjYWxlLCAwLjMsIE5vcm1hbCwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgc2NyaWJibGVGcmVl
Q2VsbHMsIGZhbHNlLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgc2l6ZUNsYXNz
UHJvZ3Jlc3Npb24sIDEuNCwgTm9ybWFsLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgbGFy
Z2VBbGxvY2F0aW9uQ3V0b2ZmLCAxMDAwMDAsIE5vcm1hbCwgbnVsbHB0cikgXAo=
</data>
<flag name="review"
          id="321426"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>