<?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>134349</bug_id>
          
          <creation_ts>2014-06-26 10:26:31 -0700</creation_ts>
          <short_desc>[MSE] Refactoring: Differentiate between SampleMap decode and presentation order methods</short_desc>
          <delta_ts>2014-06-27 00:29:55 -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>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>bunhere</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ltilve</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1018662</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-06-26 10:26:31 -0700</bug_when>
    <thetext>[MSE] Refactoring: Differentiate between SampleMap decode and presentation order methods</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018673</commentid>
    <comment_count>1</comment_count>
      <attachid>233913</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-06-26 10:45:03 -0700</bug_when>
    <thetext>Created attachment 233913
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018674</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-26 10:46:19 -0700</bug_when>
    <thetext>Attachment 233913 did not pass style-queue:


ERROR: Source/WebCore/Modules/mediasource/SampleMap.h:69:  reverse_iterator is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018677</commentid>
    <comment_count>3</comment_count>
      <attachid>233913</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-06-26 10:48:03 -0700</bug_when>
    <thetext>Comment on attachment 233913
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018680</commentid>
    <comment_count>4</comment_count>
      <attachid>233913</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-06-26 11:17:59 -0700</bug_when>
    <thetext>Comment on attachment 233913
Patch

Clearing flags on attachment: 233913

Committed r170484: &lt;http://trac.webkit.org/changeset/170484&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1018681</commentid>
    <comment_count>5</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2014-06-26 11:18:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233913</attachid>
            <date>2014-06-26 10:45:03 -0700</date>
            <delta_ts>2014-06-26 11:17:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134349-20140626104443.patch</filename>
            <type>text/plain</type>
            <size>32495</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwNDU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZjZmI5ZGIyZTFkNjQ5
