<?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>222492</bug_id>
          
          <creation_ts>2021-02-26 14:07:40 -0800</creation_ts>
          <short_desc>[GPUP] Replace references to GPUProcessConnection and Connection with WeakPtr&lt;GPUProcessConnection&gt;</short_desc>
          <delta_ts>2021-02-26 21:28:33 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1733970</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 14:07:40 -0800</bug_when>
    <thetext>[GPUP] Replace references to GPUProcessConnection and Connection with WeakPtr&lt;GPUProcessConnection&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733976</commentid>
    <comment_count>1</comment_count>
      <attachid>421706</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2021-02-26 14:20:11 -0800</bug_when>
    <thetext>Created attachment 421706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734122</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-26 21:27:29 -0800</bug_when>
    <thetext>Committed r273615: &lt;https://commits.webkit.org/r273615&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421706.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734125</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-26 21:28:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/74820440&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421706</attachid>
            <date>2021-02-26 14:20:11 -0800</date>
            <delta_ts>2021-02-26 21:27:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222492-20210226142010.patch</filename>
            <type>text/plain</type>
            <size>49521</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczNTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg0MzUwZmQzNmIwYTExMjMy
MDY3NzM1ZDVjNWQ5YzZmMGM5ZmQ5NDIuLmVjZWUyNzI2OTcwMDM2MmFiZTQ1ODBhNGFkMjJlMTZm
Y2JmNzk5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODcgQEAKKzIwMjEtMDItMjYgIFBlbmcgTGl1
ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUF0gUmVwbGFjZSByZWZlcmVu
Y2VzIHRvIEdQVVByb2Nlc3NDb25uZWN0aW9uIGFuZCBDb25uZWN0aW9uIHdpdGggV2Vha1B0cjxH
UFVQcm9jZXNzQ29ubmVjdGlvbj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyMjQ5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFzIHdlIGRpZCBpbiByMjczNDczLCB0aGlzIHBhdGNoIHJlcGxhY2VzIHNv
bWUgcmVmZXJlbmNlcyB0byBgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25gIGFuZCBgQ29ubmVjdGlvbmAK
KyAgICAgICAgd2l0aCBgV2Vha1B0cjxHUFVQcm9jZXNzQ29ubmVjdGlvbj5gLiByMjczNDczIHdh
cyBmb3IgdGhlIEdQVSBwcm9jZXNzLCB0aGlzIHBhdGNoIGlzIGZvciB3ZWIgcHJvY2Vzc2VzLgor
ICAgICAgICBXaGVuIHRoZSBHUFUgcHJvY2VzcyBjcmFzaGVzLCB0aGUgYEdQVVByb2Nlc3NDb25u
ZWN0aW9uYCBvYmplY3QgKGFzIHdlbGwgYXMgaXRzIGBDb25uZWN0aW9uYCBvYmplY3QpCisgICAg
ICAgIHdpbGwgYmUgZGVzdHJveWVkLCBhbmQgdGhlIHJlZmVyZW5jZSB3aWxsIGJlIGludmFsaWQu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBmaXhpbmcgdGVzdCBjcmFzaGVzIG9uIGJvdHMuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6OkF1ZGlvVHJhY2tQcml2YXRlUmVtb3Rl
OjpzZXRFbmFibGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1RyYWNr
UHJpdmF0ZVJlbW90ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxheWVyUHJpdmF0
ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlVGV4dFRyYWNrKToKKyAgICAgICAgKFdlYktpdDo6
TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRSZW1vdGVWaWRlb1RyYWNrKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6Ok1lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6fk1l
ZGlhU291cmNlUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6Ok1lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZTo6YWRkU291cmNlQnVmZmVyKToKKyAgICAgICAgKFdlYktpdDo6TWVkaWFTb3Vy
Y2VQcml2YXRlUmVtb3RlOjpkdXJhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpNZWRp
YVNvdXJjZVByaXZhdGVSZW1vdGU6OnNldFJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpN
ZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OnNldElzU2Vla2luZyk6CisgICAgICAgIChXZWJLaXQ6
Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6d2FpdEZvclNlZWtDb21wbGV0ZWQpOgorICAgICAg
ICAoV2ViS2l0OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OnNlZWtDb21wbGV0ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OnNldFRpbWVGdWRnZUZhY3Rv
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2YXRlUmVt
b3RlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVy
QVZGLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpSZW1vdGVJ
bWFnZURlY29kZXJBVkYpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVJbWFnZURlY29kZXJBVkY6
OmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VE
ZWNvZGVyQVZGOjpzZXRFeHBlY3RlZENvbnRlbnRTaXplKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXREYXRhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1h
Z2VEZWNvZGVyQVZGOjpncHVQcm9jZXNzQ29ubmVjdGlvbiBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmg6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXI6OmdwdVBy
b2Nlc3NDb25uZWN0aW9uIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUpOgorICAg
ICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjp+U291cmNlQnVmZmVyUHJp
dmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6
OmFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmFi
b3J0KToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6cmVzZXRQ
YXJzZXJTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6
OnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlOjpzZXRSZWFkeVN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZTo6c2V0QWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZTo6c2V0TWVkaWFTb3VyY2VFbmRlZCk6CisgICAgICAgIChXZWJLaXQ6
OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNldE1vZGUpOgorICAgICAgICAoV2ViS2l0OjpT
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVCdWZmZXJlZEZyb21UcmFja0J1ZmZlcnMp
OgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVDb2Rl
ZEZyYW1lcyk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmV2
aWN0Q29kZWRGcmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlOjphZGRUcmFja0J1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZh
dGVSZW1vdGU6OnJlc2V0VHJhY2tCdWZmZXJzKToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZTo6Y2xlYXJUcmFja0J1ZmZlcnMpOgorICAgICAgICAoV2ViS2l0OjpT
b3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRBbGxUcmFja0J1ZmZlcnNOZWVkUmFuZG9tQWNj
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6c2V0R3Jv
dXBTdGFydFRpbWVzdGFtcCk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVS
ZW1vdGU6OnNldEdyb3VwU3RhcnRUaW1lc3RhbXBUb0VuZFRpbWVzdGFtcCk6CisgICAgICAgIChX
ZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNldFNob3VsZEdlbmVyYXRlVGltZXN0
YW1wcyk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnJlZW5x
dWV1ZU1lZGlhSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRl
UmVtb3RlOjpyZXNldFRpbWVzdGFtcE9mZnNldEluVHJhY2tCdWZmZXJzKToKKyAgICAgICAgKFdl
YktpdDo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6c3RhcnRDaGFuZ2luZ1R5cGUpOgorICAg
ICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRUaW1lc3RhbXBPZmZz
ZXQpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRBcHBl
bmRXaW5kb3dTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGU6OnNldEFwcGVuZFdpbmRvd0VuZCk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGU6OnNlZWtUb1RpbWUpOgorICAgICAgICAoV2ViS2l0OjpTb3VyY2VCdWZmZXJQ
cml2YXRlUmVtb3RlOjp1cGRhdGVUcmFja0lkcyk6CisgICAgICAgIChXZWJLaXQ6OlNvdXJjZUJ1
ZmZlclByaXZhdGVSZW1vdGU6OmJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNrSWQpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvR1BVL21lZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZSk6CisgICAgICAgIChXZWJLaXQ6OlRleHRUcmFja1ByaXZhdGVSZW1vdGU6OnNldE1vZGUp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1RyYWNrUHJpdmF0ZVJlbW90
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZSk6CisgICAgICAgIChXZWJLaXQ6OlZpZGVvVHJhY2tQcml2YXRlUmVt
b3RlOjpzZXRTZWxlY3RlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGUuaDoKKyAgICAgICAgKFdlYktpdDo6VmlkZW9UcmFja1ByaXZhdGVS
ZW1vdGU6OmNyZWF0ZSk6CisKIDIwMjEtMDItMjYgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2No
ZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBXS01lZGlhUGxheWJhY2tTdGF0ZSBO
U19FTlVNIGJhY2sgdG8gTlNVSW50ZWdlciB0eXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3Bw
CmluZGV4IGIwZjAxZTEyODkyOGIwMTBjZjI3NzczMWQxMDEyYmQyMzgwZWYyN2EuLmI2YTljMWI5
NjEyYTlhNWJhNzY3MTllMzJhNTc0YTdjOTczZjc3NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGUuY3BwCkBAIC0yOSwxNSArMjksMTUgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAot
I2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJlbW90
ZU1lZGlhUGxheWVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLUF1ZGlvVHJhY2tQcml2
YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQotICAgIDogbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb24pCitBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZTo6QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUo
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRp
YVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciBpZGVuZGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29u
ZmlndXJhdGlvbikKKyAgICA6IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24obWFrZVdlYWtQdHIoZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24pKQogICAgICwgbV9wbGF5ZXJJZGVudGlmaWVyKHBsYXllcklkZW50
aWZpZXIpCiAgICAgLCBtX2lkZW5kaWZpZXIoaWRlbmRpZmllcikKIHsKQEAgLTQ2LDggKzQ2LDEx
IEBAIEF1ZGlvVHJhY2tQcml2YXRlUmVtb3RlOjpBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlCiAKIHZvaWQgQXVkaW9UcmFja1ByaXZhdGVSZW1v
dGU6OnNldEVuYWJsZWQoYm9vbCBlbmFibGVkKQogeworICAgIGlmICghbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCiAgICAgaWYgKGVuYWJsZWQgIT0gdGhpcy0+ZW5h
YmxlZCgpKQotICAgICAgICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQ
bGF5ZXJQcm94eTo6QXVkaW9UcmFja1NldEVuYWJsZWQobV9pZGVuZGlmaWVyLCBlbmFibGVkKSwg
bV9wbGF5ZXJJZGVudGlmaWVyKTsKKyAgICAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OkF1ZGlvVHJh
Y2tTZXRFbmFibGVkKG1faWRlbmRpZmllciwgZW5hYmxlZCksIG1fcGxheWVySWRlbnRpZmllcik7
CiAKICAgICBBdWRpb1RyYWNrUHJpdmF0ZTo6c2V0RW5hYmxlZChlbmFibGVkKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFja1ByaXZh
dGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvQXVkaW9UcmFj
a1ByaXZhdGVSZW1vdGUuaAppbmRleCA4NTdhZTg5ZWViN2M3M2NkNzgzY2YzZDUwNThkZDljMzRm
ODE3ZDJiLi40N2I2MTVlZDM3NjA1ZGJlYjk3OTcxMGNjYmJhOTdhOTA2MTNiNmJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL0F1ZGlvVHJhY2tQcml2YXRl
UmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9BdWRpb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMiwyOCArMzIsMjUgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0F1ZGlvVHJhY2tQcml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVBsYXllcklkZW50
aWZpZXIuaD4KIAotbmFtZXNwYWNlIElQQyB7Ci1jbGFzcyBDb25uZWN0aW9uOwotfQotCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgR1BVUHJvY2Vzc0Nvbm5lY3Rpb247CiBjbGFzcyBNZWRp
YVBsYXllclByaXZhdGVSZW1vdGU7CiBzdHJ1Y3QgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbjsKIAogY2xhc3MgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6QXVkaW9UcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEF1ZGlv
VHJhY2tQcml2YXRlUmVtb3RlKQogcHVibGljOgotICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1By
aXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8QXVkaW9UcmFja1ByaXZhdGVSZW1vdGU+
IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNv
cmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVS
ZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
QXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoY29ubmVjdGlvbiwgcGxheWVySWRlbnRpZmllciwgaWRl
bmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBBdWRpb1RyYWNrUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxh
eWVySWRlbnRpZmllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAg
IH0KIAogICAgIEF0b21TdHJpbmcgaWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lkOyB9CiAg
ICAgdm9pZCB1cGRhdGVDb25maWd1cmF0aW9uKFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRp
b24mJik7CiAKIHByaXZhdGU6Ci0gICAgQXVkaW9UcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpDb25u
ZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1v
dGVJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOworICAgIEF1
ZGlvVHJhY2tQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVk
aWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwogCiAgICAgdXNpbmcgQXVkaW9UcmFja0tpbmQg
PSBXZWJDb3JlOjpBdWRpb1RyYWNrUHJpdmF0ZTo6S2luZDsKICAgICBBdWRpb1RyYWNrS2luZCBr
aW5kKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9raW5kOyB9CkBAIC02Miw3ICs1OSw3IEBAIHBy
aXZhdGU6CiAgICAgaW50IHRyYWNrSW5kZXgoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3RyYWNr
SW5kZXg7IH0KICAgICB2b2lkIHNldEVuYWJsZWQoYm9vbCkgZmluYWw7CiAKLSAgICBJUEM6OkNv
bm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKKyAgICBXZWFrUHRyPEdQVVByb2Nlc3NDb25uZWN0aW9u
PiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIEF1ZGlvVHJhY2tLaW5kIG1fa2luZCB7IE5v
bmUgfTsKICAgICBBdG9tU3RyaW5nIG1faWQ7CiAgICAgQXRvbVN0cmluZyBtX2xhYmVsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVBsYXllclBy
aXZhdGVSZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRp
YVBsYXllclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDhjYjQ2MTgyNWNjNjQxOTU4MWIzN2RkYTFj
NDY2OTM2MjI1N2M5YzguLjFmNDk1ZGQzYWI5YmY1NmU4MDAyYTE5Nzc1NGM5YjQ1YmM5OWU4NTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFQbGF5
ZXJQcml2YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL01lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCBGbG9h
dFNpemUgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjpuYXR1cmFsU2l6ZSgpIGNvbnN0CiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTo6YWRkUmVtb3RlQXVkaW9UcmFjayhUcmFja1ByaXZh
dGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3Vy
YXRpb24mJiBjb25maWd1cmF0aW9uKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9hdWRpb1Ry
YWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKLSAgICAgICAgcmV0dXJuIEF1ZGlvVHJhY2tQ
cml2YXRlUmVtb3RlOjpjcmVhdGUoY29ubmVjdGlvbigpLCBtX2lkLCBpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbmZpZ3VyYXRpb24pKTsKKyAgICAgICAgcmV0dXJuIEF1ZGlvVHJhY2tQcml2YXRlUmVt
b3RlOjpjcmVhdGUobV9tYW5hZ2VyLmdwdVByb2Nlc3NDb25uZWN0aW9uKCksIG1faWQsIGlkZW50
aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOwogICAgIH0pOwogICAgIEFTU0VSVChhZGRS
ZXN1bHQuaXNOZXdFbnRyeSk7CiAKQEAgLTUwNCw3ICs1MDQsNyBAQCB2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZVJlbW90ZTo6cmVtb3RlQXVkaW9UcmFja0NvbmZpZ3VyYXRpb25DaGFuZ2VkKFRyYWNr
UHJpdmF0ZQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OmFkZFJlbW90ZVRleHRUcmFj
ayhUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFRleHRUcmFja1ByaXZh
dGVSZW1vdGVDb25maWd1cmF0aW9uJiYgY29uZmlndXJhdGlvbikKIHsKICAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fdGV4dFRyYWNrcy5lbnN1cmUoaWRlbnRpZmllciwgWyZdIHsKLSAgICAgICAgcmV0
dXJuIFRleHRUcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShjb25uZWN0aW9uKCksIG1faWQsIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgICAgICByZXR1cm4gVGV4dFRy
YWNrUHJpdmF0ZVJlbW90ZTo6Y3JlYXRlKG1fbWFuYWdlci5ncHVQcm9jZXNzQ29ubmVjdGlvbigp
LCBtX2lkLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKICAgICB9KTsKICAg
ICBBU1NFUlQoYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogCkBAIC02MjIsNyArNjIyLDcgQEAgdm9p
ZCBNZWRpYVBsYXllclByaXZhdGVSZW1vdGU6OnJlbW92ZUdlbmVyaWNDdWUoVHJhY2tQcml2YXRl
UmVtb3RlSWRlbnRpZmllciBpZGUKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlOjphZGRS
ZW1vdGVWaWRlb1RyYWNrKFRyYWNrUHJpdmF0ZVJlbW90ZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCiB7CiAgICAg
YXV0byBhZGRSZXN1bHQgPSBtX3ZpZGVvVHJhY2tzLmVuc3VyZShpZGVudGlmaWVyLCBbJl0gewot
ICAgICAgICByZXR1cm4gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShjb25uZWN0aW9u
KCksIG1faWQsIGlkZW50aWZpZXIsIFdURk1vdmUoY29uZmlndXJhdGlvbikpOworICAgICAgICBy
ZXR1cm4gVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6OmNyZWF0ZShtX21hbmFnZXIuZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24oKSwgbV9pZCwgaWRlbnRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7
CiAgICAgfSk7CiAgICAgQVNTRVJUKGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJjZVByaXZhdGVS
ZW1vdGUuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNvdXJj
ZVByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDcwMmFlY2Y1MGQ3ZTY0YWMxYzk2MmNiZWI5ZGEwMThk
MjFmMzMzMTIuLjM0MTIwNzc3OWJjNjQwMjJiNWE3MzdmNGJlOTI3YWM3MGIwNWNmNWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVkaWFTb3VyY2VQcml2
YXRlUmVtb3RlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01l
ZGlhU291cmNlUHJpdmF0ZVJlbW90ZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPE1lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZT4gTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpjcmVhdGUoR1BVUHJv
Y2Vzc0Nvbm5lY3QKIH0KIAogTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpNZWRpYVNvdXJjZVBy
aXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBS
ZW1vdGVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVtb3RlTWVkaWFQbGF5ZXJN
SU1FVHlwZUNhY2hlJiBtaW1lVHlwZUNhY2hlLCBjb25zdCBNZWRpYVBsYXllclByaXZhdGVSZW1v
dGUmIG1lZGlhUGxheWVyUHJpdmF0ZSwgTWVkaWFTb3VyY2VQcml2YXRlQ2xpZW50KiBjbGllbnQp
Ci0gICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0aW9uKQorICAg
IDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVjdGlv
bikpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fbWltZVR5cGVDYWNo
ZShtaW1lVHlwZUNhY2hlKQogICAgICwgbV9tZWRpYVBsYXllclByaXZhdGUobWFrZVdlYWtQdHIo
bWVkaWFQbGF5ZXJQcml2YXRlKSkKQEAgLTY3LDcgKzY3LDcgQEAgTWVkaWFTb3VyY2VQcml2YXRl
UmVtb3RlOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIGdw
dVByb2MKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogCi0gICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24tPm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6TWVk
aWFTb3VyY2VQcml2YXRlUmVtb3RlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1faWRlbnRpZmll
ci50b1VJbnQ2NCgpLCAqdGhpcyk7CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKICAgICBt
X2NsaWVudC0+c2V0TG9nSWRlbnRpZmllcihtX2xvZ0lkZW50aWZpZXIpOwpAQCAtNzcsNyArNzcs
OCBAQCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6Ok1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZShH
UFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvYwogTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjp+
TWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlKCkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24ubWVzc2FnZVJlY2VpdmVyTWFwKCkucmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIGlmICht
X2dwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5t
ZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6Ok1lZGlh
U291cmNlUHJpdmF0ZVJlbW90ZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX2lkZW50aWZpZXIu
dG9VSW50NjQoKSk7CiAKICAgICBmb3IgKGF1dG8gaXQgPSBtX3NvdXJjZUJ1ZmZlcnMuYmVnaW4o
KSwgZW5kID0gbV9zb3VyY2VCdWZmZXJzLmVuZCgpOyBpdCAhPSBlbmQ7ICsraXQpCiAgICAgICAg
ICgqaXQpLT5jbGVhck1lZGlhU291cmNlKCk7CkBAIC05MywxNCArOTQsMTYgQEAgTWVkaWFTb3Vy
Y2VQcml2YXRlOjpBZGRTdGF0dXMgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjphZGRTb3VyY2VC
dWZmZXIoY29uc3QgQ28KICAgICBpZiAobV9taW1lVHlwZUNhY2hlLnN1cHBvcnRzVHlwZUFuZENv
ZGVjcyhwYXJhbWV0ZXJzKSA9PSBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlOjpJc05vdFN1cHBv
cnRlZCkKICAgICAgICAgcmV0dXJuIEFkZFN0YXR1czo6Tm90U3VwcG9ydGVkOwogCi0gICAgQWRk
U3RhdHVzIHN0YXR1czsKKyAgICBBZGRTdGF0dXMgc3RhdHVzID0gQWRkU3RhdHVzOjpOb3RTdXBw
b3J0ZWQ7CisgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm4g
c3RhdHVzOworCiAgICAgT3B0aW9uYWw8UmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcj4gcmVt
b3RlU291cmNlQnVmZmVySWRlbnRpZmllcjsKLSAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24uY29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5
OjpBZGRTb3VyY2VCdWZmZXIoY29udGVudFR5cGUpLCBNZXNzYWdlczo6UmVtb3RlTWVkaWFTb3Vy
Y2VQcm94eTo6QWRkU291cmNlQnVmZmVyOjpSZXBseShzdGF0dXMsIHJlbW90ZVNvdXJjZUJ1ZmZl
cklkZW50aWZpZXIpLCBtX2lkZW50aWZpZXIpKQotICAgICAgICBzdGF0dXMgPSBBZGRTdGF0dXM6
Ok5vdFN1cHBvcnRlZDsKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCku
c2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OkFkZFNvdXJjZUJ1ZmZl
cihjb250ZW50VHlwZSksIE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjpBZGRTb3Vy
Y2VCdWZmZXI6OlJlcGx5KHN0YXR1cywgcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciksIG1f
aWRlbnRpZmllcik7CiAKICAgICBpZiAoc3RhdHVzID09IEFkZFN0YXR1czo6T2spIHsKICAgICAg
ICAgQVNTRVJUKHJlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIuaGFzVmFsdWUoKSk7Ci0gICAg
ICAgIGF1dG8gbmV3U291cmNlQnVmZmVyID0gU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6Y3Jl
YXRlKG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sICpyZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
LCAqdGhpcywgKm1fbWVkaWFQbGF5ZXJQcml2YXRlKTsKKyAgICAgICAgYXV0byBuZXdTb3VyY2VC
dWZmZXIgPSBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpjcmVhdGUoKm1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24sICpyZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLCAqdGhpcywgKm1fbWVkaWFQ
bGF5ZXJQcml2YXRlKTsKICAgICAgICAgb3V0UHJpdmF0ZSA9IG5ld1NvdXJjZUJ1ZmZlci5jb3B5
UmVmKCk7CiAgICAgICAgIG1fc291cmNlQnVmZmVycy5hcHBlbmQoV1RGTW92ZShuZXdTb3VyY2VC
dWZmZXIpKTsKICAgICB9CkBAIC0xMTAsNyArMTEzLDEwIEBAIE1lZGlhU291cmNlUHJpdmF0ZTo6
QWRkU3RhdHVzIE1lZGlhU291cmNlUHJpdmF0ZVJlbW90ZTo6YWRkU291cmNlQnVmZmVyKGNvbnN0
IENvCiAKIHZvaWQgTWVkaWFTb3VyY2VQcml2YXRlUmVtb3RlOjpkdXJhdGlvbkNoYW5nZWQoY29u
c3QgTWVkaWFUaW1lJiBkdXJhdGlvbikKIHsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjpEdXJhdGlv
bkNoYW5nZWQoZHVyYXRpb24pLCBtX2lkZW50aWZpZXIpOworICAgIGlmICghbV9ncHVQcm9jZXNz
Q29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OkR1
cmF0aW9uQ2hhbmdlZChkdXJhdGlvbiksIG1faWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTWVkaWFT
b3VyY2VQcml2YXRlUmVtb3RlOjptYXJrRW5kT2ZTdHJlYW0oRW5kT2ZTdHJlYW1TdGF0dXMpCkBA
IC0xMzYsMjkgKzE0Miw0NCBAQCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBNZWRpYVNvdXJjZVBy
aXZhdGVSZW1vdGU6OnJlYWR5U3RhdGUoKSBjb25zdAogCiB2b2lkIE1lZGlhU291cmNlUHJpdmF0
ZVJlbW90ZTo6c2V0UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRl
KQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OlNldFJlYWR5U3RhdGUocmVhZHlTdGF0ZSksIG1f
aWRlbnRpZmllcik7CisgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6U2V0UmVhZHlTdGF0ZShyZWFkeVN0YXRl
KSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OnNl
dElzU2Vla2luZyhib29sIGlzU2Vla2luZykKIHsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24pCisgICAgICAgIHJldHVybjsKKwogICAgIE1lZGlhU291cmNlUHJpdmF0ZTo6c2V0SXNT
ZWVraW5nKGlzU2Vla2luZyk7Ci0gICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTb3VyY2VQcm94eTo6U2V0SXNTZWVraW5nKGlz
U2Vla2luZyksIG1faWRlbnRpZmllcik7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU291cmNlUHJveHk6OlNldElzU2Vl
a2luZyhpc1NlZWtpbmcpLCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIE1lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZTo6d2FpdEZvclNlZWtDb21wbGV0ZWQoKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU291cmNlUHJv
eHk6OldhaXRGb3JTZWVrQ29tcGxldGVkKCksIG1faWRlbnRpZmllcik7CisgICAgaWYgKCFtX2dw
dVByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2dwdVByb2Nlc3ND
b25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFTb3VyY2VQ
cm94eTo6V2FpdEZvclNlZWtDb21wbGV0ZWQoKSwgbV9pZGVudGlmaWVyKTsKIH0KIAogdm9pZCBN
ZWRpYVNvdXJjZVByaXZhdGVSZW1vdGU6OnNlZWtDb21wbGV0ZWQoKQogewotICAgIG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhU291
cmNlUHJveHk6OlNlZWtDb21wbGV0ZWQoKSwgbV9pZGVudGlmaWVyKTsKKyAgICBpZiAoIW1fZ3B1
UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNvdXJjZVBy
b3h5OjpTZWVrQ29tcGxldGVkKCksIG1faWRlbnRpZmllcik7CiB9CiAKIHZvaWQgTWVkaWFTb3Vy
Y2VQcml2YXRlUmVtb3RlOjpzZXRUaW1lRnVkZ2VGYWN0b3IoY29uc3QgTWVkaWFUaW1lJiBmdWRn
ZUZhY3RvcikKIHsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJl
dHVybjsKKwogICAgIE1lZGlhU291cmNlUHJpdmF0ZTo6c2V0VGltZUZ1ZGdlRmFjdG9yKGZ1ZGdl
RmFjdG9yKTsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjpTZXRUaW1lRnVkZ2VGYWN0b3IoZnVkZ2VG
YWN0b3IpLCBtX2lkZW50aWZpZXIpOworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5l
Y3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVNZWRpYVNvdXJjZVByb3h5OjpTZXRUaW1lRnVk
Z2VGYWN0b3IoZnVkZ2VGYWN0b3IpLCBtX2lkZW50aWZpZXIpOwogfQogCiB2b2lkIE1lZGlhU291
cmNlUHJpdmF0ZVJlbW90ZTo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9NZWRpYVNv
dXJjZVByaXZhdGVSZW1vdGUuaAppbmRleCAzNGRmOTY5NjJiY2ZiY2NmMDlhODBkZWUwM2U1MmJh
YjRkODM0Y2VkLi5mMzVmMTU5MTc5N2EyODQ1YTdiNWVjODRlNzhkMDg0OTdkYzdkNDhlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL01lZGlhU291cmNlUHJp
dmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvTWVk
aWFTb3VyY2VQcml2YXRlUmVtb3RlLmgKQEAgLTg1LDcgKzg1LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZp
bmFsOwogICAgIHZvaWQgc2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmKTsKIAotICAgIEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOworICAgIFdlYWtQdHI8R1BV
UHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVtb3RlTWVk
aWFTb3VyY2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZW1vdGVNZWRpYVBsYXllck1J
TUVUeXBlQ2FjaGUmIG1fbWltZVR5cGVDYWNoZTsKICAgICBXZWFrUHRyPE1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZT4gbV9tZWRpYVBsYXllclByaXZhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRi5jcHAK
aW5kZXggMWRlZGVmZTUzNDJhNTkxMjllMmYxNTk2MDBiMjFiMDc5NmU4ZjQ3Zi4uMGUzNjBjMGMy
YTUxODg5NGM1NmJkMmNmN2RkNTk1Y2NkMzViZDMwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkYuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGLmNw
cApAQCAtNDcsNiArNDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGOjpSZW1vdGVJbWFnZURlY29kZXJBVkYoUmVtb3RlSW1hZ2VEZWNvZGVyQVZG
TWFuYWdlciYgbWFuYWdlciwgY29uc3QgV2ViQ29yZTo6SW1hZ2VEZWNvZGVySWRlbnRpZmllciYg
aWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICA6IEltYWdlRGVjb2Rlcigp
CisgICAgLCBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKG1ha2VXZWFrUHRyKG1hbmFnZXIuZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24oKSkpCiAgICAgLCBtX21hbmFnZXIobWFuYWdlcikKICAgICAsIG1faWRl
bnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9taW1lVHlwZShtaW1lVHlwZSkKQEAgLTU5LDEx
ICs2MCw2IEBAIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6flJlbW90ZUltYWdlRGVjb2RlckFWRigp
CiAgICAgbV9tYW5hZ2VyLmRlbGV0ZVJlbW90ZUltYWdlRGVjb2RlcihtX2lkZW50aWZpZXIpOwog
fQogCi1HUFVQcm9jZXNzQ29ubmVjdGlvbiYgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpncHVQcm9j
ZXNzQ29ubmVjdGlvbigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbWFuYWdlci5ncHVQcm9jZXNz
Q29ubmVjdGlvbigpOwotfQotCiBib29sIFJlbW90ZUltYWdlRGVjb2RlckFWRjo6Y2FuRGVjb2Rl
VHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogewogICAgIC8vIFRPRE86IFdlIG1heSBuZWVk
IHRvIHJlbW92ZSBBVkFzc2V0TUlNRVR5cGVDYWNoZSBpbiB0aGUgV2ViIHByb2Nlc3MKQEAgLTE3
MSw4ICsxNjcsMTEgQEAgUGxhdGZvcm1JbWFnZVB0ciBSZW1vdGVJbWFnZURlY29kZXJBVkY6OmNy
ZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KHNpemVfdCBpbmRleCwgU3UKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBjYWxsT25NYWluVGhyZWFkQW5kV2FpdChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBpbmRleF0geworICAgICAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24pCisgICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgT3B0aW9uYWw8TWFjaFNl
bmRSaWdodD4gc2VuZFJpZ2h0OwotICAgICAgICBpZiAoIWdwdVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94
eTo6Q3JlYXRlRnJhbWVJbWFnZUF0SW5kZXgobV9pZGVudGlmaWVyLCBpbmRleCksIE1lc3NhZ2Vz
OjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6Q3JlYXRlRnJhbWVJbWFnZUF0SW5kZXg6OlJl
cGx5KHNlbmRSaWdodCksIDApKQorICAgICAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKS5zZW5kU3luYyhNZXNzYWdlczo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJv
eHk6OkNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KG1faWRlbnRpZmllciwgaW5kZXgpLCBNZXNzYWdl
czo6UmVtb3RlSW1hZ2VEZWNvZGVyQVZGUHJveHk6OkNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4OjpS
ZXBseShzZW5kUmlnaHQpLCAwKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBpZiAo
IXNlbmRSaWdodCkKQEAgLTE5NCwyMCArMTkzLDI2IEBAIFBsYXRmb3JtSW1hZ2VQdHIgUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGOjpjcmVhdGVGcmFtZUltYWdlQXRJbmRleChzaXplX3QgaW5kZXgsIFN1
CiAKIHZvaWQgUmVtb3RlSW1hZ2VEZWNvZGVyQVZGOjpzZXRFeHBlY3RlZENvbnRlbnRTaXplKGxv
bmcgbG9uZyBleHBlY3RlZENvbnRlbnRTaXplKQogewotICAgIGdwdVByb2Nlc3NDb25uZWN0aW9u
KCkuY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5
OjpTZXRFeHBlY3RlZENvbnRlbnRTaXplKG1faWRlbnRpZmllciwgZXhwZWN0ZWRDb250ZW50U2l6
ZSksIDApOworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpTZXRFeHBlY3RlZENvbnRlbnRTaXplKG1f
aWRlbnRpZmllciwgZXhwZWN0ZWRDb250ZW50U2l6ZSksIDApOwogfQogCiAvLyBJZiBhbGxEYXRh
UmVjZWl2ZWQgaXMgdHJ1ZSwgdGhlIGNhbGxlciBleHBlY3RzIGVuY29kZWREYXRhU3RhdHVzKCkg
dG8gYmUgPj0gRW5jb2RlZERhdGFTdGF0dXM6OlNpemVBdmFpbGFibGUKIC8vIGFmdGVyIHRoaXMg
ZnVuY3Rpb24gcmV0dXJucyAoaW4gdGhlIHNhbWUgcnVuIGxvb3ApLgogdm9pZCBSZW1vdGVJbWFn
ZURlY29kZXJBVkY6OnNldERhdGEoU2hhcmVkQnVmZmVyJiBkYXRhLCBib29sIGFsbERhdGFSZWNl
aXZlZCkKIHsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVy
bjsKKwogICAgIElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlIHsg
ZGF0YSB9OwogCiAgICAgdWludDMyX3QgZnJhbWVDb3VudDsKICAgICBJbnRTaXplIHNpemU7CiAg
ICAgYm9vbCBoYXNUcmFjazsKICAgICBPcHRpb25hbDxWZWN0b3I8SW1hZ2VEZWNvZGVyOjpGcmFt
ZUluZm8+PiBmcmFtZUluZm9zOwotICAgIGlmICghZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25u
ZWN0aW9uKCkuc2VuZFN5bmMoTWVzc2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpT
ZXREYXRhKG1faWRlbnRpZmllciwgZGF0YVJlZmVyZW5jZSwgYWxsRGF0YVJlY2VpdmVkKSwgTWVz
c2FnZXM6OlJlbW90ZUltYWdlRGVjb2RlckFWRlByb3h5OjpTZXREYXRhOjpSZXBseShmcmFtZUNv
dW50LCBzaXplLCBoYXNUcmFjaywgZnJhbWVJbmZvcyksIDApKQorICAgIGlmICghbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRTeW5jKE1lc3NhZ2VzOjpSZW1vdGVJbWFn
ZURlY29kZXJBVkZQcm94eTo6U2V0RGF0YShtX2lkZW50aWZpZXIsIGRhdGFSZWZlcmVuY2UsIGFs
bERhdGFSZWNlaXZlZCksIE1lc3NhZ2VzOjpSZW1vdGVJbWFnZURlY29kZXJBVkZQcm94eTo6U2V0
RGF0YTo6UmVwbHkoZnJhbWVDb3VudCwgc2l6ZSwgaGFzVHJhY2ssIGZyYW1lSW5mb3MpLCAwKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pc0FsbERhdGFSZWNlaXZlZCA9IGFsbERhdGFSZWNl
aXZlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVt
b3RlSW1hZ2VEZWNvZGVyQVZGLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1JlbW90ZUltYWdlRGVjb2RlckFWRi5oCmluZGV4IDBkNjVkMTU3MDU3N2ZhN2E2ZWJhOThmZmY0
MWUwNGI4Yjc1ZTNiOTUuLmFiMjJlYWFiMzNmYjU1ZmE5MDM5ZTI3NjAzNDI0OTY4YWI2ZWE3ZTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3RlSW1h
Z2VEZWNvZGVyQVZGLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9S
ZW1vdGVJbWFnZURlY29kZXJBVkYuaApAQCAtODcsOCArODcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBlbmNvZGVkRGF0YVN0YXR1c0NoYW5nZWQoc2l6ZV90IGZyYW1lQ291bnQsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmLCBib29sIGhhc1RyYWNrKTsKIAogcHJpdmF0ZToKLSAgICBHUFVQcm9jZXNz
Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24oKSBjb25zdDsKLQorICAgIFdlYWtQdHI8
R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGTWFuYWdlciYgbV9tYW5hZ2VyOwogICAgIFdlYkNvcmU6OkltYWdlRGVj
b2RlcklkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZN
YW5hZ2VyLmNwcAppbmRleCBlNjUzMzBiODdlYjQzMzdmZTZiNmY1YmE2MjgzODBiODNiYjQxNWVk
Li5mYzc3M2QxZTM3ZWQ0ZjJiMjRjOWI4NzMwMjEwNjA4ZDliNDAzMWE0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1JlbW90ZUltYWdlRGVjb2RlckFWRk1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvUmVtb3Rl
SW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5jcHAKQEAgLTgzLDEwICs4Myw3IEBAIGNvbnN0IGNoYXIq
ICBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpzdXBwbGVtZW50TmFtZSgpCiAKIEdQVVBy
b2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpncHVQcm9jZXNz
Q29ubmVjdGlvbigpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQot
ICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uID0gJm1fcHJvY2Vzcy5lbnN1cmVHUFVQcm9j
ZXNzQ29ubmVjdGlvbigpOwotCi0gICAgcmV0dXJuICptX2dwdVByb2Nlc3NDb25uZWN0aW9uOwor
ICAgIHJldHVybiBtX3Byb2Nlc3MuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIH0KIAog
dm9pZCBSZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyOjpzZXRVc2VHUFVQcm9jZXNzKGJvb2wg
dXNlR1BVUHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
bWVkaWEvUmVtb3RlSW1hZ2VEZWNvZGVyQVZGTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmgKaW5kZXggMmJi
OWFkNWJjNWU0YzhkNWNjMmIxZDQxYTkwZTk0Njc2ZmI2N2M2Ni4uZDk1YjI3YWUxMmJkODRhYWYx
OGY2MDY3YjJjNTg4NTdlYjliNTAxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9SZW1vdGVJbWFnZURlY29kZXJBVkZNYW5hZ2Vy
LmgKQEAgLTY2LDcgKzY2LDYgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFdlYkNvcmU6OkltYWdl
RGVjb2RlcklkZW50aWZpZXIsIFdlYWtQdHI8UmVtb3RlSW1hZ2VEZWNvZGVyQVZGPj4gbV9yZW1v
dGVJbWFnZURlY29kZXJzOwogCiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwotICAgIG11dGFi
bGUgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24qIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24geyBudWxscHRy
IH07CiAgICAgYm9vbCBtX21lc3NhZ2VSZWNlaXZlckluaXRpYWxpemVkIHsgZmFsc2UgfTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNl
QnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1NvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUuY3BwCmluZGV4IDAwYmM0NGU0ZWI1MzJlYmVh
NjBjMzQwOTRjMmVjYTkxNDBhZWMxZjcuLmM1ZWE2Mjg2ZWRmMDQ5ZmYwOTgxNTQxYjA0ODk2YWRl
ZjcwZmE2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmNwcApAQCAtNTUsNyArNTUs
NyBAQCBSZWY8U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZT4gU291cmNlQnVmZmVyUHJpdmF0ZVJl
bW90ZTo6Y3JlYXRlKEdQVVByb2Nlc3NDb25uZQogfQogCiBTb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlOjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQ
cm9jZXNzQ29ubmVjdGlvbiwgUmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllciByZW1vdGVTb3Vy
Y2VCdWZmZXJJZGVudGlmaWVyLCBjb25zdCBNZWRpYVNvdXJjZVByaXZhdGVSZW1vdGUmIG1lZGlh
U291cmNlUHJpdmF0ZSwgY29uc3QgTWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlJiBtZWRpYVBsYXll
clByaXZhdGUpCi0gICAgOiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uKGdwdVByb2Nlc3NDb25uZWN0
aW9uKQorICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNz
Q29ubmVjdGlvbikpCiAgICAgLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIocmVtb3Rl
U291cmNlQnVmZmVySWRlbnRpZmllcikKICAgICAsIG1fbWVkaWFTb3VyY2VQcml2YXRlKG1ha2VX
ZWFrUHRyKG1lZGlhU291cmNlUHJpdmF0ZSkpCiAgICAgLCBtX21lZGlhUGxheWVyUHJpdmF0ZSht
YWtlV2Vha1B0cihtZWRpYVBsYXllclByaXZhdGUpKQpAQCAtNjUsNyArNjUsNyBAQCBTb3VyY2VC
dWZmZXJQcml2YXRlUmVtb3RlOjpTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlKEdQVVByb2Nlc3ND
b25uZWN0aW9uJiBncHVQcgogI2VuZGlmCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVS
KTsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIudG9VSW50NjQo
KSwgKnRoaXMpOworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPm1lc3NhZ2VSZWNlaXZlck1h
cCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIu
dG9VSW50NjQoKSwgKnRoaXMpOwogfQogCiBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjp+U291
cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZSgpCkBAIC03MywyNyArNzMsNDIgQEAgU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZTo6flNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGUoKQogICAgIEFMV0FZU19M
T0coTE9HSURFTlRJRklFUik7CiAgICAgQVNTRVJUKCFtX2NsaWVudCk7CiAKLSAgICBtX2dwdVBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6U291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIudG9VSW50NjQoKSk7CisgICAgaWYg
KCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2dwdVBy
b2Nlc3NDb25uZWN0aW9uLT5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1vdmVNZXNzYWdlUmVjZWl2
ZXIoTWVzc2FnZXM6OlNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyLnRvVUludDY0KCkpOwogfQogCiB2
b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OmFwcGVuZChWZWN0b3I8dW5zaWduZWQgY2hh
cj4mJiBkYXRhKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpBcHBlbmQoSVBDOjpEYXRhUmVm
ZXJlbmNlKGRhdGEpKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAo
IW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VC
dWZmZXJQcm94eTo6QXBwZW5kKElQQzo6RGF0YVJlZmVyZW5jZShkYXRhKSksIG1fcmVtb3RlU291
cmNlQnVmZmVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90
ZTo6YWJvcnQoKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpBYm9ydCgpLCBtX3JlbW90ZVNv
dXJjZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpBYm9ydCgpLCBtX3Jl
bW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZh
dGVSZW1vdGU6OnJlc2V0UGFyc2VyU3RhdGUoKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpS
ZXNldFBhcnNlclN0YXRlKCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CisgICAg
aWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2dw
dVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291
cmNlQnVmZmVyUHJveHk6OlJlc2V0UGFyc2VyU3RhdGUoKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJ
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpyZW1vdmVk
RnJvbU1lZGlhU291cmNlKCkKIHsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVtb3ZlZEZyb21N
ZWRpYVNvdXJjZSgpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICgh
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5OjpSZW1vdmVkRnJvbU1lZGlhU291cmNlKCksIG1fcmVtb3RlU291cmNlQnVmZmVy
SWRlbnRpZmllcik7CiB9CiAKIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIFNvdXJjZUJ1ZmZlclBy
aXZhdGVSZW1vdGU6OnJlYWR5U3RhdGUoKSBjb25zdApAQCAtMTA2LDcgKzEyMSwxMCBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6OlJl
YWR5U3RhdGUgc3RhdGUpCiAgICAgaWYgKCFtX21lZGlhU291cmNlUHJpdmF0ZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OlNldFJlYWR5U3RhdGUoc3RhdGUpLCBt
X3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+
Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRS
ZWFkeVN0YXRlKHN0YXRlKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRBY3RpdmUoYm9vbCBhY3RpdmUpCkBA
IC0xMTQsOCArMTMyLDExIEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6c2V0QWN0
aXZlKGJvb2wgYWN0aXZlKQogICAgIGlmICghbV9tZWRpYVNvdXJjZVByaXZhdGUpCiAgICAgICAg
IHJldHVybjsKIAorICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0
dXJuOworCiAgICAgbV9pc0FjdGl2ZSA9IGFjdGl2ZTsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0
aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6
U2V0QWN0aXZlKGFjdGl2ZSksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CisgICAg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRBY3RpdmUoYWN0aXZlKSwgbV9yZW1vdGVTb3VyY2VCdWZm
ZXJJZGVudGlmaWVyKTsKIH0KIAogYm9vbCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpjYW5T
d2l0Y2hUb1R5cGUoY29uc3QgQ29udGVudFR5cGUmKQpAQCAtMTI2LDEyICsxNDcsMTggQEAgYm9v
bCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpjYW5Td2l0Y2hUb1R5cGUoY29uc3QgQ29udGVu
dFR5cGUmKQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNldE1lZGlhU291cmNl
RW5kZWQoYm9vbCBpc0VuZGVkKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRNZWRpYVNv
dXJjZUVuZGVkKGlzRW5kZWQpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOworICAg
IGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNv
dXJjZUJ1ZmZlclByb3h5OjpTZXRNZWRpYVNvdXJjZUVuZGVkKGlzRW5kZWQpLCBtX3JlbW90ZVNv
dXJjZUJ1ZmZlcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1v
dGU6OnNldE1vZGUoU291cmNlQnVmZmVyQXBwZW5kTW9kZSBtb2RlKQogewotICAgIG1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1
ZmZlclByb3h5OjpTZXRNb2RlKG1vZGUpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIp
OworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJl
bW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRNb2RlKG1vZGUpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZl
cklkZW50aWZpZXIpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnVwZGF0
ZUJ1ZmZlcmVkRnJvbVRyYWNrQnVmZmVycyhib29sIHNvdXJjZUlzRW5kZWQpCkBAIC0xMzksOTMg
KzE2NiwxNDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVCdWZmZXJl
ZEZyb21UcmFja0J1ZmZlcnMoYm9vbCBzb3VyY2VJc0VuZGUKICAgICBpZiAoIW1fbWVkaWFTb3Vy
Y2VQcml2YXRlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6VXBk
YXRlQnVmZmVyZWRGcm9tVHJhY2tCdWZmZXJzKHNvdXJjZUlzRW5kZWQpLCBtX3JlbW90ZVNvdXJj
ZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpVcGRhdGVCdWZmZXJlZEZy
b21UcmFja0J1ZmZlcnMoc291cmNlSXNFbmRlZCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRp
Zmllcik7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6cmVtb3ZlQ29kZWRG
cmFtZXMoY29uc3QgTWVkaWFUaW1lJiBzdGFydCwgY29uc3QgTWVkaWFUaW1lJiBlbmQsIGNvbnN0
IE1lZGlhVGltZSYgY3VycmVudE1lZGlhVGltZSwgYm9vbCBpc0VuZGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVT
b3VyY2VCdWZmZXJQcm94eTo6UmVtb3ZlQ29kZWRGcmFtZXMoc3RhcnQsIGVuZCwgY3VycmVudE1l
ZGlhVGltZSwgaXNFbmRlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBtX3JlbW90ZVNv
dXJjZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikK
KyAgICAgICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6
OlJlbW92ZUNvZGVkRnJhbWVzKHN0YXJ0LCBlbmQsIGN1cnJlbnRNZWRpYVRpbWUsIGlzRW5kZWQp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpldmljdENvZGVkRnJh
bWVzKHVpbnQ2NF90IG5ld0RhdGFTaXplLCB1aW50NjRfdCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFj
aXR5LCB1aW50NjRfdCBtYXhpbXVtQnVmZmVyU2l6ZSwgY29uc3QgTWVkaWFUaW1lJiBjdXJyZW50
VGltZSwgY29uc3QgTWVkaWFUaW1lJiBkdXJhdGlvbiwgYm9vbCBpc0VuZGVkKQogewotICAgIG1f
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNv
dXJjZUJ1ZmZlclByb3h5OjpFdmljdENvZGVkRnJhbWVzKG5ld0RhdGFTaXplLCBwZW5kaW5nQXBw
ZW5kRGF0YUNhcGFjaXR5LCBtYXhpbXVtQnVmZmVyU2l6ZSwgY3VycmVudFRpbWUsIGR1cmF0aW9u
LCBpc0VuZGVkKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIW1f
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZm
ZXJQcm94eTo6RXZpY3RDb2RlZEZyYW1lcyhuZXdEYXRhU2l6ZSwgcGVuZGluZ0FwcGVuZERhdGFD
YXBhY2l0eSwgbWF4aW11bUJ1ZmZlclNpemUsIGN1cnJlbnRUaW1lLCBkdXJhdGlvbiwgaXNFbmRl
ZCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgU291cmNlQnVm
ZmVyUHJpdmF0ZVJlbW90ZTo6YWRkVHJhY2tCdWZmZXIoY29uc3QgQXRvbVN0cmluZyYgdHJhY2tJ
ZCwgUmVmUHRyPE1lZGlhRGVzY3JpcHRpb24+JiYpCiB7CiAgICAgQVNTRVJUKG1fdHJhY2tJZGVu
dGlmaWVyTWFwLmNvbnRhaW5zKHRyYWNrSWQpKTsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9u
LmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6QWRk
VHJhY2tCdWZmZXIobV90cmFja0lkZW50aWZpZXJNYXAuZ2V0KHRyYWNrSWQpKSwgbV9yZW1vdGVT
b3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rp
b24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6QWRkVHJhY2tCdWZm
ZXIobV90cmFja0lkZW50aWZpZXJNYXAuZ2V0KHRyYWNrSWQpKSwgbV9yZW1vdGVTb3VyY2VCdWZm
ZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpyZXNl
dFRyYWNrQnVmZmVycygpCiB7Ci0gICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9u
KCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OlJlc2V0VHJhY2tCdWZm
ZXJzKCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CisgICAgaWYgKCFtX2dwdVBy
b2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJv
eHk6OlJlc2V0VHJhY2tCdWZmZXJzKCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7
CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6Y2xlYXJUcmFja0J1ZmZlcnMo
KQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpDbGVhclRyYWNrQnVmZmVycygpLCBtX3JlbW90
ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlv
bikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVj
dGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpDbGVhclRyYWNr
QnVmZmVycygpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOwogfQogCiB2b2lkIFNv
dXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnNldEFsbFRyYWNrQnVmZmVyc05lZWRSYW5kb21BY2Nl
c3MoKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRBbGxUcmFja0J1ZmZlcnNOZWVkUmFu
ZG9tQWNjZXNzKCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CisgICAgaWYgKCFt
X2dwdVByb2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2dwdVByb2Nl
c3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291cmNlQnVm
ZmVyUHJveHk6OlNldEFsbFRyYWNrQnVmZmVyc05lZWRSYW5kb21BY2Nlc3MoKSwgbV9yZW1vdGVT
b3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlOjpzZXRHcm91cFN0YXJ0VGltZXN0YW1wKGNvbnN0IE1lZGlhVGltZSYgdGltZXN0YW1wKQog
ewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6
OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRHcm91cFN0YXJ0VGltZXN0YW1wKHRpbWVzdGFt
cCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CisgICAgaWYgKCFtX2dwdVByb2Nl
c3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0
aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6
OlNldEdyb3VwU3RhcnRUaW1lc3RhbXAodGltZXN0YW1wKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJ
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRHcm91
cFN0YXJ0VGltZXN0YW1wVG9FbmRUaW1lc3RhbXAoKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5
OjpTZXRHcm91cFN0YXJ0VGltZXN0YW1wVG9FbmRUaW1lc3RhbXAoKSwgbV9yZW1vdGVTb3VyY2VC
dWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5z
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6U2V0R3JvdXBTdGFydFRpbWVz
dGFtcFRvRW5kVGltZXN0YW1wKCksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CiB9
CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6c2V0U2hvdWxkR2VuZXJhdGVUaW1l
c3RhbXBzKGJvb2wgc2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKQogewotICAgIG1fZ3B1UHJvY2Vz
c0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZl
clByb3h5OjpTZXRTaG91bGRHZW5lcmF0ZVRpbWVzdGFtcHMoc2hvdWxkR2VuZXJhdGVUaW1lc3Rh
bXBzKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIW1fZ3B1UHJv
Y2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94
eTo6U2V0U2hvdWxkR2VuZXJhdGVUaW1lc3RhbXBzKHNob3VsZEdlbmVyYXRlVGltZXN0YW1wcyks
IG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVy
UHJpdmF0ZVJlbW90ZTo6cmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjb25zdCBNZWRpYVRpbWUmIGN1
cnJlbnRNZWRpYVRpbWUsIHVpbnQ2NF90IHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNpdHksIHVpbnQ2
NF90IG1heGltdW1CdWZmZXJTaXplKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29u
bmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpSZWVucXVl
dWVNZWRpYUlmTmVlZGVkKGN1cnJlbnRNZWRpYVRpbWUsIHBlbmRpbmdBcHBlbmREYXRhQ2FwYWNp
dHksIG1heGltdW1CdWZmZXJTaXplKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsK
KyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1v
dGVTb3VyY2VCdWZmZXJQcm94eTo6UmVlbnF1ZXVlTWVkaWFJZk5lZWRlZChjdXJyZW50TWVkaWFU
aW1lLCBwZW5kaW5nQXBwZW5kRGF0YUNhcGFjaXR5LCBtYXhpbXVtQnVmZmVyU2l6ZSksIG1fcmVt
b3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CiB9CiAKIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0
ZVJlbW90ZTo6cmVzZXRUaW1lc3RhbXBPZmZzZXRJblRyYWNrQnVmZmVycygpCiB7Ci0gICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291
cmNlQnVmZmVyUHJveHk6OlJlc2V0VGltZXN0YW1wT2Zmc2V0SW5UcmFja0J1ZmZlcnMoKSwgbV9y
ZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNv
bm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6UmVzZXRU
aW1lc3RhbXBPZmZzZXRJblRyYWNrQnVmZmVycygpLCBtX3JlbW90ZVNvdXJjZUJ1ZmZlcklkZW50
aWZpZXIpOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVSZW1vdGU6OnN0YXJ0Q2hhbmdp
bmdUeXBlKCkKIHsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5k
KE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6U3RhcnRDaGFuZ2luZ1R5cGUoKSwg
bV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6U3Rh
cnRDaGFuZ2luZ1R5cGUoKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRUaW1lc3RhbXBPZmZzZXQoY29uc3Qg
TWVkaWFUaW1lJiB0aW1lc3RhbXBPZmZzZXQpCiB7CisgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uKQorICAgICAgICByZXR1cm47CisKICAgICBTb3VyY2VCdWZmZXJQcml2YXRlOjpzZXRU
aW1lc3RhbXBPZmZzZXQodGltZXN0YW1wT2Zmc2V0KTsKLSAgICBtX2dwdVByb2Nlc3NDb25uZWN0
aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6
U2V0VGltZXN0YW1wT2Zmc2V0KHRpbWVzdGFtcE9mZnNldCksIG1fcmVtb3RlU291cmNlQnVmZmVy
SWRlbnRpZmllcik7CisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRUaW1lc3RhbXBPZmZzZXQo
dGltZXN0YW1wT2Zmc2V0KSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRBcHBlbmRXaW5kb3dTdGFydChjb25z
dCBNZWRpYVRpbWUmIGFwcGVuZFdpbmRvd1N0YXJ0KQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5l
Y3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5
OjpTZXRBcHBlbmRXaW5kb3dTdGFydChhcHBlbmRXaW5kb3dTdGFydCksIG1fcmVtb3RlU291cmNl
QnVmZmVySWRlbnRpZmllcik7CisgICAgaWYgKCFtX2dwdVByb2Nlc3NDb25uZWN0aW9uKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0aW9uKCku
c2VuZChNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OlNldEFwcGVuZFdpbmRvd1N0
YXJ0KGFwcGVuZFdpbmRvd1N0YXJ0KSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsK
IH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZXRBcHBlbmRXaW5kb3dFbmQo
Y29uc3QgTWVkaWFUaW1lJiBhcHBlbmRXaW5kb3dFbmQpCiB7Ci0gICAgbV9ncHVQcm9jZXNzQ29u
bmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJv
eHk6OlNldEFwcGVuZFdpbmRvd0VuZChhcHBlbmRXaW5kb3dFbmQpLCBtX3JlbW90ZVNvdXJjZUJ1
ZmZlcklkZW50aWZpZXIpOworICAgIGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNl
bmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZXRBcHBlbmRXaW5kb3dFbmQo
YXBwZW5kV2luZG93RW5kKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKIH0KIAog
dm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpzZWVrVG9UaW1lKGNvbnN0IE1lZGlhVGlt
ZSYgbWVkaWFUaW1lKQogewotICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigp
LnNlbmQoTWVzc2FnZXM6OlJlbW90ZVNvdXJjZUJ1ZmZlclByb3h5OjpTZWVrVG9UaW1lKG1lZGlh
VGltZSksIG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcik7CisgICAgaWYgKCFtX2dwdVBy
b2Nlc3NDb25uZWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2dwdVByb2Nlc3NDb25u
ZWN0aW9uLT5jb25uZWN0aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJv
eHk6OlNlZWtUb1RpbWUobWVkaWFUaW1lKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
KTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjp1cGRhdGVUcmFja0lkcyhW
ZWN0b3I8c3RkOjpwYWlyPEF0b21TdHJpbmcsIEF0b21TdHJpbmc+PiYmIHRyYWNrSWRQYWlycykK
IHsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybjsKKwog
ICAgIFZlY3RvcjxzdGQ6OnBhaXI8VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQ
cml2YXRlUmVtb3RlSWRlbnRpZmllcj4+IGlkZW50aWZpZXJQYWlyczsKIAogICAgIGZvciAoYXV0
byYgdHJhY2tJZFBhaXIgOiB0cmFja0lkUGFpcnMpIHsKQEAgLTIzNywxMiArMzE4LDE1IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZTo6dXBkYXRlVHJhY2tJZHMoVmVjdG9yPHN0ZDo6
cGFpcjxBdG9tU3RyaW5nLCBBdG9tCiAgICAgICAgIGlkZW50aWZpZXJQYWlycy5hcHBlbmQoc3Rk
OjptYWtlX3BhaXIob2xkSWRlbnRpZmllciwgbmV3SWRlbnRpZmllcikpOwogICAgIH0KIAotICAg
IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVNvdXJjZUJ1ZmZlclByb3h5OjpVcGRhdGVUcmFja0lkcyhpZGVudGlmaWVyUGFpcnMpLCBtX3Jl
bW90ZVNvdXJjZUJ1ZmZlcklkZW50aWZpZXIpOworICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24t
PmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6VXBk
YXRlVHJhY2tJZHMoaWRlbnRpZmllclBhaXJzKSwgbV9yZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlm
aWVyKTsKIH0KIAogdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlOjpidWZmZXJlZFNhbXBs
ZXNGb3JUcmFja0lkKGNvbnN0IEF0b21TdHJpbmcmIHRyYWNrSWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoVmVjdG9yPFN0cmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpSZW1vdGVTb3VyY2VCdWZmZXJQcm94eTo6QnVmZmVyZWRTYW1wbGVzRm9yVHJhY2tJZCht
X3RyYWNrSWRlbnRpZmllck1hcC5nZXQodHJhY2tJZCkpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byYmIHNhbXBsZXMpIG11dGFibGUgeworICAg
IGlmICghbV9ncHVQcm9jZXNzQ29ubmVjdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9n
cHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6UmVtb3RlU291cmNlQnVmZmVyUHJveHk6OkJ1ZmZlcmVkU2FtcGxlc0ZvclRyYWNrSWQo
bV90cmFja0lkZW50aWZpZXJNYXAuZ2V0KHRyYWNrSWQpKSwgW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8mJiBzYW1wbGVzKSBtdXRhYmxlIHsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShzYW1wbGVzKSk7CiAgICAgfSwgbV9yZW1v
dGVTb3VyY2VCdWZmZXJJZGVudGlmaWVyKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvbWVkaWEvU291cmNlQnVmZmVyUHJpdmF0ZVJlbW90ZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmgK
aW5kZXggODYxMjMxYTEwZWUyYzAwNTA1YzAxNTFlZTMzYzYxMWUwMGNmMzA0YS4uYzA4ZmIyZjdk
Yzc0NGE4NGI2M2FjOTM4NTI3Y2NkNGM0ZjY4YTc0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVtb3RlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9Tb3VyY2VCdWZmZXJQcml2YXRlUmVt
b3RlLmgKQEAgLTEyMCw3ICsxMjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc291cmNlQnVmZmVy
UHJpdmF0ZUJ1ZmZlcmVkUmFuZ2VzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVRpbWVS
YW5nZXMmKTsKICAgICB2b2lkIHNvdXJjZUJ1ZmZlclByaXZhdGVSZXBvcnRFeHRyYU1lbW9yeUNv
c3QodWludDY0X3QgZXh0cmFNZW1vcnkpOwogCi0gICAgR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mIG1f
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb247CisgICAgV2Vha1B0cjxHUFVQcm9jZXNzQ29ubmVjdGlvbj4g
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsKICAgICBSZW1vdGVTb3VyY2VCdWZmZXJJZGVudGlmaWVy
IG1fcmVtb3RlU291cmNlQnVmZmVySWRlbnRpZmllcjsKICAgICBXZWFrUHRyPE1lZGlhU291cmNl
UHJpdmF0ZVJlbW90ZT4gbV9tZWRpYVNvdXJjZVByaXZhdGU7CiAgICAgV2Vha1B0cjxNZWRpYVBs
YXllclByaXZhdGVSZW1vdGU+IG1fbWVkaWFQbGF5ZXJQcml2YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJl
bW90ZS5jcHAKaW5kZXggYjk0YThkZDUyMzdjMTcwMTEyYjc5MDhlYjY4OWEyMmMyYzg0NWQ1OC4u
OTM0YzlkYWE3ZjM2YmY5NTRhZGM3YmZhOWRkMjQxODQwNGI5Y2JhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9UZXh0VHJhY2tQcml2YXRlUmVtb3RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1RleHRUcmFja1ByaXZh
dGVSZW1vdGUuY3BwCkBAIC0yOSwxOCArMjksMTcgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKIAotI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgi
CisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJNZWRpYVBsYXll
clByaXZhdGVSZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVNZWRpYVBsYXllclByb3h5TWVzc2Fn
ZXMuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVRleHRUcmFja1ByaXZhdGVSZW1v
dGU6OlRleHRUcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBN
ZWRpYVBsYXllcklkZW50aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3Rl
SWRlbnRpZmllciBpZGVuZGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3VyYXRpb24pCitUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpUZXh0VHJhY2tQcml2
YXRlUmVtb3RlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBncHVQcm9jZXNzQ29ubmVjdGlvbiwgTWVk
aWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUlk
ZW50aWZpZXIgaWRlbmRpZmllciwgVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24m
JiBjb25maWd1cmF0aW9uKQogICAgIDogV2ViQ29yZTo6SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZShj
b25maWd1cmF0aW9uLmN1ZUZvcm1hdCkKLSAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQor
ICAgICwgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29ubmVj
dGlvbikpCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAgICAs
IG1faWRlbnRpZmllcihpZGVuZGlmaWVyKQogewpAQCAtNDksOCArNDgsMTEgQEAgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZTo6VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZShJUEM6OkNvbm5lY3Rpb24mIGNv
bm5lY3Rpb24sIE1lZGkKIAogdm9pZCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlOjpzZXRNb2RlKFRl
eHRUcmFja01vZGUgbW9kZSkKIHsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24pCisg
ICAgICAgIHJldHVybjsKKwogICAgIGlmIChtb2RlICE9IG1fbW9kZSkKLSAgICAgICAgbV9jb25u
ZWN0aW9uLnNlbmQoTWVzc2FnZXM6OlJlbW90ZU1lZGlhUGxheWVyUHJveHk6OlRleHRUcmFja1Nl
dE1vZGUobV9pZGVudGlmaWVyLCBtb2RlKSwgbV9wbGF5ZXJJZGVudGlmaWVyKTsKKyAgICAgICAg
bV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OlJlbW90
ZU1lZGlhUGxheWVyUHJveHk6OlRleHRUcmFja1NldE1vZGUobV9pZGVudGlmaWVyLCBtb2RlKSwg
bV9wbGF5ZXJJZGVudGlmaWVyKTsKIAogICAgIEluYmFuZFRleHRUcmFja1ByaXZhdGU6OnNldE1v
ZGUobW9kZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21l
ZGlhL1RleHRUcmFja1ByaXZhdGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCmluZGV4IDE3ZDJkNDMzNzM2ODhiYjgz
YmM3NzIzM2I1YmVhMTYwM2Y4NTU3NzIuLjZhM2YzMDQ3NGYwM2Q0ZGMzZGE4MWQxYjkxOTg1NWM1
MjQzNDg4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEv
VGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVGV4dFRyYWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zNCwxMCArMzQsNiBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+CiAKLW5hbWVzcGFjZSBJUEMgewotY2xhc3MgQ29u
bmVjdGlvbjsKLX0KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW5iYW5kR2VuZXJpY0N1
ZTsKIGNsYXNzIElTT1dlYlZUVEN1ZTsKQEAgLTQ1LDE1ICs0MSwxNiBAQCBjbGFzcyBJU09XZWJW
VFRDdWU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlv
bjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZVJlbW90ZTsKIAogY2xhc3MgVGV4dFRyYWNrUHJp
dmF0ZVJlbW90ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpJbmJhbmRUZXh0VHJhY2tQcml2YXRl
IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShUZXh0VHJhY2tQcml2YXRlUmVtb3RlKQogcHVi
bGljOgogCi0gICAgc3RhdGljIFJlZjxUZXh0VHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoSVBD
OjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIg
cGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVuZGlmaWVy
LCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRpb24pCisg
ICAgc3RhdGljIFJlZjxUZXh0VHJhY2tQcml2YXRlUmVtb3RlPiBjcmVhdGUoR1BVUHJvY2Vzc0Nv
bm5lY3Rpb24mIGdwdVByb2Nlc3NDb25uZWN0aW9uLCBXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50
aWZpZXIgcGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciBpZGVu
ZGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3VyYXRp
b24pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUZXh0VHJhY2tQcml2YXRl
UmVtb3RlKGNvbm5lY3Rpb24sIHBsYXllcklkZW50aWZpZXIsIGlkZW5kaWZpZXIsIFdURk1vdmUo
Y29uZmlndXJhdGlvbikpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNr
UHJpdmF0ZVJlbW90ZShncHVQcm9jZXNzQ29ubmVjdGlvbiwgcGxheWVySWRlbnRpZmllciwgaWRl
bmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOwogICAgIH0KIAogICAgIHZvaWQgYWRk
RGF0YUN1ZShNZWRpYVRpbWUmJiBzdGFydCwgTWVkaWFUaW1lJiYgZW5kLCBJUEM6OkRhdGFSZWZl
cmVuY2UmJik7CkBAIC0xMDAsOSArOTcsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RlZmF1bHQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2lzRGVmYXVsdDsgfQogCiBwcml2YXRlOgotICAgIFRl
eHRUcmFja1ByaXZhdGVSZW1vdGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2
YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICBUZXh0VHJhY2tQcml2YXRlUmVtb3RlKEdQ
VVByb2Nlc3NDb25uZWN0aW9uJiwgV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyLCBUcmFj
a1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyLCBUZXh0VHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmKTsKIAotICAgIElQQzo6Q29ubmVjdGlvbiYgbV9jb25uZWN0aW9uOworICAgIFdlYWtQ
dHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAgICAgQXRv
bVN0cmluZyBtX2lkOwogICAgIEF0b21TdHJpbmcgbV9sYWJlbDsKICAgICBBdG9tU3RyaW5nIG1f
bGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlh
L1ZpZGVvVHJhY2tQcml2YXRlUmVtb3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCmluZGV4IGIyZDBhMWY1MzI5MTVl
MTM3ODhkM2Q0OTUxMzVjYmYyNzI1ZmY1NWIuLjM0NDZhNzAxYjE4Yzk2ZjZiNmZlMDgzOWYyNjI4
Njc0NzhmYThmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVk
aWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUuY3BwCkBAIC0yOSwxNCArMjks
MTQgQEAKIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIAotI2luY2x1ZGUgIkNvbm5lY3Rpb24u
aCIKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lZGlhUGxh
eWVyUHJpdmF0ZVJlbW90ZS5oIgogI2luY2x1ZGUgIlJlbW90ZU1lZGlhUGxheWVyUHJveHlNZXNz
YWdlcy5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotVmlkZW9UcmFja1ByaXZhdGVSZW1vdGU6
OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbiwgV2Vi
Q29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIHBsYXllcklkZW50aWZpZXIsIFRyYWNrUHJpdmF0
ZVJlbW90ZUlkZW50aWZpZXIgaWRlbmRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3VyYXRpb24pCi0gICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKK1Zp
ZGVvVHJhY2tQcml2YXRlUmVtb3RlOjpWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRl
bnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlk
ZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9u
KQorICAgIDogbV9ncHVQcm9jZXNzQ29ubmVjdGlvbihtYWtlV2Vha1B0cihncHVQcm9jZXNzQ29u
bmVjdGlvbikpCiAgICAgLCBtX3BsYXllcklkZW50aWZpZXIocGxheWVySWRlbnRpZmllcikKICAg
ICAsIG1faWRlbmRpZmllcihpZGVuZGlmaWVyKQogewpAQCAtNDUsOCArNDUsMTEgQEAgVmlkZW9U
cmFja1ByaXZhdGVSZW1vdGU6OlZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKElQQzo6Q29ubmVjdGlv
biYgY29ubmVjdGlvbiwgV2UKIAogdm9pZCBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZTo6c2V0U2Vs
ZWN0ZWQoYm9vbCBzZWxlY3RlZCkKIHsKKyAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24p
CisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChzZWxlY3RlZCAhPSB0aGlzLT5zZWxlY3RlZCgp
KQotICAgICAgICBtX2Nvbm5lY3Rpb24uc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eTo6VmlkZW9UcmFja1NldFNlbGVjdGVkKG1faWRlbmRpZmllciwgc2VsZWN0ZWQpLCBtX3Bs
YXllcklkZW50aWZpZXIpOworICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uLT5jb25uZWN0
aW9uKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlTWVkaWFQbGF5ZXJQcm94eTo6VmlkZW9UcmFja1Nl
dFNlbGVjdGVkKG1faWRlbmRpZmllciwgc2VsZWN0ZWQpLCBtX3BsYXllcklkZW50aWZpZXIpOwog
CiAgICAgVmlkZW9UcmFja1ByaXZhdGU6OnNldFNlbGVjdGVkKHNlbGVjdGVkKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFja1ByaXZh
dGVSZW1vdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvbWVkaWEvVmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGUuaAppbmRleCBlMmRkMzE1Y2JmMmY4MDllNmU1MTY4ZWJmMGEyY2Y0ZWRl
YmY4YWJkLi41ZmU4NTMxMDAxYmY2N2FhODFmZjBiYmQ0MGQ5N2E3MWFmMjgzMTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL21lZGlhL1ZpZGVvVHJhY2tQcml2YXRl
UmVtb3RlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9tZWRpYS9WaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZS5oCkBAIC0zMywxMiArMzMsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
TWVkaWFQbGF5ZXJJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaWRlb1RyYWNrUHJp
dmF0ZS5oPgogCi1uYW1lc3BhY2UgSVBDIHsKLWNsYXNzIENvbm5lY3Rpb247Ci19Ci0KIG5hbWVz
cGFjZSBXZWJLaXQgewogCitjbGFzcyBHUFVQcm9jZXNzQ29ubmVjdGlvbjsKIGNsYXNzIE1lZGlh
UGxheWVyUHJpdmF0ZVJlbW90ZTsKIHN0cnVjdCBUcmFja1ByaXZhdGVSZW1vdGVDb25maWd1cmF0
aW9uOwogCkBAIC00Niw5ICs0Myw5IEBAIGNsYXNzIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlCiAg
ICAgOiBwdWJsaWMgV2ViQ29yZTo6VmlkZW9UcmFja1ByaXZhdGUgewogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKQogcHVibGljOgotICAgIHN0YXRpYyBS
ZWY8VmlkZW9UcmFja1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVyLCBU
cmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJlbW90
ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQorICAgIHN0YXRpYyBSZWY8VmlkZW9UcmFj
a1ByaXZhdGVSZW1vdGU+IGNyZWF0ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb24sIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciBwbGF5ZXJJZGVudGlmaWVy
LCBUcmFja1ByaXZhdGVSZW1vdGVJZGVudGlmaWVyIGlkZW5kaWZpZXIsIFRyYWNrUHJpdmF0ZVJl
bW90ZUNvbmZpZ3VyYXRpb24mJiBjb25maWd1cmF0aW9uKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgVmlkZW9UcmFja1ByaXZhdGVSZW1vdGUoY29ubmVjdGlvbiwgcGxheWVy
SWRlbnRpZmllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1cmF0aW9uKSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBWaWRlb1RyYWNrUHJpdmF0ZVJlbW90ZShncHVQcm9jZXNz
Q29ubmVjdGlvbiwgcGxheWVySWRlbnRpZmllciwgaWRlbmRpZmllciwgV1RGTW92ZShjb25maWd1
cmF0aW9uKSkpOwogICAgIH0KIAogICAgIHZvaWQgdXBkYXRlQ29uZmlndXJhdGlvbihUcmFja1By
aXZhdGVSZW1vdGVDb25maWd1cmF0aW9uJiYpOwpAQCAtNjEsMTEgKzU4LDExIEBAIHB1YmxpYzoK
ICAgICBpbnQgdHJhY2tJbmRleCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fdHJhY2tJbmRleDsg
fQogCiBwcml2YXRlOgotICAgIFZpZGVvVHJhY2tQcml2YXRlUmVtb3RlKElQQzo6Q29ubmVjdGlv
biYsIFdlYkNvcmU6Ok1lZGlhUGxheWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRl
bnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKKyAgICBWaWRlb1Ry
YWNrUHJpdmF0ZVJlbW90ZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYsIFdlYkNvcmU6Ok1lZGlhUGxh
eWVySWRlbnRpZmllciwgVHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllciwgVHJhY2tQcml2YXRl
UmVtb3RlQ29uZmlndXJhdGlvbiYmKTsKIAogICAgIHZvaWQgc2V0U2VsZWN0ZWQoYm9vbCkgZmlu
YWw7CiAKLSAgICBJUEM6OkNvbm5lY3Rpb24mIG1fY29ubmVjdGlvbjsKKyAgICBXZWFrUHRyPEdQ
VVByb2Nlc3NDb25uZWN0aW9uPiBtX2dwdVByb2Nlc3NDb25uZWN0aW9uOwogICAgIFdlYkNvcmU6
Ok1lZGlhUGxheWVySWRlbnRpZmllciBtX3BsYXllcklkZW50aWZpZXI7CiAgICAgVmlkZW9UcmFj
a0tpbmQgbV9raW5kIHsgTm9uZSB9OwogICAgIEF0b21TdHJpbmcgbV9pZDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>