<?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>217332</bug_id>
          
          <creation_ts>2020-10-05 13:18:33 -0700</creation_ts>
          <short_desc>Use tryHoldLock() in WebAudio to simplify the code</short_desc>
          <delta_ts>2020-10-05 14:16:16 -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>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1694820</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 13:18:33 -0700</bug_when>
    <thetext>Use tryHoldLock() in WebAudio to simplify the code a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694821</commentid>
    <comment_count>1</comment_count>
      <attachid>410546</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-10-05 13:20:17 -0700</bug_when>
    <thetext>Created attachment 410546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694849</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-05 14:15:58 -0700</bug_when>
    <thetext>Committed r268001: &lt;https://trac.webkit.org/changeset/268001&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 410546.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1694850</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-05 14:16:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/69970676&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410546</attachid>
            <date>2020-10-05 13:20:17 -0700</date>
            <delta_ts>2020-10-05 14:15:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217332-20201005132016.patch</filename>
            <type>text/plain</type>
            <size>39760</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGEzMWY0NTY4MWRlYjli
YTU2ZjE4MjBmNGJkNGExOWUyMTU5ZTU0NS4uMWVhMTQ3OTZiMGQxYTJjNzA3NGJkODIwZTk5ODJm
Y2VmNWRlMTgwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDIwLTEwLTA1ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIHRyeUhvbGRMb2NrKCkg
aW4gV2ViQXVkaW8gdG8gc2ltcGxpZnkgdGhlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0cnlIb2xkTG9jaygpIGluIFdlYkF1ZGlvIHRv
IHNpbXBsaWZ5IHRoZSBjb2RlIGEgYml0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gV2Vi
LWZhY2luZyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyU291cmNlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNv
dXJjZU5vZGU6OnByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VO
b2RlOjpzZXRCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2Rl
OjpzdGFydFBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2Rl
OjphZGp1c3RHcmFpblBhcmFtZXRlcnMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjpz
ZXRWYWx1ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6Omxp
bmVhclJhbXBUb1ZhbHVlQXRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1l
bGluZTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6OnNldFRhcmdldEF0VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6OnNldFZhbHVlQ3VydmVBdFRpbWUpOgorICAgICAgICAoV2ViQ29y
ZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbFNjaGVkdWxlZFZhbHVlcyk6CisgICAgICAgIChXZWJD
b3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6dmFsdWVzRm9yVGltZVJhbmdlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5oOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
b252b2x2ZXJOb2RlOjpwcm9jZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnZvbHZlck5vZGU6
OnNldEJ1ZmZlcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmg6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpwcm9j
ZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VO
b2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpz
ZXRGb3JtYXQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGU6
OnByb2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1Nv
dXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok9zY2lsbGF0b3JOb2RlOjpwcm9jZXNzKToKKyAgICAgICAg
KFdlYkNvcmU6Ok9zY2lsbGF0b3JOb2RlOjpzZXRQZXJpb2RpY1dhdmUpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6cHJvY2Vz
cyk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwpOgorICAg
ICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6UGFubmVyTm9kZTo6c2V0T3JpZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVy
Tm9kZTo6c2V0RGlzdGFuY2VNb2RlbCk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpz
ZXRSZWZEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRNYXhEaXN0
YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRSb2xsb2ZmRmFjdG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnNldENvbmVPdXRlckdhaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q29uZU91dGVyQW5nbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6UGFubmVyTm9kZTo6c2V0Q29uZUlubmVyQW5nbGUpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vU2NyaXB0
UHJvY2Vzc29yTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRQcm9jZXNzb3JOb2Rl
Ojpwcm9jZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNz
b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2F2ZVNoYXBlclByb2Nlc3Nvcjo6c2V0Q3VydmUp
OgorICAgICAgICAoV2ViQ29yZTo6V2F2ZVNoYXBlclByb2Nlc3Nvcjo6c2V0T3ZlcnNhbXBsZSk6
CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyUHJvY2Vzc29yOjpwcm9jZXNzKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJLaXRBdWRpb1Bhbm5lck5vZGU6OnByb2Nlc3MpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmg6CisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJldmVyYkNvbnZv
bHZlcjo6flJldmVyYkNvbnZvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252b2x2
ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRyeSk6CisgICAgICAgIChXZWJDb3JlOjpSZXZlcmJDb252
b2x2ZXI6OnByb2Nlc3MpOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZl
ci5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2Nv
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0Rlc3RpbmF0aW9uQ29jb2E6OnJlbmRlcik6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQyk6CisgICAgICAgIChXZWJDb3JlOjpB
dWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KToKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpmaW5hbGl6ZUNhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlQ2FsbGJhY2sp
OgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFy
ZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
Ojpwcm9jZXNzQ2FsbGJhY2spOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9X
ZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp+V2ViQXVkaW9Tb3VyY2VQcm92
aWRlckFWRk9iakMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OnByb3ZpZGVJbnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJlcGFyZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJBdWRpb1NvdXJj
ZVByb3ZpZGVyQVZGT2JqQzo6dW5wcmVwYXJlKToKKwogMjAyMC0xMC0wNSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBtZW1zZXQgdG8gemVybyB2ZWN0b3Jz
IGluIFBlcmlvZGljV2F2ZTo6Y3JlYXRlQmFuZExpbWl0ZWRUYWJsZXMoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUu
Y3BwCmluZGV4IGE5NWJjZDZlNzU5OTRlMDA3OTU1MDdkZmZkNDU3ODYyYWJlYjk0NDcuLjU0Zjk3
NDQwYjBhOTIxOTg5ZGNjMGQyMmJiNzc1ZGRjNmNiYzdhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAK
QEAgLTExMCwxMCArMTEwLDEwIEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAv
LyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHN0
ZDo6dHJ5X3RvX2xvY2sgaW5zdGVhZC4KLSAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2so
bV9wcm9jZXNzTXV0ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwotICAgIGlmICghbG9jay5vd25zX2xv
Y2soKSkgewotICAgICAgICAvLyBUb28gYmFkIC0gdGhlIHRyeV9sb2NrKCkgZmFpbGVkLiBXZSBt
dXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5
IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCisgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4n
dCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlIb2xkTG9jaygpIGluc3RlYWQuCisg
ICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKKyAgICBpZiAoIWxv
Y2tlcikgeworICAgICAgICAvLyBUb28gYmFkIC0gdHJ5SG9sZExvY2soKSBmYWlsZWQuIFdlIG11
c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyBidWZmZXJzIGFuZCB3ZXJlIGFscmVhZHkg
b3V0cHV0dGluZyBzaWxlbmNlIGFueXdheS4KICAgICAgICAgb3V0cHV0QnVzLnplcm8oKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQzMCw3ICs0MzAsNyBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnNldEJ1ZmZlcihSZWZQdHI8QXVkaW9CdWZmZXI+JiYg
YnVmZmVyKQogICAgIEJhc2VBdWRpb0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcihj
b250ZXh0KCkpOwogICAgIAogICAgIC8vIFRoaXMgc3luY2hyb25pemVzIHdpdGggcHJvY2Vzcygp
LgotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTXV0ZXgpOworICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAgICAgCiAgICAgaWYgKGJ1ZmZlcikg
ewogICAgICAgICBtX3dhc0J1ZmZlclNldCA9IHRydWU7CkBAIC00ODgsNyArNDg4LDcgQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydFBsYXlpbmcoZG91Ymxl
IHdoZW4sIGRvdWJsZSBncmFpbk8KICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJy
b3IsICJkdXJhdGlvbiB2YWx1ZSBzaG91bGQgYmUgcG9zaXRpdmUiX3MgfTsKIAogICAgIC8vIFRo
aXMgc3luY2hyb25pemVzIHdpdGggcHJvY2VzcygpLgotICAgIGF1dG8gbG9ja2VyID0gaG9sZExv
Y2sobV9wcm9jZXNzTXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNz
TG9jayk7CiAKICAgICBtX2lzR3JhaW4gPSB0cnVlOwogICAgIG1fZ3JhaW5PZmZzZXQgPSBncmFp
bk9mZnNldDsKQEAgLTUwNSw3ICs1MDUsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb0J1ZmZl
clNvdXJjZU5vZGU6OnN0YXJ0UGxheWluZyhkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluTwogCiB2
b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6YWRqdXN0R3JhaW5QYXJhbWV0ZXJzKCkKIHsKLSAg
ICBBU1NFUlQobV9wcm9jZXNzTXV0ZXguaXNIZWxkKCkpOworICAgIEFTU0VSVChtX3Byb2Nlc3NM
b2NrLmlzSGVsZCgpKTsKIAogICAgIGF1dG8gYnVmZmVyID0gdGhpcy0+YnVmZmVyKCk7CiAgICAg
aWYgKCFidWZmZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAppbmRleCAxN2E3MDA2MzA2NTE1ZGYxZjRlNDllZmQ1
MTc3Y2VmZWQ3MzMzNDRmLi5hNmVjZTAwMTUyNGZmZmY3MzllNDdlOTI5ZDVmNzNmNDUwM2FiY2M4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBwcml2YXRlOgogICAgIEF1ZGlv
Q29ubmVjdGlvblJlZlB0cjxQYW5uZXJOb2RlQmFzZT4gbV9wYW5uZXJOb2RlOwogCiAgICAgLy8g
VGhpcyBzeW5jaHJvbml6ZXMgcHJvY2VzcygpIHdpdGggc2V0QnVmZmVyKCkgd2hpY2ggY2FuIGNh
dXNlIGR5bmFtaWMgY2hhbm5lbCBjb3VudCBjaGFuZ2VzLgotICAgIG11dGFibGUgTG9jayBtX3By
b2Nlc3NNdXRleDsKKyAgICBtdXRhYmxlIExvY2sgbV9wcm9jZXNzTG9jazsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCAzMmZlMjkzM2QxNjgxNjA2ZWFjN2Uy
YzVmZmU2MWYyMDYzZjBjMTE3Li41OGVmYTdhZThmNDlkMzg5ZjU4N2RiNmRmNDA4MDdjZWZiYjc1
MzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFy
YW1UaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuY3BwCkBAIC02NSwxMyArNjUsMTMgQEAgc3RhdGljIGJvb2wgaGFzU2V0
VGFyZ2V0Q29udmVyZ2VkKGZsb2F0IHZhbHVlLCBmbG9hdCB0YXJnZXQsIFNlY29uZHMgY3VycmVu
dFRpbWUKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRWYWx1ZUF0
VGltZShmbG9hdCB2YWx1ZSwgU2Vjb25kcyB0aW1lKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sobV9ldmVudHNNdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50
c0xvY2spOwogICAgIHJldHVybiBpbnNlcnRFdmVudChQYXJhbUV2ZW50OjpjcmVhdGVTZXRWYWx1
ZUV2ZW50KHZhbHVlLCB0aW1lKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1U
aW1lbGluZTo6bGluZWFyUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0VmFsdWUsIFNlY29u
ZHMgZW5kVGltZSwgZmxvYXQgY3VycmVudFZhbHVlLCBTZWNvbmRzIGN1cnJlbnRUaW1lKQogewot
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7CisgICAgYXV0byBsb2Nr
ZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOwogCiAgICAgLy8gTGluZWFyIHJhbXAgZXZlbnRz
IG5lZWQgYSBwcmVjZWRpbmcgZXZlbnQgc28gdGhhdCB0aGV5IGhhdmUgYW4gaW5pdGlhbCB2YWx1
ZS4KICAgICBpZiAobV9ldmVudHMuaXNFbXB0eSgpKQpAQCAtODIsNyArODIsNyBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKGZs
b2F0IHRhcmdldFZhbHVlLAogCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6
OmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoZmxvYXQgdGFyZ2V0VmFsdWUsIFNlY29uZHMg
ZW5kVGltZSwgZmxvYXQgY3VycmVudFZhbHVlLCBTZWNvbmRzIGN1cnJlbnRUaW1lKQogewotICAg
IGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7CisgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX2V2ZW50c0xvY2spOwogCiAgICAgLy8gRXhwb25lbnRpYWwgcmFtcCBldmVu
dHMgbmVlZCBhIHByZWNlZGluZyBldmVudCBzbyB0aGF0IHRoZXkgaGF2ZSBhbiBpbml0aWFsIHZh
bHVlLgogICAgIGlmIChtX2V2ZW50cy5pc0VtcHR5KCkpCkBAIC05Myw3ICs5Myw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6ZXhwb25lbnRpYWxSYW1wVG9WYWx1ZUF0
VGltZShmbG9hdCB0YXJnZXRWCiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGlu
ZTo6c2V0VGFyZ2V0QXRUaW1lKGZsb2F0IHRhcmdldCwgU2Vjb25kcyB0aW1lLCBmbG9hdCB0aW1l
Q29uc3RhbnQpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c011dGV4KTsK
KyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CiAgICAgLy8gSWYgdGlt
ZUNvbnN0YW50IGlzIDAsIHdlIGluc3RhbnRseSBqdW1wIHRvIHRoZSB0YXJnZXQgdmFsdWUsIHNv
IGluc2VydCBhIFNldFZhbHVlRXZlbnQgaW5zdGVhZCBvZiBTZXRUYXJnZXRFdmVudC4KICAgICBp
ZiAoIXRpbWVDb25zdGFudCkKICAgICAgICAgcmV0dXJuIGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6
OmNyZWF0ZVNldFZhbHVlRXZlbnQodGFyZ2V0LCB0aW1lKSk7CkBAIC0xMDIsNyArMTAyLDcgQEAg
RXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRpbWVsaW5lOjpzZXRUYXJnZXRBdFRpbWUoZmxv
YXQgdGFyZ2V0LCBTZWNvbmRzIHRpbWUKIAogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbVRp
bWVsaW5lOjpzZXRWYWx1ZUN1cnZlQXRUaW1lKFZlY3RvcjxmbG9hdD4mJiBjdXJ2ZSwgU2Vjb25k
cyB0aW1lLCBTZWNvbmRzIGR1cmF0aW9uKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2so
bV9ldmVudHNNdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2sp
OwogCiAgICAgZmxvYXQgY3VydmVFbmRWYWx1ZSA9IGN1cnZlLmxhc3QoKTsKICAgICBhdXRvIHJl
c3VsdCA9IGluc2VydEV2ZW50KFBhcmFtRXZlbnQ6OmNyZWF0ZVNldFZhbHVlQ3VydmVFdmVudChX
VEZNb3ZlKGN1cnZlKSwgdGltZSwgZHVyYXRpb24pKTsKQEAgLTEzNyw3ICsxMzcsNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6Omluc2VydEV2ZW50KFVuaXF1ZVJlZjxQ
YXJhbUV2ZW50PiBldmVudCkKICAgICBpZiAoIWlzVmFsaWQpCiAgICAgICAgIHJldHVybiB7IH07
CiAgICAgICAgIAotICAgIEFTU0VSVChtX2V2ZW50c011dGV4LmlzTG9ja2VkKCkpOworICAgIEFT
U0VSVChtX2V2ZW50c0xvY2suaXNMb2NrZWQoKSk7CiAKICAgICB1bnNpZ25lZCBpID0gMDsKICAg
ICBhdXRvIGluc2VydFRpbWUgPSBldmVudC0+dGltZSgpOwpAQCAtMTc4LDcgKzE3OCw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoVW5pcXVlUmVm
PFBhcmFtRXZlbnQ+IGV2ZW50KQogCiB2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6Y2FuY2VsU2No
ZWR1bGVkVmFsdWVzKFNlY29uZHMgY2FuY2VsVGltZSkKIHsKLSAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fZXZlbnRzTXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVu
dHNMb2NrKTsKIAogICAgIC8vIFJlbW92ZSBhbGwgZXZlbnRzIHdob3NlIHN0YXJ0IHRpbWUgaXMg
Z3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBjYW5jZWwgdGltZS4KICAgICAvLyBBbHNvIGhh
bmRsZSB0aGUgc3BlY2lhbCBjYXNlIHdoZXJlIHRoZSBjYW5jZWwgdGltZSBsaWVzIGluIHRoZSBt
aWRkbGUgb2YgYQpAQCAtMjA3LDcgKzIwNyw3IEBAIHZvaWQgQXVkaW9QYXJhbVRpbWVsaW5lOjpj
YW5jZWxTY2hlZHVsZWRWYWx1ZXMoU2Vjb25kcyBjYW5jZWxUaW1lKQogCiBFeGNlcHRpb25Pcjx2
b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6OmNhbmNlbEFuZEhvbGRBdFRpbWUoU2Vjb25kcyBjYW5j
ZWxUaW1lKQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9ldmVudHNNdXRleCk7Cisg
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2V2ZW50c0xvY2spOwogCiAgICAgLy8gRmluZCB0
aGUgZmlyc3QgZXZlbnQgYXQgb3IganVzdCBwYXN0IGNhbmNlbFRpbWUuCiAgICAgc2l6ZV90IGkg
PSBtX2V2ZW50cy5maW5kTWF0Y2hpbmcoWyZdKGF1dG8mIGV2ZW50KSB7CkBAIC0zMTksOCArMzE5
LDggQEAgdm9pZCBBdWRpb1BhcmFtVGltZWxpbmU6OnJlbW92ZUNhbmNlbGxlZEV2ZW50cyhzaXpl
X3QgZmlyc3RFdmVudFRvUmVtb3ZlKQogT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGlu
ZTo6dmFsdWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBk
ZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSkKIHsKICAgICB7Ci0g
ICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2V2ZW50c011dGV4LCBzdGQ6OnRy
eV90b19sb2NrKTsKLSAgICAgICAgaWYgKCFsb2NrLm93bnNfbG9jaygpIHx8ICFtX2V2ZW50cy5z
aXplKCkgfHwgU2Vjb25kcyB7IGNvbnRleHQuY3VycmVudFRpbWUoKSB9IDwgbV9ldmVudHNbMF0t
PnRpbWUoKSkKKyAgICAgICAgYXV0byBsb2NrZXIgPSB0cnlIb2xkTG9jayhtX2V2ZW50c0xvY2sp
OworICAgICAgICBpZiAoIWxvY2tlciB8fCAhbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBj
b250ZXh0LmN1cnJlbnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLT50aW1lKCkpCiAgICAgICAgICAg
ICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAtMzM3LDggKzMzNyw4IEBAIE9wdGlv
bmFsPGZsb2F0PiBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlRm9yQ29udGV4dFRpbWUoQmFzZUF1
ZGlvQ29udGV4dCYgY29udGV4CiBmbG9hdCBBdWRpb1BhcmFtVGltZWxpbmU6OnZhbHVlc0ZvclRp
bWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90IGVuZEZyYW1lLCBmbG9hdCBkZWZhdWx0
VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhWYWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5z
aWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1wbGVSYXRlLCBkb3VibGUgY29udHJvbFJh
dGUpCiB7CiAgICAgLy8gV2UgY2FuJ3QgY29udGVuZCB0aGUgbG9jayBpbiB0aGUgcmVhbHRpbWUg
YXVkaW8gdGhyZWFkLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2V2ZW50c011
dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAgICBpZiAoIWxvY2sub3duc19sb2NrKCkpIHsKKyAg
ICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fZXZlbnRzTG9jayk7CisgICAgaWYgKCFsb2Nr
ZXIpIHsKICAgICAgICAgaWYgKHZhbHVlcykgewogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG51bWJlck9mVmFsdWVzOyArK2kpCiAgICAgICAgICAgICAgICAgdmFsdWVzW2ld
ID0gZGVmYXVsdFZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtVGltZWxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmgKaW5kZXggNzBmOTgzOGIzY2ZmZTkzZDVlNTczMzM3Yjlj
OGQyNDA5M2VkMTdjNy4uZGQ3Yjg1ODZjMDkyMzQyYTkxMjQzNWU0YWQwMjg2YjMwZTMzYTU5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1U
aW1lbGluZS5oCkBAIC0xNjYsNyArMTY2LDcgQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxVbmlx
dWVSZWY8UGFyYW1FdmVudD4+IG1fZXZlbnRzOwogCi0gICAgTG9jayBtX2V2ZW50c011dGV4Owor
ICAgIExvY2sgbV9ldmVudHNMb2NrOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5jcHAKaW5k
ZXggNTRhZDA0NDU2NDg0ZmUxN2RhMjEwNWE3MTI4MTY1OWNmMThkNTU0MS4uNjE4OWM2YWE2YWEx
ZjFkM2Q4ZWFhOWMwNDY4ZDA5ZWM1YTA2YmU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwCkBAIC05Miw5ICs5Miw5IEBAIHZvaWQg
Q29udm9sdmVyTm9kZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgIEFTU0VS
VChvdXRwdXRCdXMpOwogCiAgICAgLy8gU3luY2hyb25pemUgd2l0aCBwb3NzaWJsZSBkeW5hbWlj
IGNoYW5nZXMgdG8gdGhlIGltcHVsc2UgcmVzcG9uc2UuCi0gICAgc3RkOjp1bmlxdWVfbG9jazxM
b2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAgICBpZiAoIWxv
Y2sub3duc19sb2NrKCkpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRoZSB0cnlfbG9jaygpIGZh
aWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1wdWxzZSBy
ZXNwb25zZS4KKyAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwor
ICAgIGlmICghbG9ja2VyKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZh
aWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1wdWxzZSBy
ZXNwb25zZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC0xNDcsNyArMTQ3LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQ29udm9sdmVyTm9kZTo6
c2V0QnVmZmVyKFJlZlB0cjxBdWRpb0J1ZmZlcj4mJiBidWZmZXIpCiAgICAgICAgIEJhc2VBdWRp
b0NvbnRleHQ6OkF1dG9Mb2NrZXIgY29udGV4dExvY2tlcihjb250ZXh0KCkpOwogCiAgICAgICAg
IC8vIFN5bmNocm9uaXplIHdpdGggcHJvY2VzcygpLgotICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fcHJvY2Vzc011dGV4KTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X3Byb2Nlc3NMb2NrKTsKIAogICAgICAgICBtX3JldmVyYiA9IFdURk1vdmUocmV2ZXJiKTsKICAg
ICAgICAgbV9idWZmZXIgPSBXVEZNb3ZlKGJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVyTm9kZS5oCmluZGV4IDFlZTZkZTNlY2M5NDVmYmNlOTk4
MjkxZWVjODQ2MTMxOTk5MzU5MzguLmMyZGU0YTFmMjI0ODBmMzVhMjMzYTQ1YzM4YTVmZTU1Mjk5
N2U0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9s
dmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQ29udm9sdmVy
Tm9kZS5oCkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEF1ZGlvQnVmZmVy
PiBtX2J1ZmZlcjsKIAogICAgIC8vIFRoaXMgc3luY2hyb25pemVzIGR5bmFtaWMgY2hhbmdlcyB0
byB0aGUgY29udm9sdXRpb24gaW1wdWxzZSByZXNwb25zZSB3aXRoIHByb2Nlc3MoKS4KLSAgICBt
dXRhYmxlIExvY2sgbV9wcm9jZXNzTXV0ZXg7CisgICAgbXV0YWJsZSBMb2NrIG1fcHJvY2Vzc0xv
Y2s7CiAKICAgICAvLyBOb3JtYWxpemUgdGhlIGltcHVsc2UgcmVzcG9uc2Ugb3Igbm90LgogICAg
IGJvb2wgbV9ub3JtYWxpemUgeyB0cnVlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAK
aW5kZXggNzMxYjVmZGU3MDUzZDhiNzljNjIyMmEzNzY3MjdjOWM1MDZmYmYwMy4uYjZiZTg2OTY2
YzY2NTk1MGY3NDM2OGI3N2VlOTY5ZDdmY2ZlNjBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VO
b2RlLmNwcApAQCAtMTM5LDExICsxMzksMTEgQEAgdm9pZCBNZWRpYUVsZW1lbnRBdWRpb1NvdXJj
ZU5vZGU6OnByb2Nlc3Moc2l6ZV90IG51bWJlck9mRnJhbWVzKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgLy8gVXNlIGEgc3RkOjp0cnlfdG9fbG9jayB0byBhdm9pZCBjb250ZW50aW9u
IGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFkLgorICAgIC8vIFVzZSB0cnlIb2xkTG9jaygp
IHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJlYWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAg
Ly8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBsb2NrIHRoZW4gdGhlIEhUTUxNZWRpYUVsZW1l
bnQgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mCiAgICAgLy8gcmVjb25maWd1cmluZyBpdHMgcGxh
eWJhY2sgZW5naW5lLCBzbyB3ZSBvdXRwdXQgc2lsZW5jZSBpbiB0aGlzIGNhc2UuCi0gICAgc3Rk
Ojp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fcHJvY2Vzc0xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2sp
OwotICAgIGlmICghbG9jay5vd25zX2xvY2soKSkgeworICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9s
ZExvY2sobV9wcm9jZXNzTG9jayk7CisgICAgaWYgKCFsb2NrZXIpIHsKICAgICAgICAgLy8gV2Ug
ZmFpbGVkIHRvIGFjcXVpcmUgdGhlIGxvY2suCiAgICAgICAgIG91dHB1dEJ1cy0+emVybygpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCmluZGV4IGU4YjU5YWI2
ODI2NGU5MzExNDM5ZmUwNDJiYTczZDFkOGI4M2NkMzkuLmE0ZTZmMDMwMTRmNTRlOTM4ZjBhNzEy
MzAwMjIyYTY4MDM2ZDJiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0xMDQs
NyArMTA0LDcgQEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6c2V0Rm9ybWF0KHNp
emVfdCBudW1iZXJPZkNoYW5uZWxzLCBmbG9hdCBzb3VyY2UKICAgICB9CiAKICAgICAvLyBTeW5j
aHJvbml6ZSB3aXRoIHByb2Nlc3MoKS4KLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJv
Y2Vzc011dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwog
CiAgICAgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzID0gbnVtYmVyT2ZDaGFubmVsczsKICAgICBt
X3NvdXJjZVNhbXBsZVJhdGUgPSBzb3VyY2VTYW1wbGVSYXRlOwpAQCAtMTM3LDExICsxMzcsMTEg
QEAgdm9pZCBNZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZTo6cHJvY2VzcyhzaXplX3QgbnVtYmVy
T2ZGcmFtZXMpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBVc2Ugc3RkOjp0cnlf
dG9fbG9jayB0byBhdm9pZCBjb250ZW50aW9uIGluIHRoZSByZWFsLXRpbWUgYXVkaW8gdGhyZWFk
LgorICAgIC8vIFVzZSB0cnlIb2xkTG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJl
YWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBs
b2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8v
IGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAg
IHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX3Byb2Nlc3NNdXRleCwgc3RkOjp0cnlfdG9f
bG9jayk7Ci0gICAgaWYgKCFsb2NrLm93bnNfbG9jaygpKSB7CisgICAgYXV0byBsb2NrZXIgPSB0
cnlIb2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKKyAgICBpZiAoIWxvY2tlcikgewogICAgICAgICAv
LyBXZSBmYWlsZWQgdG8gYWNxdWlyZSB0aGUgbG9jay4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJv
KCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuaAppbmRleCA2NTNkZmM5
YWU5NjcxNjc1MjYxM2E5YTMyNDMzYmZiNjNhNTcxZWExLi43ZDY0NTAxOWUxM2FmODhmNjhhYmE1
MjRlNzc0Y2Q1YjZlOTkwYTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL01lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYVN0cmVhbUF1ZGlvU291cmNlTm9kZS5oCkBAIC02Nyw3ICs2
Nyw3IEBAIHByaXZhdGU6CiAgICAgUmVmPE1lZGlhU3RyZWFtVHJhY2s+IG1fYXVkaW9UcmFjazsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TXVsdGlDaGFubmVsUmVzYW1wbGVyPiBtX211bHRpQ2hhbm5l
bFJlc2FtcGxlcjsKIAotICAgIExvY2sgbV9wcm9jZXNzTXV0ZXg7CisgICAgTG9jayBtX3Byb2Nl
c3NMb2NrOwogCiAgICAgdW5zaWduZWQgbV9zb3VyY2VOdW1iZXJPZkNoYW5uZWxzIHsgMCB9Owog
ICAgIGRvdWJsZSBtX3NvdXJjZVNhbXBsZVJhdGUgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IGM4MWEyMGRjZTE1
MGJhZTEwYTJhMDU2OWM3NDhiNWIzZmJmYThjZmQuLjk1ZDEyYzM3YjQxZTliMGNlMWFjMTdlY2Yw
ODAyYzBiYWVkNzY0ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT3NjaWxsYXRvck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vT3NjaWxsYXRvck5vZGUuY3BwCkBAIC0zNTYsMTAgKzM1NiwxMCBAQCB2b2lkIE9zY2lsbGF0
b3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgaWYgKGZyYW1lc1Rv
UHJvY2VzcyA+IG1fcGhhc2VJbmNyZW1lbnRzLnNpemUoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVz
ZSBzdGQ6OnRyeV90b19sb2NrIGluc3RlYWQuCi0gICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBs
b2NrKG1fcHJvY2Vzc011dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAgICBpZiAoIWxvY2sub3du
c19sb2NrKCkpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRoZSB0cnlfbG9jaygpIGZhaWxlZC4g
V2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHdhdmUtdGFibGVzLgorICAgIC8v
IFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBzbyB3ZSB1c2UgdHJ5
SG9sZExvY2soKSBpbnN0ZWFkLgorICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9wcm9j
ZXNzTG9jayk7CisgICAgaWYgKCFsb2NrZXIpIHsKKyAgICAgICAgLy8gVG9vIGJhZCAtIHRyeUhv
bGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2
ZS10YWJsZXMuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CkBAIC00MzgsNyArNDM4LDcgQEAgdm9pZCBPc2NpbGxhdG9yTm9kZTo6c2V0UGVyaW9kaWNX
YXZlKFBlcmlvZGljV2F2ZSYgcGVyaW9kaWNXYXZlKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgCiAgICAgLy8gVGhpcyBzeW5jaHJvbml6ZXMgd2l0aCBwcm9jZXNzKCkuCi0gICAg
YXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NNdXRleCk7CisgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKICAgICBtX3BlcmlvZGljV2F2ZSA9ICZwZXJpb2Rp
Y1dhdmU7CiAgICAgbV90eXBlID0gT3NjaWxsYXRvclR5cGU6OkN1c3RvbTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaAppbmRleCBkN2I2
YjVlMjUyNzU4NzhmYTBjNzc0N2FkOGIwNDdjODk3NDc1OTAyLi5hYjE0NjY3ZDA2OGRjMDExYWEw
MmJlMWQwZWFiYThjOGE5NTAyZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5oCkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAg
ZG91YmxlIG1fdmlydHVhbFJlYWRJbmRleCB7IDAgfTsKIAogICAgIC8vIFRoaXMgc3luY2hyb25p
emVzIHByb2Nlc3MoKS4KLSAgICBtdXRhYmxlIExvY2sgbV9wcm9jZXNzTXV0ZXg7CisgICAgbXV0
YWJsZSBMb2NrIG1fcHJvY2Vzc0xvY2s7CiAKICAgICAvLyBTdG9yZXMgc2FtcGxlLWFjY3VyYXRl
IHZhbHVlcyBjYWxjdWxhdGVkIGFjY29yZGluZyB0byBmcmVxdWVuY3kgYW5kIGRldHVuZS4KICAg
ICBBdWRpb0Zsb2F0QXJyYXkgbV9waGFzZUluY3JlbWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAppbmRleCA4ZGMzNjBjNzUyNDRkNzc0ZjA5
MmQwY2IyMWE1OGNjM2YyMWVlZWM2Li4zYTI0MzU5MzlmMGMxMmY4MTgyZmNkN2FmZTE4YWU1Y2Fh
MDg4YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5jcHAKQEAgLTE0OSwxMCArMTQ5LDEwIEBAIHZvaWQgUGFubmVyTm9kZTo6cHJvY2VzcyhzaXpl
X3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICB9CiAgICAgfQogCi0gICAgLy8gVGhlIGF1ZGlv
IHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSBzdGQ6OnRyeV90b19s
b2NrIGluc3RlYWQuCi0gICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fcGFubmVyTXV0
ZXgsIHN0ZDo6dHJ5X3RvX2xvY2spOwotICAgIGlmICghbG9jay5vd25zX2xvY2soKSkgewotICAg
ICAgICAvLyBUb28gYmFkIC0gVGhlIHRyeV9sb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRo
ZSBtaWRkbGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5lci4KKyAgICAvLyBUaGUgYXVkaW8gdGhyZWFk
IGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUhvbGRMb2NrKCkgaW5zdGVh
ZC4KKyAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOworICAgIGlm
ICghbG9ja2VyKSB7CisgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlIb2xkTG9jaygpIGZhaWxlZC4g
V2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5naW5nIHRoZSBwYW5uZXIuCiAgICAgICAg
IGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yOTUsNyAr
Mjk1LDcgQEAgdm9pZCBQYW5uZXJOb2RlOjpzZXRQYW5uaW5nTW9kZWwoUGFubmluZ01vZGVsVHlw
ZSBtb2RlbCkKIAogICAgIGlmICghbV9wYW5uZXIuZ2V0KCkgfHwgbW9kZWwgIT0gbV9wYW5uaW5n
TW9kZWwpIHsKICAgICAgICAgLy8gVGhpcyBzeW5jaHJvbml6ZXMgd2l0aCBwcm9jZXNzKCkuCi0g
ICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wYW5uZXJNdXRleCk7CisgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAKICAgICAgICAgbV9wYW5uZXIg
PSBQYW5uZXI6OmNyZWF0ZShtb2RlbCwgc2FtcGxlUmF0ZSgpLCBtX2hydGZEYXRhYmFzZUxvYWRl
ci5nZXQoKSk7CiAgICAgICAgIG1fcGFubmluZ01vZGVsID0gbW9kZWw7CkBAIC0zMTIsNyArMzEy
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0UG9zaXRpb24oZmxvYXQgeCwg
ZmxvYXQgeSwgZmxvYXQgeikKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgLy8g
VGhpcyBzeW5jaHJvbml6ZXMgd2l0aCBwcm9jZXNzKCkuCi0gICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX3Bhbm5lck11dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vz
c0xvY2spOwogCiAgICAgYXV0byBub3cgPSBjb250ZXh0KCkuY3VycmVudFRpbWUoKTsKIApAQCAt
MzM5LDcgKzMzOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldE9yaWVudGF0
aW9uKGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAogICAgIC8vIFRoaXMgc3luY2hyb25pemVzIHdpdGggcHJvY2VzcygpLgotICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9wYW5uZXJNdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX3Byb2Nlc3NMb2NrKTsKIAogICAgIGF1dG8gbm93ID0gY29udGV4dCgpLmN1cnJlbnRU
aW1lKCk7CiAKQEAgLTM2Niw3ICszNjYsNyBAQCB2b2lkIFBhbm5lck5vZGU6OnNldERpc3RhbmNl
TW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUgbW9kZWwpCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAogICAgIC8vIFRoaXMgc3luY2hyb25pemVzIHdpdGggcHJvY2VzcygpLgotICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9wYW5uZXJNdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX3Byb2Nlc3NMb2NrKTsKIAogICAgIG1fZGlzdGFuY2VFZmZlY3Quc2V0TW9kZWwobW9k
ZWwsIHRydWUpOwogfQpAQCAtMzc5LDcgKzM3OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5l
ck5vZGU6OnNldFJlZkRpc3RhbmNlKGRvdWJsZSByZWZEaXN0YW5jZSkKICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJyZWZEaXN0YW5jZSBjYW5ub3QgYmUgc2V0IHRvIGEg
bmVnYXRpdmUgdmFsdWUiX3MgfTsKICAgICAKICAgICAvLyBUaGlzIHN5bmNocm9uaXplcyB3aXRo
IHByb2Nlc3MoKS4KLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcGFubmVyTXV0ZXgpOwor
ICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAKICAgICBtX2Rpc3Rh
bmNlRWZmZWN0LnNldFJlZkRpc3RhbmNlKHJlZkRpc3RhbmNlKTsKICAgICByZXR1cm4geyB9OwpA
QCAtMzkzLDcgKzM5Myw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldE1heERp
c3RhbmNlKGRvdWJsZSBtYXhEaXN0YW5jZSkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJh
bmdlRXJyb3IsICJtYXhEaXN0YW5jZSBjYW5ub3QgYmUgc2V0IHRvIGEgbm9uLXBvc2l0aXZlIHZh
bHVlIl9zIH07CiAgICAgCiAgICAgLy8gVGhpcyBzeW5jaHJvbml6ZXMgd2l0aCBwcm9jZXNzKCku
Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Bhbm5lck11dGV4KTsKKyAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xvY2spOwogCiAgICAgbV9kaXN0YW5jZUVmZmVjdC5z
ZXRNYXhEaXN0YW5jZShtYXhEaXN0YW5jZSk7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTQwNyw3ICs0
MDcsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRSb2xsb2ZmRmFjdG9yKGRv
dWJsZSByb2xsb2ZmRmFjdG9yKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJv
ciwgInJvbGxvZmZGYWN0b3IgY2Fubm90IGJlIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIl9zIH07
CiAgICAgCiAgICAgLy8gVGhpcyBzeW5jaHJvbml6ZXMgd2l0aCBwcm9jZXNzKCkuCi0gICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX3Bhbm5lck11dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fcHJvY2Vzc0xvY2spOwogCiAgICAgbV9kaXN0YW5jZUVmZmVjdC5zZXRSb2xsb2Zm
RmFjdG9yKHJvbGxvZmZGYWN0b3IpOwogICAgIHJldHVybiB7IH07CkBAIC00MjEsNyArNDIxLDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Q29uZU91dGVyR2Fpbihkb3VibGUg
Z2FpbikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiY29u
ZU91dGVyR2FpbiBtdXN0IGJlIGluIFswLCAxXSJfcyB9OwogICAgIAogICAgIC8vIFRoaXMgc3lu
Y2hyb25pemVzIHdpdGggcHJvY2VzcygpLgotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9w
YW5uZXJNdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsK
IAogICAgIG1fY29uZUVmZmVjdC5zZXRPdXRlckdhaW4oZ2Fpbik7CiAgICAgcmV0dXJuIHsgfTsK
QEAgLTQzMiw3ICs0MzIsNyBAQCB2b2lkIFBhbm5lck5vZGU6OnNldENvbmVPdXRlckFuZ2xlKGRv
dWJsZSBhbmdsZSkKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgLy8gVGhpcyBz
eW5jaHJvbml6ZXMgd2l0aCBwcm9jZXNzKCkuCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayht
X3Bhbm5lck11dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcHJvY2Vzc0xvY2sp
OwogCiAgICAgbV9jb25lRWZmZWN0LnNldE91dGVyQW5nbGUoYW5nbGUpOwogfQpAQCAtNDQyLDcg
KzQ0Miw3IEBAIHZvaWQgUGFubmVyTm9kZTo6c2V0Q29uZUlubmVyQW5nbGUoZG91YmxlIGFuZ2xl
KQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICAvLyBUaGlzIHN5bmNocm9uaXpl
cyB3aXRoIHByb2Nlc3MoKS4KLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fcGFubmVyTXV0
ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9wcm9jZXNzTG9jayk7CiAKICAgICBt
X2NvbmVFZmZlY3Quc2V0SW5uZXJBbmdsZShhbmdsZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCmluZGV4IGU1NDY4Zjk5M2ZkMjE1OWVhNjVjOTc4
MzE4OTVlNTdlYzE3MWM4MjguLmIxNGQzYWU3YTNkZGQxNzYyMTgxMjRjMDFkZDk2MTNjYmYzZTc2
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCkBA
IC0xNjksNyArMTY5LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFN5bmNocm9uaXplIHByb2Nlc3Mo
KSB3aXRoIHNldHRpbmcgb2YgdGhlIHBhbm5pbmcgbW9kZWwsIHNvdXJjZSdzIGxvY2F0aW9uCiAg
ICAgLy8gaW5mb3JtYXRpb24sIGxpc3RlbmVyLCBkaXN0YW5jZSBwYXJhbWV0ZXJzIGFuZCBzb3Vu
ZCBjb25lcy4KLSAgICBtdXRhYmxlIExvY2sgbV9wYW5uZXJNdXRleDsKKyAgICBtdXRhYmxlIExv
Y2sgbV9wcm9jZXNzTG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
Y3BwCmluZGV4IGY1MzIzNjU4ZjA2ZWJhNzNmM2NjOWM2ZmMyNWM5OWFkYTE2NDI2NmMuLjM2YWM4
Yjg3ZTBmM2FlYWEwNTAwMjMwY2U5MzM4YWIzYmFlYjg3ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmNwcApAQCAt
MTkxLDggKzE5MSw4IEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBzZW1hcGhvcmUu
d2FpdCgpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgc3RkOjp1bmlxdWVfbG9jazxM
b2NrPiBsb2NrKG1fcHJvY2Vzc0xvY2ssIHN0ZDo6dHJ5X3RvX2xvY2spOwotICAgICAgICAgICAg
aWYgKCFsb2NrLm93bnNfbG9jaygpKSB7CisgICAgICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhv
bGRMb2NrKG1fcHJvY2Vzc0xvY2spOworICAgICAgICAgICAgaWYgKCFsb2NrZXIpIHsKICAgICAg
ICAgICAgICAgICAvLyBXZSdyZSBsYXRlIGluIGhhbmRsaW5nIHRoZSBwcmV2aW91cyByZXF1ZXN0
LiBUaGUgbWFpbiB0aHJlYWQgbXVzdCBiZQogICAgICAgICAgICAgICAgIC8vIHZlcnkgYnVzeS4g
VGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91cnNlbGYgaGVyZS4K
ICAgICAgICAgICAgICAgICBvdXRwdXRCdWZmZXItPnplcm8oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCmluZGV4
IDY0MGU4NjdmYWRmZjYyZGNmMDI3NzczOGFhYWEwN2Q2MDZkYjI3MDkuLmQyNGRlMmViNGQwY2Ux
YWU5ODUwMGM2MTE3Y2Y4YWY0YWM5ZTFkZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcApAQCAtNTEsNyArNTEs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9EU1BLZXJuZWw+IFdhdmVTaGFwZXJQcm9jZXNzb3I6
OmNyZWF0ZUtlcm5lbCgpCiB2b2lkIFdhdmVTaGFwZXJQcm9jZXNzb3I6OnNldEN1cnZlKEZsb2F0
MzJBcnJheSogY3VydmUpCiB7CiAgICAgLy8gVGhpcyBzeW5jaHJvbml6ZXMgd2l0aCBwcm9jZXNz
KCkuCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NNdXRleCk7CisgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKIAogICAgIG1fY3VydmUgPSBjdXJ2
ZTsKIH0KQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBXYXZlU2hhcGVyUHJvY2Vzc29yOjpzZXRDdXJ2
ZShGbG9hdDMyQXJyYXkqIGN1cnZlKQogdm9pZCBXYXZlU2hhcGVyUHJvY2Vzc29yOjpzZXRPdmVy
c2FtcGxlKE92ZXJTYW1wbGVUeXBlIG92ZXJzYW1wbGUpCiB7CiAgICAgLy8gVGhpcyBzeW5jaHJv
bml6ZXMgd2l0aCBwcm9jZXNzKCkuCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nl
c3NNdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKIAog
ICAgIG1fb3ZlcnNhbXBsZSA9IG92ZXJzYW1wbGU7CiAKQEAgLTgzLDEwICs4MywxMCBAQCB2b2lk
IFdhdmVTaGFwZXJQcm9jZXNzb3I6OnByb2Nlc3MoY29uc3QgQXVkaW9CdXMqIHNvdXJjZSwgQXVk
aW9CdXMqIGRlc3RpbmF0aW9uLAogICAgIGlmICghY2hhbm5lbENvdW50TWF0Y2hlcykKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlz
IGxvY2ssIHNvIHdlIHVzZSBzdGQ6OnRyeV90b19sb2NrIGluc3RlYWQuCi0gICAgc3RkOjp1bmlx
dWVfbG9jazxMb2NrPiBsb2NrKG1fcHJvY2Vzc011dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAg
ICBpZiAoIWxvY2sub3duc19sb2NrKCkpIHsKLSAgICAgICAgLy8gVG9vIGJhZCAtIHRoZSB0cnlf
bG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBj
YWxsLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBsb2NrLCBz
byB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgorICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9s
ZExvY2sobV9wcm9jZXNzTG9jayk7CisgICAgaWYgKCFsb2NrZXIpIHsKKyAgICAgICAgLy8gVG9v
IGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2Yg
YSBzZXRDdXJ2ZSgpIGNhbGwuCiAgICAgICAgIGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vV2F2ZVNoYXBlclByb2Nlc3Nvci5oCmluZGV4IDMwMTM2OTNlY2IxMWFjNmRlMjhmMmVlNjBl
MTY0MmMwMmZlZTkyYjguLjNkYTJjZWM4MWRmYTEyMTdjYjYzYTY4NzY3M2FlNjQ3N2JlN2QwN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlclBy
b2Nlc3Nvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBl
clByb2Nlc3Nvci5oCkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgT3ZlclNhbXBsZVR5
cGUgbV9vdmVyc2FtcGxlIHsgT3ZlclNhbXBsZU5vbmUgfTsKIAogICAgIC8vIFRoaXMgc3luY2hy
b25pemVzIHByb2Nlc3MoKSB3aXRoIHNldEN1cnZlKCkuCi0gICAgbXV0YWJsZSBMb2NrIG1fcHJv
Y2Vzc011dGV4OworICAgIG11dGFibGUgTG9jayBtX3Byb2Nlc3NMb2NrOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuY3BwCmluZGV4IDVjZjhiMDA4M2QwYTc2OTc5
YjRkNzllMGFjMzQ5OWJiMTdiYjFlZWYuLmIwZDk0YWQxMzY4NDYzZTZkNDE1NmI3YjM3OGEyNzc0
OTc3MWUxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2Vi
S2l0QXVkaW9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5jcHAKQEAgLTExMSwxMCArMTExLDEwIEBAIHZvaWQg
V2ViS2l0QXVkaW9QYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9u
IHRoaXMgbG9jaywgc28gd2UgdXNlIHN0ZDo6dHJ5X3RvX2xvY2sgaW5zdGVhZC4KLSAgICBzdGQ6
OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9wYW5uZXJNdXRleCwgc3RkOjp0cnlfdG9fbG9jayk7
Ci0gICAgaWYgKCFsb2NrLm93bnNfbG9jaygpKSB7Ci0gICAgICAgIC8vIFRvbyBiYWQgLSBUaGUg
dHJ5X2xvY2soKSBmYWlsZWQuIFdlIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZiBjaGFuZ2luZyB0
aGUgcGFubmVyLgorICAgIC8vIFRoZSBhdWRpbyB0aHJlYWQgY2FuJ3QgYmxvY2sgb24gdGhpcyBs
b2NrLCBzbyB3ZSB1c2UgdHJ5SG9sZExvY2soKSBpbnN0ZWFkLgorICAgIGF1dG8gbG9ja2VyID0g
dHJ5SG9sZExvY2sobV9wcm9jZXNzTG9jayk7CisgICAgaWYgKCFsb2NrZXIpIHsKKyAgICAgICAg
Ly8gVG9vIGJhZCAtIHRyeUhvbGRMb2NrKCkgZmFpbGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRk
bGUgb2YgY2hhbmdpbmcgdGhlIHBhbm5lci4KICAgICAgICAgZGVzdGluYXRpb24tPnplcm8oKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE2MCw3ICsxNjAsNyBAQCB2b2lkIFdlYktpdEF1
ZGlvUGFubmVyTm9kZTo6c2V0UGFubmluZ01vZGVsKFBhbm5pbmdNb2RlbFR5cGUgbW9kZWwpCiB7
CiAgICAgaWYgKCFtX3Bhbm5lci5nZXQoKSB8fCBtb2RlbCAhPSBtX3Bhbm5pbmdNb2RlbCkgewog
ICAgICAgICAvLyBUaGlzIHN5bmNocm9uaXplcyB3aXRoIHByb2Nlc3MoKS4KLSAgICAgICAgYXV0
byBsb2NrZXIgPSBob2xkTG9jayhtX3Bhbm5lck11dGV4KTsKKyAgICAgICAgYXV0byBsb2NrZXIg
PSBob2xkTG9jayhtX3Byb2Nlc3NMb2NrKTsKIAogICAgICAgICBtX3Bhbm5lciA9IFBhbm5lcjo6
Y3JlYXRlKG1vZGVsLCBzYW1wbGVSYXRlKCksIG1faHJ0ZkRhdGFiYXNlTG9hZGVyLmdldCgpKTsK
ICAgICAgICAgbV9wYW5uaW5nTW9kZWwgPSBtb2RlbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dlYktpdEF1ZGlvUGFubmVyTm9kZS5oCmluZGV4IGFiNjA2
NzU0YTlhZDk2YmEwNWNjZmMwODU0ODc3ZDY1YmQwYTdlNGUuLmQwOTQxMjJjNmZlMmQyMTk3YzRi
MDUwZjk0MDQxZGUzODg2MmEzM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2ViS2l0QXVkaW9QYW5uZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9XZWJLaXRBdWRpb1Bhbm5lck5vZGUuaApAQCAtMTQ1LDcgKzE0NSw3IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9jb25uZWN0aW9uQ291bnQgeyAwIH07CiAKICAgICAv
LyBTeW5jaHJvbml6ZSBwcm9jZXNzKCkgYW5kIHNldFBhbm5pbmdNb2RlbCgpIHdoaWNoIGNhbiBj
aGFuZ2UgdGhlIHBhbm5lci4KLSAgICBtdXRhYmxlIExvY2sgbV9wYW5uZXJNdXRleDsKKyAgICBt
dXRhYmxlIExvY2sgbV9wcm9jZXNzTG9jazsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3Bw
CmluZGV4IDMyNWFlN2U1YjZiNTNhNTczZjQyOGM0YjU0NjgwNDhkNWM5NWI0NTcuLjhkODFiMDA3
Zjc5ZWM5MjI4ZGJjYzU3NzBiY2ZkNTZjMTA3NWFhOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJiQ29udm9sdmVyLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBA
IFJldmVyYkNvbnZvbHZlcjo6flJldmVyYkNvbnZvbHZlcigpCiAKICAgICAgICAgLy8gV2FrZSB1
cCB0aHJlYWQgc28gaXQgY2FuIHJldHVybgogICAgICAgICB7Ci0gICAgICAgICAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fYmFja2dyb3VuZFRocmVhZE11dGV4KTsKKyAgICAgICAgICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9jayk7CiAgICAgICAgICAg
ICBtX21vcmVJbnB1dEJ1ZmZlcmVkID0gdHJ1ZTsKICAgICAgICAgICAgIG1fYmFja2dyb3VuZFRo
cmVhZENvbmRpdGlvblZhcmlhYmxlLm5vdGlmeU9uZSgpOwogICAgICAgICB9CkBAIC0xNTAsNyAr
MTUwLDcgQEAgdm9pZCBSZXZlcmJDb252b2x2ZXI6OmJhY2tncm91bmRUaHJlYWRFbnRyeSgpCiAg
ICAgICAgIC8vIFdhaXQgZm9yIHJlYWx0aW1lIHRocmVhZCB0byBnaXZlIHVzIG1vcmUgaW5wdXQK
ICAgICAgICAgbV9tb3JlSW5wdXRCdWZmZXJlZCA9IGZhbHNlOyAgICAgICAgCiAgICAgICAgIHsK
LSAgICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2JhY2tncm91bmRUaHJl
YWRNdXRleCk7CisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9sb2NrPExvY2s+IGxvY2sobV9iYWNr
Z3JvdW5kVGhyZWFkTG9jayk7CiAKICAgICAgICAgICAgIG1fYmFja2dyb3VuZFRocmVhZENvbmRp
dGlvblZhcmlhYmxlLndhaXQobG9jaywgW3RoaXNdIHsgcmV0dXJuIG1fbW9yZUlucHV0QnVmZmVy
ZWQgfHwgbV93YW50c1RvRXhpdDsgfSk7CiAgICAgICAgIH0KQEAgLTIwNCw4ICsyMDQsOCBAQCB2
b2lkIFJldmVyYkNvbnZvbHZlcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJjZUNo
YW5uZWwsIEF1ZGlvQ2hhbm5lbCogZAogICAgIC8vIHNpZ25hbCBmcm9tIHRpbWUgdG8gdGltZSwg
c2luY2Ugd2UnbGwgZ2V0IHRvIGl0IHRoZSBuZXh0IHRpbWUgd2UncmUgY2FsbGVkLiAgV2UncmUg
Y2FsbGVkIHJlcGVhdGVkbHkKICAgICAvLyBhbmQgZnJlcXVlbnRseSAoYXJvdW5kIGV2ZXJ5IDNt
cykuICBUaGUgYmFja2dyb3VuZCB0aHJlYWQgaXMgcHJvY2Vzc2luZyB3ZWxsIGludG8gdGhlIGZ1
dHVyZSBhbmQgaGFzIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiAKICAgICAvLyBsZWV3YXkgaGVy
ZS4uLgotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2JhY2tncm91bmRUaHJlYWRN
dXRleCwgc3RkOjp0cnlfdG9fbG9jayk7Ci0gICAgaWYgKCFsb2NrLm93bnNfbG9jaygpKQorICAg
IGF1dG8gbG9ja2VyID0gdHJ5SG9sZExvY2sobV9iYWNrZ3JvdW5kVGhyZWFkTG9jayk7CisgICAg
aWYgKCFsb2NrZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbW9yZUlucHV0QnVmZmVyZWQg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUmV2ZXJi
Q29udm9sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2
ZXIuaAppbmRleCAwODEyN2I2NmY5YTU2ZjdhZmI0ZTg4OGZmNTVlYjFkZjUxYzgwM2ZiLi43YTg0
NmY5Yjk3ZTUwOGVkNDM1ZmM5ZWVkODc2OTcwOTU3MWFjOGYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuaApAQCAtODgsNyArODgsNyBAQCBw
cml2YXRlOgogICAgIFJlZlB0cjxUaHJlYWQ+IG1fYmFja2dyb3VuZFRocmVhZDsKICAgICBib29s
IG1fd2FudHNUb0V4aXQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tb3JlSW5wdXRCdWZmZXJlZCB7
IGZhbHNlIH07Ci0gICAgbXV0YWJsZSBMb2NrIG1fYmFja2dyb3VuZFRocmVhZE11dGV4OworICAg
IG11dGFibGUgTG9jayBtX2JhY2tncm91bmRUaHJlYWRMb2NrOwogICAgIG11dGFibGUgQ29uZGl0
aW9uIG1fYmFja2dyb3VuZFRocmVhZENvbmRpdGlvblZhcmlhYmxlOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGlu
YXRpb25Db2NvYS5jcHAKaW5kZXggZGE0ZTRiMmM4YjYwNzM0ODNmOWZhZGM2N2JhZmJmZmY4Njg1
ZjlhMC4uMWQwZjRlMjg4MTE4N2U3YjM1MDI5MGIwMjMzY2I4YjBjMjFhZjRlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNv
Y29hLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9BdWRpb0Rl
c3RpbmF0aW9uQ29jb2EuY3BwCkBAIC0xODYsOCArMTg2LDggQEAgT1NTdGF0dXMgQXVkaW9EZXN0
aW5hdGlvbkNvY29hOjpyZW5kZXIoY29uc3QgQXVkaW9UaW1lU3RhbXAqIHRpbWVzdGFtcCwgVUlu
dDMyIG4KICAgICAvLyBXaGVuIHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJp
bmcgb24gdGhlIEF1ZGlvV29ya2xldFRocmVhZC4KICAgICBpZiAobV9kaXNwYXRjaFRvUmVuZGVy
VGhyZWFkKSB7CiAgICAgICAgIG1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZChbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZXNUb1JlbmRlcl0oKSBtdXRhYmxlIHsKLSAg
ICAgICAgICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4gbG9jayhtX2lzUGxheWluZ0xvY2ssIHN0
ZDo6dHJ5X3RvX2xvY2spOwotICAgICAgICAgICAgaWYgKGxvY2sub3duc19sb2NrKCkgJiYgbV9p
c1BsYXlpbmcpCisgICAgICAgICAgICBhdXRvIGxvY2tlciA9IHRyeUhvbGRMb2NrKG1faXNQbGF5
aW5nTG9jayk7CisgICAgICAgICAgICBpZiAobG9ja2VyICYmIG1faXNQbGF5aW5nKQogICAgICAg
ICAgICAgICAgIHJlbmRlck9uUmVuZGVyaW5nVGhlYWQoZnJhbWVzVG9SZW5kZXIpOwogICAgICAg
ICB9KTsKICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQy5tbQppbmRleCBlZDgwYzQ3MjAwN2E2YzVmNjRmNjVjNjk4YzQ4ZWZmN2U2YWU5
MDdmLi41ZGNhNDBlM2I3OWU1ZGE1NTAwMjU3YzUxYjQ0NjMxM2M0ODQ4ODFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL0F1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCkBAIC0zNyw3ICsz
Nyw2IEBACiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBdWRpb01peC5oPgogI2ltcG9ydCA8QVZG
b3VuZGF0aW9uL0FWTWVkaWFGb3JtYXQuaD4KICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVlBsYXll
ckl0ZW0uaD4KLSNpbXBvcnQgPG11dGV4PgogI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1w
b3J0IDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgogI2ltcG9ydCA8
d3RmL0xvY2suaD4KQEAgLTY5LDcgKzY4LDcgQEAgY2xhc3MgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6OlRhcFN0b3JhZ2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8QXVkaW8KIHB1
YmxpYzoKICAgICBUYXBTdG9yYWdlKEF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKiBfdGhpcykg
OiBfdGhpcyhfdGhpcykgeyB9CiAgICAgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMqIF90aGlz
OwotICAgIExvY2sgbXV0ZXg7CisgICAgTG9jayBsb2NrOwogfTsKIAogUmVmUHRyPEF1ZGlvU291
cmNlUHJvdmlkZXJBVkZPYmpDPiBBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6Y3JlYXRlKEFW
UGxheWVySXRlbSAqaXRlbSkKQEAgLTg4LDcgKzg3LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiB7CiAgICAgc2V0Q2xpZW50KG51
bGxwdHIpOwogICAgIGlmIChtX3RhcFN0b3JhZ2UpIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBo
b2xkTG9jayhtX3RhcFN0b3JhZ2UtPm11dGV4KTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xk
TG9jayhtX3RhcFN0b3JhZ2UtPmxvY2spOwogICAgICAgICBtX3RhcFN0b3JhZ2UtPl90aGlzID0g
bnVsbHB0cjsKICAgICB9CiAKQEAgLTk3LDcgKzk2LDcgQEAgQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakM6On5BdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQygpCiAKIHZvaWQgQXVkaW9Tb3VyY2VQ
cm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVz
VG9Qcm9jZXNzKQogewotICAgIC8vIFByb3RlY3QgYWNjZXNzIHRvIG1fcmluZ0J1ZmZlciBieSB0
cnlfbG9ja2luZyB0aGUgbXV0ZXguIElmIHdlIGZhaWxlZAorICAgIC8vIFByb3RlY3QgYWNjZXNz
IHRvIG1fcmluZ0J1ZmZlciBieSB1c2luZyB0cnlIb2xkTG9jaygpLiBJZiB3ZSBmYWlsZWQKICAg
ICAvLyB0byBhcXVpcmUsIGEgcmUtY29uZmlndXJlIGlzIHVuZGVyd2F5LCBhbmQgbV9yaW5nQnVm
ZmVyIGlzIHVuc2FmZSB0byBhY2Nlc3MuCiAgICAgLy8gRW1pdCBzaWxlbmNlLgogICAgIGlmICgh
bV90YXBTdG9yYWdlKSB7CkBAIC0xMDUsOCArMTA0LDggQEAgdm9pZCBBdWRpb1NvdXJjZVByb3Zp
ZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNUb1By
b2MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHN0ZDo6dW5pcXVlX2xvY2s8TG9jaz4g
bG9jayhtX3RhcFN0b3JhZ2UtPm11dGV4LCBzdGQ6OnRyeV90b19sb2NrKTsKLSAgICBpZiAoIWxv
Y2sub3duc19sb2NrKCkgfHwgIW1fcmluZ0J1ZmZlcikgeworICAgIGF1dG8gbG9ja2VyID0gdHJ5
SG9sZExvY2sobV90YXBTdG9yYWdlLT5sb2NrKTsKKyAgICBpZiAoIWxvY2tlciB8fCAhbV9yaW5n
QnVmZmVyKSB7CiAgICAgICAgIGJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtMjU0LDcgKzI1Myw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OmZpbmFs
aXplQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3NpbmdUYXBSZWYgdGFwKQogICAgIFRhcFN0b3JhZ2Uq
IHRhcFN0b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdU
YXBHZXRTdG9yYWdlKHRhcCkpOwogCiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKHRhcFN0b3JhZ2UtPm11dGV4KTsKKyAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0
YXBTdG9yYWdlLT5sb2NrKTsKICAgICAgICAgaWYgKHRhcFN0b3JhZ2UtPl90aGlzKQogICAgICAg
ICAgICAgdGFwU3RvcmFnZS0+X3RoaXMtPmZpbmFsaXplKCk7CiAgICAgfQpAQCAtMjY2LDcgKzI2
NSw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmVDYWxsYmFjayhN
VEF1ZGlvUHJvY2Vzc2luZ1RhcFJlZiB0YXAsIENNCiAgICAgQVNTRVJUKHRhcCk7CiAgICAgVGFw
U3RvcmFnZSogdGFwU3RvcmFnZSA9IHN0YXRpY19jYXN0PFRhcFN0b3JhZ2UqPihNVEF1ZGlvUHJv
Y2Vzc2luZ1RhcEdldFN0b3JhZ2UodGFwKSk7CiAKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KHRhcFN0b3JhZ2UtPm11dGV4KTsKKyAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKHRhcFN0b3Jh
Z2UtPmxvY2spOwogCiAgICAgaWYgKHRhcFN0b3JhZ2UtPl90aGlzKQogICAgICAgICB0YXBTdG9y
YWdlLT5fdGhpcy0+cHJlcGFyZShtYXhGcmFtZXMsIHByb2Nlc3NpbmdGb3JtYXQpOwpAQCAtMjc3
LDcgKzI3Niw3IEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnVucHJlcGFyZUNh
bGxiYWNrKE1UQXVkaW9Qcm9jZXNzaW5nVGFwUmVmIHRhcCkKICAgICBBU1NFUlQodGFwKTsKICAg
ICBUYXBTdG9yYWdlKiB0YXBTdG9yYWdlID0gc3RhdGljX2Nhc3Q8VGFwU3RvcmFnZSo+KE1UQXVk
aW9Qcm9jZXNzaW5nVGFwR2V0U3RvcmFnZSh0YXApKTsKIAotICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sodGFwU3RvcmFnZS0+bXV0ZXgpOworICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sodGFw
U3RvcmFnZS0+bG9jayk7CiAKICAgICBpZiAodGFwU3RvcmFnZS0+X3RoaXMpCiAgICAgICAgIHRh
cFN0b3JhZ2UtPl90aGlzLT51bnByZXBhcmUoKTsKQEAgLTI4OCw3ICsyODcsNyBAQCB2b2lkIEF1
ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcm9jZXNzQ2FsbGJhY2soTVRBdWRpb1Byb2Nlc3Np
bmdUYXBSZWYgdGFwLCBDTQogICAgIEFTU0VSVCh0YXApOwogICAgIFRhcFN0b3JhZ2UqIHRhcFN0
b3JhZ2UgPSBzdGF0aWNfY2FzdDxUYXBTdG9yYWdlKj4oTVRBdWRpb1Byb2Nlc3NpbmdUYXBHZXRT
dG9yYWdlKHRhcCkpOwogCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0YXBTdG9yYWdlLT5t
dXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayh0YXBTdG9yYWdlLT5sb2NrKTsKIAog
ICAgIGlmICh0YXBTdG9yYWdlLT5fdGhpcykKICAgICAgICAgdGFwU3RvcmFnZS0+X3RoaXMtPnBy
b2Nlc3ModGFwLCBudW1iZXJGcmFtZXMsIGZsYWdzLCBidWZmZXJMaXN0SW5PdXQsIG51bWJlckZy
YW1lc091dCwgZmxhZ3NPdXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMuaAppbmRleCA1MWU5NWRhNWNhNTk0OGE2ZmViMDBiNzQwOGE4ZTNmNTJlM2JhYjYzLi5l
ZDc4MzBjNGQwNjA2NTU1ZTk5MDE3YjZkZGFhYjUzOTExYTBlZWVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRl
ckFWRk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
V2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMuaApAQCAtODUsNyArODUsNyBAQCBwcml2YXRl
OgogICAgIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9Owog
ICAgIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlKiBtX2NhcHR1cmVTb3VyY2UgeyBudWxscHRyIH07
CiAgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IG1fc291cmNlOwotICAgIExvY2sgbV9tdXRl
eDsKKyAgICBMb2NrIG1fbG9jazsKICAgICBib29sIG1fY29ubmVjdGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fZW5hYmxlZCB7IHRydWUgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvV2ViQXVkaW9Tb3Vy
Y2VQcm92aWRlckFWRk9iakMubW0KaW5kZXggYzY1MWQzNTRhNDAyNjAzZjhjNjkyMzU4ZDhjM2M3
ZDgwNWI2OGU0YS4uOTFlODg2NTc5NWI1OWQwYmRhMzYzNDE0ODNlYWExMjBjMWFmZGM1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1dlYkF1ZGlv
U291cmNlUHJvdmlkZXJBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9XZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQy5tbQpAQCAtNjQsNyAr
NjQsNyBAQCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6fldlYkF1ZGlvU291cmNlUHJv
dmlkZXJBVkZPYmpDKCkKIHsKICAgICBtX3NvdXJjZS0+cmVtb3ZlQXVkaW9TYW1wbGVPYnNlcnZl
cigqdGhpcyk7CiAKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgIGF1
dG8gbG9ja2VyID0gaG9sZExvY2sobV9sb2NrKTsKIAogICAgIGlmIChtX2Nvbm5lY3RlZCAmJiBt
X2NhcHR1cmVTb3VyY2UpCiAgICAgICAgIG1fY2FwdHVyZVNvdXJjZS0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOwpAQCAtNzIsOCArNzIsOCBAQCBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzo6
fldlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDKCkKIAogdm9pZCBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzo6cHJvdmlkZUlucHV0KEF1ZGlvQnVzKiBidXMsIHNpemVfdCBmcmFtZXNU
b1Byb2Nlc3MpCiB7Ci0gICAgc3RkOjp1bmlxdWVfbG9jazxMb2NrPiBsb2NrKG1fbXV0ZXgsIHN0
ZDo6dHJ5X3RvX2xvY2spOwotICAgIGlmICghbG9jay5vd25zX2xvY2soKSB8fCAhbV9kYXRhU291
cmNlIHx8ICFtX2F1ZGlvQnVmZmVyTGlzdCkgeworICAgIGF1dG8gbG9ja2VyID0gdHJ5SG9sZExv
Y2sobV9sb2NrKTsKKyAgICBpZiAoIWxvY2tlciB8fCAhbV9kYXRhU291cmNlIHx8ICFtX2F1ZGlv
QnVmZmVyTGlzdCkgewogICAgICAgICBidXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjpzZXRDbGllbnQoQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudCogY2xpZW50KQogCiB2b2lkIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjpwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFtQmFz
aWNEZXNjcmlwdGlvbiYgZm9ybWF0KQogewotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9t
dXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwogCiAgICAgTE9HKE1l
ZGlhLCAiV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByZXBhcmUoJXApIiwgdGhpcyk7
CiAKQEAgLTE1OCw3ICsxNTgsNyBAQCB2b2lkIFdlYkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpD
OjpwcmVwYXJlKGNvbnN0IEF1ZGlvU3RyZWFtQmFzaWNEZXNjcmlwdGlvbiYgZgogCiB2b2lkIFdl
YkF1ZGlvU291cmNlUHJvdmlkZXJBVkZPYmpDOjp1bnByZXBhcmUoKQogewotICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9tdXRleCk7CisgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xv
Y2spOwogCiAgICAgbV9pbnB1dERlc2NyaXB0aW9uID0gV1RGOjpudWxsb3B0OwogICAgIG1fb3V0
cHV0RGVzY3JpcHRpb24gPSBXVEY6Om51bGxvcHQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>