<?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>109107</bug_id>
          
          <creation_ts>2013-02-06 16:46:47 -0800</creation_ts>
          <short_desc>Move pauseAnimation/pauseTransition from TestRunner to Internals</short_desc>
          <delta_ts>2013-02-07 13:36:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>jochen</cc>
    
    <cc>mifenton</cc>
    
    <cc>rakuco</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826883</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-06 16:46:47 -0800</bug_when>
    <thetext>Move pauseAnimation/pauseTransition from TestRunner to Internals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826891</commentid>
    <comment_count>1</comment_count>
      <attachid>186949</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-06 16:55:15 -0800</bug_when>
    <thetext>Created attachment 186949
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>827862</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-02-07 13:36:14 -0800</bug_when>
    <thetext>Committed r142171: &lt;http://trac.webkit.org/changeset/142171&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186949</attachid>
            <date>2013-02-06 16:55:15 -0800</date>
            <delta_ts>2013-02-07 12:41:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109107-20130206165152.patch</filename>
            <type>text/plain</type>
            <size>80861</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjI1MDQzOWY5MjU5Yjgy
ZDgxNzUxOTY5ZmY3NzJmMzllMDQwYWJkYS4uYWM4ZjE0MmUwOTNkMTBhNGVhNzM0YzljYTlmMTcz
NzQwZDgxZGMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTA2ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgcGF1c2VB
bmltYXRpb24vcGF1c2VUcmFuc2l0aW9uIGZyb20gVGVzdFJ1bm5lciB0byBJbnRlcm5hbHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEwNworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBhbmlt
YXRpb25zL2FuaW1hdGlvbi1pbnRlcm5hbHMtYXBpLW11bHRpcGxlLWtleWZyYW1lcy5odG1sCisg
ICAgICAgICAgICAgICBhbmltYXRpb25zL2FuaW1hdGlvbi1pbnRlcm5hbHMtYXBpLmh0bWwKKwor
ICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVy
bmFsczo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxl
bWVudCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFs
cyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEzLTAyLTA2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTQyMDI1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGQ0ODRhNzMzNThj
N2YzYWIwMWUyYzM3YTNiYTIyM2U3Njg3ZTY5ZjQuLjQ4OTRjNmRmNjVlZWZkNzg2NjJjYTgwZTc5
OTVmYTY1NWI3MmFmMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0w
Mi0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBN
b3ZlIHBhdXNlQW5pbWF0aW9uL3BhdXNlVHJhbnNpdGlvbiBmcm9tIFRlc3RSdW5uZXIgdG8gSW50
ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDkxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmg6CisKIDIwMTMtMDItMDQg
IEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgS2lsbCBz
dXNwZW5kQW5pbWF0aW9uKCksIHJlc3VtZUFuaW1hdGlvbigpIGFuZCBudW1iZXJPZkFjdGl2ZUFu
aW1hdGlvbnMoKSBmcm9tIERSVC9XVFI7IHVzZSBJbnRlcm5hbHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRl
eCBhZjk3YTU3OGMxOTQ3YzcyOTU1N2U4ODdlNWIwYWQ5NjUwODczOWI2Li4xMWRlNTJlNDI3NmE0
ZDJkZGI3NjRhZGJmNzkwNjJmNGYzYWE2NzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTMtMDItMDYgIEJlbmphbWluIFBvdWxhaW4gIDxicG91bGFpbkBhcHBsZS5jb20+
CisKKyAgICAgICAgTW92ZSBwYXVzZUFuaW1hdGlvbi9wYXVzZVRyYW5zaXRpb24gZnJvbSBUZXN0
UnVubmVyIHRvIEludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA5MTA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3Bw
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKwogMjAxMy0wMi0wNSAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVXBkYXRlIHRoZSBO
RVdTIGFuZCBjb25maWd1cmF0aW9uIGluIHByZXBhcmF0aW9uIGZvciAxLjExLjUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggOGNjNDY1YTNmOGQ2ZDY0YWZkMjFiMDc0NWM4N2M3NWIzMTIwYjc4Yy4uNjk5
ZGMzYTUxMjI0ODNiMDY2ZTJkMmI5NmI1YzhkZjg0MWU4OTUyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEzLTAyLTA2ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5A
YXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgcGF1c2VBbmltYXRpb24vcGF1c2VUcmFuc2l0aW9u
IGZyb20gVGVzdFJ1bm5lciB0byBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oOgorCiAyMDEzLTAyLTA2ICBNaWtlIFdlc3QgIDxta3dz
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGFuIEVOQUJMRV9OT1NOSUZGIGZlYXR1cmUg
ZmxhZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggYjEyNGFhNjcwZDRmMzdlZTdiNjQ3M2RjMmJhZGY3YmJi
NTU5ZDZmYS4uZDIzZjMyZjFmYmRiMzVjY2JlNjcwOTRkMjQ2ZjllNmUwODU1OTZmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMy0wMi0wNiAgQmVuamFtaW4gUG91bGFpbiAg
PGJwb3VsYWluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIHBhdXNlQW5pbWF0aW9uL3BhdXNl
VHJhbnNpdGlvbiBmcm9tIFRlc3RSdW5uZXIgdG8gSW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDkxMDcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5oOgorCiAyMDEzLTAyLTA0ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxh
aW5AYXBwbGUuY29tPgogCiAgICAgICAgIEtpbGwgc3VzcGVuZEFuaW1hdGlvbigpLCByZXN1bWVB
bmltYXRpb24oKSBhbmQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgZnJvbSBEUlQvV1RSOyB1
c2UgSW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggODFkNDI1YTMzYmJmOTYxN2M2MjFhMjEwZGJhODA3
MGVmYWRjYTdjNi4uODJmMjQyYjExMDgzNTFkMTQyY2M5YzAzNGNmOGY1Zjk2ZTMzM2Y4MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAyLTA2ICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgcGF1c2VBbmltYXRpb24vcGF1c2VU
cmFuc2l0aW9uIGZyb20gVGVzdFJ1bm5lciB0byBJbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTEwNworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuaDoKKyAgICAgICAgKFdlYkZyYW1lKToKKwogMjAxMy0wMi0wNiAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFBhc3MgdGhlIGRvY3VtZW50IHNv
dXJjZSBVUkwgdG8gdGhlIHBsdWdpbkxvYWRQb2xpY3kgY2FsbGJhY2sKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCAzZjc4MjVkYzM5NzMxZDdhZDZmOWQ0ZjA2ZjM3M2NkNTgw
MjNmNmI2Li5hZDRkZDlkYjgxNTI1MjQ2YzEyYjk5YWJkMWI3NzQ3YTViNTE4YzlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00NDIsNiArNDQyLDE2IEBAIHZvaWQgSW50
ZXJuYWxzOjpyZXN1bWVBbmltYXRpb25zKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpIGNvbnN0CiAgICAgY29udHJvbGxlci0+cmVzdW1lQW5pbWF0aW9ucygpOwogfQogCiti
b29sIEludGVybmFsczo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnQoY29uc3QgU3RyaW5n
JiBhbmltYXRpb25OYW1lLCBkb3VibGUgcGF1c2VUaW1lLCBFbGVtZW50KiBlbGVtZW50LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWVsZW1lbnQgfHwgcGF1c2VUaW1lIDwgMCkgewor
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICBBbmltYXRpb25Db250cm9sbGVyKiBjb250cm9sbGVyID0gZnJhbWUoKS0+YW5p
bWF0aW9uKCk7CisgICAgcmV0dXJuIGNvbnRyb2xsZXItPnBhdXNlQW5pbWF0aW9uQXRUaW1lKGVs
ZW1lbnQtPnJlbmRlcmVyKCksIEF0b21pY1N0cmluZyhhbmltYXRpb25OYW1lKSwgcGF1c2VUaW1l
KTsKK30KKwogYm9vbCBJbnRlcm5hbHM6OnBhdXNlQW5pbWF0aW9uQXRUaW1lT25Qc2V1ZG9FbGVt
ZW50KGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHBhdXNlVGltZSwgRWxlbWVu
dCogZWxlbWVudCwgY29uc3QgU3RyaW5nJiBwc2V1ZG9JZCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKCFlbGVtZW50IHx8IHBhdXNlVGltZSA8IDApIHsKQEAgLTQ2Myw2ICs0NzMsMTYg
QEAgYm9vbCBJbnRlcm5hbHM6OnBhdXNlQW5pbWF0aW9uQXRUaW1lT25Qc2V1ZG9FbGVtZW50KGNv
bnN0IFN0cmluZyYgYW5pbWF0aW9uTmFtZSwKICAgICByZXR1cm4gZnJhbWUoKS0+YW5pbWF0aW9u
KCktPnBhdXNlQW5pbWF0aW9uQXRUaW1lKHBzZXVkb0VsZW1lbnQtPnJlbmRlcmVyKCksIEF0b21p
Y1N0cmluZyhhbmltYXRpb25OYW1lKSwgcGF1c2VUaW1lKTsKIH0KIAorYm9vbCBJbnRlcm5hbHM6
OnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudChjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFt
ZSwgZG91YmxlIHBhdXNlVGltZSwgRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYgZWMp
Cit7CisgICAgaWYgKCFlbGVtZW50IHx8IHBhdXNlVGltZSA8IDApIHsKKyAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgQW5p
bWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IGZyYW1lKCktPmFuaW1hdGlvbigpOworICAg
IHJldHVybiBjb250cm9sbGVyLT5wYXVzZVRyYW5zaXRpb25BdFRpbWUoZWxlbWVudC0+cmVuZGVy
ZXIoKSwgcHJvcGVydHlOYW1lLCBwYXVzZVRpbWUpOworfQorCiBib29sIEludGVybmFsczo6cGF1
c2VUcmFuc2l0aW9uQXRUaW1lT25Qc2V1ZG9FbGVtZW50KGNvbnN0IFN0cmluZyYgcHJvcGVydHks
IGRvdWJsZSBwYXVzZVRpbWUsIEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0IFN0cmluZyYgcHNldWRv
SWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZWxlbWVudCB8fCBwYXVzZVRpbWUg
PCAwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA4MzE0ZjkzOWI1YWJjZWJk
MjA3ODkwY2U5MzQzYzJmNWE2NzE3ZDdiLi42NDZiMTU1OWY4M2YzMjQzZmZlNmI2MmU0MWFjNDI5
YmFjZTgxMTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEsNSArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05NiwxMCArOTcsMTUgQEAgcHVi
bGljOgogICAgIFN0cmluZyBzaGFkb3dQc2V1ZG9JZChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2V0U2hhZG93UHNldWRvSWQoRWxlbWVudCosIGNvbnN0IFN0cmluZyYsIEV4
Y2VwdGlvbkNvZGUmKTsKIAorICAgIC8vIENTUyBBbmltYXRpb24gdGVzdGluZy4KICAgICB1bnNp
Z25lZCBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKICAgICB2b2lkIHN1c3BlbmRB
bmltYXRpb25zKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAgIHZvaWQgcmVz
dW1lQW5pbWF0aW9ucyhEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICBib29s
IHBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50KGNvbnN0IFN0cmluZyYgYW5pbWF0aW9uTmFt
ZSwgZG91YmxlIHBhdXNlVGltZSwgRWxlbWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29s
IHBhdXNlQW5pbWF0aW9uQXRUaW1lT25Qc2V1ZG9FbGVtZW50KGNvbnN0IFN0cmluZyYgYW5pbWF0
aW9uTmFtZSwgZG91YmxlIHBhdXNlVGltZSwgRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcHNldWRv
SWQsIEV4Y2VwdGlvbkNvZGUmKTsKKworICAgIC8vIENTUyBUcmFuc2l0aW9uIHRlc3RpbmcuCisg
ICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnQoY29uc3QgU3RyaW5nJiBwcm9w
ZXJ0eU5hbWUsIGRvdWJsZSBwYXVzZVRpbWUsIEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPblBzZXVkb0VsZW1lbnQoY29uc3QgU3RyaW5n
JiBwcm9wZXJ0eSwgZG91YmxlIHBhdXNlVGltZSwgRWxlbWVudCosIGNvbnN0IFN0cmluZyYgcHNl
dWRvSWQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
Q29udGVudEVsZW1lbnQoRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCmluZGV4IGY3YTk3YWI4OGVmMzU5NGRlZGIwMGUzZjIwZjg2YjU0NDY4ZTM4ZDAuLmE1
MGI3OWNlNWM2YjRhYzc3OTNkODg3YjI1NjJmNWY1ODNkYWY0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC02NiwxMCArNjcsMTUgQEAKICAgICBib29sZWFuIGhhc1NlbGVjdG9yRm9y
QXR0cmlidXRlSW5TaGFkb3coaW4gRWxlbWVudCBob3N0LCBpbiBET01TdHJpbmcgYXR0cmlidXRl
TmFtZSkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIGJvb2xlYW4gaGFzU2VsZWN0b3JGb3JQ
c2V1ZG9DbGFzc0luU2hhZG93KGluIEVsZW1lbnQgaG9zdCwgaW4gRE9NU3RyaW5nIHBzZXVkb0Ns
YXNzKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAKKyAgICAvLyBDU1MgQW5pbWF0aW9uIHRlc3Rp
bmcuCiAgICAgdW5zaWduZWQgbG9uZyBudW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKTsKICAgICB2
b2lkIHN1c3BlbmRBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAgICAgdm9pZCByZXN1bWVBbmltYXRpb25zKGluIERvY3VtZW50IGRvY3VtZW50
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgYm9vbGVhbiBwYXVzZUFuaW1hdGlvbkF0VGlt
ZU9uRWxlbWVudChpbiBET01TdHJpbmcgYW5pbWF0aW9uTmFtZSwgaW4gZG91YmxlIHBhdXNlVGlt
ZSwgaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgYm9vbGVh
biBwYXVzZUFuaW1hdGlvbkF0VGltZU9uUHNldWRvRWxlbWVudChpbiBET01TdHJpbmcgYW5pbWF0
aW9uTmFtZSwgaW4gZG91YmxlIHBhdXNlVGltZSwgaW4gRWxlbWVudCBlbGVtZW50LCBpbiBET01T
dHJpbmcgcHNldWRvSWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgIC8vIENTUyBUcmFu
c2l0aW9uIHRlc3RpbmcuCisgICAgYm9vbGVhbiBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1l
bnQoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSwgaW4gZG91YmxlIHBhdXNlVGltZSwgaW4gRWxl
bWVudCBlbGVtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgYm9vbGVhbiBwYXVzZVRy
YW5zaXRpb25BdFRpbWVPblBzZXVkb0VsZW1lbnQoaW4gRE9NU3RyaW5nIHByb3BlcnR5LCBpbiBk
b3VibGUgcGF1c2VUaW1lLCBpbiBFbGVtZW50IGVsZW1lbnQsIGluIERPTVN0cmluZyBwc2V1ZG9J
ZCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogCiAgICAgTm9kZSBuZXh0U2libGluZ0J5V2Fsa2Vy
KGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
LmNwcAppbmRleCBlN2Y1MGFhOWJiYTc3NmQzY2E2MjEzZjQ2MTQxMTZlODJiZDY5YjM2Li40OGJj
ZjFlNmZkMmFjOWU5YjljODQwY2Q1MmFmMWU1ZjM2Y2M1ZGE0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5jcHAKQEAgLTE3NywzMCArMTc3LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OmxheW91dEZyYW1lKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKICAgICBmcmFtZS0+dmlldygp
LT5sYXlvdXQoKTsKIH0KIAotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnBhdXNlQW5p
bWF0aW9uKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hh
ciogZWxlbWVudElkLCBkb3VibGUgdGltZSkKLXsKLSAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRf
T1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFtZSwgZmFsc2UpOwotCi0gICAgV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCA9IGZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQp
OwotCi0gICAgaWYgKCFlbGVtZW50IHx8ICFlbGVtZW50LT5yZW5kZXJlcigpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gZnJhbWUtPmFuaW1hdGlvbigpLT5wYXVzZUFuaW1h
dGlvbkF0VGltZShlbGVtZW50LT5yZW5kZXJlcigpLCBuYW1lLCB0aW1lKTsKLX0KLQotYm9vbCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnBhdXNlVHJhbnNpdGlvbihFdmFzX09iamVjdCogZXdr
RnJhbWUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIGVsZW1lbnRJZCwgZG91YmxlIHRp
bWUpCi17Ci0gICAgRFJUX1NVUFBPUlRfRlJBTUVfR0VUX09SX1JFVFVSTihld2tGcmFtZSwgZnJh
bWUsIGZhbHNlKTsKLQotICAgIFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQgPSBmcmFtZS0+ZG9j
dW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLQotICAgIGlmICghZWxlbWVudCB8
fCAhZWxlbWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0
dXJuIGZyYW1lLT5hbmltYXRpb24oKS0+cGF1c2VUcmFuc2l0aW9uQXRUaW1lKGVsZW1lbnQtPnJl
bmRlcmVyKCksIG5hbWUsIHRpbWUpOwotfQotCiB1bnNpZ25lZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnBlbmRpbmdVbmxvYWRFdmVudENvdW50KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSkKIHsKICAgICBEUlRfU1VQUE9SVF9GUkFNRV9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBmcmFt
ZSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDNkNjdkYzdkNGZlNmI0ZTI0NzQ5Nzk4
ZGRiYzI1MDE4YTY3YzhkMDcuLjYyZGE1N2NjN2Y2YjM1ZTBiNzQ1NzFkNjQ3ZjZmNzVhMTQxMjQ1
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC02MSw4ICs2MSw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgRWluYV9MaXN0KiBmcmFtZUNoaWxkcmVuKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tG
cmFtZSk7CiAgICAgc3RhdGljIFdlYkNvcmU6OkZyYW1lKiBmcmFtZVBhcmVudChjb25zdCBFdmFz
X09iamVjdCogZXdrRnJhbWUpOwogICAgIHN0YXRpYyB2b2lkIGxheW91dEZyYW1lKEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSk7Ci0gICAgc3RhdGljIGJvb2wgcGF1c2VBbmltYXRpb24oRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBlbGVtZW50SWQsIGRv
dWJsZSB0aW1lKTsKLSAgICBzdGF0aWMgYm9vbCBwYXVzZVRyYW5zaXRpb24oRXZhc19PYmplY3Qq
IGV3a0ZyYW1lLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBlbGVtZW50SWQsIGRvdWJs
ZSB0aW1lKTsKICAgICBzdGF0aWMgdW5zaWduZWQgcGVuZGluZ1VubG9hZEV2ZW50Q291bnQoY29u
c3QgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKICAgICBzdGF0aWMgU3RyaW5nIHJlbmRlclRyZWVE
dW1wKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAgICAgc3RhdGljIFN0cmluZyByZXNwb25zZU1p
bWVUeXBlKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCBjZDZlZWIzZDhiYjgyZWEzNWVmMDU5MWFhYTlmMmNhMDM0MDg4YTQyLi45MjM0
MDdiZmY5MzdiMjI0ODFhODQyMWYzN2M3NTU1ZGI2MDIwZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTI0MCwyNCArMjQwLDYgQEAgZ3VpbnQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpnZXRQZW5kaW5nVW5sb2FkRXZlbnRDb3VudChXZWJLaXRXZWJGcmFtZSogZnJhbWUKICAg
ICByZXR1cm4gY29yZShmcmFtZSktPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5wZW5kaW5nVW5s
b2FkRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnBhdXNlQW5pbWF0aW9uKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogbmFtZSwg
ZG91YmxlIHRpbWUsIGNvbnN0IGNoYXIqIGVsZW1lbnQpCi17Ci0gICAgQVNTRVJUKGNvcmUoZnJh
bWUpKTsKLSAgICBFbGVtZW50KiBjb3JlRWxlbWVudCA9IGNvcmUoZnJhbWUpLT5kb2N1bWVudCgp
LT5nZXRFbGVtZW50QnlJZChBdG9taWNTdHJpbmcoZWxlbWVudCkpOwotICAgIGlmICghY29yZUVs
ZW1lbnQgfHwgIWNvcmVFbGVtZW50LT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgcmV0dXJuIGNvcmUoZnJhbWUpLT5hbmltYXRpb24oKS0+cGF1c2VBbmltYXRpb25BdFRp
bWUoY29yZUVsZW1lbnQtPnJlbmRlcmVyKCksIEF0b21pY1N0cmluZyhuYW1lKSwgdGltZSk7Ci19
Ci0KLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpwYXVzZVRyYW5zaXRpb24oV2ViS2l0
V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBjaGFyKiBuYW1lLCBkb3VibGUgdGltZSwgY29uc3QgY2hh
ciogZWxlbWVudCkKLXsKLSAgICBBU1NFUlQoY29yZShmcmFtZSkpOwotICAgIEVsZW1lbnQqIGNv
cmVFbGVtZW50ID0gY29yZShmcmFtZSktPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKEF0b21p
Y1N0cmluZyhlbGVtZW50KSk7Ci0gICAgaWYgKCFjb3JlRWxlbWVudCB8fCAhY29yZUVsZW1lbnQt
PnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gY29yZShmcmFt
ZSktPmFuaW1hdGlvbigpLT5wYXVzZVRyYW5zaXRpb25BdFRpbWUoY29yZUVsZW1lbnQtPnJlbmRl
cmVyKCksIEF0b21pY1N0cmluZyhuYW1lKSwgdGltZSk7Ci19Ci0KIENTdHJpbmcgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oV2ViS2l0V2ViRnJhbWUqIGZy
YW1lLCBKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBub2RlT2JqZWN0KQogewogICAg
IEpTQzo6RXhlY1N0YXRlKiBleGVjID0gdG9KUyhjb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmgKaW5kZXggNTM5M2NiMDEzMWYzOWIxNmVmMzdiMjgyNzk4ZmYxYWE5ZjM0NDMwOC4uZDEyYmJk
NDc3YmYxM2ZmZjAyMDdlMTk4YTczMWRkNjUzN2M5Y2E3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmgKQEAgLTYzLDggKzYzLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFkZFVzZXJTY3Jp
cHQoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiwgYm9vbCwgYm9vbCk7CiAgICAgc3RhdGlj
IHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBzb3Vy
Y2VDb2RlLCBib29sIGFsbEZyYW1lcyk7CiAgICAgc3RhdGljIGd1aW50IGdldFBlbmRpbmdVbmxv
YWRFdmVudENvdW50KFdlYktpdFdlYkZyYW1lKik7Ci0gICAgc3RhdGljIGJvb2wgcGF1c2VBbmlt
YXRpb24oV2ViS2l0V2ViRnJhbWUqLCBjb25zdCBjaGFyKiBuYW1lLCBkb3VibGUgdGltZSwgY29u
c3QgY2hhciogZWxlbWVudCk7Ci0gICAgc3RhdGljIGJvb2wgcGF1c2VUcmFuc2l0aW9uKFdlYktp
dFdlYkZyYW1lKiwgY29uc3QgY2hhciogbmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IGNoYXIqIGVs
ZW1lbnQpOwogICAgIHN0YXRpYyBXVEY6OkNTdHJpbmcgbWFya2VyVGV4dEZvckxpc3RJdGVtKFdl
YktpdFdlYkZyYW1lKiwgSlNDb250ZXh0UmVmLCBKU1ZhbHVlUmVmIG5vZGVPYmplY3QpOwogICAg
IHN0YXRpYyB2b2lkIGNsZWFyTWFpbkZyYW1lTmFtZShXZWJLaXRXZWJGcmFtZSopOwogICAgIHN0
YXRpYyBBdGtPYmplY3QqIGdldEZvY3VzZWRBY2Nlc3NpYmxlRWxlbWVudChXZWJLaXRXZWJGcmFt
ZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggY2ZjNjU1ZDZhNTk5
MmQ0ZDIwYWEzMThkNTJiMTgzOTFlNjA2ZmNiZi4uZGM3OWU2ZjhhYmEyNWQ1OGJjYmFmNGVlNDYy
Zjg1NWYxZWVlYjBmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC05
MjYsNDAgKzkyNiw2IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShE
b2N1bWVudExvYWRlciogbG9hZGVyKQogfQogI2VuZGlmCiAKLS0gKEJPT0wpX3BhdXNlQW5pbWF0
aW9uOihOU1N0cmluZyopbmFtZSBvbk5vZGU6KERPTU5vZGUgKilub2RlIGF0VGltZTooTlNUaW1l
SW50ZXJ2YWwpdGltZQotewotICAgIEZyYW1lKiBmcmFtZSA9IGNvcmUoc2VsZik7Ci0gICAgaWYg
KCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQW5pbWF0aW9uQ29udHJvbGxl
ciogY29udHJvbGxlciA9IGZyYW1lLT5hbmltYXRpb24oKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIE5vZGUqIGNvcmVOb2RlID0gY29yZShub2Rl
KTsKLSAgICBpZiAoIWNvcmVOb2RlIHx8ICFjb3JlTm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGNvbnRyb2xsZXItPnBhdXNlQW5pbWF0aW9uQXRU
aW1lKGNvcmVOb2RlLT5yZW5kZXJlcigpLCBuYW1lLCB0aW1lKTsKLX0KLQotLSAoQk9PTClfcGF1
c2VUcmFuc2l0aW9uT2ZQcm9wZXJ0eTooTlNTdHJpbmcqKW5hbWUgb25Ob2RlOihET01Ob2RlKilu
b2RlIGF0VGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZQotewotICAgIEZyYW1lKiBmcmFtZSA9IGNv
cmUoc2VsZik7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
QW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IGZyYW1lLT5hbmltYXRpb24oKTsKLSAg
ICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIE5vZGUqIGNv
cmVOb2RlID0gY29yZShub2RlKTsKLSAgICBpZiAoIWNvcmVOb2RlIHx8ICFjb3JlTm9kZS0+cmVu
ZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIGNvbnRyb2xsZXIt
PnBhdXNlVHJhbnNpdGlvbkF0VGltZShjb3JlTm9kZS0+cmVuZGVyZXIoKSwgbmFtZSwgdGltZSk7
Ci19Ci0KIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRoRnJhZ21lbnQ6KERPTURvY3VtZW50
RnJhZ21lbnQgKilmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVudDooQk9PTClzZWxlY3RSZXBsYWNl
bWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNlIG1hdGNoU3R5bGU6KEJPT0wpbWF0
Y2hTdHlsZQogewogICAgIGlmIChfcHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS0+aXNO
b25lKCkgfHwgIWZyYWdtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVQ
cml2YXRlLmgKaW5kZXggYzdiNzA3ZWE5ZTc2NGEwOTRkYjcwNDg5MTFhODdkNTRkMzhhNzA1OC4u
NmVlODIzMzZmMDhhNDE3ZThiOGMwZTNlZWIxNDZlODUxY2IwZWU2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lUHJpdmF0ZS5oCkBAIC05NSwxMiArOTUsNiBAQCB0eXBl
ZGVmIGVudW0gewogLSAoTlNTdHJpbmcgKilfc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZy
b21TdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhHbG9iYWxPYmplY3Q6KEpTT2JqZWN0UmVm
KWdsb2JhbE9iamVjdCBpblNjcmlwdFdvcmxkOihXZWJTY3JpcHRXb3JsZCAqKXdvcmxkOwogLSAo
SlNHbG9iYWxDb250ZXh0UmVmKV9nbG9iYWxDb250ZXh0Rm9yU2NyaXB0V29ybGQ6KFdlYlNjcmlw
dFdvcmxkICopd29ybGQ7CiAKLS8vIFBhdXNlIGEgZ2l2ZW4gQ1NTIGFuaW1hdGlvbiBvciB0cmFu
c2l0aW9uIG9uIHRoZSB0YXJnZXQgbm9kZSBhdCBhIHNwZWNpZmljIHRpbWUuCi0vLyBJZiB0aGUg
YW5pbWF0aW9uIG9yIHRyYW5zaXRpb24gaXMgYWxyZWFkeSBwYXVzZWQsIGl0IHdpbGwgdXBkYXRl
IGl0cyBwYXVzZSB0aW1lLgotLy8gVGhpcyBtZXRob2QgaXMgb25seSBpbnRlbmRlZCB0byBiZSB1
c2VkIGZvciB0ZXN0aW5nIHRoZSBDU1MgYW5pbWF0aW9uIGFuZCB0cmFuc2l0aW9uIHN5c3RlbS4K
LS0gKEJPT0wpX3BhdXNlQW5pbWF0aW9uOihOU1N0cmluZyopbmFtZSBvbk5vZGU6KERPTU5vZGUg
Kilub2RlIGF0VGltZTooTlNUaW1lSW50ZXJ2YWwpdGltZTsKLS0gKEJPT0wpX3BhdXNlVHJhbnNp
dGlvbk9mUHJvcGVydHk6KE5TU3RyaW5nKiluYW1lIG9uTm9kZTooRE9NTm9kZSopbm9kZSBhdFRp
bWU6KE5TVGltZUludGVydmFsKXRpbWU7Ci0KIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25XaXRo
RnJhZ21lbnQ6KERPTURvY3VtZW50RnJhZ21lbnQgKilmcmFnbWVudCBzZWxlY3RSZXBsYWNlbWVu
dDooQk9PTClzZWxlY3RSZXBsYWNlbWVudCBzbWFydFJlcGxhY2U6KEJPT0wpc21hcnRSZXBsYWNl
IG1hdGNoU3R5bGU6KEJPT0wpbWF0Y2hTdHlsZTsKIC0gKHZvaWQpX3JlcGxhY2VTZWxlY3Rpb25X
aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0IHNlbGVjdFJlcGxhY2VtZW50OihCT09MKXNlbGVjdFJl
cGxhY2VtZW50IHNtYXJ0UmVwbGFjZTooQk9PTClzbWFydFJlcGxhY2U7CiAtICh2b2lkKV9yZXBs
YWNlU2VsZWN0aW9uV2l0aE1hcmt1cFN0cmluZzooTlNTdHJpbmcgKiltYXJrdXBTdHJpbmcgYmFz
ZVVSTFN0cmluZzooTlNTdHJpbmcgKiliYXNlVVJMU3RyaW5nIHNlbGVjdFJlcGxhY2VtZW50OihC
T09MKXNlbGVjdFJlcGxhY2VtZW50IHNtYXJ0UmVwbGFjZTooQk9PTClzbWFydFJlcGxhY2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IGE0YTA4MjY4NWE0MmE5NDQ4MGNiYWQ1ZGQ5ODRkYjEx
OGM0ZjRlNTUuLjVhYjk0MmY0ZTZlYjNlN2UyNTU1MTcxNzc4M2I1NTgzNmVmYmNmNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwCkBAIC0yOTgsNDkgKzI5OCw2IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnNldFZhbHVlRm9yVXNlcihjb25zdCBRV2ViRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QKICAgICBpbnB1dEVsZW1lbnQtPnNldFZhbHVlRm9yVXNlcih2YWx1ZSk7CiB9CiAKLS8v
IFBhdXNlIGEgZ2l2ZW4gQ1NTIGFuaW1hdGlvbiBvciB0cmFuc2l0aW9uIG9uIHRoZSB0YXJnZXQg
bm9kZSBhdCBhIHNwZWNpZmljIHRpbWUuCi0vLyBJZiB0aGUgYW5pbWF0aW9uIG9yIHRyYW5zaXRp
b24gaXMgYWxyZWFkeSBwYXVzZWQsIGl0IHdpbGwgdXBkYXRlIGl0cyBwYXVzZSB0aW1lLgotLy8g
VGhpcyBtZXRob2QgaXMgb25seSBpbnRlbmRlZCB0byBiZSB1c2VkIGZvciB0ZXN0aW5nIHRoZSBD
U1MgYW5pbWF0aW9uIGFuZCB0cmFuc2l0aW9uIHN5c3RlbS4KLWJvb2wgRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OnBhdXNlQW5pbWF0aW9uKFFXZWJGcmFtZUFkYXB0ZXIgKmFkYXB0ZXIsIGNvbnN0
IFFTdHJpbmcgJmFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBRU3RyaW5nICZlbGVt
ZW50SWQpCi17Ci0gICAgRnJhbWUqIGNvcmVGcmFtZSA9IGFkYXB0ZXItPmZyYW1lOwotICAgIGlm
ICghY29yZUZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBBbmltYXRpb25Db250
cm9sbGVyKiBjb250cm9sbGVyID0gY29yZUZyYW1lLT5hbmltYXRpb24oKTsKLSAgICBpZiAoIWNv
bnRyb2xsZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIERvY3VtZW50KiBkb2MgPSBj
b3JlRnJhbWUtPmRvY3VtZW50KCk7Ci0gICAgUV9BU1NFUlQoZG9jKTsKLQotICAgIE5vZGUqIGNv
cmVOb2RlID0gZG9jLT5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpOwotICAgIGlmICghY29yZU5v
ZGUgfHwgIWNvcmVOb2RlLT5yZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICByZXR1cm4gY29udHJvbGxlci0+cGF1c2VBbmltYXRpb25BdFRpbWUoY29yZU5vZGUtPnJlbmRl
cmVyKCksIGFuaW1hdGlvbk5hbWUsIHRpbWUpOwotfQotCi1ib29sIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpwYXVzZVRyYW5zaXRpb25PZlByb3BlcnR5KFFXZWJGcmFtZUFkYXB0ZXIgKmFkYXB0
ZXIsIGNvbnN0IFFTdHJpbmcgJnByb3BlcnR5TmFtZSwgZG91YmxlIHRpbWUsIGNvbnN0IFFTdHJp
bmcgJmVsZW1lbnRJZCkKLXsKLSAgICBGcmFtZSogY29yZUZyYW1lID0gYWRhcHRlci0+ZnJhbWU7
Ci0gICAgaWYgKCFjb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEFuaW1h
dGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBjb3JlRnJhbWUtPmFuaW1hdGlvbigpOwotICAg
IGlmICghY29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgRG9jdW1lbnQq
IGRvYyA9IGNvcmVGcmFtZS0+ZG9jdW1lbnQoKTsKLSAgICBRX0FTU0VSVChkb2MpOwotCi0gICAg
Tm9kZSogY29yZU5vZGUgPSBkb2MtPmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCk7Ci0gICAgaWYg
KCFjb3JlTm9kZSB8fCAhY29yZU5vZGUtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHJldHVybiBjb250cm9sbGVyLT5wYXVzZVRyYW5zaXRpb25BdFRpbWUoY29yZU5v
ZGUtPnJlbmRlcmVyKCksIHByb3BlcnR5TmFtZSwgdGltZSk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmNsZWFyRnJhbWVOYW1lKFFXZWJGcmFtZUFkYXB0ZXIgKmFkYXB0ZXIp
CiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGFkYXB0ZXItPmZyYW1lOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oCmluZGV4IDkwODg5ZTg1YjVmNzEyOThkNmRlMjg2MTQ5OTA0NmY3YTViZGJmODEuLjJkNmE4
ODY3NmM2NGI3ZTBiZGY4MzU2YmNkNzViZjk3YzQ1ZTg0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
QEAgLTk5LDkgKzk5LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBRVmFyaWFudExpc3QgZmlyc3RS
ZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKiwgaW50IGxvY2F0aW9uLCBpbnQg
bGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2VBZGFw
dGVyKiwgY29uc3QgY2hhciogdGV4dCk7CiAKLSAgICBzdGF0aWMgYm9vbCBwYXVzZUFuaW1hdGlv
bihRV2ViRnJhbWVBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYgbmFtZSwgZG91YmxlIHRpbWUsIGNv
bnN0IFFTdHJpbmcmIGVsZW1lbnRJZCk7Ci0gICAgc3RhdGljIGJvb2wgcGF1c2VUcmFuc2l0aW9u
T2ZQcm9wZXJ0eShRV2ViRnJhbWVBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYgbmFtZSwgZG91Ymxl
IHRpbWUsIGNvbnN0IFFTdHJpbmcmIGVsZW1lbnRJZCk7Ci0KICAgICBzdGF0aWMgdm9pZCBzZXRE
b21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lKGJvb2wgZm9yYmlkZGVuLCBjb25z
dCBRU3RyaW5nJiBzY2hlbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCB2YWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZUZyYW1lLmNwcAppbmRleCA4ZTE0Mzg3NGRiYWU0MDdmOWViN2MxNDFlZTEwNDEy
ZGEzNjc3OWZjLi4wNmRkYzNiNWQ5YjFmZWFlMDFlODkyMzA0MjlhMjFjY2M1Y2E5NThhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAKQEAgLTkyLDE2ICs5Miw2IEBAIFdLQXJyYXlS
ZWYgV0tCdW5kbGVGcmFtZUNvcHlDaGlsZEZyYW1lcyhXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVm
KQogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoZnJhbWVSZWYpLT5jaGlsZEZyYW1lcygpLmxlYWtS
ZWYoKSk7ICAgIAogfQogCi1ib29sIFdLQnVuZGxlRnJhbWVQYXVzZUFuaW1hdGlvbk9uRWxlbWVu
dFdpdGhJZChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lUmVmLCBXS1N0cmluZ1JlZiBhbmltYXRpb25O
YW1lLCBXS1N0cmluZ1JlZiBlbGVtZW50SUQsIGRvdWJsZSB0aW1lKQotewotICAgIHJldHVybiB0
b0ltcGwoZnJhbWVSZWYpLT5wYXVzZUFuaW1hdGlvbk9uRWxlbWVudFdpdGhJZChBdG9taWNTdHJp
bmcodG9XVEZTdHJpbmcoYW5pbWF0aW9uTmFtZSkpLCB0b1dURlN0cmluZyhlbGVtZW50SUQpLCB0
aW1lKTsKLX0KLQotYm9vbCBXS0J1bmRsZUZyYW1lUGF1c2VUcmFuc2l0aW9uT25FbGVtZW50V2l0
aElkKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYsIFdLU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwg
V0tTdHJpbmdSZWYgZWxlbWVudElELCBkb3VibGUgdGltZSkKLXsKLSAgICByZXR1cm4gdG9JbXBs
KGZyYW1lUmVmKS0+cGF1c2VUcmFuc2l0aW9uT25FbGVtZW50V2l0aElkKHRvV1RGU3RyaW5nKHBy
b3BlcnR5TmFtZSksIHRvV1RGU3RyaW5nKGVsZW1lbnRJRCksIHRpbWUpOwotfQotCiBKU0dsb2Jh
bENvbnRleHRSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWVSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbChmcmFtZVJlZiktPmpzQ29udGV4
dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9BUEkvYy9XS0J1bmRsZUZyYW1lUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lUHJpdmF0ZS5oCmluZGV4IGVhODky
MDZjN2MwYjc0MjIwMjlkYWM3MjQ0NjQxNGNmNDM3YjU0ZTkuLjRlNWM1YzNiMGUwYmUwMWYyOTQx
MzljMjFjNWJlZjg2OWMwNGZlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZVByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWVQ
cml2YXRlLmgKQEAgLTQxLDggKzQxLDYgQEAgV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVuZGxl
RnJhbWVDb3B5SW5uZXJUZXh0KFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogV0tfRVhQT1JUIFdL
U3RyaW5nUmVmIFdLQnVuZGxlRnJhbWVDb3B5Q291bnRlclZhbHVlKFdLQnVuZGxlRnJhbWVSZWYg
ZnJhbWUsIEpTT2JqZWN0UmVmIGVsZW1lbnQpOwogV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLQnVu
ZGxlRnJhbWVDb3B5TWFya2VyVGV4dChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lLCBKU09iamVjdFJl
ZiBlbGVtZW50KTsKIFdLX0VYUE9SVCBKU1ZhbHVlUmVmIFdLQnVuZGxlRnJhbWVHZXRDb21wdXRl
ZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgSlNPYmpl
Y3RSZWYgZWxlbWVudCk7Ci1XS19FWFBPUlQgYm9vbCBXS0J1bmRsZUZyYW1lUGF1c2VBbmltYXRp
b25PbkVsZW1lbnRXaXRoSWQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tTdHJpbmdSZWYgYW5p
bWF0aW9uTmFtZSwgV0tTdHJpbmdSZWYgZWxlbWVudElELCBkb3VibGUgdGltZSk7Ci1XS19FWFBP
UlQgYm9vbCBXS0J1bmRsZUZyYW1lUGF1c2VUcmFuc2l0aW9uT25FbGVtZW50V2l0aElkKFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWUsIFdLU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgV0tTdHJpbmdSZWYg
ZWxlbWVudElELCBkb3VibGUgdGltZSk7CiBXS19FWFBPUlQgdW5zaWduZWQgV0tCdW5kbGVGcmFt
ZUdldFBlbmRpbmdVbmxvYWRDb3VudChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKTsKIFdLX0VYUE9S
VCBXS1N0cmluZ1JlZiBXS0J1bmRsZUZyYW1lQ29weUxheWVyVHJlZUFzVGV4dChXS0J1bmRsZUZy
YW1lUmVmIGZyYW1lKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlRnJhbWVDbGVhck9wZW5lcihX
S0J1bmRsZUZyYW1lUmVmIGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IGU0YTU1Yzg4ZjJjZjYyOWNiMGU3NjQyODQ5ODQ0YWJi
ODZiMDA4OTAuLjYwMmJlYzlkMjNhN2U1NDMyNTA4YTk5ZWE3N2EyMTE0MWNjOGM1YjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtNDE3
LDQ0ICs0MTcsNiBAQCBQYXNzUmVmUHRyPEltbXV0YWJsZUFycmF5PiBXZWJGcmFtZTo6Y2hpbGRG
cmFtZXMoKQogICAgIHJldHVybiBJbW11dGFibGVBcnJheTo6YWRvcHQodmVjdG9yKTsKIH0KIAot
Ym9vbCBXZWJGcmFtZTo6cGF1c2VBbmltYXRpb25PbkVsZW1lbnRXaXRoSWQoY29uc3QgQXRvbWlj
U3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBTdHJpbmcmIGVsZW1lbnRJRCwgZG91YmxlIHRp
bWUpCi17Ci0gICAgaWYgKCFtX2NvcmVGcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgQW5pbWF0aW9uQ29udHJvbGxlciogY29udHJvbGxlciA9IG1fY29yZUZyYW1lLT5hbmltYXRp
b24oKTsKLSAgICBpZiAoIWNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICghbV9jb3JlRnJhbWUtPmRvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIE5vZGUqIGNvcmVOb2RlID0gbV9jb3JlRnJhbWUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRC
eUlkKGVsZW1lbnRJRCk7Ci0gICAgaWYgKCFjb3JlTm9kZSB8fCAhY29yZU5vZGUtPnJlbmRlcmVy
KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBjb250cm9sbGVyLT5wYXVz
ZUFuaW1hdGlvbkF0VGltZShjb3JlTm9kZS0+cmVuZGVyZXIoKSwgYW5pbWF0aW9uTmFtZSwgdGlt
ZSk7Ci19Ci0KLWJvb2wgV2ViRnJhbWU6OnBhdXNlVHJhbnNpdGlvbk9uRWxlbWVudFdpdGhJZChj
b25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uc3QgU3RyaW5nJiBlbGVtZW50SUQsIGRvdWJs
ZSB0aW1lKQotewotICAgIGlmICghbV9jb3JlRnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIEFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBtX2NvcmVGcmFtZS0+YW5p
bWF0aW9uKCk7Ci0gICAgaWYgKCFjb250cm9sbGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAoIW1fY29yZUZyYW1lLT5kb2N1bWVudCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBOb2RlKiBjb3JlTm9kZSA9IG1fY29yZUZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVt
ZW50QnlJZChlbGVtZW50SUQpOwotICAgIGlmICghY29yZU5vZGUgfHwgIWNvcmVOb2RlLT5yZW5k
ZXJlcigpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gY29udHJvbGxlci0+
cGF1c2VUcmFuc2l0aW9uQXRUaW1lKGNvcmVOb2RlLT5yZW5kZXJlcigpLCBwcm9wZXJ0eU5hbWUs
IHRpbWUpOwotfQotCiBTdHJpbmcgV2ViRnJhbWU6OmxheWVyVHJlZUFzVGV4dCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2NvcmVGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkZyYW1lLmgKaW5kZXggZTFiZDExZWNjNjVlMDRmYzMxODAzMzU0ODNiYjgzNWQyYjQ0
Y2JmNC4uMzMwNTMwNzNkMTAxYzczMDdlY2Q4MjM5MDA3NWRkYzIzMTFmMDMxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTExNSw4ICsxMTUs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBjb3VudGVyVmFsdWUoSlNPYmplY3RSZWYg
ZWxlbWVudCk7CiAgICAgc3RhdGljIFN0cmluZyBtYXJrZXJUZXh0KEpTT2JqZWN0UmVmIGVsZW1l
bnQpOwogCi0gICAgYm9vbCBwYXVzZUFuaW1hdGlvbk9uRWxlbWVudFdpdGhJZChjb25zdCBBdG9t
aWNTdHJpbmcmIGFuaW1hdGlvbk5hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBkb3VibGUg
dGltZSk7Ci0gICAgYm9vbCBwYXVzZVRyYW5zaXRpb25PbkVsZW1lbnRXaXRoSWQoY29uc3QgU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFN0cmluZyYgZWxlbWVudElELCBkb3VibGUgdGltZSk7
CiAgICAgU3RyaW5nIGxheWVyVHJlZUFzVGV4dCgpIGNvbnN0OwogICAgIAogICAgIHVuc2lnbmVk
IHBlbmRpbmdVbmxvYWRDb3VudCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg5ODQ4ZmRmMzZjODc2ODg5ZjhlMWE5ZTFhZTEwNjdj
Mzk3MDE5MDUuLjRhOGVlMzQyZWQzOTU2Njk1MmVmZjE4YWU0YTdhM2QxYWE4N2M2ZDUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAxMy0wMi0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIHBhdXNlQW5pbWF0aW9uL3BhdXNlVHJhbnNpdGlvbiBmcm9tIFRlc3RS
dW5uZXIgdG8gSW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDkxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVz
dFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVu
bmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RS
dW5uZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0Lmg6
CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVz
dFJ1bm5lcldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4
LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmg6CisKIDIwMTMtMDItMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
NDIwMjUuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDE0MmJlODQzOTk0NDE3
ZGY2Mzc5NDIwYWYwMDNjNzNmZTBjOTA0YTguLmIzMjlmMTRlZDliMTQ3MDk5NjJmMmU4MWVlNDgy
YjM4ZTRkMTk1N2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNjQ3LDM4
ICsxNjQ3LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JF
bGVtZW50V2l0aElkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGMKICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VCb29sZWFuKGNvbnRleHQsIGF1dG9Db21wbGV0ZXMpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJl
ZiBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZENhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCAhPSAzKQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gYW5pbWF0aW9uTmFtZShBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShj
b250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwotICAgIEFTU0VSVCghKmV4Y2VwdGlv
bik7Ci0gICAgZG91YmxlIHRpbWUgPSBKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRz
WzFdLCBleGNlcHRpb24pOwotICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7Ci0gICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IGVsZW1lbnRJZChBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250
ZXh0LCBhcmd1bWVudHNbMl0sIGV4Y2VwdGlvbikpOwotICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7
Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtl
Qm9vbGVhbihjb250ZXh0LCBjb250cm9sbGVyLT5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVu
dFdpdGhJZChhbmltYXRpb25OYW1lLmdldCgpLCB0aW1lLCBlbGVtZW50SWQuZ2V0KCkpKTsKLX0K
LQotc3RhdGljIEpTVmFsdWVSZWYgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElk
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVu
dENvdW50ICE9IDMpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKLQotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwcm9wZXJ0eU5hbWUoQWRvcHQsIEpT
VmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzBdLCBleGNlcHRpb24pKTsKLSAg
ICBBU1NFUlQoISpleGNlcHRpb24pOwotICAgIGRvdWJsZSB0aW1lID0gSlNWYWx1ZVRvTnVtYmVy
KGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKTsKLSAgICBBU1NFUlQoISpleGNlcHRp
b24pOwotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBlbGVtZW50SWQoQWRvcHQsIEpTVmFs
dWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKLSAgICBB
U1NFUlQoISpleGNlcHRpb24pOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRp
Y19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAg
IHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgY29udHJvbGxlci0+cGF1c2VUcmFu
c2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKHByb3BlcnR5TmFtZS5nZXQoKSwgdGltZSwgZWxl
bWVudElkLmdldCgpKSk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHdhaXRGb3JQb2xpY3lEZWxl
Z2F0ZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90LCBjb25zdCBKU1ZhbHVlUmVmW10sIEpTVmFsdWVSZWYqKQog
ewogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIyMzAsOCArMjE5OCw2IEBAIEpT
U3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsg
Im5vdGlmeURvbmUiLCBub3RpZnlEb25lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAib3Zl
cnJpZGVQcmVmZXJlbmNlIiwgb3ZlcnJpZGVQcmVmZXJlbmNlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAicGF0aFRvTG9jYWxSZXNvdXJjZSIsIHBhdGhUb0xvY2FsUmVzb3VyY2VDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAotICAgICAgICB7ICJwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJ
ZCIsIHBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
LSAgICAgICAgeyAicGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkIiwgcGF1c2VU
cmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAicHJpbnRUb1BERiIsIGR1bXBBc1BERkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInF1
ZXVlQmFja05hdmlnYXRpb24iLCBxdWV1ZUJhY2tOYXZpZ2F0aW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAicXVldWVGb3J3YXJkTmF2aWdhdGlvbiIsIHF1ZXVlRm9yd2FyZE5hdmlnYXRp
b25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGYyM2Iz
Y2U0Zjc0MWQxMTAwMzA3Njc0NzUzNjkxZTRhOTE0ZjJhZWYuLmU4YjJjNjJmMzdjYzA1MGIxYWFh
ZTRiYmMyNzFlZTBiODc0Nzk2YjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTI4
Nyw5ICsyODcsNiBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZW5jb2RlZEF1
ZGlvRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZW5jb2RlZEF1ZGlvRGF0YTsgfQogICAgIHZvaWQg
c2V0RW5jb2RlZEF1ZGlvRGF0YShjb25zdCBzdGQ6OnN0cmluZyYgZW5jb2RlZEF1ZGlvRGF0YSkg
eyBtX2VuY29kZWRBdWRpb0RhdGEgPSBlbmNvZGVkQXVkaW9EYXRhOyB9Ci0gICAgCi0gICAgYm9v
bCBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBhbmltYXRp
b25OYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxlbWVudElkKTsKLSAgICBib29sIHBh
dXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBwcm9wZXJ0eU5h
bWUsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpOwogCiAgICAgdm9pZCBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3Ry
aW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwg
Ym9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdm9pZCByZW1vdmVPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVm
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCmluZGV4IDM2YzQ0OWZj
YzQ4ZmEwMmNkMjZkMTUyMWMyNWQzYmVlZmVjNTQ5OWYuLjRkNThjYzQxNzJhZGQ4ODk3MTFhYTQx
ZDU5MDQ3MDFlY2IzODA4YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCkBAIC0zNDEsNTQgKzM0MSw2IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi1ib29sIFRlc3RSdW5uZXI6OnBhdXNlQW5pbWF0aW9uQXRU
aW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1l
LCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpCi17Ci0gICAgaWYgKCFtYWluRnJhbWUpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGludCBuYW1lTGVuID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRG
OENTdHJpbmdTaXplKGFuaW1hdGlvbk5hbWUpOwotICAgIGludCBpZExlbiA9IEpTU3RyaW5nR2V0
TWF4aW11bVVURjhDU3RyaW5nU2l6ZShlbGVtZW50SWQpOwotICAgIE93bkFycmF5UHRyPGNoYXI+
IG5hbWUgPSBhZG9wdEFycmF5UHRyKG5ldyBjaGFyW25hbWVMZW5dKTsKLSAgICBPd25BcnJheVB0
cjxjaGFyPiBlSWQgPSBhZG9wdEFycmF5UHRyKG5ldyBjaGFyW2lkTGVuXSk7Ci0KLSAgICBKU1N0
cmluZ0dldFVURjhDU3RyaW5nKGFuaW1hdGlvbk5hbWUsIG5hbWUuZ2V0KCksIG5hbWVMZW4pOwot
ICAgIEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoZWxlbWVudElkLCBlSWQuZ2V0KCksIGlkTGVuKTsK
LQotICAgIFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXIqIGFuaW1hdGlvbkNvbnRyb2xsZXIg
PSBtYWluRnJhbWUtPmFuaW1hdGlvbigpOwotICAgIGlmICghYW5pbWF0aW9uQ29udHJvbGxlcikK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgV2ViQ29yZTo6Tm9kZSogbm9kZSA9IG1haW5G
cmFtZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoZUlkLmdldCgpKTsKLSAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJl
dHVybiBhbmltYXRpb25Db250cm9sbGVyLT5wYXVzZUFuaW1hdGlvbkF0VGltZShub2RlLT5yZW5k
ZXJlcigpLCBuYW1lLmdldCgpLCB0aW1lKTsKLX0KLQotYm9vbCBUZXN0UnVubmVyOjpwYXVzZVRy
YW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBk
b3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxlbWVudElkKQotewotICAgIGlmICghbWFpbkZyYW1l
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpbnQgbmFtZUxlbiA9IEpTU3RyaW5nR2V0
TWF4aW11bVVURjhDU3RyaW5nU2l6ZShwcm9wZXJ0eU5hbWUpOwotICAgIGludCBpZExlbiA9IEpT
U3RyaW5nR2V0TWF4aW11bVVURjhDU3RyaW5nU2l6ZShlbGVtZW50SWQpOwotICAgIE93bkFycmF5
UHRyPGNoYXI+IG5hbWUgPSBhZG9wdEFycmF5UHRyKG5ldyBjaGFyW25hbWVMZW5dKTsKLSAgICBP
d25BcnJheVB0cjxjaGFyPiBlSWQgPSBhZG9wdEFycmF5UHRyKG5ldyBjaGFyW2lkTGVuXSk7Ci0K
LSAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKHByb3BlcnR5TmFtZSwgbmFtZS5nZXQoKSwgbmFt
ZUxlbik7Ci0gICAgSlNTdHJpbmdHZXRVVEY4Q1N0cmluZyhlbGVtZW50SWQsIGVJZC5nZXQoKSwg
aWRMZW4pOwotCi0gICAgV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlciogYW5pbWF0aW9uQ29u
dHJvbGxlciA9IG1haW5GcmFtZS0+YW5pbWF0aW9uKCk7Ci0gICAgaWYgKCFhbmltYXRpb25Db250
cm9sbGVyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBXZWJDb3JlOjpOb2RlKiBub2Rl
ID0gbWFpbkZyYW1lLT5kb2N1bWVudCgpLT5nZXRFbGVtZW50QnlJZChlSWQuZ2V0KCkpOwotICAg
IGlmICghbm9kZSB8fCAhbm9kZS0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgcmV0dXJuIGFuaW1hdGlvbkNvbnRyb2xsZXItPnBhdXNlVHJhbnNpdGlvbkF0VGltZShu
b2RlLT5yZW5kZXJlcigpLCBuYW1lLmdldCgpLCB0aW1lKTsKLX0KLQogdW5zaWduZWQgVGVzdFJ1
bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoKSBjb25zdAogewogI2lmIEVOQUJMRV9XT1JLRVJTCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDg5OTAxMmIzMmFjMmIxNWFlNWEwNjBkZTdjMmRlYzM1
NGQzYzUzODguLjFlYThkMDZmMDU4YzU4MDUzOGZlZjk2ODAwMzAzNjg4ZjRjNDVjMmUgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0xODIsOCArMTgyLDYgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1
bm5lcigpCiAgICAgYmluZE1ldGhvZCgic2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIiwg
JlRlc3RSdW5uZXI6OnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyk7CiAgICAgYmluZE1l
dGhvZCgiZXhlY0NvbW1hbmQiLCAmVGVzdFJ1bm5lcjo6ZXhlY0NvbW1hbmQpOwogICAgIGJpbmRN
ZXRob2QoImlzQ29tbWFuZEVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6aXNDb21tYW5kRW5hYmxlZCk7
Ci0gICAgYmluZE1ldGhvZCgicGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQiLCAm
VGVzdFJ1bm5lcjo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQpOwotICAgIGJp
bmRNZXRob2QoInBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCIsICZUZXN0UnVu
bmVyOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQpOwogICAgIGJpbmRNZXRo
b2QoImVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZCIsICZUZXN0UnVubmVy
OjplbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQpOwogICAgIGJpbmRNZXRo
b2QoImNhbGxTaG91bGRDbG9zZU9uV2ViVmlldyIsICZUZXN0UnVubmVyOjpjYWxsU2hvdWxkQ2xv
c2VPbldlYlZpZXcpOwogICAgIGJpbmRNZXRob2QoInNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUiLCAmVGVzdFJ1bm5lcjo6c2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRl
bkZvclVSTFNjaGVtZSk7CkBAIC0xMDU4LDM4ICsxMDU2LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpp
c0NvbW1hbmRFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KgogICAgIHJlc3VsdC0+c2V0KHJ2KTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpwYXVzZUFu
aW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChjb25zdCBXZWJTdHJpbmcmIGFuaW1hdGlvbk5h
bWUsIGRvdWJsZSB0aW1lLCBjb25zdCBXZWJTdHJpbmcmIGVsZW1lbnRJZCkKLXsKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBtX3dlYlZpZXctPm1haW5GcmFtZSgpOwotICAgIGlmICghd2ViRnJh
bWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIFdlYkFuaW1hdGlvbkNvbnRyb2xsZXIq
IGNvbnRyb2xsZXIgPSB3ZWJGcmFtZS0+YW5pbWF0aW9uQ29udHJvbGxlcigpOwotICAgIGlmICgh
Y29udHJvbGxlcikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgV2ViRWxlbWVudCBlbGVt
ZW50ID0gd2ViRnJhbWUtPmRvY3VtZW50KCkuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAg
ICBpZiAoZWxlbWVudC5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVy
biBjb250cm9sbGVyLT5wYXVzZUFuaW1hdGlvbkF0VGltZShlbGVtZW50LCBhbmltYXRpb25OYW1l
LCB0aW1lKTsKLX0KLQotYm9vbCBUZXN0UnVubmVyOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVs
ZW1lbnRXaXRoSWQoY29uc3QgV2ViU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSB0aW1lLCBj
b25zdCBXZWJTdHJpbmcmIGVsZW1lbnRJZCkKLXsKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBt
X3dlYlZpZXctPm1haW5GcmFtZSgpOwotICAgIGlmICghd2ViRnJhbWUpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIFdlYkFuaW1hdGlvbkNvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSB3ZWJG
cmFtZS0+YW5pbWF0aW9uQ29udHJvbGxlcigpOwotICAgIGlmICghY29udHJvbGxlcikKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgV2ViRWxlbWVudCBlbGVtZW50ID0gd2ViRnJhbWUtPmRv
Y3VtZW50KCkuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKLSAgICBpZiAoZWxlbWVudC5pc051
bGwoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBjb250cm9sbGVyLT5wYXVz
ZVRyYW5zaXRpb25BdFRpbWUoZWxlbWVudCwgcHJvcGVydHlOYW1lLCB0aW1lKTsKLX0KLQogYm9v
bCBUZXN0UnVubmVyOjplbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQoY29u
c3QgV2ViU3RyaW5nJiBlbGVtZW50SWQpCiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gbV93
ZWJWaWV3LT5tYWluRnJhbWUoKTsKQEAgLTExMDQsMjggKzEwNzAsNiBAQCBib29sIFRlc3RSdW5u
ZXI6OmVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChjb25zdCBXZWJTdHJp
bmcmIGVsZW1lbgogICAgIHJldHVybiBpbnB1dEVsZW1lbnQuYXV0b0NvbXBsZXRlKCk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAg
ICByZXN1bHQtPnNldChmYWxzZSk7Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAyICYmIGFy
Z3VtZW50c1swXS5pc1N0cmluZygpICYmIGFyZ3VtZW50c1sxXS5pc051bWJlcigpICYmIGFyZ3Vt
ZW50c1syXS5pc1N0cmluZygpKSB7Ci0gICAgICAgIFdlYlN0cmluZyBhbmltYXRpb25OYW1lID0g
Y3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3VtZW50c1swXSk7Ci0gICAgICAgIGRvdWJsZSB0aW1l
ID0gYXJndW1lbnRzWzFdLnRvRG91YmxlKCk7Ci0gICAgICAgIFdlYlN0cmluZyBlbGVtZW50SWQg
PSBjcHBWYXJpYW50VG9XZWJTdHJpbmcoYXJndW1lbnRzWzJdKTsKLSAgICAgICAgcmVzdWx0LT5z
ZXQocGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoYW5pbWF0aW9uTmFtZSwgdGlt
ZSwgZWxlbWVudElkKSk7Ci0gICAgfQotfQotCi12b2lkIFRlc3RSdW5uZXI6OnBhdXNlVHJhbnNp
dGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIHJlc3VsdC0+c2V0KGZhbHNlKTsKLSAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSA+IDIgJiYgYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkgJiYgYXJn
dW1lbnRzWzFdLmlzTnVtYmVyKCkgJiYgYXJndW1lbnRzWzJdLmlzU3RyaW5nKCkpIHsKLSAgICAg
ICAgV2ViU3RyaW5nIHByb3BlcnR5TmFtZSA9IGNwcFZhcmlhbnRUb1dlYlN0cmluZyhhcmd1bWVu
dHNbMF0pOwotICAgICAgICBkb3VibGUgdGltZSA9IGFyZ3VtZW50c1sxXS50b0RvdWJsZSgpOwot
ICAgICAgICBXZWJTdHJpbmcgZWxlbWVudElkID0gY3BwVmFyaWFudFRvV2ViU3RyaW5nKGFyZ3Vt
ZW50c1syXSk7Ci0gICAgICAgIHJlc3VsdC0+c2V0KHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxl
bWVudFdpdGhJZChwcm9wZXJ0eU5hbWUsIHRpbWUsIGVsZW1lbnRJZCkpOwotICAgIH0KLX0KLQog
dm9pZCBUZXN0UnVubmVyOjplbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRoSWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsK
ICAgICBpZiAoYXJndW1lbnRzLnNpemUoKSAhPSAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmco
KSkgewpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDA0MmQ1MzUwOTI5NTFjMmMwMDgxN2IxN2QwYmJl
MWVkMTVhY2E1ZjUuLjIzMDczZTM4NTU0MDZhNDBlZmYyZTllMzYyYmZkYWEzZWUyNGIyZjEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3NyYy9UZXN0UnVubmVyLmgKQEAgLTIwMSw4ICsyMDEsNiBAQCBwcml2YXRlOgogICAgIC8vIENo
ZWNrcyBpZiBhbiBpbnRlcm5hbCBjb21tYW5kIGlzIGN1cnJlbnRseSBhdmFpbGFibGUuCiAgICAg
dm9pZCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKIAotICAgIHZvaWQgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgcGF1c2VUcmFuc2l0aW9u
QXRUaW1lT25FbGVtZW50V2l0aElkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKICAgICB2b2lkIGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZChjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBjYWxsU2hvdWxkQ2xv
c2VPbldlYlZpZXcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZv
aWQgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkBAIC01MTUsOCArNTEzLDYgQEAgcHJpdmF0ZToKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJ1bklmVmFsaWQoKSB7IG1fb2JqZWN0LT5jb21wbGV0ZU5vdGlm
eURvbmUodHJ1ZSk7IH0KICAgICB9OwogCi0gICAgYm9vbCBwYXVzZUFuaW1hdGlvbkF0VGltZU9u
RWxlbWVudFdpdGhJZChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgYW5pbWF0aW9uTmFtZSwgZG91
YmxlIHRpbWUsIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJiBlbGVtZW50SWQpOwotICAgIGJvb2wg
cGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSB0aW1lLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYg
ZWxlbWVudElkKTsKICAgICBib29sIGVsZW1lbnREb2VzQXV0b0NvbXBsZXRlRm9yRWxlbWVudFdp
dGhJZChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIGJvb2wgY3BwVmFyaWFudFRvQm9v
bChjb25zdCBDcHBWYXJpYW50Jik7CiAgICAgaW50MzJfdCBjcHBWYXJpYW50VG9JbnQzMihjb25z
dCBDcHBWYXJpYW50Jik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVz
dFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHAKaW5kZXggYWRjZjVjMTdlYWU3ZmFjNGI0ZjU2OTRhMGYzNmZmNjA1MThiYTU5NS4uMzBjZWEy
NGZiNGVmOThjOTVjNWQ0YmUxNTZkMjE1YmQzOWMxODk0ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApAQCAtNjU1LDE2ICs2NTUsNiBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiAg
ICAgZXdrX3NldHRpbmdzX2FwcGxpY2F0aW9uX2NhY2hlX21heF9xdW90YV9zZXQoc2l6ZSk7CiB9
CiAKLWJvb2wgVGVzdFJ1bm5lcjo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQo
SlNTdHJpbmdSZWYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1l
bnRJZCkKLXsKLSAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpwYXVzZUFuaW1h
dGlvbihicm93c2VyLT5tYWluRnJhbWUoKSwgYW5pbWF0aW9uTmFtZS0+c3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgZWxlbWVudElkLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCB0aW1lKTsKLX0KLQot
Ym9vbCBUZXN0UnVubmVyOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNT
dHJpbmdSZWYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxlbWVudElk
KQotewotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnBhdXNlVHJhbnNpdGlv
bihicm93c2VyLT5tYWluRnJhbWUoKSwgcHJvcGVydHlOYW1lLT5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpLCBlbGVtZW50SWQtPnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHRpbWUpOwotfQotCiBzdGF0
aWMgaW5saW5lIGJvb2wgdG9Cb29sKEpTU3RyaW5nUmVmIHZhbHVlKQogewogICAgIHJldHVybiBl
cXVhbHModmFsdWUsICJ0cnVlIikgfHwgZXF1YWxzKHZhbHVlLCAiMSIpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IDI4NDcwMGVhNjE1MDg3NWQ1ZTA4
ZTM0M2FlNmFhYWNiNjdjZGZmNzAuLjIyMWRlMGE3Njk2MDU2NTMzNmQ0NTVlNGM4MzU0MTFhMmUz
NGY3NDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAg
LTcyMCwyNiArNzIwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXpl
KHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAgIHdlYmtpdF9hcHBsaWNhdGlvbl9jYWNoZV9z
ZXRfbWF4aW11bV9zaXplKHNpemUpOwogfQogCi1ib29sIFRlc3RSdW5uZXI6OnBhdXNlQW5pbWF0
aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIGFuaW1hdGlvbk5hbWUsIGRvdWJs
ZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpCi17ICAgIAotICAgIGdjaGFyKiBuYW1lID0g
SlNTdHJpbmdDb3B5VVRGOENTdHJpbmcoYW5pbWF0aW9uTmFtZSk7Ci0gICAgZ2NoYXIqIGVsZW1l
bnQgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhlbGVtZW50SWQpOwotICAgIGJvb2wgcmV0dXJu
VmFsdWUgPSBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnBhdXNlQW5pbWF0aW9uKG1haW5GcmFt
ZSwgbmFtZSwgdGltZSwgZWxlbWVudCk7Ci0gICAgZ19mcmVlKG5hbWUpOwotICAgIGdfZnJlZShl
bGVtZW50KTsKLSAgICByZXR1cm4gcmV0dXJuVmFsdWU7Ci19Ci0KLWJvb2wgVGVzdFJ1bm5lcjo6
cGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIHByb3BlcnR5
TmFtZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCkKLXsgICAgCi0gICAgZ2No
YXIqIG5hbWUgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhwcm9wZXJ0eU5hbWUpOwotICAgIGdj
aGFyKiBlbGVtZW50ID0gSlNTdHJpbmdDb3B5VVRGOENTdHJpbmcoZWxlbWVudElkKTsKLSAgICBi
b29sIHJldHVyblZhbHVlID0gRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpwYXVzZVRyYW5zaXRp
b24obWFpbkZyYW1lLCBuYW1lLCB0aW1lLCBlbGVtZW50KTsKLSAgICBnX2ZyZWUobmFtZSk7Ci0g
ICAgZ19mcmVlKGVsZW1lbnQpOwotICAgIHJldHVybiByZXR1cm5WYWx1ZTsKLX0KLQogc3RhdGlj
IGdib29sZWFuIGJvb2xlYW5Gcm9tVmFsdWUoZ2NoYXIqIHZhbHVlKQogewogICAgIHJldHVybiAh
Z19hc2NpaV9zdHJjYXNlY21wKHZhbHVlLCAidHJ1ZSIpIHx8ICFnX2FzY2lpX3N0cmNhc2VjbXAo
dmFsdWUsICIxIik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1
bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmlu
ZGV4IGM5ODIxOGJjNzExMzE1OGZmMmQ4ZGU1MWM4YTJiMjBkNzE4OTZiNzIuLjg2NGVkYTg1YmI1
OWFjYzVmZjBiN2ZkYTYwNjQxZWI2ZjgzOGQzNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9UZXN0UnVubmVyTWFjLm1tCkBAIC03ODcsMjYgKzc4Nyw2IEBAIGJvb2wgVGVzdFJ1bm5lcjo6
aXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1JlZiBuYW1lKQogICAgIHJldHVybiBbdmFsaWRhdG9y
IHZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW06dGFyZ2V0LmdldCgpXTsKIH0KIAotYm9vbCBUZXN0
UnVubmVyOjpwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBh
bmltYXRpb25OYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxlbWVudElkKQotewotICAg
IFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaWRDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmlu
ZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBlbGVtZW50SWQpKTsKLSAgICBOU1N0cmluZyAqaWROUyA9
IChOU1N0cmluZyAqKWlkQ0YuZ2V0KCk7Ci0gICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBuYW1l
Q0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgYW5p
bWF0aW9uTmFtZSkpOwotICAgIE5TU3RyaW5nICpuYW1lTlMgPSAoTlNTdHJpbmcgKiluYW1lQ0Yu
Z2V0KCk7Ci0gICAgCi0gICAgcmV0dXJuIFttYWluRnJhbWUgX3BhdXNlQW5pbWF0aW9uOm5hbWVO
UyBvbk5vZGU6W1ttYWluRnJhbWUgRE9NRG9jdW1lbnRdIGdldEVsZW1lbnRCeUlkOmlkTlNdIGF0
VGltZTp0aW1lXTsKLX0KLQotYm9vbCBUZXN0UnVubmVyOjpwYXVzZVRyYW5zaXRpb25BdFRpbWVP
bkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgSlNT
dHJpbmdSZWYgZWxlbWVudElkKQotewotICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaWRDRihB
ZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBlbGVtZW50
SWQpKTsKLSAgICBOU1N0cmluZyAqaWROUyA9IChOU1N0cmluZyAqKWlkQ0YuZ2V0KCk7Ci0gICAg
UmV0YWluUHRyPENGU3RyaW5nUmVmPiBuYW1lQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJp
bmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgcHJvcGVydHlOYW1lKSk7Ci0gICAgTlNTdHJpbmcgKm5h
bWVOUyA9IChOU1N0cmluZyAqKW5hbWVDRi5nZXQoKTsKLSAgICAKLSAgICByZXR1cm4gW21haW5G
cmFtZSBfcGF1c2VUcmFuc2l0aW9uT2ZQcm9wZXJ0eTpuYW1lTlMgb25Ob2RlOltbbWFpbkZyYW1l
IERPTURvY3VtZW50XSBnZXRFbGVtZW50QnlJZDppZE5TXSBhdFRpbWU6dGltZV07Ci19Ci0KIHZv
aWQgVGVzdFJ1bm5lcjo6d2FpdEZvclBvbGljeURlbGVnYXRlKCkKIHsKICAgICBzZXRXYWl0VG9E
dW1wKHRydWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKaW5kZXgg
ZDZhZmRlNzM3MmI2OTNhNTBkZjhhNTNlZWUzZWY5YWZlODYzYmQ0NS4uMGVkMGM2MmUxYjA0MWMw
YTBhNDQ4MjY0ZmNmZWE4ZTZmMzE4MWIzNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0
UnVubmVyUXQuY3BwCkBAIC01NDYsMjQgKzU0Niw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0WFNT
QXVkaXRvckVuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+c2V0dGlu
Z3MoKS0+c2V0QXR0cmlidXRlKFFXZWJTZXR0aW5nczo6WFNTQXVkaXRpbmdFbmFibGVkLCBlbmFi
bGUpOwogfQogCi1ib29sIFRlc3RSdW5uZXI6OnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50
V2l0aElkKGNvbnN0IFFTdHJpbmcmIGFuaW1hdGlvbk5hbWUsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3VibGUgdGltZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFFTdHJpbmcmIGVsZW1lbnRJZCkKLXsKLSAgICBRV2ViRnJhbWUqIGZyYW1l
ID0gbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgUV9BU1NFUlQoZnJhbWUpOwot
ICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6cGF1c2VBbmltYXRpb24oZnJhbWUt
PmhhbmRsZSgpLCBhbmltYXRpb25OYW1lLCB0aW1lLCBlbGVtZW50SWQpOwotfQotCi1ib29sIFRl
c3RSdW5uZXI6OnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChjb25zdCBRU3Ry
aW5nJiBwcm9wZXJ0eU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlIHRpbWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgUVN0
cmluZyYgZWxlbWVudElkKQotewotICAgIFFXZWJGcmFtZSogZnJhbWUgPSBtX2RydC0+d2ViUGFn
ZSgpLT5tYWluRnJhbWUoKTsKLSAgICBRX0FTU0VSVChmcmFtZSk7Ci0gICAgcmV0dXJuIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjpwYXVzZVRyYW5zaXRpb25PZlByb3BlcnR5KGZyYW1lLT5oYW5k
bGUoKSwgcHJvcGVydHlOYW1lLCB0aW1lLCBlbGVtZW50SWQpOwotfQotCiB2b2lkIFRlc3RSdW5u
ZXI6OmRpc3BhdGNoUGVuZGluZ0xvYWRSZXF1ZXN0cygpCiB7CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBmb3IgdGVzdGluZyBmaXggZm9yIDY3Mjc0OTUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmgKaW5kZXggMjBkZTJiMGY2OGQ1YzMzMDZkOTBlMjUzOTU3ZGFhZDA4MGQ4MzRi
OC4uMzZmZWVjMWE4OTFhMDYzZGI3OGZjMmU5ZjZlZGFmNzU4MmNhMWIyNSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKQEAgLTE4Nyw4ICsxODcsNiBAQCBwdWJsaWMgUV9T
TE9UUzoKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgUVN0cmluZyYgbmFtZSkgY29u
c3Q7CiAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlz
dCYgb3B0aW9uQXJyYXkpOwogCi0gICAgYm9vbCBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVu
dFdpdGhJZChjb25zdCBRU3RyaW5nJiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZSwgY29uc3Qg
UVN0cmluZyYgZWxlbWVudElkKTsKLSAgICBib29sIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxl
bWVudFdpdGhJZChjb25zdCBRU3RyaW5nJiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSB0aW1lLCBjb25z
dCBRU3RyaW5nJiBlbGVtZW50SWQpOwogICAgIGJvb2wgZWxlbWVudERvZXNBdXRvQ29tcGxldGVG
b3JFbGVtZW50V2l0aElkKGNvbnN0IFFTdHJpbmcmIGVsZW1lbnRJZCk7CiAKICAgICB2b2lkIGFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGNvbnN0IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwg
Y29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgUVN0cmluZyYgZGVzdGlu
YXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCBiYmE3N2MyMjk4MzEwZjM4M2Ix
OWNjYjE0NjY1NGFiMmIxNTEyNmU1Li5mMjNmNDcxMmRlZWVkOWM5NjAzMTUxZDZhZmE5YTMwNTQ4
OGQyM2YzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBA
IC0xMDEzLDU2ICsxMDEzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1T
aXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAgIHByaW50ZigiRVJST1I6IFRlc3RSdW5u
ZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUoKSBub3QgaW1wbGVtZW50ZWRcbiIpOwogfQogCi1i
b29sIFRlc3RSdW5uZXI6OnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3Ry
aW5nUmVmIGFuaW1hdGlvbk5hbWUsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQp
Ci17Ci0gICAgQ09NUHRyPElET01Eb2N1bWVudD4gZG9jdW1lbnQ7Ci0gICAgaWYgKEZBSUxFRChm
cmFtZS0+RE9NRG9jdW1lbnQoJmRvY3VtZW50KSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIEJTVFIgaWRCU1RSID0gSlNTdHJpbmdDb3B5QlNUUihlbGVtZW50SWQpOwotICAgIENPTVB0
cjxJRE9NRWxlbWVudD4gZWxlbWVudDsKLSAgICBIUkVTVUxUIGhyID0gZG9jdW1lbnQtPmdldEVs
ZW1lbnRCeUlkKGlkQlNUUiwgJmVsZW1lbnQpOwotICAgIFN5c0ZyZWVTdHJpbmcoaWRCU1RSKTsK
LSAgICBpZiAoRkFJTEVEKGhyKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgQ09NUHRy
PElXZWJGcmFtZVByaXZhdGU+IGZyYW1lUHJpdmF0ZShRdWVyeSwgZnJhbWUpOwotICAgIGlmICgh
ZnJhbWVQcml2YXRlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBCU1RSIG5hbWVCU1RS
ID0gSlNTdHJpbmdDb3B5QlNUUihhbmltYXRpb25OYW1lKTsKLSAgICBCT09MIHdhc1J1bm5pbmcg
PSBGQUxTRTsKLSAgICBociA9IGZyYW1lUHJpdmF0ZS0+cGF1c2VBbmltYXRpb24obmFtZUJTVFIs
IGVsZW1lbnQuZ2V0KCksIHRpbWUsICZ3YXNSdW5uaW5nKTsKLSAgICBTeXNGcmVlU3RyaW5nKG5h
bWVCU1RSKTsKLQotICAgIHJldHVybiBTVUNDRUVERUQoaHIpICYmIHdhc1J1bm5pbmc7Ci19Ci0K
LWJvb2wgVGVzdFJ1bm5lcjo6cGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKEpT
U3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJ
ZCkKLXsKLSAgICBDT01QdHI8SURPTURvY3VtZW50PiBkb2N1bWVudDsKLSAgICBpZiAoRkFJTEVE
KGZyYW1lLT5ET01Eb2N1bWVudCgmZG9jdW1lbnQpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgQlNUUiBpZEJTVFIgPSBKU1N0cmluZ0NvcHlCU1RSKGVsZW1lbnRJZCk7Ci0gICAgQ09N
UHRyPElET01FbGVtZW50PiBlbGVtZW50OwotICAgIEhSRVNVTFQgaHIgPSBkb2N1bWVudC0+Z2V0
RWxlbWVudEJ5SWQoaWRCU1RSLCAmZWxlbWVudCk7Ci0gICAgU3lzRnJlZVN0cmluZyhpZEJTVFIp
OwotICAgIGlmIChGQUlMRUQoaHIpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBDT01Q
dHI8SVdlYkZyYW1lUHJpdmF0ZT4gZnJhbWVQcml2YXRlKFF1ZXJ5LCBmcmFtZSk7Ci0gICAgaWYg
KCFmcmFtZVByaXZhdGUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIEJTVFIgbmFtZUJT
VFIgPSBKU1N0cmluZ0NvcHlCU1RSKHByb3BlcnR5TmFtZSk7Ci0gICAgQk9PTCB3YXNSdW5uaW5n
ID0gRkFMU0U7Ci0gICAgaHIgPSBmcmFtZVByaXZhdGUtPnBhdXNlVHJhbnNpdGlvbihuYW1lQlNU
UiwgZWxlbWVudC5nZXQoKSwgdGltZSwgJndhc1J1bm5pbmcpOwotICAgIFN5c0ZyZWVTdHJpbmco
bmFtZUJTVFIpOwotCi0gICAgcmV0dXJuIFNVQ0NFRURFRChocikgJiYgd2FzUnVubmluZzsKLX0K
LQogc3RhdGljIF9ic3RyX3QgYnN0clQoSlNTdHJpbmdSZWYganNTdHJpbmcpCiB7CiAgICAgLy8g
VGhlIGZhbHNlIHBhcmFtZXRlciB0ZWxscyB0aGUgX2JzdHJfdCBjb25zdHJ1Y3RvciB0byBhZG9w
dCB0aGUgQlNUUiB3ZSBwYXNzIGl0LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d3gvVGVzdFJ1bm5lcld4LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJX
eC5jcHAKaW5kZXggY2E0YWEwMThjNWZiMzI0ODVhZWQ1OTAyNTg2YWNkOTY0MjZjN2Q1MS4uMzE4
ZjJjMzY2OGQ5MjliMGI4MjQ1ZTUxOTNiMThiYzA5MTMzMjkyYSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93eC9UZXN0UnVubmVyV3guY3BwCkBAIC0zMTUsMTIgKzMxNSw2IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCiAgICAg
Ly8gRklYTUU6IGltcGxlbWVudAogfQogCi1ib29sIFRlc3RSdW5uZXI6OnBhdXNlVHJhbnNpdGlv
bkF0VGltZU9uRWxlbWVudFdpdGhJZChKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSB0
aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAot
ICAgIHJldHVybiBmYWxzZTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRNb2NrRGV2aWNlT3Jp
ZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92
aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEp
CiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgRGV2aWNlT3JpZW50YXRpb24gbGF5b3V0
IHRlc3RzLgpAQCAtMzc0LDEyICszNjgsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRh
YmFzZUVuYWJsZWQoYm9vbCBpY29uRGF0YWJhc2VFbmFibGVkKQogICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKIH0KIAotYm9vbCBUZXN0UnVubmVyOjpwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVu
dFdpdGhJZChKU1N0cmluZ1JlZiBhbmltYXRpb25OYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdS
ZWYgZWxlbWVudElkKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0Q2FjaGVNb2RlbChpbnQpCiB7CiAgICAgLy8g
RklYTUU6IGltcGxlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKaW5kZXggOWVkN2EzMTRi
MTEzZmMyOWU1NjAxNTg0NTA5NzdmNGNlZjE5ZDc0Ni4uOTIxYzQ3NTBhNWM0MjRhZDZhMmViNmJk
ZjZjZjI1ZTMxNjFmZWZhNiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCkBAIC05NiwxMCAr
OTYsNiBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAKICAgICBbUGFzc0NvbnRleHRdIHZvaWQg
c2V0VmFsdWVGb3JVc2VyKGluIG9iamVjdCBlbGVtZW50LCBpbiBET01TdHJpbmcgdmFsdWUpOwog
Ci0gICAgLy8gQW5pbWF0aW9uIHRlc3RpbmcuCi0gICAgYm9vbGVhbiBwYXVzZUFuaW1hdGlvbkF0
VGltZU9uRWxlbWVudFdpdGhJZChpbiBET01TdHJpbmcgYW5pbWF0aW9uTmFtZSwgaW4gZG91Ymxl
IHRpbWUsIGluIERPTVN0cmluZyBlbGVtZW50SWQpOwotICAgIGJvb2xlYW4gcGF1c2VUcmFuc2l0
aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGluIERPTVN0cmluZyBwcm9wZXJ0eU5hbWUsIGluIGRv
dWJsZSB0aW1lLCBpbiBET01TdHJpbmcgZWxlbWVudElkKTsKLQogICAgIC8vIFVzZXJDb250ZW50
IHRlc3RpbmcuCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KGluIERPTVN0cmluZyBzb3VyY2UsIGlu
IGJvb2xlYW4gcnVuQXRTdGFydCwgaW4gYm9vbGVhbiBhbGxGcmFtZXMpOwogICAgIHZvaWQgYWRk
VXNlclN0eWxlU2hlZXQoaW4gRE9NU3RyaW5nIHNvdXJjZSwgaW4gYm9vbGVhbiBhbGxGcmFtZXMp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0
UnVubmVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKaW5kZXggOTE3NWE4M2E2OGE5OWYwMjRmOTFmN2Q0MDg1OTBkZTZhNGVjZjIyNi4u
ZDc2ZGRhOWE3OWNiYjhkODkwNmY1YzczOWIzMDNhZmJhMGY5ZDU0NCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC0x
NjYsMjIgKzE2Niw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0Q3VzdG9tVGltZW91dChpbnQgdGlt
ZW91dCkKICAgICBtX3RpbWVvdXQgPSB0aW1lb3V0OwogfQogCi1ib29sIFRlc3RSdW5uZXI6OnBh
dXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKEpTU3RyaW5nUmVmIGFuaW1hdGlvbk5h
bWUsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpCi17Ci0gICAgLy8gRklYTUU6
IElzIGl0IE9LIHRoaXMgd29ya3Mgb25seSBmb3IgdGhlIG1haW4gZnJhbWU/Ci0gICAgLy8gRklY
TUU6IElmIHRoaXMgaXMgbmVlZGVkIG9ubHkgZm9yIHRoZSBtYWluIGZyYW1lLCB0aGVuIHdoeSBp
cyB0aGUgZnVuY3Rpb24gb24gV0tCdW5kbGVGcmFtZSBpbnN0ZWFkIG9mIFdLQnVuZGxlUGFnZT8K
LSAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFt
ZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOwotICAgIHJldHVybiBX
S0J1bmRsZUZyYW1lUGF1c2VBbmltYXRpb25PbkVsZW1lbnRXaXRoSWQobWFpbkZyYW1lLCB0b1dL
KGFuaW1hdGlvbk5hbWUpLmdldCgpLCB0b1dLKGVsZW1lbnRJZCkuZ2V0KCksIHRpbWUpOwotfQot
Ci1ib29sIFRlc3RSdW5uZXI6OnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChK
U1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIGRvdWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50
SWQpCi17Ci0gICAgLy8gRklYTUU6IElzIGl0IE9LIHRoaXMgd29ya3Mgb25seSBmb3IgdGhlIG1h
aW4gZnJhbWU/Ci0gICAgLy8gRklYTUU6IElmIHRoaXMgaXMgbmVlZGVkIG9ubHkgZm9yIHRoZSBt
YWluIGZyYW1lLCB0aGVuIHdoeSBpcyB0aGUgZnVuY3Rpb24gb24gV0tCdW5kbGVGcmFtZSBpbnN0
ZWFkIG9mIFdLQnVuZGxlUGFnZT8KLSAgICBXS0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdL
QnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5w
YWdlKCkpOwotICAgIHJldHVybiBXS0J1bmRsZUZyYW1lUGF1c2VUcmFuc2l0aW9uT25FbGVtZW50
V2l0aElkKG1haW5GcmFtZSwgdG9XSyhwcm9wZXJ0eU5hbWUpLmdldCgpLCB0b1dLKGVsZW1lbnRJ
ZCkuZ2V0KCksIHRpbWUpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OmFkZFVzZXJTY3JpcHQoSlNT
dHJpbmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKQogewogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBzb3VyY2VXSyA9IHRvV0soc291cmNlKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggMGE5MzYxNDNlNDk2NjAzMDYyNGEzYjNlZDQwMmM3ZDYwZDY1Nzg2My4uODRmMmJlNzRkNjU0
MzU0OTZkZjRiY2I5NDM1M2I5N2Y4OTJhODBiYyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKQEAgLTEzMCwxMCArMTMwLDYgQEAg
cHVibGljOgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFpbnQgPSB0cnVlOyB9
CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRTd2Vl
cEhvcml6b250YWxseSA9IHRydWU7IH0KICAgICB2b2lkIGRpc3BsYXkoKTsKLQotICAgIC8vIEFu
aW1hdGlvbiB0ZXN0aW5nLgotICAgIGJvb2wgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRX
aXRoSWQoSlNTdHJpbmdSZWYgYW5pbWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVm
IGVsZW1lbnRJZCk7Ci0gICAgYm9vbCBwYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRo
SWQoSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBkb3VibGUgdGltZSwgSlNTdHJpbmdSZWYgZWxl
bWVudElkKTsKICAgICAKICAgICAvLyBVc2VyQ29udGVudCB0ZXN0aW5nLgogICAgIHZvaWQgYWRk
VXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgcnVuQXRTdGFydCwgYm9vbCBhbGxG
cmFtZXMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDhmMGJhYWNhNjU3YjAxNjVkODE0Y2ZhNzQxYjA1NjNmM2FlNTdkYzQu
LjIzZDNiN2E5ODEyMzY0NTNkMjgxODFiODk5NTk1Y2Q5YzRiZGQ3NjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzOCBAQAorMjAxMy0wMi0wNiAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBNb3ZlIHBhdXNlQW5pbWF0aW9uL3BhdXNlVHJhbnNpdGlvbiBmcm9tIFRl
c3RSdW5uZXIgdG8gSW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDkxMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDaGFuZ2UgdGhlIHRlc3RzIHdpdGggdGhlIGZvbGxvd2luZzoKKyAgICAg
ICAgLVVzZSB0aGUgbWV0aG9kcyBvbiBJbnRlcm5hbHMgaW5zdGVhZCBvZiBUZXN0UnVubmVyLgor
ICAgICAgICAtQWRhcHQgdGhlIGNhbGxzIHRvIHBhc3MgYSBwYXJ0aWN1bGFyIGVsZW1lbnQgaW5z
dGVhZCBvZiBhbiBJRC4KKyAgICAgICAgLVJlbW92ZSBmZWF0dXJlIGRldGVjdGlvbi4gSGF2aW5n
IEludGVybmFscyBpbXBsaWVzIGhhdmluZyB0aGUgZmVhdHVyZS4KKworICAgICAgICAqIGFuaW1h
dGlvbnMvYW5pbWF0aW9uLWhpdC10ZXN0LXRyYW5zZm9ybS5odG1sOgorICAgICAgICAqIGFuaW1h
dGlvbnMvYW5pbWF0aW9uLWhpdC10ZXN0Lmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9hbmlt
YXRpb24taW50ZXJuYWxzLWFwaS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9hbmltYXRpb25zL2FuaW1hdGlvbi1kcnQtYXBpLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBh
bmltYXRpb25zL2FuaW1hdGlvbi1pbnRlcm5hbHMtYXBpLW11bHRpcGxlLWtleWZyYW1lcy1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1k
cnQtYXBpLW11bHRpcGxlLWtleWZyYW1lcy1leHBlY3RlZC50eHQuCisgICAgICAgICogYW5pbWF0
aW9ucy9hbmltYXRpb24taW50ZXJuYWxzLWFwaS1tdWx0aXBsZS1rZXlmcmFtZXMuaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRydC1hcGktbXVsdGlw
bGUta2V5ZnJhbWVzLmh0bWwuCisgICAgICAgICogYW5pbWF0aW9ucy9hbmltYXRpb24taW50ZXJu
YWxzLWFwaS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tZHJ0LWFwaS5odG1sLgorICAgICAgICAqIGFuaW1hdGlvbnMvY2hhbmdlLWtleWZyYW1lcy1u
YW1lLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9jaGFuZ2UtdHJhbnNmb3JtLXN0eWxlLWR1
cmluZy1hbmltYXRpb24uaHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL21pc3NpbmctZnJvbS10
by10cmFuc2Zvcm1zLmh0bWw6CisgICAgICAgICogYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8u
aHRtbDoKKyAgICAgICAgKiBhbmltYXRpb25zL3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxw
ZXJzLmpzOgorICAgICAgICAoY2hlY2tFeHBlY3RlZFZhbHVlKToKKyAgICAgICAgKHN0YXJ0VGVz
dCk6CisgICAgICAgICogY3NzMy9jYWxjL3RyYW5zaXRpb25zLWRlcGVuZGVudC5odG1sOgorICAg
ICAgICAqIGZhc3QvZG9tL3NoYWRvdy90cmFuc2l0aW9uLW9uLXNoYWRvdy1ob3N0LXdpdGgtZGlz
dHJpYnV0ZWQtbm9kZS5odG1sOgorICAgICAgICAqIHRyYW5zaXRpb25zL29wYWNpdHktdHJhbnNp
dGlvbi16aW5kZXguaHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy9yZXNvdXJjZXMvdHJhbnNp
dGlvbi10ZXN0LWhlbHBlcnMuanM6CisgICAgICAgIChleHBlY3RlZCk6CisgICAgICAgICogdHJh
bnNpdGlvbnMvdHJhbnNpdGlvbi1kcnQtYXBpLWRlbGF5Lmh0bWw6CisgICAgICAgICogdHJhbnNp
dGlvbnMvdHJhbnNpdGlvbi1kcnQtYXBpLmh0bWw6CisgICAgICAgICogdHJhbnNpdGlvbnMvdHJh
bnNpdGlvbi1oaXQtdGVzdC10cmFuc2Zvcm0uaHRtbDoKKyAgICAgICAgKiB0cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWhpdC10ZXN0Lmh0bWw6CisKIDIwMTMtMDItMDYgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxNDIwMjUuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1kcnQtYXBpLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9u
LWRydC1hcGktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlY2U0
OTkzNzc3ZjA1Mjk0ZWZjMDlhYTNhYzlmNjM4M2NkN2ZmOTJiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0
aW9uLWRydC1hcGktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAotUEFT
UzogY29ycmVjdGx5IHBhdXNlZCBhbmltYXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvYW5pbWF0aW9uLWRydC1hcGktbXVsdGlwbGUta2V5ZnJhbWVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRydC1hcGktbXVsdGlwbGUta2V5
ZnJhbWVzLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWNlNDk5
Mzc3N2YwNTI5NGVmYzA5YWEzYWM5ZjYzODNjZDdmZjkyYi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlv
bi1kcnQtYXBpLW11bHRpcGxlLWtleWZyYW1lcy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSArMCwwIEBACi1QQVNTOiBjb3JyZWN0bHkgcGF1c2VkIGFuaW1hdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZHJ0LWFwaS1tdWx0aXBsZS1rZXlm
cmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRydC1hcGktbXVs
dGlwbGUta2V5ZnJhbWVzLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUwZTA5
M2NiZmVhYWYxNDQxNGI0ZWEzZTc3YjFlZDA1YzU4OWFjNmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tZHJ0LWFwaS1tdWx0aXBsZS1rZXlmcmFtZXMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDYx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotCi08aHRtbD4KLTxoZWFkPgotICA8c3R5bGU+Ci0g
ICAgI3RhcmdldCB7Ci0gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgICBsZWZ0OiAxMDBw
eDsKLSAgICAgIGhlaWdodDogMTAwcHg7Ci0gICAgICB3aWR0aDogMTAwcHg7Ci0gICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibHVlOwotICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IDFz
OwotICAgICAgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7Ci0gICAg
fQotCi0gICAgQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0gewotICAgICAgZnJvbSB7IGxlZnQ6IDEw
cHg7IH0KLSAgICAgIDQwJSB7IGxlZnQ6IDMwcHg7IH0KLSAgICAgIDYwJSB7IGxlZnQ6IDE1cHg7
IH0KLSAgICAgIHRvIHsgbGVmdDogMjBweDsgfQotICAgIH0KLSAgIDwvc3R5bGU+Ci0KLSAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyI+PC9zY3JpcHQ+
Ci0gICA8c2NyaXB0PgotICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICAgfQotICAgCi0gICAgZnVuY3Rpb24gYW5pbWF0aW9uU3RhcnRlZCgpCi0gICAgewotICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHZhciBwYXVzZWQgPSB0ZXN0UnVu
bmVyLnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJhbmltIiwgMSwgInRhcmdl
dCIpOwotICAgICAgICB2YXIgcmVzdWx0OwotICAgICAgICBpZiAocGF1c2VkKQotICAgICAgICAg
IHJlc3VsdCA9ICJQQVNTOiBjb3JyZWN0bHkgcGF1c2VkIGFuaW1hdGlvbiI7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICByZXN1bHQgPSAiRkFJTDogZmFpbGVkIHRvIHBhdXNlIGFuaW1hdGlvbiI7
Ci0KLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lclRleHQg
PSByZXN1bHQ7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgfSBlbHNl
Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHRzJykuaW5uZXJUZXh0ID0g
IlRoaXMgdGVzdCByZXF1aXJlcyBEUlQiOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCi0gICAgewotICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKTsKLSAgICAgIHRhcmdldC5zdHlsZS53ZWJraXRBbmltYXRpb25OYW1lID0gImFuaW0i
OwotICAgICAgd2FpdEZvckFuaW1hdGlvblRvU3RhcnQodGFyZ2V0LCBhbmltYXRpb25TdGFydGVk
KTsKLSAgICB9Ci0gICA8L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic3RhcnRUZXN0
KCkiPgotICA8IS0tIFRlc3QgZm9yIERSVCBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdp
dGhJZCgpIEFQSSBvbiBhbmltYXRpb25zIHdpdGggbXVsdGlwbGUga2V5ZnJhbWVzIC0tPgotICA8
ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgotICA8ZGl2IGlkPSJyZXN1bHRzIj48L2Rpdj4KLQotPC9i
b2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRp
b24tZHJ0LWFwaS5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24tZHJ0LWFw
aS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4NzYzMzhhNTlkNDgwOTk2ZTI2
OGQzZWViMDZlMmE2YjVjZGYxNjI0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWRydC1hcGkuaHRt
bAorKysgL2Rldi9udWxsCkBAIC0xLDYyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+
Ci08aGVhZD4KLSAgPHN0eWxlPgotICAgICN0YXJnZXQgewotICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOwotICAgICAgbGVmdDogMTAwcHg7Ci0gICAgICBoZWlnaHQ6IDEwMHB4OwotICAgICAgd2lk
dGg6IDEwMHB4OwotICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKLSAgICAgIC13ZWJraXQt
YW5pbWF0aW9uLWR1cmF0aW9uOiAxczsKLSAgICAgIC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1m
dW5jdGlvbjogbGluZWFyOwotICAgIH0KLQotICAgIEAtd2Via2l0LWtleWZyYW1lcyBib3VuY2Ug
ewotICAgICAgZnJvbSB7Ci0gICAgICAgIGxlZnQ6IDEwMHB4OwotICAgICAgfQotICAgICAgdG8g
ewotICAgICAgICBsZWZ0OiAyMDBweDsKLSAgICAgIH0KLSAgICB9Ci0gICAgICAgICAKLSAgPC9z
dHlsZT4KLQotICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMu
anMiPjwvc2NyaXB0PgotICA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewot
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBhbmltYXRpb25TdGFydGVkKCkKLSAgICB7
Ci0gICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdmFyIHBhdXNlZCA9IHRl
c3RSdW5uZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImJvdW5jZSIsIDEu
MCwgInRhcmdldCIpOwotICAgICAgICB2YXIgcmVzdWx0ID0gIiI7Ci0gICAgICAgIGlmIChwYXVz
ZWQpCi0gICAgICAgICAgcmVzdWx0ID0gIlBBU1M6IGNvcnJlY3RseSBwYXVzZWQgYW5pbWF0aW9u
IjsKLSAgICAgICAgZWxzZQotICAgICAgICAgIHJlc3VsdCA9ICJGQUlMOiBmYWlsZWQgdG8gcGF1
c2UgYW5pbWF0aW9uIjsKLQotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0
cycpLmlubmVyVGV4dCA9IHJlc3VsdDsKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Ci0gICAgICB9IGVsc2UKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMn
KS5pbm5lclRleHQgPSAiVGhpcyB0ZXN0IHJlcXVpcmVzIERSVCI7Ci0gICAgfQotCi0gICAgZnVu
Y3Rpb24gc3RhcnRUZXN0KCkKLSAgICB7Ci0gICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwotICAgICAgdGFyZ2V0LnN0eWxlLndlYmtpdEFuaW1hdGlv
bk5hbWUgPSAiYm91bmNlIjsKLSAgICAgIHdhaXRGb3JBbmltYXRpb25Ub1N0YXJ0KHRhcmdldCwg
YW5pbWF0aW9uU3RhcnRlZCk7Ci0gICAgfQotICAgPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KLSAgPCEtLSBUZXN0IGZvciBEUlQgcGF1c2VBbmltYXRpb25B
dFRpbWVPbkVsZW1lbnRXaXRoSWQoKSBBUEkgLS0+Ci0gIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+
Ci0gIDxkaXYgaWQ9InJlc3VsdHMiPjwvZGl2PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24taGl0LXRlc3QtdHJhbnNmb3JtLmh0
bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1oaXQtdGVzdC10cmFuc2Zvcm0u
aHRtbAppbmRleCAyNmJhYWQwZTc3NTcwOGQ4Y2E4NTA5NzYxMDJlNzc2OThiMDQ0OTdjLi44YzA4
ZTc2ODM0N2UzMTBkYTIwNzMwYWNlNzZiN2UyNmJhNTFlMjc4IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1oaXQtdGVzdC10cmFuc2Zvcm0uaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1oaXQtdGVzdC10cmFuc2Zvcm0uaHRtbApA
QCAtNTQsNyArNTQsOCBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAg
ICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAo
IXRlc3RSdW5uZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImFuaW0iLCAy
LjAsICJ0YXJnZXQiKSkKKyAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgICAgICAgICAgICAgIGlmICghaW50ZXJuYWxzLnBh
dXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50KCJhbmltIiwgMi4wLCB0YXJnZXQpKQogICAgICAg
ICAgICAgICAgICAgICB0aHJvdygiVHJhbnNpdGlvbiBpcyBub3QgcnVubmluZyIpOwogICAgICAg
ICAKICAgICAgICAgICAgICAgICBjaGVja1Jlc3VsdHMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWhpdC10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1oaXQtdGVzdC5odG1sCmluZGV4IGIwOTEzYmRmMGFmZjEyNTEyODgz
YTdjNzFiZWU4MzRmODI2YmEwZjMuLjU0MTBiM2Y3ZTU4NWJhNzM3NTNjNTAwNzY1YjA2ODQ5ZDRl
ZGFhZmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWhpdC10
ZXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24taGl0LXRlc3Qu
aHRtbApAQCAtNTQsNyArNTQsOCBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAg
ICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAg
ICBpZiAoIXRlc3RSdW5uZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImFu
aW0iLCAyLjAsICJ0YXJnZXQiKSkKKyAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpOworICAgICAgICAgICAgICAgIGlmICghaW50ZXJu
YWxzLnBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50KCJhbmltIiwgMi4wLCB0YXJnZXQpKQog
ICAgICAgICAgICAgICAgICAgICB0aHJvdygiVHJhbnNpdGlvbiBpcyBub3QgcnVubmluZyIpOwog
ICAgICAgICAKICAgICAgICAgICAgICAgICBjaGVja1Jlc3VsdHMoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWludGVybmFscy1hcGktZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24taW50ZXJuYWxzLWFwaS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZWNlNDk5Mzc3N2YwNTI5NGVmYzA5YWEzYWM5ZjYzODNjZDdmZjky
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWlu
dGVybmFscy1hcGktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1BBU1M6IGNvcnJlY3RseSBw
YXVzZWQgYW5pbWF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2FuaW1h
dGlvbi1pbnRlcm5hbHMtYXBpLW11bHRpcGxlLWtleWZyYW1lcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hbmltYXRpb25zL2FuaW1hdGlvbi1pbnRlcm5hbHMtYXBpLW11bHRpcGxlLWtleWZy
YW1lcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNlNDk5Mzc3N2YwNTI5NGVmYzA5YWEzYWM5
ZjYzODNjZDdmZjkyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMv
YW5pbWF0aW9uLWludGVybmFscy1hcGktbXVsdGlwbGUta2V5ZnJhbWVzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxIEBACitQQVNTOiBjb3JyZWN0bHkgcGF1c2VkIGFuaW1hdGlvbgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9hbmltYXRpb24taW50ZXJuYWxzLWFwaS1tdWx0aXBs
ZS1rZXlmcmFtZXMuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWludGVy
bmFscy1hcGktbXVsdGlwbGUta2V5ZnJhbWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzBjYTcyZjFkNjFm
OWJhODQ4ZTNlYzZmYTUxZDJlNmJjOWU4ZDMyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWludGVybmFscy1hcGktbXVsdGlwbGUta2V5ZnJhbWVz
Lmh0bWwKQEAgLTAsMCArMSw2MiBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+
CisgIDxzdHlsZT4KKyAgICAjdGFyZ2V0IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICAgIGxlZnQ6IDEwMHB4OworICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBw
eDsKKyAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlv
bi1kdXJhdGlvbjogMXM7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246
IGxpbmVhcjsKKyAgICB9CisKKyAgICBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbSB7CisgICAgICBm
cm9tIHsgbGVmdDogMTBweDsgfQorICAgICAgNDAlIHsgbGVmdDogMzBweDsgfQorICAgICAgNjAl
IHsgbGVmdDogMTVweDsgfQorICAgICAgdG8geyBsZWZ0OiAyMHB4OyB9CisgICAgfQorICAgPC9z
dHlsZT4KKworICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJz
LmpzIj48L3NjcmlwdD4KKyAgIDxzY3JpcHQ+CisgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgICB9CisKKyAgICBmdW5jdGlvbiBhbmltYXRpb25TdGFydGVkKCkK
KyAgICB7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgdmFyIHBhdXNl
ZCA9IGludGVybmFscy5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudCgiYW5pbSIsIDEsIHRh
cmdldCk7CisgICAgICAgIHZhciByZXN1bHQ7CisgICAgICAgIGlmIChwYXVzZWQpCisgICAgICAg
ICAgcmVzdWx0ID0gIlBBU1M6IGNvcnJlY3RseSBwYXVzZWQgYW5pbWF0aW9uIjsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgIHJlc3VsdCA9ICJGQUlMOiBmYWlsZWQgdG8gcGF1c2UgYW5pbWF0aW9u
IjsKKworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlubmVyVGV4
dCA9IHJlc3VsdDsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICB9IGVs
c2UKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lclRleHQg
PSAiVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYkNvcmUgSW50ZXJuYWxzIjsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBzdGFydFRlc3QoKQorICAgIHsKKyAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgICB0YXJnZXQuc3R5bGUud2Via2l0QW5pbWF0
aW9uTmFtZSA9ICJhbmltIjsKKyAgICAgIHdhaXRGb3JBbmltYXRpb25Ub1N0YXJ0KHRhcmdldCwg
YW5pbWF0aW9uU3RhcnRlZCk7CisgICAgfQorICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InN0YXJ0VGVzdCgpIj4KKyAgPCEtLSBUZXN0IGZvciBJbnRlcm5hbHMnIHBhdXNlQW5p
bWF0aW9uQXRUaW1lT25FbGVtZW50KCkgQVBJIG9uIGFuaW1hdGlvbnMgd2l0aCBtdWx0aXBsZSBr
ZXlmcmFtZXMgLS0+CisgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgIDxkaXYgaWQ9InJlc3Vs
dHMiPjwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9h
bmltYXRpb25zL2FuaW1hdGlvbi1pbnRlcm5hbHMtYXBpLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmlt
YXRpb25zL2FuaW1hdGlvbi1pbnRlcm5hbHMtYXBpLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E4NDliYmY0
YThjZTVlOTNkNzdkZDMxN2MzZjA3Yjg2YTE1ZGUzZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FuaW1hdGlvbnMvYW5pbWF0aW9uLWludGVybmFscy1hcGkuaHRtbApAQCAtMCwwICsx
LDYzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgIDxzdHlsZT4KKyAgICAj
dGFyZ2V0IHsKKyAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgIGxlZnQ6IDEwMHB4Owor
ICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgIGJhY2tncm91
bmQtY29sb3I6IGJsdWU7CisgICAgICAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjogMXM7Cisg
ICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IGxpbmVhcjsKKyAgICB9CisK
KyAgICBALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsKKyAgICAgIGZyb20geworICAgICAgICBs
ZWZ0OiAxMDBweDsKKyAgICAgIH0KKyAgICAgIHRvIHsKKyAgICAgICAgbGVmdDogMjAwcHg7Cisg
ICAgICB9CisgICAgfQorCisgIDwvc3R5bGU+CisKKyAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9h
bmltYXRpb24tdGVzdC1oZWxwZXJzLmpzIj48L3NjcmlwdD4KKyAgPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gYW5p
bWF0aW9uU3RhcnRlZCgpCisgICAgeworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7Cisg
ICAgICAgIHZhciBwYXVzZWQgPSBpbnRlcm5hbHMucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1l
bnQoImJvdW5jZSIsIDEuMCwgdGFyZ2V0KTsKKyAgICAgICAgdmFyIHJlc3VsdCA9ICIiOworICAg
ICAgICBpZiAocGF1c2VkKQorICAgICAgICAgIHJlc3VsdCA9ICJQQVNTOiBjb3JyZWN0bHkgcGF1
c2VkIGFuaW1hdGlvbiI7CisgICAgICAgIGVsc2UKKyAgICAgICAgICByZXN1bHQgPSAiRkFJTDog
ZmFpbGVkIHRvIHBhdXNlIGFuaW1hdGlvbiI7CisKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdHMnKS5pbm5lclRleHQgPSByZXN1bHQ7CisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgICAgfSBlbHNlCisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHRzJykuaW5uZXJUZXh0ID0gIlRoaXMgdGVzdCByZXF1aXJlcyBXZWJDb3JlIElu
dGVybmFscyI7CisgICAgfQorCisgICAgZnVuY3Rpb24gc3RhcnRUZXN0KCkKKyAgICB7CisgICAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAg
dGFyZ2V0LnN0eWxlLndlYmtpdEFuaW1hdGlvbk5hbWUgPSAiYm91bmNlIjsKKyAgICAgIHdhaXRG
b3JBbmltYXRpb25Ub1N0YXJ0KHRhcmdldCwgYW5pbWF0aW9uU3RhcnRlZCk7CisgICAgfQorICAg
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KKyAgPCEtLSBU
ZXN0IGZvciBJbnRlcm5hbHMgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnQoKSBBUEkgLS0+
CisgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+CisgIDxkaXYgaWQ9InJlc3VsdHMiPjwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFu
Z2Uta2V5ZnJhbWVzLW5hbWUuaHRtbCBiL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvY2hhbmdlLWtl
eWZyYW1lcy1uYW1lLmh0bWwKaW5kZXggMmYzYWQ1MjRjYjM0OTg0NjM1NDc0YWZlYWE4Njg1NjRm
NjUxZmM0MS4uZGI0MmJkOTM2ODhkNjhkNDc1YzQwMjU4YjY5Y2E0OGY1MDM4MGU5MiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2Uta2V5ZnJhbWVzLW5hbWUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS1rZXlmcmFtZXMtbmFtZS5odG1sCkBA
IC02MCw3ICs2MCw4IEBACiAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotICAgICAgICAgIGlmICh0ZXN0UnVubmVyLnBhdXNlQW5pbWF0aW9uQXRUaW1l
T25FbGVtZW50V2l0aElkKCJiYXIiLCAwLjUsICJib3giKSkKKyAgICAgICAgICB2YXIgYm94ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JveCcpOworICAgICAgICAgIGlmIChpbnRlcm5hbHMu
cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnQoImJhciIsIDAuNSwgYm94KSkKICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZS1yZXN1bHQiKS5pbm5lckhUTUwgPSAi
RkFJTDogYW5pbWF0aW9uIGlzIHJ1bm5pbmciOwogICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZS1yZXN1bHQiKS5pbm5lckhUTUwgPSAiUEFT
UzogYW5pbWF0aW9uIGlzIG5vdCBydW5uaW5nIjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Fu
aW1hdGlvbnMvY2hhbmdlLXRyYW5zZm9ybS1zdHlsZS1kdXJpbmctYW5pbWF0aW9uLmh0bWwgYi9M
YXlvdXRUZXN0cy9hbmltYXRpb25zL2NoYW5nZS10cmFuc2Zvcm0tc3R5bGUtZHVyaW5nLWFuaW1h
dGlvbi5odG1sCmluZGV4IGRlN2QxZTc4MTdlYzEwYjRlYjg1YjdkNDY5MDhkYmZlZmQ1YTQwNDUu
LjJlMmUzZDdjMGE4ODNjNDVjNjAxNmJjNTc0Y2U2Mjk5OTYyZDA2NDcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FuaW1hdGlvbnMvY2hhbmdlLXRyYW5zZm9ybS1zdHlsZS1kdXJpbmctYW5pbWF0
aW9uLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9jaGFuZ2UtdHJhbnNmb3JtLXN0
eWxlLWR1cmluZy1hbmltYXRpb24uaHRtbApAQCAtNzMsNyArNzMsNiBAQAogICAgPC9zY3JpcHQ+
CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLSAgPCEtLSBUZXN0IGZvciBE
UlQgcGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoKSBBUEkgb24gYW5pbWF0aW9u
cyB3aXRoIG11bHRpcGxlIGtleWZyYW1lcyAtLT4KICAgPGRpdiBpZD0iY29udGFpbmVyIj4KICAg
ICA8ZGl2IGlkPSJyZXZlYWxlZCI+PC9kaXY+CiAgICAgPGRpdiBpZD0iYW5pbWF0ZWQiPjwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8tdHJh
bnNmb3Jtcy5odG1sIGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8tdHJh
bnNmb3Jtcy5odG1sCmluZGV4IDJlYWM5ZTE3Y2I1NDJmNDdjYjljNDdlMDEzZDNiODRjMTJiNThh
MmMuLjJmYmMxYjVjMjYyN2NmMWRlMzBhMzg0MTBlYTIyYjAzOGE5ZGY1ZjUgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2FuaW1hdGlvbnMvbWlzc2luZy1mcm9tLXRvLXRyYW5zZm9ybXMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25zL21pc3NpbmctZnJvbS10by10cmFuc2Zvcm1zLmh0
bWwKQEAgLTkwLDcgKzkwLDggQEAKIAogICAgIHJ1bkFuaW1hdGlvblRlc3QoZXhwZWN0ZWRWYWx1
ZXMsIGZ1bmN0aW9uKCkgewogICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAg
ICAgaWYgKHRlc3RSdW5uZXIucGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoImFu
aW01IiwgMC4xLCAiYm94NSIpKQorICAgICAgICAgIHZhciBib3g1RWxlbWVudCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdib3g1Jyk7CisgICAgICAgICAgaWYgKGludGVybmFscy5wYXVzZUFu
aW1hdGlvbkF0VGltZU9uRWxlbWVudCgiYW5pbTUiLCAwLjEsIGJveDVFbGVtZW50KSkKICAgICAg
ICAgICAgICAgcmVzdWx0ICs9ICJGQUlMIC0gYm94NSBhbmltYXRpb24gd2FzIHJ1bm5pbmc8YnI+
IjsKICAgICAgICAgICBlbHNlIAogICAgICAgICAgICAgICByZXN1bHQgKz0gIlBBU1MgLSBib3g1
IGFuaW1hdGlvbiB3YXMgbm90IHJ1bm5pbmc8YnI+IjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FuaW1hdGlvbnMvbWlzc2luZy1mcm9tLXRvLmh0bWwgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L21pc3NpbmctZnJvbS10by5odG1sCmluZGV4IDhmYWM2MDg0NTY3YWRlNDU3ZTEyNjlhN2YxOGY4
MzE4ZjFkZjQ5MTkuLjg1MTcwN2YyNGRjN2Y3ZjQ5Mjk1OTk2MmE0Nzk3YzJmMjVhOWRlNzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FuaW1hdGlvbnMvbWlzc2luZy1mcm9tLXRvLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9taXNzaW5nLWZyb20tdG8uaHRtbApAQCAtODksNyAr
ODksOCBAQAogCiAgICAgcnVuQW5pbWF0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgZnVuY3Rpb24o
KSB7CiAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICBpZiAodGVzdFJ1
bm5lci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgiYW5pbTUiLCAwLjEsICJi
b3g1IikpCisgICAgICAgICAgdmFyIGJveDVFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2JveDUnKTsKKyAgICAgICAgICBpZiAoaW50ZXJuYWxzLnBhdXNlQW5pbWF0aW9uQXRUaW1l
T25FbGVtZW50KCJhbmltNSIsIDAuMSwgYm94NUVsZW1lbnQpKQogICAgICAgICAgICAgICByZXN1
bHQgKz0gIkZBSUwgLSBib3g1IGFuaW1hdGlvbiB3YXMgcnVubmluZzxicj4iOwogICAgICAgICAg
IGVsc2UgCiAgICAgICAgICAgICAgIHJlc3VsdCArPSAiUEFTUyAtIGJveDUgYW5pbWF0aW9uIHdh
cyBub3QgcnVubmluZzxicj4iOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9y
ZXNvdXJjZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcyBiL0xheW91dFRlc3RzL2FuaW1hdGlv
bnMvcmVzb3VyY2VzL2FuaW1hdGlvbi10ZXN0LWhlbHBlcnMuanMKaW5kZXggM2E4MzgxYjE3YWY4
NjI4NzE0MWFiMTFiOGU0ZjRkOGU3OGM2OTY2NC4uMWE5N2FkOGNhZTgyZThiMjVmYzQ5ZGE0MmZl
NzUxZGM0ZDNhN2YxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvYW5pbWF0aW9ucy9yZXNvdXJj
ZXMvYW5pbWF0aW9uLXRlc3QtaGVscGVycy5qcworKysgYi9MYXlvdXRUZXN0cy9hbmltYXRpb25z
L3Jlc291cmNlcy9hbmltYXRpb24tdGVzdC1oZWxwZXJzLmpzCkBAIC0xOCw3ICsxOCw3IEBAIEZ1
bmN0aW9uIHBhcmFtZXRlcnM6CiAgICAgLSB0aGUgdG9sZXJhbmNlIHRvIHVzZSB3aGVuIGNvbXBh
cmluZyB0aGUgZWZmZWN0aXZlIENTUyBwcm9wZXJ0eSB2YWx1ZSB3aXRoIGl0cyBleHBlY3RlZCB2
YWx1ZQogCiAgICAgWzFdIElmIG51bGwgaXMgcGFzc2VkLCBhIHJlZ3VsYXIgc2V0VGltZW91dCgp
IHdpbGwgYmUgdXNlZCBpbnN0ZWFkIHRvIHNuYXBzaG90IHRoZSBhbmltYXRlZCBwcm9wZXJ0eSBp
biB0aGUgZnV0dXJlLAotICAgIGluc3RlYWQgb2YgZmFzdCBmb3J3YXJkaW5nIHVzaW5nIHRoZSBw
YXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgpIEpTIEFQSSBmcm9tIERSVAorICAg
IGluc3RlYWQgb2YgZmFzdCBmb3J3YXJkaW5nIHVzaW5nIHRoZSBwYXVzZUFuaW1hdGlvbkF0VGlt
ZU9uRWxlbWVudCgpIEpTIEFQSSBmcm9tIEludGVybmFscy4KICAgICAKICAgICBbMl0gSWYgYSBz
aW5nbGUgc3RyaW5nIGlzIHBhc3NlZCwgaXQgaXMgdGhlIGlkIG9mIHRoZSBlbGVtZW50IHRvIHRl
c3QuIElmIGFuIGFycmF5IHdpdGggMiBlbGVtZW50cyBpcyBwYXNzZWQgdGhleQogICAgIGFyZSB0
aGUgaWRzIG9mIDIgZWxlbWVudHMsIHdob3NlIHZhbHVlcyBhcmUgY29tcGFyZWQgZm9yIGVxdWFs
aXR5LiBJbiB0aGlzIGNhc2UgdGhlIGV4cGVjdGVkIHZhbHVlIGlzIGlnbm9yZWQKQEAgLTI0MCwx
MiArMjQwLDEyIEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZShleHBlY3RlZCwgaW5kZXgp
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoYW5pbWF0aW9uTmFtZSAmJiBoYXNQYXVzZUFu
aW1hdGlvbkFQSSAmJiAhdGVzdFJ1bm5lci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdp
dGhJZChhbmltYXRpb25OYW1lLCB0aW1lLCBlbGVtZW50SWQpKSB7CisgICAgaWYgKGFuaW1hdGlv
bk5hbWUgJiYgaGFzUGF1c2VBbmltYXRpb25BUEkgJiYgIWludGVybmFscy5wYXVzZUFuaW1hdGlv
bkF0VGltZU9uRWxlbWVudChhbmltYXRpb25OYW1lLCB0aW1lLCBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpKSkgewogICAgICAgICByZXN1bHQgKz0gIkZBSUwgLSBhbmltYXRpb24g
XCIiICsgYW5pbWF0aW9uTmFtZSArICJcIiBpcyBub3QgcnVubmluZyIgKyAiPGJyPiI7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgaWYgKGNvbXBhcmVFbGVtZW50cyAmJiAhZWxl
bWVudDJTdGF0aWMgJiYgYW5pbWF0aW9uTmFtZSAmJiBoYXNQYXVzZUFuaW1hdGlvbkFQSSAmJiAh
dGVzdFJ1bm5lci5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZChhbmltYXRpb25O
YW1lLCB0aW1lLCBlbGVtZW50SWQyKSkgeworICAgIGlmIChjb21wYXJlRWxlbWVudHMgJiYgIWVs
ZW1lbnQyU3RhdGljICYmIGFuaW1hdGlvbk5hbWUgJiYgaGFzUGF1c2VBbmltYXRpb25BUEkgJiYg
IWludGVybmFscy5wYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudChhbmltYXRpb25OYW1lLCB0
aW1lLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQyKSkpIHsKICAgICAgICAgcmVz
dWx0ICs9ICJGQUlMIC0gYW5pbWF0aW9uIFwiIiArIGFuaW1hdGlvbk5hbWUgKyAiXCIgaXMgbm90
IHJ1bm5pbmciICsgIjxicj4iOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzkwLDcgKzM5
MCw3IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdChleHBlY3RlZCwgY2FsbGJhY2spCiAgICAgICAgIHZh
ciB0aW1lID0gZXhwZWN0ZWRbaV1bMV07CiAKICAgICAgICAgLy8gV2UgY2FuIG9ubHkgdXNlIHRo
ZSBhbmltYXRpb24gZmFzdC1mb3J3YXJkIG1lY2hhbmlzbSBpZiB0aGVyZSdzIGFuIGFuaW1hdGlv
biBuYW1lCi0gICAgICAgIC8vIGFuZCBEUlQgaW1wbGVtZW50cyBwYXVzZUFuaW1hdGlvbkF0VGlt
ZU9uRWxlbWVudFdpdGhJZCgpCisgICAgICAgIC8vIGFuZCBJbnRlcm5hbHMgaW1wbGVtZW50cyBw
YXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudCgpCiAgICAgICAgIGlmIChhbmltYXRpb25OYW1l
ICYmIGhhc1BhdXNlQW5pbWF0aW9uQVBJKQogICAgICAgICAgICAgY2hlY2tFeHBlY3RlZFZhbHVl
KGV4cGVjdGVkLCBpKTsKICAgICAgICAgZWxzZSB7CkBAIC00MTIsNyArNDEyLDcgQEAgdmFyIGhh
c1BhdXNlQW5pbWF0aW9uQVBJOwogCiBmdW5jdGlvbiBydW5BbmltYXRpb25UZXN0KGV4cGVjdGVk
LCBjYWxsYmFjaywgZXZlbnQsIGRpc2FibGVQYXVzZUFuaW1hdGlvbkFQSSwgZG9QaXhlbFRlc3Qp
CiB7Ci0gICAgaGFzUGF1c2VBbmltYXRpb25BUEkgPSAoJ3Rlc3RSdW5uZXInIGluIHdpbmRvdykg
JiYgKCdwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCcgaW4gdGVzdFJ1bm5lcik7
CisgICAgaGFzUGF1c2VBbmltYXRpb25BUEkgPSAnaW50ZXJuYWxzJyBpbiB3aW5kb3c7CiAgICAg
aWYgKGRpc2FibGVQYXVzZUFuaW1hdGlvbkFQSSkKICAgICAgICAgaGFzUGF1c2VBbmltYXRpb25B
UEkgPSBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL3RyYW5zaXRp
b25zLWRlcGVuZGVudC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL3RyYW5zaXRpb25zLWRl
cGVuZGVudC5odG1sCmluZGV4IDcxZWU0ZmZkZTgzNTRkZDcwYmUyZGVlMmY1MTg1M2U3ZDAyM2U2
NTIuLjZmNGU1NDQxZDk5NGY3MGFkNWEzMmJkZjNiNThjN2M4YTdjMTFiNzcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2NzczMvY2FsYy90cmFuc2l0aW9ucy1kZXBlbmRlbnQuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9jc3MzL2NhbGMvdHJhbnNpdGlvbnMtZGVwZW5kZW50Lmh0bWwKQEAgLTczLDkg
KzczLDkgQEAgZnVuY3Rpb24gcnVuVGVzdChleHBlY3RlZCkKICAgICAgICAgdmFyIHByb3BlcnR5
ID0gZXhwZWN0ZWRbaV1bMl07CiAgICAgICAgIHZhciBleHBlY3RlZFZhbHVlID0gZXhwZWN0ZWRb
aV1bM107CiAgICAgICAgIHZhciBkZXBlbmRzT24gPSBleHBlY3RlZFtpXVs0XTsKLSAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5w
YXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQocHJvcGVydHksIHRpbWUsIGRlcGVu
ZHNPbik7Ci0gICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5wYXVzZVRyYW5zaXRpb25BdFRp
bWVPbkVsZW1lbnRXaXRoSWQocHJvcGVydHksIHRpbWUsIGVsZW1lbnRJZCk7CisgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBpbnRlcm5hbHMucGF1c2VUcmFuc2l0
aW9uQXRUaW1lT25FbGVtZW50KHByb3BlcnR5LCB0aW1lLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChkZXBlbmRzT24pKTsKKyAgICAgICAgICAgIGludGVybmFscy5wYXVzZVRyYW5zaXRpb25BdFRp
bWVPbkVsZW1lbnQocHJvcGVydHksIHRpbWUsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1l
bnRJZCkpOwogICAgICAgICAgICAgdmFyIGFjdHVhbCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCkpLmdldFByb3BlcnR5Q1NTVmFsdWUo
cHJvcGVydHkpLmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUuQ1NTX05VTUJFUik7CiAg
ICAgICAgICAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIp
OwogICAgICAgICAgICAgaWYgKGFjdHVhbCA9PSBleHBlY3RlZFZhbHVlKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3RyYW5zaXRpb24tb24tc2hhZG93LWhvc3Qtd2l0
aC1kaXN0cmlidXRlZC1ub2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdHJh
bnNpdGlvbi1vbi1zaGFkb3ctaG9zdC13aXRoLWRpc3RyaWJ1dGVkLW5vZGUuaHRtbAppbmRleCA4
ZTJiOTg4NGJiMDRmMGYwNzI0Njc5Njg2MzUzMGM1OTdjYzJkNDVlLi5mYzlkMzkzMjUxODU3M2Mx
YjgzZDAxYWNmYzg5YjM1ZjcxYThkNDEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9zaGFkb3cvdHJhbnNpdGlvbi1vbi1zaGFkb3ctaG9zdC13aXRoLWRpc3RyaWJ1dGVkLW5vZGUu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvdHJhbnNpdGlvbi1vbi1zaGFk
b3ctaG9zdC13aXRoLWRpc3RyaWJ1dGVkLW5vZGUuaHRtbApAQCAtNDIsNyArNDIsNyBAQCBydW5U
cmFuc2l0aW9uVGVzdChleHBlY3RlZFZhbHVlcywgc2V0dXBUZXN0LCB1c2VQYXVzZUFQSSk7CiA8
Ym9keT4KICAgICA8IS0tIFRlc3QgZm9yIFtidWcgOTM3NTVdIFNoYWRvd1Jvb3QgaW5zZXJ0aW9u
IHBvaW50IGNoYW5nZSBhYm9ydHMgY3NzIHRyYW5zaXRpb24sIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05Mzc1NSAtLT4KICAgICA8IS0tIElmIHRoaXMgdGVzdCBwYXNz
LCBjc3MgdHJhbnNpdGlvbiB3aWxsIGJlIHN0YXJ0ZWQgYW5kIC0tPgotICAgIDwhLS0gdGhlIGNz
cyB0cmFuc2l0aW9uIHdpbGwgYmUgcGF1c2VkIGJ5IHVzaW5nIHBhdXNlVHJhbnNpdGlvbkF0VGlt
ZU9uRWxlbWVudFdpdGhJZC4gLS0+CisgICAgPCEtLSB0aGUgY3NzIHRyYW5zaXRpb24gd2lsbCBi
ZSBwYXVzZWQgYnkgdXNpbmcgcGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50LiAtLT4KICAg
ICA8ZGl2IGlkPSJib3giIGNsYXNzPSJib3giIHN0eWxlPSJiYWNrZ3JvdW5kOiBncmVlbjsiPgog
ICAgICAgICA8ZGl2PkNvbnRlbnQ8L2Rpdj4KICAgICAgICAgPGRpdj5OZXcgQ29udGVudDwvZGl2
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvb3BhY2l0eS10cmFuc2l0aW9u
LXppbmRleC5odG1sIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvb3BhY2l0eS10cmFuc2l0aW9u
LXppbmRleC5odG1sCmluZGV4IGZkNjc1MTNhM2UzOTRhZTQ5NzAzYjE1NDU3MzZiNGFjYzljNjdh
YTUuLmJjNmRkODZjZWZiMWY0YmMxNjM0YzBhOTk5ZGY4NWQ2MmE4NjQ1YzAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL29wYWNpdHktdHJhbnNpdGlvbi16aW5kZXguaHRtbAor
KysgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy9vcGFjaXR5LXRyYW5zaXRpb24temluZGV4Lmh0
bWwKQEAgLTQ3LDEyICs0NywxMiBAQAogICAgICAgY29udGFpbmVyLnN0eWxlLm9wYWNpdHkgPSAx
OwogICAgICAgCiAgICAgICAvLyBkdW1wIHRoZSB0cmVlIGluIHRoZSBtaWRkbGUgb2YgdGhlIHRy
YW5zaXRpb24KLSAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICBpZiAodGVz
dFJ1bm5lci5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQpCi0gICAgICAgICAg
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRlc3RSdW5uZXIucGF1c2VUcmFuc2l0aW9u
QXRUaW1lT25FbGVtZW50V2l0aElkKCJvcGFjaXR5IiwgMi41LCAiZmlyc3QiKTsgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7IH0sIDApOwotICAgICAgICBlbHNlCi0gICAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyB9LCAyNTAwKTsK
LSAgICAgIH0KKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgd2luZG93LnNl
dFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAgdmFyIGZpcnN0RWxlbWVudCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdmaXJzdCcpOworICAgICAgICAgIGludGVybmFscy5wYXVzZVRy
YW5zaXRpb25BdFRpbWVPbkVsZW1lbnQoIm9wYWNpdHkiLCAyLjUsIGZpcnN0KTsKKyAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfSwgMCk7CiAgICAgfQogICAgIC8v
IEZJWE1FOiB0aGlzIHNob3VsZCB1c2UgcnVuVHJhbnNpdGlvblRlc3QoKS4KICAgICB3aW5kb3cu
YWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3RyYW5zaXRpb25zL3Jlc291cmNlcy90cmFuc2l0aW9uLXRlc3QtaGVscGVycy5q
cyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Jlc291cmNlcy90cmFuc2l0aW9uLXRlc3QtaGVs
cGVycy5qcwppbmRleCA0YTQ5NzFkOTNjOWJlMzZkMDhmODgyNjBiMTNkYmU3MzAxOGY4ZWI3Li43
OTM0NjBlNTg5NDU2MGU1NTA5MGY0MzgyY2IzMzVjMzFmZjZmMzBjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy90cmFuc2l0aW9ucy9yZXNvdXJjZXMvdHJhbnNpdGlvbi10ZXN0LWhlbHBlcnMuanMK
KysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvcmVzb3VyY2VzL3RyYW5zaXRpb24tdGVzdC1o
ZWxwZXJzLmpzCkBAIC0yMzMsMTAgKzIzMywxMCBAQCBmdW5jdGlvbiBydW5UZXN0KGV4cGVjdGVk
LCB1c2VQYXVzZUFQSSkKICAgICAgICAgaWYgKHRyeVRvUGF1c2VUcmFuc2l0aW9uID09PSB1bmRl
ZmluZWQpCiAgICAgICAgICAgdHJ5VG9QYXVzZVRyYW5zaXRpb24gPSBzaG91bGRCZVRyYW5zaXRp
b25pbmc7CiAKLSAgICAgICAgLy8gV2UgY2FuIG9ubHkgdXNlIHRoZSB0cmFuc2l0aW9uIGZhc3Qt
Zm9yd2FyZCBtZWNoYW5pc20gaWYgRFJUIGltcGxlbWVudHMgcGF1c2VUcmFuc2l0aW9uQXRUaW1l
T25FbGVtZW50V2l0aElkKCkKICAgICAgICAgaWYgKGhhc1BhdXNlVHJhbnNpdGlvbkFQSSAmJiB1
c2VQYXVzZUFQSSkgewogICAgICAgICAgICAgaWYgKHRyeVRvUGF1c2VUcmFuc2l0aW9uKSB7Ci0g
ICAgICAgICAgICAgIGlmICghdGVzdFJ1bm5lci5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1l
bnRXaXRoSWQocHJvcGVydHksIHRpbWUsIGVsZW1lbnRJZCkpCisgICAgICAgICAgICAgIHZhciBl
bGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKTsKKyAgICAgICAgICAg
ICAgaWYgKCFpbnRlcm5hbHMucGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50KHByb3BlcnR5
LCB0aW1lLCBlbGVtZW50KSkKICAgICAgICAgICAgICAgICB3aW5kb3cuY29uc29sZS5sb2coIkZh
aWxlZCB0byBwYXVzZSAnIiArIHByb3BlcnR5ICsgIicgdHJhbnNpdGlvbiBvbiBlbGVtZW50ICci
ICsgZWxlbWVudElkICsgIiciKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGNoZWNrRXhw
ZWN0ZWRWYWx1ZShleHBlY3RlZCwgaSk7CkBAIC0yODEsNyArMjgxLDcgQEAgdmFyIGhhc1BhdXNl
VHJhbnNpdGlvbkFQSTsKIAogZnVuY3Rpb24gcnVuVHJhbnNpdGlvblRlc3QoZXhwZWN0ZWQsIGNh
bGxiYWNrLCB1c2VQYXVzZUFQSSwgZG9QaXhlbFRlc3QpCiB7Ci0gICAgaGFzUGF1c2VUcmFuc2l0
aW9uQVBJID0gKCd0ZXN0UnVubmVyJyBpbiB3aW5kb3cpICYmICgncGF1c2VUcmFuc2l0aW9uQXRU
aW1lT25FbGVtZW50V2l0aElkJyBpbiB0ZXN0UnVubmVyKTsKKyAgICBoYXNQYXVzZVRyYW5zaXRp
b25BUEkgPSAnaW50ZXJuYWxzJyBpbiB3aW5kb3c7CiAgICAgCiAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgICAgIGlmICghZG9QaXhlbFRlc3QpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWRydC1hcGktZGVsYXkuaHRtbCBiL0xheW91dFRl
c3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHJ0LWFwaS1kZWxheS5odG1sCmluZGV4IGU4MjQy
MjcwODQwMmM2NTkyODY0YTQxZDU3ZTBlMTkzODVkMDQ0N2MuLjAxZDgwOTdkYTkyYzViNzk2ZDdj
NzZmNDQzZjUzNTZjNGViYjdlYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25z
L3RyYW5zaXRpb24tZHJ0LWFwaS1kZWxheS5odG1sCisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRp
b25zL3RyYW5zaXRpb24tZHJ0LWFwaS1kZWxheS5odG1sCkBAIC0yMyw4ICsyMyw5IEBACiAgICA8
c2NyaXB0PgogICAgIGZ1bmN0aW9uIGVuZFRlc3QoKSB7CiAgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1l
bnRXaXRoSWQoImxlZnQiLCAyLjAsICJ0YXJnZXQiKTsKLSAgICAgICAgdmFyIGxlZnQgPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykpLmxl
ZnQ7CisgICAgICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0
Jyk7CisgICAgICAgIGludGVybmFscy5wYXVzZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnQoImxl
ZnQiLCAyLjAsIHRhcmdldCk7CisgICAgICAgIHZhciBsZWZ0ID0gd2luZG93LmdldENvbXB1dGVk
U3R5bGUodGFyZ2V0KS5sZWZ0OwogICAgICAgICB2YXIgcmVzdWx0ID0gIlBBU1MiOwogICAgICAg
ICBpZiAobGVmdCAhPSAiMTI1cHgiKSB7CiAgICAgICAgICAgcmVzdWx0ID0gIkZBSUwgLSBleHBl
Y3RlZCAxMjVweCBnb3QgIiArIGxlZnQ7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWRydC1hcGkuaHRtbCBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3Ry
YW5zaXRpb24tZHJ0LWFwaS5odG1sCmluZGV4IDFiYmQ0NzM0YWM3MGQ3NDA2YzMwYmM0MjIwM2M2
YWJiN2JmOTIxZDQuLjE1YzMwZjA4OTk5YjM1NTNmYjk0NGFhM2VhNGIxNDRjNDE3OTcxMTcgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHJ0LWFwaS5odG1s
CisrKyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24tZHJ0LWFwaS5odG1sCkBA
IC0yNCw3ICsyNCw4IEBACiAKICAgICBmdW5jdGlvbiBlbmRUZXN0KCkgewogICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHZhciBwYXVzZWQgPSB0ZXN0UnVubmVyLnBhdXNl
VHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudFdpdGhJZCgibGVmdCIsIDEuMCwgInRhcmdldCIpOwor
ICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOwor
ICAgICAgICB2YXIgcGF1c2VkID0gaW50ZXJuYWxzLnBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxl
bWVudCgibGVmdCIsIDEuMCwgdGFyZ2V0KTsKICAgICAgICAgdmFyIHJlc3VsdCA9ICIiOwogICAg
ICAgICBpZiAocGF1c2VkKQogICAgICAgICAgIHJlc3VsdCA9ICJQQVNTOiBjb3JyZWN0bHkgcGF1
c2VkIHRyYW5zaXRpb24iOwpAQCAtNDcsNyArNDgsNyBAQAogICAgPC9zY3JpcHQ+CiA8L2hlYWQ+
CiA8Ym9keSBvbmxvYWQ9InN0YXJ0VGVzdCgpIj4KLSAgPCEtLSBUZXN0IGZvciBEUlQgcGF1c2VU
cmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCkgQVBJIC0tPgorICA8IS0tIFRlc3QgZm9y
IEludGVyYWxzIHBhdXNlVHJhbnNpdGlvbkF0VGltZU9uRWxlbWVudCgpIEFQSSAtLT4KICAgPGRp
diBpZD0idGFyZ2V0Ij48L2Rpdj4KICAgPGRpdiBpZD0icmVzdWx0cyI+PC9kaXY+CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24taGl0LXRlc3QtdHJhbnNm
b3JtLmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0aW9uLWhpdC10ZXN0LXRy
YW5zZm9ybS5odG1sCmluZGV4IDNjN2I0YTgyMDA3Y2E1YmQ4MDliMmM0YTE1Mzg2ODE0MTkzNzIx
YjguLjFjMGEwMzViNjhiNjNmOTAyMTY5NDE4OTljZGU1NmIyOTNjMmYwMzEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24taGl0LXRlc3QtdHJhbnNmb3JtLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1oaXQtdGVzdC10cmFu
c2Zvcm0uaHRtbApAQCAtNDgsNyArNDgsOCBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQog
ICAgICAgICB7CiAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
ICAgICAgICBpZiAoIXRlc3RSdW5uZXIucGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0
aElkKCItd2Via2l0LXRyYW5zZm9ybSIsIDIuMCwgInRhcmdldCIpKQorICAgICAgICAgICAgICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CisgICAgICAg
ICAgICAgICAgaWYgKCFpbnRlcm5hbHMucGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50KCIt
d2Via2l0LXRyYW5zZm9ybSIsIDIuMCwgdGFyZ2V0KSkKICAgICAgICAgICAgICAgICAgICAgdGhy
b3coIlRyYW5zaXRpb24gaXMgbm90IHJ1bm5pbmciKTsKICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgY2hlY2tSZXN1bHRzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90
cmFuc2l0aW9uLWhpdC10ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy90cmFuc2l0aW9ucy90cmFuc2l0
aW9uLWhpdC10ZXN0Lmh0bWwKaW5kZXggMGQxY2UxYTc5Y2YyYTlmZTZlZDg3OTM5ZDA5YTkxZjBh
NDAyODBjOC4uODk3YTUxOThmYzhkOTFiMzc3ODZkOTY4MzE1MTQzNDQ0MWVmYTM5YSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1oaXQtdGVzdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL3RyYW5zaXRpb25zL3RyYW5zaXRpb24taGl0LXRlc3QuaHRtbApAQCAt
NDYsNyArNDYsOCBAQAogICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgICAgICAgICBpZiAoIXRl
c3RSdW5uZXIucGF1c2VUcmFuc2l0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKCJsZWZ0IiwgMi4w
LCAidGFyZ2V0IikpCisgICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgICAgICAgICBpZiAoIWludGVybmFscy5wYXVz
ZVRyYW5zaXRpb25BdFRpbWVPbkVsZW1lbnQoImxlZnQiLCAyLjAsIHRhcmdldCkpCiAgICAgICAg
ICAgICAgICAgICAgIHRocm93KCJUcmFuc2l0aW9uIGlzIG5vdCBydW5uaW5nIik7CiAgICAgICAg
IAogICAgICAgICAgICAgICAgIGNoZWNrUmVzdWx0cygpOwo=
</data>
<flag name="review"
          id="206577"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>