MWI5OTRkZTk2NTgxZGE2ZWY3N2FiNTU5Ny4uZTZlYTQ0NDc3YzEzZGM0ZWRmYmI2OGUwMjMyNzBk
OWExNGQxMTNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTA2LTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNU0VdIFJlZmFjdG9yaW5n
OiBEaWZmZXJlbnRpYXRlIGJldHdlZW4gU2FtcGxlTWFwIGRlY29kZSBhbmQgcHJlc2VudGF0aW9u
IG9yZGVyIG1ldGhvZHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNDM0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlZmFjdG9yIFNhbXBsZU1hcCB0byBjbGFyaWZ5IHRoZSBkaXN0aW5jdGlvbiBiZXR3
ZWVuIG1ldGhvZHMgd2hpY2ggcmV0dXJuIGRlY29kZS1vcmRlcgorICAgICAgICBpdGVyYXRvcnMg
YW5kIG9uZXMgd2hpY2ggcmV0dW4gcHJlc2VudGF0aW9uLW9yZGVyIGl0ZXJhdG9ycy4KKworICAg
ICAgICBBZGQgdHdvIGNsYXNzZXMsIFByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwIGFuZCBEZWNv
ZGVPcmRlclNhbXBsZU1hcCwgdG8gY29udGFpbiB0aGUgYWN0dWFsCisgICAgICAgIE1lZGlhVGlt
ZS10by1TYW1wbGUgbWFwcywgYW5kIG1vdmUgdGhlIG1ldGhvZHMgcmV0dXJuaW5nIHByZXNlbnRh
dGlvbi1vcmRlciBhbmQgZGVjb2RlLW9yZGVyCisgICAgICAgIGl0ZXJhdG9ycyB0byBlYWNoLCBy
ZXNwZWN0aXZlbHkuICBSZW5hbWUgdGhlIHtwcmVzZW50YXRpb24sZGVjb2RlfXtCZWdpbixFbmR9
KCkgbWV0aG9kcyB0bworICAgICAgICBiZWdpbigpIGFuZCBlbmQoKSBzbyB0aGUgb2JqZWN0cyBj
YW4gYmUgdXNlZCBpbiBDKysxMSBmb3ItbG9vcHMuCisKKyAgICAgICAgVXBkYXRlIGFsbCB0aGUg
Y2FsbCBzaXRlcyBpbiBTb3VyY2VCdWZmZXIgdG8gdXNlIHRoZSBuZXcgb3JkZXJlZCBvYmplY3Rz
LgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2FtcGxlSXNMZXNzVGhhbk1lZGlhVGltZUNvbXBhcmF0b3I6Om9wZXJhdG9y
KCkpOiBVc2UgbmV3IG9yZGVyZWQgb2JqZWN0cy4KKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZUlz
R3JlYXRlclRoYW5NZWRpYVRpbWVDb21wYXJhdG9yOjpvcGVyYXRvcigpKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpTYW1wbGVNYXA6OmNsZWFyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpTYW1wbGVNYXA6OmFkZFNhbXBsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2FtcGxl
TWFwOjpyZW1vdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlv
bk9yZGVyU2FtcGxlTWFwOjpmaW5kU2FtcGxlQ29udGFpbmluZ1ByZXNlbnRhdGlvblRpbWUpOiBS
ZW5hbWVkIGZyb20gU2FtcGxlTWFwIHZlcnNpb24uCisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50
YXRpb25PcmRlclNhbXBsZU1hcDo6ZmluZFNhbXBsZUFmdGVyUHJlc2VudGF0aW9uVGltZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RGVjb2RlT3JkZXJTYW1wbGVNYXA6OmZpbmRTYW1wbGVX
aXRoRGVjb2RlVGltZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uT3Jk
ZXJTYW1wbGVNYXA6OnJldmVyc2VGaW5kU2FtcGxlQ29udGFpbmluZ1ByZXNlbnRhdGlvblRpbWUp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwOjpy
ZXZlcnNlRmluZFNhbXBsZUJlZm9yZVByZXNlbnRhdGlvblRpbWUpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkRlY29kZU9yZGVyU2FtcGxlTWFwOjpyZXZlcnNlRmluZFNhbXBsZVdpdGhEZWNv
ZGVUaW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEZWNvZGVPcmRlclNhbXBsZU1hcDo6
ZmluZFN5bmNTYW1wbGVQcmlvclRvUHJlc2VudGF0aW9uVGltZSk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6RGVjb2RlT3JkZXJTYW1wbGVNYXA6OmZpbmRTeW5jU2FtcGxlUHJpb3JUb0RlY29k
ZUl0ZXJhdG9yKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEZWNvZGVPcmRlclNhbXBsZU1h
cDo6ZmluZFN5bmNTYW1wbGVBZnRlclByZXNlbnRhdGlvblRpbWUpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkRlY29kZU9yZGVyU2FtcGxlTWFwOjpmaW5kU3luY1NhbXBsZUFmdGVyRGVjb2Rl
SXRlcmF0b3IpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvbk9yZGVyU2Ft
cGxlTWFwOjpmaW5kU2FtcGxlc0JldHdlZW5QcmVzZW50YXRpb25UaW1lcyk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uT3JkZXJTYW1wbGVNYXA6OmZpbmRTYW1wbGVzV2l0
aGluUHJlc2VudGF0aW9uUmFuZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRlY29kZU9y
ZGVyU2FtcGxlTWFwOjpmaW5kRGVwZW5kZW50U2FtcGxlcyk6IERpdHRvLgorICAgICAgICAqIE1v
ZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmg6CisgICAgICAgIChXZWJDb3JlOjpQcmVzZW50
YXRpb25PcmRlclNhbXBsZU1hcDo6YmVnaW4pOiBSZW5hbWVkIGZyb20gcHJlc2VudGF0aW9uQmVn
aW4oKS4KKyAgICAgICAgKFdlYkNvcmU6OlByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwOjplbmQp
OiBSZW5hbWVkIGZyb20gcHJlc2VudGF0aW9uRW5kKCkuCisgICAgICAgIChXZWJDb3JlOjpQcmVz
ZW50YXRpb25PcmRlclNhbXBsZU1hcDo6cmJlZ2luKTogUmVuYW1lZCBmcm9tIHJldmVyc2VQcmVz
ZW50YXRpb25CZWdpbigpLgorICAgICAgICAoV2ViQ29yZTo6UHJlc2VudGF0aW9uT3JkZXJTYW1w
bGVNYXA6OnJlbmQpOiBSZW5hbWVkIGZyb20gcmV2ZXJzZVByZXNlbnRhdGlvbkVuZCgpLgorICAg
ICAgICAoV2ViQ29yZTo6RGVjb2RlT3JkZXJTYW1wbGVNYXA6OmJlZ2luKTogUmVuYW1lZCBmcm9t
IGRlY29kZUJlZ2luKCkuCisgICAgICAgIChXZWJDb3JlOjpEZWNvZGVPcmRlclNhbXBsZU1hcDo6
ZW5kKTogUmVuYW1lZCBmcm9tIGRlY29kZUVuZCgpLgorICAgICAgICAoV2ViQ29yZTo6RGVjb2Rl
T3JkZXJTYW1wbGVNYXA6OnJiZWdpbik6IFJlbmFtZWQgZnJvbSByZXZlcnNlRGVjb2RlQmVnaW4o
KS4KKyAgICAgICAgKFdlYkNvcmU6OkRlY29kZU9yZGVyU2FtcGxlTWFwOjpyZW5kKTogUmVuYW1l
ZCBmcm9tIHJldmVyc2VEZWNvZGVFbmQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlNhbXBsZU1hcDo6
U2FtcGxlTWFwKTogQ3JlYXRlIG5ldyBvcmRlcmVkIG9iamVjdHMuCisgICAgICAgIChXZWJDb3Jl
OjpTYW1wbGVNYXA6OnNpemVJbkJ5dGVzKTogVXNlIG5ldyBvcmRlcmVkIG9iamVjdHMuCisgICAg
ICAgIChXZWJDb3JlOjpTYW1wbGVNYXA6OmRlY29kZU9yZGVyKTogU2ltcGxlIGFjY2Vzc29yLgor
ICAgICAgICAoV2ViQ29yZTo6U2FtcGxlTWFwOjpwcmVzZW50YXRpb25PcmRlcik6IFNpbXBsZSBh
Y2Nlc3Nvci4KKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVTZWVr
VG9UaW1lKTogVXNlIG5ldyBvcmRlcmVkIG9iamVjdHMuCisgICAgICAgIChXZWJDb3JlOjpTb3Vy
Y2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVGYXN0U2Vla1RpbWVGb3JNZWRpYVRpbWUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6cmVtb3ZlQ29kZWRGcmFtZXMp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJp
dmF0ZURpZFJlY2VpdmVTYW1wbGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6YnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJRCk6IERpdHRvLgorCiAyMDE0LTA2LTI1ICBK
ZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNU0VdIHJlbW92ZUNv
ZGVkRnJhbWVzKCkgY2FuIHJlbW92ZSBtb3JlIHRoYW4gaXQgc2hvdWxkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBsZU1hcC5jcHAKaW5kZXggYjA5M2E1Zjg3
MjU4NDhjZjc0N2Y3ZGE0MDc5NjhkZDQxNzMyYTM4ZS4uZGFkMDU2OWYxZTgyM2UxYWZiOTdjNmU1
NDA0MGRmNDI5YWMzMjRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9TYW1wbGVNYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvU2FtcGxlTWFwLmNwcApAQCAtMzIsMjggKzMyLDMyIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAordGVtcGxhdGUgPHR5cGVuYW1lIE0+CiBjbGFzcyBTYW1wbGVJc0xlc3NUaGFuTWVk
aWFUaW1lQ29tcGFyYXRvciB7CiBwdWJsaWM6Ci0gICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IFNh
bXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZSYgdmFsdWUsIGNvbnN0IE1lZGlhVGltZSYgdGlt
ZSkKKyAgICB0eXBlZGVmIHR5cGVuYW1lIE06OnZhbHVlX3R5cGUgdmFsdWVfdHlwZTsKKyAgICBi
b29sIG9wZXJhdG9yKCkoY29uc3QgdmFsdWVfdHlwZSYgdmFsdWUsIGNvbnN0IE1lZGlhVGltZSYg
dGltZSkKICAgICB7CiAgICAgICAgIE1lZGlhVGltZSBwcmVzZW50YXRpb25FbmRUaW1lID0gdmFs
dWUuc2Vjb25kLT5wcmVzZW50YXRpb25UaW1lKCkgKyB2YWx1ZS5zZWNvbmQtPmR1cmF0aW9uKCk7
CiAgICAgICAgIHJldHVybiBwcmVzZW50YXRpb25FbmRUaW1lIDw9IHRpbWU7CiAgICAgfQotICAg
IGJvb2wgb3BlcmF0b3IoKShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IFNhbXBsZU1hcDo6
TWFwVHlwZTo6dmFsdWVfdHlwZSYgdmFsdWUpCisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgY29uc3QgdmFsdWVfdHlwZSYgdmFsdWUpCiAgICAgewogICAgICAgICBN
ZWRpYVRpbWUgcHJlc2VudGF0aW9uU3RhcnRUaW1lID0gdmFsdWUuc2Vjb25kLT5wcmVzZW50YXRp
b25UaW1lKCk7CiAgICAgICAgIHJldHVybiB0aW1lIDwgcHJlc2VudGF0aW9uU3RhcnRUaW1lOwog
ICAgIH0KIH07CiAKK3RlbXBsYXRlIDx0eXBlbmFtZSBNPgogY2xhc3MgU2FtcGxlSXNHcmVhdGVy
VGhhbk1lZGlhVGltZUNvbXBhcmF0b3IgewogcHVibGljOgotICAgIGJvb2wgb3BlcmF0b3IoKShj
b25zdCBTYW1wbGVNYXA6Ok1hcFR5cGU6OnZhbHVlX3R5cGUmIHZhbHVlLCBjb25zdCBNZWRpYVRp
bWUmIHRpbWUpCisgICAgdHlwZWRlZiB0eXBlbmFtZSBNOjp2YWx1ZV90eXBlIHZhbHVlX3R5cGU7
CisgICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IHZhbHVlX3R5cGUmIHZhbHVlLCBjb25zdCBNZWRp
YVRpbWUmIHRpbWUpCiAgICAgewogICAgICAgICBNZWRpYVRpbWUgcHJlc2VudGF0aW9uU3RhcnRU
aW1lID0gdmFsdWUuc2Vjb25kLT5wcmVzZW50YXRpb25UaW1lKCk7CiAgICAgICAgIHJldHVybiBw
cmVzZW50YXRpb25TdGFydFRpbWUgPiB0aW1lOwogICAgIH0KLSAgICBib29sIG9wZXJhdG9yKCko
Y29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBTYW1wbGVNYXA6Ok1hcFR5cGU6OnZhbHVlX3R5
cGUmIHZhbHVlKQorICAgIGJvb2wgb3BlcmF0b3IoKShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNv
bnN0IHZhbHVlX3R5cGUmIHZhbHVlKQogICAgIHsKICAgICAgICAgTWVkaWFUaW1lIHByZXNlbnRh
dGlvbkVuZFRpbWUgPSB2YWx1ZS5zZWNvbmQtPnByZXNlbnRhdGlvblRpbWUoKSArIHZhbHVlLnNl
Y29uZC0+ZHVyYXRpb24oKTsKICAgICAgICAgcmV0dXJuIHRpbWUgPj0gcHJlc2VudGF0aW9uRW5k
VGltZTsKQEAgLTk0LDggKzk4LDggQEAgc3RydWN0IFNhbXBsZVByZXNlbnRhdGlvblRpbWVJc1dp
dGhpblJhbmdlQ29tcGFyYXRvciB7CiAKIHZvaWQgU2FtcGxlTWFwOjpjbGVhcigpCiB7Ci0gICAg
bV9wcmVzZW50YXRpb25TYW1wbGVzLmNsZWFyKCk7Ci0gICAgbV9kZWNvZGVTYW1wbGVzLmNsZWFy
KCk7CisgICAgcHJlc2VudGF0aW9uT3JkZXIoKS5tX3NhbXBsZXMuY2xlYXIoKTsKKyAgICBkZWNv
ZGVPcmRlcigpLm1fc2FtcGxlcy5jbGVhcigpOwogICAgIG1fdG90YWxTaXplID0gMDsKIH0KIApA
QCAtMTAzLDggKzEwNyw4IEBAIHZvaWQgU2FtcGxlTWFwOjphZGRTYW1wbGUoUGFzc1JlZlB0cjxN
ZWRpYVNhbXBsZT4gcHJwU2FtcGxlKQogewogICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gc2FtcGxl
ID0gcHJwU2FtcGxlOwogICAgIEFTU0VSVChzYW1wbGUpOwotICAgIG1fcHJlc2VudGF0aW9uU2Ft
cGxlcy5pbnNlcnQoTWFwVHlwZTo6dmFsdWVfdHlwZShzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUo
KSwgc2FtcGxlKSk7Ci0gICAgbV9kZWNvZGVTYW1wbGVzLmluc2VydChNYXBUeXBlOjp2YWx1ZV90
eXBlKHNhbXBsZS0+ZGVjb2RlVGltZSgpLCBzYW1wbGUpKTsKKyAgICBwcmVzZW50YXRpb25PcmRl
cigpLm1fc2FtcGxlcy5pbnNlcnQoUHJlc2VudGF0aW9uT3JkZXJTYW1wbGVNYXA6Ok1hcFR5cGU6
OnZhbHVlX3R5cGUoc2FtcGxlLT5wcmVzZW50YXRpb25UaW1lKCksIHNhbXBsZSkpOworICAgIGRl
Y29kZU9yZGVyKCkubV9zYW1wbGVzLmluc2VydChEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlw
ZTo6dmFsdWVfdHlwZShzYW1wbGUtPmRlY29kZVRpbWUoKSwgc2FtcGxlKSk7CiAKICAgICBtX3Rv
dGFsU2l6ZSArPSBzYW1wbGUtPnNpemVJbkJ5dGVzKCk7CiB9CkBAIC0xMTIsMTA3ICsxMTYsMTA3
IEBAIHZvaWQgU2FtcGxlTWFwOjphZGRTYW1wbGUoUGFzc1JlZlB0cjxNZWRpYVNhbXBsZT4gcHJw
U2FtcGxlKQogdm9pZCBTYW1wbGVNYXA6OnJlbW92ZVNhbXBsZShNZWRpYVNhbXBsZSogc2FtcGxl
KQogewogICAgIEFTU0VSVChzYW1wbGUpOwotICAgIG1fcHJlc2VudGF0aW9uU2FtcGxlcy5lcmFz
ZShzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSk7Ci0gICAgbV9kZWNvZGVTYW1wbGVzLmVyYXNl
KHNhbXBsZS0+ZGVjb2RlVGltZSgpKTsKKyAgICBwcmVzZW50YXRpb25PcmRlcigpLm1fc2FtcGxl
cy5lcmFzZShzYW1wbGUtPnByZXNlbnRhdGlvblRpbWUoKSk7CisgICAgZGVjb2RlT3JkZXIoKS5t
X3NhbXBsZXMuZXJhc2Uoc2FtcGxlLT5kZWNvZGVUaW1lKCkpOwogCiAgICAgbV90b3RhbFNpemUg
LT0gc2FtcGxlLT5zaXplSW5CeXRlcygpOwogfQogCi1TYW1wbGVNYXA6Oml0ZXJhdG9yIFNhbXBs
ZU1hcDo6ZmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSkKK1ByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwOjppdGVyYXRvciBQcmVzZW50YXRp
b25PcmRlclNhbXBsZU1hcDo6ZmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25UaW1lKGNv
bnN0IE1lZGlhVGltZSYgdGltZSkKIHsKLSAgICBhdXRvIHJhbmdlID0gc3RkOjplcXVhbF9yYW5n
ZShwcmVzZW50YXRpb25CZWdpbigpLCBwcmVzZW50YXRpb25FbmQoKSwgdGltZSwgU2FtcGxlSXNM
ZXNzVGhhbk1lZGlhVGltZUNvbXBhcmF0b3IoKSk7CisgICAgYXV0byByYW5nZSA9IHN0ZDo6ZXF1
YWxfcmFuZ2UoYmVnaW4oKSwgZW5kKCksIHRpbWUsIFNhbXBsZUlzTGVzc1RoYW5NZWRpYVRpbWVD
b21wYXJhdG9yPE1hcFR5cGU+KCkpOwogICAgIGlmIChyYW5nZS5maXJzdCA9PSByYW5nZS5zZWNv
bmQpCi0gICAgICAgIHJldHVybiBwcmVzZW50YXRpb25FbmQoKTsKKyAgICAgICAgcmV0dXJuIGVu
ZCgpOwogICAgIHJldHVybiByYW5nZS5maXJzdDsKIH0KIAotU2FtcGxlTWFwOjppdGVyYXRvciBT
YW1wbGVNYXA6OmZpbmRTYW1wbGVBZnRlclByZXNlbnRhdGlvblRpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lKQorUHJlc2VudGF0aW9uT3JkZXJTYW1wbGVNYXA6Oml0ZXJhdG9yIFByZXNlbnRhdGlv
bk9yZGVyU2FtcGxlTWFwOjpmaW5kU2FtcGxlQWZ0ZXJQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSkKIHsKLSAgICByZXR1cm4gc3RkOjpsb3dlcl9ib3VuZChwcmVzZW50YXRp
b25CZWdpbigpLCBwcmVzZW50YXRpb25FbmQoKSwgdGltZSwgU2FtcGxlSXNMZXNzVGhhbk1lZGlh
VGltZUNvbXBhcmF0b3IoKSk7CisgICAgcmV0dXJuIHN0ZDo6bG93ZXJfYm91bmQoYmVnaW4oKSwg
ZW5kKCksIHRpbWUsIFNhbXBsZUlzTGVzc1RoYW5NZWRpYVRpbWVDb21wYXJhdG9yPE1hcFR5cGU+
KCkpOwogfQogCi1TYW1wbGVNYXA6Oml0ZXJhdG9yIFNhbXBsZU1hcDo6ZmluZFNhbXBsZVdpdGhE
ZWNvZGVUaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKK0RlY29kZU9yZGVyU2FtcGxlTWFwOjpp
dGVyYXRvciBEZWNvZGVPcmRlclNhbXBsZU1hcDo6ZmluZFNhbXBsZVdpdGhEZWNvZGVUaW1lKGNv
bnN0IE1lZGlhVGltZSYgdGltZSkKIHsKLSAgICByZXR1cm4gbV9kZWNvZGVTYW1wbGVzLmZpbmQo
dGltZSk7CisgICAgcmV0dXJuIG1fc2FtcGxlcy5maW5kKHRpbWUpOwogfQogCi1TYW1wbGVNYXA6
OnJldmVyc2VfaXRlcmF0b3IgU2FtcGxlTWFwOjpyZXZlcnNlRmluZFNhbXBsZUNvbnRhaW5pbmdQ
cmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKK1ByZXNlbnRhdGlvbk9yZGVy
U2FtcGxlTWFwOjpyZXZlcnNlX2l0ZXJhdG9yIFByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwOjpy
ZXZlcnNlRmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSkKIHsKLSAgICBhdXRvIHJhbmdlID0gc3RkOjplcXVhbF9yYW5nZShyZXZlcnNlUHJl
c2VudGF0aW9uQmVnaW4oKSwgcmV2ZXJzZVByZXNlbnRhdGlvbkVuZCgpLCB0aW1lLCBTYW1wbGVJ
c0dyZWF0ZXJUaGFuTWVkaWFUaW1lQ29tcGFyYXRvcigpKTsKKyAgICBhdXRvIHJhbmdlID0gc3Rk
OjplcXVhbF9yYW5nZShyYmVnaW4oKSwgcmVuZCgpLCB0aW1lLCBTYW1wbGVJc0dyZWF0ZXJUaGFu
TWVkaWFUaW1lQ29tcGFyYXRvcjxNYXBUeXBlPigpKTsKICAgICBpZiAocmFuZ2UuZmlyc3QgPT0g
cmFuZ2Uuc2Vjb25kKQotICAgICAgICByZXR1cm4gcmV2ZXJzZVByZXNlbnRhdGlvbkVuZCgpOwor
ICAgICAgICByZXR1cm4gcmVuZCgpOwogICAgIHJldHVybiByYW5nZS5maXJzdDsKIH0KIAotU2Ft
cGxlTWFwOjpyZXZlcnNlX2l0ZXJhdG9yIFNhbXBsZU1hcDo6cmV2ZXJzZUZpbmRTYW1wbGVCZWZv
cmVQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYgdGltZSkKK1ByZXNlbnRhdGlvbk9y
ZGVyU2FtcGxlTWFwOjpyZXZlcnNlX2l0ZXJhdG9yIFByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFw
OjpyZXZlcnNlRmluZFNhbXBsZUJlZm9yZVByZXNlbnRhdGlvblRpbWUoY29uc3QgTWVkaWFUaW1l
JiB0aW1lKQogewotICAgIHJldHVybiBzdGQ6Omxvd2VyX2JvdW5kKHJldmVyc2VQcmVzZW50YXRp
b25CZWdpbigpLCByZXZlcnNlUHJlc2VudGF0aW9uRW5kKCksIHRpbWUsIFNhbXBsZUlzR3JlYXRl
clRoYW5NZWRpYVRpbWVDb21wYXJhdG9yKCkpOworICAgIHJldHVybiBzdGQ6Omxvd2VyX2JvdW5k
KHJiZWdpbigpLCByZW5kKCksIHRpbWUsIFNhbXBsZUlzR3JlYXRlclRoYW5NZWRpYVRpbWVDb21w
YXJhdG9yPE1hcFR5cGU+KCkpOwogfQogCi1TYW1wbGVNYXA6OnJldmVyc2VfaXRlcmF0b3IgU2Ft
cGxlTWFwOjpyZXZlcnNlRmluZFNhbXBsZVdpdGhEZWNvZGVUaW1lKGNvbnN0IE1lZGlhVGltZSYg
dGltZSkKK0RlY29kZU9yZGVyU2FtcGxlTWFwOjpyZXZlcnNlX2l0ZXJhdG9yIERlY29kZU9yZGVy
U2FtcGxlTWFwOjpyZXZlcnNlRmluZFNhbXBsZVdpdGhEZWNvZGVUaW1lKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSkKIHsKLSAgICBTYW1wbGVNYXA6Oml0ZXJhdG9yIGZvdW5kID0gZmluZFNhbXBsZVdp
dGhEZWNvZGVUaW1lKHRpbWUpOwotICAgIGlmIChmb3VuZCA9PSBkZWNvZGVFbmQoKSkKLSAgICAg
ICAgcmV0dXJuIHJldmVyc2VEZWNvZGVFbmQoKTsKKyAgICBEZWNvZGVPcmRlclNhbXBsZU1hcDo6
aXRlcmF0b3IgZm91bmQgPSBmaW5kU2FtcGxlV2l0aERlY29kZVRpbWUodGltZSk7CisgICAgaWYg
KGZvdW5kID09IGVuZCgpKQorICAgICAgICByZXR1cm4gcmVuZCgpOwogICAgIHJldHVybiAtLXJl
dmVyc2VfaXRlcmF0b3IoZm91bmQpOwogfQogCi1TYW1wbGVNYXA6OnJldmVyc2VfaXRlcmF0b3Ig
U2FtcGxlTWFwOjpmaW5kU3luY1NhbXBsZVByaW9yVG9QcmVzZW50YXRpb25UaW1lKGNvbnN0IE1l
ZGlhVGltZSYgdGltZSwgY29uc3QgTWVkaWFUaW1lJiB0aHJlc2hvbGQpCitEZWNvZGVPcmRlclNh
bXBsZU1hcDo6cmV2ZXJzZV9pdGVyYXRvciBEZWNvZGVPcmRlclNhbXBsZU1hcDo6ZmluZFN5bmNT
YW1wbGVQcmlvclRvUHJlc2VudGF0aW9uVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IE1lZGlhVGltZSYgdGhyZXNob2xkKQogewotICAgIHJldmVyc2VfaXRlcmF0b3IgcmV2ZXJzZUN1
cnJlbnRTYW1wbGVQVFMgPSByZXZlcnNlRmluZFNhbXBsZUJlZm9yZVByZXNlbnRhdGlvblRpbWUo
dGltZSk7Ci0gICAgaWYgKHJldmVyc2VDdXJyZW50U2FtcGxlUFRTID09IHJldmVyc2VQcmVzZW50
YXRpb25FbmQoKSkKLSAgICAgICAgcmV0dXJuIHJldmVyc2VEZWNvZGVFbmQoKTsKKyAgICBQcmVz
ZW50YXRpb25PcmRlclNhbXBsZU1hcDo6cmV2ZXJzZV9pdGVyYXRvciByZXZlcnNlQ3VycmVudFNh
bXBsZVBUUyA9IG1fcHJlc2VudGF0aW9uT3JkZXIucmV2ZXJzZUZpbmRTYW1wbGVCZWZvcmVQcmVz
ZW50YXRpb25UaW1lKHRpbWUpOworICAgIGlmIChyZXZlcnNlQ3VycmVudFNhbXBsZVBUUyA9PSBt
X3ByZXNlbnRhdGlvbk9yZGVyLnJlbmQoKSkKKyAgICAgICAgcmV0dXJuIHJlbmQoKTsKIAogICAg
IHJldmVyc2VfaXRlcmF0b3IgcmV2ZXJzZUN1cnJlbnRTYW1wbGVEVFMgPSByZXZlcnNlRmluZFNh
bXBsZVdpdGhEZWNvZGVUaW1lKHJldmVyc2VDdXJyZW50U2FtcGxlUFRTLT5zZWNvbmQtPmRlY29k
ZVRpbWUoKSk7CiAKICAgICByZXZlcnNlX2l0ZXJhdG9yIGZvdW5kU2FtcGxlID0gZmluZFN5bmNT
YW1wbGVQcmlvclRvRGVjb2RlSXRlcmF0b3IocmV2ZXJzZUN1cnJlbnRTYW1wbGVEVFMpOwotICAg
IGlmIChmb3VuZFNhbXBsZSA9PSByZXZlcnNlRGVjb2RlRW5kKCkpCi0gICAgICAgIHJldHVybiBy
ZXZlcnNlRGVjb2RlRW5kKCk7CisgICAgaWYgKGZvdW5kU2FtcGxlID09IHJlbmQoKSkKKyAgICAg
ICAgcmV0dXJuIHJlbmQoKTsKICAgICBpZiAoZm91bmRTYW1wbGUtPnNlY29uZC0+cHJlc2VudGF0
aW9uVGltZSgpIDwgdGltZSAtIHRocmVzaG9sZCkKLSAgICAgICAgcmV0dXJuIHJldmVyc2VEZWNv
ZGVFbmQoKTsKKyAgICAgICAgcmV0dXJuIHJlbmQoKTsKICAgICByZXR1cm4gZm91bmRTYW1wbGU7
CiB9CiAKLVNhbXBsZU1hcDo6cmV2ZXJzZV9pdGVyYXRvciBTYW1wbGVNYXA6OmZpbmRTeW5jU2Ft
cGxlUHJpb3JUb0RlY29kZUl0ZXJhdG9yKHJldmVyc2VfaXRlcmF0b3IgaXRlcmF0b3IpCitEZWNv
ZGVPcmRlclNhbXBsZU1hcDo6cmV2ZXJzZV9pdGVyYXRvciBEZWNvZGVPcmRlclNhbXBsZU1hcDo6
ZmluZFN5bmNTYW1wbGVQcmlvclRvRGVjb2RlSXRlcmF0b3IocmV2ZXJzZV9pdGVyYXRvciBpdGVy
YXRvcikKIHsKLSAgICByZXR1cm4gc3RkOjpmaW5kX2lmKGl0ZXJhdG9yLCByZXZlcnNlRGVjb2Rl
RW5kKCksIFNhbXBsZUlzUmFuZG9tQWNjZXNzKCkpOworICAgIHJldHVybiBzdGQ6OmZpbmRfaWYo
aXRlcmF0b3IsIHJlbmQoKSwgU2FtcGxlSXNSYW5kb21BY2Nlc3MoKSk7CiB9CiAKLVNhbXBsZU1h
cDo6aXRlcmF0b3IgU2FtcGxlTWFwOjpmaW5kU3luY1NhbXBsZUFmdGVyUHJlc2VudGF0aW9uVGlt
ZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0IE1lZGlhVGltZSYgdGhyZXNob2xkKQorRGVj
b2RlT3JkZXJTYW1wbGVNYXA6Oml0ZXJhdG9yIERlY29kZU9yZGVyU2FtcGxlTWFwOjpmaW5kU3lu
Y1NhbXBsZUFmdGVyUHJlc2VudGF0aW9uVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUsIGNvbnN0
IE1lZGlhVGltZSYgdGhyZXNob2xkKQogewotICAgIGl0ZXJhdG9yIGN1cnJlbnRTYW1wbGVQVFMg
PSBmaW5kU2FtcGxlQWZ0ZXJQcmVzZW50YXRpb25UaW1lKHRpbWUpOwotICAgIGlmIChjdXJyZW50
U2FtcGxlUFRTID09IHByZXNlbnRhdGlvbkVuZCgpKQotICAgICAgICByZXR1cm4gZGVjb2RlRW5k
KCk7CisgICAgUHJlc2VudGF0aW9uT3JkZXJTYW1wbGVNYXA6Oml0ZXJhdG9yIGN1cnJlbnRTYW1w
bGVQVFMgPSBtX3ByZXNlbnRhdGlvbk9yZGVyLmZpbmRTYW1wbGVBZnRlclByZXNlbnRhdGlvblRp
bWUodGltZSk7CisgICAgaWYgKGN1cnJlbnRTYW1wbGVQVFMgPT0gbV9wcmVzZW50YXRpb25PcmRl
ci5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGVuZCgpOwogCiAgICAgaXRlcmF0b3IgY3VycmVudFNh
bXBsZURUUyA9IGZpbmRTYW1wbGVXaXRoRGVjb2RlVGltZShjdXJyZW50U2FtcGxlUFRTLT5zZWNv
bmQtPmRlY29kZVRpbWUoKSk7CiAgICAgCiAgICAgTWVkaWFUaW1lIHVwcGVyQm91bmQgPSB0aW1l
ICsgdGhyZXNob2xkOwotICAgIGl0ZXJhdG9yIGZvdW5kU2FtcGxlID0gc3RkOjpmaW5kX2lmKGN1
cnJlbnRTYW1wbGVEVFMsIGRlY29kZUVuZCgpLCBTYW1wbGVJc1JhbmRvbUFjY2VzcygpKTsKLSAg
ICBpZiAoZm91bmRTYW1wbGUgPT0gZGVjb2RlRW5kKCkpCi0gICAgICAgIHJldHVybiBkZWNvZGVF
bmQoKTsKKyAgICBpdGVyYXRvciBmb3VuZFNhbXBsZSA9IHN0ZDo6ZmluZF9pZihjdXJyZW50U2Ft
cGxlRFRTLCBlbmQoKSwgU2FtcGxlSXNSYW5kb21BY2Nlc3MoKSk7CisgICAgaWYgKGZvdW5kU2Ft
cGxlID09IGVuZCgpKQorICAgICAgICByZXR1cm4gZW5kKCk7CiAgICAgaWYgKGZvdW5kU2FtcGxl
LT5zZWNvbmQtPnByZXNlbnRhdGlvblRpbWUoKSA+IHVwcGVyQm91bmQpCi0gICAgICAgIHJldHVy
biBkZWNvZGVFbmQoKTsKKyAgICAgICAgcmV0dXJuIGVuZCgpOwogICAgIHJldHVybiBmb3VuZFNh
bXBsZTsKIH0KIAotU2FtcGxlTWFwOjppdGVyYXRvciBTYW1wbGVNYXA6OmZpbmRTeW5jU2FtcGxl
QWZ0ZXJEZWNvZGVJdGVyYXRvcihpdGVyYXRvciBjdXJyZW50U2FtcGxlRFRTKQorRGVjb2RlT3Jk
ZXJTYW1wbGVNYXA6Oml0ZXJhdG9yIERlY29kZU9yZGVyU2FtcGxlTWFwOjpmaW5kU3luY1NhbXBs
ZUFmdGVyRGVjb2RlSXRlcmF0b3IoaXRlcmF0b3IgY3VycmVudFNhbXBsZURUUykKIHsKLSAgICBy
ZXR1cm4gc3RkOjpmaW5kX2lmKGN1cnJlbnRTYW1wbGVEVFMsIGRlY29kZUVuZCgpLCBTYW1wbGVJ
c1JhbmRvbUFjY2VzcygpKTsKKyAgICByZXR1cm4gc3RkOjpmaW5kX2lmKGN1cnJlbnRTYW1wbGVE
VFMsIGVuZCgpLCBTYW1wbGVJc1JhbmRvbUFjY2VzcygpKTsKIH0KIAotU2FtcGxlTWFwOjppdGVy
YXRvcl9yYW5nZSBTYW1wbGVNYXA6OmZpbmRTYW1wbGVzQmV0d2VlblByZXNlbnRhdGlvblRpbWVz
KGNvbnN0IE1lZGlhVGltZSYgYmVnaW4sIGNvbnN0IE1lZGlhVGltZSYgZW5kKQorUHJlc2VudGF0
aW9uT3JkZXJTYW1wbGVNYXA6Oml0ZXJhdG9yX3JhbmdlIFByZXNlbnRhdGlvbk9yZGVyU2FtcGxl
TWFwOjpmaW5kU2FtcGxlc0JldHdlZW5QcmVzZW50YXRpb25UaW1lcyhjb25zdCBNZWRpYVRpbWUm
IGJlZ2luVGltZSwgY29uc3QgTWVkaWFUaW1lJiBlbmRUaW1lKQogewotICAgIHN0ZDo6cGFpcjxN
ZWRpYVRpbWUsIE1lZGlhVGltZT4gcmFuZ2UoYmVnaW4sIGVuZCk7Ci0gICAgcmV0dXJuIHN0ZDo6
ZXF1YWxfcmFuZ2UocHJlc2VudGF0aW9uQmVnaW4oKSwgcHJlc2VudGF0aW9uRW5kKCksIHJhbmdl
LCBTYW1wbGVQcmVzZW50YXRpb25UaW1lSXNJbnNpZGVSYW5nZUNvbXBhcmF0b3IoKSk7CisgICAg
c3RkOjpwYWlyPE1lZGlhVGltZSwgTWVkaWFUaW1lPiByYW5nZShiZWdpblRpbWUsIGVuZFRpbWUp
OworICAgIHJldHVybiBzdGQ6OmVxdWFsX3JhbmdlKGJlZ2luKCksIGVuZCgpLCByYW5nZSwgU2Ft
cGxlUHJlc2VudGF0aW9uVGltZUlzSW5zaWRlUmFuZ2VDb21wYXJhdG9yKCkpOwogfQogCi1TYW1w
bGVNYXA6Oml0ZXJhdG9yX3JhbmdlIFNhbXBsZU1hcDo6ZmluZFNhbXBsZXNXaXRoaW5QcmVzZW50
YXRpb25SYW5nZShjb25zdCBNZWRpYVRpbWUmIGJlZ2luLCBjb25zdCBNZWRpYVRpbWUmIGVuZCkK
K1ByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwOjppdGVyYXRvcl9yYW5nZSBQcmVzZW50YXRpb25P
cmRlclNhbXBsZU1hcDo6ZmluZFNhbXBsZXNXaXRoaW5QcmVzZW50YXRpb25SYW5nZShjb25zdCBN
ZWRpYVRpbWUmIGJlZ2luVGltZSwgY29uc3QgTWVkaWFUaW1lJiBlbmRUaW1lKQogewotICAgIHN0
ZDo6cGFpcjxNZWRpYVRpbWUsIE1lZGlhVGltZT4gcmFuZ2UoYmVnaW4sIGVuZCk7Ci0gICAgcmV0
dXJuIHN0ZDo6ZXF1YWxfcmFuZ2UocHJlc2VudGF0aW9uQmVnaW4oKSwgcHJlc2VudGF0aW9uRW5k
KCksIHJhbmdlLCBTYW1wbGVQcmVzZW50YXRpb25UaW1lSXNXaXRoaW5SYW5nZUNvbXBhcmF0b3Io
KSk7CisgICAgc3RkOjpwYWlyPE1lZGlhVGltZSwgTWVkaWFUaW1lPiByYW5nZShiZWdpblRpbWUs
IGVuZFRpbWUpOworICAgIHJldHVybiBzdGQ6OmVxdWFsX3JhbmdlKGJlZ2luKCksIGVuZCgpLCBy
YW5nZSwgU2FtcGxlUHJlc2VudGF0aW9uVGltZUlzV2l0aGluUmFuZ2VDb21wYXJhdG9yKCkpOwog
fQogCi1TYW1wbGVNYXA6OnJldmVyc2VfaXRlcmF0b3JfcmFuZ2UgU2FtcGxlTWFwOjpmaW5kRGVw
ZW5kZW50U2FtcGxlcyhNZWRpYVNhbXBsZSogc2FtcGxlKQorRGVjb2RlT3JkZXJTYW1wbGVNYXA6
OnJldmVyc2VfaXRlcmF0b3JfcmFuZ2UgRGVjb2RlT3JkZXJTYW1wbGVNYXA6OmZpbmREZXBlbmRl
bnRTYW1wbGVzKE1lZGlhU2FtcGxlKiBzYW1wbGUpCiB7CiAgICAgQVNTRVJUKHNhbXBsZSk7CiAg
ICAgcmV2ZXJzZV9pdGVyYXRvciBjdXJyZW50RGVjb2RlSXRlciA9IHJldmVyc2VGaW5kU2FtcGxl
V2l0aERlY29kZVRpbWUoc2FtcGxlLT5kZWNvZGVUaW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9TYW1wbGVNYXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvU2FtcGxlTWFwLmgKaW5kZXggMjkwY2UyZDNiZDNjZDYxYjBi
NGIwNDk1OGRkNjRiZTFlNzk3YTMxMy4uNTEzMTIzMjIxM2U0ZDczNWU4ZjNmZDk2OGY4YjI4NjNk
OTlhYjgxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9T
YW1wbGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NhbXBs
ZU1hcC5oCkBAIC0yOSwyMSArMjksNjYgQEAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQogCiAj
aW5jbHVkZSA8bWFwPgotI2luY2x1ZGUgPHd0Zi9NZWRpYVRpbWUuaD4KKyNpbmNsdWRlIDx3dGYv
TWVkaWFUaW1lSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBNZWRpYVNhbXBsZTsKK2NsYXNzIFNhbXBsZU1hcDsKIAotY2xhc3Mg
U2FtcGxlTWFwIHsKK2NsYXNzIFByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwIHsKKyAgICBmcmll
bmQgY2xhc3MgU2FtcGxlTWFwOwogcHVibGljOgogICAgIHR5cGVkZWYgc3RkOjptYXA8TWVkaWFU
aW1lLCBSZWZQdHI8TWVkaWFTYW1wbGU+PiBNYXBUeXBlOwogICAgIHR5cGVkZWYgTWFwVHlwZTo6
aXRlcmF0b3IgaXRlcmF0b3I7CiAgICAgdHlwZWRlZiBNYXBUeXBlOjpyZXZlcnNlX2l0ZXJhdG9y
IHJldmVyc2VfaXRlcmF0b3I7CiAgICAgdHlwZWRlZiBzdGQ6OnBhaXI8aXRlcmF0b3IsIGl0ZXJh
dG9yPiBpdGVyYXRvcl9yYW5nZTsKKworICAgIGl0ZXJhdG9yIGJlZ2luKCkgeyByZXR1cm4gbV9z
YW1wbGVzLmJlZ2luKCk7IH0KKyAgICBpdGVyYXRvciBlbmQoKSB7IHJldHVybiBtX3NhbXBsZXMu
ZW5kKCk7IH0KKyAgICByZXZlcnNlX2l0ZXJhdG9yIHJiZWdpbigpIHsgcmV0dXJuIG1fc2FtcGxl
cy5yYmVnaW4oKTsgfQorICAgIHJldmVyc2VfaXRlcmF0b3IgcmVuZCgpIHsgcmV0dXJuIG1fc2Ft
cGxlcy5yZW5kKCk7IH0KKworICAgIGl0ZXJhdG9yIGZpbmRTYW1wbGVDb250YWluaW5nUHJlc2Vu
dGF0aW9uVGltZShjb25zdCBNZWRpYVRpbWUmKTsKKyAgICBpdGVyYXRvciBmaW5kU2FtcGxlQWZ0
ZXJQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYpOworICAgIHJldmVyc2VfaXRlcmF0
b3IgcmV2ZXJzZUZpbmRTYW1wbGVDb250YWluaW5nUHJlc2VudGF0aW9uVGltZShjb25zdCBNZWRp
YVRpbWUmKTsKKyAgICByZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VGaW5kU2FtcGxlQmVmb3JlUHJl
c2VudGF0aW9uVGltZShjb25zdCBNZWRpYVRpbWUmKTsKKyAgICBpdGVyYXRvcl9yYW5nZSBmaW5k
U2FtcGxlc0JldHdlZW5QcmVzZW50YXRpb25UaW1lcyhjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBN
ZWRpYVRpbWUmKTsKKyAgICBpdGVyYXRvcl9yYW5nZSBmaW5kU2FtcGxlc1dpdGhpblByZXNlbnRh
dGlvblJhbmdlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IE1lZGlhVGltZSYpOworCitwcml2YXRl
OgorICAgIE1hcFR5cGUgbV9zYW1wbGVzOworfTsKKworY2xhc3MgRGVjb2RlT3JkZXJTYW1wbGVN
YXAgeworICAgIGZyaWVuZCBjbGFzcyBTYW1wbGVNYXA7CitwdWJsaWM6CisgICAgdHlwZWRlZiBz
dGQ6Om1hcDxNZWRpYVRpbWUsIFJlZlB0cjxNZWRpYVNhbXBsZT4+IE1hcFR5cGU7CisgICAgdHlw
ZWRlZiBNYXBUeXBlOjppdGVyYXRvciBpdGVyYXRvcjsKKyAgICB0eXBlZGVmIE1hcFR5cGU6OnJl
dmVyc2VfaXRlcmF0b3IgcmV2ZXJzZV9pdGVyYXRvcjsKICAgICB0eXBlZGVmIHN0ZDo6cGFpcjxy
ZXZlcnNlX2l0ZXJhdG9yLCByZXZlcnNlX2l0ZXJhdG9yPiByZXZlcnNlX2l0ZXJhdG9yX3Jhbmdl
OwogCisgICAgaXRlcmF0b3IgYmVnaW4oKSB7IHJldHVybiBtX3NhbXBsZXMuYmVnaW4oKTsgfQor
ICAgIGl0ZXJhdG9yIGVuZCgpIHsgcmV0dXJuIG1fc2FtcGxlcy5lbmQoKTsgfQorICAgIHJldmVy
c2VfaXRlcmF0b3IgcmJlZ2luKCkgeyByZXR1cm4gbV9zYW1wbGVzLnJiZWdpbigpOyB9CisgICAg
cmV2ZXJzZV9pdGVyYXRvciByZW5kKCkgeyByZXR1cm4gbV9zYW1wbGVzLnJlbmQoKTsgfQorCisg
ICAgaXRlcmF0b3IgZmluZFNhbXBsZVdpdGhEZWNvZGVUaW1lKGNvbnN0IE1lZGlhVGltZSYpOwor
ICAgIHJldmVyc2VfaXRlcmF0b3IgcmV2ZXJzZUZpbmRTYW1wbGVXaXRoRGVjb2RlVGltZShjb25z
dCBNZWRpYVRpbWUmKTsKKyAgICByZXZlcnNlX2l0ZXJhdG9yIGZpbmRTeW5jU2FtcGxlUHJpb3JU
b1ByZXNlbnRhdGlvblRpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiB0aHJl
c2hvbGQgPSBNZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpOworICAgIHJldmVyc2Vf
aXRlcmF0b3IgZmluZFN5bmNTYW1wbGVQcmlvclRvRGVjb2RlSXRlcmF0b3IocmV2ZXJzZV9pdGVy
YXRvcik7CisgICAgaXRlcmF0b3IgZmluZFN5bmNTYW1wbGVBZnRlclByZXNlbnRhdGlvblRpbWUo
Y29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiB0aHJlc2hvbGQgPSBNZWRpYVRpbWU6
OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpOworICAgIGl0ZXJhdG9yIGZpbmRTeW5jU2FtcGxlQWZ0
ZXJEZWNvZGVJdGVyYXRvcihpdGVyYXRvcik7CisgICAgcmV2ZXJzZV9pdGVyYXRvcl9yYW5nZSBm
aW5kRGVwZW5kZW50U2FtcGxlcyhNZWRpYVNhbXBsZSopOworCitwcml2YXRlOgorICAgIE1hcFR5
cGUgbV9zYW1wbGVzOworICAgIFByZXNlbnRhdGlvbk9yZGVyU2FtcGxlTWFwIG1fcHJlc2VudGF0
aW9uT3JkZXI7Cit9OworCitjbGFzcyBTYW1wbGVNYXAgeworcHVibGljOgogICAgIFNhbXBsZU1h
cCgpCiAgICAgICAgIDogbV90b3RhbFNpemUoMCkKICAgICB7CkBAIC01NCwzMyArOTksMTEgQEAg
cHVibGljOgogICAgIHZvaWQgcmVtb3ZlU2FtcGxlKE1lZGlhU2FtcGxlKik7CiAgICAgc2l6ZV90
IHNpemVJbkJ5dGVzKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbFNpemU7IH0KIAotICAgIGl0ZXJh
dG9yIHByZXNlbnRhdGlvbkJlZ2luKCkgeyByZXR1cm4gbV9wcmVzZW50YXRpb25TYW1wbGVzLmJl
Z2luKCk7IH0KLSAgICBpdGVyYXRvciBwcmVzZW50YXRpb25FbmQoKSB7IHJldHVybiBtX3ByZXNl
bnRhdGlvblNhbXBsZXMuZW5kKCk7IH0KLSAgICBpdGVyYXRvciBkZWNvZGVCZWdpbigpIHsgcmV0
dXJuIG1fZGVjb2RlU2FtcGxlcy5iZWdpbigpOyB9Ci0gICAgaXRlcmF0b3IgZGVjb2RlRW5kKCkg
eyByZXR1cm4gbV9kZWNvZGVTYW1wbGVzLmVuZCgpOyB9Ci0gICAgcmV2ZXJzZV9pdGVyYXRvciBy
ZXZlcnNlUHJlc2VudGF0aW9uQmVnaW4oKSB7IHJldHVybiBtX3ByZXNlbnRhdGlvblNhbXBsZXMu
cmJlZ2luKCk7IH0KLSAgICByZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VQcmVzZW50YXRpb25FbmQo
KSB7IHJldHVybiBtX3ByZXNlbnRhdGlvblNhbXBsZXMucmVuZCgpOyB9Ci0gICAgcmV2ZXJzZV9p
dGVyYXRvciByZXZlcnNlRGVjb2RlQmVnaW4oKSB7IHJldHVybiBtX2RlY29kZVNhbXBsZXMucmJl
Z2luKCk7IH0KLSAgICByZXZlcnNlX2l0ZXJhdG9yIHJldmVyc2VEZWNvZGVFbmQoKSB7IHJldHVy
biBtX2RlY29kZVNhbXBsZXMucmVuZCgpOyB9Ci0KLSAgICBpdGVyYXRvciBmaW5kU2FtcGxlQ29u
dGFpbmluZ1ByZXNlbnRhdGlvblRpbWUoY29uc3QgTWVkaWFUaW1lJik7Ci0gICAgaXRlcmF0b3Ig
ZmluZFNhbXBsZUFmdGVyUHJlc2VudGF0aW9uVGltZShjb25zdCBNZWRpYVRpbWUmKTsKLSAgICBp
dGVyYXRvciBmaW5kU2FtcGxlV2l0aERlY29kZVRpbWUoY29uc3QgTWVkaWFUaW1lJik7Ci0gICAg
cmV2ZXJzZV9pdGVyYXRvciByZXZlcnNlRmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25U
aW1lKGNvbnN0IE1lZGlhVGltZSYpOwotICAgIHJldmVyc2VfaXRlcmF0b3IgcmV2ZXJzZUZpbmRT
YW1wbGVCZWZvcmVQcmVzZW50YXRpb25UaW1lKGNvbnN0IE1lZGlhVGltZSYpOwotICAgIHJldmVy
c2VfaXRlcmF0b3IgcmV2ZXJzZUZpbmRTYW1wbGVXaXRoRGVjb2RlVGltZShjb25zdCBNZWRpYVRp
bWUmKTsKLSAgICByZXZlcnNlX2l0ZXJhdG9yIGZpbmRTeW5jU2FtcGxlUHJpb3JUb1ByZXNlbnRh
dGlvblRpbWUoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiB0aHJlc2hvbGQgPSBN
ZWRpYVRpbWU6OnBvc2l0aXZlSW5maW5pdGVUaW1lKCkpOwotICAgIHJldmVyc2VfaXRlcmF0b3Ig
ZmluZFN5bmNTYW1wbGVQcmlvclRvRGVjb2RlSXRlcmF0b3IocmV2ZXJzZV9pdGVyYXRvcik7Ci0g
ICAgaXRlcmF0b3IgZmluZFN5bmNTYW1wbGVBZnRlclByZXNlbnRhdGlvblRpbWUoY29uc3QgTWVk
aWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJiB0aHJlc2hvbGQgPSBNZWRpYVRpbWU6OnBvc2l0aXZl
SW5maW5pdGVUaW1lKCkpOwotICAgIGl0ZXJhdG9yIGZpbmRTeW5jU2FtcGxlQWZ0ZXJEZWNvZGVJ
dGVyYXRvcihpdGVyYXRvcik7CisgICAgRGVjb2RlT3JkZXJTYW1wbGVNYXAmIGRlY29kZU9yZGVy
KCkgeyByZXR1cm4gbV9kZWNvZGVPcmRlcjsgfQorICAgIFByZXNlbnRhdGlvbk9yZGVyU2FtcGxl
TWFwJiBwcmVzZW50YXRpb25PcmRlcigpIHsgcmV0dXJuIG1fZGVjb2RlT3JkZXIubV9wcmVzZW50
YXRpb25PcmRlcjsgfQogCi0gICAgaXRlcmF0b3JfcmFuZ2UgZmluZFNhbXBsZXNCZXR3ZWVuUHJl
c2VudGF0aW9uVGltZXMoY29uc3QgTWVkaWFUaW1lJiwgY29uc3QgTWVkaWFUaW1lJik7Ci0gICAg
aXRlcmF0b3JfcmFuZ2UgZmluZFNhbXBsZXNXaXRoaW5QcmVzZW50YXRpb25SYW5nZShjb25zdCBN
ZWRpYVRpbWUmLCBjb25zdCBNZWRpYVRpbWUmKTsKLSAgICByZXZlcnNlX2l0ZXJhdG9yX3Jhbmdl
IGZpbmREZXBlbmRlbnRTYW1wbGVzKE1lZGlhU2FtcGxlKik7Ci0gICAgCiBwcml2YXRlOgotICAg
IE1hcFR5cGUgbV9wcmVzZW50YXRpb25TYW1wbGVzOwotICAgIE1hcFR5cGUgbV9kZWNvZGVTYW1w
bGVzOworICAgIERlY29kZU9yZGVyU2FtcGxlTWFwIG1fZGVjb2RlT3JkZXI7CiAgICAgc2l6ZV90
IG1fdG90YWxTaXplOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IGYwMTg0YjljNzllNTllMTU1NDljZWYwNmUw
YjQwZmZhM2Q2ZTgyZmMuLmY1ZjNkMzJhODJkNmU1YzdjYTY2YjcyNDMzM2FhZjI1ZjQxNmE2MDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVm
ZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1
ZmZlci5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgc3RydWN0IFNvdXJjZUJ1ZmZlcjo6VHJhY2tCdWZm
ZXIgewogICAgIGJvb2wgbmVlZFJhbmRvbUFjY2Vzc0ZsYWc7CiAgICAgYm9vbCBlbmFibGVkOwog
ICAgIFNhbXBsZU1hcCBzYW1wbGVzOwotICAgIFNhbXBsZU1hcDo6TWFwVHlwZSBkZWNvZGVRdWV1
ZTsKKyAgICBEZWNvZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZSBkZWNvZGVRdWV1ZTsKICAgICBS
ZWZQdHI8TWVkaWFEZXNjcmlwdGlvbj4gZGVzY3JpcHRpb247CiAKICAgICBUcmFja0J1ZmZlcigp
CkBAIC0zMTYsOSArMzE2LDkgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZh
dGVTZWVrVG9UaW1lKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBjb25zdCBNZWQKICAgICAgICAgQXRv
bWljU3RyaW5nIHRyYWNrSUQgPSB0cmFja0J1ZmZlckl0ZXJhdG9yLT5rZXk7CiAKICAgICAgICAg
Ly8gRmluZCB0aGUgc2FtcGxlIHdoaWNoIGNvbnRhaW5zIHRoZSBjdXJyZW50IHByZXNlbnRhdGlv
biB0aW1lLgotICAgICAgICBhdXRvIGN1cnJlbnRTYW1wbGVQVFNJdGVyYXRvciA9IHRyYWNrQnVm
ZmVyLnNhbXBsZXMuZmluZFNhbXBsZUNvbnRhaW5pbmdQcmVzZW50YXRpb25UaW1lKHRpbWUpOwor
ICAgICAgICBhdXRvIGN1cnJlbnRTYW1wbGVQVFNJdGVyYXRvciA9IHRyYWNrQnVmZmVyLnNhbXBs
ZXMucHJlc2VudGF0aW9uT3JkZXIoKS5maW5kU2FtcGxlQ29udGFpbmluZ1ByZXNlbnRhdGlvblRp
bWUodGltZSk7CiAKLSAgICAgICAgaWYgKGN1cnJlbnRTYW1wbGVQVFNJdGVyYXRvciA9PSB0cmFj
a0J1ZmZlci5zYW1wbGVzLnByZXNlbnRhdGlvbkVuZCgpKSB7CisgICAgICAgIGlmIChjdXJyZW50
U2FtcGxlUFRTSXRlcmF0b3IgPT0gdHJhY2tCdWZmZXIuc2FtcGxlcy5wcmVzZW50YXRpb25PcmRl
cigpLmVuZCgpKSB7CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5jbGVhcigp
OwogICAgICAgICAgICAgbV9wcml2YXRlLT5mbHVzaEFuZEVucXVldWVOb25EaXNwbGF5aW5nU2Ft
cGxlcyhWZWN0b3I8UmVmUHRyPE1lZGlhU2FtcGxlPj4oKSwgdHJhY2tJRCk7CiAgICAgICAgICAg
ICBjb250aW51ZTsKQEAgLTMyNiwxMiArMzI2LDEyIEBAIHZvaWQgU291cmNlQnVmZmVyOjpzb3Vy
Y2VCdWZmZXJQcml2YXRlU2Vla1RvVGltZShTb3VyY2VCdWZmZXJQcml2YXRlKiwgY29uc3QgTWVk
CiAKICAgICAgICAgLy8gU2VhY2ggYmFja3dhcmQgZm9yIHRoZSBwcmV2aW91cyBzeW5jIHNhbXBs
ZS4KICAgICAgICAgTWVkaWFUaW1lIGN1cnJlbnRTYW1wbGVEZWNvZGVUaW1lID0gY3VycmVudFNh
bXBsZVBUU0l0ZXJhdG9yLT5zZWNvbmQtPmRlY29kZVRpbWUoKTsKLSAgICAgICAgYXV0byBjdXJy
ZW50U2FtcGxlRFRTSXRlcmF0b3IgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmZpbmRTYW1wbGVXaXRo
RGVjb2RlVGltZShjdXJyZW50U2FtcGxlRGVjb2RlVGltZSk7Ci0gICAgICAgIEFTU0VSVChjdXJy
ZW50U2FtcGxlRFRTSXRlcmF0b3IgIT0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVFbmQoKSk7
CisgICAgICAgIGF1dG8gY3VycmVudFNhbXBsZURUU0l0ZXJhdG9yID0gdHJhY2tCdWZmZXIuc2Ft
cGxlcy5kZWNvZGVPcmRlcigpLmZpbmRTYW1wbGVXaXRoRGVjb2RlVGltZShjdXJyZW50U2FtcGxl
RGVjb2RlVGltZSk7CisgICAgICAgIEFTU0VSVChjdXJyZW50U2FtcGxlRFRTSXRlcmF0b3IgIT0g
dHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRlcigpLmVuZCgpKTsKIAotICAgICAgICBhdXRv
IHJldmVyc2VDdXJyZW50U2FtcGxlSXRlciA9IC0tU2FtcGxlTWFwOjpyZXZlcnNlX2l0ZXJhdG9y
KGN1cnJlbnRTYW1wbGVEVFNJdGVyYXRvcik7Ci0gICAgICAgIGF1dG8gcmV2ZXJzZUxhc3RTeW5j
U2FtcGxlSXRlciA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZmluZFN5bmNTYW1wbGVQcmlvclRvRGVj
b2RlSXRlcmF0b3IocmV2ZXJzZUN1cnJlbnRTYW1wbGVJdGVyKTsKLSAgICAgICAgaWYgKHJldmVy
c2VMYXN0U3luY1NhbXBsZUl0ZXIgPT0gdHJhY2tCdWZmZXIuc2FtcGxlcy5yZXZlcnNlRGVjb2Rl
RW5kKCkpIHsKKyAgICAgICAgYXV0byByZXZlcnNlQ3VycmVudFNhbXBsZUl0ZXIgPSAtLURlY29k
ZU9yZGVyU2FtcGxlTWFwOjpyZXZlcnNlX2l0ZXJhdG9yKGN1cnJlbnRTYW1wbGVEVFNJdGVyYXRv
cik7CisgICAgICAgIGF1dG8gcmV2ZXJzZUxhc3RTeW5jU2FtcGxlSXRlciA9IHRyYWNrQnVmZmVy
LnNhbXBsZXMuZGVjb2RlT3JkZXIoKS5maW5kU3luY1NhbXBsZVByaW9yVG9EZWNvZGVJdGVyYXRv
cihyZXZlcnNlQ3VycmVudFNhbXBsZUl0ZXIpOworICAgICAgICBpZiAocmV2ZXJzZUxhc3RTeW5j
U2FtcGxlSXRlciA9PSB0cmFja0J1ZmZlci5zYW1wbGVzLmRlY29kZU9yZGVyKCkucmVuZCgpKSB7
CiAgICAgICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5jbGVhcigpOwogICAgICAgICAg
ICAgbV9wcml2YXRlLT5mbHVzaEFuZEVucXVldWVOb25EaXNwbGF5aW5nU2FtcGxlcyhWZWN0b3I8
UmVmUHRyPE1lZGlhU2FtcGxlPj4oKSwgdHJhY2tJRCk7CiAgICAgICAgICAgICBjb250aW51ZTsK
QEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVmZmVyUHJpdmF0
ZVNlZWtUb1RpbWUoU291cmNlQnVmZmVyUHJpdmF0ZSosIGNvbnN0IE1lZAogCiAgICAgICAgIC8v
IEZpbGwgdGhlIGRlY29kZSBxdWV1ZSB3aXRoIHRoZSByZW1haW5pbmcgc2FtcGxlcy4KICAgICAg
ICAgdHJhY2tCdWZmZXIuZGVjb2RlUXVldWUuY2xlYXIoKTsKLSAgICAgICAgZm9yIChhdXRvIGl0
ZXIgPSBjdXJyZW50U2FtcGxlRFRTSXRlcmF0b3I7IGl0ZXIgIT0gdHJhY2tCdWZmZXIuc2FtcGxl
cy5kZWNvZGVFbmQoKTsgKytpdGVyKQorICAgICAgICBmb3IgKGF1dG8gaXRlciA9IGN1cnJlbnRT
YW1wbGVEVFNJdGVyYXRvcjsgaXRlciAhPSB0cmFja0J1ZmZlci5zYW1wbGVzLmRlY29kZU9yZGVy
KCkuZW5kKCk7ICsraXRlcikKICAgICAgICAgICAgIHRyYWNrQnVmZmVyLmRlY29kZVF1ZXVlLmlu
c2VydCgqaXRlcik7CiAKICAgICAgICAgcHJvdmlkZU1lZGlhRGF0YSh0cmFja0J1ZmZlciwgdHJh
Y2tJRCk7CkBAIC0zNjQsMTAgKzM2NCwxMCBAQCBNZWRpYVRpbWUgU291cmNlQnVmZmVyOjpzb3Vy
Y2VCdWZmZXJQcml2YXRlRmFzdFNlZWtUaW1lRm9yTWVkaWFUaW1lKFNvdXJjZUJ1ZmZlcgogICAg
ICAgICBUcmFja0J1ZmZlciYgdHJhY2tCdWZmZXIgPSB0cmFja0J1ZmZlckl0ZXJhdG9yLT52YWx1
ZTsKIAogICAgICAgICAvLyBGaW5kIHRoZSBzYW1wbGUgd2hpY2ggY29udGFpbnMgdGhlIHRhcmdl
dCB0aW1lIHRpbWUuCi0gICAgICAgIGF1dG8gZnV0dXJlU3luY1NhbXBsZUl0ZXJhdG9yID0gdHJh
Y2tCdWZmZXIuc2FtcGxlcy5maW5kU3luY1NhbXBsZUFmdGVyUHJlc2VudGF0aW9uVGltZSh0YXJn
ZXRUaW1lLCBwb3NpdGl2ZVRocmVzaG9sZCk7Ci0gICAgICAgIGF1dG8gcGFzdFN5bmNTYW1wbGVJ
dGVyYXRvciA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZmluZFN5bmNTYW1wbGVQcmlvclRvUHJlc2Vu
dGF0aW9uVGltZSh0YXJnZXRUaW1lLCBuZWdhdGl2ZVRocmVzaG9sZCk7Ci0gICAgICAgIGF1dG8g
dXBwZXJCb3VuZCA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlRW5kKCk7Ci0gICAgICAgIGF1
dG8gbG93ZXJCb3VuZCA9IHRyYWNrQnVmZmVyLnNhbXBsZXMucmV2ZXJzZURlY29kZUVuZCgpOwor
ICAgICAgICBhdXRvIGZ1dHVyZVN5bmNTYW1wbGVJdGVyYXRvciA9IHRyYWNrQnVmZmVyLnNhbXBs
ZXMuZGVjb2RlT3JkZXIoKS5maW5kU3luY1NhbXBsZUFmdGVyUHJlc2VudGF0aW9uVGltZSh0YXJn
ZXRUaW1lLCBwb3NpdGl2ZVRocmVzaG9sZCk7CisgICAgICAgIGF1dG8gcGFzdFN5bmNTYW1wbGVJ
dGVyYXRvciA9IHRyYWNrQnVmZmVyLnNhbXBsZXMuZGVjb2RlT3JkZXIoKS5maW5kU3luY1NhbXBs
ZVByaW9yVG9QcmVzZW50YXRpb25UaW1lKHRhcmdldFRpbWUsIG5lZ2F0aXZlVGhyZXNob2xkKTsK
KyAgICAgICAgYXV0byB1cHBlckJvdW5kID0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRl
cigpLmVuZCgpOworICAgICAgICBhdXRvIGxvd2VyQm91bmQgPSB0cmFja0J1ZmZlci5zYW1wbGVz
LmRlY29kZU9yZGVyKCkucmVuZCgpOwogCiAgICAgICAgIGlmIChmdXR1cmVTeW5jU2FtcGxlSXRl
cmF0b3IgPT0gdXBwZXJCb3VuZCAmJiBwYXN0U3luY1NhbXBsZUl0ZXJhdG9yID09IGxvd2VyQm91
bmQpCiAgICAgICAgICAgICBjb250aW51ZTsKQEAgLTU2MiwxNiArNTYyLDE2IEBAIHZvaWQgU291
cmNlQnVmZmVyOjpyZW1vdmVDb2RlZEZyYW1lcyhjb25zdCBNZWRpYVRpbWUmIHN0YXJ0LCBjb25z
dCBNZWRpYVRpbWUmIGVuCiAgICAgICAgIC8vIDMuMiBJZiB0aGlzIHRyYWNrIGJ1ZmZlciBoYXMg
YSByYW5kb20gYWNjZXNzIHBvaW50IHRpbWVzdGFtcCB0aGF0IGlzIGdyZWF0ZXIgdGhhbiBvciBl
cXVhbCB0byBlbmQsIHRoZW4gdXBkYXRlCiAgICAgICAgIC8vIHJlbW92ZSBlbmQgdGltZXN0YW1w
IHRvIHRoYXQgcmFuZG9tIGFjY2VzcyBwb2ludCB0aW1lc3RhbXAuCiAgICAgICAgIC8vIE5PVEU6
IGZpbmRTeW5jU2FtcGxlQWZ0ZXJQcmVzZW50YXRpb25UaW1lIHdpbGwgcmV0dXJuIHRoZSBuZXh0
IHN5bmMgc2FtcGxlIG9uIG9yIGFmdGVyIHRoZSBwcmVzZW50YXRpb24gdGltZQotICAgICAgICAv
LyBvciBkZWNvZGVFbmQoKSBpZiBubyBzeW5jIHNhbXBsZSBleGlzdHMgYWZ0ZXIgdGhhdCBwcmVz
ZW50YXRpb24gdGltZS4KLSAgICAgICAgU2FtcGxlTWFwOjppdGVyYXRvciByZW1vdmVEZWNvZGVF
bmQgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmZpbmRTeW5jU2FtcGxlQWZ0ZXJQcmVzZW50YXRpb25U
aW1lKGVuZCk7CisgICAgICAgIC8vIG9yIGRlY29kZU9yZGVyKCkuZW5kKCkgaWYgbm8gc3luYyBz
YW1wbGUgZXhpc3RzIGFmdGVyIHRoYXQgcHJlc2VudGF0aW9uIHRpbWUuCisgICAgICAgIERlY29k
ZU9yZGVyU2FtcGxlTWFwOjppdGVyYXRvciByZW1vdmVEZWNvZGVFbmQgPSB0cmFja0J1ZmZlci5z
YW1wbGVzLmRlY29kZU9yZGVyKCkuZmluZFN5bmNTYW1wbGVBZnRlclByZXNlbnRhdGlvblRpbWUo
ZW5kKTsKIAogICAgICAgICAvLyAzLjMgUmVtb3ZlIGFsbCBtZWRpYSBkYXRhLCBmcm9tIHRoaXMg
dHJhY2sgYnVmZmVyLCB0aGF0IGNvbnRhaW4gc3RhcnRpbmcgdGltZXN0YW1wcyBncmVhdGVyIHRo
YW4gb3IgZXF1YWwgdG8KICAgICAgICAgLy8gc3RhcnQgYW5kIGxlc3MgdGhhbiB0aGUgcmVtb3Zl
IGVuZCB0aW1lc3RhbXAuCiAgICAgICAgIC8vIE5PVEU6IGZyYW1lcyBtdXN0IGJlIHJlbW92ZWQg
aW4gZGVjb2RlIG9yZGVyLCBzbyB0aGF0IGFsbCBkZXBlbmRhbnQgZnJhbWVzIGJldHdlZW4gdGhl
IGZyYW1lIHRvIGJlIHJlbW92ZWQKICAgICAgICAgLy8gYW5kIHRoZSBuZXh0IHN5bmMgc2FtcGxl
IGZyYW1lIGFyZSByZW1vdmVkLgotICAgICAgICBTYW1wbGVNYXA6Oml0ZXJhdG9yIHJlbW92ZVBy
ZXNlbnRhaW9uU3RhcnQgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmZpbmRTYW1wbGVBZnRlclByZXNl
bnRhdGlvblRpbWUoc3RhcnQpOwotICAgICAgICBTYW1wbGVNYXA6Oml0ZXJhdG9yIHJlbW92ZURl
Y29kZVN0YXJ0ID0gdHJhY2tCdWZmZXIuc2FtcGxlcy5maW5kU2FtcGxlV2l0aERlY29kZVRpbWUo
cmVtb3ZlUHJlc2VudGFpb25TdGFydC0+c2Vjb25kLT5kZWNvZGVUaW1lKCkpOwotICAgICAgICBT
YW1wbGVNYXA6Ok1hcFR5cGUgZXJhc2VkU2FtcGxlcyhyZW1vdmVEZWNvZGVTdGFydCwgcmVtb3Zl
RGVjb2RlRW5kKTsKKyAgICAgICAgUHJlc2VudGF0aW9uT3JkZXJTYW1wbGVNYXA6Oml0ZXJhdG9y
IHJlbW92ZVByZXNlbnRhaW9uU3RhcnQgPSB0cmFja0J1ZmZlci5zYW1wbGVzLnByZXNlbnRhdGlv
bk9yZGVyKCkuZmluZFNhbXBsZUFmdGVyUHJlc2VudGF0aW9uVGltZShzdGFydCk7CisgICAgICAg
IERlY29kZU9yZGVyU2FtcGxlTWFwOjppdGVyYXRvciByZW1vdmVEZWNvZGVTdGFydCA9IHRyYWNr
QnVmZmVyLnNhbXBsZXMuZGVjb2RlT3JkZXIoKS5maW5kU2FtcGxlV2l0aERlY29kZVRpbWUocmVt
b3ZlUHJlc2VudGFpb25TdGFydC0+c2Vjb25kLT5kZWNvZGVUaW1lKCkpOworICAgICAgICBEZWNv
ZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZSBlcmFzZWRTYW1wbGVzKHJlbW92ZURlY29kZVN0YXJ0
LCByZW1vdmVEZWNvZGVFbmQpOwogICAgICAgICBSZWZQdHI8VGltZVJhbmdlcz4gZXJhc2VkUmFu
Z2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7CiAgICAgICAgIE1lZGlhVGltZSBtaWNyb3NlY29u
ZCgxLCAxMDAwMDAwKTsKICAgICAgICAgZm9yIChhdXRvIGVyYXNlZEl0IDogZXJhc2VkU2FtcGxl
cykgewpAQCAtMTA4OSwxNSArMTA4OSwxNSBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNlQnVm
ZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIFBhcwogICAg
ICAgICAvLyAxLjEzIExldCBzcGxpY2VkIHRpbWVkIHRleHQgZnJhbWUgYmUgYW4gdW5zZXQgdmFy
aWFibGUgZm9yIGhvbGRpbmcgdGltZWQgdGV4dCBzcGxpY2UgaW5mb3JtYXRpb24KICAgICAgICAg
Ly8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBzYW1wbGUgc3BsaWNpbmcuCiAKLSAgICAgICAgU2Ft
cGxlTWFwOjpNYXBUeXBlIGVyYXNlZFNhbXBsZXM7CisgICAgICAgIERlY29kZU9yZGVyU2FtcGxl
TWFwOjpNYXBUeXBlIGVyYXNlZFNhbXBsZXM7CiAgICAgICAgIE1lZGlhVGltZSBtaWNyb3NlY29u
ZCgxLCAxMDAwMDAwKTsKIAogICAgICAgICAvLyAxLjE0IElmIGxhc3QgZGVjb2RlIHRpbWVzdGFt
cCBmb3IgdHJhY2sgYnVmZmVyIGlzIHVuc2V0IGFuZCBwcmVzZW50YXRpb24gdGltZXN0YW1wIGZh
bGxzCiAgICAgICAgIC8vIGZhbGxzIHdpdGhpbiB0aGUgcHJlc2VudGF0aW9uIGludGVydmFsIG9m
IGEgY29kZWQgZnJhbWUgaW4gdHJhY2sgYnVmZmVyLCB0aGVuIHJ1biB0aGUKICAgICAgICAgLy8g
Zm9sbG93aW5nIHN0ZXBzOgogICAgICAgICBpZiAodHJhY2tCdWZmZXIubGFzdERlY29kZVRpbWVz
dGFtcC5pc0ludmFsaWQoKSkgewotICAgICAgICAgICAgYXV0byBpdGVyID0gdHJhY2tCdWZmZXIu
c2FtcGxlcy5maW5kU2FtcGxlQ29udGFpbmluZ1ByZXNlbnRhdGlvblRpbWUocHJlc2VudGF0aW9u
VGltZXN0YW1wKTsKLSAgICAgICAgICAgIGlmIChpdGVyICE9IHRyYWNrQnVmZmVyLnNhbXBsZXMu
cHJlc2VudGF0aW9uRW5kKCkpIHsKKyAgICAgICAgICAgIGF1dG8gaXRlciA9IHRyYWNrQnVmZmVy
LnNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIoKS5maW5kU2FtcGxlQ29udGFpbmluZ1ByZXNlbnRh
dGlvblRpbWUocHJlc2VudGF0aW9uVGltZXN0YW1wKTsKKyAgICAgICAgICAgIGlmIChpdGVyICE9
IHRyYWNrQnVmZmVyLnNhbXBsZXMucHJlc2VudGF0aW9uT3JkZXIoKS5lbmQoKSkgewogICAgICAg
ICAgICAgICAgIC8vIDEuMTQuMSBMZXQgb3ZlcmxhcHBlZCBmcmFtZSBiZSB0aGUgY29kZWQgZnJh
bWUgaW4gdHJhY2sgYnVmZmVyIHRoYXQgbWF0Y2hlcyB0aGUgY29uZGl0aW9uIGFib3ZlLgogICAg
ICAgICAgICAgICAgIFJlZlB0cjxNZWRpYVNhbXBsZT4gb3ZlcmxhcHBlZEZyYW1lID0gaXRlci0+
c2Vjb25kOwogCkBAIC0xMTMzLDggKzExMzMsOCBAQCB2b2lkIFNvdXJjZUJ1ZmZlcjo6c291cmNl
QnVmZmVyUHJpdmF0ZURpZFJlY2VpdmVTYW1wbGUoU291cmNlQnVmZmVyUHJpdmF0ZSosIFBhcwog
ICAgICAgICBpZiAodHJhY2tCdWZmZXIuaGlnaGVzdFByZXNlbnRhdGlvblRpbWVzdGFtcC5pc0lu
dmFsaWQoKSkgewogICAgICAgICAgICAgLy8gUmVtb3ZlIGFsbCBjb2RlZCBmcmFtZXMgZnJvbSB0
cmFjayBidWZmZXIgdGhhdCBoYXZlIGEgcHJlc2VudGF0aW9uIHRpbWVzdGFtcCBncmVhdGVyIHRo
YW4gb3IKICAgICAgICAgICAgIC8vIGVxdWFsIHRvIHByZXNlbnRhdGlvbiB0aW1lc3RhbXAgYW5k
IGxlc3MgdGhhbiBmcmFtZSBlbmQgdGltZXN0YW1wLgotICAgICAgICAgICAgYXV0byBpdGVyX3Bh
aXIgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmZpbmRTYW1wbGVzQmV0d2VlblByZXNlbnRhdGlvblRp
bWVzKHByZXNlbnRhdGlvblRpbWVzdGFtcCwgZnJhbWVFbmRUaW1lc3RhbXApOwotICAgICAgICAg
ICAgaWYgKGl0ZXJfcGFpci5maXJzdCAhPSB0cmFja0J1ZmZlci5zYW1wbGVzLnByZXNlbnRhdGlv
bkVuZCgpKQorICAgICAgICAgICAgYXV0byBpdGVyX3BhaXIgPSB0cmFja0J1ZmZlci5zYW1wbGVz
LnByZXNlbnRhdGlvbk9yZGVyKCkuZmluZFNhbXBsZXNCZXR3ZWVuUHJlc2VudGF0aW9uVGltZXMo
cHJlc2VudGF0aW9uVGltZXN0YW1wLCBmcmFtZUVuZFRpbWVzdGFtcCk7CisgICAgICAgICAgICBp
ZiAoaXRlcl9wYWlyLmZpcnN0ICE9IHRyYWNrQnVmZmVyLnNhbXBsZXMucHJlc2VudGF0aW9uT3Jk
ZXIoKS5lbmQoKSkKICAgICAgICAgICAgICAgICBlcmFzZWRTYW1wbGVzLmluc2VydChpdGVyX3Bh
aXIuZmlyc3QsIGl0ZXJfcGFpci5zZWNvbmQpOwogICAgICAgICB9CiAKQEAgLTExNDIsMTMgKzEx
NDIsMTMgQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1ZmZlclByaXZhdGVEaWRSZWNlaXZl
U2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBQYXMKICAgICAgICAgaWYgKHRyYWNrQnVmZmVy
LmhpZ2hlc3RQcmVzZW50YXRpb25UaW1lc3RhbXAuaXNWYWxpZCgpICYmIHRyYWNrQnVmZmVyLmhp
Z2hlc3RQcmVzZW50YXRpb25UaW1lc3RhbXAgPD0gcHJlc2VudGF0aW9uVGltZXN0YW1wKSB7CiAg
ICAgICAgICAgICAvLyBSZW1vdmUgYWxsIGNvZGVkIGZyYW1lcyBmcm9tIHRyYWNrIGJ1ZmZlciB0
aGF0IGhhdmUgYSBwcmVzZW50YXRpb24gdGltZXN0YW1wIGdyZWF0ZXIgdGhhbiBoaWdoZXN0CiAg
ICAgICAgICAgICAvLyBwcmVzZW50YXRpb24gdGltZXN0YW1wIGFuZCBsZXNzIHRoYW4gb3IgZXF1
YWwgdG8gZnJhbWUgZW5kIHRpbWVzdGFtcC4KLSAgICAgICAgICAgIGF1dG8gaXRlcl9wYWlyID0g
dHJhY2tCdWZmZXIuc2FtcGxlcy5maW5kU2FtcGxlc1dpdGhpblByZXNlbnRhdGlvblJhbmdlKHRy
YWNrQnVmZmVyLmhpZ2hlc3RQcmVzZW50YXRpb25UaW1lc3RhbXAsIGZyYW1lRW5kVGltZXN0YW1w
KTsKLSAgICAgICAgICAgIGlmIChpdGVyX3BhaXIuZmlyc3QgIT0gdHJhY2tCdWZmZXIuc2FtcGxl
cy5wcmVzZW50YXRpb25FbmQoKSkKKyAgICAgICAgICAgIGF1dG8gaXRlcl9wYWlyID0gdHJhY2tC
dWZmZXIuc2FtcGxlcy5wcmVzZW50YXRpb25PcmRlcigpLmZpbmRTYW1wbGVzV2l0aGluUHJlc2Vu
dGF0aW9uUmFuZ2UodHJhY2tCdWZmZXIuaGlnaGVzdFByZXNlbnRhdGlvblRpbWVzdGFtcCwgZnJh
bWVFbmRUaW1lc3RhbXApOworICAgICAgICAgICAgaWYgKGl0ZXJfcGFpci5maXJzdCAhPSB0cmFj
a0J1ZmZlci5zYW1wbGVzLnByZXNlbnRhdGlvbk9yZGVyKCkuZW5kKCkpCiAgICAgICAgICAgICAg
ICAgZXJhc2VkU2FtcGxlcy5pbnNlcnQoaXRlcl9wYWlyLmZpcnN0LCBpdGVyX3BhaXIuc2Vjb25k
KTsKICAgICAgICAgfQogCiAgICAgICAgIC8vIDEuMTYgUmVtb3ZlIGRlY29kaW5nIGRlcGVuZGVu
Y2llcyBvZiB0aGUgY29kZWQgZnJhbWVzIHJlbW92ZWQgaW4gdGhlIHByZXZpb3VzIHN0ZXA6Ci0g
ICAgICAgIFNhbXBsZU1hcDo6TWFwVHlwZSBkZXBlbmRlbnRTYW1wbGVzOworICAgICAgICBEZWNv
ZGVPcmRlclNhbXBsZU1hcDo6TWFwVHlwZSBkZXBlbmRlbnRTYW1wbGVzOwogICAgICAgICBpZiAo
IWVyYXNlZFNhbXBsZXMuZW1wdHkoKSkgewogICAgICAgICAgICAgLy8gSWYgZGV0YWlsZWQgaW5m
b3JtYXRpb24gYWJvdXQgZGVjb2RpbmcgZGVwZW5kZW5jaWVzIGlzIGF2YWlsYWJsZToKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBBZGQgc3VwcG9ydCBmb3IgZGV0YWlsZWQgZGVwZW5kZW5jeSBpbmZv
cm1hdGlvbgpAQCAtMTE1Niw4ICsxMTU2LDggQEAgdm9pZCBTb3VyY2VCdWZmZXI6OnNvdXJjZUJ1
ZmZlclByaXZhdGVEaWRSZWNlaXZlU2FtcGxlKFNvdXJjZUJ1ZmZlclByaXZhdGUqLCBQYXMKICAg
ICAgICAgICAgIC8vIE90aGVyd2lzZTogUmVtb3ZlIGFsbCBjb2RlZCBmcmFtZXMgYmV0d2VlbiB0
aGUgY29kZWQgZnJhbWVzIHJlbW92ZWQgaW4gdGhlIHByZXZpb3VzIHN0ZXAKICAgICAgICAgICAg
IC8vIGFuZCB0aGUgbmV4dCByYW5kb20gYWNjZXNzIHBvaW50IGFmdGVyIHRob3NlIHJlbW92ZWQg
ZnJhbWVzLgogICAgICAgICAgICAgZm9yIChhdXRvIGVyYXNlZEl0ID0gZXJhc2VkU2FtcGxlcy5i
ZWdpbigpLCBlbmQgPSBlcmFzZWRTYW1wbGVzLmVuZCgpOyBlcmFzZWRJdCAhPSBlbmQ7ICsrZXJh
c2VkSXQpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGN1cnJlbnREZWNvZGVJdGVyID0gdHJhY2tC
dWZmZXIuc2FtcGxlcy5maW5kU2FtcGxlV2l0aERlY29kZVRpbWUoZXJhc2VkSXQtPnNlY29uZC0+
ZGVjb2RlVGltZSgpKTsKLSAgICAgICAgICAgICAgICBhdXRvIG5leHRTeW5jSXRlciA9IHRyYWNr
QnVmZmVyLnNhbXBsZXMuZmluZFN5bmNTYW1wbGVBZnRlckRlY29kZUl0ZXJhdG9yKGN1cnJlbnRE
ZWNvZGVJdGVyKTsKKyAgICAgICAgICAgICAgICBhdXRvIGN1cnJlbnREZWNvZGVJdGVyID0gdHJh
Y2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRlcigpLmZpbmRTYW1wbGVXaXRoRGVjb2RlVGltZShl
cmFzZWRJdC0+c2Vjb25kLT5kZWNvZGVUaW1lKCkpOworICAgICAgICAgICAgICAgIGF1dG8gbmV4
dFN5bmNJdGVyID0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVPcmRlcigpLmZpbmRTeW5jU2Ft
cGxlQWZ0ZXJEZWNvZGVJdGVyYXRvcihjdXJyZW50RGVjb2RlSXRlcik7CiAgICAgICAgICAgICAg
ICAgZGVwZW5kZW50U2FtcGxlcy5pbnNlcnQoY3VycmVudERlY29kZUl0ZXIsIG5leHRTeW5jSXRl
cik7CiAgICAgICAgICAgICB9CiAKQEAgLTExOTAsNyArMTE5MCw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpzb3VyY2VCdWZmZXJQcml2YXRlRGlkUmVjZWl2ZVNhbXBsZShTb3VyY2VCdWZmZXJQcml2
YXRlKiwgUGFzCiAgICAgICAgIC8vIE90aGVyd2lzZToKICAgICAgICAgLy8gQWRkIHRoZSBjb2Rl
ZCBmcmFtZSB3aXRoIHRoZSBwcmVzZW50YXRpb24gdGltZXN0YW1wLCBkZWNvZGUgdGltZXN0YW1w
LCBhbmQgZnJhbWUgZHVyYXRpb24gdG8gdGhlIHRyYWNrIGJ1ZmZlci4KICAgICAgICAgdHJhY2tC
dWZmZXIuc2FtcGxlcy5hZGRTYW1wbGUoc2FtcGxlKTsKLSAgICAgICAgdHJhY2tCdWZmZXIuZGVj
b2RlUXVldWUuaW5zZXJ0KFNhbXBsZU1hcDo6TWFwVHlwZTo6dmFsdWVfdHlwZShkZWNvZGVUaW1l
c3RhbXAsIHNhbXBsZSkpOworICAgICAgICB0cmFja0J1ZmZlci5kZWNvZGVRdWV1ZS5pbnNlcnQo
RGVjb2RlT3JkZXJTYW1wbGVNYXA6Ok1hcFR5cGU6OnZhbHVlX3R5cGUoZGVjb2RlVGltZXN0YW1w
LCBzYW1wbGUpKTsKIAogICAgICAgICAvLyAxLjE4IFNldCBsYXN0IGRlY29kZSB0aW1lc3RhbXAg
Zm9yIHRyYWNrIGJ1ZmZlciB0byBkZWNvZGUgdGltZXN0YW1wLgogICAgICAgICB0cmFja0J1ZmZl
ci5sYXN0RGVjb2RlVGltZXN0YW1wID0gZGVjb2RlVGltZXN0YW1wOwpAQCAtMTQ3OSw4ICsxNDc5
LDggQEAgVmVjdG9yPFN0cmluZz4gU291cmNlQnVmZmVyOjpidWZmZXJlZFNhbXBsZXNGb3JUcmFj
a0lEKGNvbnN0IEF0b21pY1N0cmluZyYgdHJhY2sKIAogICAgIFRyYWNrQnVmZmVyJiB0cmFja0J1
ZmZlciA9IGl0LT52YWx1ZTsKICAgICBWZWN0b3I8U3RyaW5nPiBzYW1wbGVEZXNjcmlwdGlvbnM7
Ci0gICAgZm9yIChhdXRvIHNhbXBsZUl0ZXIgPSB0cmFja0J1ZmZlci5zYW1wbGVzLmRlY29kZUJl
Z2luKCk7IHNhbXBsZUl0ZXIgIT0gdHJhY2tCdWZmZXIuc2FtcGxlcy5kZWNvZGVFbmQoKTsgKytz
YW1wbGVJdGVyKQotICAgICAgICBzYW1wbGVEZXNjcmlwdGlvbnMuYXBwZW5kKHRvU3RyaW5nKCpz
YW1wbGVJdGVyLT5zZWNvbmQpKTsKKyAgICBmb3IgKGF1dG8mIHBhaXIgOiB0cmFja0J1ZmZlci5z
YW1wbGVzLmRlY29kZU9yZGVyKCkpCisgICAgICAgIHNhbXBsZURlc2NyaXB0aW9ucy5hcHBlbmQo
dG9TdHJpbmcoKnBhaXIuc2Vjb25kKSk7CiAKICAgICByZXR1cm4gc2FtcGxlRGVzY3JpcHRpb25z
OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>