<?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>66258</bug_id>
          
          <creation_ts>2011-08-15 15:20:37 -0700</creation_ts>
          <short_desc>ScrollAnimatorNone coasting implementation</short_desc>
          <delta_ts>2011-08-23 18:37:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Scott Byer">scottbyer</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>jamesr</cc>
    
    <cc>sam</cc>
    
    <cc>scottbyer</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>451321</commentid>
    <comment_count>0</comment_count>
    <who name="Scott Byer">scottbyer</who>
    <bug_when>2011-08-15 15:20:37 -0700</bug_when>
    <thetext>ScrollAnimatorNone coasting implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>451355</commentid>
    <comment_count>1</comment_count>
      <attachid>103972</attachid>
    <who name="Scott Byer">scottbyer</who>
    <bug_when>2011-08-15 16:06:41 -0700</bug_when>
    <thetext>Created attachment 103972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453189</commentid>
    <comment_count>2</comment_count>
      <attachid>104371</attachid>
    <who name="Scott Byer">scottbyer</who>
    <bug_when>2011-08-18 11:34:17 -0700</bug_when>
    <thetext>Created attachment 104371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453191</commentid>
    <comment_count>3</comment_count>
    <who name="Scott Byer">scottbyer</who>
    <bug_when>2011-08-18 11:36:49 -0700</bug_when>
    <thetext>Rebased. James, if you have a chance, could you review this? It&apos;s slightly big, but is mostly tests. As always, feel free to point me at someone else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453223</commentid>
    <comment_count>4</comment_count>
      <attachid>104378</attachid>
    <who name="Scott Byer">scottbyer</who>
    <bug_when>2011-08-18 12:02:11 -0700</bug_when>
    <thetext>Created attachment 104378
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453243</commentid>
    <comment_count>5</comment_count>
      <attachid>104378</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-18 12:26:25 -0700</bug_when>
    <thetext>Comment on attachment 104378
Patch

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

&gt; Source/WebCore/platform/ScrollAnimatorNone.cpp:141
&gt; +        double t1 = std::min(t, 1 / 2.75);

In WebKit, we prefer to put a &apos;using namespace std&apos; at the top of the file and use the name unqualified.

Where are all of these magical numbers coming from?  Is it possible to give them useful symbolic names? They seem a little precise to be completely arbitrary.

&gt; Source/WebKit/chromium/tests/ScrollAnimatorNoneTest.cpp:416
&gt; +    for (double t = .25 ; t &lt; 1 ; t += .25) {

nit: odd spacing here, i wouldn&apos;t expect a space before the ;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>453494</commentid>
    <comment_count>6</comment_count>
      <attachid>104425</attachid>
    <who name="Scott Byer">scottbyer</who>
    <bug_when>2011-08-18 16:55:07 -0700</bug_when>
    <thetext>Created attachment 104425
Address review comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455716</commentid>
    <comment_count>7</comment_count>
    <who name="Scott Byer">scottbyer</who>
    <bug_when>2011-08-23 14:33:50 -0700</bug_when>
    <thetext>PTAL, I&apos;ve cleaned up the style issues and rebased. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455876</commentid>
    <comment_count>8</comment_count>
      <attachid>104425</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-23 17:38:43 -0700</bug_when>
    <thetext>Comment on attachment 104425
Address review comments

Looks great, thanks for explaining some of the math in comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455918</commentid>
    <comment_count>9</comment_count>
      <attachid>104425</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-23 18:37:03 -0700</bug_when>
    <thetext>Comment on attachment 104425
Address review comments

Clearing flags on attachment: 104425

Committed r93682: &lt;http://trac.webkit.org/changeset/93682&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>455919</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-23 18:37:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>103972</attachid>
            <date>2011-08-15 16:06:41 -0700</date>
            <delta_ts>2011-08-18 11:34:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66258-20110815160640.patch</filename>
            <type>text/plain</type>
            <size>52155</size>
            <attacher name="Scott Byer">scottbyer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMwNTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMTE5M2M1OWVmODQ4MmFl
ZDA5MjdhMTk5YTlhMjZlYmJmZDE4ZjBlLi4wOTBmODhkYmM3NjhiMzgyZjdmNjliOWQxYmZmMDk4
OTFlYjFmZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDgtMTUgIFNjb3R0
IEJ5ZXIgIDxzY290dGJ5ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZSBjb2FzdGluZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNTgKKworICAgICAgICBJbmNyZWFzZSB0aGUgYW5pbWF0
aW9uIHRpbWUgYmFzZWQgb24gdGhlIHZlbG9jaXR5IG9mIHRoZSBzY3JvbGwsIHVwIHRvIGEKKyAg
ICAgICAgbWF4aW11bSBhbW91bnQuIEZpeCBidWdzIGZvdW5kIGJ5IGFkZGl0aW9uYWwgdW5pdCB0
ZXN0aW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGl0aW9uYWwgdGVzdHMgaW4gU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDogQ3VydmVNYXRoUXVh
cnRpYywgQ3VydmVNYXRoQ29hc3QsCisgICAgICAgIFNjcm9sbE9uY2VRdWFydGljLCBTY3JvbGxU
d2ljZUN1YmljLCBTY3JvbGxMb3RzQ3ViaWMsIFNjcm9sbExvdHNDdWJpY1Ntb290aGVkLAorICAg
ICAgICBTY3JvbGxVcFRvQnVtcGVyQ29hc3QsIFNjcm9sbERvd25Ub0J1bXBlckNvYXN0LCBWYXJ5
aW5nSW5wdXRzRXF1aXZhbGVuY3ksCisgICAgICAgIFZhcnlpbmdJbnB1dHNFcXVpdmFsZW5jeUNv
YXN0LCBWYXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3lDb2FzdExhcmdlLAorICAgICAgICBWYXJ5aW5n
SW5wdXRzRXF1aXZhbGVuY3lDb2FzdFN0ZWVwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxB
bmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlQXQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y29hc3RDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZUludGVncmFsQXQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6YXR0YWNrQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxl
YXNlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNE
YXRhOjpQZXJBeGlzRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6
OlBlckF4aXNEYXRhOjp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlVmlzaWJsZUxlbmd0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlNjcm9sbEFuaW1hdG9yTm9u
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OndpbGxFbmRMaXZlUmVzaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6ZGlkQWRkVmVydGljYWxTY3JvbGxi
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6dXBk
YXRlVmlzaWJsZUxlbmd0aHMpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5oOgorCiAyMDExLTA4LTE1ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVcGRhdGUgcGFnZXMnIHN0eWxlIGFuZCBjb250ZW50IHNjYWxlIHdoZW4gdGhlIHdpbmRv
dydzIGJhY2tpbmcgc2NhbGUgZmFjdG9yIGNoYW5nZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCmluZGV4IGJkMmNlNTRmYWJjN2YzZGNkMWJmNjM3
ODE3NTdmM2YwM2UxNzYwMDAuLmRkYmE5YTNjZTFmOWFhYjY2MDk5NDYxMWI5NmIyZTc5ZjU5ZWY1
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNw
cApAQCAtNjQsNyArNjQsNyBAQCBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnM6OlBhcmFt
ZXRlcnMoKQogewogfQogCi1TY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnM6OlBhcmFtZXRl
cnMoYm9vbCBpc0VuYWJsZWQsIGRvdWJsZSBhbmltYXRpb25UaW1lLCBkb3VibGUgcmVwZWF0TWlu
aW11bVN1c3RhaW5UaW1lLCBDdXJ2ZSBhdHRhY2tDdXJ2ZSwgZG91YmxlIGF0dGFja1RpbWUsIEN1
cnZlIHJlbGVhc2VDdXJ2ZSwgZG91YmxlIHJlbGVhc2VUaW1lKQorU2Nyb2xsQW5pbWF0b3JOb25l
OjpQYXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKGJvb2wgaXNFbmFibGVkLCBkb3VibGUgYW5pbWF0aW9u
VGltZSwgZG91YmxlIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSwgQ3VydmUgYXR0YWNrQ3VydmUs
IGRvdWJsZSBhdHRhY2tUaW1lLCBDdXJ2ZSByZWxlYXNlQ3VydmUsIGRvdWJsZSByZWxlYXNlVGlt
ZSwgQ3VydmUgY29hc3RUaW1lQ3VydmUsIGRvdWJsZSBtYXhpbXVtQ29hc3RUaW1lKQogICAgIDog
bV9pc0VuYWJsZWQoaXNFbmFibGVkKQogICAgICwgbV9hbmltYXRpb25UaW1lKGFuaW1hdGlvblRp
bWUpCiAgICAgLCBtX3JlcGVhdE1pbmltdW1TdXN0YWluVGltZShyZXBlYXRNaW5pbXVtU3VzdGFp
blRpbWUpCkBAIC03Miw2ICs3Miw4IEBAIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVyczo6
UGFyYW1ldGVycyhib29sIGlzRW5hYmxlZCwgZG91YmxlIGFuaW1hdGlvblRpbWUsCiAgICAgLCBt
X2F0dGFja1RpbWUoYXR0YWNrVGltZSkKICAgICAsIG1fcmVsZWFzZUN1cnZlKHJlbGVhc2VDdXJ2
ZSkKICAgICAsIG1fcmVsZWFzZVRpbWUocmVsZWFzZVRpbWUpCisgICAgLCBtX2NvYXN0VGltZUN1
cnZlKGNvYXN0VGltZUN1cnZlKQorICAgICwgbV9tYXhpbXVtQ29hc3RUaW1lKG1heGltdW1Db2Fz
dFRpbWUpCiB7CiB9CiAKQEAgLTc5LDEwICs4MSwxMiBAQCBkb3VibGUgU2Nyb2xsQW5pbWF0b3JO
b25lOjpQZXJBeGlzRGF0YTo6Y3VydmVBdChDdXJ2ZSBjdXJ2ZSwgZG91YmxlIHQpCiB7CiAgICAg
c3dpdGNoIChjdXJ2ZSkgewogICAgIGNhc2UgTGluZWFyOgotICAgICAgICByZXR1cm4gdCAqIHQ7
CisgICAgICAgIHJldHVybiB0OwogICAgIGNhc2UgUXVhZHJhdGljOgotICAgICAgICByZXR1cm4g
dCAqIHQgKiB0OworICAgICAgICByZXR1cm4gdCAqIHQ7CiAgICAgY2FzZSBDdWJpYzoKKyAgICAg
ICAgcmV0dXJuIHQgKiB0ICogdDsKKyAgICBjYXNlIFF1YXJ0aWM6CiAgICAgICAgIHJldHVybiB0
ICogdCAqIHQgKiB0OwogICAgIGNhc2UgQm91bmNlOgogICAgICAgICBpZiAodCA8IDEgLyAyLjc1
KQpAQCAtOTgsNiArMTAyLDggQEAgZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0Rh
dGE6OmN1cnZlQXQoQ3VydmUgY3VydmUsIGRvdWJsZSB0KQogICAgICAgICB0IC09IDIuNjI1IC8g
Mi43NTsKICAgICAgICAgcmV0dXJuIDcuNTYyNSAqIHQgKiB0ICsgLjk4NDM3NTsKICAgICB9Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7CiB9CiAKIGRvdWJsZSBTY3Jv
bGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjphdHRhY2tDdXJ2ZShDdXJ2ZSBjdXJ2ZSwgZG91
YmxlIGRlbHRhVGltZSwgZG91YmxlIGN1cnZlVCwgZG91YmxlIHN0YXJ0UG9zaXRpb24sIGRvdWJs
ZSBhdHRhY2tQb3NpdGlvbikKQEAgLTExNCwyMiArMTIwLDY0IEBAIGRvdWJsZSBTY3JvbGxBbmlt
YXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxlYXNlQ3VydmUoQ3VydmUgY3VydmUsIGRvdWJsZSBk
ZWx0YVRpCiAgICAgcmV0dXJuIHJlbGVhc2VQb3NpdGlvbiArIChwb3NpdGlvbkZhY3RvciAqIChk
ZXNpcmVkUG9zaXRpb24gLSByZWxlYXNlUG9zaXRpb24pKTsKIH0KIAotZG91YmxlIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlRGVyaXZhdGl2ZUF0KEN1cnZlIGN1cnZlLCBk
b3VibGUgdCkKK2RvdWJsZSBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjb2FzdEN1
cnZlKEN1cnZlIGN1cnZlLCBkb3VibGUgZmFjdG9yKQoreworICAgIHJldHVybiAxIC0gY3VydmVB
dChjdXJ2ZSwgMSAtIGZhY3Rvcik7Cit9CisKK2RvdWJsZSBTY3JvbGxBbmltYXRvck5vbmU6OlBl
ckF4aXNEYXRhOjpjdXJ2ZUludGVncmFsQXQoQ3VydmUgY3VydmUsIGRvdWJsZSB0KQogewogICAg
IHN3aXRjaCAoY3VydmUpIHsKICAgICBjYXNlIExpbmVhcjoKLSAgICAgICAgcmV0dXJuIHQgKiAy
OworICAgICAgICByZXR1cm4gdCAqIHQgLyAyOwogICAgIGNhc2UgUXVhZHJhdGljOgotICAgICAg
ICByZXR1cm4gdCAqIHQgKiAzOworICAgICAgICByZXR1cm4gdCAqIHQgKiB0IC8gMzsKICAgICBj
YXNlIEN1YmljOgotICAgICAgICByZXR1cm4gdCAqIHQgKiB0ICogNDsKKyAgICAgICAgcmV0dXJu
IHQgKiB0ICogdCAqIHQgLyA0OworICAgIGNhc2UgUXVhcnRpYzoKKyAgICAgICAgcmV0dXJuIHQg
KiB0ICogdCAqIHQgKiB0IC8gNTsKICAgICBjYXNlIEJvdW5jZToKLSAgICAgICAgcmV0dXJuIHQ7
CisgICAgICAgIGRvdWJsZSBhcmVhOworICAgICAgICBkb3VibGUgdDEgPSBzdGQ6Om1pbih0LCAx
IC8gMi43NSk7CisgICAgICAgIGFyZWEgPSAyLjUyMDgzICogdDEgKiB0MSAqIHQxOworICAgICAg
ICBpZiAodCA8IDEgLyAyLjc1KQorICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgICAgIHQx
ID0gc3RkOjptaW4odCAtIDEgLyAyLjc1LCAxIC8gMi43NSk7CisgICAgICAgIGRvdWJsZSBib3Vu
Y2VBcmVhID0gdDEgKiAodDEgKiAoMi41MjA4MyAqIHQxIC0gMS4zNzUpICsgMSk7CisgICAgICAg
IGFyZWEgKz0gYm91bmNlQXJlYTsKKyAgICAgICAgaWYgKHQgPCAyIC8gMi43NSkKKyAgICAgICAg
ICAgIHJldHVybiBhcmVhOworICAgICAgICB0MSA9IHN0ZDo6bWluKHQgLSAyIC8gMi43NSwgMC41
IC8gMi43NSk7CisgICAgICAgIGJvdW5jZUFyZWEgPSAgdDEgKiAodDEgKiAoMi41MjA4MyAqIHQx
IC0gMC42ODc1KSArIDEpOworICAgICAgICBhcmVhICs9IGJvdW5jZUFyZWE7CisgICAgICAgIGlm
ICh0IDwgMi41IC8gMi43NSkKKyAgICAgICAgICAgIHJldHVybiBhcmVhOworICAgICAgICB0MSA9
IHQgLSAyLjUgLyAyLjc1OworICAgICAgICBib3VuY2VBcmVhID0gdDEgKiAodDEgKiAoMi41MjA4
MyAqIHQxIC0gMC4zNDM3NSkgKyAxKTsKKyAgICAgICAgYXJlYSArPSBib3VuY2VBcmVhOworICAg
ICAgICByZXR1cm4gYXJlYTsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
cmV0dXJuIDA7CiB9CiAKLVNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OlBlckF4aXNE
YXRhKFNjcm9sbEFuaW1hdG9yTm9uZSogcGFyZW50LCBmbG9hdCogY3VycmVudFBvc2l0aW9uKQor
ZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OmF0dGFja0FyZWEoQ3VydmUg
Y3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRUKQoreworICAgIGRvdWJsZSBzdGFydFZh
bHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCBzdGFydFQpOworICAgIGRvdWJsZSBlbmRWYWx1
ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgZW5kVCk7CisgICAgcmV0dXJuIGVuZFZhbHVlIC0g
c3RhcnRWYWx1ZTsKK30KKworZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6
OnJlbGVhc2VBcmVhKEN1cnZlIGN1cnZlLCBkb3VibGUgc3RhcnRULCBkb3VibGUgZW5kVCkKK3sK
KyAgICBkb3VibGUgc3RhcnRWYWx1ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgMSAtIGVuZFQp
OworICAgIGRvdWJsZSBlbmRWYWx1ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgMSAtIHN0YXJ0
VCk7CisgICAgcmV0dXJuIGVuZFZhbHVlIC0gc3RhcnRWYWx1ZTsKK30KKworU2Nyb2xsQW5pbWF0
b3JOb25lOjpQZXJBeGlzRGF0YTo6UGVyQXhpc0RhdGEoU2Nyb2xsQW5pbWF0b3JOb25lKiBwYXJl
bnQsIGZsb2F0KiBjdXJyZW50UG9zaXRpb24sIExheW91dFVuaXQgdmlzaWJsZUxlbmd0aCkKICAg
ICA6IG1fY3VycmVudFBvc2l0aW9uKGN1cnJlbnRQb3NpdGlvbikKKyAgICAsIG1fdmlzaWJsZUxl
bmd0aCh2aXNpYmxlTGVuZ3RoKQogewogICAgIHJlc2V0KCk7CiB9CkBAIC0xNjAsMTEgKzIwOCwy
NCBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OnJlc2V0KCkKIAogYm9v
bCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjp1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoU2Nyb2xsYmFyT3JpZW50YXRpb24gb3JpZW50YXRpb24sIGZsb2F0IHN0ZXAsIGZsb2F0IG11
bHRpcGxpZXIsIGZsb2F0IHNjcm9sbGFibGVTaXplLCBkb3VibGUgY3VycmVudFRpbWUsIFBhcmFt
ZXRlcnMqIHBhcmFtZXRlcnMpCiB7Ci0gICAgaWYgKHBhcmFtZXRlcnMtPm1fYW5pbWF0aW9uVGlt
ZSA+IG1fYW5pbWF0aW9uVGltZSkKLSAgICAgICAgbV9hbmltYXRpb25UaW1lID0gcGFyYW1ldGVy
cy0+bV9hbmltYXRpb25UaW1lOwotICAgIG1fYXR0YWNrVGltZSA9IHBhcmFtZXRlcnMtPm1fYXR0
YWNrVGltZTsKKyAgICBpZiAoIW1fc3RhcnRUaW1lKQorICAgICAgICBtX2Rlc2lyZWRQb3NpdGlv
biA9ICptX2N1cnJlbnRQb3NpdGlvbjsKKyAgICBmbG9hdCBuZXdQb3NpdGlvbiA9IG1fZGVzaXJl
ZFBvc2l0aW9uICsgKHN0ZXAgKiBtdWx0aXBsaWVyKTsKKworICAgIGlmIChuZXdQb3NpdGlvbiA8
IDAgfHwgbmV3UG9zaXRpb24gPiBzY3JvbGxhYmxlU2l6ZSkKKyAgICAgICAgbmV3UG9zaXRpb24g
PSBtYXgobWluKG5ld1Bvc2l0aW9uLCBzY3JvbGxhYmxlU2l6ZSksIDAuZik7CisKKyAgICBpZiAo
bmV3UG9zaXRpb24gPT0gbV9kZXNpcmVkUG9zaXRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIG1fZGVzaXJlZFBvc2l0aW9uID0gbmV3UG9zaXRpb247CisKKyAgICBpZiAoIW1fc3Rh
cnRUaW1lKSB7CisgICAgICAgIG1fYXR0YWNrVGltZSA9IHBhcmFtZXRlcnMtPm1fYXR0YWNrVGlt
ZTsKKyAgICAgICAgbV9hdHRhY2tDdXJ2ZSA9IHBhcmFtZXRlcnMtPm1fYXR0YWNrQ3VydmU7Cisg
ICAgfQorICAgIG1fYW5pbWF0aW9uVGltZSA9IHBhcmFtZXRlcnMtPm1fYW5pbWF0aW9uVGltZTsK
ICAgICBtX3JlbGVhc2VUaW1lID0gcGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZTsKLSAgICBtX2F0
dGFja0N1cnZlID0gcGFyYW1ldGVycy0+bV9hdHRhY2tDdXJ2ZTsKICAgICBtX3JlbGVhc2VDdXJ2
ZSA9IHBhcmFtZXRlcnMtPm1fcmVsZWFzZUN1cnZlOwogCiAgICAgLy8gUHJpb3JpdGl6ZSBvdXIg
d2F5IG91dCBvZiBvdmVyIGNvbnN0cmFpbnQuCkBAIC0xNzYsMTggKzIzNyw2IEBAIGJvb2wgU2Ny
b2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFNj
cm9sbGJhck9yaWVudGF0CiAKICAgICBtX29yaWVudGF0aW9uID0gb3JpZW50YXRpb247CiAKLSAg
ICBpZiAoIW1fc3RhcnRUaW1lKQotICAgICAgICBtX2Rlc2lyZWRQb3NpdGlvbiA9ICptX2N1cnJl
bnRQb3NpdGlvbjsKLSAgICBmbG9hdCBuZXdQb3NpdGlvbiA9IG1fZGVzaXJlZFBvc2l0aW9uICsg
KHN0ZXAgKiBtdWx0aXBsaWVyKTsKLQotICAgIGlmIChuZXdQb3NpdGlvbiA8IDAgfHwgbmV3UG9z
aXRpb24gPiBzY3JvbGxhYmxlU2l6ZSkKLSAgICAgICAgbmV3UG9zaXRpb24gPSBtYXgobWluKG5l
d1Bvc2l0aW9uLCBzY3JvbGxhYmxlU2l6ZSksIDAuMGYpOwotCi0gICAgaWYgKG5ld1Bvc2l0aW9u
ID09IG1fZGVzaXJlZFBvc2l0aW9uKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX2Rl
c2lyZWRQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uOwotCiAgICAgaWYgKCFtX3N0YXJ0VGltZSkgewog
ICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgdGhlIHRpbWUgZnJvbSB0aGUgZXZlbnQg
dGhhdCBnb3QgdXMgaGVyZS4KICAgICAgICAgbV9zdGFydFRpbWUgPSBjdXJyZW50VGltZSAtIGtU
aWNrVGltZSAvIDI7CkBAIC0yMDksMTYgKzI1OCwzOCBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6UGVyQXhpc0RhdGE6OnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhTY3JvbGxiYXJPcmllbnRh
dAogICAgICAgICB0aW1lTGVmdCA9IG1pblRpbWVMZWZ0OwogICAgIH0KIAorICAgIGlmIChwYXJh
bWV0ZXJzLT5tX21heGltdW1Db2FzdFRpbWUgPiAocGFyYW1ldGVycy0+bV9yZXBlYXRNaW5pbXVt
U3VzdGFpblRpbWUgKyBwYXJhbWV0ZXJzLT5tX3JlbGVhc2VUaW1lKSkgeworICAgICAgICBkb3Vi
bGUgdGFyZ2V0TWF4Q29hc3RWZWxvY2l0eSA9IG1fdmlzaWJsZUxlbmd0aCAqIC4yNSAqIGtGcmFt
ZVJhdGU7CisgICAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgYXMgbWluaW1hbCBhcyBwb3NzaWJs
ZSB3aGlsZSBub3QgYmVpbmcgaW50cnVzaXZlIHRvIHBhZ2UgdXAvZG93bi4KKyAgICAgICAgZG91
YmxlIG1pbkNvYXN0RGVsdGEgPSBtX3Zpc2libGVMZW5ndGg7CisKKyAgICAgICAgaWYgKGFicyhy
ZW1haW5pbmdEZWx0YSkgPiBtaW5Db2FzdERlbHRhKSB7CisgICAgICAgICAgICBkb3VibGUgbWF4
Q29hc3REZWx0YSA9IHBhcmFtZXRlcnMtPm1fbWF4aW11bUNvYXN0VGltZSAqIHRhcmdldE1heENv
YXN0VmVsb2NpdHk7CisgICAgICAgICAgICBkb3VibGUgY29hc3RGYWN0b3IgPSBtaW4oMS4sIChh
YnMocmVtYWluaW5nRGVsdGEpIC0gbWluQ29hc3REZWx0YSkgLyAobWF4Q29hc3REZWx0YSAtIG1p
bkNvYXN0RGVsdGEpKTsKKworICAgICAgICAgICAgLy8gV2UgY291bGQgcGxheSB3aXRoIHRoZSBj
dXJ2ZSBoZXJlIC0gbGluZWFyIHNlZW1zIGEgbGl0dGxlIHNvZnQuIEluaXRpYWwgdGVzdGluZyBt
YWtlcyBtZSB3YW50IHRvIGZlZWQgaW50byB0aGUgc3VzdGFpbiB0aW1lIG1vcmUgYWdncmVzc2l2
ZWx5LgorICAgICAgICAgICAgZG91YmxlIGNvYXN0TWluVGltZUxlZnQgPSBtaW4ocGFyYW1ldGVy
cy0+bV9tYXhpbXVtQ29hc3RUaW1lLCBtaW5UaW1lTGVmdCArIGNvYXN0Q3VydmUocGFyYW1ldGVy
cy0+bV9jb2FzdFRpbWVDdXJ2ZSwgY29hc3RGYWN0b3IpICogKHBhcmFtZXRlcnMtPm1fbWF4aW11
bUNvYXN0VGltZSAtIG1pblRpbWVMZWZ0KSk7CisKKyAgICAgICAgICAgIGRvdWJsZSBhZGRpdGlv
bmFsVGltZSA9IG1heCgwLiwgY29hc3RNaW5UaW1lTGVmdCAtIG1pblRpbWVMZWZ0KTsKKyAgICAg
ICAgICAgIGlmIChhZGRpdGlvbmFsVGltZSkgeworICAgICAgICAgICAgICAgIGRvdWJsZSBhZGRp
dGlvbmFsUmVsZWFzZVRpbWUgPSBtaW4oYWRkaXRpb25hbFRpbWUsIHBhcmFtZXRlcnMtPm1fcmVs
ZWFzZVRpbWUgLyAocGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZSArIHBhcmFtZXRlcnMtPm1fcmVw
ZWF0TWluaW11bVN1c3RhaW5UaW1lKSAqIGFkZGl0aW9uYWxUaW1lKTsKKyAgICAgICAgICAgICAg
ICBtX3JlbGVhc2VUaW1lID0gcGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZSArIGFkZGl0aW9uYWxS
ZWxlYXNlVGltZTsKKyAgICAgICAgICAgICAgICBtX2FuaW1hdGlvblRpbWUgPSBkZWx0YVRpbWUg
KyBjb2FzdE1pblRpbWVMZWZ0OworICAgICAgICAgICAgICAgIHRpbWVMZWZ0ID0gY29hc3RNaW5U
aW1lTGVmdDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIGRvdWJsZSBy
ZWxlYXNlVGltZUxlZnQgPSBtaW4odGltZUxlZnQsIG1fcmVsZWFzZVRpbWUpOwogICAgIGRvdWJs
ZSBzdXN0YWluVGltZUxlZnQgPSBtYXgoMC4sIHRpbWVMZWZ0IC0gcmVsZWFzZVRpbWVMZWZ0IC0g
YXR0YWNrVGltZUxlZnQpOwogCiAgICAgaWYgKGF0dGFja1RpbWVMZWZ0KSB7CiAgICAgICAgIGRv
dWJsZSBhdHRhY2tTcG90ID0gZGVsdGFUaW1lIC8gbV9hdHRhY2tUaW1lOwotICAgICAgICBhdHRh
Y2tBcmVhTGVmdCA9IGF0dGFja1RpbWVMZWZ0IC8gKGN1cnZlRGVyaXZhdGl2ZUF0KG1fYXR0YWNr
Q3VydmUsIDEpIC0gY3VydmVEZXJpdmF0aXZlQXQobV9hdHRhY2tDdXJ2ZSwgYXR0YWNrU3BvdCkp
OworICAgICAgICBhdHRhY2tBcmVhTGVmdCA9IGF0dGFja0FyZWEobV9hdHRhY2tDdXJ2ZSwgYXR0
YWNrU3BvdCwgMSkgKiBtX2F0dGFja1RpbWU7CiAgICAgfQogCiAgICAgZG91YmxlIHJlbGVhc2VT
cG90ID0gKG1fcmVsZWFzZVRpbWUgLSByZWxlYXNlVGltZUxlZnQpIC8gbV9yZWxlYXNlVGltZTsK
LSAgICBkb3VibGUgcmVsZWFzZUFyZWFMZWZ0ICA9IHJlbGVhc2VUaW1lTGVmdCAvIChjdXJ2ZURl
cml2YXRpdmVBdChtX3JlbGVhc2VDdXJ2ZSwgMSkgLSBjdXJ2ZURlcml2YXRpdmVBdChtX3JlbGVh
c2VDdXJ2ZSwgcmVsZWFzZVNwb3QpKTsKKyAgICBkb3VibGUgcmVsZWFzZUFyZWFMZWZ0ICA9IHJl
bGVhc2VBcmVhKG1fcmVsZWFzZUN1cnZlLCByZWxlYXNlU3BvdCwgMSkgKiBtX3JlbGVhc2VUaW1l
OwogCiAgICAgbV9kZXNpcmVkVmVsb2NpdHkgPSByZW1haW5pbmdEZWx0YSAvIChhdHRhY2tBcmVh
TGVmdCArIHN1c3RhaW5UaW1lTGVmdCArIHJlbGVhc2VBcmVhTGVmdCk7CiAgICAgbV9yZWxlYXNl
UG9zaXRpb24gPSBtX2Rlc2lyZWRQb3NpdGlvbiAtIG1fZGVzaXJlZFZlbG9jaXR5ICogcmVsZWFz
ZUFyZWFMZWZ0OwpAQCAtMjcwLDEwICszNDEsMTUgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmU6
OlBlckF4aXNEYXRhOjphbmltYXRlU2Nyb2xsKGRvdWJsZSBjdXJyZW50VGltZSkKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjp1cGRh
dGVWaXNpYmxlTGVuZ3RoKExheW91dFVuaXQgdmlzaWJsZUxlbmd0aCkKK3sKKyAgICBtX3Zpc2li
bGVMZW5ndGggPSB2aXNpYmxlTGVuZ3RoOworfQorCiBTY3JvbGxBbmltYXRvck5vbmU6OlNjcm9s
bEFuaW1hdG9yTm9uZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCiAgICAgOiBTY3Jv
bGxBbmltYXRvcihzY3JvbGxhYmxlQXJlYSkKLSAgICAsIG1faG9yaXpvbnRhbERhdGEodGhpcywg
Jm1fY3VycmVudFBvc1gpCi0gICAgLCBtX3ZlcnRpY2FsRGF0YSh0aGlzLCAmbV9jdXJyZW50UG9z
WSkKKyAgICAsIG1faG9yaXpvbnRhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1gsIHNjcm9sbGFi
bGVBcmVhLT52aXNpYmxlV2lkdGgoKSkKKyAgICAsIG1fdmVydGljYWxEYXRhKHRoaXMsICZtX2N1
cnJlbnRQb3NZLCBzY3JvbGxhYmxlQXJlYS0+dmlzaWJsZUhlaWdodCgpKQogICAgICwgbV9hbmlt
YXRpb25UaW1lcih0aGlzLCAmU2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRpb25UaW1lckZpcmVk
KQogewogfQpAQCAtMjkzLDE1ICszNjksMTYgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmU6OnNj
cm9sbChTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXIKICAg
ICBQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgc3dpdGNoIChncmFudWxhcml0eSkgewogICAg
IGNhc2UgU2Nyb2xsQnlEb2N1bWVudDoKKyAgICAgICAgcGFyYW1ldGVycyA9IFBhcmFtZXRlcnMo
dHJ1ZSwgMjAgKiBrVGlja1RpbWUsIDEwICoga1RpY2tUaW1lLCBDdWJpYywgMTAgKiBrVGlja1Rp
bWUsIEN1YmljLCAxMCAqIGtUaWNrVGltZSwgTGluZWFyLCAxKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBTY3JvbGxCeUxpbmU6Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJzKHRy
dWUsIDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBRdWFkcmF0aWMsIDMgKiBrVGlja1Rp
bWUsIFF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBQYXJh
bWV0ZXJzKHRydWUsIDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBDdWJpYywgMyAqIGtU
aWNrVGltZSwgQ3ViaWMsIDMgKiBrVGlja1RpbWUsIExpbmVhciwgMSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU2Nyb2xsQnlQYWdlOgotICAgICAgICBwYXJhbWV0ZXJzID0gUGFyYW1ldGVy
cyh0cnVlLCAxNSAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1RpbWUsIFF1YWRyYXRpYywgNSAqIGtU
aWNrVGltZSwgUXVhZHJhdGljLCA1ICoga1RpY2tUaW1lKTsKKyAgICAgICAgcGFyYW1ldGVycyA9
IFBhcmFtZXRlcnModHJ1ZSwgMTUgKiBrVGlja1RpbWUsIDEwICoga1RpY2tUaW1lLCBDdWJpYywg
NSAqIGtUaWNrVGltZSwgQ3ViaWMsIDUgKiBrVGlja1RpbWUsIExpbmVhciwgMSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgU2Nyb2xsQnlQaXhlbDoKLSAgICAgICAgcGFyYW1ldGVycyA9IFBh
cmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDIgKiBrVGlja1RpbWUsIFF1YWRyYXRpYywg
MyAqIGtUaWNrVGltZSwgUXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICAgICAgcGFyYW1l
dGVycyA9IFBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDIgKiBrVGlja1RpbWUsIEN1
YmljLCAzICoga1RpY2tUaW1lLCBDdWJpYywgMyAqIGtUaWNrVGltZSwgUXVhZHJhdGljLCAxLjI1
KTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0zMzgs
NiArNDE1LDI3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGxUb09mZnNldFdpdGhv
dXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0CiAgICAgbm90aXR5UG9zaXRpb25D
aGFuZ2VkKCk7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjp3aWxsRW5kTGl2ZVJlc2l6
ZSgpCit7CisgICAgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmlt
YXRvck5vbmU6OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgdXBk
YXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmRpZEFk
ZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKK3sKKyAgICB1cGRhdGVWaXNpYmxlTGVu
Z3RocygpOworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6dXBkYXRlVmlzaWJsZUxlbmd0
aHMoKQoreworICAgIG1faG9yaXpvbnRhbERhdGEudXBkYXRlVmlzaWJsZUxlbmd0aChzY3JvbGxh
YmxlQXJlYSgpLT52aXNpYmxlV2lkdGgoKSk7CisgICAgbV92ZXJ0aWNhbERhdGEudXBkYXRlVmlz
aWJsZUxlbmd0aChzY3JvbGxhYmxlQXJlYSgpLT52aXNpYmxlSGVpZ2h0KCkpOworfQorCiB2b2lk
IFNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmlt
YXRvck5vbmU+KiB0aW1lcikKIHsKICAgICBkb3VibGUgY3VycmVudFRpbWUgPSBXVEY6Om1vbm90
b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvck5vbmUuaAppbmRleCA4MzIzNWQxNzYxYmM2YTAwNmM1M2Y5OTVjNzJjN2QyOGFl
NDU0YmVlLi4yOWVlMmM1NmM1ZWRlMmJiMzQzMDE0MjU0MTUzMGJlNjM1NDVkMzYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaApAQCAtMzMsNiArMzMs
NyBAQAogCiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAKKyNpbmNsdWRlICJMYXlvdXRU
eXBlcy5oIgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIK
IApAQCAtNTAsMTYgKzUxLDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNj
cm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQg
bXVsdGlwbGllcik7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1h
dGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVS
ZXNpemUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xs
YmFyKik7CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xs
YmFyKik7CisKICAgICBlbnVtIEN1cnZlIHsKICAgICAgICAgTGluZWFyLAogICAgICAgICBRdWFk
cmF0aWMsCiAgICAgICAgIEN1YmljLAorICAgICAgICBRdWFydGljLAogICAgICAgICBCb3VuY2UK
ICAgICB9OwogCiAgICAgc3RydWN0IFBhcmFtZXRlcnMgewogICAgICAgICBQYXJhbWV0ZXJzKCk7
Ci0gICAgICAgIFBhcmFtZXRlcnMoYm9vbCBpc0VuYWJsZWQsIGRvdWJsZSBhbmltYXRpb25UaW1l
LCBkb3VibGUgcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lLCBDdXJ2ZSBhdHRhY2tDdXJ2ZSwgZG91
YmxlIGF0dGFja1RpbWUsIEN1cnZlIHJlbGVhc2VDdXJ2ZSwgZG91YmxlIHJlbGVhc2VUaW1lKTsK
KyAgICAgICAgUGFyYW1ldGVycyhib29sIGlzRW5hYmxlZCwgZG91YmxlIGFuaW1hdGlvblRpbWUs
IGRvdWJsZSByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUsIEN1cnZlIGF0dGFja0N1cnZlLCBkb3Vi
bGUgYXR0YWNrVGltZSwgQ3VydmUgcmVsZWFzZUN1cnZlLCBkb3VibGUgcmVsZWFzZVRpbWUsIEN1
cnZlIGNvYXN0VGltZUN1cnZlLCBkb3VibGUgbWF4aW11bUNvYXN0VGltZSk7CiAKICAgICAgICAg
Ly8gTm90ZSB0aGF0IHRoZSB0aW1lcyBjYW4gYmUgb3ZlcnNwZWNpZmllZCBzdWNoIHRoYXQgcmVs
ZWFzZVRpbWUgb3IgcmVsZWFzZVRpbWUgYW5kIGF0dGFja1RpbWUgYXJlIGdyZWF0ZXIKICAgICAg
ICAgLy8gdGhhbiBhbmltYXRpb25UaW1lLiBhbmltYXRpb25UaW1lIHRha2VzIHByaW9yaXR5IG92
ZXIgcmVsZWFzZVRpbWUsIGNhcHBpbmcgaXQuIGF0dGFja1RpbWUgaXMgY2FwcGVkIGF0CkBAIC03
MywyMiArNzksMjkgQEAgcHVibGljOgogCiAgICAgICAgIEN1cnZlIG1fcmVsZWFzZUN1cnZlOwog
ICAgICAgICBkb3VibGUgbV9yZWxlYXNlVGltZTsKKworICAgICAgICBDdXJ2ZSBtX2NvYXN0VGlt
ZUN1cnZlOworICAgICAgICBkb3VibGUgbV9tYXhpbXVtQ29hc3RUaW1lOwogICAgIH07CiAKIHBy
b3RlY3RlZDoKICAgICBmcmllbmQgY2xhc3MgOjpTY3JvbGxBbmltYXRvck5vbmVUZXN0OwogCiAg
ICAgc3RydWN0IFBlckF4aXNEYXRhIHsKLSAgICAgICAgUGVyQXhpc0RhdGEoU2Nyb2xsQW5pbWF0
b3JOb25lKiBwYXJlbnQsIGZsb2F0KiBjdXJyZW50UG9zKTsKKyAgICAgICAgUGVyQXhpc0RhdGEo
U2Nyb2xsQW5pbWF0b3JOb25lKiBwYXJlbnQsIGZsb2F0KiBjdXJyZW50UG9zLCBMYXlvdXRVbml0
IHZpc2libGVMZW5ndGgpOwogICAgICAgICB2b2lkIHJlc2V0KCk7CiAgICAgICAgIGJvb2wgdXBk
YXRlRGF0YUZyb21QYXJhbWV0ZXJzKFNjcm9sbGJhck9yaWVudGF0aW9uLCBmbG9hdCBzdGVwLCBm
bG9hdCBtdWx0aXBsaWVyLCBmbG9hdCBzY3JvbGxhYmxlU2l6ZSwgZG91YmxlIGN1cnJlbnRUaW1l
LCBQYXJhbWV0ZXJzKik7CiAgICAgICAgIGJvb2wgYW5pbWF0ZVNjcm9sbChkb3VibGUgY3VycmVu
dFRpbWUpOworICAgICAgICB2b2lkIHVwZGF0ZVZpc2libGVMZW5ndGgoTGF5b3V0VW5pdCB2aXNp
YmxlTGVuZ3RoKTsKIAogICAgICAgICBzdGF0aWMgZG91YmxlIGN1cnZlQXQoQ3VydmUsIGRvdWJs
ZSB0KTsKLSAgICAgICAgc3RhdGljIGRvdWJsZSBjdXJ2ZURlcml2YXRpdmVBdChDdXJ2ZSwgZG91
YmxlIHQpOwotCiAgICAgICAgIHN0YXRpYyBkb3VibGUgYXR0YWNrQ3VydmUoQ3VydmUsIGRvdWJs
ZSBkZWx0YVQsIGRvdWJsZSBjdXJ2ZVQsIGRvdWJsZSBzdGFydFBvcywgZG91YmxlIGF0dGFja1Bv
cyk7CiAgICAgICAgIHN0YXRpYyBkb3VibGUgcmVsZWFzZUN1cnZlKEN1cnZlLCBkb3VibGUgZGVs
dGFULCBkb3VibGUgY3VydmVULCBkb3VibGUgcmVsZWFzZVBvcywgZG91YmxlIGRlc2lyZWRQb3Mp
OworICAgICAgICBzdGF0aWMgZG91YmxlIGNvYXN0Q3VydmUoQ3VydmUsIGRvdWJsZSBmYWN0b3Ip
OworCisgICAgICAgIHN0YXRpYyBkb3VibGUgY3VydmVJbnRlZ3JhbEF0KEN1cnZlLCBkb3VibGUg
dCk7CisgICAgICAgIHN0YXRpYyBkb3VibGUgYXR0YWNrQXJlYShDdXJ2ZSwgZG91YmxlIHN0YXJ0
VCwgZG91YmxlIGVuZFQpOworICAgICAgICBzdGF0aWMgZG91YmxlIHJlbGVhc2VBcmVhKEN1cnZl
LCBkb3VibGUgc3RhcnRULCBkb3VibGUgZW5kVCk7CiAKICAgICAgICAgZmxvYXQqIG1fY3VycmVu
dFBvc2l0aW9uOwogICAgICAgICBkb3VibGUgbV9jdXJyZW50VmVsb2NpdHk7CkBAIC0xMTEsMTEg
KzEyNCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGRvdWJsZSBtX3JlbGVhc2VUaW1lOwogICAg
ICAgICBDdXJ2ZSBtX3JlbGVhc2VDdXJ2ZTsKIAorICAgICAgICBMYXlvdXRVbml0IG1fdmlzaWJs
ZUxlbmd0aDsKICAgICAgICAgU2Nyb2xsYmFyT3JpZW50YXRpb24gbV9vcmllbnRhdGlvbjsKICAg
ICB9OwogCiAgICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9sbEFuaW1hdG9y
Tm9uZT4qKTsKICAgICB2b2lkIHN0b3BBbmltYXRpb25UaW1lcklmTmVlZGVkKCk7CisgICAgdm9p
ZCB1cGRhdGVWaXNpYmxlTGVuZ3RocygpOwogCiAgICAgUGVyQXhpc0RhdGEgbV9ob3Jpem9udGFs
RGF0YTsKICAgICBQZXJBeGlzRGF0YSBtX3ZlcnRpY2FsRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggZTEyZDkyMTQwYzIyMjJiZGNkNGU3Nzk2MmM1NmQzMGEyMWQ1MDRkZS4uMDM4
NTUzOWJiMzdlZjJjODk4YzhhODY2MzMyNzM1OTFhOWNiYzE3OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wOC0xNSAgU2NvdHQgQnllciAgPHNjb3R0
YnllckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2Nyb2xsQW5pbWF0b3JOb25lIGNvYXN0aW5n
IGltcGxlbWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogdGVzdHMvU2Nyb2xsQW5pbWF0b3JOb25lVGVzdC5jcHA6CisgICAgICAgIChNb2Nr
U2Nyb2xsYWJsZUFyZWE6OnZpc2libGVIZWlnaHQpOgorICAgICAgICAoTW9ja1Njcm9sbGFibGVB
cmVhOjp2aXNpYmxlV2lkdGgpOgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6U2F2
ZVBlckF4aXNEYXRhOjpTYXZlUGVyQXhpc0RhdGEpOgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdDo6U2F2ZVBlckF4aXNEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3Q6OlNldFVwKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6
OnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyk6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmVU
ZXN0OjphbmltYXRlU2Nyb2xsKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmF0
dGFja0FyZWEpOgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6cmVsZWFzZUFyZWEp
OgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6Y29hc3RDdXJ2ZSk6CisgICAgICAg
IChTY3JvbGxBbmltYXRvck5vbmVUZXN0OjpjdXJ2ZVRlc3RJbm5lcik6CisgICAgICAgIChURVNU
X0YpOgorCiAyMDExLTA4LTE1ICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbY2hyb21pdW1dIEltcGxlbWVudCBzaG91bGRSdWJiZXJCYW5kSW5EaXJlY3Rpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9sbEFuaW1hdG9y
Tm9uZVRlc3QuY3BwCmluZGV4IDkwYjRjMmNiMmE3NmEwMGYyYTVkMGI0OTcyZWYyYTRlNDk3YWY0
ZmEuLmY1M2FlY2FmMTczMGY1YzE3MzRmZWJlOTY1ZTI4OGNhODQxNzk4ZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xsQW5pbWF0b3JOb25lVGVzdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxBbmltYXRvck5vbmVUZXN0
LmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CiAjaW5jbHVk
ZSA8Z3Rlc3QvZ3Rlc3QuaD4KIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCiB1c2luZyB0ZXN0aW5nOjpBdExlYXN0OwpAQCAtNjMsNiArNjQsOSBAQCBw
dWJsaWM6CiAgICAgTU9DS19NRVRIT0QxKHNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24sIHZv
aWQoY29uc3QgSW50UG9pbnQmKSk7CiAgICAgTU9DS19DT05TVF9NRVRIT0QwKGVuY2xvc2luZ1Nj
cm9sbGFibGVBcmVhLCBTY3JvbGxhYmxlQXJlYSooKSk7CiAKKyAgICB2aXJ0dWFsIExheW91dFVu
aXQgdmlzaWJsZUhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIDc2ODsgfQorICAgIHZpcnR1YWwgTGF5
b3V0VW5pdCB2aXNpYmxlV2lkdGgoKSBjb25zdCB7IHJldHVybiAxMDI0OyB9CisKICAgICBib29s
IHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsQW5pbWF0b3JF
bmFibGVkOyB9CiAgICAgYm9vbCBtX3Njcm9sbEFuaW1hdG9yRW5hYmxlZDsKIH07CkBAIC0xNDcs
NiArMTUxLDMzIEBAIFRFU1QoU2Nyb2xsQW5pbWF0b3JFbmFibGVkLCBEaXNhYmxlZCkKIAogY2xh
c3MgU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1Ymxp
YzoKKyAgICBzdHJ1Y3QgU2F2ZVBlckF4aXNEYXRhIDogcHVibGljIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6UGVyQXhpc0RhdGEgeworICAgICAgICBTYXZlUGVyQXhpc0RhdGEoY29uc3QgU2Nyb2xsQW5p
bWF0b3JOb25lOjpQZXJBeGlzRGF0YSYgZGF0YSkKKyAgICAgICAgICAgIDogU2Nyb2xsQW5pbWF0
b3JOb25lOjpQZXJBeGlzRGF0YSgmbV9tb2NrU2Nyb2xsQW5pbWF0b3JOb25lLCAwLCA3NjgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHRoaXMtPm1fY3VycmVudFZlbG9jaXR5ID0gZGF0YS5tX2N1
cnJlbnRWZWxvY2l0eTsKKyAgICAgICAgICAgIHRoaXMtPm1fZGVzaXJlZFBvc2l0aW9uID0gZGF0
YS5tX2Rlc2lyZWRQb3NpdGlvbjsKKyAgICAgICAgICAgIHRoaXMtPm1fZGVzaXJlZFZlbG9jaXR5
ID0gZGF0YS5tX2Rlc2lyZWRWZWxvY2l0eTsKKyAgICAgICAgICAgIHRoaXMtPm1fc3RhcnRQb3Np
dGlvbiA9IGRhdGEubV9zdGFydFBvc2l0aW9uOworICAgICAgICAgICAgdGhpcy0+bV9zdGFydFRp
bWUgPSBkYXRhLm1fc3RhcnRUaW1lOworICAgICAgICAgICAgdGhpcy0+bV9zdGFydFZlbG9jaXR5
ID0gZGF0YS5tX3N0YXJ0VmVsb2NpdHk7CisgICAgICAgICAgICB0aGlzLT5tX2FuaW1hdGlvblRp
bWUgPSBkYXRhLm1fYW5pbWF0aW9uVGltZTsKKyAgICAgICAgICAgIHRoaXMtPm1fbGFzdEFuaW1h
dGlvblRpbWUgPSBkYXRhLm1fbGFzdEFuaW1hdGlvblRpbWU7CisgICAgICAgICAgICB0aGlzLT5t
X2F0dGFja1Bvc2l0aW9uID0gZGF0YS5tX2F0dGFja1Bvc2l0aW9uOworICAgICAgICAgICAgdGhp
cy0+bV9hdHRhY2tUaW1lID0gZGF0YS5tX2F0dGFja1RpbWU7CisgICAgICAgICAgICB0aGlzLT5t
X2F0dGFja0N1cnZlID0gZGF0YS5tX2F0dGFja0N1cnZlOworICAgICAgICAgICAgdGhpcy0+bV9y
ZWxlYXNlUG9zaXRpb24gPSBkYXRhLm1fcmVsZWFzZVBvc2l0aW9uOworICAgICAgICAgICAgdGhp
cy0+bV9yZWxlYXNlVGltZSA9IGRhdGEubV9yZWxlYXNlVGltZTsKKyAgICAgICAgICAgIHRoaXMt
Pm1fcmVsZWFzZUN1cnZlID0gZGF0YS5tX3JlbGVhc2VDdXJ2ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTYXZlUGVyQXhpc0RhdGEmIG90aGVyKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gbV9jdXJyZW50VmVsb2NpdHkgPT0gb3RoZXIu
bV9jdXJyZW50VmVsb2NpdHkgJiYgbV9kZXNpcmVkUG9zaXRpb24gPT0gb3RoZXIubV9kZXNpcmVk
UG9zaXRpb24gJiYgbV9kZXNpcmVkVmVsb2NpdHkgPT0gb3RoZXIubV9kZXNpcmVkVmVsb2NpdHkg
JiYgbV9zdGFydFBvc2l0aW9uID09IG90aGVyLm1fc3RhcnRQb3NpdGlvbiAmJiBtX3N0YXJ0VGlt
ZSA9PSBvdGhlci5tX3N0YXJ0VGltZSAmJiBtX3N0YXJ0VmVsb2NpdHkgPT0gb3RoZXIubV9zdGFy
dFZlbG9jaXR5ICYmIG1fYW5pbWF0aW9uVGltZSA9PSBvdGhlci5tX2FuaW1hdGlvblRpbWUgJiYg
bV9sYXN0QW5pbWF0aW9uVGltZSA9PSBvdGhlci5tX2xhc3RBbmltYXRpb25UaW1lICYmIG1fYXR0
YWNrUG9zaXRpb24gPT0gb3RoZXIubV9hdHRhY2tQb3NpdGlvbiAmJiBtX2F0dGFja1RpbWUgPT0g
b3RoZXIubV9hdHRhY2tUaW1lICYmIG1fYXR0YWNrQ3VydmUgPT0gb3RoZXIubV9hdHRhY2tDdXJ2
ZSAmJiBtX3JlbGVhc2VQb3NpdGlvbiA9PSBvdGhlci5tX3JlbGVhc2VQb3NpdGlvbiAmJiBtX3Jl
bGVhc2VUaW1lID09IG90aGVyLm1fcmVsZWFzZVRpbWUgJiYgbV9yZWxlYXNlQ3VydmUgPT0gb3Ro
ZXIubV9yZWxlYXNlQ3VydmU7CisgICAgICAgIH0KKyAgICAgICAgTW9ja1Njcm9sbEFuaW1hdG9y
Tm9uZSBtX21vY2tTY3JvbGxBbmltYXRvck5vbmU7CisgICAgfTsKKwogICAgIFNjcm9sbEFuaW1h
dG9yTm9uZVRlc3QoKQogICAgIHsKICAgICB9CkBAIC0xNTQsNyArMTg1LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpCiAgICAgewogICAgICAgICBtX2N1cnJlbnRQb3NpdGlv
biA9IDEwMDsKLSAgICAgICAgbV9kYXRhID0gbmV3IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhp
c0RhdGEoJm1fbW9ja1Njcm9sbEFuaW1hdG9yTm9uZSwgJm1fY3VycmVudFBvc2l0aW9uKTsKKyAg
ICAgICAgbV9kYXRhID0gbmV3IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGEoJm1fbW9j
a1Njcm9sbEFuaW1hdG9yTm9uZSwgJm1fY3VycmVudFBvc2l0aW9uLCA3NjgpOwogICAgIH0KICAg
ICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKQogICAgIHsKQEAgLTE2NSwxMiArMTk2LDExIEBAIHB1
YmxpYzoKICAgICBib29sIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhTY3JvbGxiYXJPcmllbnRh
dGlvbiwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgZmxvYXQgc2Nyb2xsYWJsZVNpemUs
IGRvdWJsZSBjdXJyZW50VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzKik7CiAg
ICAgYm9vbCBhbmltYXRlU2Nyb2xsKGRvdWJsZSBjdXJyZW50VGltZSk7CiAKLSAgICBkb3VibGUg
Y3VydmVJbnRlZ3JhbEF0KFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUsIGRvdWJsZSB0KTsKICAg
ICBkb3VibGUgYXR0YWNrQXJlYShTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUgc3Rh
cnRULCBkb3VibGUgZW5kVCk7CiAgICAgZG91YmxlIHJlbGVhc2VBcmVhKFNjcm9sbEFuaW1hdG9y
Tm9uZTo6Q3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRUKTsKICAgICBkb3VibGUgYXR0
YWNrQ3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91YmxlIGRlbHRhVCwgZG91Ymxl
IGN1cnZlVCwgZG91YmxlIHN0YXJ0UG9zaXRpb24sIGRvdWJsZSBhdHRhY2tQb3NpdGlvbik7CiAg
ICAgZG91YmxlIHJlbGVhc2VDdXJ2ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUg
ZGVsdGFULCBkb3VibGUgY3VydmVULCBkb3VibGUgcmVsZWFzZVBvc2l0aW9uLCBkb3VibGUgZGVz
aXJlZFBvc2l0aW9uKTsKLSAgICBkb3VibGUgY3VydmVEZXJpdmF0aXZlQXQoU2Nyb2xsQW5pbWF0
b3JOb25lOjpDdXJ2ZSwgZG91YmxlIHVuaXRUaW1lKTsKKyAgICBkb3VibGUgY29hc3RDdXJ2ZShT
Y3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUgZmFjdG9yKTsKIAogICAgIHZvaWQgY3Vy
dmVUZXN0SW5uZXIoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91YmxlIHN0ZXAsIGRvdWJs
ZSB0aW1lKTsKICAgICB2b2lkIGN1cnZlVGVzdChTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlKTsK
QEAgLTIxNCw5ICsyNDQsOSBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OnVwZGF0ZURh
dGFGcm9tUGFyYW1ldGVycyhTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbgogCiAgICAgZG91Ymxl
IGRlbHRhVGltZSA9IG1fZGF0YS0+bV9sYXN0QW5pbWF0aW9uVGltZSAtIG1fZGF0YS0+bV9zdGFy
dFRpbWU7CiAgICAgZG91YmxlIHRpbWVMZWZ0ID0gbV9kYXRhLT5tX2FuaW1hdGlvblRpbWUgLSBk
ZWx0YVRpbWU7Ci0gICAgZG91YmxlIHJlbGVhc2VUaW1lTGVmdCA9IHN0ZDo6bWluKHRpbWVMZWZ0
LCBtX2RhdGEtPm1fcmVsZWFzZVRpbWUpOwotICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVmdCA9IHN0
ZDo6bWF4KDAuLCBtX2RhdGEtPm1fYXR0YWNrVGltZSAtIGRlbHRhVGltZSk7Ci0gICAgZG91Ymxl
IHN1c3RhaW5UaW1lTGVmdCA9IHN0ZDo6bWF4KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1lTGVm
dCAtIGF0dGFja1RpbWVMZWZ0KTsKKyAgICBkb3VibGUgcmVsZWFzZVRpbWVMZWZ0ID0gbWluKHRp
bWVMZWZ0LCBtX2RhdGEtPm1fcmVsZWFzZVRpbWUpOworICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVm
dCA9IG1heCgwLiwgbV9kYXRhLT5tX2F0dGFja1RpbWUgLSBkZWx0YVRpbWUpOworICAgIGRvdWJs
ZSBzdXN0YWluVGltZUxlZnQgPSBtYXgoMC4sIHRpbWVMZWZ0IC0gcmVsZWFzZVRpbWVMZWZ0IC0g
YXR0YWNrVGltZUxlZnQpOwogCiAgICAgLy8gSWYgd2UncmUgZ2V0dGluZyBuZWFyIHRoZSBmaW5p
c2gsIHRoZSBkZXNpcmVkIHZlbG9jaXR5IGNhbiBkZWNyZWFzZSBzaW5jZSB0aGUgdGltZSBsZWZ0
IGdldHMgaW5jcmVhc2VkLgogICAgIGRvdWJsZSBhbGxvd2VkVmVsb2NpdHlEZWNyZWFzZUZhY3Rv
ciA9IDAuOTkgKiBvbGRUaW1lTGVmdCAvIHRpbWVMZWZ0OwpAQCAtMjI2LDEyICsyNTYsOSBAQCBi
b29sIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhTY3Jv
bGxiYXJPcmllbnRhdGlvbiBvcmllbgogICAgIGVsc2UKICAgICAgICAgRVhQRUNUX0dFKG9sZERl
c2lyZWRWZWxvY2l0eSAqIGFsbG93ZWRWZWxvY2l0eURlY3JlYXNlRmFjdG9yLCBtX2RhdGEtPm1f
ZGVzaXJlZFZlbG9jaXR5KTsKIAotICAgIGRvdWJsZSBzdGFydFBvc2l0aW9uID0gbV9zY3JvbGxp
bmdEb3duID8gc3RkOjptYXg8ZG91YmxlPihtX2N1cnJlbnRQb3NpdGlvbiwgbV9kYXRhLT5tX2F0
dGFja1Bvc2l0aW9uKSA6IHN0ZDo6bWluPGRvdWJsZT4obV9jdXJyZW50UG9zaXRpb24sIG1fZGF0
YS0+bV9hdHRhY2tQb3NpdGlvbik7CisgICAgZG91YmxlIHN0YXJ0UG9zaXRpb24gPSBhdHRhY2tU
aW1lTGVmdCA/IG1fZGF0YS0+bV9hdHRhY2tQb3NpdGlvbiA6IG1fY3VycmVudFBvc2l0aW9uOwog
ICAgIGRvdWJsZSBleHBlY3RlZFJlbGVhc2VQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb24gKyBzdXN0
YWluVGltZUxlZnQgKiBtX2RhdGEtPm1fZGVzaXJlZFZlbG9jaXR5OwotICAgIGlmIChyZXN1bHQp
Ci0gICAgICAgIEVYUEVDVF9ET1VCTEVfRVEoZXhwZWN0ZWRSZWxlYXNlUG9zaXRpb24sIG1fZGF0
YS0+bV9yZWxlYXNlUG9zaXRpb24pOwotICAgIGVsc2UKLSAgICAgICAgRVhQRUNUX05FQVIoZXhw
ZWN0ZWRSZWxlYXNlUG9zaXRpb24sIG1fZGF0YS0+bV9yZWxlYXNlUG9zaXRpb24sIDEpOworICAg
IEVYUEVDVF9ORUFSKGV4cGVjdGVkUmVsZWFzZVBvc2l0aW9uLCBtX2RhdGEtPm1fcmVsZWFzZVBv
c2l0aW9uLCByZXN1bHQgPyAuMDAwMSA6IDEpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAg
LTI0NSw5ICsyNzIsOSBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmFuaW1hdGVTY3Jv
bGwoZG91YmxlIGN1cnJlbnRUaW1lKQogCiAgICAgZG91YmxlIGRlbHRhVGltZSA9IG1fZGF0YS0+
bV9sYXN0QW5pbWF0aW9uVGltZSAtIG1fZGF0YS0+bV9zdGFydFRpbWU7CiAgICAgZG91YmxlIHRp
bWVMZWZ0ID0gbV9kYXRhLT5tX2FuaW1hdGlvblRpbWUgLSBkZWx0YVRpbWU7Ci0gICAgZG91Ymxl
IHJlbGVhc2VUaW1lTGVmdCA9IHN0ZDo6bWluKHRpbWVMZWZ0LCBtX2RhdGEtPm1fcmVsZWFzZVRp
bWUpOwotICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVmdCA9IHN0ZDo6bWF4KDAuLCBtX2RhdGEtPm1f
YXR0YWNrVGltZSAtIGRlbHRhVGltZSk7Ci0gICAgZG91YmxlIHN1c3RhaW5UaW1lTGVmdCA9IHN0
ZDo6bWF4KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1lTGVmdCAtIGF0dGFja1RpbWVMZWZ0KTsK
KyAgICBkb3VibGUgcmVsZWFzZVRpbWVMZWZ0ID0gbWluKHRpbWVMZWZ0LCBtX2RhdGEtPm1fcmVs
ZWFzZVRpbWUpOworICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVmdCA9IG1heCgwLiwgbV9kYXRhLT5t
X2F0dGFja1RpbWUgLSBkZWx0YVRpbWUpOworICAgIGRvdWJsZSBzdXN0YWluVGltZUxlZnQgPSBt
YXgoMC4sIHRpbWVMZWZ0IC0gcmVsZWFzZVRpbWVMZWZ0IC0gYXR0YWNrVGltZUxlZnQpOwogICAg
IGRvdWJsZSBkaXN0YW5jZUxlZnQgPSBtX2RhdGEtPm1fZGVzaXJlZFBvc2l0aW9uIC0gKm1fZGF0
YS0+bV9jdXJyZW50UG9zaXRpb247CiAKICAgICBpZiAobV9zY3JvbGxpbmdEb3duKSB7CkBAIC0y
NjQsNTAgKzI5MSwxNCBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmFuaW1hdGVTY3Jv
bGwoZG91YmxlIGN1cnJlbnRUaW1lKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWRvdWJsZSBT
Y3JvbGxBbmltYXRvck5vbmVUZXN0OjpjdXJ2ZUludGVncmFsQXQoU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdXJ2ZSBjdXJ2ZSwgZG91YmxlIHQpCi17Ci0gICAgc3dpdGNoIChjdXJ2ZSkgewotICAgIGNh
c2UgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXI6Ci0gICAgICAgIHJldHVybiB0ICogdCAqIHQg
LyAzOwotICAgIGNhc2UgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWM6Ci0gICAgICAgIHJl
dHVybiB0ICogdCAqIHQgKiB0IC8gNDsKLSAgICBjYXNlIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3Vi
aWM6Ci0gICAgICAgIHJldHVybiB0ICogdCAqIHQgKiB0ICogdCAvIDU7Ci0gICAgY2FzZSBTY3Jv
bGxBbmltYXRvck5vbmU6OkJvdW5jZToKLSAgICAgICAgZG91YmxlIGFyZWE7Ci0gICAgICAgIGRv
dWJsZSB0MSA9IHN0ZDo6bWluKHQsIDEgLyAyLjc1KTsKLSAgICAgICAgYXJlYSA9IDIuNTIwODMg
KiB0MSAqIHQxICogdDE7Ci0gICAgICAgIGlmICh0IDwgMSAvIDIuNzUpCi0gICAgICAgICAgICBy
ZXR1cm4gYXJlYTsKLSAgICAgICAgdDEgPSBzdGQ6Om1pbih0IC0gMSAvIDIuNzUsIDEgLyAyLjc1
KTsKLSAgICAgICAgZG91YmxlIGJvdW5jZUFyZWEgPSB0MSAqICh0MSAqICgyLjUyMDgzICogdDEg
LSAxLjM3NSkgKyAxKTsKLSAgICAgICAgYXJlYSArPSBib3VuY2VBcmVhOwotICAgICAgICBpZiAo
dCA8IDIgLyAyLjc1KQotICAgICAgICAgICAgcmV0dXJuIGFyZWE7Ci0gICAgICAgIHQxID0gc3Rk
OjptaW4odCAtIDIgLyAyLjc1LCAwLjUgLyAyLjc1KTsKLSAgICAgICAgYm91bmNlQXJlYSA9ICB0
MSAqICh0MSAqICgyLjUyMDgzICogdDEgLSAwLjY4NzUpICsgMSk7Ci0gICAgICAgIGFyZWEgKz0g
Ym91bmNlQXJlYTsKLSAgICAgICAgaWYgKHQgPCAyLjUgLyAyLjc1KQotICAgICAgICAgICAgcmV0
dXJuIGFyZWE7Ci0gICAgICAgIHQxID0gdCAtIDIuNSAvIDIuNzU7Ci0gICAgICAgIGJvdW5jZUFy
ZWEgPSB0MSAqICh0MSAqICgyLjUyMDgzICogdDEgLSAwLjM0Mzc1KSArIDEpOwotICAgICAgICBh
cmVhICs9IGJvdW5jZUFyZWE7Ci0gICAgICAgIHJldHVybiBhcmVhOwotICAgIH0KLX0KLQogZG91
YmxlIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmF0dGFja0FyZWEoU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdXJ2ZSBjdXJ2ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpCiB7Ci0gICAgZG91Ymxl
IHN0YXJ0VmFsdWUgPSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIHN0YXJ0VCk7Ci0gICAgZG91Ymxl
IGVuZFZhbHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCBlbmRUKTsKLSAgICByZXR1cm4gZW5k
VmFsdWUgLSBzdGFydFZhbHVlOworICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4
aXNEYXRhOjphdHRhY2tBcmVhKGN1cnZlLCBzdGFydFQsIGVuZFQpOwogfQogCiBkb3VibGUgU2Ny
b2xsQW5pbWF0b3JOb25lVGVzdDo6cmVsZWFzZUFyZWEoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2
ZSBjdXJ2ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpCiB7Ci0gICAgZG91YmxlIHN0YXJ0
VmFsdWUgPSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIDEgLSBlbmRUKTsKLSAgICBkb3VibGUgZW5k
VmFsdWUgPSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIDEgLSBzdGFydFQpOwotICAgIHJldHVybiBl
bmRWYWx1ZSAtIHN0YXJ0VmFsdWU7CisgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVy
QXhpc0RhdGE6OnJlbGVhc2VBcmVhKGN1cnZlLCBzdGFydFQsIGVuZFQpOwogfQogCiBkb3VibGUg
U2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6YXR0YWNrQ3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpD
dXJ2ZSBjdXJ2ZSwgZG91YmxlIGRlbHRhVCwgZG91YmxlIGN1cnZlVCwgZG91YmxlIHN0YXJ0UG9z
aXRpb24sIGRvdWJsZSBhdHRhY2tQb3NpdGlvbikKQEAgLTMyMCw5ICszMTEsOSBAQCBkb3VibGUg
U2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6cmVsZWFzZUN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6
Q3VydmUgY3VydmUsIGRvdQogICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNE
YXRhOjpyZWxlYXNlQ3VydmUoY3VydmUsIGRlbHRhVCwgY3VydmVULCByZWxlYXNlUG9zaXRpb24s
IGRlc2lyZWRQb3NpdGlvbik7CiB9CiAKLWRvdWJsZSBTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojpj
dXJ2ZURlcml2YXRpdmVBdChTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlIGN1cnZlLCBkb3VibGUg
dW5pdFRpbWUpCitkb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6Y29hc3RDdXJ2ZShTY3Jv
bGxBbmltYXRvck5vbmU6OkN1cnZlIGN1cnZlLCBkb3VibGUgZmFjdG9yKQogewotICAgIHJldHVy
biBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZURlcml2YXRpdmVBdChjdXJ2
ZSwgdW5pdFRpbWUpOworICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRh
Ojpjb2FzdEN1cnZlKGN1cnZlLCBmYWN0b3IpOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTm9u
ZVRlc3Q6OmN1cnZlVGVzdElubmVyKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUgY3VydmUsIGRv
dWJsZSBzdGVwLCBkb3VibGUgdGltZSkKQEAgLTM0Myw3ICszMzQsNyBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3Q6OmN1cnZlVGVzdElubmVyKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUg
Y3VydmUsIGRvdQogICAgICAgICBvbGRQb3MgPSBuZXdQb3M7CiAgICAgICAgIG9sZFZlbG9jaXR5
ID0gdmVsb2NpdHk7CiAgICAgICAgIGlmIChjdXJ2ZSAhPSBTY3JvbGxBbmltYXRvck5vbmU6OkJv
dW5jZSkgewotICAgICAgICAgICAgRVhQRUNUX0xFKDAsIHZlbG9jaXR5RGVsdGEpOworICAgICAg
ICAgICAgRVhQRUNUX0xFKC0uMDAwMSwgdmVsb2NpdHlEZWx0YSk7CiAgICAgICAgICAgICBFWFBF
Q1RfTFQoMCwgZGVsdGEpOwogICAgICAgICB9CiAKQEAgLTM1NCw3ICszNDUsNyBAQCB2b2lkIFNj
cm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmN1cnZlVGVzdElubmVyKFNjcm9sbEFuaW1hdG9yTm9uZTo6
Q3VydmUgY3VydmUsIGRvdQogCiAgICAgb2xkUG9zID0gMDsKICAgICBvbGRWZWxvY2l0eSAqPSAy
OwotICAgIGFjY3VtdWxhdGUgPSBhdHRhY2tBcmVhKGN1cnZlLCAwLCAxKSAqIGtQb3NpdGlvbjsK
KyAgICBhY2N1bXVsYXRlID0gcmVsZWFzZUFyZWEoY3VydmUsIDAsIDEpICoga1Bvc2l0aW9uOwog
ICAgIGZvciAoZG91YmxlIHQgPSBzdGVwIDsgdCA8PSB0aW1lIDsgdCArPSBzdGVwKSB7CiAgICAg
ICAgIGRvdWJsZSBuZXdQb3MgPSByZWxlYXNlQ3VydmUoY3VydmUsIHQsIHRpbWUsIDAsIGtQb3Np
dGlvbik7CiAgICAgICAgIGRvdWJsZSBkZWx0YSA9IG5ld1BvcyAtIG9sZFBvczsKQEAgLTQxMCwx
NCArNDAxLDMxIEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBDdXJ2ZU1hdGhDdWJp
YykKICAgICBjdXJ2ZVRlc3QoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYyk7CiB9CiAKK1RFU1Rf
RihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBDdXJ2ZU1hdGhRdWFydGljKQoreworICAgIGN1cnZl
VGVzdChTY3JvbGxBbmltYXRvck5vbmU6OlF1YXJ0aWMpOworfQorCiBURVNUX0YoU2Nyb2xsQW5p
bWF0b3JOb25lVGVzdCwgQ3VydmVNYXRoQm91bmNlKQogewogICAgIGN1cnZlVGVzdChTY3JvbGxB
bmltYXRvck5vbmU6OkJvdW5jZSk7CiB9CiAKK1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0
LCBDdXJ2ZU1hdGhDb2FzdCkKK3sKKyAgICBmb3IgKGRvdWJsZSB0ID0gLjI1IDsgdCA8IDEgOyB0
ICs9IC4yNSkgeworICAgICAgICBFWFBFQ1RfRVEodCwgY29hc3RDdXJ2ZShTY3JvbGxBbmltYXRv
ck5vbmU6OkxpbmVhciwgdCkpOworICAgICAgICBFWFBFQ1RfTFQodCwgY29hc3RDdXJ2ZShTY3Jv
bGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgdCkpOworICAgICAgICBFWFBFQ1RfTFQodCwgY29h
c3RDdXJ2ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCB0KSk7CisgICAgICAgIEVYUEVDVF9M
VChjb2FzdEN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCB0KSwgY29hc3RDdXJ2
ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCB0KSk7CisgICAgICAgIEVYUEVDVF9MVCh0LCBj
b2FzdEN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhcnRpYywgdCkpOworICAgICAgICBFWFBF
Q1RfTFQoY29hc3RDdXJ2ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCB0KSwgY29hc3RDdXJ2
ZShTY3JvbGxBbmltYXRvck5vbmU6OlF1YXJ0aWMsIHQpKTsKKyAgICB9Cit9CisKIFRFU1RfRihT
Y3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxPbmNlTGluZWFyKQogewotICAgIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAs
IFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRv
ck5vbmU6OkxpbmVhciwgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpMaW5lYXIsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFy
LCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDQwLCAxMDAwLCBr
U3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtNDI3
LDcgKzQzNSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxPbmNlTGlu
ZWFyKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsT25jZVF1YWRyYXRp
YykKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVl
LCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtU
aWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOwor
ICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBr
VGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1l
LCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5p
bWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZl
cnRpY2FsU2Nyb2xsYmFyLCAxLCA0MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwog
ICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTQzNyw3ICs0NDUsNyBAQCBURVNUX0YoU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsT25jZVF1YWRyYXRpYykKIAogVEVTVF9GKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvbmdRdWFkcmF0aWMpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0
b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMjAgKiBrVGlja1RpbWUsIDAsIFNj
cm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRv
ck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25l
OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMjAgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6
OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDAp
OwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA0
MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1
ZTsKQEAgLTQ0Nyw3ICs0NTUsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Ny
b2xsTG9uZ1F1YWRyYXRpYykKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9s
bFF1YWRyYXRpY05vU3VzdGFpbikKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRl
cnMgcGFyYW1ldGVycyh0cnVlLCA4ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6
OlF1YWRyYXRpYywgNCAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMs
IDQgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJh
bWV0ZXJzKHRydWUsIDggKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJh
dGljLCA0ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgNCAqIGtU
aWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA0MCwgMTAwMCwga1N0YXJ0VGlt
ZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTQ1Nyw3ICs0NjUs
NyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsUXVhZHJhdGljTm9TdXN0
YWluKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsUXVhZHJhdGljU21v
b3RoZWQpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMo
dHJ1ZSwgOCAqIGtUaWNrVGltZSwgOCAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpR
dWFkcmF0aWMsIDQgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0
ICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1l
dGVycyh0cnVlLCA4ICoga1RpY2tUaW1lLCA4ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5v
bmU6OlF1YWRyYXRpYywgNCAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0
aWMsIDQgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAg
IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgNDAsIDEwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC00
NjcsNyArNDc1LDE3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxRdWFk
cmF0aWNTbW9vdGhlZCkKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9u
Y2VDdWJpYykKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVy
cyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lKTsKKyAg
ICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1Rp
Y2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3Jv
bGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6
OkxpbmVhciwgMCk7CisKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3Jv
bGxiYXIsIDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOworICAgIGZvciAoZG91YmxlIHQgPSBrU3RhcnRUaW1lOyByZXN1bHQgJiYg
dCA8IGtFbmRUaW1lOyB0ICs9IGtBbmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSBhbmlt
YXRlU2Nyb2xsKHQpOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xs
T25jZVF1YXJ0aWMpCit7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFydGlj
LCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YXJ0aWMsIDMgKiBrVGlja1Rp
bWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9t
UGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZw
YXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC00NzcsNyArNDk1LDcgQEAg
VEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VDdWJpYykKIAogVEVTVF9G
KFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VTaG9ydCkKIHsKLSAgICBTY3JvbGxB
bmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAw
LCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRv
ck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBh
cmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRv
ck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAz
ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDQwLCAxMDAwLCBrU3Rh
cnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtNDg3LDcg
KzUwNSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxPbmNlU2hvcnQp
CiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxUd2ljZVF1YWRyYXRpYykK
IHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3
ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAg
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlj
a1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBT
Y3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRp
Y2FsU2Nyb2xsYmFyLCAxLCA0MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAg
IGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTUxOCw5ICs1MzYsOSBAQCBURVNUX0YoU2Nyb2xsQW5p
bWF0b3JOb25lVGVzdCwgU2Nyb2xsVHdpY2VRdWFkcmF0aWMpCiAKIFRFU1RfRihTY3JvbGxBbmlt
YXRvck5vbmVUZXN0LCBTY3JvbGxMb3RzUXVhZHJhdGljKQogewotICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5v
bmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVh
ZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAK
LSAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDQwLCAx
MDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA0MCwgMTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0
ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAgICAgZG91YmxlIHQ7CiAgICAgZm9yICh0
ID0ga1N0YXJ0VGltZTsgcmVzdWx0ICYmIHQgPCBrU3RhcnRUaW1lICsgMS41ICoga1RpY2tUaW1l
OyB0ICs9IGtBbmltYXRpb25UaW1lKQpAQCAtNTM5LDcgKzU1NywyOCBAQCBURVNUX0YoU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c1F1YWRyYXRpYykKIAogVEVTVF9GKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvdHNRdWFkcmF0aWNTbW9vdGhlZCkKIHsKLSAgICBTY3Jv
bGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNrVGlt
ZSwgNiAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlj
a1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAg
ICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMCAqIGtU
aWNrVGltZSwgNiAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMg
KiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1l
LCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CisKKyAgICB1cGRhdGVEYXRhRnJvbVBh
cmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDQwLCAxMDAwMCwga1N0YXJ0VGltZSwgJnBh
cmFtZXRlcnMpOworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBkb3VibGUgdDsKKyAgICBm
b3IgKHQgPSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8IGtTdGFydFRpbWUgKyAxLjUgKiBrVGlj
a1RpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IGFuaW1hdGVTY3Jv
bGwodCk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAgdCAr
PSBrQW5pbWF0aW9uVGltZTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVTY3Jv
bGwodCk7CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoVmVydGljYWxTY3JvbGxiYXIsIDMsIDQwLCAxMDAwMCwgdCwgJnBhcmFtZXRlcnMpOworICAg
IH0KKworICAgIHQgKz0ga0FuaW1hdGlvblRpbWU7CisgICAgZm9yICg7IHJlc3VsdCAmJiB0IDwg
a0VuZFRpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAm
JiBhbmltYXRlU2Nyb2xsKHQpOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwg
U2Nyb2xsVHdpY2VDdWJpYykKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMg
cGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1
YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tU
aW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJv
bVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAm
cGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtNTQ3LDYgKzU4Niw1OCBA
QCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c1F1YWRyYXRpY1Ntb290
aGVkKQogICAgIGZvciAodCA9IGtTdGFydFRpbWU7IHJlc3VsdCAmJiB0IDwga1N0YXJ0VGltZSAr
IDEuNSAqIGtUaWNrVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKICAgICAgICAgcmVzdWx0ID0g
YW5pbWF0ZVNjcm9sbCh0KTsKIAorICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xs
KHQpOworICAgIGRvdWJsZSBiZWZvcmUgPSBtX2N1cnJlbnRQb3NpdGlvbjsKKyAgICByZXN1bHQg
PSByZXN1bHQgJiYgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAx
LCA0MCwgMTAwMCwgdCwgJnBhcmFtZXRlcnMpOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmlt
YXRlU2Nyb2xsKHQpOworICAgIGRvdWJsZSBhZnRlciA9IG1fY3VycmVudFBvc2l0aW9uOworICAg
IEVYUEVDVF9ORUFSKGJlZm9yZSwgYWZ0ZXIsIDEwKTsKKworICAgIHQgKz0ga0FuaW1hdGlvblRp
bWU7CisKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKKyAgICBiZWZv
cmUgPSBtX2N1cnJlbnRQb3NpdGlvbjsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA0MCwgMTAwMCwgdCwgJnBhcmFt
ZXRlcnMpOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOworICAgIGFm
dGVyID0gbV9jdXJyZW50UG9zaXRpb247CisgICAgRVhQRUNUX05FQVIoYmVmb3JlLCBhZnRlciwg
MTApOworCisgICAgdCArPSBrQW5pbWF0aW9uVGltZTsKKyAgICBmb3IgKDsgcmVzdWx0ICYmIHQg
PCBrRW5kVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gYW5pbWF0
ZVNjcm9sbCh0KTsKK30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExv
dHNDdWJpYykKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVy
cyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3Jv
bGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CisKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDQwLCAxMDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRl
cnMpOworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBkb3VibGUgdDsKKyAgICBmb3IgKHQg
PSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8IGtTdGFydFRpbWUgKyAxLjUgKiBrVGlja1RpbWU7
IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IGFuaW1hdGVTY3JvbGwodCk7
CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAgdCArPSBrQW5p
bWF0aW9uVGltZTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVTY3JvbGwodCk7
CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVy
dGljYWxTY3JvbGxiYXIsIDMsIDQwLCAxMDAwMCwgdCwgJnBhcmFtZXRlcnMpOworICAgIH0KKwor
ICAgIHQgKz0ga0FuaW1hdGlvblRpbWU7CisgICAgZm9yICg7IHJlc3VsdCAmJiB0IDwga0VuZFRp
bWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmlt
YXRlU2Nyb2xsKHQpOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xs
TG90c0N1YmljU21vb3RoZWQpCit7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJz
IHBhcmFtZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDYgKiBrVGlja1RpbWUsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3Vi
aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKKworICAg
IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgNDAsIDEwMDAw
LCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAg
IGRvdWJsZSB0OworICAgIGZvciAodCA9IGtTdGFydFRpbWU7IHJlc3VsdCAmJiB0IDwga1N0YXJ0
VGltZSArIDEuNSAqIGtUaWNrVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVz
dWx0ID0gYW5pbWF0ZVNjcm9sbCh0KTsKKwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA7ICsr
aSkgewogICAgICAgICB0ICs9IGtBbmltYXRpb25UaW1lOwogICAgICAgICByZXN1bHQgPSByZXN1
bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKQEAgLTU2MCw3ICs2NTEsNyBAQCBURVNUX0YoU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c1F1YWRyYXRpY1Ntb290aGVkKQogCiBURVNUX0Yo
U2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsV2hlZWxUcmFjZSkKIHsKLSAgICBTY3JvbGxB
bmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwg
MCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRv
ck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgMCwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwog
CiAgICAgLy8gQ29uc3RydWN0ZWQgZnJvbSBhbiBhY3R1YWwgc2Nyb2xsIHdoZWVsIHRyYWNlIHRo
YXQgZXhoaWJpdGVkIGEgZ2xpdGNoLgogICAgIGJvb2wgcmVzdWx0ID0gdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1My4zMywgMTAwMCwgMTAwLjU3ODEsICZw
YXJhbWV0ZXJzKTsKQEAgLTU4NCw3ICs2NzUsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25l
VGVzdCwgU2Nyb2xsV2hlZWxUcmFjZSkKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Qs
IFNjcm9sbFdoZWVsVHJhY2VTbW9vdGhlZCkKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBh
cmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgNyAqIGtUaWNrVGltZSwg
U2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5v
bmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgNyAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5p
bWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5l
YXIsIDApOwogCiAgICAgLy8gQ29uc3RydWN0ZWQgZnJvbSBhbiBhY3R1YWwgc2Nyb2xsIHdoZWVs
IHRyYWNlIHRoYXQgZXhoaWJpdGVkIGEgZ2xpdGNoLgogICAgIGJvb2wgcmVzdWx0ID0gdXBkYXRl
RGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1My4zMywgMTAwMCwgMTAw
LjU3ODEsICZwYXJhbWV0ZXJzKTsKQEAgLTYwOCw3ICs2OTksNyBAQCBURVNUX0YoU2Nyb2xsQW5p
bWF0b3JOb25lVGVzdCwgU2Nyb2xsV2hlZWxUcmFjZVNtb290aGVkKQogCiBURVNUX0YoU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdCwgTGludXhUcmFja1BhZFRyYWNlKQogewotICAgIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAwLCBT
Y3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAwLCBTY3JvbGxB
bmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1
YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAg
ICBib29sIHJlc3VsdCA9IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJh
ciwgMS4wMCwgNjAuMDAsIDEwMDAsIDEwMC42ODYzLCAmcGFyYW1ldGVycyk7CiAgICAgcmVzdWx0
ID0gcmVzdWx0ICYmIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwg
MS4wMCwgMjAuMDAsIDEwMDAsIDEwMC42ODk3LCAmcGFyYW1ldGVycyk7CkBAIC02MzgsNyArNzI5
LDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIExpbnV4VHJhY2tQYWRUcmFjZSkK
IAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIExpbnV4VHJhY2tQYWRUcmFjZVNtb290
aGVkKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRy
dWUsIDExICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1
YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMg
KiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0
ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5v
bmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICBib29sIHJl
c3VsdCA9IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMS4wMCwg
NjAuMDAsIDEwMDAsIDEwMC42ODYzLCAmcGFyYW1ldGVycyk7CiAgICAgcmVzdWx0ID0gcmVzdWx0
ICYmIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMS4wMCwgMjAu
MDAsIDEwMDAsIDEwMC42ODk3LCAmcGFyYW1ldGVycyk7CkBAIC02NjgsNyArNzU5LDcgQEAgVEVT
VF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIExpbnV4VHJhY2tQYWRUcmFjZVNtb290aGVkKQog
CiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsRG93blRvQnVtcGVyKQogewot
ICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDEwICog
a1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywg
MyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1Rp
bWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUs
IDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1Ymlj
LCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1l
LCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJvbVBh
cmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDIwLCAyMDAsIGtTdGFydFRpbWUsICZwYXJh
bWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC02ODYsMTAgKzc3Nyw5IEBAIFRF
U1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxEb3duVG9CdW1wZXIpCiAgICAgY2hl
Y2tTb2Z0TGFuZGluZygyMDApOwogfQogCi0KIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0
LCBTY3JvbGxVcFRvQnVtcGVyKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKHRydWUsIDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFy
YW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBT
Y3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5v
bmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7
CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIC0y
MCwgMjAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVl
OwpAQCAtNzA3LDQgKzc5NywxNzkgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNj
cm9sbFVwVG9CdW1wZXIpCiAgICAgY2hlY2tTb2Z0TGFuZGluZygwKTsKIH0KIAorVEVTVF9GKFNj
cm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFVwVG9CdW1wZXJDb2FzdCkKK3sKKyAgICBTY3Jv
bGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGlt
ZSwgMiAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpMaW5lYXIsIDEpOworCisgICAgbV9jdXJyZW50UG9zaXRpb24gPSA0MDAwMDsKKyAg
ICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIC0xMDAwMCwg
NTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7
CisgICAgZG91YmxlIHQgPSBrU3RhcnRUaW1lOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7
ICsraSkgeworICAgICAgICB0ICs9IGtBbmltYXRpb25UaW1lOworICAgICAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKKyAgICAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCAtMTAwMDAsIDUwMDAwLCB0LCAmcGFyYW1ldGVycyk7
CisgICAgfQorICAgIGNoZWNrRGVzaXJlZFBvc2l0aW9uKDApOworCisgICAgdCArPSBrQW5pbWF0
aW9uVGltZTsKKyAgICBmb3IgKDsgcmVzdWx0ICYmIHQgPCBrRW5kVGltZTsgdCArPSBrQW5pbWF0
aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVTY3JvbGwodCk7Cisg
ICAgY2hlY2tTb2Z0TGFuZGluZygwKTsKK30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRl
c3QsIFNjcm9sbERvd25Ub0J1bXBlckNvYXN0KQoreworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAyICoga1RpY2tUaW1l
LCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRv
ck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwg
MSk7CisKKyAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IDEwMDAwOworICAgIHVwZGF0ZURhdGFGcm9t
UGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgMTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIGRvdWJsZSB0ID0g
a1N0YXJ0VGltZTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAg
dCArPSBrQW5pbWF0aW9uVGltZTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVT
Y3JvbGwodCk7CisgICAgICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9s
bGJhciwgMSwgMTAwMDAsIDUwMDAwLCB0LCAmcGFyYW1ldGVycyk7CisgICAgfQorICAgIGNoZWNr
RGVzaXJlZFBvc2l0aW9uKDUwMDAwKTsKKworICAgIHQgKz0ga0FuaW1hdGlvblRpbWU7CisgICAg
Zm9yICg7IHJlc3VsdCAmJiB0IDwga0VuZFRpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAg
ICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOworICAgIGNoZWNrU29mdExh
bmRpbmcoNTAwMDApOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgVmFyeWlu
Z0lucHV0c0VxdWl2YWxlbmN5KQoreworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKHRydWUsIDE1ICoga1RpY2tUaW1lLCAxMCAqIGtUaWNrVGltZSwgU2Nyb2xs
QW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpD
dWJpYywgNSAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOworCisg
ICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxi
YXIsIDEsIDMwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVy
QXhpc0RhdGEgZGF0YVNpbmdsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRl
RGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCAxNTAsIDUwMDAwLCBrU3Rh
cnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRp
Y2FsU2Nyb2xsYmFyLCAxLCAxNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7Cisg
ICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFEb3VibGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgMTAwLCA1
MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1l
dGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgMTAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwg
MSwgMTAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlz
RGF0YSBkYXRhVHJpcGxlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDUwLCA1MDAwMCwga1N0YXJ0VGlt
ZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNj
cm9sbGJhciwgMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBk
YXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1MCwgNTAwMDAsIGtT
dGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVy
dGljYWxTY3JvbGxiYXIsIDEsIDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgNTAsIDUw
MDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0
ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YU1hbnkoKm1fZGF0YSk7CisKKyAgICBFWFBF
Q1RfRVEoZGF0YVNpbmdsZSwgZGF0YURvdWJsZSk7CisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUs
IGRhdGFUcmlwbGUpOworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhTWFueSk7Cit9CisK
K1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBWYXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3lD
b2FzdCkKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0
cnVlLCAxNSAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlj
a1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAxKTsKKworICAgIHJlc2V0KCk7Cisg
ICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCAzMDAsIDUw
MDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFT
aW5nbGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1l
dGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgMTUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwg
MSwgMTUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlz
RGF0YSBkYXRhRG91YmxlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDEwMCwgNTAwMDAsIGtTdGFydFRp
bWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxT
Y3JvbGxiYXIsIDEsIDEwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDEwMCwgNTAwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YVRyaXBs
ZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJz
KFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJz
KTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDUw
LCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFy
YW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFy
LCAxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDUwLCA1MDAwMCwga1N0YXJ0VGlt
ZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNj
cm9sbGJhciwgMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2
ZVBlckF4aXNEYXRhIGRhdGFNYW55KCptX2RhdGEpOworCisgICAgRVhQRUNUX0VRKGRhdGFTaW5n
bGUsIGRhdGFEb3VibGUpOworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhVHJpcGxlKTsK
KyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YU1hbnkpOworfQorCitURVNUX0YoU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdCwgVmFyeWluZ0lucHV0c0VxdWl2YWxlbmN5Q29hc3RMYXJnZSkKK3sK
KyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxNSAq
IGtUaWNrVGltZSwgMTAgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUg
KiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNj
cm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAxKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRl
RGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCAzMDAwMCwgNTAwMDAsIGtT
dGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YVNpbmdsZSgq
bV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZl
cnRpY2FsU2Nyb2xsYmFyLCAxLCAxNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJz
KTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDE1
MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0
YSBkYXRhRG91YmxlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJv
bVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDEwMDAwLCA1MDAwMCwga1N0YXJ0VGlt
ZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNj
cm9sbGJhciwgMSwgMTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAg
dXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCAxMDAwMCwgNTAw
MDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YVRy
aXBsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwg
MSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRU
aW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2Fs
U2Nyb2xsYmFyLCAxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAg
IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgNTAwMCwgNTAw
MDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1l
dGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFNYW55KCptX2RhdGEpOworCisgICAgRVhQ
RUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFEb3VibGUpOworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xl
LCBkYXRhVHJpcGxlKTsKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YU1hbnkpOworfQor
CitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgVmFyeWluZ0lucHV0c0VxdWl2YWxlbmN5
Q29hc3RTdGVlcCkKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1l
dGVycyh0cnVlLCAxNSAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUg
KiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAxKTsKKworICAgIHJl
c2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAx
LCAzMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhp
c0RhdGEgZGF0YVNpbmdsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCAxNTAwMCwgNTAwMDAsIGtTdGFy
dFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGlj
YWxTY3JvbGxiYXIsIDEsIDE1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwor
ICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhRG91YmxlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsK
KyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDEwMDAw
LCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycyhWZXJ0aWNhbFNjcm9sbGJhciwgMSwgMTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAm
cGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xs
YmFyLCAxLCAxMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZl
UGVyQXhpc0RhdGEgZGF0YVRyaXBsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBk
YXRlRGF0YUZyb21QYXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1MDAwLCA1MDAwMCwg
a1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhW
ZXJ0aWNhbFNjcm9sbGJhciwgMSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJz
KTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDUw
MDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKFZlcnRpY2FsU2Nyb2xsYmFyLCAxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwg
JnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhWZXJ0aWNhbFNjcm9s
bGJhciwgMSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoVmVydGljYWxTY3JvbGxiYXIsIDEsIDUwMDAsIDUwMDAwLCBr
U3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFNYW55KCpt
X2RhdGEpOworCisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFEb3VibGUpOworICAgIEVY
UEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhVHJpcGxlKTsKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmds
ZSwgZGF0YU1hbnkpOworfQorCisKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104371</attachid>
            <date>2011-08-18 11:34:17 -0700</date>
            <delta_ts>2011-08-18 12:02:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66258-20110818113416.patch</filename>
            <type>text/plain</type>
            <size>50534</size>
            <attacher name="Scott Byer">scottbyer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMzMTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmOWYxNTI3MWE1YTZiMzI5
YTE2OThkMGYwNWI5OTQ4ODU3NmE4ZTc0Li45ODNmMmYzZWNmMmU4NmZkMjEyOGZhMTc1MTg1Zjgy
MmExOTc2MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDgtMTUgIFNjb3R0
IEJ5ZXIgIDxzY290dGJ5ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZSBjb2FzdGluZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNTgKKworICAgICAgICBJbmNyZWFzZSB0aGUgYW5pbWF0
aW9uIHRpbWUgYmFzZWQgb24gdGhlIHZlbG9jaXR5IG9mIHRoZSBzY3JvbGwsIHVwIHRvIGEKKyAg
ICAgICAgbWF4aW11bSBhbW91bnQuIEZpeCBidWdzIGZvdW5kIGJ5IGFkZGl0aW9uYWwgdW5pdCB0
ZXN0aW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGl0aW9uYWwgdGVzdHMgaW4gU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDogQ3VydmVNYXRoUXVh
cnRpYywgQ3VydmVNYXRoQ29hc3QsCisgICAgICAgIFNjcm9sbE9uY2VRdWFydGljLCBTY3JvbGxU
d2ljZUN1YmljLCBTY3JvbGxMb3RzQ3ViaWMsIFNjcm9sbExvdHNDdWJpY1Ntb290aGVkLAorICAg
ICAgICBTY3JvbGxVcFRvQnVtcGVyQ29hc3QsIFNjcm9sbERvd25Ub0J1bXBlckNvYXN0LCBWYXJ5
aW5nSW5wdXRzRXF1aXZhbGVuY3ksCisgICAgICAgIFZhcnlpbmdJbnB1dHNFcXVpdmFsZW5jeUNv
YXN0LCBWYXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3lDb2FzdExhcmdlLAorICAgICAgICBWYXJ5aW5n
SW5wdXRzRXF1aXZhbGVuY3lDb2FzdFN0ZWVwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxB
bmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlQXQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y29hc3RDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZUludGVncmFsQXQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6YXR0YWNrQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxl
YXNlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNE
YXRhOjpQZXJBeGlzRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6
OlBlckF4aXNEYXRhOjp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlVmlzaWJsZUxlbmd0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlNjcm9sbEFuaW1hdG9yTm9u
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OndpbGxFbmRMaXZlUmVzaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6ZGlkQWRkVmVydGljYWxTY3JvbGxi
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6dXBk
YXRlVmlzaWJsZUxlbmd0aHMpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5oOgorCiAyMDExLTA4LTE4ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IGNsYW5nIGxpYmMrKyBDKysweCBidWlsZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKaW5kZXggYjllN2M2OWI3NWM4ZGY0
ZGRmZmMyNGQxMmQwNTA4NzIyZGViNjM3Yi4uODE3ZTIzZWMwN2E3MGI0Yjg5M2NmOTZiMDg1YzY2
MjNmOTU1MTA2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3JOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRv
ck5vbmUuY3BwCkBAIC02NCw3ICs2NCw3IEBAIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVy
czo6UGFyYW1ldGVycygpCiB7CiB9CiAKLVNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVyczo6
UGFyYW1ldGVycyhib29sIGlzRW5hYmxlZCwgZG91YmxlIGFuaW1hdGlvblRpbWUsIGRvdWJsZSBy
ZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUsIEN1cnZlIGF0dGFja0N1cnZlLCBkb3VibGUgYXR0YWNr
VGltZSwgQ3VydmUgcmVsZWFzZUN1cnZlLCBkb3VibGUgcmVsZWFzZVRpbWUpCitTY3JvbGxBbmlt
YXRvck5vbmU6OlBhcmFtZXRlcnM6OlBhcmFtZXRlcnMoYm9vbCBpc0VuYWJsZWQsIGRvdWJsZSBh
bmltYXRpb25UaW1lLCBkb3VibGUgcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lLCBDdXJ2ZSBhdHRh
Y2tDdXJ2ZSwgZG91YmxlIGF0dGFja1RpbWUsIEN1cnZlIHJlbGVhc2VDdXJ2ZSwgZG91YmxlIHJl
bGVhc2VUaW1lLCBDdXJ2ZSBjb2FzdFRpbWVDdXJ2ZSwgZG91YmxlIG1heGltdW1Db2FzdFRpbWUp
CiAgICAgOiBtX2lzRW5hYmxlZChpc0VuYWJsZWQpCiAgICAgLCBtX2FuaW1hdGlvblRpbWUoYW5p
bWF0aW9uVGltZSkKICAgICAsIG1fcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lKHJlcGVhdE1pbmlt
dW1TdXN0YWluVGltZSkKQEAgLTcyLDYgKzcyLDggQEAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJh
bWV0ZXJzOjpQYXJhbWV0ZXJzKGJvb2wgaXNFbmFibGVkLCBkb3VibGUgYW5pbWF0aW9uVGltZSwK
ICAgICAsIG1fYXR0YWNrVGltZShhdHRhY2tUaW1lKQogICAgICwgbV9yZWxlYXNlQ3VydmUocmVs
ZWFzZUN1cnZlKQogICAgICwgbV9yZWxlYXNlVGltZShyZWxlYXNlVGltZSkKKyAgICAsIG1fY29h
c3RUaW1lQ3VydmUoY29hc3RUaW1lQ3VydmUpCisgICAgLCBtX21heGltdW1Db2FzdFRpbWUobWF4
aW11bUNvYXN0VGltZSkKIHsKIH0KIApAQCAtNzksMTAgKzgxLDEyIEBAIGRvdWJsZSBTY3JvbGxB
bmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZUF0KEN1cnZlIGN1cnZlLCBkb3VibGUgdCkK
IHsKICAgICBzd2l0Y2ggKGN1cnZlKSB7CiAgICAgY2FzZSBMaW5lYXI6Ci0gICAgICAgIHJldHVy
biB0ICogdDsKKyAgICAgICAgcmV0dXJuIHQ7CiAgICAgY2FzZSBRdWFkcmF0aWM6Ci0gICAgICAg
IHJldHVybiB0ICogdCAqIHQ7CisgICAgICAgIHJldHVybiB0ICogdDsKICAgICBjYXNlIEN1Ymlj
OgorICAgICAgICByZXR1cm4gdCAqIHQgKiB0OworICAgIGNhc2UgUXVhcnRpYzoKICAgICAgICAg
cmV0dXJuIHQgKiB0ICogdCAqIHQ7CiAgICAgY2FzZSBCb3VuY2U6CiAgICAgICAgIGlmICh0IDwg
MSAvIDIuNzUpCkBAIC05OCw2ICsxMDIsOCBAQCBkb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
ZXJBeGlzRGF0YTo6Y3VydmVBdChDdXJ2ZSBjdXJ2ZSwgZG91YmxlIHQpCiAgICAgICAgIHQgLT0g
Mi42MjUgLyAyLjc1OwogICAgICAgICByZXR1cm4gNy41NjI1ICogdCAqIHQgKyAuOTg0Mzc1Owog
ICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogZG91
YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OmF0dGFja0N1cnZlKEN1cnZlIGN1
cnZlLCBkb3VibGUgZGVsdGFUaW1lLCBkb3VibGUgY3VydmVULCBkb3VibGUgc3RhcnRQb3NpdGlv
biwgZG91YmxlIGF0dGFja1Bvc2l0aW9uKQpAQCAtMTE0LDIyICsxMjAsNjQgQEAgZG91YmxlIFNj
cm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OnJlbGVhc2VDdXJ2ZShDdXJ2ZSBjdXJ2ZSwg
ZG91YmxlIGRlbHRhVGkKICAgICByZXR1cm4gcmVsZWFzZVBvc2l0aW9uICsgKHBvc2l0aW9uRmFj
dG9yICogKGRlc2lyZWRQb3NpdGlvbiAtIHJlbGVhc2VQb3NpdGlvbikpOwogfQogCi1kb3VibGUg
U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y3VydmVEZXJpdmF0aXZlQXQoQ3VydmUg
Y3VydmUsIGRvdWJsZSB0KQorZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6
OmNvYXN0Q3VydmUoQ3VydmUgY3VydmUsIGRvdWJsZSBmYWN0b3IpCit7CisgICAgcmV0dXJuIDEg
LSBjdXJ2ZUF0KGN1cnZlLCAxIC0gZmFjdG9yKTsKK30KKworZG91YmxlIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlSW50ZWdyYWxBdChDdXJ2ZSBjdXJ2ZSwgZG91YmxlIHQp
CiB7CiAgICAgc3dpdGNoIChjdXJ2ZSkgewogICAgIGNhc2UgTGluZWFyOgotICAgICAgICByZXR1
cm4gdCAqIDI7CisgICAgICAgIHJldHVybiB0ICogdCAvIDI7CiAgICAgY2FzZSBRdWFkcmF0aWM6
Ci0gICAgICAgIHJldHVybiB0ICogdCAqIDM7CisgICAgICAgIHJldHVybiB0ICogdCAqIHQgLyAz
OwogICAgIGNhc2UgQ3ViaWM6Ci0gICAgICAgIHJldHVybiB0ICogdCAqIHQgKiA0OworICAgICAg
ICByZXR1cm4gdCAqIHQgKiB0ICogdCAvIDQ7CisgICAgY2FzZSBRdWFydGljOgorICAgICAgICBy
ZXR1cm4gdCAqIHQgKiB0ICogdCAqIHQgLyA1OwogICAgIGNhc2UgQm91bmNlOgotICAgICAgICBy
ZXR1cm4gdDsKKyAgICAgICAgZG91YmxlIGFyZWE7CisgICAgICAgIGRvdWJsZSB0MSA9IHN0ZDo6
bWluKHQsIDEgLyAyLjc1KTsKKyAgICAgICAgYXJlYSA9IDIuNTIwODMgKiB0MSAqIHQxICogdDE7
CisgICAgICAgIGlmICh0IDwgMSAvIDIuNzUpCisgICAgICAgICAgICByZXR1cm4gYXJlYTsKKyAg
ICAgICAgdDEgPSBzdGQ6Om1pbih0IC0gMSAvIDIuNzUsIDEgLyAyLjc1KTsKKyAgICAgICAgZG91
YmxlIGJvdW5jZUFyZWEgPSB0MSAqICh0MSAqICgyLjUyMDgzICogdDEgLSAxLjM3NSkgKyAxKTsK
KyAgICAgICAgYXJlYSArPSBib3VuY2VBcmVhOworICAgICAgICBpZiAodCA8IDIgLyAyLjc1KQor
ICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgICAgIHQxID0gc3RkOjptaW4odCAtIDIgLyAy
Ljc1LCAwLjUgLyAyLjc1KTsKKyAgICAgICAgYm91bmNlQXJlYSA9ICB0MSAqICh0MSAqICgyLjUy
MDgzICogdDEgLSAwLjY4NzUpICsgMSk7CisgICAgICAgIGFyZWEgKz0gYm91bmNlQXJlYTsKKyAg
ICAgICAgaWYgKHQgPCAyLjUgLyAyLjc1KQorICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAg
ICAgIHQxID0gdCAtIDIuNSAvIDIuNzU7CisgICAgICAgIGJvdW5jZUFyZWEgPSB0MSAqICh0MSAq
ICgyLjUyMDgzICogdDEgLSAwLjM0Mzc1KSArIDEpOworICAgICAgICBhcmVhICs9IGJvdW5jZUFy
ZWE7CisgICAgICAgIHJldHVybiBhcmVhOwogICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhp
c0RhdGE6OmF0dGFja0FyZWEoQ3VydmUgY3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRU
KQoreworICAgIGRvdWJsZSBzdGFydFZhbHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCBzdGFy
dFQpOworICAgIGRvdWJsZSBlbmRWYWx1ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgZW5kVCk7
CisgICAgcmV0dXJuIGVuZFZhbHVlIC0gc3RhcnRWYWx1ZTsKK30KKworZG91YmxlIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OnJlbGVhc2VBcmVhKEN1cnZlIGN1cnZlLCBkb3VibGUg
c3RhcnRULCBkb3VibGUgZW5kVCkKK3sKKyAgICBkb3VibGUgc3RhcnRWYWx1ZSA9IGN1cnZlSW50
ZWdyYWxBdChjdXJ2ZSwgMSAtIGVuZFQpOworICAgIGRvdWJsZSBlbmRWYWx1ZSA9IGN1cnZlSW50
ZWdyYWxBdChjdXJ2ZSwgMSAtIHN0YXJ0VCk7CisgICAgcmV0dXJuIGVuZFZhbHVlIC0gc3RhcnRW
YWx1ZTsKIH0KIAotU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6UGVyQXhpc0RhdGEo
U2Nyb2xsQW5pbWF0b3JOb25lKiBwYXJlbnQsIGZsb2F0KiBjdXJyZW50UG9zaXRpb24pCitTY3Jv
bGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpQZXJBeGlzRGF0YShTY3JvbGxBbmltYXRvck5v
bmUqIHBhcmVudCwgZmxvYXQqIGN1cnJlbnRQb3NpdGlvbiwgTGF5b3V0VW5pdCB2aXNpYmxlTGVu
Z3RoKQogICAgIDogbV9jdXJyZW50UG9zaXRpb24oY3VycmVudFBvc2l0aW9uKQorICAgICwgbV92
aXNpYmxlTGVuZ3RoKHZpc2libGVMZW5ndGgpCiB7CiAgICAgcmVzZXQoKTsKIH0KQEAgLTE2MCwy
MCArMjA4LDYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZXNldCgp
CiAKIGJvb2wgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIGZsb2F0IHNjcm9sbGFibGVT
aXplLCBkb3VibGUgY3VycmVudFRpbWUsIFBhcmFtZXRlcnMqIHBhcmFtZXRlcnMpCiB7Ci0gICAg
aWYgKHBhcmFtZXRlcnMtPm1fYW5pbWF0aW9uVGltZSA+IG1fYW5pbWF0aW9uVGltZSkKLSAgICAg
ICAgbV9hbmltYXRpb25UaW1lID0gcGFyYW1ldGVycy0+bV9hbmltYXRpb25UaW1lOwotICAgIG1f
YXR0YWNrVGltZSA9IHBhcmFtZXRlcnMtPm1fYXR0YWNrVGltZTsKLSAgICBtX3JlbGVhc2VUaW1l
ID0gcGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZTsKLSAgICBtX2F0dGFja0N1cnZlID0gcGFyYW1l
dGVycy0+bV9hdHRhY2tDdXJ2ZTsKLSAgICBtX3JlbGVhc2VDdXJ2ZSA9IHBhcmFtZXRlcnMtPm1f
cmVsZWFzZUN1cnZlOwotCi0gICAgLy8gUHJpb3JpdGl6ZSBvdXIgd2F5IG91dCBvZiBvdmVyIGNv
bnN0cmFpbnQuCi0gICAgaWYgKG1fYXR0YWNrVGltZSArIG1fcmVsZWFzZVRpbWUgPiBtX2FuaW1h
dGlvblRpbWUpIHsKLSAgICAgICAgaWYgKG1fcmVsZWFzZVRpbWUgPiBtX2FuaW1hdGlvblRpbWUp
Ci0gICAgICAgICAgICBtX3JlbGVhc2VUaW1lID0gbV9hbmltYXRpb25UaW1lOwotICAgICAgICBt
X2F0dGFja1RpbWUgPSBtX2FuaW1hdGlvblRpbWUgLSBtX3JlbGVhc2VUaW1lOwotICAgIH0KLQog
ICAgIGlmICghbV9zdGFydFRpbWUpCiAgICAgICAgIG1fZGVzaXJlZFBvc2l0aW9uID0gKm1fY3Vy
cmVudFBvc2l0aW9uOwogICAgIGZsb2F0IG5ld1Bvc2l0aW9uID0gbV9kZXNpcmVkUG9zaXRpb24g
KyAoc3RlcCAqIG11bHRpcGxpZXIpOwpAQCAtMTg3LDYgKzIyMSwyMSBAQCBib29sIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhmbG9hdCBz
dGVwLCBmbG9hdAogICAgIG1fZGVzaXJlZFBvc2l0aW9uID0gbmV3UG9zaXRpb247CiAKICAgICBp
ZiAoIW1fc3RhcnRUaW1lKSB7CisgICAgICAgIG1fYXR0YWNrVGltZSA9IHBhcmFtZXRlcnMtPm1f
YXR0YWNrVGltZTsKKyAgICAgICAgbV9hdHRhY2tDdXJ2ZSA9IHBhcmFtZXRlcnMtPm1fYXR0YWNr
Q3VydmU7CisgICAgfQorICAgIG1fYW5pbWF0aW9uVGltZSA9IHBhcmFtZXRlcnMtPm1fYW5pbWF0
aW9uVGltZTsKKyAgICBtX3JlbGVhc2VUaW1lID0gcGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZTsK
KyAgICBtX3JlbGVhc2VDdXJ2ZSA9IHBhcmFtZXRlcnMtPm1fcmVsZWFzZUN1cnZlOworCisgICAg
Ly8gUHJpb3JpdGl6ZSBvdXIgd2F5IG91dCBvZiBvdmVyIGNvbnN0cmFpbnQuCisgICAgaWYgKG1f
YXR0YWNrVGltZSArIG1fcmVsZWFzZVRpbWUgPiBtX2FuaW1hdGlvblRpbWUpIHsKKyAgICAgICAg
aWYgKG1fcmVsZWFzZVRpbWUgPiBtX2FuaW1hdGlvblRpbWUpCisgICAgICAgICAgICBtX3JlbGVh
c2VUaW1lID0gbV9hbmltYXRpb25UaW1lOworICAgICAgICBtX2F0dGFja1RpbWUgPSBtX2FuaW1h
dGlvblRpbWUgLSBtX3JlbGVhc2VUaW1lOworICAgIH0KKworICAgIGlmICghbV9zdGFydFRpbWUp
IHsKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIHRoZSB0aW1lIGZyb20gdGhlIGV2
ZW50IHRoYXQgZ290IHVzIGhlcmUuCiAgICAgICAgIG1fc3RhcnRUaW1lID0gY3VycmVudFRpbWUg
LSBrVGlja1RpbWUgLyAyOwogICAgICAgICBtX3N0YXJ0UG9zaXRpb24gPSAqbV9jdXJyZW50UG9z
aXRpb247CkBAIC0yMDcsMTYgKzI1NiwzOCBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVy
QXhpc0RhdGE6OnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhmbG9hdCBzdGVwLCBmbG9hdAogICAg
ICAgICB0aW1lTGVmdCA9IG1pblRpbWVMZWZ0OwogICAgIH0KIAorICAgIGlmIChwYXJhbWV0ZXJz
LT5tX21heGltdW1Db2FzdFRpbWUgPiAocGFyYW1ldGVycy0+bV9yZXBlYXRNaW5pbXVtU3VzdGFp
blRpbWUgKyBwYXJhbWV0ZXJzLT5tX3JlbGVhc2VUaW1lKSkgeworICAgICAgICBkb3VibGUgdGFy
Z2V0TWF4Q29hc3RWZWxvY2l0eSA9IG1fdmlzaWJsZUxlbmd0aCAqIC4yNSAqIGtGcmFtZVJhdGU7
CisgICAgICAgIC8vIFRoaXMgbmVlZHMgdG8gYmUgYXMgbWluaW1hbCBhcyBwb3NzaWJsZSB3aGls
ZSBub3QgYmVpbmcgaW50cnVzaXZlIHRvIHBhZ2UgdXAvZG93bi4KKyAgICAgICAgZG91YmxlIG1p
bkNvYXN0RGVsdGEgPSBtX3Zpc2libGVMZW5ndGg7CisKKyAgICAgICAgaWYgKGFicyhyZW1haW5p
bmdEZWx0YSkgPiBtaW5Db2FzdERlbHRhKSB7CisgICAgICAgICAgICBkb3VibGUgbWF4Q29hc3RE
ZWx0YSA9IHBhcmFtZXRlcnMtPm1fbWF4aW11bUNvYXN0VGltZSAqIHRhcmdldE1heENvYXN0VmVs
b2NpdHk7CisgICAgICAgICAgICBkb3VibGUgY29hc3RGYWN0b3IgPSBtaW4oMS4sIChhYnMocmVt
YWluaW5nRGVsdGEpIC0gbWluQ29hc3REZWx0YSkgLyAobWF4Q29hc3REZWx0YSAtIG1pbkNvYXN0
RGVsdGEpKTsKKworICAgICAgICAgICAgLy8gV2UgY291bGQgcGxheSB3aXRoIHRoZSBjdXJ2ZSBo
ZXJlIC0gbGluZWFyIHNlZW1zIGEgbGl0dGxlIHNvZnQuIEluaXRpYWwgdGVzdGluZyBtYWtlcyBt
ZSB3YW50IHRvIGZlZWQgaW50byB0aGUgc3VzdGFpbiB0aW1lIG1vcmUgYWdncmVzc2l2ZWx5Lgor
ICAgICAgICAgICAgZG91YmxlIGNvYXN0TWluVGltZUxlZnQgPSBtaW4ocGFyYW1ldGVycy0+bV9t
YXhpbXVtQ29hc3RUaW1lLCBtaW5UaW1lTGVmdCArIGNvYXN0Q3VydmUocGFyYW1ldGVycy0+bV9j
b2FzdFRpbWVDdXJ2ZSwgY29hc3RGYWN0b3IpICogKHBhcmFtZXRlcnMtPm1fbWF4aW11bUNvYXN0
VGltZSAtIG1pblRpbWVMZWZ0KSk7CisKKyAgICAgICAgICAgIGRvdWJsZSBhZGRpdGlvbmFsVGlt
ZSA9IG1heCgwLiwgY29hc3RNaW5UaW1lTGVmdCAtIG1pblRpbWVMZWZ0KTsKKyAgICAgICAgICAg
IGlmIChhZGRpdGlvbmFsVGltZSkgeworICAgICAgICAgICAgICAgIGRvdWJsZSBhZGRpdGlvbmFs
UmVsZWFzZVRpbWUgPSBtaW4oYWRkaXRpb25hbFRpbWUsIHBhcmFtZXRlcnMtPm1fcmVsZWFzZVRp
bWUgLyAocGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZSArIHBhcmFtZXRlcnMtPm1fcmVwZWF0TWlu
aW11bVN1c3RhaW5UaW1lKSAqIGFkZGl0aW9uYWxUaW1lKTsKKyAgICAgICAgICAgICAgICBtX3Jl
bGVhc2VUaW1lID0gcGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZSArIGFkZGl0aW9uYWxSZWxlYXNl
VGltZTsKKyAgICAgICAgICAgICAgICBtX2FuaW1hdGlvblRpbWUgPSBkZWx0YVRpbWUgKyBjb2Fz
dE1pblRpbWVMZWZ0OworICAgICAgICAgICAgICAgIHRpbWVMZWZ0ID0gY29hc3RNaW5UaW1lTGVm
dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKwogICAgIGRvdWJsZSByZWxlYXNl
VGltZUxlZnQgPSBtaW4odGltZUxlZnQsIG1fcmVsZWFzZVRpbWUpOwogICAgIGRvdWJsZSBzdXN0
YWluVGltZUxlZnQgPSBtYXgoMC4sIHRpbWVMZWZ0IC0gcmVsZWFzZVRpbWVMZWZ0IC0gYXR0YWNr
VGltZUxlZnQpOwogCiAgICAgaWYgKGF0dGFja1RpbWVMZWZ0KSB7CiAgICAgICAgIGRvdWJsZSBh
dHRhY2tTcG90ID0gZGVsdGFUaW1lIC8gbV9hdHRhY2tUaW1lOwotICAgICAgICBhdHRhY2tBcmVh
TGVmdCA9IGF0dGFja1RpbWVMZWZ0IC8gKGN1cnZlRGVyaXZhdGl2ZUF0KG1fYXR0YWNrQ3VydmUs
IDEpIC0gY3VydmVEZXJpdmF0aXZlQXQobV9hdHRhY2tDdXJ2ZSwgYXR0YWNrU3BvdCkpOworICAg
ICAgICBhdHRhY2tBcmVhTGVmdCA9IGF0dGFja0FyZWEobV9hdHRhY2tDdXJ2ZSwgYXR0YWNrU3Bv
dCwgMSkgKiBtX2F0dGFja1RpbWU7CiAgICAgfQogCiAgICAgZG91YmxlIHJlbGVhc2VTcG90ID0g
KG1fcmVsZWFzZVRpbWUgLSByZWxlYXNlVGltZUxlZnQpIC8gbV9yZWxlYXNlVGltZTsKLSAgICBk
b3VibGUgcmVsZWFzZUFyZWFMZWZ0ICA9IHJlbGVhc2VUaW1lTGVmdCAvIChjdXJ2ZURlcml2YXRp
dmVBdChtX3JlbGVhc2VDdXJ2ZSwgMSkgLSBjdXJ2ZURlcml2YXRpdmVBdChtX3JlbGVhc2VDdXJ2
ZSwgcmVsZWFzZVNwb3QpKTsKKyAgICBkb3VibGUgcmVsZWFzZUFyZWFMZWZ0ICA9IHJlbGVhc2VB
cmVhKG1fcmVsZWFzZUN1cnZlLCByZWxlYXNlU3BvdCwgMSkgKiBtX3JlbGVhc2VUaW1lOwogCiAg
ICAgbV9kZXNpcmVkVmVsb2NpdHkgPSByZW1haW5pbmdEZWx0YSAvIChhdHRhY2tBcmVhTGVmdCAr
IHN1c3RhaW5UaW1lTGVmdCArIHJlbGVhc2VBcmVhTGVmdCk7CiAgICAgbV9yZWxlYXNlUG9zaXRp
b24gPSBtX2Rlc2lyZWRQb3NpdGlvbiAtIG1fZGVzaXJlZFZlbG9jaXR5ICogcmVsZWFzZUFyZWFM
ZWZ0OwpAQCAtMjY4LDEwICszMzksMTUgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4
aXNEYXRhOjphbmltYXRlU2Nyb2xsKGRvdWJsZSBjdXJyZW50VGltZSkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjp1cGRhdGVWaXNp
YmxlTGVuZ3RoKExheW91dFVuaXQgdmlzaWJsZUxlbmd0aCkKK3sKKyAgICBtX3Zpc2libGVMZW5n
dGggPSB2aXNpYmxlTGVuZ3RoOworfQorCiBTY3JvbGxBbmltYXRvck5vbmU6OlNjcm9sbEFuaW1h
dG9yTm9uZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEpCiAgICAgOiBTY3JvbGxBbmlt
YXRvcihzY3JvbGxhYmxlQXJlYSkKLSAgICAsIG1faG9yaXpvbnRhbERhdGEodGhpcywgJm1fY3Vy
cmVudFBvc1gpCi0gICAgLCBtX3ZlcnRpY2FsRGF0YSh0aGlzLCAmbV9jdXJyZW50UG9zWSkKKyAg
ICAsIG1faG9yaXpvbnRhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1gsIHNjcm9sbGFibGVBcmVh
LT52aXNpYmxlV2lkdGgoKSkKKyAgICAsIG1fdmVydGljYWxEYXRhKHRoaXMsICZtX2N1cnJlbnRQ
b3NZLCBzY3JvbGxhYmxlQXJlYS0+dmlzaWJsZUhlaWdodCgpKQogICAgICwgbV9hbmltYXRpb25U
aW1lcih0aGlzLCAmU2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRpb25UaW1lckZpcmVkKQogewog
fQpAQCAtMjkxLDE1ICszNjcsMTYgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbChT
Y3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgU2Nyb2xsR3JhbnVsYXIKICAgICBQYXJh
bWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgc3dpdGNoIChncmFudWxhcml0eSkgewogICAgIGNhc2Ug
U2Nyb2xsQnlEb2N1bWVudDoKKyAgICAgICAgcGFyYW1ldGVycyA9IFBhcmFtZXRlcnModHJ1ZSwg
MjAgKiBrVGlja1RpbWUsIDEwICoga1RpY2tUaW1lLCBDdWJpYywgMTAgKiBrVGlja1RpbWUsIEN1
YmljLCAxMCAqIGtUaWNrVGltZSwgTGluZWFyLCAxKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBTY3JvbGxCeUxpbmU6Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJzKHRydWUsIDEw
ICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFF1
YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJz
KHRydWUsIDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBDdWJpYywgMyAqIGtUaWNrVGlt
ZSwgQ3ViaWMsIDMgKiBrVGlja1RpbWUsIExpbmVhciwgMSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgU2Nyb2xsQnlQYWdlOgotICAgICAgICBwYXJhbWV0ZXJzID0gUGFyYW1ldGVycyh0cnVl
LCAxNSAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1RpbWUsIFF1YWRyYXRpYywgNSAqIGtUaWNrVGlt
ZSwgUXVhZHJhdGljLCA1ICoga1RpY2tUaW1lKTsKKyAgICAgICAgcGFyYW1ldGVycyA9IFBhcmFt
ZXRlcnModHJ1ZSwgMTUgKiBrVGlja1RpbWUsIDEwICoga1RpY2tUaW1lLCBDdWJpYywgNSAqIGtU
aWNrVGltZSwgQ3ViaWMsIDUgKiBrVGlja1RpbWUsIExpbmVhciwgMSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgU2Nyb2xsQnlQaXhlbDoKLSAgICAgICAgcGFyYW1ldGVycyA9IFBhcmFtZXRl
cnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDIgKiBrVGlja1RpbWUsIFF1YWRyYXRpYywgMyAqIGtU
aWNrVGltZSwgUXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICAgICAgcGFyYW1ldGVycyA9
IFBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDIgKiBrVGlja1RpbWUsIEN1YmljLCAz
ICoga1RpY2tUaW1lLCBDdWJpYywgMyAqIGtUaWNrVGltZSwgUXVhZHJhdGljLCAxLjI1KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0zMzYsNiArNDEz
LDI3IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmlt
YXRpb24oY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0CiAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2Vk
KCk7CiB9CiAKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjp3aWxsRW5kTGl2ZVJlc2l6ZSgpCit7
CisgICAgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvck5v
bmU6OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgdXBkYXRlVmlz
aWJsZUxlbmd0aHMoKTsKK30KKwordm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OmRpZEFkZEhvcml6
b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKikKK3sKKyAgICB1cGRhdGVWaXNpYmxlTGVuZ3Rocygp
OworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6dXBkYXRlVmlzaWJsZUxlbmd0aHMoKQor
eworICAgIG1faG9yaXpvbnRhbERhdGEudXBkYXRlVmlzaWJsZUxlbmd0aChzY3JvbGxhYmxlQXJl
YSgpLT52aXNpYmxlV2lkdGgoKSk7CisgICAgbV92ZXJ0aWNhbERhdGEudXBkYXRlVmlzaWJsZUxl
bmd0aChzY3JvbGxhYmxlQXJlYSgpLT52aXNpYmxlSGVpZ2h0KCkpOworfQorCiB2b2lkIFNjcm9s
bEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmltYXRvck5v
bmU+KiB0aW1lcikKIHsKICAgICBkb3VibGUgY3VycmVudFRpbWUgPSBXVEY6Om1vbm90b25pY2Fs
bHlJbmNyZWFzaW5nVGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3JOb25lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvck5vbmUuaAppbmRleCBjODA0OWY5YmQzMzFjODZmYmQ0OWIyZWU4NTcxYzM4MmEzOWZkMGI3
Li4wYzBlYjE2YTFmZjk0MTIxZTQ3Mzg1OWZmYWQ4ZmE1NmQxODE5ZmZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaApAQCAtMzMsNiArMzMsNyBAQAog
CiAjaWYgRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCiAKKyNpbmNsdWRlICJMYXlvdXRUeXBlcy5o
IgogI2luY2x1ZGUgIlNjcm9sbEFuaW1hdG9yLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKIApAQCAt
NTAsMTYgKzUxLDIxIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsKFNjcm9sbGJh
ck9yaWVudGF0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlw
bGllcik7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihj
b25zdCBGbG9hdFBvaW50Jik7CiAKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEVuZExpdmVSZXNpemUo
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkVmVydGljYWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7
CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7
CisKICAgICBlbnVtIEN1cnZlIHsKICAgICAgICAgTGluZWFyLAogICAgICAgICBRdWFkcmF0aWMs
CiAgICAgICAgIEN1YmljLAorICAgICAgICBRdWFydGljLAogICAgICAgICBCb3VuY2UKICAgICB9
OwogCiAgICAgc3RydWN0IFBhcmFtZXRlcnMgewogICAgICAgICBQYXJhbWV0ZXJzKCk7Ci0gICAg
ICAgIFBhcmFtZXRlcnMoYm9vbCBpc0VuYWJsZWQsIGRvdWJsZSBhbmltYXRpb25UaW1lLCBkb3Vi
bGUgcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lLCBDdXJ2ZSBhdHRhY2tDdXJ2ZSwgZG91YmxlIGF0
dGFja1RpbWUsIEN1cnZlIHJlbGVhc2VDdXJ2ZSwgZG91YmxlIHJlbGVhc2VUaW1lKTsKKyAgICAg
ICAgUGFyYW1ldGVycyhib29sIGlzRW5hYmxlZCwgZG91YmxlIGFuaW1hdGlvblRpbWUsIGRvdWJs
ZSByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUsIEN1cnZlIGF0dGFja0N1cnZlLCBkb3VibGUgYXR0
YWNrVGltZSwgQ3VydmUgcmVsZWFzZUN1cnZlLCBkb3VibGUgcmVsZWFzZVRpbWUsIEN1cnZlIGNv
YXN0VGltZUN1cnZlLCBkb3VibGUgbWF4aW11bUNvYXN0VGltZSk7CiAKICAgICAgICAgLy8gTm90
ZSB0aGF0IHRoZSB0aW1lcyBjYW4gYmUgb3ZlcnNwZWNpZmllZCBzdWNoIHRoYXQgcmVsZWFzZVRp
bWUgb3IgcmVsZWFzZVRpbWUgYW5kIGF0dGFja1RpbWUgYXJlIGdyZWF0ZXIKICAgICAgICAgLy8g
dGhhbiBhbmltYXRpb25UaW1lLiBhbmltYXRpb25UaW1lIHRha2VzIHByaW9yaXR5IG92ZXIgcmVs
ZWFzZVRpbWUsIGNhcHBpbmcgaXQuIGF0dGFja1RpbWUgaXMgY2FwcGVkIGF0CkBAIC03MywyMiAr
NzksMjkgQEAgcHVibGljOgogCiAgICAgICAgIEN1cnZlIG1fcmVsZWFzZUN1cnZlOwogICAgICAg
ICBkb3VibGUgbV9yZWxlYXNlVGltZTsKKworICAgICAgICBDdXJ2ZSBtX2NvYXN0VGltZUN1cnZl
OworICAgICAgICBkb3VibGUgbV9tYXhpbXVtQ29hc3RUaW1lOwogICAgIH07CiAKIHByb3RlY3Rl
ZDoKICAgICBmcmllbmQgY2xhc3MgOjpTY3JvbGxBbmltYXRvck5vbmVUZXN0OwogCiAgICAgc3Ry
dWN0IFBlckF4aXNEYXRhIHsKLSAgICAgICAgUGVyQXhpc0RhdGEoU2Nyb2xsQW5pbWF0b3JOb25l
KiBwYXJlbnQsIGZsb2F0KiBjdXJyZW50UG9zKTsKKyAgICAgICAgUGVyQXhpc0RhdGEoU2Nyb2xs
QW5pbWF0b3JOb25lKiBwYXJlbnQsIGZsb2F0KiBjdXJyZW50UG9zLCBMYXlvdXRVbml0IHZpc2li
bGVMZW5ndGgpOwogICAgICAgICB2b2lkIHJlc2V0KCk7CiAgICAgICAgIGJvb2wgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIGZsb2F0IHNjcm9s
bGFibGVTaXplLCBkb3VibGUgY3VycmVudFRpbWUsIFBhcmFtZXRlcnMqKTsKICAgICAgICAgYm9v
bCBhbmltYXRlU2Nyb2xsKGRvdWJsZSBjdXJyZW50VGltZSk7CisgICAgICAgIHZvaWQgdXBkYXRl
VmlzaWJsZUxlbmd0aChMYXlvdXRVbml0IHZpc2libGVMZW5ndGgpOwogCiAgICAgICAgIHN0YXRp
YyBkb3VibGUgY3VydmVBdChDdXJ2ZSwgZG91YmxlIHQpOwotICAgICAgICBzdGF0aWMgZG91Ymxl
IGN1cnZlRGVyaXZhdGl2ZUF0KEN1cnZlLCBkb3VibGUgdCk7Ci0KICAgICAgICAgc3RhdGljIGRv
dWJsZSBhdHRhY2tDdXJ2ZShDdXJ2ZSwgZG91YmxlIGRlbHRhVCwgZG91YmxlIGN1cnZlVCwgZG91
YmxlIHN0YXJ0UG9zLCBkb3VibGUgYXR0YWNrUG9zKTsKICAgICAgICAgc3RhdGljIGRvdWJsZSBy
ZWxlYXNlQ3VydmUoQ3VydmUsIGRvdWJsZSBkZWx0YVQsIGRvdWJsZSBjdXJ2ZVQsIGRvdWJsZSBy
ZWxlYXNlUG9zLCBkb3VibGUgZGVzaXJlZFBvcyk7CisgICAgICAgIHN0YXRpYyBkb3VibGUgY29h
c3RDdXJ2ZShDdXJ2ZSwgZG91YmxlIGZhY3Rvcik7CisKKyAgICAgICAgc3RhdGljIGRvdWJsZSBj
dXJ2ZUludGVncmFsQXQoQ3VydmUsIGRvdWJsZSB0KTsKKyAgICAgICAgc3RhdGljIGRvdWJsZSBh
dHRhY2tBcmVhKEN1cnZlLCBkb3VibGUgc3RhcnRULCBkb3VibGUgZW5kVCk7CisgICAgICAgIHN0
YXRpYyBkb3VibGUgcmVsZWFzZUFyZWEoQ3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRU
KTsKIAogICAgICAgICBmbG9hdCogbV9jdXJyZW50UG9zaXRpb247CiAgICAgICAgIGRvdWJsZSBt
X2N1cnJlbnRWZWxvY2l0eTsKQEAgLTExMCwxMCArMTIzLDEzIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgZG91YmxlIG1fcmVsZWFzZVBvc2l0aW9uOwogICAgICAgICBkb3VibGUgbV9yZWxlYXNlVGlt
ZTsKICAgICAgICAgQ3VydmUgbV9yZWxlYXNlQ3VydmU7CisKKyAgICAgICAgTGF5b3V0VW5pdCBt
X3Zpc2libGVMZW5ndGg7CiAgICAgfTsKIAogICAgIHZvaWQgYW5pbWF0aW9uVGltZXJGaXJlZChU
aW1lcjxTY3JvbGxBbmltYXRvck5vbmU+Kik7CiAgICAgdm9pZCBzdG9wQW5pbWF0aW9uVGltZXJJ
Zk5lZWRlZCgpOworICAgIHZvaWQgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKIAogICAgIFBlckF4
aXNEYXRhIG1faG9yaXpvbnRhbERhdGE7CiAgICAgUGVyQXhpc0RhdGEgbV92ZXJ0aWNhbERhdGE7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDM4NTljNzY4ZDdkMTU3NmE3NTMxNWEwOGY1
ODhjYjk5YjA5ZTY1YWMuLjNmNzhhYzU2MjE1MjRiMjUyNzI1N2UzNDRiMjJiZmMyYmM0NGY5ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDgtMTUg
IFNjb3R0IEJ5ZXIgIDxzY290dGJ5ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNjcm9sbEFu
aW1hdG9yTm9uZSBjb2FzdGluZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNTgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL1Njcm9sbEFuaW1hdG9yTm9uZVRlc3Qu
Y3BwOgorICAgICAgICAoTW9ja1Njcm9sbGFibGVBcmVhOjp2aXNpYmxlSGVpZ2h0KToKKyAgICAg
ICAgKE1vY2tTY3JvbGxhYmxlQXJlYTo6dmlzaWJsZVdpZHRoKToKKyAgICAgICAgKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3Q6OlNhdmVQZXJBeGlzRGF0YTo6U2F2ZVBlckF4aXNEYXRhKToKKyAgICAg
ICAgKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OlNhdmVQZXJBeGlzRGF0YTo6b3BlcmF0b3I9PSk6
CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmVUZXN0OjpTZXRVcCk6CisgICAgICAgIChTY3Jv
bGxBbmltYXRvck5vbmVUZXN0Ojp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMpOgorICAgICAgICAo
U2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6YW5pbWF0ZVNjcm9sbCk6CisgICAgICAgIChTY3JvbGxB
bmltYXRvck5vbmVUZXN0OjphdHRhY2tBcmVhKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9u
ZVRlc3Q6OnJlbGVhc2VBcmVhKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmNv
YXN0Q3VydmUpOgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6Y3VydmVUZXN0SW5u
ZXIpOgorICAgICAgICAoVEVTVF9GKToKKwogMjAxMS0wOC0xOCAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmVydCByOTMyOTQsIGRvZXNuJ3QgY29tcGlsZSBv
biBDaHJvbWl1bSBNYWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1Njcm9sbEFuaW1hdG9yTm9uZVRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9TY3JvbGxBbmltYXRvck5vbmVUZXN0LmNwcAppbmRleCAxOTNhNDA1ZDIxOTU0ZTQ4MmY4NTYz
NzFiNTA2YmMwZDlmZThlNDQ4Li40ZTRlOWQxMDM3MjlkODUzYjJlNjUxOGEwZjBjMzljODJmNGIz
NDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9sbEFuaW1h
dG9yTm9uZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdC5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDxnbW9jay9n
bW9jay5oPgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogdXNpbmcgdGVzdGluZzo6QXRMZWFzdDsKQEAg
LTYzLDYgKzY0LDkgQEAgcHVibGljOgogICAgIE1PQ0tfTUVUSE9EMShzZXRTY3JvbGxPZmZzZXRG
cm9tQW5pbWF0aW9uLCB2b2lkKGNvbnN0IEludFBvaW50JikpOwogICAgIE1PQ0tfQ09OU1RfTUVU
SE9EMChlbmNsb3NpbmdTY3JvbGxhYmxlQXJlYSwgU2Nyb2xsYWJsZUFyZWEqKCkpOwogCisgICAg
dmlydHVhbCBMYXlvdXRVbml0IHZpc2libGVIZWlnaHQoKSBjb25zdCB7IHJldHVybiA3Njg7IH0K
KyAgICB2aXJ0dWFsIExheW91dFVuaXQgdmlzaWJsZVdpZHRoKCkgY29uc3QgeyByZXR1cm4gMTAy
NDsgfQorCiAgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X3Njcm9sbEFuaW1hdG9yRW5hYmxlZDsgfQogICAgIGJvb2wgbV9zY3JvbGxBbmltYXRvckVuYWJs
ZWQ7CiB9OwpAQCAtMTQ3LDYgKzE1MSwzMyBAQCBURVNUKFNjcm9sbEFuaW1hdG9yRW5hYmxlZCwg
RGlzYWJsZWQpCiAKIGNsYXNzIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QgOiBwdWJsaWMgdGVzdGlu
Zzo6VGVzdCB7CiBwdWJsaWM6CisgICAgc3RydWN0IFNhdmVQZXJBeGlzRGF0YSA6IHB1YmxpYyBT
Y3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhIHsKKyAgICAgICAgU2F2ZVBlckF4aXNEYXRh
KGNvbnN0IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGEmIGRhdGEpCisgICAgICAgICAg
ICA6IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGEoJm1fbW9ja1Njcm9sbEFuaW1hdG9y
Tm9uZSwgMCwgNzY4KQorICAgICAgICB7CisgICAgICAgICAgICB0aGlzLT5tX2N1cnJlbnRWZWxv
Y2l0eSA9IGRhdGEubV9jdXJyZW50VmVsb2NpdHk7CisgICAgICAgICAgICB0aGlzLT5tX2Rlc2ly
ZWRQb3NpdGlvbiA9IGRhdGEubV9kZXNpcmVkUG9zaXRpb247CisgICAgICAgICAgICB0aGlzLT5t
X2Rlc2lyZWRWZWxvY2l0eSA9IGRhdGEubV9kZXNpcmVkVmVsb2NpdHk7CisgICAgICAgICAgICB0
aGlzLT5tX3N0YXJ0UG9zaXRpb24gPSBkYXRhLm1fc3RhcnRQb3NpdGlvbjsKKyAgICAgICAgICAg
IHRoaXMtPm1fc3RhcnRUaW1lID0gZGF0YS5tX3N0YXJ0VGltZTsKKyAgICAgICAgICAgIHRoaXMt
Pm1fc3RhcnRWZWxvY2l0eSA9IGRhdGEubV9zdGFydFZlbG9jaXR5OworICAgICAgICAgICAgdGhp
cy0+bV9hbmltYXRpb25UaW1lID0gZGF0YS5tX2FuaW1hdGlvblRpbWU7CisgICAgICAgICAgICB0
aGlzLT5tX2xhc3RBbmltYXRpb25UaW1lID0gZGF0YS5tX2xhc3RBbmltYXRpb25UaW1lOworICAg
ICAgICAgICAgdGhpcy0+bV9hdHRhY2tQb3NpdGlvbiA9IGRhdGEubV9hdHRhY2tQb3NpdGlvbjsK
KyAgICAgICAgICAgIHRoaXMtPm1fYXR0YWNrVGltZSA9IGRhdGEubV9hdHRhY2tUaW1lOworICAg
ICAgICAgICAgdGhpcy0+bV9hdHRhY2tDdXJ2ZSA9IGRhdGEubV9hdHRhY2tDdXJ2ZTsKKyAgICAg
ICAgICAgIHRoaXMtPm1fcmVsZWFzZVBvc2l0aW9uID0gZGF0YS5tX3JlbGVhc2VQb3NpdGlvbjsK
KyAgICAgICAgICAgIHRoaXMtPm1fcmVsZWFzZVRpbWUgPSBkYXRhLm1fcmVsZWFzZVRpbWU7Cisg
ICAgICAgICAgICB0aGlzLT5tX3JlbGVhc2VDdXJ2ZSA9IGRhdGEubV9yZWxlYXNlQ3VydmU7Cisg
ICAgICAgIH0KKworICAgICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU2F2ZVBlckF4aXNEYXRh
JiBvdGhlcikgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIG1fY3VycmVudFZl
bG9jaXR5ID09IG90aGVyLm1fY3VycmVudFZlbG9jaXR5ICYmIG1fZGVzaXJlZFBvc2l0aW9uID09
IG90aGVyLm1fZGVzaXJlZFBvc2l0aW9uICYmIG1fZGVzaXJlZFZlbG9jaXR5ID09IG90aGVyLm1f
ZGVzaXJlZFZlbG9jaXR5ICYmIG1fc3RhcnRQb3NpdGlvbiA9PSBvdGhlci5tX3N0YXJ0UG9zaXRp
b24gJiYgbV9zdGFydFRpbWUgPT0gb3RoZXIubV9zdGFydFRpbWUgJiYgbV9zdGFydFZlbG9jaXR5
ID09IG90aGVyLm1fc3RhcnRWZWxvY2l0eSAmJiBtX2FuaW1hdGlvblRpbWUgPT0gb3RoZXIubV9h
bmltYXRpb25UaW1lICYmIG1fbGFzdEFuaW1hdGlvblRpbWUgPT0gb3RoZXIubV9sYXN0QW5pbWF0
aW9uVGltZSAmJiBtX2F0dGFja1Bvc2l0aW9uID09IG90aGVyLm1fYXR0YWNrUG9zaXRpb24gJiYg
bV9hdHRhY2tUaW1lID09IG90aGVyLm1fYXR0YWNrVGltZSAmJiBtX2F0dGFja0N1cnZlID09IG90
aGVyLm1fYXR0YWNrQ3VydmUgJiYgbV9yZWxlYXNlUG9zaXRpb24gPT0gb3RoZXIubV9yZWxlYXNl
UG9zaXRpb24gJiYgbV9yZWxlYXNlVGltZSA9PSBvdGhlci5tX3JlbGVhc2VUaW1lICYmIG1fcmVs
ZWFzZUN1cnZlID09IG90aGVyLm1fcmVsZWFzZUN1cnZlOworICAgICAgICB9CisgICAgICAgIE1v
Y2tTY3JvbGxBbmltYXRvck5vbmUgbV9tb2NrU2Nyb2xsQW5pbWF0b3JOb25lOworICAgIH07CisK
ICAgICBTY3JvbGxBbmltYXRvck5vbmVUZXN0KCkKICAgICB7CiAgICAgfQpAQCAtMTU0LDcgKzE4
NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAgIHsKICAgICAgICAg
bV9jdXJyZW50UG9zaXRpb24gPSAxMDA7Ci0gICAgICAgIG1fZGF0YSA9IG5ldyBTY3JvbGxBbmlt
YXRvck5vbmU6OlBlckF4aXNEYXRhKCZtX21vY2tTY3JvbGxBbmltYXRvck5vbmUsICZtX2N1cnJl
bnRQb3NpdGlvbik7CisgICAgICAgIG1fZGF0YSA9IG5ldyBTY3JvbGxBbmltYXRvck5vbmU6OlBl
ckF4aXNEYXRhKCZtX21vY2tTY3JvbGxBbmltYXRvck5vbmUsICZtX2N1cnJlbnRQb3NpdGlvbiwg
NzY4KTsKICAgICB9CiAgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkKICAgICB7CkBAIC0xNjUs
MTIgKzE5NiwxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMo
ZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGllciwgZmxvYXQgc2Nyb2xsYWJsZVNpemUsIGRvdWJs
ZSBjdXJyZW50VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzKik7CiAgICAgYm9v
bCBhbmltYXRlU2Nyb2xsKGRvdWJsZSBjdXJyZW50VGltZSk7CiAKLSAgICBkb3VibGUgY3VydmVJ
bnRlZ3JhbEF0KFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUsIGRvdWJsZSB0KTsKICAgICBkb3Vi
bGUgYXR0YWNrQXJlYShTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUgc3RhcnRULCBk
b3VibGUgZW5kVCk7CiAgICAgZG91YmxlIHJlbGVhc2VBcmVhKFNjcm9sbEFuaW1hdG9yTm9uZTo6
Q3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRUKTsKICAgICBkb3VibGUgYXR0YWNrQ3Vy
dmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91YmxlIGRlbHRhVCwgZG91YmxlIGN1cnZl
VCwgZG91YmxlIHN0YXJ0UG9zaXRpb24sIGRvdWJsZSBhdHRhY2tQb3NpdGlvbik7CiAgICAgZG91
YmxlIHJlbGVhc2VDdXJ2ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUgZGVsdGFU
LCBkb3VibGUgY3VydmVULCBkb3VibGUgcmVsZWFzZVBvc2l0aW9uLCBkb3VibGUgZGVzaXJlZFBv
c2l0aW9uKTsKLSAgICBkb3VibGUgY3VydmVEZXJpdmF0aXZlQXQoU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdXJ2ZSwgZG91YmxlIHVuaXRUaW1lKTsKKyAgICBkb3VibGUgY29hc3RDdXJ2ZShTY3JvbGxB
bmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUgZmFjdG9yKTsKIAogICAgIHZvaWQgY3VydmVUZXN0
SW5uZXIoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91YmxlIHN0ZXAsIGRvdWJsZSB0aW1l
KTsKICAgICB2b2lkIGN1cnZlVGVzdChTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlKTsKQEAgLTIx
NCw5ICsyNDQsOSBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OnVwZGF0ZURhdGFGcm9t
UGFyYW1ldGVycyhmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaQogCiAgICAgZG91YmxlIGRlbHRh
VGltZSA9IG1fZGF0YS0+bV9sYXN0QW5pbWF0aW9uVGltZSAtIG1fZGF0YS0+bV9zdGFydFRpbWU7
CiAgICAgZG91YmxlIHRpbWVMZWZ0ID0gbV9kYXRhLT5tX2FuaW1hdGlvblRpbWUgLSBkZWx0YVRp
bWU7Ci0gICAgZG91YmxlIHJlbGVhc2VUaW1lTGVmdCA9IHN0ZDo6bWluKHRpbWVMZWZ0LCBtX2Rh
dGEtPm1fcmVsZWFzZVRpbWUpOwotICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVmdCA9IHN0ZDo6bWF4
KDAuLCBtX2RhdGEtPm1fYXR0YWNrVGltZSAtIGRlbHRhVGltZSk7Ci0gICAgZG91YmxlIHN1c3Rh
aW5UaW1lTGVmdCA9IHN0ZDo6bWF4KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1lTGVmdCAtIGF0
dGFja1RpbWVMZWZ0KTsKKyAgICBkb3VibGUgcmVsZWFzZVRpbWVMZWZ0ID0gbWluKHRpbWVMZWZ0
LCBtX2RhdGEtPm1fcmVsZWFzZVRpbWUpOworICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVmdCA9IG1h
eCgwLiwgbV9kYXRhLT5tX2F0dGFja1RpbWUgLSBkZWx0YVRpbWUpOworICAgIGRvdWJsZSBzdXN0
YWluVGltZUxlZnQgPSBtYXgoMC4sIHRpbWVMZWZ0IC0gcmVsZWFzZVRpbWVMZWZ0IC0gYXR0YWNr
VGltZUxlZnQpOwogCiAgICAgLy8gSWYgd2UncmUgZ2V0dGluZyBuZWFyIHRoZSBmaW5pc2gsIHRo
ZSBkZXNpcmVkIHZlbG9jaXR5IGNhbiBkZWNyZWFzZSBzaW5jZSB0aGUgdGltZSBsZWZ0IGdldHMg
aW5jcmVhc2VkLgogICAgIGRvdWJsZSBhbGxvd2VkVmVsb2NpdHlEZWNyZWFzZUZhY3RvciA9IDAu
OTkgKiBvbGRUaW1lTGVmdCAvIHRpbWVMZWZ0OwpAQCAtMjI2LDEyICsyNTYsOSBAQCBib29sIFNj
cm9sbEFuaW1hdG9yTm9uZVRlc3Q6OnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycyhmbG9hdCBzdGVw
LCBmbG9hdCBtdWx0aXBsaQogICAgIGVsc2UKICAgICAgICAgRVhQRUNUX0dFKG9sZERlc2lyZWRW
ZWxvY2l0eSAqIGFsbG93ZWRWZWxvY2l0eURlY3JlYXNlRmFjdG9yLCBtX2RhdGEtPm1fZGVzaXJl
ZFZlbG9jaXR5KTsKIAotICAgIGRvdWJsZSBzdGFydFBvc2l0aW9uID0gbV9zY3JvbGxpbmdEb3du
ID8gc3RkOjptYXg8ZG91YmxlPihtX2N1cnJlbnRQb3NpdGlvbiwgbV9kYXRhLT5tX2F0dGFja1Bv
c2l0aW9uKSA6IHN0ZDo6bWluPGRvdWJsZT4obV9jdXJyZW50UG9zaXRpb24sIG1fZGF0YS0+bV9h
dHRhY2tQb3NpdGlvbik7CisgICAgZG91YmxlIHN0YXJ0UG9zaXRpb24gPSBhdHRhY2tUaW1lTGVm
dCA/IG1fZGF0YS0+bV9hdHRhY2tQb3NpdGlvbiA6IG1fY3VycmVudFBvc2l0aW9uOwogICAgIGRv
dWJsZSBleHBlY3RlZFJlbGVhc2VQb3NpdGlvbiA9IHN0YXJ0UG9zaXRpb24gKyBzdXN0YWluVGlt
ZUxlZnQgKiBtX2RhdGEtPm1fZGVzaXJlZFZlbG9jaXR5OwotICAgIGlmIChyZXN1bHQpCi0gICAg
ICAgIEVYUEVDVF9ET1VCTEVfRVEoZXhwZWN0ZWRSZWxlYXNlUG9zaXRpb24sIG1fZGF0YS0+bV9y
ZWxlYXNlUG9zaXRpb24pOwotICAgIGVsc2UKLSAgICAgICAgRVhQRUNUX05FQVIoZXhwZWN0ZWRS
ZWxlYXNlUG9zaXRpb24sIG1fZGF0YS0+bV9yZWxlYXNlUG9zaXRpb24sIDEpOworICAgIEVYUEVD
VF9ORUFSKGV4cGVjdGVkUmVsZWFzZVBvc2l0aW9uLCBtX2RhdGEtPm1fcmVsZWFzZVBvc2l0aW9u
LCByZXN1bHQgPyAuMDAwMSA6IDEpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTI0NSw5
ICsyNzIsOSBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmFuaW1hdGVTY3JvbGwoZG91
YmxlIGN1cnJlbnRUaW1lKQogCiAgICAgZG91YmxlIGRlbHRhVGltZSA9IG1fZGF0YS0+bV9sYXN0
QW5pbWF0aW9uVGltZSAtIG1fZGF0YS0+bV9zdGFydFRpbWU7CiAgICAgZG91YmxlIHRpbWVMZWZ0
ID0gbV9kYXRhLT5tX2FuaW1hdGlvblRpbWUgLSBkZWx0YVRpbWU7Ci0gICAgZG91YmxlIHJlbGVh
c2VUaW1lTGVmdCA9IHN0ZDo6bWluKHRpbWVMZWZ0LCBtX2RhdGEtPm1fcmVsZWFzZVRpbWUpOwot
ICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVmdCA9IHN0ZDo6bWF4KDAuLCBtX2RhdGEtPm1fYXR0YWNr
VGltZSAtIGRlbHRhVGltZSk7Ci0gICAgZG91YmxlIHN1c3RhaW5UaW1lTGVmdCA9IHN0ZDo6bWF4
KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1lTGVmdCAtIGF0dGFja1RpbWVMZWZ0KTsKKyAgICBk
b3VibGUgcmVsZWFzZVRpbWVMZWZ0ID0gbWluKHRpbWVMZWZ0LCBtX2RhdGEtPm1fcmVsZWFzZVRp
bWUpOworICAgIGRvdWJsZSBhdHRhY2tUaW1lTGVmdCA9IG1heCgwLiwgbV9kYXRhLT5tX2F0dGFj
a1RpbWUgLSBkZWx0YVRpbWUpOworICAgIGRvdWJsZSBzdXN0YWluVGltZUxlZnQgPSBtYXgoMC4s
IHRpbWVMZWZ0IC0gcmVsZWFzZVRpbWVMZWZ0IC0gYXR0YWNrVGltZUxlZnQpOwogICAgIGRvdWJs
ZSBkaXN0YW5jZUxlZnQgPSBtX2RhdGEtPm1fZGVzaXJlZFBvc2l0aW9uIC0gKm1fZGF0YS0+bV9j
dXJyZW50UG9zaXRpb247CiAKICAgICBpZiAobV9zY3JvbGxpbmdEb3duKSB7CkBAIC0yNjQsNTAg
KzI5MSwxNCBAQCBib29sIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmFuaW1hdGVTY3JvbGwoZG91
YmxlIGN1cnJlbnRUaW1lKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWRvdWJsZSBTY3JvbGxB
bmltYXRvck5vbmVUZXN0OjpjdXJ2ZUludGVncmFsQXQoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2
ZSBjdXJ2ZSwgZG91YmxlIHQpCi17Ci0gICAgc3dpdGNoIChjdXJ2ZSkgewotICAgIGNhc2UgU2Ny
b2xsQW5pbWF0b3JOb25lOjpMaW5lYXI6Ci0gICAgICAgIHJldHVybiB0ICogdCAqIHQgLyAzOwot
ICAgIGNhc2UgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWM6Ci0gICAgICAgIHJldHVybiB0
ICogdCAqIHQgKiB0IC8gNDsKLSAgICBjYXNlIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWM6Ci0g
ICAgICAgIHJldHVybiB0ICogdCAqIHQgKiB0ICogdCAvIDU7Ci0gICAgY2FzZSBTY3JvbGxBbmlt
YXRvck5vbmU6OkJvdW5jZToKLSAgICAgICAgZG91YmxlIGFyZWE7Ci0gICAgICAgIGRvdWJsZSB0
MSA9IHN0ZDo6bWluKHQsIDEgLyAyLjc1KTsKLSAgICAgICAgYXJlYSA9IDIuNTIwODMgKiB0MSAq
IHQxICogdDE7Ci0gICAgICAgIGlmICh0IDwgMSAvIDIuNzUpCi0gICAgICAgICAgICByZXR1cm4g
YXJlYTsKLSAgICAgICAgdDEgPSBzdGQ6Om1pbih0IC0gMSAvIDIuNzUsIDEgLyAyLjc1KTsKLSAg
ICAgICAgZG91YmxlIGJvdW5jZUFyZWEgPSB0MSAqICh0MSAqICgyLjUyMDgzICogdDEgLSAxLjM3
NSkgKyAxKTsKLSAgICAgICAgYXJlYSArPSBib3VuY2VBcmVhOwotICAgICAgICBpZiAodCA8IDIg
LyAyLjc1KQotICAgICAgICAgICAgcmV0dXJuIGFyZWE7Ci0gICAgICAgIHQxID0gc3RkOjptaW4o
dCAtIDIgLyAyLjc1LCAwLjUgLyAyLjc1KTsKLSAgICAgICAgYm91bmNlQXJlYSA9ICB0MSAqICh0
MSAqICgyLjUyMDgzICogdDEgLSAwLjY4NzUpICsgMSk7Ci0gICAgICAgIGFyZWEgKz0gYm91bmNl
QXJlYTsKLSAgICAgICAgaWYgKHQgPCAyLjUgLyAyLjc1KQotICAgICAgICAgICAgcmV0dXJuIGFy
ZWE7Ci0gICAgICAgIHQxID0gdCAtIDIuNSAvIDIuNzU7Ci0gICAgICAgIGJvdW5jZUFyZWEgPSB0
MSAqICh0MSAqICgyLjUyMDgzICogdDEgLSAwLjM0Mzc1KSArIDEpOwotICAgICAgICBhcmVhICs9
IGJvdW5jZUFyZWE7Ci0gICAgICAgIHJldHVybiBhcmVhOwotICAgIH0KLX0KLQogZG91YmxlIFNj
cm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmF0dGFja0FyZWEoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2
ZSBjdXJ2ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpCiB7Ci0gICAgZG91YmxlIHN0YXJ0
VmFsdWUgPSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIHN0YXJ0VCk7Ci0gICAgZG91YmxlIGVuZFZh
bHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCBlbmRUKTsKLSAgICByZXR1cm4gZW5kVmFsdWUg
LSBzdGFydFZhbHVlOworICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRh
OjphdHRhY2tBcmVhKGN1cnZlLCBzdGFydFQsIGVuZFQpOwogfQogCiBkb3VibGUgU2Nyb2xsQW5p
bWF0b3JOb25lVGVzdDo6cmVsZWFzZUFyZWEoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSBjdXJ2
ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpCiB7Ci0gICAgZG91YmxlIHN0YXJ0VmFsdWUg
PSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIDEgLSBlbmRUKTsKLSAgICBkb3VibGUgZW5kVmFsdWUg
PSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIDEgLSBzdGFydFQpOwotICAgIHJldHVybiBlbmRWYWx1
ZSAtIHN0YXJ0VmFsdWU7CisgICAgcmV0dXJuIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0Rh
dGE6OnJlbGVhc2VBcmVhKGN1cnZlLCBzdGFydFQsIGVuZFQpOwogfQogCiBkb3VibGUgU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdDo6YXR0YWNrQ3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSBj
dXJ2ZSwgZG91YmxlIGRlbHRhVCwgZG91YmxlIGN1cnZlVCwgZG91YmxlIHN0YXJ0UG9zaXRpb24s
IGRvdWJsZSBhdHRhY2tQb3NpdGlvbikKQEAgLTMyMCw5ICszMTEsOSBAQCBkb3VibGUgU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdDo6cmVsZWFzZUN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUg
Y3VydmUsIGRvdQogICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpy
ZWxlYXNlQ3VydmUoY3VydmUsIGRlbHRhVCwgY3VydmVULCByZWxlYXNlUG9zaXRpb24sIGRlc2ly
ZWRQb3NpdGlvbik7CiB9CiAKLWRvdWJsZSBTY3JvbGxBbmltYXRvck5vbmVUZXN0OjpjdXJ2ZURl
cml2YXRpdmVBdChTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlIGN1cnZlLCBkb3VibGUgdW5pdFRp
bWUpCitkb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6Y29hc3RDdXJ2ZShTY3JvbGxBbmlt
YXRvck5vbmU6OkN1cnZlIGN1cnZlLCBkb3VibGUgZmFjdG9yKQogewotICAgIHJldHVybiBTY3Jv
bGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZURlcml2YXRpdmVBdChjdXJ2ZSwgdW5p
dFRpbWUpOworICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjb2Fz
dEN1cnZlKGN1cnZlLCBmYWN0b3IpOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6
OmN1cnZlVGVzdElubmVyKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUgY3VydmUsIGRvdWJsZSBz
dGVwLCBkb3VibGUgdGltZSkKQEAgLTM0Myw3ICszMzQsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9y
Tm9uZVRlc3Q6OmN1cnZlVGVzdElubmVyKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUgY3VydmUs
IGRvdQogICAgICAgICBvbGRQb3MgPSBuZXdQb3M7CiAgICAgICAgIG9sZFZlbG9jaXR5ID0gdmVs
b2NpdHk7CiAgICAgICAgIGlmIChjdXJ2ZSAhPSBTY3JvbGxBbmltYXRvck5vbmU6OkJvdW5jZSkg
ewotICAgICAgICAgICAgRVhQRUNUX0xFKDAsIHZlbG9jaXR5RGVsdGEpOworICAgICAgICAgICAg
RVhQRUNUX0xFKC0uMDAwMSwgdmVsb2NpdHlEZWx0YSk7CiAgICAgICAgICAgICBFWFBFQ1RfTFQo
MCwgZGVsdGEpOwogICAgICAgICB9CiAKQEAgLTM1NCw3ICszNDUsNyBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3Q6OmN1cnZlVGVzdElubmVyKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUg
Y3VydmUsIGRvdQogCiAgICAgb2xkUG9zID0gMDsKICAgICBvbGRWZWxvY2l0eSAqPSAyOwotICAg
IGFjY3VtdWxhdGUgPSBhdHRhY2tBcmVhKGN1cnZlLCAwLCAxKSAqIGtQb3NpdGlvbjsKKyAgICBh
Y2N1bXVsYXRlID0gcmVsZWFzZUFyZWEoY3VydmUsIDAsIDEpICoga1Bvc2l0aW9uOwogICAgIGZv
ciAoZG91YmxlIHQgPSBzdGVwIDsgdCA8PSB0aW1lIDsgdCArPSBzdGVwKSB7CiAgICAgICAgIGRv
dWJsZSBuZXdQb3MgPSByZWxlYXNlQ3VydmUoY3VydmUsIHQsIHRpbWUsIDAsIGtQb3NpdGlvbik7
CiAgICAgICAgIGRvdWJsZSBkZWx0YSA9IG5ld1BvcyAtIG9sZFBvczsKQEAgLTQxMCwxNCArNDAx
LDMxIEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBDdXJ2ZU1hdGhDdWJpYykKICAg
ICBjdXJ2ZVRlc3QoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYyk7CiB9CiAKK1RFU1RfRihTY3Jv
bGxBbmltYXRvck5vbmVUZXN0LCBDdXJ2ZU1hdGhRdWFydGljKQoreworICAgIGN1cnZlVGVzdChT
Y3JvbGxBbmltYXRvck5vbmU6OlF1YXJ0aWMpOworfQorCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdCwgQ3VydmVNYXRoQm91bmNlKQogewogICAgIGN1cnZlVGVzdChTY3JvbGxBbmltYXRv
ck5vbmU6OkJvdW5jZSk7CiB9CiAKK1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBDdXJ2
ZU1hdGhDb2FzdCkKK3sKKyAgICBmb3IgKGRvdWJsZSB0ID0gLjI1IDsgdCA8IDEgOyB0ICs9IC4y
NSkgeworICAgICAgICBFWFBFQ1RfRVEodCwgY29hc3RDdXJ2ZShTY3JvbGxBbmltYXRvck5vbmU6
OkxpbmVhciwgdCkpOworICAgICAgICBFWFBFQ1RfTFQodCwgY29hc3RDdXJ2ZShTY3JvbGxBbmlt
YXRvck5vbmU6OlF1YWRyYXRpYywgdCkpOworICAgICAgICBFWFBFQ1RfTFQodCwgY29hc3RDdXJ2
ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCB0KSk7CisgICAgICAgIEVYUEVDVF9MVChjb2Fz
dEN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCB0KSwgY29hc3RDdXJ2ZShTY3Jv
bGxBbmltYXRvck5vbmU6OkN1YmljLCB0KSk7CisgICAgICAgIEVYUEVDVF9MVCh0LCBjb2FzdEN1
cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhcnRpYywgdCkpOworICAgICAgICBFWFBFQ1RfTFQo
Y29hc3RDdXJ2ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCB0KSwgY29hc3RDdXJ2ZShTY3Jv
bGxBbmltYXRvck5vbmU6OlF1YXJ0aWMsIHQpKTsKKyAgICB9Cit9CisKIFRFU1RfRihTY3JvbGxB
bmltYXRvck5vbmVUZXN0LCBTY3JvbGxPbmNlTGluZWFyKQogewotICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6TGluZWFyLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6
OkxpbmVhciwgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0
ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpMaW5lYXIsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVE
YXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsK
ICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC00MjcsNyArNDM1LDcgQEAgVEVTVF9GKFNjcm9s
bEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VMaW5lYXIpCiAKIFRFU1RfRihTY3JvbGxBbmlt
YXRvck5vbmVUZXN0LCBTY3JvbGxPbmNlUXVhZHJhdGljKQogewotICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5v
bmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVh
ZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAK
ICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZw
YXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC00MzcsNyArNDQ1LDcgQEAg
VEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VRdWFkcmF0aWMpCiAKIFRF
U1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxMb25nUXVhZHJhdGljKQogewotICAg
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDIwICoga1Rp
Y2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwg
U2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDIwICoga1RpY2tUaW1l
LCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xs
QW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAw
MCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAg
LTQ0Nyw3ICs0NTUsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG9u
Z1F1YWRyYXRpYykKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFF1YWRy
YXRpY05vU3VzdGFpbikKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFy
YW1ldGVycyh0cnVlLCA4ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRy
YXRpYywgNCAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDQgKiBr
VGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJz
KHRydWUsIDggKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0
ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgNCAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9v
bCByZXN1bHQgPSB0cnVlOwpAQCAtNDU3LDcgKzQ2NSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRv
ck5vbmVUZXN0LCBTY3JvbGxRdWFkcmF0aWNOb1N1c3RhaW4pCiAKIFRFU1RfRihTY3JvbGxBbmlt
YXRvck5vbmVUZXN0LCBTY3JvbGxRdWFkcmF0aWNTbW9vdGhlZCkKIHsKLSAgICBTY3JvbGxBbmlt
YXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA4ICoga1RpY2tUaW1lLCA4ICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgNCAqIGtUaWNrVGltZSwg
U2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDQgKiBrVGlja1RpbWUpOworICAgIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDggKiBrVGlja1RpbWUs
IDggKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0ICoga1RpY2tU
aW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgNCAqIGtUaWNrVGltZSwgU2Nyb2xs
QW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJz
KDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQg
PSB0cnVlOwpAQCAtNDY3LDcgKzQ3NSwxNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVz
dCwgU2Nyb2xsUXVhZHJhdGljU21vb3RoZWQpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVU
ZXN0LCBTY3JvbGxPbmNlQ3ViaWMpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0
ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtU
aWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMo
dHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtU
aWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xs
QW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOworCisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJz
KDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgYm9vbCByZXN1bHQg
PSB0cnVlOworICAgIGZvciAoZG91YmxlIHQgPSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8IGtF
bmRUaW1lOyB0ICs9IGtBbmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSBhbmltYXRlU2Ny
b2xsKHQpOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsT25jZVF1
YXJ0aWMpCit7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMo
dHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFydGljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YXJ0aWMsIDMgKiBrVGlja1RpbWUsIFNj
cm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1l
dGVycygxLCA0MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVz
dWx0ID0gdHJ1ZTsKQEAgLTQ3Nyw3ICs0OTUsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25l
VGVzdCwgU2Nyb2xsT25jZUN1YmljKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwg
U2Nyb2xsT25jZVNob3J0KQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBw
YXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3Vi
aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1Rp
bWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUs
IDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1Rp
bWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0
MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1
ZTsKQEAgLTQ4Nyw3ICs1MDUsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Ny
b2xsT25jZVNob3J0KQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsVHdp
Y2VRdWFkcmF0aWMpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0
aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1Rp
Y2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0
cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAq
IGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUs
IFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycygxLCA0MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wg
cmVzdWx0ID0gdHJ1ZTsKQEAgLTUxOCw5ICs1MzYsOSBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdCwgU2Nyb2xsVHdpY2VRdWFkcmF0aWMpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5v
bmVUZXN0LCBTY3JvbGxMb3RzUXVhZHJhdGljKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1
YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0
ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGlj
LCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKLSAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0
ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAwLCBrU3RhcnRU
aW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAgIGRvdWJsZSB0
OwogICAgIGZvciAodCA9IGtTdGFydFRpbWU7IHJlc3VsdCAmJiB0IDwga1N0YXJ0VGltZSArIDEu
NSAqIGtUaWNrVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKQEAgLTUzOSw3ICs1NTcsMjggQEAg
VEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvdHNRdWFkcmF0aWMpCiAKIFRF
U1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxMb3RzUXVhZHJhdGljU21vb3RoZWQp
CiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwg
MTAgKiBrVGlja1RpbWUsIDYgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJh
dGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtU
aWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMo
dHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDYgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywg
MyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOworCisgICAgdXBk
YXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRl
cnMpOworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBkb3VibGUgdDsKKyAgICBmb3IgKHQg
PSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8IGtTdGFydFRpbWUgKyAxLjUgKiBrVGlja1RpbWU7
IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IGFuaW1hdGVTY3JvbGwodCk7
CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyArK2kpIHsKKyAgICAgICAgdCArPSBrQW5p
bWF0aW9uVGltZTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVTY3JvbGwodCk7
CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMywg
NDAsIDEwMDAwLCB0LCAmcGFyYW1ldGVycyk7CisgICAgfQorCisgICAgdCArPSBrQW5pbWF0aW9u
VGltZTsKKyAgICBmb3IgKDsgcmVzdWx0ICYmIHQgPCBrRW5kVGltZTsgdCArPSBrQW5pbWF0aW9u
VGltZSkKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVTY3JvbGwodCk7Cit9CisK
K1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxUd2ljZUN1YmljKQoreworICAg
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlj
a1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAwMCwg
a1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTU0
Nyw2ICs1ODYsNTggQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvdHNR
dWFkcmF0aWNTbW9vdGhlZCkKICAgICBmb3IgKHQgPSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8
IGtTdGFydFRpbWUgKyAxLjUgKiBrVGlja1RpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCiAgICAg
ICAgIHJlc3VsdCA9IGFuaW1hdGVTY3JvbGwodCk7CiAKKyAgICByZXN1bHQgPSByZXN1bHQgJiYg
YW5pbWF0ZVNjcm9sbCh0KTsKKyAgICBkb3VibGUgYmVmb3JlID0gbV9jdXJyZW50UG9zaXRpb247
CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwg
MTAwMCwgdCwgJnBhcmFtZXRlcnMpOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Ny
b2xsKHQpOworICAgIGRvdWJsZSBhZnRlciA9IG1fY3VycmVudFBvc2l0aW9uOworICAgIEVYUEVD
VF9ORUFSKGJlZm9yZSwgYWZ0ZXIsIDEwKTsKKworICAgIHQgKz0ga0FuaW1hdGlvblRpbWU7CisK
KyAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKKyAgICBiZWZvcmUgPSBt
X2N1cnJlbnRQb3NpdGlvbjsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKDEsIDQwLCAxMDAwLCB0LCAmcGFyYW1ldGVycyk7CisgICAgcmVzdWx0ID0gcmVz
dWx0ICYmIGFuaW1hdGVTY3JvbGwodCk7CisgICAgYWZ0ZXIgPSBtX2N1cnJlbnRQb3NpdGlvbjsK
KyAgICBFWFBFQ1RfTkVBUihiZWZvcmUsIGFmdGVyLCAxMCk7CisKKyAgICB0ICs9IGtBbmltYXRp
b25UaW1lOworICAgIGZvciAoOyByZXN1bHQgJiYgdCA8IGtFbmRUaW1lOyB0ICs9IGtBbmltYXRp
b25UaW1lKQorICAgICAgICByZXN1bHQgPSBhbmltYXRlU2Nyb2xsKHQpOworfQorCitURVNUX0Yo
U2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c0N1YmljKQoreworICAgIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAs
IFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAw
KTsKKworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAwMDAsIGtTdGFydFRp
bWUsICZwYXJhbWV0ZXJzKTsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgZG91YmxlIHQ7
CisgICAgZm9yICh0ID0ga1N0YXJ0VGltZTsgcmVzdWx0ICYmIHQgPCBrU3RhcnRUaW1lICsgMS41
ICoga1RpY2tUaW1lOyB0ICs9IGtBbmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSBhbmlt
YXRlU2Nyb2xsKHQpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDsgKytpKSB7CisgICAg
ICAgIHQgKz0ga0FuaW1hdGlvblRpbWU7CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmlt
YXRlU2Nyb2xsKHQpOworICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKDMsIDQwLCAxMDAwMCwgdCwgJnBhcmFtZXRlcnMpOworICAgIH0KKworICAgIHQg
Kz0ga0FuaW1hdGlvblRpbWU7CisgICAgZm9yICg7IHJlc3VsdCAmJiB0IDwga0VuZFRpbWU7IHQg
Kz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Ny
b2xsKHQpOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c0N1
YmljU21vb3RoZWQpCit7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDYgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMg
KiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKKworICAgIHVwZGF0
ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJz
KTsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgZG91YmxlIHQ7CisgICAgZm9yICh0ID0g
a1N0YXJ0VGltZTsgcmVzdWx0ICYmIHQgPCBrU3RhcnRUaW1lICsgMS41ICoga1RpY2tUaW1lOyB0
ICs9IGtBbmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSBhbmltYXRlU2Nyb2xsKHQpOwor
CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyMDsgKytpKSB7CiAgICAgICAgIHQgKz0ga0FuaW1h
dGlvblRpbWU7CiAgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOwpA
QCAtNTYwLDcgKzY1MSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxM
b3RzUXVhZHJhdGljU21vb3RoZWQpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBT
Y3JvbGxXaGVlbFRyYWNlKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBw
YXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1
YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMg
KiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0
ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAz
ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBT
Y3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICAvLyBDb25zdHJ1Y3RlZCBmcm9t
IGFuIGFjdHVhbCBzY3JvbGwgd2hlZWwgdHJhY2UgdGhhdCBleGhpYml0ZWQgYSBnbGl0Y2guCiAg
ICAgYm9vbCByZXN1bHQgPSB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTMuMzMsIDEwMDAs
IDEwMC41NzgxLCAmcGFyYW1ldGVycyk7CkBAIC01ODQsNyArNjc1LDcgQEAgVEVTVF9GKFNjcm9s
bEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFdoZWVsVHJhY2UpCiAKIFRFU1RfRihTY3JvbGxBbmlt
YXRvck5vbmVUZXN0LCBTY3JvbGxXaGVlbFRyYWNlU21vb3RoZWQpCiB7Ci0gICAgU2Nyb2xsQW5p
bWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDcg
KiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1l
LCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Ny
b2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1Rp
bWUsIDcgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1Rp
bWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIC8vIENvbnN0cnVjdGVkIGZyb20gYW4gYWN0dWFs
IHNjcm9sbCB3aGVlbCB0cmFjZSB0aGF0IGV4aGliaXRlZCBhIGdsaXRjaC4KICAgICBib29sIHJl
c3VsdCA9IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1My4zMywgMTAwMCwgMTAwLjU3ODEs
ICZwYXJhbWV0ZXJzKTsKQEAgLTYwOCw3ICs2OTksNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdCwgU2Nyb2xsV2hlZWxUcmFjZVNtb290aGVkKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0
b3JOb25lVGVzdCwgTGludXhUcmFja1BhZFRyYWNlKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAwLCBTY3JvbGxB
bmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFy
YW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRv
ck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAz
ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICBib29s
IHJlc3VsdCA9IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLjAwLCA2MC4wMCwgMTAwMCwgMTAw
LjY4NjMsICZwYXJhbWV0ZXJzKTsKICAgICByZXN1bHQgPSByZXN1bHQgJiYgdXBkYXRlRGF0YUZy
b21QYXJhbWV0ZXJzKDEuMDAsIDIwLjAwLCAxMDAwLCAxMDAuNjg5NywgJnBhcmFtZXRlcnMpOwpA
QCAtNjM4LDcgKzcyOSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBMaW51eFRy
YWNrUGFkVHJhY2UpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBMaW51eFRyYWNr
UGFkVHJhY2VTbW9vdGhlZCkKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMg
cGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgNyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5p
bWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFt
ZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgNyAqIGtUaWNrVGltZSwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwog
CiAgICAgYm9vbCByZXN1bHQgPSB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMS4wMCwgNjAuMDAs
IDEwMDAsIDEwMC42ODYzLCAmcGFyYW1ldGVycyk7CiAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHVw
ZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLjAwLCAyMC4wMCwgMTAwMCwgMTAwLjY4OTcsICZwYXJh
bWV0ZXJzKTsKQEAgLTY2OCw3ICs3NTksNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVz
dCwgTGludXhUcmFja1BhZFRyYWNlU21vb3RoZWQpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5v
bmVUZXN0LCBTY3JvbGxEb3duVG9CdW1wZXIpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDcgKiBrVGlja1RpbWUs
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmlt
YXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JO
b25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDcgKiBrVGlj
a1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGlu
ZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAyMCwgMjAwLCBrU3Rh
cnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtNjg2LDEw
ICs3NzcsOSBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsRG93blRvQnVt
cGVyKQogICAgIGNoZWNrU29mdExhbmRpbmcoMjAwKTsKIH0KIAotCiBURVNUX0YoU2Nyb2xsQW5p
bWF0b3JOb25lVGVzdCwgU2Nyb2xsVXBUb0J1bXBlcikKIHsKLSAgICBTY3JvbGxBbmltYXRvck5v
bmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNrVGltZSwgNyAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmlt
YXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNrVGltZSwgNyAq
IGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIC0yMCwgMjAw
LCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAt
NzA3LDQgKzc5NywxNzkgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFVw
VG9CdW1wZXIpCiAgICAgY2hlY2tTb2Z0TGFuZGluZygwKTsKIH0KIAorVEVTVF9GKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3QsIFNjcm9sbFVwVG9CdW1wZXJDb2FzdCkKK3sKKyAgICBTY3JvbGxBbmlt
YXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgMiAq
IGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpMaW5lYXIsIDEpOworCisgICAgbV9jdXJyZW50UG9zaXRpb24gPSA0MDAwMDsKKyAgICB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgLTEwMDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBkb3VibGUgdCA9IGtTdGFydFRp
bWU7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgIHQgKz0ga0Fu
aW1hdGlvblRpbWU7CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQp
OworICAgICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgLTEwMDAwLCA1MDAwMCwgdCwg
JnBhcmFtZXRlcnMpOworICAgIH0KKyAgICBjaGVja0Rlc2lyZWRQb3NpdGlvbigwKTsKKworICAg
IHQgKz0ga0FuaW1hdGlvblRpbWU7CisgICAgZm9yICg7IHJlc3VsdCAmJiB0IDwga0VuZFRpbWU7
IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRl
U2Nyb2xsKHQpOworICAgIGNoZWNrU29mdExhbmRpbmcoMCk7Cit9CisKK1RFU1RfRihTY3JvbGxB
bmltYXRvck5vbmVUZXN0LCBTY3JvbGxEb3duVG9CdW1wZXJDb2FzdCkKK3sKKyAgICBTY3JvbGxB
bmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwg
MiAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwg
U2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JO
b25lOjpMaW5lYXIsIDEpOworCisgICAgbV9jdXJyZW50UG9zaXRpb24gPSAxMDAwMDsKKyAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFy
YW1ldGVycyk7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIGRvdWJsZSB0ID0ga1N0YXJ0
VGltZTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAgICAgdCArPSBr
QW5pbWF0aW9uVGltZTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVTY3JvbGwo
dCk7CisgICAgICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAwMCwgNTAwMDAsIHQs
ICZwYXJhbWV0ZXJzKTsKKyAgICB9CisgICAgY2hlY2tEZXNpcmVkUG9zaXRpb24oNTAwMDApOwor
CisgICAgdCArPSBrQW5pbWF0aW9uVGltZTsKKyAgICBmb3IgKDsgcmVzdWx0ICYmIHQgPCBrRW5k
VGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFu
aW1hdGVTY3JvbGwodCk7CisgICAgY2hlY2tTb2Z0TGFuZGluZyg1MDAwMCk7Cit9CisKK1RFU1Rf
RihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBWYXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3kpCit7Cisg
ICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTUgKiBr
VGlja1RpbWUsIDEwICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1ICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1ICoga1RpY2tUaW1lLCBTY3Jv
bGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURh
dGFGcm9tUGFyYW1ldGVycygxLCAzMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7
CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFTaW5nbGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgp
OworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxNTAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDE1MCwgNTAw
MDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YURv
dWJsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKDEsIDEwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVE
YXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMp
OworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFUcmlwbGUoKm1fZGF0YSk7
CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAw
MDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKDEsIDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZw
YXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBr
U3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEs
IDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0
YSBkYXRhTWFueSgqbV9kYXRhKTsKKworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhRG91
YmxlKTsKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YVRyaXBsZSk7CisgICAgRVhQRUNU
X0VRKGRhdGFTaW5nbGUsIGRhdGFNYW55KTsKK30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9u
ZVRlc3QsIFZhcnlpbmdJbnB1dHNFcXVpdmFsZW5jeUNvYXN0KQoreworICAgIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDE1ICoga1RpY2tUaW1lLCAxMCAq
IGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGltZSwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpMaW5lYXIsIDEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoMSwgMzAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJB
eGlzRGF0YSBkYXRhU2luZ2xlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVE
YXRhRnJvbVBhcmFtZXRlcnMoMSwgMTUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMp
OworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxNTAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFEb3VibGUoKm1fZGF0YSk7
CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAsIDUw
MDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKDEsIDEwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVE
YXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMp
OworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhVHJpcGxlKCptX2RhdGEpOworCisgICAgcmVzZXQo
KTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwLCA1MDAw
MCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVy
cygxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7Cisg
ICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBh
cmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAwMDAsIGtT
dGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YU1hbnkoKm1f
ZGF0YSk7CisKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YURvdWJsZSk7CisgICAgRVhQ
RUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFUcmlwbGUpOworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xl
LCBkYXRhTWFueSk7Cit9CisKK1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBWYXJ5aW5n
SW5wdXRzRXF1aXZhbGVuY3lDb2FzdExhcmdlKQoreworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDE1ICoga1RpY2tUaW1lLCAxMCAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIs
IDEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMzAw
MDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRh
IGRhdGFTaW5nbGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9t
UGFyYW1ldGVycygxLCAxNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAg
ICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAm
cGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFEb3VibGUoKm1fZGF0YSk7CisK
KyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAwMCwgNTAw
MDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoMSwgMTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRl
RGF0YUZyb21QYXJhbWV0ZXJzKDEsIDEwMDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRl
cnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhVHJpcGxlKCptX2RhdGEpOworCisgICAgcmVz
ZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAsIGtTdGFy
dFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAw
MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBh
cmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJh
bWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAsIGtT
dGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwg
NTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0Rh
dGEgZGF0YU1hbnkoKm1fZGF0YSk7CisKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YURv
dWJsZSk7CisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFUcmlwbGUpOworICAgIEVYUEVD
VF9FUShkYXRhU2luZ2xlLCBkYXRhTWFueSk7Cit9CisKK1RFU1RfRihTY3JvbGxBbmltYXRvck5v
bmVUZXN0LCBWYXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3lDb2FzdFN0ZWVwKQoreworICAgIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDE1ICoga1RpY2tUaW1l
LCAxMCAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpRdWFkcmF0aWMsIDEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJv
bVBhcmFtZXRlcnMoMSwgMzAwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7Cisg
ICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFTaW5nbGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUs
ICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTUwMDAsIDUw
MDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFE
b3VibGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1l
dGVycygxLCAxMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1l
dGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDEwMDAwLCA1MDAwMCwga1N0
YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhVHJpcGxlKCpt
X2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwg
NTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJv
bVBhcmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAg
ICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZw
YXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMo
MSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoMSwgNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsK
KyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YU1hbnkoKm1fZGF0YSk7CisKKyAgICBFWFBFQ1RfRVEo
ZGF0YVNpbmdsZSwgZGF0YURvdWJsZSk7CisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFU
cmlwbGUpOworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhTWFueSk7Cit9CisKKwogI2Vu
ZGlmIC8vIEVOQUJMRShTTU9PVEhfU0NST0xMSU5HKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104378</attachid>
            <date>2011-08-18 12:02:11 -0700</date>
            <delta_ts>2011-08-18 16:55:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66258-20110818120210.patch</filename>
            <type>text/plain</type>
            <size>50412</size>
            <attacher name="Scott Byer">scottbyer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMzMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMzFkZWY1NjM2NWM2Nzc1
MDk4ZGJjNTJiMzY3MGJkOGI0YmYzZTFkLi5kYzY2NWQ3NDgyNWEyYmRhNDMzZDhmMmI1MjZmNzA0
ZmU4MjlkMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDgtMTUgIFNjb3R0
IEJ5ZXIgIDxzY290dGJ5ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZSBjb2FzdGluZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNTgKKworICAgICAgICBJbmNyZWFzZSB0aGUgYW5pbWF0
aW9uIHRpbWUgYmFzZWQgb24gdGhlIHZlbG9jaXR5IG9mIHRoZSBzY3JvbGwsIHVwIHRvIGEKKyAg
ICAgICAgbWF4aW11bSBhbW91bnQuIEZpeCBidWdzIGZvdW5kIGJ5IGFkZGl0aW9uYWwgdW5pdCB0
ZXN0aW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGl0aW9uYWwgdGVzdHMgaW4gU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDogQ3VydmVNYXRoUXVh
cnRpYywgQ3VydmVNYXRoQ29hc3QsCisgICAgICAgIFNjcm9sbE9uY2VRdWFydGljLCBTY3JvbGxU
d2ljZUN1YmljLCBTY3JvbGxMb3RzQ3ViaWMsIFNjcm9sbExvdHNDdWJpY1Ntb290aGVkLAorICAg
ICAgICBTY3JvbGxVcFRvQnVtcGVyQ29hc3QsIFNjcm9sbERvd25Ub0J1bXBlckNvYXN0LCBWYXJ5
aW5nSW5wdXRzRXF1aXZhbGVuY3ksCisgICAgICAgIFZhcnlpbmdJbnB1dHNFcXVpdmFsZW5jeUNv
YXN0LCBWYXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3lDb2FzdExhcmdlLAorICAgICAgICBWYXJ5aW5n
SW5wdXRzRXF1aXZhbGVuY3lDb2FzdFN0ZWVwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxB
bmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlQXQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y29hc3RDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZUludGVncmFsQXQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6YXR0YWNrQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxl
YXNlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNE
YXRhOjpQZXJBeGlzRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6
OlBlckF4aXNEYXRhOjp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlVmlzaWJsZUxlbmd0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlNjcm9sbEFuaW1hdG9yTm9u
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OndpbGxFbmRMaXZlUmVzaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6ZGlkQWRkVmVydGljYWxTY3JvbGxi
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6dXBk
YXRlVmlzaWJsZUxlbmd0aHMpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5oOgorCiAyMDExLTA4LTE4ICBOaWNvIFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBGaXggIm1pc3NpbmcgcmV0dXJuIiBnY2Mgd2FybmluZyBpbiBTY3JvbGxBbmltYXRv
ck5vbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9y
Tm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3Bw
CmluZGV4IDI2ZTZmZDY5MjA4ZDQwMzhlZTFmZjgzNzI4MGNiNjczMDhhZGM4YzcuLjgxN2UyM2Vj
MDdhNzBiNGI4OTNjZjk2YjA4NWM2NjIzZjk1NTEwNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmNwcApAQCAtNjQsNyArNjQsNyBAQCBTY3JvbGxB
bmltYXRvck5vbmU6OlBhcmFtZXRlcnM6OlBhcmFtZXRlcnMoKQogewogfQogCi1TY3JvbGxBbmlt
YXRvck5vbmU6OlBhcmFtZXRlcnM6OlBhcmFtZXRlcnMoYm9vbCBpc0VuYWJsZWQsIGRvdWJsZSBh
bmltYXRpb25UaW1lLCBkb3VibGUgcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lLCBDdXJ2ZSBhdHRh
Y2tDdXJ2ZSwgZG91YmxlIGF0dGFja1RpbWUsIEN1cnZlIHJlbGVhc2VDdXJ2ZSwgZG91YmxlIHJl
bGVhc2VUaW1lKQorU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKGJv
b2wgaXNFbmFibGVkLCBkb3VibGUgYW5pbWF0aW9uVGltZSwgZG91YmxlIHJlcGVhdE1pbmltdW1T
dXN0YWluVGltZSwgQ3VydmUgYXR0YWNrQ3VydmUsIGRvdWJsZSBhdHRhY2tUaW1lLCBDdXJ2ZSBy
ZWxlYXNlQ3VydmUsIGRvdWJsZSByZWxlYXNlVGltZSwgQ3VydmUgY29hc3RUaW1lQ3VydmUsIGRv
dWJsZSBtYXhpbXVtQ29hc3RUaW1lKQogICAgIDogbV9pc0VuYWJsZWQoaXNFbmFibGVkKQogICAg
ICwgbV9hbmltYXRpb25UaW1lKGFuaW1hdGlvblRpbWUpCiAgICAgLCBtX3JlcGVhdE1pbmltdW1T
dXN0YWluVGltZShyZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUpCkBAIC03Miw2ICs3Miw4IEBAIFNj
cm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVyczo6UGFyYW1ldGVycyhib29sIGlzRW5hYmxlZCwg
ZG91YmxlIGFuaW1hdGlvblRpbWUsCiAgICAgLCBtX2F0dGFja1RpbWUoYXR0YWNrVGltZSkKICAg
ICAsIG1fcmVsZWFzZUN1cnZlKHJlbGVhc2VDdXJ2ZSkKICAgICAsIG1fcmVsZWFzZVRpbWUocmVs
ZWFzZVRpbWUpCisgICAgLCBtX2NvYXN0VGltZUN1cnZlKGNvYXN0VGltZUN1cnZlKQorICAgICwg
bV9tYXhpbXVtQ29hc3RUaW1lKG1heGltdW1Db2FzdFRpbWUpCiB7CiB9CiAKQEAgLTc5LDEwICs4
MSwxMiBAQCBkb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y3VydmVBdChD
dXJ2ZSBjdXJ2ZSwgZG91YmxlIHQpCiB7CiAgICAgc3dpdGNoIChjdXJ2ZSkgewogICAgIGNhc2Ug
TGluZWFyOgotICAgICAgICByZXR1cm4gdCAqIHQ7CisgICAgICAgIHJldHVybiB0OwogICAgIGNh
c2UgUXVhZHJhdGljOgotICAgICAgICByZXR1cm4gdCAqIHQgKiB0OworICAgICAgICByZXR1cm4g
dCAqIHQ7CiAgICAgY2FzZSBDdWJpYzoKKyAgICAgICAgcmV0dXJuIHQgKiB0ICogdDsKKyAgICBj
YXNlIFF1YXJ0aWM6CiAgICAgICAgIHJldHVybiB0ICogdCAqIHQgKiB0OwogICAgIGNhc2UgQm91
bmNlOgogICAgICAgICBpZiAodCA8IDEgLyAyLjc1KQpAQCAtOTgsNiArMTAyLDcgQEAgZG91Ymxl
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlQXQoQ3VydmUgY3VydmUsIGRv
dWJsZSB0KQogICAgICAgICB0IC09IDIuNjI1IC8gMi43NTsKICAgICAgICAgcmV0dXJuIDcuNTYy
NSAqIHQgKiB0ICsgLjk4NDM3NTsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgcmV0dXJuIDA7CiB9CiAKQEAgLTExNSwyMyArMTIwLDY0IEBAIGRvdWJsZSBTY3JvbGxBbmlt
YXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxlYXNlQ3VydmUoQ3VydmUgY3VydmUsIGRvdWJsZSBk
ZWx0YVRpCiAgICAgcmV0dXJuIHJlbGVhc2VQb3NpdGlvbiArIChwb3NpdGlvbkZhY3RvciAqIChk
ZXNpcmVkUG9zaXRpb24gLSByZWxlYXNlUG9zaXRpb24pKTsKIH0KIAotZG91YmxlIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlRGVyaXZhdGl2ZUF0KEN1cnZlIGN1cnZlLCBk
b3VibGUgdCkKK2RvdWJsZSBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjb2FzdEN1
cnZlKEN1cnZlIGN1cnZlLCBkb3VibGUgZmFjdG9yKQoreworICAgIHJldHVybiAxIC0gY3VydmVB
dChjdXJ2ZSwgMSAtIGZhY3Rvcik7Cit9CisKK2RvdWJsZSBTY3JvbGxBbmltYXRvck5vbmU6OlBl
ckF4aXNEYXRhOjpjdXJ2ZUludGVncmFsQXQoQ3VydmUgY3VydmUsIGRvdWJsZSB0KQogewogICAg
IHN3aXRjaCAoY3VydmUpIHsKICAgICBjYXNlIExpbmVhcjoKLSAgICAgICAgcmV0dXJuIHQgKiAy
OworICAgICAgICByZXR1cm4gdCAqIHQgLyAyOwogICAgIGNhc2UgUXVhZHJhdGljOgotICAgICAg
ICByZXR1cm4gdCAqIHQgKiAzOworICAgICAgICByZXR1cm4gdCAqIHQgKiB0IC8gMzsKICAgICBj
YXNlIEN1YmljOgotICAgICAgICByZXR1cm4gdCAqIHQgKiB0ICogNDsKKyAgICAgICAgcmV0dXJu
IHQgKiB0ICogdCAqIHQgLyA0OworICAgIGNhc2UgUXVhcnRpYzoKKyAgICAgICAgcmV0dXJuIHQg
KiB0ICogdCAqIHQgKiB0IC8gNTsKICAgICBjYXNlIEJvdW5jZToKLSAgICAgICAgcmV0dXJuIHQ7
CisgICAgICAgIGRvdWJsZSBhcmVhOworICAgICAgICBkb3VibGUgdDEgPSBzdGQ6Om1pbih0LCAx
IC8gMi43NSk7CisgICAgICAgIGFyZWEgPSAyLjUyMDgzICogdDEgKiB0MSAqIHQxOworICAgICAg
ICBpZiAodCA8IDEgLyAyLjc1KQorICAgICAgICAgICAgcmV0dXJuIGFyZWE7CisgICAgICAgIHQx
ID0gc3RkOjptaW4odCAtIDEgLyAyLjc1LCAxIC8gMi43NSk7CisgICAgICAgIGRvdWJsZSBib3Vu
Y2VBcmVhID0gdDEgKiAodDEgKiAoMi41MjA4MyAqIHQxIC0gMS4zNzUpICsgMSk7CisgICAgICAg
IGFyZWEgKz0gYm91bmNlQXJlYTsKKyAgICAgICAgaWYgKHQgPCAyIC8gMi43NSkKKyAgICAgICAg
ICAgIHJldHVybiBhcmVhOworICAgICAgICB0MSA9IHN0ZDo6bWluKHQgLSAyIC8gMi43NSwgMC41
IC8gMi43NSk7CisgICAgICAgIGJvdW5jZUFyZWEgPSAgdDEgKiAodDEgKiAoMi41MjA4MyAqIHQx
IC0gMC42ODc1KSArIDEpOworICAgICAgICBhcmVhICs9IGJvdW5jZUFyZWE7CisgICAgICAgIGlm
ICh0IDwgMi41IC8gMi43NSkKKyAgICAgICAgICAgIHJldHVybiBhcmVhOworICAgICAgICB0MSA9
IHQgLSAyLjUgLyAyLjc1OworICAgICAgICBib3VuY2VBcmVhID0gdDEgKiAodDEgKiAoMi41MjA4
MyAqIHQxIC0gMC4zNDM3NSkgKyAxKTsKKyAgICAgICAgYXJlYSArPSBib3VuY2VBcmVhOworICAg
ICAgICByZXR1cm4gYXJlYTsKICAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
cmV0dXJuIDA7CiB9CiAKLVNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OlBlckF4aXNE
YXRhKFNjcm9sbEFuaW1hdG9yTm9uZSogcGFyZW50LCBmbG9hdCogY3VycmVudFBvc2l0aW9uKQor
ZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OmF0dGFja0FyZWEoQ3VydmUg
Y3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRUKQoreworICAgIGRvdWJsZSBzdGFydFZh
bHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCBzdGFydFQpOworICAgIGRvdWJsZSBlbmRWYWx1
ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgZW5kVCk7CisgICAgcmV0dXJuIGVuZFZhbHVlIC0g
c3RhcnRWYWx1ZTsKK30KKworZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6
OnJlbGVhc2VBcmVhKEN1cnZlIGN1cnZlLCBkb3VibGUgc3RhcnRULCBkb3VibGUgZW5kVCkKK3sK
KyAgICBkb3VibGUgc3RhcnRWYWx1ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgMSAtIGVuZFQp
OworICAgIGRvdWJsZSBlbmRWYWx1ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgMSAtIHN0YXJ0
VCk7CisgICAgcmV0dXJuIGVuZFZhbHVlIC0gc3RhcnRWYWx1ZTsKK30KKworU2Nyb2xsQW5pbWF0
b3JOb25lOjpQZXJBeGlzRGF0YTo6UGVyQXhpc0RhdGEoU2Nyb2xsQW5pbWF0b3JOb25lKiBwYXJl
bnQsIGZsb2F0KiBjdXJyZW50UG9zaXRpb24sIExheW91dFVuaXQgdmlzaWJsZUxlbmd0aCkKICAg
ICA6IG1fY3VycmVudFBvc2l0aW9uKGN1cnJlbnRQb3NpdGlvbikKKyAgICAsIG1fdmlzaWJsZUxl
bmd0aCh2aXNpYmxlTGVuZ3RoKQogewogICAgIHJlc2V0KCk7CiB9CkBAIC0xNjIsMjAgKzIwOCw2
IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6cmVzZXQoKQogCiBib29s
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OnVwZGF0ZURhdGFGcm9tUGFyYW1ldGVy
cyhmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBmbG9hdCBzY3JvbGxhYmxlU2l6ZSwgZG91
YmxlIGN1cnJlbnRUaW1lLCBQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzKQogewotICAgIGlmIChwYXJh
bWV0ZXJzLT5tX2FuaW1hdGlvblRpbWUgPiBtX2FuaW1hdGlvblRpbWUpCi0gICAgICAgIG1fYW5p
bWF0aW9uVGltZSA9IHBhcmFtZXRlcnMtPm1fYW5pbWF0aW9uVGltZTsKLSAgICBtX2F0dGFja1Rp
bWUgPSBwYXJhbWV0ZXJzLT5tX2F0dGFja1RpbWU7Ci0gICAgbV9yZWxlYXNlVGltZSA9IHBhcmFt
ZXRlcnMtPm1fcmVsZWFzZVRpbWU7Ci0gICAgbV9hdHRhY2tDdXJ2ZSA9IHBhcmFtZXRlcnMtPm1f
YXR0YWNrQ3VydmU7Ci0gICAgbV9yZWxlYXNlQ3VydmUgPSBwYXJhbWV0ZXJzLT5tX3JlbGVhc2VD
dXJ2ZTsKLQotICAgIC8vIFByaW9yaXRpemUgb3VyIHdheSBvdXQgb2Ygb3ZlciBjb25zdHJhaW50
LgotICAgIGlmIChtX2F0dGFja1RpbWUgKyBtX3JlbGVhc2VUaW1lID4gbV9hbmltYXRpb25UaW1l
KSB7Ci0gICAgICAgIGlmIChtX3JlbGVhc2VUaW1lID4gbV9hbmltYXRpb25UaW1lKQotICAgICAg
ICAgICAgbV9yZWxlYXNlVGltZSA9IG1fYW5pbWF0aW9uVGltZTsKLSAgICAgICAgbV9hdHRhY2tU
aW1lID0gbV9hbmltYXRpb25UaW1lIC0gbV9yZWxlYXNlVGltZTsKLSAgICB9Ci0KICAgICBpZiAo
IW1fc3RhcnRUaW1lKQogICAgICAgICBtX2Rlc2lyZWRQb3NpdGlvbiA9ICptX2N1cnJlbnRQb3Np
dGlvbjsKICAgICBmbG9hdCBuZXdQb3NpdGlvbiA9IG1fZGVzaXJlZFBvc2l0aW9uICsgKHN0ZXAg
KiBtdWx0aXBsaWVyKTsKQEAgLTE4OSw2ICsyMjEsMjEgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5v
bmU6OlBlckF4aXNEYXRhOjp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoZmxvYXQgc3RlcCwgZmxv
YXQKICAgICBtX2Rlc2lyZWRQb3NpdGlvbiA9IG5ld1Bvc2l0aW9uOwogCiAgICAgaWYgKCFtX3N0
YXJ0VGltZSkgeworICAgICAgICBtX2F0dGFja1RpbWUgPSBwYXJhbWV0ZXJzLT5tX2F0dGFja1Rp
bWU7CisgICAgICAgIG1fYXR0YWNrQ3VydmUgPSBwYXJhbWV0ZXJzLT5tX2F0dGFja0N1cnZlOwor
ICAgIH0KKyAgICBtX2FuaW1hdGlvblRpbWUgPSBwYXJhbWV0ZXJzLT5tX2FuaW1hdGlvblRpbWU7
CisgICAgbV9yZWxlYXNlVGltZSA9IHBhcmFtZXRlcnMtPm1fcmVsZWFzZVRpbWU7CisgICAgbV9y
ZWxlYXNlQ3VydmUgPSBwYXJhbWV0ZXJzLT5tX3JlbGVhc2VDdXJ2ZTsKKworICAgIC8vIFByaW9y
aXRpemUgb3VyIHdheSBvdXQgb2Ygb3ZlciBjb25zdHJhaW50LgorICAgIGlmIChtX2F0dGFja1Rp
bWUgKyBtX3JlbGVhc2VUaW1lID4gbV9hbmltYXRpb25UaW1lKSB7CisgICAgICAgIGlmIChtX3Jl
bGVhc2VUaW1lID4gbV9hbmltYXRpb25UaW1lKQorICAgICAgICAgICAgbV9yZWxlYXNlVGltZSA9
IG1fYW5pbWF0aW9uVGltZTsKKyAgICAgICAgbV9hdHRhY2tUaW1lID0gbV9hbmltYXRpb25UaW1l
IC0gbV9yZWxlYXNlVGltZTsKKyAgICB9CisKKyAgICBpZiAoIW1fc3RhcnRUaW1lKSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSB0aGUgdGltZSBmcm9tIHRoZSBldmVudCB0aGF0
IGdvdCB1cyBoZXJlLgogICAgICAgICBtX3N0YXJ0VGltZSA9IGN1cnJlbnRUaW1lIC0ga1RpY2tU
aW1lIC8gMjsKICAgICAgICAgbV9zdGFydFBvc2l0aW9uID0gKm1fY3VycmVudFBvc2l0aW9uOwpA
QCAtMjA5LDE2ICsyNTYsMzggQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRh
Ojp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoZmxvYXQgc3RlcCwgZmxvYXQKICAgICAgICAgdGlt
ZUxlZnQgPSBtaW5UaW1lTGVmdDsKICAgICB9CiAKKyAgICBpZiAocGFyYW1ldGVycy0+bV9tYXhp
bXVtQ29hc3RUaW1lID4gKHBhcmFtZXRlcnMtPm1fcmVwZWF0TWluaW11bVN1c3RhaW5UaW1lICsg
cGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZSkpIHsKKyAgICAgICAgZG91YmxlIHRhcmdldE1heENv
YXN0VmVsb2NpdHkgPSBtX3Zpc2libGVMZW5ndGggKiAuMjUgKiBrRnJhbWVSYXRlOworICAgICAg
ICAvLyBUaGlzIG5lZWRzIHRvIGJlIGFzIG1pbmltYWwgYXMgcG9zc2libGUgd2hpbGUgbm90IGJl
aW5nIGludHJ1c2l2ZSB0byBwYWdlIHVwL2Rvd24uCisgICAgICAgIGRvdWJsZSBtaW5Db2FzdERl
bHRhID0gbV92aXNpYmxlTGVuZ3RoOworCisgICAgICAgIGlmIChhYnMocmVtYWluaW5nRGVsdGEp
ID4gbWluQ29hc3REZWx0YSkgeworICAgICAgICAgICAgZG91YmxlIG1heENvYXN0RGVsdGEgPSBw
YXJhbWV0ZXJzLT5tX21heGltdW1Db2FzdFRpbWUgKiB0YXJnZXRNYXhDb2FzdFZlbG9jaXR5Owor
ICAgICAgICAgICAgZG91YmxlIGNvYXN0RmFjdG9yID0gbWluKDEuLCAoYWJzKHJlbWFpbmluZ0Rl
bHRhKSAtIG1pbkNvYXN0RGVsdGEpIC8gKG1heENvYXN0RGVsdGEgLSBtaW5Db2FzdERlbHRhKSk7
CisKKyAgICAgICAgICAgIC8vIFdlIGNvdWxkIHBsYXkgd2l0aCB0aGUgY3VydmUgaGVyZSAtIGxp
bmVhciBzZWVtcyBhIGxpdHRsZSBzb2Z0LiBJbml0aWFsIHRlc3RpbmcgbWFrZXMgbWUgd2FudCB0
byBmZWVkIGludG8gdGhlIHN1c3RhaW4gdGltZSBtb3JlIGFnZ3Jlc3NpdmVseS4KKyAgICAgICAg
ICAgIGRvdWJsZSBjb2FzdE1pblRpbWVMZWZ0ID0gbWluKHBhcmFtZXRlcnMtPm1fbWF4aW11bUNv
YXN0VGltZSwgbWluVGltZUxlZnQgKyBjb2FzdEN1cnZlKHBhcmFtZXRlcnMtPm1fY29hc3RUaW1l
Q3VydmUsIGNvYXN0RmFjdG9yKSAqIChwYXJhbWV0ZXJzLT5tX21heGltdW1Db2FzdFRpbWUgLSBt
aW5UaW1lTGVmdCkpOworCisgICAgICAgICAgICBkb3VibGUgYWRkaXRpb25hbFRpbWUgPSBtYXgo
MC4sIGNvYXN0TWluVGltZUxlZnQgLSBtaW5UaW1lTGVmdCk7CisgICAgICAgICAgICBpZiAoYWRk
aXRpb25hbFRpbWUpIHsKKyAgICAgICAgICAgICAgICBkb3VibGUgYWRkaXRpb25hbFJlbGVhc2VU
aW1lID0gbWluKGFkZGl0aW9uYWxUaW1lLCBwYXJhbWV0ZXJzLT5tX3JlbGVhc2VUaW1lIC8gKHBh
cmFtZXRlcnMtPm1fcmVsZWFzZVRpbWUgKyBwYXJhbWV0ZXJzLT5tX3JlcGVhdE1pbmltdW1TdXN0
YWluVGltZSkgKiBhZGRpdGlvbmFsVGltZSk7CisgICAgICAgICAgICAgICAgbV9yZWxlYXNlVGlt
ZSA9IHBhcmFtZXRlcnMtPm1fcmVsZWFzZVRpbWUgKyBhZGRpdGlvbmFsUmVsZWFzZVRpbWU7Cisg
ICAgICAgICAgICAgICAgbV9hbmltYXRpb25UaW1lID0gZGVsdGFUaW1lICsgY29hc3RNaW5UaW1l
TGVmdDsKKyAgICAgICAgICAgICAgICB0aW1lTGVmdCA9IGNvYXN0TWluVGltZUxlZnQ7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisKICAgICBkb3VibGUgcmVsZWFzZVRpbWVMZWZ0
ID0gbWluKHRpbWVMZWZ0LCBtX3JlbGVhc2VUaW1lKTsKICAgICBkb3VibGUgc3VzdGFpblRpbWVM
ZWZ0ID0gbWF4KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1lTGVmdCAtIGF0dGFja1RpbWVMZWZ0
KTsKIAogICAgIGlmIChhdHRhY2tUaW1lTGVmdCkgewogICAgICAgICBkb3VibGUgYXR0YWNrU3Bv
dCA9IGRlbHRhVGltZSAvIG1fYXR0YWNrVGltZTsKLSAgICAgICAgYXR0YWNrQXJlYUxlZnQgPSBh
dHRhY2tUaW1lTGVmdCAvIChjdXJ2ZURlcml2YXRpdmVBdChtX2F0dGFja0N1cnZlLCAxKSAtIGN1
cnZlRGVyaXZhdGl2ZUF0KG1fYXR0YWNrQ3VydmUsIGF0dGFja1Nwb3QpKTsKKyAgICAgICAgYXR0
YWNrQXJlYUxlZnQgPSBhdHRhY2tBcmVhKG1fYXR0YWNrQ3VydmUsIGF0dGFja1Nwb3QsIDEpICog
bV9hdHRhY2tUaW1lOwogICAgIH0KIAogICAgIGRvdWJsZSByZWxlYXNlU3BvdCA9IChtX3JlbGVh
c2VUaW1lIC0gcmVsZWFzZVRpbWVMZWZ0KSAvIG1fcmVsZWFzZVRpbWU7Ci0gICAgZG91YmxlIHJl
bGVhc2VBcmVhTGVmdCAgPSByZWxlYXNlVGltZUxlZnQgLyAoY3VydmVEZXJpdmF0aXZlQXQobV9y
ZWxlYXNlQ3VydmUsIDEpIC0gY3VydmVEZXJpdmF0aXZlQXQobV9yZWxlYXNlQ3VydmUsIHJlbGVh
c2VTcG90KSk7CisgICAgZG91YmxlIHJlbGVhc2VBcmVhTGVmdCAgPSByZWxlYXNlQXJlYShtX3Jl
bGVhc2VDdXJ2ZSwgcmVsZWFzZVNwb3QsIDEpICogbV9yZWxlYXNlVGltZTsKIAogICAgIG1fZGVz
aXJlZFZlbG9jaXR5ID0gcmVtYWluaW5nRGVsdGEgLyAoYXR0YWNrQXJlYUxlZnQgKyBzdXN0YWlu
VGltZUxlZnQgKyByZWxlYXNlQXJlYUxlZnQpOwogICAgIG1fcmVsZWFzZVBvc2l0aW9uID0gbV9k
ZXNpcmVkUG9zaXRpb24gLSBtX2Rlc2lyZWRWZWxvY2l0eSAqIHJlbGVhc2VBcmVhTGVmdDsKQEAg
LTI3MCwxMCArMzM5LDE1IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6
YW5pbWF0ZVNjcm9sbChkb3VibGUgY3VycmVudFRpbWUpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
K3ZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlVmlzaWJsZUxlbmd0
aChMYXlvdXRVbml0IHZpc2libGVMZW5ndGgpCit7CisgICAgbV92aXNpYmxlTGVuZ3RoID0gdmlz
aWJsZUxlbmd0aDsKK30KKwogU2Nyb2xsQW5pbWF0b3JOb25lOjpTY3JvbGxBbmltYXRvck5vbmUo
U2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhKQogICAgIDogU2Nyb2xsQW5pbWF0b3Ioc2Ny
b2xsYWJsZUFyZWEpCi0gICAgLCBtX2hvcml6b250YWxEYXRhKHRoaXMsICZtX2N1cnJlbnRQb3NY
KQotICAgICwgbV92ZXJ0aWNhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1kpCisgICAgLCBtX2hv
cml6b250YWxEYXRhKHRoaXMsICZtX2N1cnJlbnRQb3NYLCBzY3JvbGxhYmxlQXJlYS0+dmlzaWJs
ZVdpZHRoKCkpCisgICAgLCBtX3ZlcnRpY2FsRGF0YSh0aGlzLCAmbV9jdXJyZW50UG9zWSwgc2Ny
b2xsYWJsZUFyZWEtPnZpc2libGVIZWlnaHQoKSkKICAgICAsIG1fYW5pbWF0aW9uVGltZXIodGhp
cywgJlNjcm9sbEFuaW1hdG9yTm9uZTo6YW5pbWF0aW9uVGltZXJGaXJlZCkKIHsKIH0KQEAgLTI5
MywxNSArMzY3LDE2IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JOb25lOjpzY3JvbGwoU2Nyb2xsYmFy
T3JpZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFyCiAgICAgUGFyYW1ldGVycyBw
YXJhbWV0ZXJzOwogICAgIHN3aXRjaCAoZ3JhbnVsYXJpdHkpIHsKICAgICBjYXNlIFNjcm9sbEJ5
RG9jdW1lbnQ6CisgICAgICAgIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJzKHRydWUsIDIwICoga1Rp
Y2tUaW1lLCAxMCAqIGtUaWNrVGltZSwgQ3ViaWMsIDEwICoga1RpY2tUaW1lLCBDdWJpYywgMTAg
KiBrVGlja1RpbWUsIExpbmVhciwgMSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgU2Nyb2xs
QnlMaW5lOgotICAgICAgICBwYXJhbWV0ZXJzID0gUGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNr
VGltZSwgNyAqIGtUaWNrVGltZSwgUXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBRdWFkcmF0aWMs
IDMgKiBrVGlja1RpbWUpOworICAgICAgICBwYXJhbWV0ZXJzID0gUGFyYW1ldGVycyh0cnVlLCAx
MCAqIGtUaWNrVGltZSwgNyAqIGtUaWNrVGltZSwgQ3ViaWMsIDMgKiBrVGlja1RpbWUsIEN1Ymlj
LCAzICoga1RpY2tUaW1lLCBMaW5lYXIsIDEpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNj
cm9sbEJ5UGFnZToKLSAgICAgICAgcGFyYW1ldGVycyA9IFBhcmFtZXRlcnModHJ1ZSwgMTUgKiBr
VGlja1RpbWUsIDEwICoga1RpY2tUaW1lLCBRdWFkcmF0aWMsIDUgKiBrVGlja1RpbWUsIFF1YWRy
YXRpYywgNSAqIGtUaWNrVGltZSk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJzKHRy
dWUsIDE1ICoga1RpY2tUaW1lLCAxMCAqIGtUaWNrVGltZSwgQ3ViaWMsIDUgKiBrVGlja1RpbWUs
IEN1YmljLCA1ICoga1RpY2tUaW1lLCBMaW5lYXIsIDEpOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFNjcm9sbEJ5UGl4ZWw6Ci0gICAgICAgIHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJzKHRydWUs
IDExICoga1RpY2tUaW1lLCAyICoga1RpY2tUaW1lLCBRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUs
IFF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgICAgIHBhcmFtZXRlcnMgPSBQYXJhbWV0
ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCAyICoga1RpY2tUaW1lLCBDdWJpYywgMyAqIGtUaWNr
VGltZSwgQ3ViaWMsIDMgKiBrVGlja1RpbWUsIFF1YWRyYXRpYywgMS4yNSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMzM4LDYgKzQxMywyNyBAQCB2
b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmIG9mZnNldAogICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZCgpOwogfQog
Cit2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6d2lsbEVuZExpdmVSZXNpemUoKQoreworICAgIHVw
ZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpkaWRB
ZGRWZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIqKQoreworICAgIHVwZGF0ZVZpc2libGVMZW5n
dGhzKCk7Cit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjpkaWRBZGRIb3Jpem9udGFsU2Ny
b2xsYmFyKFNjcm9sbGJhciopCit7CisgICAgdXBkYXRlVmlzaWJsZUxlbmd0aHMoKTsKK30KKwor
dm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OnVwZGF0ZVZpc2libGVMZW5ndGhzKCkKK3sKKyAgICBt
X2hvcml6b250YWxEYXRhLnVwZGF0ZVZpc2libGVMZW5ndGgoc2Nyb2xsYWJsZUFyZWEoKS0+dmlz
aWJsZVdpZHRoKCkpOworICAgIG1fdmVydGljYWxEYXRhLnVwZGF0ZVZpc2libGVMZW5ndGgoc2Ny
b2xsYWJsZUFyZWEoKS0+dmlzaWJsZUhlaWdodCgpKTsKK30KKwogdm9pZCBTY3JvbGxBbmltYXRv
ck5vbmU6OmFuaW1hdGlvblRpbWVyRmlyZWQoVGltZXI8U2Nyb2xsQW5pbWF0b3JOb25lPiogdGlt
ZXIpCiB7CiAgICAgZG91YmxlIGN1cnJlbnRUaW1lID0gV1RGOjptb25vdG9uaWNhbGx5SW5jcmVh
c2luZ1RpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdG9yTm9uZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25l
LmgKaW5kZXggYzgwNDlmOWJkMzMxYzg2ZmJkNDliMmVlODU3MWMzODJhMzlmZDBiNy4uMGMwZWIx
NmExZmY5NDEyMWU0NzM4NTlmZmFkOGZhNTZkMTgxOWZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2lmIEVO
QUJMRShTTU9PVEhfU0NST0xMSU5HKQogCisjaW5jbHVkZSAiTGF5b3V0VHlwZXMuaCIKICNpbmNs
dWRlICJTY3JvbGxBbmltYXRvci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAKQEAgLTUwLDE2ICs1
MSwyMSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNjcm9sbChTY3JvbGxiYXJPcmllbnRh
dGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIpOwog
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxv
YXRQb2ludCYpOwogCisgICAgdmlydHVhbCB2b2lkIHdpbGxFbmRMaXZlUmVzaXplKCk7CisgICAg
dmlydHVhbCB2b2lkIGRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciopOworICAgIHZp
cnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOworCiAgICAg
ZW51bSBDdXJ2ZSB7CiAgICAgICAgIExpbmVhciwKICAgICAgICAgUXVhZHJhdGljLAogICAgICAg
ICBDdWJpYywKKyAgICAgICAgUXVhcnRpYywKICAgICAgICAgQm91bmNlCiAgICAgfTsKIAogICAg
IHN0cnVjdCBQYXJhbWV0ZXJzIHsKICAgICAgICAgUGFyYW1ldGVycygpOwotICAgICAgICBQYXJh
bWV0ZXJzKGJvb2wgaXNFbmFibGVkLCBkb3VibGUgYW5pbWF0aW9uVGltZSwgZG91YmxlIHJlcGVh
dE1pbmltdW1TdXN0YWluVGltZSwgQ3VydmUgYXR0YWNrQ3VydmUsIGRvdWJsZSBhdHRhY2tUaW1l
LCBDdXJ2ZSByZWxlYXNlQ3VydmUsIGRvdWJsZSByZWxlYXNlVGltZSk7CisgICAgICAgIFBhcmFt
ZXRlcnMoYm9vbCBpc0VuYWJsZWQsIGRvdWJsZSBhbmltYXRpb25UaW1lLCBkb3VibGUgcmVwZWF0
TWluaW11bVN1c3RhaW5UaW1lLCBDdXJ2ZSBhdHRhY2tDdXJ2ZSwgZG91YmxlIGF0dGFja1RpbWUs
IEN1cnZlIHJlbGVhc2VDdXJ2ZSwgZG91YmxlIHJlbGVhc2VUaW1lLCBDdXJ2ZSBjb2FzdFRpbWVD
dXJ2ZSwgZG91YmxlIG1heGltdW1Db2FzdFRpbWUpOwogCiAgICAgICAgIC8vIE5vdGUgdGhhdCB0
aGUgdGltZXMgY2FuIGJlIG92ZXJzcGVjaWZpZWQgc3VjaCB0aGF0IHJlbGVhc2VUaW1lIG9yIHJl
bGVhc2VUaW1lIGFuZCBhdHRhY2tUaW1lIGFyZSBncmVhdGVyCiAgICAgICAgIC8vIHRoYW4gYW5p
bWF0aW9uVGltZS4gYW5pbWF0aW9uVGltZSB0YWtlcyBwcmlvcml0eSBvdmVyIHJlbGVhc2VUaW1l
LCBjYXBwaW5nIGl0LiBhdHRhY2tUaW1lIGlzIGNhcHBlZCBhdApAQCAtNzMsMjIgKzc5LDI5IEBA
IHB1YmxpYzoKIAogICAgICAgICBDdXJ2ZSBtX3JlbGVhc2VDdXJ2ZTsKICAgICAgICAgZG91Ymxl
IG1fcmVsZWFzZVRpbWU7CisKKyAgICAgICAgQ3VydmUgbV9jb2FzdFRpbWVDdXJ2ZTsKKyAgICAg
ICAgZG91YmxlIG1fbWF4aW11bUNvYXN0VGltZTsKICAgICB9OwogCiBwcm90ZWN0ZWQ6CiAgICAg
ZnJpZW5kIGNsYXNzIDo6U2Nyb2xsQW5pbWF0b3JOb25lVGVzdDsKIAogICAgIHN0cnVjdCBQZXJB
eGlzRGF0YSB7Ci0gICAgICAgIFBlckF4aXNEYXRhKFNjcm9sbEFuaW1hdG9yTm9uZSogcGFyZW50
LCBmbG9hdCogY3VycmVudFBvcyk7CisgICAgICAgIFBlckF4aXNEYXRhKFNjcm9sbEFuaW1hdG9y
Tm9uZSogcGFyZW50LCBmbG9hdCogY3VycmVudFBvcywgTGF5b3V0VW5pdCB2aXNpYmxlTGVuZ3Ro
KTsKICAgICAgICAgdm9pZCByZXNldCgpOwogICAgICAgICBib29sIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycyhmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyLCBmbG9hdCBzY3JvbGxhYmxlU2l6
ZSwgZG91YmxlIGN1cnJlbnRUaW1lLCBQYXJhbWV0ZXJzKik7CiAgICAgICAgIGJvb2wgYW5pbWF0
ZVNjcm9sbChkb3VibGUgY3VycmVudFRpbWUpOworICAgICAgICB2b2lkIHVwZGF0ZVZpc2libGVM
ZW5ndGgoTGF5b3V0VW5pdCB2aXNpYmxlTGVuZ3RoKTsKIAogICAgICAgICBzdGF0aWMgZG91Ymxl
IGN1cnZlQXQoQ3VydmUsIGRvdWJsZSB0KTsKLSAgICAgICAgc3RhdGljIGRvdWJsZSBjdXJ2ZURl
cml2YXRpdmVBdChDdXJ2ZSwgZG91YmxlIHQpOwotCiAgICAgICAgIHN0YXRpYyBkb3VibGUgYXR0
YWNrQ3VydmUoQ3VydmUsIGRvdWJsZSBkZWx0YVQsIGRvdWJsZSBjdXJ2ZVQsIGRvdWJsZSBzdGFy
dFBvcywgZG91YmxlIGF0dGFja1Bvcyk7CiAgICAgICAgIHN0YXRpYyBkb3VibGUgcmVsZWFzZUN1
cnZlKEN1cnZlLCBkb3VibGUgZGVsdGFULCBkb3VibGUgY3VydmVULCBkb3VibGUgcmVsZWFzZVBv
cywgZG91YmxlIGRlc2lyZWRQb3MpOworICAgICAgICBzdGF0aWMgZG91YmxlIGNvYXN0Q3VydmUo
Q3VydmUsIGRvdWJsZSBmYWN0b3IpOworCisgICAgICAgIHN0YXRpYyBkb3VibGUgY3VydmVJbnRl
Z3JhbEF0KEN1cnZlLCBkb3VibGUgdCk7CisgICAgICAgIHN0YXRpYyBkb3VibGUgYXR0YWNrQXJl
YShDdXJ2ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpOworICAgICAgICBzdGF0aWMgZG91
YmxlIHJlbGVhc2VBcmVhKEN1cnZlLCBkb3VibGUgc3RhcnRULCBkb3VibGUgZW5kVCk7CiAKICAg
ICAgICAgZmxvYXQqIG1fY3VycmVudFBvc2l0aW9uOwogICAgICAgICBkb3VibGUgbV9jdXJyZW50
VmVsb2NpdHk7CkBAIC0xMTAsMTAgKzEyMywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIGRvdWJs
ZSBtX3JlbGVhc2VQb3NpdGlvbjsKICAgICAgICAgZG91YmxlIG1fcmVsZWFzZVRpbWU7CiAgICAg
ICAgIEN1cnZlIG1fcmVsZWFzZUN1cnZlOworCisgICAgICAgIExheW91dFVuaXQgbV92aXNpYmxl
TGVuZ3RoOwogICAgIH07CiAKICAgICB2b2lkIGFuaW1hdGlvblRpbWVyRmlyZWQoVGltZXI8U2Ny
b2xsQW5pbWF0b3JOb25lPiopOwogICAgIHZvaWQgc3RvcEFuaW1hdGlvblRpbWVySWZOZWVkZWQo
KTsKKyAgICB2b2lkIHVwZGF0ZVZpc2libGVMZW5ndGhzKCk7CiAKICAgICBQZXJBeGlzRGF0YSBt
X2hvcml6b250YWxEYXRhOwogICAgIFBlckF4aXNEYXRhIG1fdmVydGljYWxEYXRhOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwppbmRleCAzODU5Yzc2OGQ3ZDE1NzZhNzUzMTVhMDhmNTg4Y2I5OWIw
OWU2NWFjLi4zZjc4YWM1NjIxNTI0YjI1MjcyNTdlMzQ0YjIyYmZjMmJjNDRmOWRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDExLTA4LTE1ICBTY290dCBC
eWVyICA8c2NvdHRieWVyQGNocm9taXVtLm9yZz4KKworICAgICAgICBTY3JvbGxBbmltYXRvck5v
bmUgY29hc3RpbmcgaW1wbGVtZW50YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY2MjU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9TY3JvbGxBbmltYXRvck5vbmVUZXN0LmNwcDoKKyAg
ICAgICAgKE1vY2tTY3JvbGxhYmxlQXJlYTo6dmlzaWJsZUhlaWdodCk6CisgICAgICAgIChNb2Nr
U2Nyb2xsYWJsZUFyZWE6OnZpc2libGVXaWR0aCk6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5v
bmVUZXN0OjpTYXZlUGVyQXhpc0RhdGE6OlNhdmVQZXJBeGlzRGF0YSk6CisgICAgICAgIChTY3Jv
bGxBbmltYXRvck5vbmVUZXN0OjpTYXZlUGVyQXhpc0RhdGE6Om9wZXJhdG9yPT0pOgorICAgICAg
ICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6U2V0VXApOgorICAgICAgICAoU2Nyb2xsQW5pbWF0
b3JOb25lVGVzdDo6dXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKToKKyAgICAgICAgKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3Q6OmFuaW1hdGVTY3JvbGwpOgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdDo6YXR0YWNrQXJlYSk6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojpy
ZWxlYXNlQXJlYSk6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojpjb2FzdEN1cnZl
KToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmN1cnZlVGVzdElubmVyKToKKyAg
ICAgICAgKFRFU1RfRik6CisKIDIwMTEtMDgtMTggIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZlcnQgcjkzMjk0LCBkb2Vzbid0IGNvbXBpbGUgb24gQ2hyb21p
dW0gTWFjLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxB
bmltYXRvck5vbmVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdC5jcHAKaW5kZXggMTkzYTQwNWQyMTk1NGU0ODJmODU2MzcxYjUwNmJj
MGQ5ZmU4ZTQ0OC4uNGU0ZTlkMTAzNzI5ZDg1M2IyZTY1MThhMGYwYzM5YzgyZjRiMzQzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9TY3JvbGxBbmltYXRvck5vbmVU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1Njcm9sbEFuaW1hdG9y
Tm9uZVRlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4K
ICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCit1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIHVzaW5nIHRlc3Rpbmc6OkF0TGVhc3Q7CkBAIC02Myw2ICs2
NCw5IEBAIHB1YmxpYzoKICAgICBNT0NLX01FVEhPRDEoc2V0U2Nyb2xsT2Zmc2V0RnJvbUFuaW1h
dGlvbiwgdm9pZChjb25zdCBJbnRQb2ludCYpKTsKICAgICBNT0NLX0NPTlNUX01FVEhPRDAoZW5j
bG9zaW5nU2Nyb2xsYWJsZUFyZWEsIFNjcm9sbGFibGVBcmVhKigpKTsKIAorICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCB2aXNpYmxlSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gNzY4OyB9CisgICAgdmly
dHVhbCBMYXlvdXRVbml0IHZpc2libGVXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDEwMjQ7IH0KKwog
ICAgIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxB
bmltYXRvckVuYWJsZWQ7IH0KICAgICBib29sIG1fc2Nyb2xsQW5pbWF0b3JFbmFibGVkOwogfTsK
QEAgLTE0Nyw2ICsxNTEsMzMgQEAgVEVTVChTY3JvbGxBbmltYXRvckVuYWJsZWQsIERpc2FibGVk
KQogCiBjbGFzcyBTY3JvbGxBbmltYXRvck5vbmVUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3Qg
ewogcHVibGljOgorICAgIHN0cnVjdCBTYXZlUGVyQXhpc0RhdGEgOiBwdWJsaWMgU2Nyb2xsQW5p
bWF0b3JOb25lOjpQZXJBeGlzRGF0YSB7CisgICAgICAgIFNhdmVQZXJBeGlzRGF0YShjb25zdCBT
Y3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhJiBkYXRhKQorICAgICAgICAgICAgOiBTY3Jv
bGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhKCZtX21vY2tTY3JvbGxBbmltYXRvck5vbmUsIDAs
IDc2OCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy0+bV9jdXJyZW50VmVsb2NpdHkgPSBk
YXRhLm1fY3VycmVudFZlbG9jaXR5OworICAgICAgICAgICAgdGhpcy0+bV9kZXNpcmVkUG9zaXRp
b24gPSBkYXRhLm1fZGVzaXJlZFBvc2l0aW9uOworICAgICAgICAgICAgdGhpcy0+bV9kZXNpcmVk
VmVsb2NpdHkgPSBkYXRhLm1fZGVzaXJlZFZlbG9jaXR5OworICAgICAgICAgICAgdGhpcy0+bV9z
dGFydFBvc2l0aW9uID0gZGF0YS5tX3N0YXJ0UG9zaXRpb247CisgICAgICAgICAgICB0aGlzLT5t
X3N0YXJ0VGltZSA9IGRhdGEubV9zdGFydFRpbWU7CisgICAgICAgICAgICB0aGlzLT5tX3N0YXJ0
VmVsb2NpdHkgPSBkYXRhLm1fc3RhcnRWZWxvY2l0eTsKKyAgICAgICAgICAgIHRoaXMtPm1fYW5p
bWF0aW9uVGltZSA9IGRhdGEubV9hbmltYXRpb25UaW1lOworICAgICAgICAgICAgdGhpcy0+bV9s
YXN0QW5pbWF0aW9uVGltZSA9IGRhdGEubV9sYXN0QW5pbWF0aW9uVGltZTsKKyAgICAgICAgICAg
IHRoaXMtPm1fYXR0YWNrUG9zaXRpb24gPSBkYXRhLm1fYXR0YWNrUG9zaXRpb247CisgICAgICAg
ICAgICB0aGlzLT5tX2F0dGFja1RpbWUgPSBkYXRhLm1fYXR0YWNrVGltZTsKKyAgICAgICAgICAg
IHRoaXMtPm1fYXR0YWNrQ3VydmUgPSBkYXRhLm1fYXR0YWNrQ3VydmU7CisgICAgICAgICAgICB0
aGlzLT5tX3JlbGVhc2VQb3NpdGlvbiA9IGRhdGEubV9yZWxlYXNlUG9zaXRpb247CisgICAgICAg
ICAgICB0aGlzLT5tX3JlbGVhc2VUaW1lID0gZGF0YS5tX3JlbGVhc2VUaW1lOworICAgICAgICAg
ICAgdGhpcy0+bV9yZWxlYXNlQ3VydmUgPSBkYXRhLm1fcmVsZWFzZUN1cnZlOworICAgICAgICB9
CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNhdmVQZXJBeGlzRGF0YSYgb3RoZXIp
IGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBtX2N1cnJlbnRWZWxvY2l0eSA9
PSBvdGhlci5tX2N1cnJlbnRWZWxvY2l0eSAmJiBtX2Rlc2lyZWRQb3NpdGlvbiA9PSBvdGhlci5t
X2Rlc2lyZWRQb3NpdGlvbiAmJiBtX2Rlc2lyZWRWZWxvY2l0eSA9PSBvdGhlci5tX2Rlc2lyZWRW
ZWxvY2l0eSAmJiBtX3N0YXJ0UG9zaXRpb24gPT0gb3RoZXIubV9zdGFydFBvc2l0aW9uICYmIG1f
c3RhcnRUaW1lID09IG90aGVyLm1fc3RhcnRUaW1lICYmIG1fc3RhcnRWZWxvY2l0eSA9PSBvdGhl
ci5tX3N0YXJ0VmVsb2NpdHkgJiYgbV9hbmltYXRpb25UaW1lID09IG90aGVyLm1fYW5pbWF0aW9u
VGltZSAmJiBtX2xhc3RBbmltYXRpb25UaW1lID09IG90aGVyLm1fbGFzdEFuaW1hdGlvblRpbWUg
JiYgbV9hdHRhY2tQb3NpdGlvbiA9PSBvdGhlci5tX2F0dGFja1Bvc2l0aW9uICYmIG1fYXR0YWNr
VGltZSA9PSBvdGhlci5tX2F0dGFja1RpbWUgJiYgbV9hdHRhY2tDdXJ2ZSA9PSBvdGhlci5tX2F0
dGFja0N1cnZlICYmIG1fcmVsZWFzZVBvc2l0aW9uID09IG90aGVyLm1fcmVsZWFzZVBvc2l0aW9u
ICYmIG1fcmVsZWFzZVRpbWUgPT0gb3RoZXIubV9yZWxlYXNlVGltZSAmJiBtX3JlbGVhc2VDdXJ2
ZSA9PSBvdGhlci5tX3JlbGVhc2VDdXJ2ZTsKKyAgICAgICAgfQorICAgICAgICBNb2NrU2Nyb2xs
QW5pbWF0b3JOb25lIG1fbW9ja1Njcm9sbEFuaW1hdG9yTm9uZTsKKyAgICB9OworCiAgICAgU2Ny
b2xsQW5pbWF0b3JOb25lVGVzdCgpCiAgICAgewogICAgIH0KQEAgLTE1NCw3ICsxODUsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKICAgICB7CiAgICAgICAgIG1fY3VycmVu
dFBvc2l0aW9uID0gMTAwOwotICAgICAgICBtX2RhdGEgPSBuZXcgU2Nyb2xsQW5pbWF0b3JOb25l
OjpQZXJBeGlzRGF0YSgmbV9tb2NrU2Nyb2xsQW5pbWF0b3JOb25lLCAmbV9jdXJyZW50UG9zaXRp
b24pOworICAgICAgICBtX2RhdGEgPSBuZXcgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0
YSgmbV9tb2NrU2Nyb2xsQW5pbWF0b3JOb25lLCAmbV9jdXJyZW50UG9zaXRpb24sIDc2OCk7CiAg
ICAgfQogICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCiAgICAgewpAQCAtMTY1LDEyICsxOTYs
MTEgQEAgcHVibGljOgogICAgIGJvb2wgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKGZsb2F0IHN0
ZXAsIGZsb2F0IG11bHRpcGxpZXIsIGZsb2F0IHNjcm9sbGFibGVTaXplLCBkb3VibGUgY3VycmVu
dFRpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyopOwogICAgIGJvb2wgYW5pbWF0
ZVNjcm9sbChkb3VibGUgY3VycmVudFRpbWUpOwogCi0gICAgZG91YmxlIGN1cnZlSW50ZWdyYWxB
dChTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUgdCk7CiAgICAgZG91YmxlIGF0dGFj
a0FyZWEoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVu
ZFQpOwogICAgIGRvdWJsZSByZWxlYXNlQXJlYShTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBk
b3VibGUgc3RhcnRULCBkb3VibGUgZW5kVCk7CiAgICAgZG91YmxlIGF0dGFja0N1cnZlKFNjcm9s
bEFuaW1hdG9yTm9uZTo6Q3VydmUsIGRvdWJsZSBkZWx0YVQsIGRvdWJsZSBjdXJ2ZVQsIGRvdWJs
ZSBzdGFydFBvc2l0aW9uLCBkb3VibGUgYXR0YWNrUG9zaXRpb24pOwogICAgIGRvdWJsZSByZWxl
YXNlQ3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91YmxlIGRlbHRhVCwgZG91Ymxl
IGN1cnZlVCwgZG91YmxlIHJlbGVhc2VQb3NpdGlvbiwgZG91YmxlIGRlc2lyZWRQb3NpdGlvbik7
Ci0gICAgZG91YmxlIGN1cnZlRGVyaXZhdGl2ZUF0KFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUs
IGRvdWJsZSB1bml0VGltZSk7CisgICAgZG91YmxlIGNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0b3JO
b25lOjpDdXJ2ZSwgZG91YmxlIGZhY3Rvcik7CiAKICAgICB2b2lkIGN1cnZlVGVzdElubmVyKFNj
cm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUsIGRvdWJsZSBzdGVwLCBkb3VibGUgdGltZSk7CiAgICAg
dm9pZCBjdXJ2ZVRlc3QoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSk7CkBAIC0yMTQsOSArMjQ0
LDkgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojp1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGkKIAogICAgIGRvdWJsZSBkZWx0YVRpbWUgPSBt
X2RhdGEtPm1fbGFzdEFuaW1hdGlvblRpbWUgLSBtX2RhdGEtPm1fc3RhcnRUaW1lOwogICAgIGRv
dWJsZSB0aW1lTGVmdCA9IG1fZGF0YS0+bV9hbmltYXRpb25UaW1lIC0gZGVsdGFUaW1lOwotICAg
IGRvdWJsZSByZWxlYXNlVGltZUxlZnQgPSBzdGQ6Om1pbih0aW1lTGVmdCwgbV9kYXRhLT5tX3Jl
bGVhc2VUaW1lKTsKLSAgICBkb3VibGUgYXR0YWNrVGltZUxlZnQgPSBzdGQ6Om1heCgwLiwgbV9k
YXRhLT5tX2F0dGFja1RpbWUgLSBkZWx0YVRpbWUpOwotICAgIGRvdWJsZSBzdXN0YWluVGltZUxl
ZnQgPSBzdGQ6Om1heCgwLiwgdGltZUxlZnQgLSByZWxlYXNlVGltZUxlZnQgLSBhdHRhY2tUaW1l
TGVmdCk7CisgICAgZG91YmxlIHJlbGVhc2VUaW1lTGVmdCA9IG1pbih0aW1lTGVmdCwgbV9kYXRh
LT5tX3JlbGVhc2VUaW1lKTsKKyAgICBkb3VibGUgYXR0YWNrVGltZUxlZnQgPSBtYXgoMC4sIG1f
ZGF0YS0+bV9hdHRhY2tUaW1lIC0gZGVsdGFUaW1lKTsKKyAgICBkb3VibGUgc3VzdGFpblRpbWVM
ZWZ0ID0gbWF4KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1lTGVmdCAtIGF0dGFja1RpbWVMZWZ0
KTsKIAogICAgIC8vIElmIHdlJ3JlIGdldHRpbmcgbmVhciB0aGUgZmluaXNoLCB0aGUgZGVzaXJl
ZCB2ZWxvY2l0eSBjYW4gZGVjcmVhc2Ugc2luY2UgdGhlIHRpbWUgbGVmdCBnZXRzIGluY3JlYXNl
ZC4KICAgICBkb3VibGUgYWxsb3dlZFZlbG9jaXR5RGVjcmVhc2VGYWN0b3IgPSAwLjk5ICogb2xk
VGltZUxlZnQgLyB0aW1lTGVmdDsKQEAgLTIyNiwxMiArMjU2LDkgQEAgYm9vbCBTY3JvbGxBbmlt
YXRvck5vbmVUZXN0Ojp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoZmxvYXQgc3RlcCwgZmxvYXQg
bXVsdGlwbGkKICAgICBlbHNlCiAgICAgICAgIEVYUEVDVF9HRShvbGREZXNpcmVkVmVsb2NpdHkg
KiBhbGxvd2VkVmVsb2NpdHlEZWNyZWFzZUZhY3RvciwgbV9kYXRhLT5tX2Rlc2lyZWRWZWxvY2l0
eSk7CiAKLSAgICBkb3VibGUgc3RhcnRQb3NpdGlvbiA9IG1fc2Nyb2xsaW5nRG93biA/IHN0ZDo6
bWF4PGRvdWJsZT4obV9jdXJyZW50UG9zaXRpb24sIG1fZGF0YS0+bV9hdHRhY2tQb3NpdGlvbikg
OiBzdGQ6Om1pbjxkb3VibGU+KG1fY3VycmVudFBvc2l0aW9uLCBtX2RhdGEtPm1fYXR0YWNrUG9z
aXRpb24pOworICAgIGRvdWJsZSBzdGFydFBvc2l0aW9uID0gYXR0YWNrVGltZUxlZnQgPyBtX2Rh
dGEtPm1fYXR0YWNrUG9zaXRpb24gOiBtX2N1cnJlbnRQb3NpdGlvbjsKICAgICBkb3VibGUgZXhw
ZWN0ZWRSZWxlYXNlUG9zaXRpb24gPSBzdGFydFBvc2l0aW9uICsgc3VzdGFpblRpbWVMZWZ0ICog
bV9kYXRhLT5tX2Rlc2lyZWRWZWxvY2l0eTsKLSAgICBpZiAocmVzdWx0KQotICAgICAgICBFWFBF
Q1RfRE9VQkxFX0VRKGV4cGVjdGVkUmVsZWFzZVBvc2l0aW9uLCBtX2RhdGEtPm1fcmVsZWFzZVBv
c2l0aW9uKTsKLSAgICBlbHNlCi0gICAgICAgIEVYUEVDVF9ORUFSKGV4cGVjdGVkUmVsZWFzZVBv
c2l0aW9uLCBtX2RhdGEtPm1fcmVsZWFzZVBvc2l0aW9uLCAxKTsKKyAgICBFWFBFQ1RfTkVBUihl
eHBlY3RlZFJlbGVhc2VQb3NpdGlvbiwgbV9kYXRhLT5tX3JlbGVhc2VQb3NpdGlvbiwgcmVzdWx0
ID8gLjAwMDEgOiAxKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0yNDUsOSArMjcyLDkg
QEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmVUZXN0OjphbmltYXRlU2Nyb2xsKGRvdWJsZSBjdXJy
ZW50VGltZSkKIAogICAgIGRvdWJsZSBkZWx0YVRpbWUgPSBtX2RhdGEtPm1fbGFzdEFuaW1hdGlv
blRpbWUgLSBtX2RhdGEtPm1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSB0aW1lTGVmdCA9IG1fZGF0
YS0+bV9hbmltYXRpb25UaW1lIC0gZGVsdGFUaW1lOwotICAgIGRvdWJsZSByZWxlYXNlVGltZUxl
ZnQgPSBzdGQ6Om1pbih0aW1lTGVmdCwgbV9kYXRhLT5tX3JlbGVhc2VUaW1lKTsKLSAgICBkb3Vi
bGUgYXR0YWNrVGltZUxlZnQgPSBzdGQ6Om1heCgwLiwgbV9kYXRhLT5tX2F0dGFja1RpbWUgLSBk
ZWx0YVRpbWUpOwotICAgIGRvdWJsZSBzdXN0YWluVGltZUxlZnQgPSBzdGQ6Om1heCgwLiwgdGlt
ZUxlZnQgLSByZWxlYXNlVGltZUxlZnQgLSBhdHRhY2tUaW1lTGVmdCk7CisgICAgZG91YmxlIHJl
bGVhc2VUaW1lTGVmdCA9IG1pbih0aW1lTGVmdCwgbV9kYXRhLT5tX3JlbGVhc2VUaW1lKTsKKyAg
ICBkb3VibGUgYXR0YWNrVGltZUxlZnQgPSBtYXgoMC4sIG1fZGF0YS0+bV9hdHRhY2tUaW1lIC0g
ZGVsdGFUaW1lKTsKKyAgICBkb3VibGUgc3VzdGFpblRpbWVMZWZ0ID0gbWF4KDAuLCB0aW1lTGVm
dCAtIHJlbGVhc2VUaW1lTGVmdCAtIGF0dGFja1RpbWVMZWZ0KTsKICAgICBkb3VibGUgZGlzdGFu
Y2VMZWZ0ID0gbV9kYXRhLT5tX2Rlc2lyZWRQb3NpdGlvbiAtICptX2RhdGEtPm1fY3VycmVudFBv
c2l0aW9uOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nRG93bikgewpAQCAtMjY0LDUwICsyOTEsMTQg
QEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmVUZXN0OjphbmltYXRlU2Nyb2xsKGRvdWJsZSBjdXJy
ZW50VGltZSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1kb3VibGUgU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdDo6Y3VydmVJbnRlZ3JhbEF0KFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUgY3VydmUs
IGRvdWJsZSB0KQotewotICAgIHN3aXRjaCAoY3VydmUpIHsKLSAgICBjYXNlIFNjcm9sbEFuaW1h
dG9yTm9uZTo6TGluZWFyOgotICAgICAgICByZXR1cm4gdCAqIHQgKiB0IC8gMzsKLSAgICBjYXNl
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljOgotICAgICAgICByZXR1cm4gdCAqIHQgKiB0
ICogdCAvIDQ7Ci0gICAgY2FzZSBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljOgotICAgICAgICBy
ZXR1cm4gdCAqIHQgKiB0ICogdCAqIHQgLyA1OwotICAgIGNhc2UgU2Nyb2xsQW5pbWF0b3JOb25l
OjpCb3VuY2U6Ci0gICAgICAgIGRvdWJsZSBhcmVhOwotICAgICAgICBkb3VibGUgdDEgPSBzdGQ6
Om1pbih0LCAxIC8gMi43NSk7Ci0gICAgICAgIGFyZWEgPSAyLjUyMDgzICogdDEgKiB0MSAqIHQx
OwotICAgICAgICBpZiAodCA8IDEgLyAyLjc1KQotICAgICAgICAgICAgcmV0dXJuIGFyZWE7Ci0g
ICAgICAgIHQxID0gc3RkOjptaW4odCAtIDEgLyAyLjc1LCAxIC8gMi43NSk7Ci0gICAgICAgIGRv
dWJsZSBib3VuY2VBcmVhID0gdDEgKiAodDEgKiAoMi41MjA4MyAqIHQxIC0gMS4zNzUpICsgMSk7
Ci0gICAgICAgIGFyZWEgKz0gYm91bmNlQXJlYTsKLSAgICAgICAgaWYgKHQgPCAyIC8gMi43NSkK
LSAgICAgICAgICAgIHJldHVybiBhcmVhOwotICAgICAgICB0MSA9IHN0ZDo6bWluKHQgLSAyIC8g
Mi43NSwgMC41IC8gMi43NSk7Ci0gICAgICAgIGJvdW5jZUFyZWEgPSAgdDEgKiAodDEgKiAoMi41
MjA4MyAqIHQxIC0gMC42ODc1KSArIDEpOwotICAgICAgICBhcmVhICs9IGJvdW5jZUFyZWE7Ci0g
ICAgICAgIGlmICh0IDwgMi41IC8gMi43NSkKLSAgICAgICAgICAgIHJldHVybiBhcmVhOwotICAg
ICAgICB0MSA9IHQgLSAyLjUgLyAyLjc1OwotICAgICAgICBib3VuY2VBcmVhID0gdDEgKiAodDEg
KiAoMi41MjA4MyAqIHQxIC0gMC4zNDM3NSkgKyAxKTsKLSAgICAgICAgYXJlYSArPSBib3VuY2VB
cmVhOwotICAgICAgICByZXR1cm4gYXJlYTsKLSAgICB9Ci19Ci0KIGRvdWJsZSBTY3JvbGxBbmlt
YXRvck5vbmVUZXN0OjphdHRhY2tBcmVhKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUgY3VydmUs
IGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRUKQogewotICAgIGRvdWJsZSBzdGFydFZhbHVlID0g
Y3VydmVJbnRlZ3JhbEF0KGN1cnZlLCBzdGFydFQpOwotICAgIGRvdWJsZSBlbmRWYWx1ZSA9IGN1
cnZlSW50ZWdyYWxBdChjdXJ2ZSwgZW5kVCk7Ci0gICAgcmV0dXJuIGVuZFZhbHVlIC0gc3RhcnRW
YWx1ZTsKKyAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6YXR0YWNr
QXJlYShjdXJ2ZSwgc3RhcnRULCBlbmRUKTsKIH0KIAogZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9u
ZVRlc3Q6OnJlbGVhc2VBcmVhKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUgY3VydmUsIGRvdWJs
ZSBzdGFydFQsIGRvdWJsZSBlbmRUKQogewotICAgIGRvdWJsZSBzdGFydFZhbHVlID0gY3VydmVJ
bnRlZ3JhbEF0KGN1cnZlLCAxIC0gZW5kVCk7Ci0gICAgZG91YmxlIGVuZFZhbHVlID0gY3VydmVJ
bnRlZ3JhbEF0KGN1cnZlLCAxIC0gc3RhcnRUKTsKLSAgICByZXR1cm4gZW5kVmFsdWUgLSBzdGFy
dFZhbHVlOworICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxl
YXNlQXJlYShjdXJ2ZSwgc3RhcnRULCBlbmRUKTsKIH0KIAogZG91YmxlIFNjcm9sbEFuaW1hdG9y
Tm9uZVRlc3Q6OmF0dGFja0N1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUgY3VydmUsIGRv
dWJsZSBkZWx0YVQsIGRvdWJsZSBjdXJ2ZVQsIGRvdWJsZSBzdGFydFBvc2l0aW9uLCBkb3VibGUg
YXR0YWNrUG9zaXRpb24pCkBAIC0zMjAsOSArMzExLDkgQEAgZG91YmxlIFNjcm9sbEFuaW1hdG9y
Tm9uZVRlc3Q6OnJlbGVhc2VDdXJ2ZShTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlIGN1cnZlLCBk
b3UKICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6cmVsZWFzZUN1
cnZlKGN1cnZlLCBkZWx0YVQsIGN1cnZlVCwgcmVsZWFzZVBvc2l0aW9uLCBkZXNpcmVkUG9zaXRp
b24pOwogfQogCi1kb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6Y3VydmVEZXJpdmF0aXZl
QXQoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSBjdXJ2ZSwgZG91YmxlIHVuaXRUaW1lKQorZG91
YmxlIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdXJ2ZSBjdXJ2ZSwgZG91YmxlIGZhY3RvcikKIHsKLSAgICByZXR1cm4gU2Nyb2xsQW5pbWF0
b3JOb25lOjpQZXJBeGlzRGF0YTo6Y3VydmVEZXJpdmF0aXZlQXQoY3VydmUsIHVuaXRUaW1lKTsK
KyAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y29hc3RDdXJ2ZShj
dXJ2ZSwgZmFjdG9yKTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck5vbmVUZXN0OjpjdXJ2ZVRl
c3RJbm5lcihTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlIGN1cnZlLCBkb3VibGUgc3RlcCwgZG91
YmxlIHRpbWUpCkBAIC0zNDMsNyArMzM0LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5vbmVUZXN0
OjpjdXJ2ZVRlc3RJbm5lcihTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlIGN1cnZlLCBkb3UKICAg
ICAgICAgb2xkUG9zID0gbmV3UG9zOwogICAgICAgICBvbGRWZWxvY2l0eSA9IHZlbG9jaXR5Owog
ICAgICAgICBpZiAoY3VydmUgIT0gU2Nyb2xsQW5pbWF0b3JOb25lOjpCb3VuY2UpIHsKLSAgICAg
ICAgICAgIEVYUEVDVF9MRSgwLCB2ZWxvY2l0eURlbHRhKTsKKyAgICAgICAgICAgIEVYUEVDVF9M
RSgtLjAwMDEsIHZlbG9jaXR5RGVsdGEpOwogICAgICAgICAgICAgRVhQRUNUX0xUKDAsIGRlbHRh
KTsKICAgICAgICAgfQogCkBAIC0zNTQsNyArMzQ1LDcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5v
bmVUZXN0OjpjdXJ2ZVRlc3RJbm5lcihTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlIGN1cnZlLCBk
b3UKIAogICAgIG9sZFBvcyA9IDA7CiAgICAgb2xkVmVsb2NpdHkgKj0gMjsKLSAgICBhY2N1bXVs
YXRlID0gYXR0YWNrQXJlYShjdXJ2ZSwgMCwgMSkgKiBrUG9zaXRpb247CisgICAgYWNjdW11bGF0
ZSA9IHJlbGVhc2VBcmVhKGN1cnZlLCAwLCAxKSAqIGtQb3NpdGlvbjsKICAgICBmb3IgKGRvdWJs
ZSB0ID0gc3RlcCA7IHQgPD0gdGltZSA7IHQgKz0gc3RlcCkgewogICAgICAgICBkb3VibGUgbmV3
UG9zID0gcmVsZWFzZUN1cnZlKGN1cnZlLCB0LCB0aW1lLCAwLCBrUG9zaXRpb24pOwogICAgICAg
ICBkb3VibGUgZGVsdGEgPSBuZXdQb3MgLSBvbGRQb3M7CkBAIC00MTAsMTQgKzQwMSwzMSBAQCBU
RVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgQ3VydmVNYXRoQ3ViaWMpCiAgICAgY3VydmVU
ZXN0KFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMpOwogfQogCitURVNUX0YoU2Nyb2xsQW5pbWF0
b3JOb25lVGVzdCwgQ3VydmVNYXRoUXVhcnRpYykKK3sKKyAgICBjdXJ2ZVRlc3QoU2Nyb2xsQW5p
bWF0b3JOb25lOjpRdWFydGljKTsKK30KKwogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Qs
IEN1cnZlTWF0aEJvdW5jZSkKIHsKICAgICBjdXJ2ZVRlc3QoU2Nyb2xsQW5pbWF0b3JOb25lOjpC
b3VuY2UpOwogfQogCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgQ3VydmVNYXRoQ29h
c3QpCit7CisgICAgZm9yIChkb3VibGUgdCA9IC4yNSA7IHQgPCAxIDsgdCArPSAuMjUpIHsKKyAg
ICAgICAgRVhQRUNUX0VRKHQsIGNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIs
IHQpKTsKKyAgICAgICAgRVhQRUNUX0xUKHQsIGNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0b3JOb25l
OjpRdWFkcmF0aWMsIHQpKTsKKyAgICAgICAgRVhQRUNUX0xUKHQsIGNvYXN0Q3VydmUoU2Nyb2xs
QW5pbWF0b3JOb25lOjpDdWJpYywgdCkpOworICAgICAgICBFWFBFQ1RfTFQoY29hc3RDdXJ2ZShT
Y3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgdCksIGNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0
b3JOb25lOjpDdWJpYywgdCkpOworICAgICAgICBFWFBFQ1RfTFQodCwgY29hc3RDdXJ2ZShTY3Jv
bGxBbmltYXRvck5vbmU6OlF1YXJ0aWMsIHQpKTsKKyAgICAgICAgRVhQRUNUX0xUKGNvYXN0Q3Vy
dmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgdCksIGNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0
b3JOb25lOjpRdWFydGljLCB0KSk7CisgICAgfQorfQorCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdCwgU2Nyb2xsT25jZUxpbmVhcikKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBh
cmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRv
ck5vbmU6OkxpbmVhciwgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIs
IDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJh
bWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFy
LCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMyAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9v
bCByZXN1bHQgPSB0cnVlOwpAQCAtNDI3LDcgKzQzNSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRv
ck5vbmVUZXN0LCBTY3JvbGxPbmNlTGluZWFyKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25l
VGVzdCwgU2Nyb2xsT25jZVF1YWRyYXRpYykKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBh
cmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRv
ck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFk
cmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywg
MyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBk
YXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVy
cyk7CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtNDM3LDcgKzQ0NSw3IEBAIFRFU1RfRihT
Y3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxPbmNlUXVhZHJhdGljKQogCiBURVNUX0YoU2Ny
b2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG9uZ1F1YWRyYXRpYykKIHsKLSAgICBTY3JvbGxB
bmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAyMCAqIGtUaWNrVGltZSwg
MCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRv
ck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAyMCAqIGtUaWNrVGltZSwgMCwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVh
ciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFy
dFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC00NDcsNyAr
NDU1LDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvbmdRdWFkcmF0
aWMpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxRdWFkcmF0aWNOb1N1
c3RhaW4pCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnMo
dHJ1ZSwgOCAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDQg
KiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0ICoga1RpY2tUaW1l
KTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA4
ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgNCAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDQgKiBrVGlja1RpbWUsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVy
cygxLCA0MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0
ID0gdHJ1ZTsKQEAgLTQ1Nyw3ICs0NjUsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVz
dCwgU2Nyb2xsUXVhZHJhdGljTm9TdXN0YWluKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25l
VGVzdCwgU2Nyb2xsUXVhZHJhdGljU21vb3RoZWQpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25l
OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgOCAqIGtUaWNrVGltZSwgOCAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDQgKiBrVGlja1RpbWUsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0ICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRv
ck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA4ICoga1RpY2tUaW1lLCA4ICoga1Rp
Y2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgNCAqIGtUaWNrVGltZSwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDQgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6TGluZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwg
MTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsK
QEAgLTQ2Nyw3ICs0NzUsMTcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9s
bFF1YWRyYXRpY1Ntb290aGVkKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Ny
b2xsT25jZUN1YmljKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJh
bWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMs
IDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUp
OworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcg
KiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUs
IFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6TGluZWFyLCAwKTsKKworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwg
MTAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsK
KyAgICBmb3IgKGRvdWJsZSB0ID0ga1N0YXJ0VGltZTsgcmVzdWx0ICYmIHQgPCBrRW5kVGltZTsg
dCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gYW5pbWF0ZVNjcm9sbCh0KTsK
K30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VRdWFydGljKQor
eworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDcg
KiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhcnRpYywgMyAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFydGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmlt
YXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwg
NDAsIDEwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRy
dWU7CkBAIC00NzcsNyArNDk1LDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNj
cm9sbE9uY2VDdWJpYykKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9u
Y2VTaG9ydCkKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVy
cyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lKTsKKyAg
ICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1Rp
Y2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3Jv
bGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6
OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC00
ODcsNyArNTA1LDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VT
aG9ydCkKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFR3aWNlUXVhZHJh
dGljKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRy
dWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7
CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAq
IGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1Rp
bWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMo
MSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9
IHRydWU7CkBAIC01MTgsOSArNTM2LDkgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Qs
IFNjcm9sbFR3aWNlUXVhZHJhdGljKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwg
U2Nyb2xsTG90c1F1YWRyYXRpYykKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRl
cnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6
OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMs
IDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJh
bWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJh
dGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtU
aWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCi0gICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7Cisg
ICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAwMCwga1N0YXJ0VGltZSwgJnBh
cmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKICAgICBkb3VibGUgdDsKICAgICBm
b3IgKHQgPSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8IGtTdGFydFRpbWUgKyAxLjUgKiBrVGlj
a1RpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCkBAIC01MzksNyArNTU3LDI4IEBAIFRFU1RfRihT
Y3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxMb3RzUXVhZHJhdGljKQogCiBURVNUX0YoU2Ny
b2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c1F1YWRyYXRpY1Ntb290aGVkKQogewotICAg
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDEwICoga1Rp
Y2tUaW1lLCA2ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAq
IGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUp
OworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDEw
ICoga1RpY2tUaW1lLCA2ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRp
YywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlj
a1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKKworICAgIHVwZGF0ZURhdGFG
cm9tUGFyYW1ldGVycygxLCA0MCwgMTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAg
ICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgZG91YmxlIHQ7CisgICAgZm9yICh0ID0ga1N0YXJ0
VGltZTsgcmVzdWx0ICYmIHQgPCBrU3RhcnRUaW1lICsgMS41ICoga1RpY2tUaW1lOyB0ICs9IGtB
bmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSBhbmltYXRlU2Nyb2xsKHQpOworCisgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCAyMDsgKytpKSB7CisgICAgICAgIHQgKz0ga0FuaW1hdGlvblRp
bWU7CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOworICAgICAg
ICByZXN1bHQgPSByZXN1bHQgJiYgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDMsIDQwLCAxMDAw
MCwgdCwgJnBhcmFtZXRlcnMpOworICAgIH0KKworICAgIHQgKz0ga0FuaW1hdGlvblRpbWU7Cisg
ICAgZm9yICg7IHJlc3VsdCAmJiB0IDwga0VuZFRpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisg
ICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOworfQorCitURVNUX0Yo
U2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsVHdpY2VDdWJpYykKK3sKKyAgICBTY3JvbGxB
bmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAw
LCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRv
ck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwg
MCk7CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFydFRp
bWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC01NDcsNiArNTg2
LDU4IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxMb3RzUXVhZHJhdGlj
U21vb3RoZWQpCiAgICAgZm9yICh0ID0ga1N0YXJ0VGltZTsgcmVzdWx0ICYmIHQgPCBrU3RhcnRU
aW1lICsgMS41ICoga1RpY2tUaW1lOyB0ICs9IGtBbmltYXRpb25UaW1lKQogICAgICAgICByZXN1
bHQgPSBhbmltYXRlU2Nyb2xsKHQpOwogCisgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVT
Y3JvbGwodCk7CisgICAgZG91YmxlIGJlZm9yZSA9IG1fY3VycmVudFBvc2l0aW9uOworICAgIHJl
c3VsdCA9IHJlc3VsdCAmJiB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIHQs
ICZwYXJhbWV0ZXJzKTsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsK
KyAgICBkb3VibGUgYWZ0ZXIgPSBtX2N1cnJlbnRQb3NpdGlvbjsKKyAgICBFWFBFQ1RfTkVBUihi
ZWZvcmUsIGFmdGVyLCAxMCk7CisKKyAgICB0ICs9IGtBbmltYXRpb25UaW1lOworCisgICAgcmVz
dWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVTY3JvbGwodCk7CisgICAgYmVmb3JlID0gbV9jdXJyZW50
UG9zaXRpb247CisgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVy
cygxLCA0MCwgMTAwMCwgdCwgJnBhcmFtZXRlcnMpOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBh
bmltYXRlU2Nyb2xsKHQpOworICAgIGFmdGVyID0gbV9jdXJyZW50UG9zaXRpb247CisgICAgRVhQ
RUNUX05FQVIoYmVmb3JlLCBhZnRlciwgMTApOworCisgICAgdCArPSBrQW5pbWF0aW9uVGltZTsK
KyAgICBmb3IgKDsgcmVzdWx0ICYmIHQgPCBrRW5kVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkK
KyAgICAgICAgcmVzdWx0ID0gYW5pbWF0ZVNjcm9sbCh0KTsKK30KKworVEVTVF9GKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvdHNDdWJpYykKK3sKKyAgICBTY3JvbGxBbmltYXRvck5v
bmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxB
bmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1
YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CisKKyAg
ICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAwLCBrU3RhcnRUaW1lLCAmcGFy
YW1ldGVycyk7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIGRvdWJsZSB0OworICAgIGZv
ciAodCA9IGtTdGFydFRpbWU7IHJlc3VsdCAmJiB0IDwga1N0YXJ0VGltZSArIDEuNSAqIGtUaWNr
VGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gYW5pbWF0ZVNjcm9s
bCh0KTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA7ICsraSkgeworICAgICAgICB0ICs9
IGtBbmltYXRpb25UaW1lOworICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9s
bCh0KTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVy
cygzLCA0MCwgMTAwMDAsIHQsICZwYXJhbWV0ZXJzKTsKKyAgICB9CisKKyAgICB0ICs9IGtBbmlt
YXRpb25UaW1lOworICAgIGZvciAoOyByZXN1bHQgJiYgdCA8IGtFbmRUaW1lOyB0ICs9IGtBbmlt
YXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsK
K30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvdHNDdWJpY1Ntb290
aGVkKQoreworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRy
dWUsIDEwICoga1RpY2tUaW1lLCA2ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1
YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tU
aW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CisKKyAgICB1cGRhdGVEYXRhRnJv
bVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAg
Ym9vbCByZXN1bHQgPSB0cnVlOworICAgIGRvdWJsZSB0OworICAgIGZvciAodCA9IGtTdGFydFRp
bWU7IHJlc3VsdCAmJiB0IDwga1N0YXJ0VGltZSArIDEuNSAqIGtUaWNrVGltZTsgdCArPSBrQW5p
bWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gYW5pbWF0ZVNjcm9sbCh0KTsKKwogICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgMjA7ICsraSkgewogICAgICAgICB0ICs9IGtBbmltYXRpb25UaW1l
OwogICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKQEAgLTU2MCw3
ICs2NTEsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c1F1YWRy
YXRpY1Ntb290aGVkKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsV2hl
ZWxUcmFjZSkKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVy
cyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMs
IDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tU
aW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVl
LCAxMSAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5p
bWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgLy8gQ29uc3RydWN0ZWQgZnJvbSBhbiBhY3R1
YWwgc2Nyb2xsIHdoZWVsIHRyYWNlIHRoYXQgZXhoaWJpdGVkIGEgZ2xpdGNoLgogICAgIGJvb2wg
cmVzdWx0ID0gdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUzLjMzLCAxMDAwLCAxMDAuNTc4
MSwgJnBhcmFtZXRlcnMpOwpAQCAtNTg0LDcgKzY3NSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRv
ck5vbmVUZXN0LCBTY3JvbGxXaGVlbFRyYWNlKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25l
VGVzdCwgU2Nyb2xsV2hlZWxUcmFjZVNtb290aGVkKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCA3ICoga1RpY2tU
aW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xs
QW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCA3ICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3Jv
bGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6
OkxpbmVhciwgMCk7CiAKICAgICAvLyBDb25zdHJ1Y3RlZCBmcm9tIGFuIGFjdHVhbCBzY3JvbGwg
d2hlZWwgdHJhY2UgdGhhdCBleGhpYml0ZWQgYSBnbGl0Y2guCiAgICAgYm9vbCByZXN1bHQgPSB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTMuMzMsIDEwMDAsIDEwMC41NzgxLCAmcGFyYW1l
dGVycyk7CkBAIC02MDgsNyArNjk5LDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Qs
IFNjcm9sbFdoZWVsVHJhY2VTbW9vdGhlZCkKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRl
c3QsIExpbnV4VHJhY2tQYWRUcmFjZSkKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFt
ZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JO
b25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJh
dGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMg
cGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpD
dWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgYm9vbCByZXN1bHQg
PSB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMS4wMCwgNjAuMDAsIDEwMDAsIDEwMC42ODYzLCAm
cGFyYW1ldGVycyk7CiAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHVwZGF0ZURhdGFGcm9tUGFyYW1l
dGVycygxLjAwLCAyMC4wMCwgMTAwMCwgMTAwLjY4OTcsICZwYXJhbWV0ZXJzKTsKQEAgLTYzOCw3
ICs3MjksNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgTGludXhUcmFja1BhZFRy
YWNlKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgTGludXhUcmFja1BhZFRyYWNl
U21vb3RoZWQpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRl
cnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDcgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRp
YywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBh
cmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDcgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMs
IDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIGJv
b2wgcmVzdWx0ID0gdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEuMDAsIDYwLjAwLCAxMDAwLCAx
MDAuNjg2MywgJnBhcmFtZXRlcnMpOwogICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoMS4wMCwgMjAuMDAsIDEwMDAsIDEwMC42ODk3LCAmcGFyYW1ldGVycyk7
CkBAIC02NjgsNyArNzU5LDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIExpbnV4
VHJhY2tQYWRUcmFjZVNtb290aGVkKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwg
U2Nyb2xsRG93blRvQnVtcGVyKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVy
cyBwYXJhbWV0ZXJzKHRydWUsIDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFy
YW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDEwICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1lLCBT
Y3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5v
bmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7
CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMjAsIDIwMCwga1N0YXJ0VGltZSwg
JnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTY4NiwxMCArNzc3LDkg
QEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbERvd25Ub0J1bXBlcikKICAg
ICBjaGVja1NvZnRMYW5kaW5nKDIwMCk7CiB9CiAKLQogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9u
ZVRlc3QsIFNjcm9sbFVwVG9CdW1wZXIpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJh
bWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDcgKiBrVGlja1RpbWUsIFNj
cm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRv
ck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25l
OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDcgKiBrVGlja1Rp
bWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFy
LCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAtMjAsIDIwMCwga1N0YXJ0
VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTcwNyw0ICs3
OTcsMTc5IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxVcFRvQnVtcGVy
KQogICAgIGNoZWNrU29mdExhbmRpbmcoMCk7CiB9CiAKK1RFU1RfRihTY3JvbGxBbmltYXRvck5v
bmVUZXN0LCBTY3JvbGxVcFRvQnVtcGVyQ29hc3QpCit7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25l
OjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDIgKiBrVGlja1Rp
bWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFy
LCAxKTsKKworICAgIG1fY3VycmVudFBvc2l0aW9uID0gNDAwMDA7CisgICAgdXBkYXRlRGF0YUZy
b21QYXJhbWV0ZXJzKDEsIC0xMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsK
KyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgZG91YmxlIHQgPSBrU3RhcnRUaW1lOworICAg
IGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAgICAgICB0ICs9IGtBbmltYXRpb25U
aW1lOworICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKKyAgICAg
ICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIC0xMDAwMCwgNTAwMDAsIHQsICZwYXJhbWV0
ZXJzKTsKKyAgICB9CisgICAgY2hlY2tEZXNpcmVkUG9zaXRpb24oMCk7CisKKyAgICB0ICs9IGtB
bmltYXRpb25UaW1lOworICAgIGZvciAoOyByZXN1bHQgJiYgdCA8IGtFbmRUaW1lOyB0ICs9IGtB
bmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0
KTsKKyAgICBjaGVja1NvZnRMYW5kaW5nKDApOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdCwgU2Nyb2xsRG93blRvQnVtcGVyQ29hc3QpCit7CisgICAgU2Nyb2xsQW5pbWF0b3JO
b25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDIgKiBrVGlj
a1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGlu
ZWFyLCAxKTsKKworICAgIG1fY3VycmVudFBvc2l0aW9uID0gMTAwMDA7CisgICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKDEsIDEwMDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMp
OworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBkb3VibGUgdCA9IGtTdGFydFRpbWU7Cisg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgICAgIHQgKz0ga0FuaW1hdGlv
blRpbWU7CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOworICAg
ICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwMDAsIDUwMDAwLCB0LCAmcGFyYW1l
dGVycyk7CisgICAgfQorICAgIGNoZWNrRGVzaXJlZFBvc2l0aW9uKDUwMDAwKTsKKworICAgIHQg
Kz0ga0FuaW1hdGlvblRpbWU7CisgICAgZm9yICg7IHJlc3VsdCAmJiB0IDwga0VuZFRpbWU7IHQg
Kz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Ny
b2xsKHQpOworICAgIGNoZWNrU29mdExhbmRpbmcoNTAwMDApOworfQorCitURVNUX0YoU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdCwgVmFyeWluZ0lucHV0c0VxdWl2YWxlbmN5KQoreworICAgIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDE1ICoga1RpY2tUaW1l
LCAxMCAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgNSAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpMaW5lYXIsIDApOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBh
cmFtZXRlcnMoMSwgMzAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNh
dmVQZXJBeGlzRGF0YSBkYXRhU2luZ2xlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxNTAsIDUwMDAwLCBrU3Rh
cnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFEb3VibGUoKm1f
ZGF0YSk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAx
MDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKDEsIDEwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhVHJpcGxlKCptX2RhdGEpOworCisgICAg
cmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3Rh
cnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUw
LCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycygxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVy
cyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwLCA1MDAwMCwga1N0YXJ0VGlt
ZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAw
MDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YU1h
bnkoKm1fZGF0YSk7CisKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YURvdWJsZSk7Cisg
ICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFUcmlwbGUpOworICAgIEVYUEVDVF9FUShkYXRh
U2luZ2xlLCBkYXRhTWFueSk7Cit9CisKK1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBW
YXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3lDb2FzdCkKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6
OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxNSAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1Rp
bWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFy
LCAxKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDMw
MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEg
ZGF0YVNpbmdsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKDEsIDE1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhRG91YmxlKCptX2RhdGEpOworCisgICAg
cmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwLCA1MDAwMCwga1N0
YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAx
MDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21Q
YXJhbWV0ZXJzKDEsIDEwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBT
YXZlUGVyQXhpc0RhdGEgZGF0YVRyaXBsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAg
dXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAwMDAsIGtTdGFy
dFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAs
IDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJh
bWV0ZXJzKDEsIDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0
ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJz
KTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFNYW55KCptX2RhdGEpOwor
CisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFEb3VibGUpOworICAgIEVYUEVDVF9FUShk
YXRhU2luZ2xlLCBkYXRhVHJpcGxlKTsKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YU1h
bnkpOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgVmFyeWluZ0lucHV0c0Vx
dWl2YWxlbmN5Q29hc3RMYXJnZSkKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRl
cnMgcGFyYW1ldGVycyh0cnVlLCAxNSAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1RpbWUsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAxKTsKKwor
ICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDMwMDAwLCA1MDAw
MCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhU2lu
Z2xlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoMSwgMTUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRl
RGF0YUZyb21QYXJhbWV0ZXJzKDEsIDE1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRl
cnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhRG91YmxlKCptX2RhdGEpOworCisgICAgcmVz
ZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwMDAsIDUwMDAwLCBrU3Rh
cnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDEw
MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9t
UGFyYW1ldGVycygxLCAxMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAg
ICBTYXZlUGVyQXhpc0RhdGEgZGF0YVRyaXBsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7Cisg
ICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAm
cGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUwMDAw
LCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJz
KDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7
CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUw
MDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFN
YW55KCptX2RhdGEpOworCisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFEb3VibGUpOwor
ICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhVHJpcGxlKTsKKyAgICBFWFBFQ1RfRVEoZGF0
YVNpbmdsZSwgZGF0YU1hbnkpOworfQorCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwg
VmFyeWluZ0lucHV0c0VxdWl2YWxlbmN5Q29hc3RTdGVlcCkKK3sKKyAgICBTY3JvbGxBbmltYXRv
ck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxNSAqIGtUaWNrVGltZSwgMTAgKiBr
VGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UXVhZHJhdGljLCAxKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKDEsIDMwMDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQ
ZXJBeGlzRGF0YSBkYXRhU2luZ2xlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1l
dGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDE1MDAwLCA1MDAwMCwga1N0
YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhRG91YmxlKCpt
X2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwg
MTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZy
b21QYXJhbWV0ZXJzKDEsIDEwMDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUs
ICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YVRyaXBsZSgqbV9kYXRhKTsK
KworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUw
MDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRl
RGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVy
cyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRU
aW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwMDAs
IDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJh
bWV0ZXJzKDEsIDUwMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2
ZVBlckF4aXNEYXRhIGRhdGFNYW55KCptX2RhdGEpOworCisgICAgRVhQRUNUX0VRKGRhdGFTaW5n
bGUsIGRhdGFEb3VibGUpOworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhVHJpcGxlKTsK
KyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YU1hbnkpOworfQorCisKICNlbmRpZiAvLyBF
TkFCTEUoU01PT1RIX1NDUk9MTElORykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104425</attachid>
            <date>2011-08-18 16:55:07 -0700</date>
            <delta_ts>2011-08-23 18:37:03 -0700</delta_ts>
            <desc>Address review comments</desc>
            <filename>bug-66258-20110818165506.patch</filename>
            <type>text/plain</type>
            <size>52654</size>
            <attacher name="Scott Byer">scottbyer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTMzNzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxOGM4YmZhN2Q1MTk4NjA1
OWMxYmJiYTZjY2ExMzE3ZDYwYjIzZGUzLi40OTRmOGQyNGMwNmY3NWI4MjVhZTliY2ViM2U5NTA0
ODZhN2M1OTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMTEtMDgtMTUgIFNjb3R0
IEJ5ZXIgIDxzY290dGJ5ZXJAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZSBjb2FzdGluZyBpbXBsZW1lbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjYyNTgKKworICAgICAgICBJbmNyZWFzZSB0aGUgYW5pbWF0
aW9uIHRpbWUgYmFzZWQgb24gdGhlIHZlbG9jaXR5IG9mIHRoZSBzY3JvbGwsIHVwIHRvIGEKKyAg
ICAgICAgbWF4aW11bSBhbW91bnQuIEZpeCBidWdzIGZvdW5kIGJ5IGFkZGl0aW9uYWwgdW5pdCB0
ZXN0aW5nLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGl0aW9uYWwgdGVzdHMgaW4gU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDogQ3VydmVNYXRoUXVh
cnRpYywgQ3VydmVNYXRoQ29hc3QsCisgICAgICAgIFNjcm9sbE9uY2VRdWFydGljLCBTY3JvbGxU
d2ljZUN1YmljLCBTY3JvbGxMb3RzQ3ViaWMsIFNjcm9sbExvdHNDdWJpY1Ntb290aGVkLAorICAg
ICAgICBTY3JvbGxVcFRvQnVtcGVyQ29hc3QsIFNjcm9sbERvd25Ub0J1bXBlckNvYXN0LCBWYXJ5
aW5nSW5wdXRzRXF1aXZhbGVuY3ksCisgICAgICAgIFZhcnlpbmdJbnB1dHNFcXVpdmFsZW5jeUNv
YXN0LCBWYXJ5aW5nSW5wdXRzRXF1aXZhbGVuY3lDb2FzdExhcmdlLAorICAgICAgICBWYXJ5aW5n
SW5wdXRzRXF1aXZhbGVuY3lDb2FzdFN0ZWVwCisKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxB
bmltYXRvck5vbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGVyQXhpc0RhdGE6OmN1cnZlQXQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y29hc3RDdXJ2ZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZUludGVncmFsQXQpOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6YXR0YWNrQXJlYSk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxl
YXNlQXJlYSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNE
YXRhOjpQZXJBeGlzRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6
OlBlckF4aXNEYXRhOjp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlVmlzaWJsZUxlbmd0aCk6
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OlNjcm9sbEFuaW1hdG9yTm9u
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OnNjcm9sbCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck5vbmU6OndpbGxFbmRMaXZlUmVzaXplKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6ZGlkQWRkVmVydGljYWxTY3JvbGxi
YXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JOb25lOjpkaWRBZGRIb3Jpem9u
dGFsU2Nyb2xsYmFyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTm9uZTo6dXBk
YXRlVmlzaWJsZUxlbmd0aHMpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9u
ZS5oOgorCiAyMDExLTA4LTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIHBvc2l0aW9uRm9yUG9pbnQgcmV0dXJucyB3cm9uZyBWaXNpYmxlUG9zaXRpb24gYXQg
YmlkaSBib3VuZGFyaWVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0
b3JOb25lLmNwcAppbmRleCAyNmU2ZmQ2OTIwOGQ0MDM4ZWUxZmY4MzcyODBjYjY3MzA4YWRjOGM3
Li45YTM5ZGQyNWI5MzA0ZjNjNTRkYzYwZThlMmVhZTdiOWZjNDQxMzY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKQEAgLTY0LDcgKzY0LDcg
QEAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKCkKIHsKIH0KIAot
U2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzOjpQYXJhbWV0ZXJzKGJvb2wgaXNFbmFibGVk
LCBkb3VibGUgYW5pbWF0aW9uVGltZSwgZG91YmxlIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSwg
Q3VydmUgYXR0YWNrQ3VydmUsIGRvdWJsZSBhdHRhY2tUaW1lLCBDdXJ2ZSByZWxlYXNlQ3VydmUs
IGRvdWJsZSByZWxlYXNlVGltZSkKK1Njcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVyczo6UGFy
YW1ldGVycyhib29sIGlzRW5hYmxlZCwgZG91YmxlIGFuaW1hdGlvblRpbWUsIGRvdWJsZSByZXBl
YXRNaW5pbXVtU3VzdGFpblRpbWUsIEN1cnZlIGF0dGFja0N1cnZlLCBkb3VibGUgYXR0YWNrVGlt
ZSwgQ3VydmUgcmVsZWFzZUN1cnZlLCBkb3VibGUgcmVsZWFzZVRpbWUsIEN1cnZlIGNvYXN0VGlt
ZUN1cnZlLCBkb3VibGUgbWF4aW11bUNvYXN0VGltZSkKICAgICA6IG1faXNFbmFibGVkKGlzRW5h
YmxlZCkKICAgICAsIG1fYW5pbWF0aW9uVGltZShhbmltYXRpb25UaW1lKQogICAgICwgbV9yZXBl
YXRNaW5pbXVtU3VzdGFpblRpbWUocmVwZWF0TWluaW11bVN1c3RhaW5UaW1lKQpAQCAtNzIsNiAr
NzIsOCBAQCBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnM6OlBhcmFtZXRlcnMoYm9vbCBp
c0VuYWJsZWQsIGRvdWJsZSBhbmltYXRpb25UaW1lLAogICAgICwgbV9hdHRhY2tUaW1lKGF0dGFj
a1RpbWUpCiAgICAgLCBtX3JlbGVhc2VDdXJ2ZShyZWxlYXNlQ3VydmUpCiAgICAgLCBtX3JlbGVh
c2VUaW1lKHJlbGVhc2VUaW1lKQorICAgICwgbV9jb2FzdFRpbWVDdXJ2ZShjb2FzdFRpbWVDdXJ2
ZSkKKyAgICAsIG1fbWF4aW11bUNvYXN0VGltZShtYXhpbXVtQ29hc3RUaW1lKQogewogfQogCkBA
IC03OSwyNSArODEsMzggQEAgZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6
OmN1cnZlQXQoQ3VydmUgY3VydmUsIGRvdWJsZSB0KQogewogICAgIHN3aXRjaCAoY3VydmUpIHsK
ICAgICBjYXNlIExpbmVhcjoKLSAgICAgICAgcmV0dXJuIHQgKiB0OworICAgICAgICByZXR1cm4g
dDsKICAgICBjYXNlIFF1YWRyYXRpYzoKLSAgICAgICAgcmV0dXJuIHQgKiB0ICogdDsKKyAgICAg
ICAgcmV0dXJuIHQgKiB0OwogICAgIGNhc2UgQ3ViaWM6CisgICAgICAgIHJldHVybiB0ICogdCAq
IHQ7CisgICAgY2FzZSBRdWFydGljOgogICAgICAgICByZXR1cm4gdCAqIHQgKiB0ICogdDsKICAg
ICBjYXNlIEJvdW5jZToKLSAgICAgICAgaWYgKHQgPCAxIC8gMi43NSkKLSAgICAgICAgICAgIHJl
dHVybiA3LjU2MjUgKiB0ICogdDsKLSAgICAgICAgaWYgKHQgPCAyIC8gMi43NSkgewotICAgICAg
ICAgICAgZG91YmxlIHQxID0gdCAtIDEuNSAvIDIuNzU7Ci0gICAgICAgICAgICByZXR1cm4gNy41
NjI1ICogdDEgKiB0MSArIC43NTsKKyAgICAgICAgLy8gVGltZSBiYXNlIGlzIGNob3NlbiB0byBr
ZWVwIHRoZSBib3VuY2UgcG9pbnRzIHNpbXBsZXI6CisgICAgICAgIC8vIDEgKGhhbGYgYm91bmNl
IGNvbWluZyBpbikgKyAxICsgLjUgKyAuMjUKKyAgICAgICAgY29uc3QgZG91YmxlIGtUaW1lQmFz
ZSA9IDIuNzU7CisgICAgICAgIGNvbnN0IGRvdWJsZSBrVGltZUJhc2VTcXVhcmVkID0ga1RpbWVC
YXNlICoga1RpbWVCYXNlOworICAgICAgICBpZiAodCA8IDEgLyBrVGltZUJhc2UpCisgICAgICAg
ICAgICByZXR1cm4ga1RpbWVCYXNlU3F1YXJlZCAqIHQgKiB0OworICAgICAgICBpZiAodCA8IDIg
LyBrVGltZUJhc2UpIHsKKyAgICAgICAgICAgIC8vIEludmVydCBhIFstLjUsLjVdIHF1YWRyYXRp
YyBwYXJhYm9sYSwgY2VudGVyIGl0IGluIFsxLDJdLgorICAgICAgICAgICAgZG91YmxlIHQxID0g
dCAtIDEuNSAvIGtUaW1lQmFzZTsKKyAgICAgICAgICAgIGNvbnN0IGRvdWJsZSBrUGFyYWJvbGFB
dEVkZ2UgPSAxIC0gLjUgKiAuNTsKKyAgICAgICAgICAgIHJldHVybiBrVGltZUJhc2VTcXVhcmVk
ICogdDEgKiB0MSArIGtQYXJhYm9sYUF0RWRnZTsKICAgICAgICAgfQotICAgICAgICBpZiAodCA8
IDIuNSAvIDIuNzUpIHsKLSAgICAgICAgICAgIGRvdWJsZSB0MiA9IHQgLSAyLjI1IC8gMi43NTsK
LSAgICAgICAgICAgIHJldHVybiA3LjU2MjUgKiB0MiAqIHQyICsgLjkzNzU7CisgICAgICAgIGlm
ICh0IDwgMi41IC8ga1RpbWVCYXNlKSB7CisgICAgICAgICAgICAvLyBJbnZlcnQgYSBbLS4yNSwu
MjVdIHF1YWRyYXRpYyBwYXJhYm9sYSwgY2VudGVyIGl0IGluIFsyLDIuNV0uCisgICAgICAgICAg
ICBkb3VibGUgdDIgPSB0IC0gMi4yNSAvIGtUaW1lQmFzZTsKKyAgICAgICAgICAgIGNvbnN0IGRv
dWJsZSBrUGFyYWJvbGFBdEVkZ2UgPSAxIC0gLjI1ICogLjI1OworICAgICAgICAgICAgcmV0dXJu
IGtUaW1lQmFzZVNxdWFyZWQgKiB0MiAqIHQyICsga1BhcmFib2xhQXRFZGdlOwogICAgICAgICB9
Ci0gICAgICAgIHQgLT0gMi42MjUgLyAyLjc1OwotICAgICAgICByZXR1cm4gNy41NjI1ICogdCAq
IHQgKyAuOTg0Mzc1OworICAgICAgICAgICAgLy8gSW52ZXJ0IGEgWy0uMTI1LC4xMjVdIHF1YWRy
YXRpYyBwYXJhYm9sYSwgY2VudGVyIGl0IGluIFsyLjUsMi43NV0uCisgICAgICAgIGNvbnN0IGRv
dWJsZSBrUGFyYWJvbGFBdEVkZ2UgPSAxIC0gLjEyNSAqIC4xMjU7CisgICAgICAgIHQgLT0gMi42
MjUgLyBrVGltZUJhc2U7CisgICAgICAgIHJldHVybiBrVGltZUJhc2VTcXVhcmVkICogdCAqIHQg
KyBrUGFyYWJvbGFBdEVkZ2U7CiAgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IHJldHVybiAwOwogfQogCkBAIC0xMTUsMjMgKzEzMCw3NiBAQCBkb3VibGUgU2Nyb2xsQW5pbWF0
b3JOb25lOjpQZXJBeGlzRGF0YTo6cmVsZWFzZUN1cnZlKEN1cnZlIGN1cnZlLCBkb3VibGUgZGVs
dGFUaQogICAgIHJldHVybiByZWxlYXNlUG9zaXRpb24gKyAocG9zaXRpb25GYWN0b3IgKiAoZGVz
aXJlZFBvc2l0aW9uIC0gcmVsZWFzZVBvc2l0aW9uKSk7CiB9CiAKLWRvdWJsZSBTY3JvbGxBbmlt
YXRvck5vbmU6OlBlckF4aXNEYXRhOjpjdXJ2ZURlcml2YXRpdmVBdChDdXJ2ZSBjdXJ2ZSwgZG91
YmxlIHQpCitkb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y29hc3RDdXJ2
ZShDdXJ2ZSBjdXJ2ZSwgZG91YmxlIGZhY3RvcikKK3sKKyAgICByZXR1cm4gMSAtIGN1cnZlQXQo
Y3VydmUsIDEgLSBmYWN0b3IpOworfQorCitkb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJB
eGlzRGF0YTo6Y3VydmVJbnRlZ3JhbEF0KEN1cnZlIGN1cnZlLCBkb3VibGUgdCkKIHsKICAgICBz
d2l0Y2ggKGN1cnZlKSB7CiAgICAgY2FzZSBMaW5lYXI6Ci0gICAgICAgIHJldHVybiB0ICogMjsK
KyAgICAgICAgcmV0dXJuIHQgKiB0IC8gMjsKICAgICBjYXNlIFF1YWRyYXRpYzoKLSAgICAgICAg
cmV0dXJuIHQgKiB0ICogMzsKKyAgICAgICAgcmV0dXJuIHQgKiB0ICogdCAvIDM7CiAgICAgY2Fz
ZSBDdWJpYzoKLSAgICAgICAgcmV0dXJuIHQgKiB0ICogdCAqIDQ7CisgICAgICAgIHJldHVybiB0
ICogdCAqIHQgKiB0IC8gNDsKKyAgICBjYXNlIFF1YXJ0aWM6CisgICAgICAgIHJldHVybiB0ICog
dCAqIHQgKiB0ICogdCAvIDU7CiAgICAgY2FzZSBCb3VuY2U6Ci0gICAgICAgIHJldHVybiB0Owor
ICAgICAgICBjb25zdCBkb3VibGUga1RpbWVCYXNlID0gMi43NTsKKyAgICAgICAgY29uc3QgZG91
YmxlIGtUaW1lQmFzZVNxdWFyZWQgPSBrVGltZUJhc2UgKiBrVGltZUJhc2U7CisgICAgICAgIGNv
bnN0IGRvdWJsZSBrVGltZUJhc2VTcXVhcmVkT3ZlclRocmVlID0ga1RpbWVCYXNlU3F1YXJlZCAv
IDM7CisgICAgICAgIGRvdWJsZSBhcmVhOworICAgICAgICBkb3VibGUgdDEgPSBtaW4odCwgMSAv
IGtUaW1lQmFzZSk7CisgICAgICAgIGFyZWEgPSBrVGltZUJhc2VTcXVhcmVkT3ZlclRocmVlICog
dDEgKiB0MSAqIHQxOworICAgICAgICBpZiAodCA8IDEgLyBrVGltZUJhc2UpCisgICAgICAgICAg
ICByZXR1cm4gYXJlYTsKKworICAgICAgICB0MSA9IG1pbih0IC0gMSAvIGtUaW1lQmFzZSwgMSAv
IGtUaW1lQmFzZSk7CisgICAgICAgIC8vIFRoZSBpbnRlZ3JhbCBvZiBrVGltZUJhc2VTcXVhcmVk
ICogKHQxIC0gLjUgLyBrVGltZUJhc2UpICogKHQxIC0gLjUgLyBrVGltZUJhc2UpICsga1BhcmFi
b2xhQXRFZGdlCisgICAgICAgIGNvbnN0IGRvdWJsZSBrU2Vjb25kSW5uZXJPZmZzZXQgPSBrVGlt
ZUJhc2VTcXVhcmVkICogLjUgLyBrVGltZUJhc2U7CisgICAgICAgIGRvdWJsZSBib3VuY2VBcmVh
ID0gdDEgKiAodDEgKiAoa1RpbWVCYXNlU3F1YXJlZE92ZXJUaHJlZSAqIHQxIC0ga1NlY29uZElu
bmVyT2Zmc2V0KSArIDEpOworICAgICAgICBhcmVhICs9IGJvdW5jZUFyZWE7CisgICAgICAgIGlm
ICh0IDwgMiAvIGtUaW1lQmFzZSkKKyAgICAgICAgICAgIHJldHVybiBhcmVhOworCisgICAgICAg
IHQxID0gbWluKHQgLSAyIC8ga1RpbWVCYXNlLCAwLjUgLyBrVGltZUJhc2UpOworICAgICAgICAv
LyBUaGUgaW50ZWdyYWwgb2Yga1RpbWVCYXNlU3F1YXJlZCAqICh0MSAtIC4yNSAvIGtUaW1lQmFz
ZSkgKiAodDEgLSAuMjUgLyBrVGltZUJhc2UpICsga1BhcmFib2xhQXRFZGdlCisgICAgICAgIGNv
bnN0IGRvdWJsZSBrVGhpcmRJbm5lck9mZnNldCA9IGtUaW1lQmFzZVNxdWFyZWQgKiAuMjUgLyBr
VGltZUJhc2U7CisgICAgICAgIGJvdW5jZUFyZWEgPSAgdDEgKiAodDEgKiAoa1RpbWVCYXNlU3F1
YXJlZE92ZXJUaHJlZSAqIHQxIC0ga1RoaXJkSW5uZXJPZmZzZXQpICsgMSk7CisgICAgICAgIGFy
ZWEgKz0gYm91bmNlQXJlYTsKKyAgICAgICAgaWYgKHQgPCAyLjUgLyBrVGltZUJhc2UpCisgICAg
ICAgICAgICByZXR1cm4gYXJlYTsKKworICAgICAgICB0MSA9IHQgLSAyLjUgLyBrVGltZUJhc2U7
CisgICAgICAgIC8vIFRoZSBpbnRlZ3JhbCBvZiBrVGltZUJhc2VTcXVhcmVkICogKHQxIC0gLjEy
NSAvIGtUaW1lQmFzZSkgKiAodDEgLSAuMTI1IC8ga1RpbWVCYXNlKSArIGtQYXJhYm9sYUF0RWRn
ZQorICAgICAgICBjb25zdCBkb3VibGUga0ZvdXJ0aElubmVyT2Zmc2V0ID0ga1RpbWVCYXNlU3F1
YXJlZCAqIC4xMjUgLyBrVGltZUJhc2U7CisgICAgICAgIGJvdW5jZUFyZWEgPSB0MSAqICh0MSAq
IChrVGltZUJhc2VTcXVhcmVkT3ZlclRocmVlICogdDEgLSBrRm91cnRoSW5uZXJPZmZzZXQpICsg
MSk7CisgICAgICAgIGFyZWEgKz0gYm91bmNlQXJlYTsKKyAgICAgICAgcmV0dXJuIGFyZWE7CiAg
ICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiAwOwogfQogCi1TY3Jv
bGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpQZXJBeGlzRGF0YShTY3JvbGxBbmltYXRvck5v
bmUqIHBhcmVudCwgZmxvYXQqIGN1cnJlbnRQb3NpdGlvbikKK2RvdWJsZSBTY3JvbGxBbmltYXRv
ck5vbmU6OlBlckF4aXNEYXRhOjphdHRhY2tBcmVhKEN1cnZlIGN1cnZlLCBkb3VibGUgc3RhcnRU
LCBkb3VibGUgZW5kVCkKK3sKKyAgICBkb3VibGUgc3RhcnRWYWx1ZSA9IGN1cnZlSW50ZWdyYWxB
dChjdXJ2ZSwgc3RhcnRUKTsKKyAgICBkb3VibGUgZW5kVmFsdWUgPSBjdXJ2ZUludGVncmFsQXQo
Y3VydmUsIGVuZFQpOworICAgIHJldHVybiBlbmRWYWx1ZSAtIHN0YXJ0VmFsdWU7Cit9CisKK2Rv
dWJsZSBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhOjpyZWxlYXNlQXJlYShDdXJ2ZSBj
dXJ2ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpCit7CisgICAgZG91YmxlIHN0YXJ0VmFs
dWUgPSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIDEgLSBlbmRUKTsKKyAgICBkb3VibGUgZW5kVmFs
dWUgPSBjdXJ2ZUludGVncmFsQXQoY3VydmUsIDEgLSBzdGFydFQpOworICAgIHJldHVybiBlbmRW
YWx1ZSAtIHN0YXJ0VmFsdWU7Cit9CisKK1Njcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6
OlBlckF4aXNEYXRhKFNjcm9sbEFuaW1hdG9yTm9uZSogcGFyZW50LCBmbG9hdCogY3VycmVudFBv
c2l0aW9uLCBMYXlvdXRVbml0IHZpc2libGVMZW5ndGgpCiAgICAgOiBtX2N1cnJlbnRQb3NpdGlv
bihjdXJyZW50UG9zaXRpb24pCisgICAgLCBtX3Zpc2libGVMZW5ndGgodmlzaWJsZUxlbmd0aCkK
IHsKICAgICByZXNldCgpOwogfQpAQCAtMTYyLDIwICsyMzAsNiBAQCB2b2lkIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UGVyQXhpc0RhdGE6OnJlc2V0KCkKIAogYm9vbCBTY3JvbGxBbmltYXRvck5vbmU6
OlBlckF4aXNEYXRhOjp1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoZmxvYXQgc3RlcCwgZmxvYXQg
bXVsdGlwbGllciwgZmxvYXQgc2Nyb2xsYWJsZVNpemUsIGRvdWJsZSBjdXJyZW50VGltZSwgUGFy
YW1ldGVycyogcGFyYW1ldGVycykKIHsKLSAgICBpZiAocGFyYW1ldGVycy0+bV9hbmltYXRpb25U
aW1lID4gbV9hbmltYXRpb25UaW1lKQotICAgICAgICBtX2FuaW1hdGlvblRpbWUgPSBwYXJhbWV0
ZXJzLT5tX2FuaW1hdGlvblRpbWU7Ci0gICAgbV9hdHRhY2tUaW1lID0gcGFyYW1ldGVycy0+bV9h
dHRhY2tUaW1lOwotICAgIG1fcmVsZWFzZVRpbWUgPSBwYXJhbWV0ZXJzLT5tX3JlbGVhc2VUaW1l
OwotICAgIG1fYXR0YWNrQ3VydmUgPSBwYXJhbWV0ZXJzLT5tX2F0dGFja0N1cnZlOwotICAgIG1f
cmVsZWFzZUN1cnZlID0gcGFyYW1ldGVycy0+bV9yZWxlYXNlQ3VydmU7Ci0KLSAgICAvLyBQcmlv
cml0aXplIG91ciB3YXkgb3V0IG9mIG92ZXIgY29uc3RyYWludC4KLSAgICBpZiAobV9hdHRhY2tU
aW1lICsgbV9yZWxlYXNlVGltZSA+IG1fYW5pbWF0aW9uVGltZSkgewotICAgICAgICBpZiAobV9y
ZWxlYXNlVGltZSA+IG1fYW5pbWF0aW9uVGltZSkKLSAgICAgICAgICAgIG1fcmVsZWFzZVRpbWUg
PSBtX2FuaW1hdGlvblRpbWU7Ci0gICAgICAgIG1fYXR0YWNrVGltZSA9IG1fYW5pbWF0aW9uVGlt
ZSAtIG1fcmVsZWFzZVRpbWU7Ci0gICAgfQotCiAgICAgaWYgKCFtX3N0YXJ0VGltZSkKICAgICAg
ICAgbV9kZXNpcmVkUG9zaXRpb24gPSAqbV9jdXJyZW50UG9zaXRpb247CiAgICAgZmxvYXQgbmV3
UG9zaXRpb24gPSBtX2Rlc2lyZWRQb3NpdGlvbiArIChzdGVwICogbXVsdGlwbGllcik7CkBAIC0x
ODksNiArMjQzLDIxIEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBk
YXRlRGF0YUZyb21QYXJhbWV0ZXJzKGZsb2F0IHN0ZXAsIGZsb2F0CiAgICAgbV9kZXNpcmVkUG9z
aXRpb24gPSBuZXdQb3NpdGlvbjsKIAogICAgIGlmICghbV9zdGFydFRpbWUpIHsKKyAgICAgICAg
bV9hdHRhY2tUaW1lID0gcGFyYW1ldGVycy0+bV9hdHRhY2tUaW1lOworICAgICAgICBtX2F0dGFj
a0N1cnZlID0gcGFyYW1ldGVycy0+bV9hdHRhY2tDdXJ2ZTsKKyAgICB9CisgICAgbV9hbmltYXRp
b25UaW1lID0gcGFyYW1ldGVycy0+bV9hbmltYXRpb25UaW1lOworICAgIG1fcmVsZWFzZVRpbWUg
PSBwYXJhbWV0ZXJzLT5tX3JlbGVhc2VUaW1lOworICAgIG1fcmVsZWFzZUN1cnZlID0gcGFyYW1l
dGVycy0+bV9yZWxlYXNlQ3VydmU7CisKKyAgICAvLyBQcmlvcml0aXplIG91ciB3YXkgb3V0IG9m
IG92ZXIgY29uc3RyYWludC4KKyAgICBpZiAobV9hdHRhY2tUaW1lICsgbV9yZWxlYXNlVGltZSA+
IG1fYW5pbWF0aW9uVGltZSkgeworICAgICAgICBpZiAobV9yZWxlYXNlVGltZSA+IG1fYW5pbWF0
aW9uVGltZSkKKyAgICAgICAgICAgIG1fcmVsZWFzZVRpbWUgPSBtX2FuaW1hdGlvblRpbWU7Cisg
ICAgICAgIG1fYXR0YWNrVGltZSA9IG1fYW5pbWF0aW9uVGltZSAtIG1fcmVsZWFzZVRpbWU7Cisg
ICAgfQorCisgICAgaWYgKCFtX3N0YXJ0VGltZSkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBz
aG91bGQgYmUgdGhlIHRpbWUgZnJvbSB0aGUgZXZlbnQgdGhhdCBnb3QgdXMgaGVyZS4KICAgICAg
ICAgbV9zdGFydFRpbWUgPSBjdXJyZW50VGltZSAtIGtUaWNrVGltZSAvIDI7CiAgICAgICAgIG1f
c3RhcnRQb3NpdGlvbiA9ICptX2N1cnJlbnRQb3NpdGlvbjsKQEAgLTIwOSwxNiArMjc4LDM4IEBA
IGJvb2wgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6dXBkYXRlRGF0YUZyb21QYXJh
bWV0ZXJzKGZsb2F0IHN0ZXAsIGZsb2F0CiAgICAgICAgIHRpbWVMZWZ0ID0gbWluVGltZUxlZnQ7
CiAgICAgfQogCisgICAgaWYgKHBhcmFtZXRlcnMtPm1fbWF4aW11bUNvYXN0VGltZSA+IChwYXJh
bWV0ZXJzLT5tX3JlcGVhdE1pbmltdW1TdXN0YWluVGltZSArIHBhcmFtZXRlcnMtPm1fcmVsZWFz
ZVRpbWUpKSB7CisgICAgICAgIGRvdWJsZSB0YXJnZXRNYXhDb2FzdFZlbG9jaXR5ID0gbV92aXNp
YmxlTGVuZ3RoICogLjI1ICoga0ZyYW1lUmF0ZTsKKyAgICAgICAgLy8gVGhpcyBuZWVkcyB0byBi
ZSBhcyBtaW5pbWFsIGFzIHBvc3NpYmxlIHdoaWxlIG5vdCBiZWluZyBpbnRydXNpdmUgdG8gcGFn
ZSB1cC9kb3duLgorICAgICAgICBkb3VibGUgbWluQ29hc3REZWx0YSA9IG1fdmlzaWJsZUxlbmd0
aDsKKworICAgICAgICBpZiAoYWJzKHJlbWFpbmluZ0RlbHRhKSA+IG1pbkNvYXN0RGVsdGEpIHsK
KyAgICAgICAgICAgIGRvdWJsZSBtYXhDb2FzdERlbHRhID0gcGFyYW1ldGVycy0+bV9tYXhpbXVt
Q29hc3RUaW1lICogdGFyZ2V0TWF4Q29hc3RWZWxvY2l0eTsKKyAgICAgICAgICAgIGRvdWJsZSBj
b2FzdEZhY3RvciA9IG1pbigxLiwgKGFicyhyZW1haW5pbmdEZWx0YSkgLSBtaW5Db2FzdERlbHRh
KSAvIChtYXhDb2FzdERlbHRhIC0gbWluQ29hc3REZWx0YSkpOworCisgICAgICAgICAgICAvLyBX
ZSBjb3VsZCBwbGF5IHdpdGggdGhlIGN1cnZlIGhlcmUgLSBsaW5lYXIgc2VlbXMgYSBsaXR0bGUg
c29mdC4gSW5pdGlhbCB0ZXN0aW5nIG1ha2VzIG1lIHdhbnQgdG8gZmVlZCBpbnRvIHRoZSBzdXN0
YWluIHRpbWUgbW9yZSBhZ2dyZXNzaXZlbHkuCisgICAgICAgICAgICBkb3VibGUgY29hc3RNaW5U
aW1lTGVmdCA9IG1pbihwYXJhbWV0ZXJzLT5tX21heGltdW1Db2FzdFRpbWUsIG1pblRpbWVMZWZ0
ICsgY29hc3RDdXJ2ZShwYXJhbWV0ZXJzLT5tX2NvYXN0VGltZUN1cnZlLCBjb2FzdEZhY3Rvcikg
KiAocGFyYW1ldGVycy0+bV9tYXhpbXVtQ29hc3RUaW1lIC0gbWluVGltZUxlZnQpKTsKKworICAg
ICAgICAgICAgZG91YmxlIGFkZGl0aW9uYWxUaW1lID0gbWF4KDAuLCBjb2FzdE1pblRpbWVMZWZ0
IC0gbWluVGltZUxlZnQpOworICAgICAgICAgICAgaWYgKGFkZGl0aW9uYWxUaW1lKSB7CisgICAg
ICAgICAgICAgICAgZG91YmxlIGFkZGl0aW9uYWxSZWxlYXNlVGltZSA9IG1pbihhZGRpdGlvbmFs
VGltZSwgcGFyYW1ldGVycy0+bV9yZWxlYXNlVGltZSAvIChwYXJhbWV0ZXJzLT5tX3JlbGVhc2VU
aW1lICsgcGFyYW1ldGVycy0+bV9yZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUpICogYWRkaXRpb25h
bFRpbWUpOworICAgICAgICAgICAgICAgIG1fcmVsZWFzZVRpbWUgPSBwYXJhbWV0ZXJzLT5tX3Jl
bGVhc2VUaW1lICsgYWRkaXRpb25hbFJlbGVhc2VUaW1lOworICAgICAgICAgICAgICAgIG1fYW5p
bWF0aW9uVGltZSA9IGRlbHRhVGltZSArIGNvYXN0TWluVGltZUxlZnQ7CisgICAgICAgICAgICAg
ICAgdGltZUxlZnQgPSBjb2FzdE1pblRpbWVMZWZ0OworICAgICAgICAgICAgfQorICAgICAgICB9
CisgICAgfQorCiAgICAgZG91YmxlIHJlbGVhc2VUaW1lTGVmdCA9IG1pbih0aW1lTGVmdCwgbV9y
ZWxlYXNlVGltZSk7CiAgICAgZG91YmxlIHN1c3RhaW5UaW1lTGVmdCA9IG1heCgwLiwgdGltZUxl
ZnQgLSByZWxlYXNlVGltZUxlZnQgLSBhdHRhY2tUaW1lTGVmdCk7CiAKICAgICBpZiAoYXR0YWNr
VGltZUxlZnQpIHsKICAgICAgICAgZG91YmxlIGF0dGFja1Nwb3QgPSBkZWx0YVRpbWUgLyBtX2F0
dGFja1RpbWU7Ci0gICAgICAgIGF0dGFja0FyZWFMZWZ0ID0gYXR0YWNrVGltZUxlZnQgLyAoY3Vy
dmVEZXJpdmF0aXZlQXQobV9hdHRhY2tDdXJ2ZSwgMSkgLSBjdXJ2ZURlcml2YXRpdmVBdChtX2F0
dGFja0N1cnZlLCBhdHRhY2tTcG90KSk7CisgICAgICAgIGF0dGFja0FyZWFMZWZ0ID0gYXR0YWNr
QXJlYShtX2F0dGFja0N1cnZlLCBhdHRhY2tTcG90LCAxKSAqIG1fYXR0YWNrVGltZTsKICAgICB9
CiAKICAgICBkb3VibGUgcmVsZWFzZVNwb3QgPSAobV9yZWxlYXNlVGltZSAtIHJlbGVhc2VUaW1l
TGVmdCkgLyBtX3JlbGVhc2VUaW1lOwotICAgIGRvdWJsZSByZWxlYXNlQXJlYUxlZnQgID0gcmVs
ZWFzZVRpbWVMZWZ0IC8gKGN1cnZlRGVyaXZhdGl2ZUF0KG1fcmVsZWFzZUN1cnZlLCAxKSAtIGN1
cnZlRGVyaXZhdGl2ZUF0KG1fcmVsZWFzZUN1cnZlLCByZWxlYXNlU3BvdCkpOworICAgIGRvdWJs
ZSByZWxlYXNlQXJlYUxlZnQgID0gcmVsZWFzZUFyZWEobV9yZWxlYXNlQ3VydmUsIHJlbGVhc2VT
cG90LCAxKSAqIG1fcmVsZWFzZVRpbWU7CiAKICAgICBtX2Rlc2lyZWRWZWxvY2l0eSA9IHJlbWFp
bmluZ0RlbHRhIC8gKGF0dGFja0FyZWFMZWZ0ICsgc3VzdGFpblRpbWVMZWZ0ICsgcmVsZWFzZUFy
ZWFMZWZ0KTsKICAgICBtX3JlbGVhc2VQb3NpdGlvbiA9IG1fZGVzaXJlZFBvc2l0aW9uIC0gbV9k
ZXNpcmVkVmVsb2NpdHkgKiByZWxlYXNlQXJlYUxlZnQ7CkBAIC0yNzAsMTAgKzM2MSwxNSBAQCBi
b29sIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGVyQXhpc0RhdGE6OmFuaW1hdGVTY3JvbGwoZG91Ymxl
IGN1cnJlbnRUaW1lKQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGVyQXhpc0RhdGE6OnVwZGF0ZVZpc2libGVMZW5ndGgoTGF5b3V0VW5pdCB2aXNpYmxl
TGVuZ3RoKQoreworICAgIG1fdmlzaWJsZUxlbmd0aCA9IHZpc2libGVMZW5ndGg7Cit9CisKIFNj
cm9sbEFuaW1hdG9yTm9uZTo6U2Nyb2xsQW5pbWF0b3JOb25lKFNjcm9sbGFibGVBcmVhKiBzY3Jv
bGxhYmxlQXJlYSkKICAgICA6IFNjcm9sbEFuaW1hdG9yKHNjcm9sbGFibGVBcmVhKQotICAgICwg
bV9ob3Jpem9udGFsRGF0YSh0aGlzLCAmbV9jdXJyZW50UG9zWCkKLSAgICAsIG1fdmVydGljYWxE
YXRhKHRoaXMsICZtX2N1cnJlbnRQb3NZKQorICAgICwgbV9ob3Jpem9udGFsRGF0YSh0aGlzLCAm
bV9jdXJyZW50UG9zWCwgc2Nyb2xsYWJsZUFyZWEtPnZpc2libGVXaWR0aCgpKQorICAgICwgbV92
ZXJ0aWNhbERhdGEodGhpcywgJm1fY3VycmVudFBvc1ksIHNjcm9sbGFibGVBcmVhLT52aXNpYmxl
SGVpZ2h0KCkpCiAgICAgLCBtX2FuaW1hdGlvblRpbWVyKHRoaXMsICZTY3JvbGxBbmltYXRvck5v
bmU6OmFuaW1hdGlvblRpbWVyRmlyZWQpCiB7CiB9CkBAIC0yOTMsMTUgKzM4OSwxNiBAQCBib29s
IFNjcm9sbEFuaW1hdG9yTm9uZTo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0
aW9uLCBTY3JvbGxHcmFudWxhcgogICAgIFBhcmFtZXRlcnMgcGFyYW1ldGVyczsKICAgICBzd2l0
Y2ggKGdyYW51bGFyaXR5KSB7CiAgICAgY2FzZSBTY3JvbGxCeURvY3VtZW50OgorICAgICAgICBw
YXJhbWV0ZXJzID0gUGFyYW1ldGVycyh0cnVlLCAyMCAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1Rp
bWUsIEN1YmljLCAxMCAqIGtUaWNrVGltZSwgQ3ViaWMsIDEwICoga1RpY2tUaW1lLCBMaW5lYXIs
IDEpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFNjcm9sbEJ5TGluZToKLSAgICAgICAgcGFy
YW1ldGVycyA9IFBhcmFtZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDcgKiBrVGlja1RpbWUs
IFF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgUXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAg
ICAgICAgcGFyYW1ldGVycyA9IFBhcmFtZXRlcnModHJ1ZSwgMTAgKiBrVGlja1RpbWUsIDcgKiBr
VGlja1RpbWUsIEN1YmljLCAzICoga1RpY2tUaW1lLCBDdWJpYywgMyAqIGtUaWNrVGltZSwgTGlu
ZWFyLCAxKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3JvbGxCeVBhZ2U6Ci0gICAgICAg
IHBhcmFtZXRlcnMgPSBQYXJhbWV0ZXJzKHRydWUsIDE1ICoga1RpY2tUaW1lLCAxMCAqIGtUaWNr
VGltZSwgUXVhZHJhdGljLCA1ICoga1RpY2tUaW1lLCBRdWFkcmF0aWMsIDUgKiBrVGlja1RpbWUp
OworICAgICAgICBwYXJhbWV0ZXJzID0gUGFyYW1ldGVycyh0cnVlLCAxNSAqIGtUaWNrVGltZSwg
MTAgKiBrVGlja1RpbWUsIEN1YmljLCA1ICoga1RpY2tUaW1lLCBDdWJpYywgNSAqIGtUaWNrVGlt
ZSwgTGluZWFyLCAxKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBTY3JvbGxCeVBpeGVsOgot
ICAgICAgICBwYXJhbWV0ZXJzID0gUGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNrVGltZSwgMiAq
IGtUaWNrVGltZSwgUXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBRdWFkcmF0aWMsIDMgKiBrVGlj
a1RpbWUpOworICAgICAgICBwYXJhbWV0ZXJzID0gUGFyYW1ldGVycyh0cnVlLCAxMSAqIGtUaWNr
VGltZSwgMiAqIGtUaWNrVGltZSwgQ3ViaWMsIDMgKiBrVGlja1RpbWUsIEN1YmljLCAzICoga1Rp
Y2tUaW1lLCBRdWFkcmF0aWMsIDEuMjUpOwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBicmVhazsKQEAgLTMzOCw2ICs0MzUsMjcgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5v
bmU6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihjb25zdCBGbG9hdFBvaW50JiBvZmZz
ZXQKICAgICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoKTsKIH0KIAordm9pZCBTY3JvbGxBbmltYXRv
ck5vbmU6OndpbGxFbmRMaXZlUmVzaXplKCkKK3sKKyAgICB1cGRhdGVWaXNpYmxlTGVuZ3Rocygp
OworfQorCit2b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIo
U2Nyb2xsYmFyKikKK3sKKyAgICB1cGRhdGVWaXNpYmxlTGVuZ3RocygpOworfQorCit2b2lkIFNj
cm9sbEFuaW1hdG9yTm9uZTo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKQor
eworICAgIHVwZGF0ZVZpc2libGVMZW5ndGhzKCk7Cit9CisKK3ZvaWQgU2Nyb2xsQW5pbWF0b3JO
b25lOjp1cGRhdGVWaXNpYmxlTGVuZ3RocygpCit7CisgICAgbV9ob3Jpem9udGFsRGF0YS51cGRh
dGVWaXNpYmxlTGVuZ3RoKHNjcm9sbGFibGVBcmVhKCktPnZpc2libGVXaWR0aCgpKTsKKyAgICBt
X3ZlcnRpY2FsRGF0YS51cGRhdGVWaXNpYmxlTGVuZ3RoKHNjcm9sbGFibGVBcmVhKCktPnZpc2li
bGVIZWlnaHQoKSk7Cit9CisKIHZvaWQgU2Nyb2xsQW5pbWF0b3JOb25lOjphbmltYXRpb25UaW1l
ckZpcmVkKFRpbWVyPFNjcm9sbEFuaW1hdG9yTm9uZT4qIHRpbWVyKQogewogICAgIGRvdWJsZSBj
dXJyZW50VGltZSA9IFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5oCmluZGV4IGM4MDQ5ZjliZDMz
MWM4NmZiZDQ5YjJlZTg1NzFjMzgyYTM5ZmQwYjcuLjBjMGViMTZhMWZmOTQxMjFlNDczODU5ZmZh
ZDhmYTU2ZDE4MTlmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bEFuaW1hdG9yTm9uZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1h
dG9yTm9uZS5oCkBAIC0zMyw2ICszMyw3IEBACiAKICNpZiBFTkFCTEUoU01PT1RIX1NDUk9MTElO
RykKIAorI2luY2x1ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiU2Nyb2xsQW5pbWF0b3Iu
aCIKICNpbmNsdWRlICJUaW1lci5oIgogCkBAIC01MCwxNiArNTEsMjEgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBzY3JvbGwoU2Nyb2xsYmFyT3JpZW50YXRpb24sIFNjcm9sbEdyYW51bGFy
aXR5LCBmbG9hdCBzdGVwLCBmbG9hdCBtdWx0aXBsaWVyKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAorICAgIHZp
cnR1YWwgdm9pZCB3aWxsRW5kTGl2ZVJlc2l6ZSgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRW
ZXJ0aWNhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSG9y
aXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKKwogICAgIGVudW0gQ3VydmUgewogICAgICAg
ICBMaW5lYXIsCiAgICAgICAgIFF1YWRyYXRpYywKICAgICAgICAgQ3ViaWMsCisgICAgICAgIFF1
YXJ0aWMsCiAgICAgICAgIEJvdW5jZQogICAgIH07CiAKICAgICBzdHJ1Y3QgUGFyYW1ldGVycyB7
CiAgICAgICAgIFBhcmFtZXRlcnMoKTsKLSAgICAgICAgUGFyYW1ldGVycyhib29sIGlzRW5hYmxl
ZCwgZG91YmxlIGFuaW1hdGlvblRpbWUsIGRvdWJsZSByZXBlYXRNaW5pbXVtU3VzdGFpblRpbWUs
IEN1cnZlIGF0dGFja0N1cnZlLCBkb3VibGUgYXR0YWNrVGltZSwgQ3VydmUgcmVsZWFzZUN1cnZl
LCBkb3VibGUgcmVsZWFzZVRpbWUpOworICAgICAgICBQYXJhbWV0ZXJzKGJvb2wgaXNFbmFibGVk
LCBkb3VibGUgYW5pbWF0aW9uVGltZSwgZG91YmxlIHJlcGVhdE1pbmltdW1TdXN0YWluVGltZSwg
Q3VydmUgYXR0YWNrQ3VydmUsIGRvdWJsZSBhdHRhY2tUaW1lLCBDdXJ2ZSByZWxlYXNlQ3VydmUs
IGRvdWJsZSByZWxlYXNlVGltZSwgQ3VydmUgY29hc3RUaW1lQ3VydmUsIGRvdWJsZSBtYXhpbXVt
Q29hc3RUaW1lKTsKIAogICAgICAgICAvLyBOb3RlIHRoYXQgdGhlIHRpbWVzIGNhbiBiZSBvdmVy
c3BlY2lmaWVkIHN1Y2ggdGhhdCByZWxlYXNlVGltZSBvciByZWxlYXNlVGltZSBhbmQgYXR0YWNr
VGltZSBhcmUgZ3JlYXRlcgogICAgICAgICAvLyB0aGFuIGFuaW1hdGlvblRpbWUuIGFuaW1hdGlv
blRpbWUgdGFrZXMgcHJpb3JpdHkgb3ZlciByZWxlYXNlVGltZSwgY2FwcGluZyBpdC4gYXR0YWNr
VGltZSBpcyBjYXBwZWQgYXQKQEAgLTczLDIyICs3OSwyOSBAQCBwdWJsaWM6CiAKICAgICAgICAg
Q3VydmUgbV9yZWxlYXNlQ3VydmU7CiAgICAgICAgIGRvdWJsZSBtX3JlbGVhc2VUaW1lOworCisg
ICAgICAgIEN1cnZlIG1fY29hc3RUaW1lQ3VydmU7CisgICAgICAgIGRvdWJsZSBtX21heGltdW1D
b2FzdFRpbWU7CiAgICAgfTsKIAogcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFzcyA6OlNjcm9s
bEFuaW1hdG9yTm9uZVRlc3Q7CiAKICAgICBzdHJ1Y3QgUGVyQXhpc0RhdGEgewotICAgICAgICBQ
ZXJBeGlzRGF0YShTY3JvbGxBbmltYXRvck5vbmUqIHBhcmVudCwgZmxvYXQqIGN1cnJlbnRQb3Mp
OworICAgICAgICBQZXJBeGlzRGF0YShTY3JvbGxBbmltYXRvck5vbmUqIHBhcmVudCwgZmxvYXQq
IGN1cnJlbnRQb3MsIExheW91dFVuaXQgdmlzaWJsZUxlbmd0aCk7CiAgICAgICAgIHZvaWQgcmVz
ZXQoKTsKICAgICAgICAgYm9vbCB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoZmxvYXQgc3RlcCwg
ZmxvYXQgbXVsdGlwbGllciwgZmxvYXQgc2Nyb2xsYWJsZVNpemUsIGRvdWJsZSBjdXJyZW50VGlt
ZSwgUGFyYW1ldGVycyopOwogICAgICAgICBib29sIGFuaW1hdGVTY3JvbGwoZG91YmxlIGN1cnJl
bnRUaW1lKTsKKyAgICAgICAgdm9pZCB1cGRhdGVWaXNpYmxlTGVuZ3RoKExheW91dFVuaXQgdmlz
aWJsZUxlbmd0aCk7CiAKICAgICAgICAgc3RhdGljIGRvdWJsZSBjdXJ2ZUF0KEN1cnZlLCBkb3Vi
bGUgdCk7Ci0gICAgICAgIHN0YXRpYyBkb3VibGUgY3VydmVEZXJpdmF0aXZlQXQoQ3VydmUsIGRv
dWJsZSB0KTsKLQogICAgICAgICBzdGF0aWMgZG91YmxlIGF0dGFja0N1cnZlKEN1cnZlLCBkb3Vi
bGUgZGVsdGFULCBkb3VibGUgY3VydmVULCBkb3VibGUgc3RhcnRQb3MsIGRvdWJsZSBhdHRhY2tQ
b3MpOwogICAgICAgICBzdGF0aWMgZG91YmxlIHJlbGVhc2VDdXJ2ZShDdXJ2ZSwgZG91YmxlIGRl
bHRhVCwgZG91YmxlIGN1cnZlVCwgZG91YmxlIHJlbGVhc2VQb3MsIGRvdWJsZSBkZXNpcmVkUG9z
KTsKKyAgICAgICAgc3RhdGljIGRvdWJsZSBjb2FzdEN1cnZlKEN1cnZlLCBkb3VibGUgZmFjdG9y
KTsKKworICAgICAgICBzdGF0aWMgZG91YmxlIGN1cnZlSW50ZWdyYWxBdChDdXJ2ZSwgZG91Ymxl
IHQpOworICAgICAgICBzdGF0aWMgZG91YmxlIGF0dGFja0FyZWEoQ3VydmUsIGRvdWJsZSBzdGFy
dFQsIGRvdWJsZSBlbmRUKTsKKyAgICAgICAgc3RhdGljIGRvdWJsZSByZWxlYXNlQXJlYShDdXJ2
ZSwgZG91YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpOwogCiAgICAgICAgIGZsb2F0KiBtX2N1cnJl
bnRQb3NpdGlvbjsKICAgICAgICAgZG91YmxlIG1fY3VycmVudFZlbG9jaXR5OwpAQCAtMTEwLDEw
ICsxMjMsMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICBkb3VibGUgbV9yZWxlYXNlUG9zaXRpb247
CiAgICAgICAgIGRvdWJsZSBtX3JlbGVhc2VUaW1lOwogICAgICAgICBDdXJ2ZSBtX3JlbGVhc2VD
dXJ2ZTsKKworICAgICAgICBMYXlvdXRVbml0IG1fdmlzaWJsZUxlbmd0aDsKICAgICB9OwogCiAg
ICAgdm9pZCBhbmltYXRpb25UaW1lckZpcmVkKFRpbWVyPFNjcm9sbEFuaW1hdG9yTm9uZT4qKTsK
ICAgICB2b2lkIHN0b3BBbmltYXRpb25UaW1lcklmTmVlZGVkKCk7CisgICAgdm9pZCB1cGRhdGVW
aXNpYmxlTGVuZ3RocygpOwogCiAgICAgUGVyQXhpc0RhdGEgbV9ob3Jpem9udGFsRGF0YTsKICAg
ICBQZXJBeGlzRGF0YSBtX3ZlcnRpY2FsRGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggNWNiMTg5NjgyZWNmZTk1NzM3ZTEwMDYzMzBiMzRiZDY1NzIzMDYxMC4uOTFjZThlMWEyNTZj
ZmYzODUxYjRmZWQ2NWZiMDJiZWU4OWYxMDM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMS0wOC0xNSAgU2NvdHQgQnllciAgPHNjb3R0YnllckBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgU2Nyb2xsQW5pbWF0b3JOb25lIGNvYXN0aW5nIGltcGxlbWVu
dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
NjI1OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
dGVzdHMvU2Nyb2xsQW5pbWF0b3JOb25lVGVzdC5jcHA6CisgICAgICAgIChNb2NrU2Nyb2xsYWJs
ZUFyZWE6OnZpc2libGVIZWlnaHQpOgorICAgICAgICAoTW9ja1Njcm9sbGFibGVBcmVhOjp2aXNp
YmxlV2lkdGgpOgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6U2F2ZVBlckF4aXNE
YXRhOjpTYXZlUGVyQXhpc0RhdGEpOgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6
U2F2ZVBlckF4aXNEYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9u
ZVRlc3Q6OlNldFVwKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OnVwZGF0ZURh
dGFGcm9tUGFyYW1ldGVycyk6CisgICAgICAgIChTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojphbmlt
YXRlU2Nyb2xsKToKKyAgICAgICAgKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmF0dGFja0FyZWEp
OgorICAgICAgICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6cmVsZWFzZUFyZWEpOgorICAgICAg
ICAoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6Y29hc3RDdXJ2ZSk6CisgICAgICAgIChTY3JvbGxB
bmltYXRvck5vbmVUZXN0OjpjdXJ2ZVRlc3RJbm5lcik6CisgICAgICAgIChURVNUX0YpOgorCiAy
MDExLTA4LTE4ICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAg
SW1wbGVtZW50IFdlYk1lZGlhUGxheWVyQ2xpZW50SW1wbDo6YXVkaW9Tb3VyY2VQcm92aWRlcigp
IGFuZCBpbnRlcmZhY2UgaW50byBjaHJvbWl1bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9TY3JvbGxBbmltYXRvck5vbmVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvU2Nyb2xsQW5pbWF0b3JOb25lVGVzdC5jcHAKaW5kZXggMTkzYTQwNWQy
MTk1NGU0ODJmODU2MzcxYjUwNmJjMGQ5ZmU4ZTQ0OC4uMTNjOTM0ZDU2NzMyYjAxMjkzZGZlYTVk
MmNlMTNiOTdhNDkyY2JkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9TY3JvbGxBbmltYXRvck5vbmVUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1Njcm9sbEFuaW1hdG9yTm9uZVRlc3QuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5j
bHVkZSA8Z21vY2svZ21vY2suaD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogCit1c2luZyBu
YW1lc3BhY2Ugc3RkOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIHVzaW5nIHRlc3Rpbmc6
OkF0TGVhc3Q7CkBAIC02Myw2ICs2NCw5IEBAIHB1YmxpYzoKICAgICBNT0NLX01FVEhPRDEoc2V0
U2Nyb2xsT2Zmc2V0RnJvbUFuaW1hdGlvbiwgdm9pZChjb25zdCBJbnRQb2ludCYpKTsKICAgICBN
T0NLX0NPTlNUX01FVEhPRDAoZW5jbG9zaW5nU2Nyb2xsYWJsZUFyZWEsIFNjcm9sbGFibGVBcmVh
KigpKTsKIAorICAgIHZpcnR1YWwgTGF5b3V0VW5pdCB2aXNpYmxlSGVpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gNzY4OyB9CisgICAgdmlydHVhbCBMYXlvdXRVbml0IHZpc2libGVXaWR0aCgpIGNvbnN0
IHsgcmV0dXJuIDEwMjQ7IH0KKwogICAgIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgY29u
c3QgeyByZXR1cm4gbV9zY3JvbGxBbmltYXRvckVuYWJsZWQ7IH0KICAgICBib29sIG1fc2Nyb2xs
QW5pbWF0b3JFbmFibGVkOwogfTsKQEAgLTE0Nyw2ICsxNTEsMzMgQEAgVEVTVChTY3JvbGxBbmlt
YXRvckVuYWJsZWQsIERpc2FibGVkKQogCiBjbGFzcyBTY3JvbGxBbmltYXRvck5vbmVUZXN0IDog
cHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgorICAgIHN0cnVjdCBTYXZlUGVyQXhpc0Rh
dGEgOiBwdWJsaWMgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YSB7CisgICAgICAgIFNh
dmVQZXJBeGlzRGF0YShjb25zdCBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhJiBkYXRh
KQorICAgICAgICAgICAgOiBTY3JvbGxBbmltYXRvck5vbmU6OlBlckF4aXNEYXRhKCZtX21vY2tT
Y3JvbGxBbmltYXRvck5vbmUsIDAsIDc2OCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy0+
bV9jdXJyZW50VmVsb2NpdHkgPSBkYXRhLm1fY3VycmVudFZlbG9jaXR5OworICAgICAgICAgICAg
dGhpcy0+bV9kZXNpcmVkUG9zaXRpb24gPSBkYXRhLm1fZGVzaXJlZFBvc2l0aW9uOworICAgICAg
ICAgICAgdGhpcy0+bV9kZXNpcmVkVmVsb2NpdHkgPSBkYXRhLm1fZGVzaXJlZFZlbG9jaXR5Owor
ICAgICAgICAgICAgdGhpcy0+bV9zdGFydFBvc2l0aW9uID0gZGF0YS5tX3N0YXJ0UG9zaXRpb247
CisgICAgICAgICAgICB0aGlzLT5tX3N0YXJ0VGltZSA9IGRhdGEubV9zdGFydFRpbWU7CisgICAg
ICAgICAgICB0aGlzLT5tX3N0YXJ0VmVsb2NpdHkgPSBkYXRhLm1fc3RhcnRWZWxvY2l0eTsKKyAg
ICAgICAgICAgIHRoaXMtPm1fYW5pbWF0aW9uVGltZSA9IGRhdGEubV9hbmltYXRpb25UaW1lOwor
ICAgICAgICAgICAgdGhpcy0+bV9sYXN0QW5pbWF0aW9uVGltZSA9IGRhdGEubV9sYXN0QW5pbWF0
aW9uVGltZTsKKyAgICAgICAgICAgIHRoaXMtPm1fYXR0YWNrUG9zaXRpb24gPSBkYXRhLm1fYXR0
YWNrUG9zaXRpb247CisgICAgICAgICAgICB0aGlzLT5tX2F0dGFja1RpbWUgPSBkYXRhLm1fYXR0
YWNrVGltZTsKKyAgICAgICAgICAgIHRoaXMtPm1fYXR0YWNrQ3VydmUgPSBkYXRhLm1fYXR0YWNr
Q3VydmU7CisgICAgICAgICAgICB0aGlzLT5tX3JlbGVhc2VQb3NpdGlvbiA9IGRhdGEubV9yZWxl
YXNlUG9zaXRpb247CisgICAgICAgICAgICB0aGlzLT5tX3JlbGVhc2VUaW1lID0gZGF0YS5tX3Jl
bGVhc2VUaW1lOworICAgICAgICAgICAgdGhpcy0+bV9yZWxlYXNlQ3VydmUgPSBkYXRhLm1fcmVs
ZWFzZUN1cnZlOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNh
dmVQZXJBeGlzRGF0YSYgb3RoZXIpIGNvbnN0CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVy
biBtX2N1cnJlbnRWZWxvY2l0eSA9PSBvdGhlci5tX2N1cnJlbnRWZWxvY2l0eSAmJiBtX2Rlc2ly
ZWRQb3NpdGlvbiA9PSBvdGhlci5tX2Rlc2lyZWRQb3NpdGlvbiAmJiBtX2Rlc2lyZWRWZWxvY2l0
eSA9PSBvdGhlci5tX2Rlc2lyZWRWZWxvY2l0eSAmJiBtX3N0YXJ0UG9zaXRpb24gPT0gb3RoZXIu
bV9zdGFydFBvc2l0aW9uICYmIG1fc3RhcnRUaW1lID09IG90aGVyLm1fc3RhcnRUaW1lICYmIG1f
c3RhcnRWZWxvY2l0eSA9PSBvdGhlci5tX3N0YXJ0VmVsb2NpdHkgJiYgbV9hbmltYXRpb25UaW1l
ID09IG90aGVyLm1fYW5pbWF0aW9uVGltZSAmJiBtX2xhc3RBbmltYXRpb25UaW1lID09IG90aGVy
Lm1fbGFzdEFuaW1hdGlvblRpbWUgJiYgbV9hdHRhY2tQb3NpdGlvbiA9PSBvdGhlci5tX2F0dGFj
a1Bvc2l0aW9uICYmIG1fYXR0YWNrVGltZSA9PSBvdGhlci5tX2F0dGFja1RpbWUgJiYgbV9hdHRh
Y2tDdXJ2ZSA9PSBvdGhlci5tX2F0dGFja0N1cnZlICYmIG1fcmVsZWFzZVBvc2l0aW9uID09IG90
aGVyLm1fcmVsZWFzZVBvc2l0aW9uICYmIG1fcmVsZWFzZVRpbWUgPT0gb3RoZXIubV9yZWxlYXNl
VGltZSAmJiBtX3JlbGVhc2VDdXJ2ZSA9PSBvdGhlci5tX3JlbGVhc2VDdXJ2ZTsKKyAgICAgICAg
fQorICAgICAgICBNb2NrU2Nyb2xsQW5pbWF0b3JOb25lIG1fbW9ja1Njcm9sbEFuaW1hdG9yTm9u
ZTsKKyAgICB9OworCiAgICAgU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCgpCiAgICAgewogICAgIH0K
QEAgLTE1NCw3ICsxODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKICAg
ICB7CiAgICAgICAgIG1fY3VycmVudFBvc2l0aW9uID0gMTAwOwotICAgICAgICBtX2RhdGEgPSBu
ZXcgU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YSgmbV9tb2NrU2Nyb2xsQW5pbWF0b3JO
b25lLCAmbV9jdXJyZW50UG9zaXRpb24pOworICAgICAgICBtX2RhdGEgPSBuZXcgU2Nyb2xsQW5p
bWF0b3JOb25lOjpQZXJBeGlzRGF0YSgmbV9tb2NrU2Nyb2xsQW5pbWF0b3JOb25lLCAmbV9jdXJy
ZW50UG9zaXRpb24sIDc2OCk7CiAgICAgfQogICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCiAg
ICAgewpAQCAtMTY1LDEyICsxOTYsMTEgQEAgcHVibGljOgogICAgIGJvb2wgdXBkYXRlRGF0YUZy
b21QYXJhbWV0ZXJzKGZsb2F0IHN0ZXAsIGZsb2F0IG11bHRpcGxpZXIsIGZsb2F0IHNjcm9sbGFi
bGVTaXplLCBkb3VibGUgY3VycmVudFRpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVy
cyopOwogICAgIGJvb2wgYW5pbWF0ZVNjcm9sbChkb3VibGUgY3VycmVudFRpbWUpOwogCi0gICAg
ZG91YmxlIGN1cnZlSW50ZWdyYWxBdChTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUg
dCk7CiAgICAgZG91YmxlIGF0dGFja0FyZWEoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91
YmxlIHN0YXJ0VCwgZG91YmxlIGVuZFQpOwogICAgIGRvdWJsZSByZWxlYXNlQXJlYShTY3JvbGxB
bmltYXRvck5vbmU6OkN1cnZlLCBkb3VibGUgc3RhcnRULCBkb3VibGUgZW5kVCk7CiAgICAgZG91
YmxlIGF0dGFja0N1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUsIGRvdWJsZSBkZWx0YVQs
IGRvdWJsZSBjdXJ2ZVQsIGRvdWJsZSBzdGFydFBvc2l0aW9uLCBkb3VibGUgYXR0YWNrUG9zaXRp
b24pOwogICAgIGRvdWJsZSByZWxlYXNlQ3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwg
ZG91YmxlIGRlbHRhVCwgZG91YmxlIGN1cnZlVCwgZG91YmxlIHJlbGVhc2VQb3NpdGlvbiwgZG91
YmxlIGRlc2lyZWRQb3NpdGlvbik7Ci0gICAgZG91YmxlIGN1cnZlRGVyaXZhdGl2ZUF0KFNjcm9s
bEFuaW1hdG9yTm9uZTo6Q3VydmUsIGRvdWJsZSB1bml0VGltZSk7CisgICAgZG91YmxlIGNvYXN0
Q3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSwgZG91YmxlIGZhY3Rvcik7CiAKICAgICB2
b2lkIGN1cnZlVGVzdElubmVyKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3VydmUsIGRvdWJsZSBzdGVw
LCBkb3VibGUgdGltZSk7CiAgICAgdm9pZCBjdXJ2ZVRlc3QoU2Nyb2xsQW5pbWF0b3JOb25lOjpD
dXJ2ZSk7CkBAIC0yMTQsOSArMjQ0LDkgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojp1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGkKIAogICAg
IGRvdWJsZSBkZWx0YVRpbWUgPSBtX2RhdGEtPm1fbGFzdEFuaW1hdGlvblRpbWUgLSBtX2RhdGEt
Pm1fc3RhcnRUaW1lOwogICAgIGRvdWJsZSB0aW1lTGVmdCA9IG1fZGF0YS0+bV9hbmltYXRpb25U
aW1lIC0gZGVsdGFUaW1lOwotICAgIGRvdWJsZSByZWxlYXNlVGltZUxlZnQgPSBzdGQ6Om1pbih0
aW1lTGVmdCwgbV9kYXRhLT5tX3JlbGVhc2VUaW1lKTsKLSAgICBkb3VibGUgYXR0YWNrVGltZUxl
ZnQgPSBzdGQ6Om1heCgwLiwgbV9kYXRhLT5tX2F0dGFja1RpbWUgLSBkZWx0YVRpbWUpOwotICAg
IGRvdWJsZSBzdXN0YWluVGltZUxlZnQgPSBzdGQ6Om1heCgwLiwgdGltZUxlZnQgLSByZWxlYXNl
VGltZUxlZnQgLSBhdHRhY2tUaW1lTGVmdCk7CisgICAgZG91YmxlIHJlbGVhc2VUaW1lTGVmdCA9
IG1pbih0aW1lTGVmdCwgbV9kYXRhLT5tX3JlbGVhc2VUaW1lKTsKKyAgICBkb3VibGUgYXR0YWNr
VGltZUxlZnQgPSBtYXgoMC4sIG1fZGF0YS0+bV9hdHRhY2tUaW1lIC0gZGVsdGFUaW1lKTsKKyAg
ICBkb3VibGUgc3VzdGFpblRpbWVMZWZ0ID0gbWF4KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1l
TGVmdCAtIGF0dGFja1RpbWVMZWZ0KTsKIAogICAgIC8vIElmIHdlJ3JlIGdldHRpbmcgbmVhciB0
aGUgZmluaXNoLCB0aGUgZGVzaXJlZCB2ZWxvY2l0eSBjYW4gZGVjcmVhc2Ugc2luY2UgdGhlIHRp
bWUgbGVmdCBnZXRzIGluY3JlYXNlZC4KICAgICBkb3VibGUgYWxsb3dlZFZlbG9jaXR5RGVjcmVh
c2VGYWN0b3IgPSAwLjk5ICogb2xkVGltZUxlZnQgLyB0aW1lTGVmdDsKQEAgLTIyNiwxMiArMjU2
LDkgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojp1cGRhdGVEYXRhRnJvbVBhcmFtZXRl
cnMoZmxvYXQgc3RlcCwgZmxvYXQgbXVsdGlwbGkKICAgICBlbHNlCiAgICAgICAgIEVYUEVDVF9H
RShvbGREZXNpcmVkVmVsb2NpdHkgKiBhbGxvd2VkVmVsb2NpdHlEZWNyZWFzZUZhY3RvciwgbV9k
YXRhLT5tX2Rlc2lyZWRWZWxvY2l0eSk7CiAKLSAgICBkb3VibGUgc3RhcnRQb3NpdGlvbiA9IG1f
c2Nyb2xsaW5nRG93biA/IHN0ZDo6bWF4PGRvdWJsZT4obV9jdXJyZW50UG9zaXRpb24sIG1fZGF0
YS0+bV9hdHRhY2tQb3NpdGlvbikgOiBzdGQ6Om1pbjxkb3VibGU+KG1fY3VycmVudFBvc2l0aW9u
LCBtX2RhdGEtPm1fYXR0YWNrUG9zaXRpb24pOworICAgIGRvdWJsZSBzdGFydFBvc2l0aW9uID0g
YXR0YWNrVGltZUxlZnQgPyBtX2RhdGEtPm1fYXR0YWNrUG9zaXRpb24gOiBtX2N1cnJlbnRQb3Np
dGlvbjsKICAgICBkb3VibGUgZXhwZWN0ZWRSZWxlYXNlUG9zaXRpb24gPSBzdGFydFBvc2l0aW9u
ICsgc3VzdGFpblRpbWVMZWZ0ICogbV9kYXRhLT5tX2Rlc2lyZWRWZWxvY2l0eTsKLSAgICBpZiAo
cmVzdWx0KQotICAgICAgICBFWFBFQ1RfRE9VQkxFX0VRKGV4cGVjdGVkUmVsZWFzZVBvc2l0aW9u
LCBtX2RhdGEtPm1fcmVsZWFzZVBvc2l0aW9uKTsKLSAgICBlbHNlCi0gICAgICAgIEVYUEVDVF9O
RUFSKGV4cGVjdGVkUmVsZWFzZVBvc2l0aW9uLCBtX2RhdGEtPm1fcmVsZWFzZVBvc2l0aW9uLCAx
KTsKKyAgICBFWFBFQ1RfTkVBUihleHBlY3RlZFJlbGVhc2VQb3NpdGlvbiwgbV9kYXRhLT5tX3Jl
bGVhc2VQb3NpdGlvbiwgcmVzdWx0ID8gLjAwMDEgOiAxKTsKIAogICAgIHJldHVybiByZXN1bHQ7
CiB9CkBAIC0yNDUsOSArMjcyLDkgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojphbmlt
YXRlU2Nyb2xsKGRvdWJsZSBjdXJyZW50VGltZSkKIAogICAgIGRvdWJsZSBkZWx0YVRpbWUgPSBt
X2RhdGEtPm1fbGFzdEFuaW1hdGlvblRpbWUgLSBtX2RhdGEtPm1fc3RhcnRUaW1lOwogICAgIGRv
dWJsZSB0aW1lTGVmdCA9IG1fZGF0YS0+bV9hbmltYXRpb25UaW1lIC0gZGVsdGFUaW1lOwotICAg
IGRvdWJsZSByZWxlYXNlVGltZUxlZnQgPSBzdGQ6Om1pbih0aW1lTGVmdCwgbV9kYXRhLT5tX3Jl
bGVhc2VUaW1lKTsKLSAgICBkb3VibGUgYXR0YWNrVGltZUxlZnQgPSBzdGQ6Om1heCgwLiwgbV9k
YXRhLT5tX2F0dGFja1RpbWUgLSBkZWx0YVRpbWUpOwotICAgIGRvdWJsZSBzdXN0YWluVGltZUxl
ZnQgPSBzdGQ6Om1heCgwLiwgdGltZUxlZnQgLSByZWxlYXNlVGltZUxlZnQgLSBhdHRhY2tUaW1l
TGVmdCk7CisgICAgZG91YmxlIHJlbGVhc2VUaW1lTGVmdCA9IG1pbih0aW1lTGVmdCwgbV9kYXRh
LT5tX3JlbGVhc2VUaW1lKTsKKyAgICBkb3VibGUgYXR0YWNrVGltZUxlZnQgPSBtYXgoMC4sIG1f
ZGF0YS0+bV9hdHRhY2tUaW1lIC0gZGVsdGFUaW1lKTsKKyAgICBkb3VibGUgc3VzdGFpblRpbWVM
ZWZ0ID0gbWF4KDAuLCB0aW1lTGVmdCAtIHJlbGVhc2VUaW1lTGVmdCAtIGF0dGFja1RpbWVMZWZ0
KTsKICAgICBkb3VibGUgZGlzdGFuY2VMZWZ0ID0gbV9kYXRhLT5tX2Rlc2lyZWRQb3NpdGlvbiAt
ICptX2RhdGEtPm1fY3VycmVudFBvc2l0aW9uOwogCiAgICAgaWYgKG1fc2Nyb2xsaW5nRG93bikg
ewpAQCAtMjY0LDUwICsyOTEsMTQgQEAgYm9vbCBTY3JvbGxBbmltYXRvck5vbmVUZXN0Ojphbmlt
YXRlU2Nyb2xsKGRvdWJsZSBjdXJyZW50VGltZSkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1k
b3VibGUgU2Nyb2xsQW5pbWF0b3JOb25lVGVzdDo6Y3VydmVJbnRlZ3JhbEF0KFNjcm9sbEFuaW1h
dG9yTm9uZTo6Q3VydmUgY3VydmUsIGRvdWJsZSB0KQotewotICAgIHN3aXRjaCAoY3VydmUpIHsK
LSAgICBjYXNlIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyOgotICAgICAgICByZXR1cm4gdCAq
IHQgKiB0IC8gMzsKLSAgICBjYXNlIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljOgotICAg
ICAgICByZXR1cm4gdCAqIHQgKiB0ICogdCAvIDQ7Ci0gICAgY2FzZSBTY3JvbGxBbmltYXRvck5v
bmU6OkN1YmljOgotICAgICAgICByZXR1cm4gdCAqIHQgKiB0ICogdCAqIHQgLyA1OwotICAgIGNh
c2UgU2Nyb2xsQW5pbWF0b3JOb25lOjpCb3VuY2U6Ci0gICAgICAgIGRvdWJsZSBhcmVhOwotICAg
ICAgICBkb3VibGUgdDEgPSBzdGQ6Om1pbih0LCAxIC8gMi43NSk7Ci0gICAgICAgIGFyZWEgPSAy
LjUyMDgzICogdDEgKiB0MSAqIHQxOwotICAgICAgICBpZiAodCA8IDEgLyAyLjc1KQotICAgICAg
ICAgICAgcmV0dXJuIGFyZWE7Ci0gICAgICAgIHQxID0gc3RkOjptaW4odCAtIDEgLyAyLjc1LCAx
IC8gMi43NSk7Ci0gICAgICAgIGRvdWJsZSBib3VuY2VBcmVhID0gdDEgKiAodDEgKiAoMi41MjA4
MyAqIHQxIC0gMS4zNzUpICsgMSk7Ci0gICAgICAgIGFyZWEgKz0gYm91bmNlQXJlYTsKLSAgICAg
ICAgaWYgKHQgPCAyIC8gMi43NSkKLSAgICAgICAgICAgIHJldHVybiBhcmVhOwotICAgICAgICB0
MSA9IHN0ZDo6bWluKHQgLSAyIC8gMi43NSwgMC41IC8gMi43NSk7Ci0gICAgICAgIGJvdW5jZUFy
ZWEgPSAgdDEgKiAodDEgKiAoMi41MjA4MyAqIHQxIC0gMC42ODc1KSArIDEpOwotICAgICAgICBh
cmVhICs9IGJvdW5jZUFyZWE7Ci0gICAgICAgIGlmICh0IDwgMi41IC8gMi43NSkKLSAgICAgICAg
ICAgIHJldHVybiBhcmVhOwotICAgICAgICB0MSA9IHQgLSAyLjUgLyAyLjc1OwotICAgICAgICBi
b3VuY2VBcmVhID0gdDEgKiAodDEgKiAoMi41MjA4MyAqIHQxIC0gMC4zNDM3NSkgKyAxKTsKLSAg
ICAgICAgYXJlYSArPSBib3VuY2VBcmVhOwotICAgICAgICByZXR1cm4gYXJlYTsKLSAgICB9Ci19
Ci0KIGRvdWJsZSBTY3JvbGxBbmltYXRvck5vbmVUZXN0OjphdHRhY2tBcmVhKFNjcm9sbEFuaW1h
dG9yTm9uZTo6Q3VydmUgY3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRUKQogewotICAg
IGRvdWJsZSBzdGFydFZhbHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCBzdGFydFQpOwotICAg
IGRvdWJsZSBlbmRWYWx1ZSA9IGN1cnZlSW50ZWdyYWxBdChjdXJ2ZSwgZW5kVCk7Ci0gICAgcmV0
dXJuIGVuZFZhbHVlIC0gc3RhcnRWYWx1ZTsKKyAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3JOb25l
OjpQZXJBeGlzRGF0YTo6YXR0YWNrQXJlYShjdXJ2ZSwgc3RhcnRULCBlbmRUKTsKIH0KIAogZG91
YmxlIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OnJlbGVhc2VBcmVhKFNjcm9sbEFuaW1hdG9yTm9u
ZTo6Q3VydmUgY3VydmUsIGRvdWJsZSBzdGFydFQsIGRvdWJsZSBlbmRUKQogewotICAgIGRvdWJs
ZSBzdGFydFZhbHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCAxIC0gZW5kVCk7Ci0gICAgZG91
YmxlIGVuZFZhbHVlID0gY3VydmVJbnRlZ3JhbEF0KGN1cnZlLCAxIC0gc3RhcnRUKTsKLSAgICBy
ZXR1cm4gZW5kVmFsdWUgLSBzdGFydFZhbHVlOworICAgIHJldHVybiBTY3JvbGxBbmltYXRvck5v
bmU6OlBlckF4aXNEYXRhOjpyZWxlYXNlQXJlYShjdXJ2ZSwgc3RhcnRULCBlbmRUKTsKIH0KIAog
ZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmF0dGFja0N1cnZlKFNjcm9sbEFuaW1hdG9y
Tm9uZTo6Q3VydmUgY3VydmUsIGRvdWJsZSBkZWx0YVQsIGRvdWJsZSBjdXJ2ZVQsIGRvdWJsZSBz
dGFydFBvc2l0aW9uLCBkb3VibGUgYXR0YWNrUG9zaXRpb24pCkBAIC0zMjAsOSArMzExLDkgQEAg
ZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OnJlbGVhc2VDdXJ2ZShTY3JvbGxBbmltYXRv
ck5vbmU6OkN1cnZlIGN1cnZlLCBkb3UKICAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
ZXJBeGlzRGF0YTo6cmVsZWFzZUN1cnZlKGN1cnZlLCBkZWx0YVQsIGN1cnZlVCwgcmVsZWFzZVBv
c2l0aW9uLCBkZXNpcmVkUG9zaXRpb24pOwogfQogCi1kb3VibGUgU2Nyb2xsQW5pbWF0b3JOb25l
VGVzdDo6Y3VydmVEZXJpdmF0aXZlQXQoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSBjdXJ2ZSwg
ZG91YmxlIHVuaXRUaW1lKQorZG91YmxlIFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Q6OmNvYXN0Q3Vy
dmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpDdXJ2ZSBjdXJ2ZSwgZG91YmxlIGZhY3RvcikKIHsKLSAg
ICByZXR1cm4gU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJBeGlzRGF0YTo6Y3VydmVEZXJpdmF0aXZl
QXQoY3VydmUsIHVuaXRUaW1lKTsKKyAgICByZXR1cm4gU2Nyb2xsQW5pbWF0b3JOb25lOjpQZXJB
eGlzRGF0YTo6Y29hc3RDdXJ2ZShjdXJ2ZSwgZmFjdG9yKTsKIH0KIAogdm9pZCBTY3JvbGxBbmlt
YXRvck5vbmVUZXN0OjpjdXJ2ZVRlc3RJbm5lcihTY3JvbGxBbmltYXRvck5vbmU6OkN1cnZlIGN1
cnZlLCBkb3VibGUgc3RlcCwgZG91YmxlIHRpbWUpCkBAIC0zNDMsNyArMzM0LDcgQEAgdm9pZCBT
Y3JvbGxBbmltYXRvck5vbmVUZXN0OjpjdXJ2ZVRlc3RJbm5lcihTY3JvbGxBbmltYXRvck5vbmU6
OkN1cnZlIGN1cnZlLCBkb3UKICAgICAgICAgb2xkUG9zID0gbmV3UG9zOwogICAgICAgICBvbGRW
ZWxvY2l0eSA9IHZlbG9jaXR5OwogICAgICAgICBpZiAoY3VydmUgIT0gU2Nyb2xsQW5pbWF0b3JO
b25lOjpCb3VuY2UpIHsKLSAgICAgICAgICAgIEVYUEVDVF9MRSgwLCB2ZWxvY2l0eURlbHRhKTsK
KyAgICAgICAgICAgIEVYUEVDVF9MRSgtLjAwMDEsIHZlbG9jaXR5RGVsdGEpOwogICAgICAgICAg
ICAgRVhQRUNUX0xUKDAsIGRlbHRhKTsKICAgICAgICAgfQogCkBAIC0zNTQsNyArMzQ1LDcgQEAg
dm9pZCBTY3JvbGxBbmltYXRvck5vbmVUZXN0OjpjdXJ2ZVRlc3RJbm5lcihTY3JvbGxBbmltYXRv
ck5vbmU6OkN1cnZlIGN1cnZlLCBkb3UKIAogICAgIG9sZFBvcyA9IDA7CiAgICAgb2xkVmVsb2Np
dHkgKj0gMjsKLSAgICBhY2N1bXVsYXRlID0gYXR0YWNrQXJlYShjdXJ2ZSwgMCwgMSkgKiBrUG9z
aXRpb247CisgICAgYWNjdW11bGF0ZSA9IHJlbGVhc2VBcmVhKGN1cnZlLCAwLCAxKSAqIGtQb3Np
dGlvbjsKICAgICBmb3IgKGRvdWJsZSB0ID0gc3RlcCA7IHQgPD0gdGltZSA7IHQgKz0gc3RlcCkg
ewogICAgICAgICBkb3VibGUgbmV3UG9zID0gcmVsZWFzZUN1cnZlKGN1cnZlLCB0LCB0aW1lLCAw
LCBrUG9zaXRpb24pOwogICAgICAgICBkb3VibGUgZGVsdGEgPSBuZXdQb3MgLSBvbGRQb3M7CkBA
IC00MTAsMTQgKzQwMSwzMSBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgQ3VydmVN
YXRoQ3ViaWMpCiAgICAgY3VydmVUZXN0KFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMpOwogfQog
CitURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgQ3VydmVNYXRoUXVhcnRpYykKK3sKKyAg
ICBjdXJ2ZVRlc3QoU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFydGljKTsKK30KKwogVEVTVF9GKFNj
cm9sbEFuaW1hdG9yTm9uZVRlc3QsIEN1cnZlTWF0aEJvdW5jZSkKIHsKICAgICBjdXJ2ZVRlc3Qo
U2Nyb2xsQW5pbWF0b3JOb25lOjpCb3VuY2UpOwogfQogCitURVNUX0YoU2Nyb2xsQW5pbWF0b3JO
b25lVGVzdCwgQ3VydmVNYXRoQ29hc3QpCit7CisgICAgZm9yIChkb3VibGUgdCA9IC4yNTsgdCA8
IDE7IHQgKz0gLjI1KSB7CisgICAgICAgIEVYUEVDVF9FUSh0LCBjb2FzdEN1cnZlKFNjcm9sbEFu
aW1hdG9yTm9uZTo6TGluZWFyLCB0KSk7CisgICAgICAgIEVYUEVDVF9MVCh0LCBjb2FzdEN1cnZl
KFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCB0KSk7CisgICAgICAgIEVYUEVDVF9MVCh0
LCBjb2FzdEN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIHQpKTsKKyAgICAgICAgRVhQ
RUNUX0xUKGNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIHQpLCBjb2Fz
dEN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIHQpKTsKKyAgICAgICAgRVhQRUNUX0xU
KHQsIGNvYXN0Q3VydmUoU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFydGljLCB0KSk7CisgICAgICAg
IEVYUEVDVF9MVChjb2FzdEN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIHQpLCBjb2Fz
dEN1cnZlKFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhcnRpYywgdCkpOworICAgIH0KK30KKwogVEVT
VF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VMaW5lYXIpCiB7Ci0gICAgU2Ny
b2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGlt
ZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFu
aW1hdG9yTm9uZTo6TGluZWFyLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5v
bmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxB
bmltYXRvck5vbmU6OkxpbmVhciwgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpM
aW5lYXIsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAog
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAwMCwga1N0YXJ0VGltZSwgJnBh
cmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTQyNyw3ICs0MzUsNyBAQCBU
RVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsT25jZUxpbmVhcikKIAogVEVTVF9G
KFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VRdWFkcmF0aWMpCiB7Ci0gICAgU2Ny
b2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGlt
ZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmlt
YXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBT
Y3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGlu
ZWFyLCAwKTsKIAogICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAwMCwga1N0
YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwogICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKQEAgLTQzNyw3
ICs0NDUsNyBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsT25jZVF1YWRy
YXRpYykKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvbmdRdWFkcmF0
aWMpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1
ZSwgMjAgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7
CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMjAg
KiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tU
aW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xs
QW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJz
KDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQg
PSB0cnVlOwpAQCAtNDQ3LDcgKzQ1NSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0
LCBTY3JvbGxMb25nUXVhZHJhdGljKQogCiBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwg
U2Nyb2xsUXVhZHJhdGljTm9TdXN0YWluKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFy
YW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDggKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UXVhZHJhdGljLCA0ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRy
YXRpYywgNCAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJz
IHBhcmFtZXRlcnModHJ1ZSwgOCAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpR
dWFkcmF0aWMsIDQgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0
ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJz
KTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CkBAIC00NTcsNyArNDY1LDcgQEAgVEVTVF9GKFNj
cm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFF1YWRyYXRpY05vU3VzdGFpbikKIAogVEVTVF9G
KFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFF1YWRyYXRpY1Ntb290aGVkKQogewotICAg
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDggKiBrVGlj
a1RpbWUsIDggKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0ICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgNCAqIGtUaWNrVGltZSk7
CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgOCAq
IGtUaWNrVGltZSwgOCAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMs
IDQgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCA0ICoga1RpY2tU
aW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJv
bVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBi
b29sIHJlc3VsdCA9IHRydWU7CkBAIC00NjcsNyArNDc1LDE3IEBAIFRFU1RfRihTY3JvbGxBbmlt
YXRvck5vbmVUZXN0LCBTY3JvbGxRdWFkcmF0aWNTbW9vdGhlZCkKIAogVEVTVF9GKFNjcm9sbEFu
aW1hdG9yTm9uZVRlc3QsIFNjcm9sbE9uY2VDdWJpYykKIHsKLSAgICBTY3JvbGxBbmltYXRvck5v
bmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxB
bmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1
YmljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMg
cGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1
YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tU
aW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7CisKKyAgICB1cGRhdGVEYXRhRnJv
bVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBi
b29sIHJlc3VsdCA9IHRydWU7CisgICAgZm9yIChkb3VibGUgdCA9IGtTdGFydFRpbWU7IHJlc3Vs
dCAmJiB0IDwga0VuZFRpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9
IGFuaW1hdGVTY3JvbGwodCk7Cit9CisKK1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBT
Y3JvbGxPbmNlUXVhcnRpYykKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMg
cGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1
YXJ0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhcnRpYywgMyAqIGtU
aWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAg
ICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtNDc3LDcgKzQ5NSw3IEBAIFRFU1RfRihTY3JvbGxB
bmltYXRvck5vbmVUZXN0LCBTY3JvbGxPbmNlQ3ViaWMpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRv
ck5vbmVUZXN0LCBTY3JvbGxPbmNlU2hvcnQpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywg
MyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFt
ZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywg
MyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwg
U2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJh
bWV0ZXJzKDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCBy
ZXN1bHQgPSB0cnVlOwpAQCAtNDg3LDcgKzUwNSw3IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5v
bmVUZXN0LCBTY3JvbGxPbmNlU2hvcnQpCiAKIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0
LCBTY3JvbGxUd2ljZVF1YWRyYXRpYykKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFt
ZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxBbmltYXRvck5v
bmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0
aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBw
YXJhbWV0ZXJzKHRydWUsIDcgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVh
ZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAq
IGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRl
RGF0YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7
CiAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwpAQCAtNTE4LDkgKzUzNiw5IEBAIFRFU1RfRihTY3Jv
bGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxUd2ljZVF1YWRyYXRpYykKIAogVEVTVF9GKFNjcm9s
bEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvdHNRdWFkcmF0aWMpCiB7Ci0gICAgU2Nyb2xsQW5p
bWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtUaWNrVGltZSwgMCwg
U2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5v
bmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCA3ICoga1RpY2tUaW1lLCAwLCBTY3JvbGxB
bmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAw
KTsKIAotICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAwMCwga1N0YXJ0VGlt
ZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA0MCwgMTAw
MDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7CiAg
ICAgZG91YmxlIHQ7CiAgICAgZm9yICh0ID0ga1N0YXJ0VGltZTsgcmVzdWx0ICYmIHQgPCBrU3Rh
cnRUaW1lICsgMS41ICoga1RpY2tUaW1lOyB0ICs9IGtBbmltYXRpb25UaW1lKQpAQCAtNTM5LDcg
KzU1NywyOCBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsTG90c1F1YWRy
YXRpYykKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbExvdHNRdWFkcmF0
aWNTbW9vdGhlZCkKIHsKLSAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1l
dGVycyh0cnVlLCAxMCAqIGtUaWNrVGltZSwgNiAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JO
b25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJh
dGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMg
cGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNrVGltZSwgNiAqIGtUaWNrVGltZSwgU2Nyb2xsQW5p
bWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkxpbmVhciwgMCk7
CisKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIGRvdWJsZSB0Owor
ICAgIGZvciAodCA9IGtTdGFydFRpbWU7IHJlc3VsdCAmJiB0IDwga1N0YXJ0VGltZSArIDEuNSAq
IGtUaWNrVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gYW5pbWF0
ZVNjcm9sbCh0KTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMjA7ICsraSkgeworICAgICAg
ICB0ICs9IGtBbmltYXRpb25UaW1lOworICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0
ZVNjcm9sbCh0KTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycygzLCA0MCwgMTAwMDAsIHQsICZwYXJhbWV0ZXJzKTsKKyAgICB9CisKKyAgICB0ICs9
IGtBbmltYXRpb25UaW1lOworICAgIGZvciAoOyByZXN1bHQgJiYgdCA8IGtFbmRUaW1lOyB0ICs9
IGtBbmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9s
bCh0KTsKK30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFR3aWNlQ3Vi
aWMpCit7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1
ZSwgNyAqIGtUaWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5p
bWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEs
IDQwLCAxMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CiAgICAgYm9vbCByZXN1bHQgPSB0
cnVlOwpAQCAtNTQ3LDYgKzU4Niw1OCBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwg
U2Nyb2xsTG90c1F1YWRyYXRpY1Ntb290aGVkKQogICAgIGZvciAodCA9IGtTdGFydFRpbWU7IHJl
c3VsdCAmJiB0IDwga1N0YXJ0VGltZSArIDEuNSAqIGtUaWNrVGltZTsgdCArPSBrQW5pbWF0aW9u
VGltZSkKICAgICAgICAgcmVzdWx0ID0gYW5pbWF0ZVNjcm9sbCh0KTsKIAorICAgIHJlc3VsdCA9
IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOworICAgIGRvdWJsZSBiZWZvcmUgPSBtX2N1cnJl
bnRQb3NpdGlvbjsKKyAgICByZXN1bHQgPSByZXN1bHQgJiYgdXBkYXRlRGF0YUZyb21QYXJhbWV0
ZXJzKDEsIDQwLCAxMDAwLCB0LCAmcGFyYW1ldGVycyk7CisgICAgcmVzdWx0ID0gcmVzdWx0ICYm
IGFuaW1hdGVTY3JvbGwodCk7CisgICAgZG91YmxlIGFmdGVyID0gbV9jdXJyZW50UG9zaXRpb247
CisgICAgRVhQRUNUX05FQVIoYmVmb3JlLCBhZnRlciwgMTApOworCisgICAgdCArPSBrQW5pbWF0
aW9uVGltZTsKKworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiBhbmltYXRlU2Nyb2xsKHQpOworICAg
IGJlZm9yZSA9IG1fY3VycmVudFBvc2l0aW9uOworICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNDAsIDEwMDAsIHQsICZwYXJhbWV0ZXJzKTsKKyAgICBy
ZXN1bHQgPSByZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKKyAgICBhZnRlciA9IG1fY3VycmVu
dFBvc2l0aW9uOworICAgIEVYUEVDVF9ORUFSKGJlZm9yZSwgYWZ0ZXIsIDEwKTsKKworICAgIHQg
Kz0ga0FuaW1hdGlvblRpbWU7CisgICAgZm9yICg7IHJlc3VsdCAmJiB0IDwga0VuZFRpbWU7IHQg
Kz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IGFuaW1hdGVTY3JvbGwodCk7Cit9
CisKK1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxMb3RzQ3ViaWMpCit7Cisg
ICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgNyAqIGtU
aWNrVGltZSwgMCwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpMaW5lYXIsIDApOworCisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAw
MCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAg
ICBkb3VibGUgdDsKKyAgICBmb3IgKHQgPSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8IGtTdGFy
dFRpbWUgKyAxLjUgKiBrVGlja1RpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJl
c3VsdCA9IGFuaW1hdGVTY3JvbGwodCk7CisKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyAr
K2kpIHsKKyAgICAgICAgdCArPSBrQW5pbWF0aW9uVGltZTsKKyAgICAgICAgcmVzdWx0ID0gcmVz
dWx0ICYmIGFuaW1hdGVTY3JvbGwodCk7CisgICAgICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB1cGRh
dGVEYXRhRnJvbVBhcmFtZXRlcnMoMywgNDAsIDEwMDAwLCB0LCAmcGFyYW1ldGVycyk7CisgICAg
fQorCisgICAgdCArPSBrQW5pbWF0aW9uVGltZTsKKyAgICBmb3IgKDsgcmVzdWx0ICYmIHQgPCBr
RW5kVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYm
IGFuaW1hdGVTY3JvbGwodCk7Cit9CisKK1RFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBT
Y3JvbGxMb3RzQ3ViaWNTbW9vdGhlZCkKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFt
ZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNrVGltZSwgNiAqIGtUaWNrVGltZSwgU2Ny
b2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25l
OjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwor
CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDQwLCAxMDAwMCwga1N0YXJ0VGltZSwg
JnBhcmFtZXRlcnMpOworICAgIGJvb2wgcmVzdWx0ID0gdHJ1ZTsKKyAgICBkb3VibGUgdDsKKyAg
ICBmb3IgKHQgPSBrU3RhcnRUaW1lOyByZXN1bHQgJiYgdCA8IGtTdGFydFRpbWUgKyAxLjUgKiBr
VGlja1RpbWU7IHQgKz0ga0FuaW1hdGlvblRpbWUpCisgICAgICAgIHJlc3VsdCA9IGFuaW1hdGVT
Y3JvbGwodCk7CisKICAgICBmb3IgKGludCBpID0gMDsgaSA8IDIwOyArK2kpIHsKICAgICAgICAg
dCArPSBrQW5pbWF0aW9uVGltZTsKICAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1hdGVT
Y3JvbGwodCk7CkBAIC01NjAsNyArNjUxLDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRl
c3QsIFNjcm9sbExvdHNRdWFkcmF0aWNTbW9vdGhlZCkKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9y
Tm9uZVRlc3QsIFNjcm9sbFdoZWVsVHJhY2UpCiB7Ci0gICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQ
YXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1h
dG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1
YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0
ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDAsIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBr
VGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKIAogICAgIC8vIENvbnN0
cnVjdGVkIGZyb20gYW4gYWN0dWFsIHNjcm9sbCB3aGVlbCB0cmFjZSB0aGF0IGV4aGliaXRlZCBh
IGdsaXRjaC4KICAgICBib29sIHJlc3VsdCA9IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1
My4zMywgMTAwMCwgMTAwLjU3ODEsICZwYXJhbWV0ZXJzKTsKQEAgLTU4NCw3ICs2NzUsNyBAQCBU
RVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsV2hlZWxUcmFjZSkKIAogVEVTVF9G
KFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbFdoZWVsVHJhY2VTbW9vdGhlZCkKIHsKLSAg
ICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMSAqIGtU
aWNrVGltZSwgNyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMg
KiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1l
KTsKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAx
MSAqIGtUaWNrVGltZSwgNyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywg
MyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwg
U2Nyb2xsQW5pbWF0b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgLy8gQ29uc3RydWN0ZWQgZnJv
bSBhbiBhY3R1YWwgc2Nyb2xsIHdoZWVsIHRyYWNlIHRoYXQgZXhoaWJpdGVkIGEgZ2xpdGNoLgog
ICAgIGJvb2wgcmVzdWx0ID0gdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUzLjMzLCAxMDAw
LCAxMDAuNTc4MSwgJnBhcmFtZXRlcnMpOwpAQCAtNjA4LDcgKzY5OSw3IEBAIFRFU1RfRihTY3Jv
bGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxXaGVlbFRyYWNlU21vb3RoZWQpCiAKIFRFU1RfRihT
Y3JvbGxBbmltYXRvck5vbmVUZXN0LCBMaW51eFRyYWNrUGFkVHJhY2UpCiB7Ci0gICAgU2Nyb2xs
QW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUs
IDAsIFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSk7CisgICAgU2Nyb2xsQW5pbWF0
b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTEgKiBrVGlja1RpbWUsIDAsIFNj
cm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9u
ZTo6Q3ViaWMsIDMgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsK
IAogICAgIGJvb2wgcmVzdWx0ID0gdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEuMDAsIDYwLjAw
LCAxMDAwLCAxMDAuNjg2MywgJnBhcmFtZXRlcnMpOwogICAgIHJlc3VsdCA9IHJlc3VsdCAmJiB1
cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMS4wMCwgMjAuMDAsIDEwMDAsIDEwMC42ODk3LCAmcGFy
YW1ldGVycyk7CkBAIC02MzgsNyArNzI5LDcgQEAgVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRl
c3QsIExpbnV4VHJhY2tQYWRUcmFjZSkKIAogVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3Qs
IExpbnV4VHJhY2tQYWRUcmFjZVNtb290aGVkKQogewotICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6
UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCA3ICoga1RpY2tUaW1l
LCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5p
bWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAgIFNjcm9sbEFuaW1hdG9y
Tm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1RpY2tUaW1lLCA3ICoga1Rp
Y2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6Okxp
bmVhciwgMCk7CiAKICAgICBib29sIHJlc3VsdCA9IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygx
LjAwLCA2MC4wMCwgMTAwMCwgMTAwLjY4NjMsICZwYXJhbWV0ZXJzKTsKICAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEuMDAsIDIwLjAwLCAxMDAwLCAxMDAu
Njg5NywgJnBhcmFtZXRlcnMpOwpAQCAtNjY4LDcgKzc1OSw3IEBAIFRFU1RfRihTY3JvbGxBbmlt
YXRvck5vbmVUZXN0LCBMaW51eFRyYWNrUGFkVHJhY2VTbW9vdGhlZCkKIAogVEVTVF9GKFNjcm9s
bEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbERvd25Ub0J1bXBlcikKIHsKLSAgICBTY3JvbGxBbmlt
YXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNrVGltZSwgNyAq
IGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUs
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UXVhZHJhdGljLCAzICoga1RpY2tUaW1lKTsKKyAgICBTY3Jv
bGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0cnVlLCAxMCAqIGtUaWNrVGlt
ZSwgNyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGlt
ZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpDdWJpYywgMyAqIGtUaWNrVGltZSwgU2Nyb2xsQW5pbWF0
b3JOb25lOjpMaW5lYXIsIDApOwogCiAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDIw
LCAyMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9IHRydWU7
CkBAIC02ODYsMTAgKzc3Nyw5IEBAIFRFU1RfRihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3Jv
bGxEb3duVG9CdW1wZXIpCiAgICAgY2hlY2tTb2Z0TGFuZGluZygyMDApOwogfQogCi0KIFRFU1Rf
RihTY3JvbGxBbmltYXRvck5vbmVUZXN0LCBTY3JvbGxVcFRvQnVtcGVyKQogewotICAgIFNjcm9s
bEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDEwICoga1RpY2tUaW1l
LCA3ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMyAqIGtUaWNr
VGltZSwgU2Nyb2xsQW5pbWF0b3JOb25lOjpRdWFkcmF0aWMsIDMgKiBrVGlja1RpbWUpOworICAg
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDEwICoga1Rp
Y2tUaW1lLCA3ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1Rp
Y2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OkxpbmVhciwgMCk7CiAKICAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMo
MSwgLTIwLCAyMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKICAgICBib29sIHJlc3VsdCA9
IHRydWU7CkBAIC03MDcsNCArNzk3LDE3OSBAQCBURVNUX0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVz
dCwgU2Nyb2xsVXBUb0J1bXBlcikKICAgICBjaGVja1NvZnRMYW5kaW5nKDApOwogfQogCitURVNU
X0YoU2Nyb2xsQW5pbWF0b3JOb25lVGVzdCwgU2Nyb2xsVXBUb0J1bXBlckNvYXN0KQoreworICAg
IFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICoga1Rp
Y2tUaW1lLCAyICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1Rp
Y2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OkxpbmVhciwgMSk7CisKKyAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IDQwMDAw
OworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAtMTAwMDAsIDUwMDAwLCBrU3RhcnRU
aW1lLCAmcGFyYW1ldGVycyk7CisgICAgYm9vbCByZXN1bHQgPSB0cnVlOworICAgIGRvdWJsZSB0
ID0ga1N0YXJ0VGltZTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICAg
ICAgdCArPSBrQW5pbWF0aW9uVGltZTsKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGFuaW1h
dGVTY3JvbGwodCk7CisgICAgICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAtMTAwMDAs
IDUwMDAwLCB0LCAmcGFyYW1ldGVycyk7CisgICAgfQorICAgIGNoZWNrRGVzaXJlZFBvc2l0aW9u
KDApOworCisgICAgdCArPSBrQW5pbWF0aW9uVGltZTsKKyAgICBmb3IgKDsgcmVzdWx0ICYmIHQg
PCBrRW5kVGltZTsgdCArPSBrQW5pbWF0aW9uVGltZSkKKyAgICAgICAgcmVzdWx0ID0gcmVzdWx0
ICYmIGFuaW1hdGVTY3JvbGwodCk7CisgICAgY2hlY2tTb2Z0TGFuZGluZygwKTsKK30KKworVEVT
VF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFNjcm9sbERvd25Ub0J1bXBlckNvYXN0KQorewor
ICAgIFNjcm9sbEFuaW1hdG9yTm9uZTo6UGFyYW1ldGVycyBwYXJhbWV0ZXJzKHRydWUsIDExICog
a1RpY2tUaW1lLCAyICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICog
a1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCAzICoga1RpY2tUaW1lLCBTY3Jv
bGxBbmltYXRvck5vbmU6OkxpbmVhciwgMSk7CisKKyAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IDEw
MDAwOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAwMCwgNTAwMDAsIGtTdGFy
dFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBib29sIHJlc3VsdCA9IHRydWU7CisgICAgZG91Ymxl
IHQgPSBrU3RhcnRUaW1lOworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgMTA7ICsraSkgeworICAg
ICAgICB0ICs9IGtBbmltYXRpb25UaW1lOworICAgICAgICByZXN1bHQgPSByZXN1bHQgJiYgYW5p
bWF0ZVNjcm9sbCh0KTsKKyAgICAgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDEwMDAw
LCA1MDAwMCwgdCwgJnBhcmFtZXRlcnMpOworICAgIH0KKyAgICBjaGVja0Rlc2lyZWRQb3NpdGlv
big1MDAwMCk7CisKKyAgICB0ICs9IGtBbmltYXRpb25UaW1lOworICAgIGZvciAoOyByZXN1bHQg
JiYgdCA8IGtFbmRUaW1lOyB0ICs9IGtBbmltYXRpb25UaW1lKQorICAgICAgICByZXN1bHQgPSBy
ZXN1bHQgJiYgYW5pbWF0ZVNjcm9sbCh0KTsKKyAgICBjaGVja1NvZnRMYW5kaW5nKDUwMDAwKTsK
K30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRlc3QsIFZhcnlpbmdJbnB1dHNFcXVpdmFs
ZW5jeSkKK3sKKyAgICBTY3JvbGxBbmltYXRvck5vbmU6OlBhcmFtZXRlcnMgcGFyYW1ldGVycyh0
cnVlLCAxNSAqIGtUaWNrVGltZSwgMTAgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6
Q3ViaWMsIDUgKiBrVGlja1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6Q3ViaWMsIDUgKiBrVGlj
a1RpbWUsIFNjcm9sbEFuaW1hdG9yTm9uZTo6TGluZWFyLCAwKTsKKworICAgIHJlc2V0KCk7Cisg
ICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDMwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZw
YXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YVNpbmdsZSgqbV9kYXRhKTsKKwor
ICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDE1MCwgNTAwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMo
MSwgMTUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlz
RGF0YSBkYXRhRG91YmxlKCptX2RhdGEpOworCisgICAgcmVzZXQoKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoMSwgMTAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAm
cGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDEwMCwgNTAwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YVRyaXBs
ZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJz
KDEsIDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFG
cm9tUGFyYW1ldGVycygxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAg
ICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFy
YW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUwLCA1MDAwMCwga1N0
YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1
MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBh
cmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2
ZVBlckF4aXNEYXRhIGRhdGFNYW55KCptX2RhdGEpOworCisgICAgRVhQRUNUX0VRKGRhdGFTaW5n
bGUsIGRhdGFEb3VibGUpOworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhVHJpcGxlKTsK
KyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YU1hbnkpOworfQorCitURVNUX0YoU2Nyb2xs
QW5pbWF0b3JOb25lVGVzdCwgVmFyeWluZ0lucHV0c0VxdWl2YWxlbmN5Q29hc3QpCit7CisgICAg
U2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTUgKiBrVGlj
a1RpbWUsIDEwICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1ICoga1Rp
Y2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1ICoga1RpY2tUaW1lLCBTY3JvbGxB
bmltYXRvck5vbmU6OkxpbmVhciwgMSk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFG
cm9tUGFyYW1ldGVycygxLCAzMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7Cisg
ICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFTaW5nbGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAm
cGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDE1MCwgNTAwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YURvdWJs
ZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJz
KDEsIDEwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRh
RnJvbVBhcmFtZXRlcnMoMSwgMTAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOwor
ICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAsIDUwMDAwLCBrU3RhcnRUaW1lLCAm
cGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFUcmlwbGUoKm1fZGF0YSk7CisK
KyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAwMDAs
IGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMo
MSwgNTAsIDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZy
b21QYXJhbWV0ZXJzKDEsIDUwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAg
IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJh
bWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgNTAsIDUwMDAwLCBrU3Rh
cnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDUw
LCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBk
YXRhTWFueSgqbV9kYXRhKTsKKworICAgIEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhRG91Ymxl
KTsKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YVRyaXBsZSk7CisgICAgRVhQRUNUX0VR
KGRhdGFTaW5nbGUsIGRhdGFNYW55KTsKK30KKworVEVTVF9GKFNjcm9sbEFuaW1hdG9yTm9uZVRl
c3QsIFZhcnlpbmdJbnB1dHNFcXVpdmFsZW5jeUNvYXN0TGFyZ2UpCit7CisgICAgU2Nyb2xsQW5p
bWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTUgKiBrVGlja1RpbWUsIDEw
ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1ICoga1RpY2tUaW1lLCBT
Y3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5v
bmU6OkxpbmVhciwgMSk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1l
dGVycygxLCAzMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZl
UGVyQXhpc0RhdGEgZGF0YVNpbmdsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBk
YXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDE1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxNTAwMCwgNTAwMDAsIGtT
dGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YURvdWJsZSgq
bV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEs
IDEwMDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFG
cm9tUGFyYW1ldGVycygxLCAxMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsK
KyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwMDAsIDUwMDAwLCBrU3RhcnRUaW1l
LCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRhdGFUcmlwbGUoKm1fZGF0YSk7
CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MDAwLCA1
MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1l
dGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0
ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRl
cnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0
VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MDAw
LCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIFNh
dmVQZXJBeGlzRGF0YSBkYXRhTWFueSgqbV9kYXRhKTsKKworICAgIEVYUEVDVF9FUShkYXRhU2lu
Z2xlLCBkYXRhRG91YmxlKTsKKyAgICBFWFBFQ1RfRVEoZGF0YVNpbmdsZSwgZGF0YVRyaXBsZSk7
CisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFNYW55KTsKK30KKworVEVTVF9GKFNjcm9s
bEFuaW1hdG9yTm9uZVRlc3QsIFZhcnlpbmdJbnB1dHNFcXVpdmFsZW5jeUNvYXN0U3RlZXApCit7
CisgICAgU2Nyb2xsQW5pbWF0b3JOb25lOjpQYXJhbWV0ZXJzIHBhcmFtZXRlcnModHJ1ZSwgMTUg
KiBrVGlja1RpbWUsIDEwICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1
ICoga1RpY2tUaW1lLCBTY3JvbGxBbmltYXRvck5vbmU6OkN1YmljLCA1ICoga1RpY2tUaW1lLCBT
Y3JvbGxBbmltYXRvck5vbmU6OlF1YWRyYXRpYywgMSk7CisKKyAgICByZXNldCgpOworICAgIHVw
ZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAzMDAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJh
bWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhpc0RhdGEgZGF0YVNpbmdsZSgqbV9kYXRhKTsKKworICAg
IHJlc2V0KCk7CisgICAgdXBkYXRlRGF0YUZyb21QYXJhbWV0ZXJzKDEsIDE1MDAwLCA1MDAwMCwg
a1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygx
LCAxNTAwMCwgNTAwMDAsIGtTdGFydFRpbWUsICZwYXJhbWV0ZXJzKTsKKyAgICBTYXZlUGVyQXhp
c0RhdGEgZGF0YURvdWJsZSgqbV9kYXRhKTsKKworICAgIHJlc2V0KCk7CisgICAgdXBkYXRlRGF0
YUZyb21QYXJhbWV0ZXJzKDEsIDEwMDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMp
OworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCAxMDAwMCwgNTAwMDAsIGtTdGFydFRp
bWUsICZwYXJhbWV0ZXJzKTsKKyAgICB1cGRhdGVEYXRhRnJvbVBhcmFtZXRlcnMoMSwgMTAwMDAs
IDUwMDAwLCBrU3RhcnRUaW1lLCAmcGFyYW1ldGVycyk7CisgICAgU2F2ZVBlckF4aXNEYXRhIGRh
dGFUcmlwbGUoKm1fZGF0YSk7CisKKyAgICByZXNldCgpOworICAgIHVwZGF0ZURhdGFGcm9tUGFy
YW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVw
ZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFt
ZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0
YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1
MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAgIHVwZGF0ZURhdGFGcm9t
UGFyYW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBhcmFtZXRlcnMpOworICAg
IHVwZGF0ZURhdGFGcm9tUGFyYW1ldGVycygxLCA1MDAwLCA1MDAwMCwga1N0YXJ0VGltZSwgJnBh
cmFtZXRlcnMpOworICAgIFNhdmVQZXJBeGlzRGF0YSBkYXRhTWFueSgqbV9kYXRhKTsKKworICAg
IEVYUEVDVF9FUShkYXRhU2luZ2xlLCBkYXRhRG91YmxlKTsKKyAgICBFWFBFQ1RfRVEoZGF0YVNp
bmdsZSwgZGF0YVRyaXBsZSk7CisgICAgRVhQRUNUX0VRKGRhdGFTaW5nbGUsIGRhdGFNYW55KTsK
K30KKworCiAjZW5kaWYgLy8gRU5BQkxFKFNNT09USF9TQ1JPTExJTkcpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>