<?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>180147</bug_id>
          
          <creation_ts>2017-11-29 10:11:02 -0800</creation_ts>
          <short_desc>StorageToWebProcessConnection &amp; WebSWServerToContextConnection should use the same underlying IPC::Connection</short_desc>
          <delta_ts>2017-11-29 13:12:43 -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>WebCore Misc.</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1375886</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-29 10:11:02 -0800</bug_when>
    <thetext>StorageToWebProcessConnection &amp; WebSWServerToContextConnection should use the same underlying IPC::Connection. Otherwise, we have with 2 IPC::Connections between the StorageProcess and the ServiceWorker (aka Context) process, which makes synchronization of IPC messages difficult.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375896</commentid>
    <comment_count>1</comment_count>
      <attachid>327871</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-29 10:48:08 -0800</bug_when>
    <thetext>Created attachment 327871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375949</commentid>
    <comment_count>2</comment_count>
      <attachid>327881</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-29 11:49:43 -0800</bug_when>
    <thetext>Created attachment 327881
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375952</commentid>
    <comment_count>3</comment_count>
      <attachid>327883</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-29 11:57:31 -0800</bug_when>
    <thetext>Created attachment 327883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375985</commentid>
    <comment_count>4</comment_count>
      <attachid>327883</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-29 13:11:10 -0800</bug_when>
    <thetext>Comment on attachment 327883
Patch

Clearing flags on attachment: 327883

Committed r225289: &lt;https://trac.webkit.org/changeset/225289&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375986</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-11-29 13:11:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1375987</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-29 13:12:43 -0800</bug_when>
    <thetext>&lt;rdar://problem/35755455&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327871</attachid>
            <date>2017-11-29 10:48:08 -0800</date>
            <delta_ts>2017-11-29 11:49:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180147-20171129104807.patch</filename>
            <type>text/plain</type>
            <size>28772</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3MGU4MTRlMzI3M2FlNjgy
NzkxODgyNjk0YTA4ODQzNzNhZDkzMmIuLjQ4MTU1YzYwZTk4NjExOTQ3MjdhMjEyNzE1NjI5NjJj
NmUzNzA3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTctMTEtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbiAmIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBzaG91bGQgdXNlIHRoZSBz
YW1lIHVuZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiAmIFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBzaG91bGQgdXNlIHRoZSBzYW1lIHVuZGVybHlp
bmcgSVBDOjpDb25uZWN0aW9uLgorICAgICAgICBPdGhlcndpc2UsIHdlIGhhdmUgd2l0aCAyIElQ
Qzo6Q29ubmVjdGlvbnMgYmV0d2VlbiB0aGUgU3RvcmFnZVByb2Nlc3MgYW5kIHRoZSBTZXJ2aWNl
V29ya2VyIChha2EgQ29udGV4dCkgcHJvY2VzcywKKyAgICAgICAgd2hpY2ggbWFrZXMgc3luY2hy
b25pemF0aW9uIG9mIElQQyBtZXNzYWdlcyBkaWZmaWN1bHQuCisKKyAgICAgICAgKiBTdG9yYWdl
UHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9j
ZXNzOjpjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oOgorICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnN0YXJ0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5Ojplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdl
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRTdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZXN0YWJs
aXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdl
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc1NlcnZpY2VXb3JrZXJQcm9j
ZXNzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAxNy0x
MS0yOSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjE4MDY0KTogW0dUS10gQnJva2UgZW50ZXJpbmcgZnVsbHNjcmVlbiBt
b2RlIGluIGRlYnVnIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJv
Y2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmNwcAppbmRleCAxN2UwZTc0NzJkNTBkZGMzMGQyZDk4NTA2YTQ1N2U4OGM2
MmRhZTlmLi43ODNmMDQyNWNmYzhhYzEwZjNlOTM4ZTYyMGNkMmFlNjZmZjYzNWVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtMTg5
LDcgKzE4OSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OnBlcmZvcm1OZXh0U3RvcmFnZVRhc2so
KQogICAgIHRhc2sucGVyZm9ybVRhc2soKTsKIH0KIAotdm9pZCBTdG9yYWdlUHJvY2Vzczo6Y3Jl
YXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6
Y3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQ
cm9jZXNzKQogewogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQogICAgIElQQzo6Q29ubmVj
dGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0
Zm9ybUNvbm5lY3Rpb24oKTsKQEAgLTIwOCw2ICsyMDgsMTUgQEAgdm9pZCBTdG9yYWdlUHJvY2Vz
czo6Y3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogI2Vsc2UKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwogI2VuZGlmCisKKyAgICBpZiAoaXNTZXJ2aWNlV29ya2VyUHJvY2VzcyAm
JiAhbV9zdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuaXNFbXB0eSgpKSB7CisgICAgICAg
IEFTU0VSVChtX3dhaXRpbmdGb3JTZXJ2ZXJUb0NvbnRleHRQcm9jZXNzQ29ubmVjdGlvbik7Cisg
ICAgICAgIG1fc2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiA9IFdlYlNXU2VydmVyVG9Db250ZXh0
Q29ubmVjdGlvbjo6Y3JlYXRlKG1fc3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zLmxhc3Qo
KS0+Y29ubmVjdGlvbigpKTsKKyAgICAgICAgbV93YWl0aW5nRm9yU2VydmVyVG9Db250ZXh0UHJv
Y2Vzc0Nvbm5lY3Rpb24gPSBmYWxzZTsKKworICAgICAgICBmb3IgKGF1dG8mIGNvbm5lY3Rpb24g
OiBtX3N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9ucykKKyAgICAgICAgICAgIGNvbm5lY3Rp
b24tPndvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbkNyZWF0ZWQoKTsKKyAgICB9CiB9CiAK
IHZvaWQgU3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50
NjRfdCBjYWxsYmFja0lEKQpAQCAtMzgxLDMzICszOTAsNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNz
OjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCkKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uID0gdHJ1
ZTsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdl
UHJvY2Vzc1Byb3h5OjpHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgMCk7Ci19
Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVj
dGlvbihJUEM6OkF0dGFjaG1lbnQmJiBlbmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIpCi17Ci0g
ICAgQVNTRVJUKG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKTsK
LSAgICBtX3dhaXRpbmdGb3JTZXJ2ZXJUb0NvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiA9IGZhbHNl
OwotCi0jaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCi0gICAgSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5lY3Rpb25JZGVudGlm
aWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOwotI2VsaWYgT1MoREFSV0lOKQotICAgIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNvZGVkQ29ubmVj
dGlvbklkZW50aWZpZXIucG9ydCgpKTsKLSNlbHNlCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0jZW5kaWYKLQotICAgIGlmIChJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZpZXJJc051bGwoY29u
bmVjdGlvbklkZW50aWZpZXIpKSB7Ci0gICAgICAgIExPR19FUlJPUigiU3RvcmFnZVByb2Nlc3M6
OmRpZEdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiAtIFJlY2VpdmVkIG51bGwgY29u
bmVjdGlvbiBpZGVudGlmaWVyIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBhdXRv
IGlwY0Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24o
Y29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsKLSAgICBpcGNDb25uZWN0aW9uLT5vcGVuKCk7
Ci0gICAgbV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uID0gV2ViU1dTZXJ2ZXJUb0NvbnRleHRD
b25uZWN0aW9uOjpjcmVhdGUoV1RGTW92ZShpcGNDb25uZWN0aW9uKSk7Ci0gICAgCi0gICAgZm9y
IChhdXRvJiBjb25uZWN0aW9uIDogbV9zdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMpCi0g
ICAgICAgIGNvbm5lY3Rpb24tPndvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbkNyZWF0ZWQo
KTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdl
UHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVBy
b2Nlc3MoKSwgMCk7CiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEZhaWxGZXRjaChTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0
b3JhZ2VQcm9jZXNzLmgKaW5kZXggNGNiMmJkZDU2Yzg4YTBkMWE4YWFmZjdlMjg4ODEzYmYxZDgz
ODhhYS4uODE1ODdiMGNhYjA0YjQzYmVhZDIwZTg3YTU4MTE3ZjNlY2MzODgzNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApAQCAtOTYsNiArOTYs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNX
U2VydmVyQ29ubmVjdGlvbiYpOwogI2VuZGlmCiAKKyAgICB2b2lkIGRpZFJlY2VpdmVTdG9yYWdl
UHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7CisKIHByaXZh
dGU6CiAgICAgU3RvcmFnZVByb2Nlc3MoKTsKIApAQCAtMTA5LDExICsxMTEsMTAgQEAgcHJpdmF0
ZToKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJik7
CiAKICAgICAvLyBNZXNzYWdlIEhhbmRsZXJzCiAgICAgdm9pZCBpbml0aWFsaXplV2Vic2l0ZURh
dGFTdG9yZShjb25zdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpOwotICAgIHZv
aWQgY3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICB2b2lkIGNyZWF0
ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2Vz
cyk7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQp
OwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xv
Y2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJhY2tJRCk7CkBAIC0x
MjMsOCArMTI0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldFNhbmRib3hFeHRlbnNpb25z
Rm9yQmxvYkZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxl
QXJyYXkmJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBk
aWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50JiYgZW5j
b2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKTsKLQogICAgIHZvaWQgZGlkUmVjZWl2ZUZldGNoUmVz
cG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgdWludDY0X3QgZmV0
Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgdm9p
ZCBkaWRSZWNlaXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwg
aW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hGb3Jt
RGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBmZXRj
aElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmlu
CmluZGV4IGZiNWU0ZDhiMDczYTYzMWQ3Y2NiMTExYjZmOTU1OTRiMWNkMTRiYWEuLjk5Mjc3ZDFm
MmUxNzU4ZDhjOGI0YjQyMDA1NGZiYTdlMmQwZGE1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMjUs
NyArMjUsNyBAQCBtZXNzYWdlcyAtPiBTdG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgSW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoc3RydWN0IFdlYktpdDo6U3RvcmFnZVByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycykKIAogICAgICMg
Q3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBhIFdlYlByb2Nlc3MK
LSAgICBDcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCisgICAgQ3JlYXRlU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzKQog
CiAgICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvblNl
dDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgdWludDY0X3QgY2Fs
bGJhY2tJRCkKICAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3Rk
OjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRf
dCBjYWxsYmFja0lEKQpAQCAtMzYsOCArMzYsNiBAQCBtZXNzYWdlcyAtPiBTdG9yYWdlUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LSAgICBEaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50
IGNvbm5lY3Rpb25IYW5kbGUpCi0KICAgICBEaWROb3RIYW5kbGVGZXRjaChXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBmZXRjaElkZW50aWZpZXIpCiAgICAgRGlkRmFpbEZldGNoKFdlYkNvcmU6OlNXU2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90
IGZldGNoSWRlbnRpZmllcikKICAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpT
V1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9u
c2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDEzYTc3ZGJlYjRmYzMwZDFmYjBh
M2YxZWI3NTcwNTkzZjQxMGIwMGIuLjBjZjgzZmY1MmJhMTVkN2Q5Y2M2ZmEyNjA1NTZlYjEzMDY1
NjI3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRv
V2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nlc3MuaCIKKyNpbmNs
dWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVRvV2ViUHJv
Y2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudE1lc3NhZ2VzLmgiCkBA
IC02OSw2ICs3MCwxMSBAQCB2b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uOjpkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAgICAgICByZXR1cm47
CiAgICAgfQogCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3Nh
Z2VzOjpTdG9yYWdlUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CisgICAgICAgIFN0
b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU3RvcmFnZVByb2Nlc3NNZXNzYWdl
KGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSkgewogICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJJREJDb25uZWN0aW9ucy5m
aW5kKGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXggZTZiYzRjMmFmYzY4
N2E5ZmMxMzE3ZTgzMGRhMzE3YjA2MzgwMGYyZi4uOGRmN2Q5ODdiMDJhODQzYzM3MzdmOTYxNGYz
NTc0OGQ2ODUxN2ZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vydmlj
ZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2Vy
dmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1
bmNoT3B0aW9ucyYKIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpzdGFydChjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzOjpHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihtX3NlcnZpY2VXb3JrZXJQYWdlSUQs
IHN0b3JlKSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6RXN0YWJsaXNoV29y
a2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKG1fc2VydmljZVdvcmtlclBhZ2VJ
RCwgc3RvcmUpLCAwKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlELCB1aW50NjRfdCBm
cmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBjaGFsbGVuZ2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1By
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
LmgKaW5kZXggMTE4NmI3YTJjNWY2NDkwZmE0NjIwNWUwZTJmMmEzNjE4MGZiNDNjZi4uMWFjNDU1
NjJhNzMzYjY5YTFmZDFjOThhY2YyNTEzZDYwNDYwMWRkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNDEsMTEgKzQx
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
KTsKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3NlcnZpY2VXb3JrZXJQ
YWdlSUQ7IH0KIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICAvLyBDaGlsZFByb2Nlc3NQcm94
eQogICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlv
bnMmKSBmaW5hbDsKIAotcHJpdmF0ZToKKyAgICBib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3Mo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKICAgICBTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSYpOwogICAgIHVpbnQ2NF90
IG1fc2VydmljZVdvcmtlclBhZ2VJRCB7IDAgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA5ODQy
NWQxODg1YTZiZjdmZjYzMjI1NTY2N2QwY2E5MGMzMGQxZDFmLi40YzBhZDYwZDlmYTAxNDc1NWQ1
Y2U0MGY2MjZjYzNkNjAzMzQ4Mzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAKQEAgLTExMSw3ICsxMTEsNyBA
QCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgc2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nl
c3M6OkRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhzZXNzaW9uSUQsIGRhdGFUeXBlcywgb3Jp
Z2lucywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6Omdl
dFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6
R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCit2b2lk
IFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihib29sIGlz
U2VydmljZVdvcmtlclByb2Nlc3MsIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRT
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKIHsKICAgICBt
X3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOwogCkBAIC0x
MjAsNyArMTIwLDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdlUHJvY2Vz
c0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHIKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpDcmVhdGVTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVz
c2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgc2VuZChNZXNzYWdlczo6U3Rv
cmFnZVByb2Nlc3M6OkNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGlzU2Vydmlj
ZVdvcmtlclByb2Nlc3MpLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5X
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6
ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKQEAgLTIxNSwyNiArMjE1LDE2IEBAIHZvaWQgU3Rv
cmFnZVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1
bmNoZXIsIElQQzo6Q29uCiAgICAgfQogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1f
bnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytpKQotICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpTdG9yYWdlUHJvY2Vzczo6Q3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKSwg
MCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpDcmVhdGVTdG9yYWdl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihmYWxzZSksIDApOwogICAgIAogICAgIG1fbnVtUGVuZGlu
Z0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
Ci12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVj
dGlvbigpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmVzdGFibGlzaFdvcmtlckNvbnRleHRD
b25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcygpCiB7Ci0gICAgQVNTRVJUKCFtX3dhaXRpbmdPbldv
cmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgbV93YWl0aW5nT25Xb3JrZXJDb250
ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24gPSB0cnVlOwotICAgIAotICAgIG1fcHJvY2Vzc1Bvb2wuZ2V0
V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKCp0aGlzKTsKKyAgICBtX3Byb2Nlc3NQb29s
LmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcygqdGhpcyk7
CiB9Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkR2V0V29ya2VyQ29udGV4dFByb2Nl
c3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbikKLXsKLSAgICBt
X3dhaXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiA9IGZhbHNlOwotICAgIHNl
bmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nv
bm5lY3Rpb24oY29ubmVjdGlvbiksIDApOwotfQotCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3Jh
Z2VQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NQcm94eS5oCmluZGV4IGZjOTE3MTkzZDkxOWJhMDhkNDE5ODJiZDYxZGJlMzhhMjI3
YjBiYmUuLjI2ZGVlODc4OGY1NjkxN2QwNjZjMWNiZGJhZGJjMmUwNTk1NWE5YTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94
eS5oCkBAIC01NSwxMSArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0
YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgY29u
c3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBXVEY6OkZ1bmN0aW9uPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAKLSAgICB2b2lkIGdldFN0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYpOwotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQotICAgIHZvaWQgZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbnN0
IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbik7Ci0jZW5kaWYKKyAgICB2b2lkIGdldFN0b3Jh
Z2VQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFJlZjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5
ZWRSZXBseT4mJik7CiAKIHByaXZhdGU6CiAgICAgU3RvcmFnZVByb2Nlc3NQcm94eShXZWJQcm9j
ZXNzUG9vbCYpOwpAQCAtODQsOCArODAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0U2FuZGJv
eEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgcGF0aHMpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAg
IHZvaWQgZ2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKCk7Ci0gICAgYm9vbCBtX3dh
aXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiB7IGZhbHNlIH07CisgICAgdm9p
ZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MoKTsKICNl
bmRpZgogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCBiOWZjZDE5OTczZDM5YmJmODg2NDQwMDcxZTBjZTlmNzFkNDczMmJm
Li5jMjEyYjIyNjk3NGExYmNmNTk2N2E0ZDY1YmQ0MmU1ZDBlMzI4MzAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMiw2ICszMiw2IEBAIG1lc3NhZ2VzIC0+IFN0b3JhZ2VQ
cm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklD
RV9XT1JLRVIpCi0gICAgR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKCkKKyAgICBF
c3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3MoKQogI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggOTkx
MTVlMjA0ODIwY2U2Nzg3YzE4MzYwMzQ0YzFhZDk4NzVkN2QwMy4uYjliYjdhNDE5ZmQzODk0ODU1
NDg4MTU4OWQ0NTU2YzE4MzdhZTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcApAQCAtNTY2LDExICs1NjYsMTEgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
ZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUq
IHIKICAgICBtX3N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6
SW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUocmVsZXZhbnREYXRhU3RvcmUtPnN0b3JhZ2VQcm9j
ZXNzUGFyYW1ldGVycygpKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmdldFN0b3Jh
Z2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0U3Rv
cmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCit2b2lkIFdlYlBy
b2Nlc3NQb29sOjpnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzLCBSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nl
c3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCiB7CiAgICAgZW5zdXJlU3RvcmFn
ZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKG51bGxwdHIpOwogCi0gICAgbV9zdG9yYWdlUHJv
Y2Vzcy0+Z2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUocmVwbHkpKTsKKyAgICBt
X3N0b3JhZ2VQcm9jZXNzLT5nZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oaXNTZXJ2aWNlV29y
a2VyUHJvY2VzcywgV1RGTW92ZShyZXBseSkpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpz
dG9yYWdlUHJvY2Vzc0NyYXNoZWQoU3RvcmFnZVByb2Nlc3NQcm94eSogc3RvcmFnZVByb2Nlc3NQ
cm94eSkKQEAgLTU4Niw3ICs1ODYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzdG9yYWdlUHJv
Y2Vzc0NyYXNoZWQoU3RvcmFnZVByb2Nlc3NQcm94eSogc3RvcmFnZVByb2Nlc3NQcgogfQogCiAj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQcm9jZXNzUG9vbDo6Z2V0V29ya2Vy
Q29udGV4dFByb2Nlc3NDb25uZWN0aW9uKFN0b3JhZ2VQcm9jZXNzUHJveHkmIHByb3h5KQordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3Jh
Z2VQcm9jZXNzKFN0b3JhZ2VQcm9jZXNzUHJveHkmIHByb3h5KQogewogICAgIEFTU0VSVF9VTlVT
RUQocHJveHksICZwcm94eSA9PSBtX3N0b3JhZ2VQcm9jZXNzKTsKIApAQCAtNjAyLDEzICs2MDIs
NiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rp
b24oU3RvcmFnZVByb2Nlc3NQcm94eSYgcHJveAogICAgIG1fcHJvY2Vzc2VzLmFwcGVuZChXVEZN
b3ZlKHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkpKTsKICAgICBtX3NlcnZpY2VXb3JrZXJQcm9j
ZXNzLT5zdGFydChtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCkuc3RvcmUoKSk7CiB9
Ci0KLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmRpZEdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVj
dGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb24pCi17Ci0gICAgaWYgKCFtX3N0
b3JhZ2VQcm9jZXNzKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zdG9yYWdlUHJvY2Vzcy0+ZGlk
R2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQogI2VuZGlm
CiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OndpbGxTdGFydFVzaW5nUHJpdmF0ZUJyb3dzaW5nKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDMzYzgyMWQwNDA4
Y2NjYTM3NTk3N2YzZmY4YjgxNGZkOWVkMWE5ZGQuLjQxYWEzYzM4YjQ0NDkyNGY2NzhhNDZhY2Zl
NjQ4OTc1YTcyOTg2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aApAQCAtMzE5LDEwICszMTksMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbnN1cmVTdG9yYWdl
UHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSogcmVsZXZhbnREYXRh
U3RvcmUpOwogICAgIFN0b3JhZ2VQcm9jZXNzUHJveHkqIHN0b3JhZ2VQcm9jZXNzKCkgeyByZXR1
cm4gbV9zdG9yYWdlUHJvY2Vzcy5nZXQoKTsgfQotICAgIHZvaWQgZ2V0U3RvcmFnZVByb2Nlc3ND
b25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vz
c0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CisgICAgdm9pZCBnZXRTdG9yYWdlUHJvY2Vz
c0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBSZWY8TWVzc2FnZXM6Oldl
YlByb2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+
JiYpOwogICAgIHZvaWQgc3RvcmFnZVByb2Nlc3NDcmFzaGVkKFN0b3JhZ2VQcm9jZXNzUHJveHkq
KTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBnZXRXb3JrZXJDb250ZXh0
UHJvY2Vzc0Nvbm5lY3Rpb24oU3RvcmFnZVByb2Nlc3NQcm94eSYpOworICAgIHZvaWQgZXN0YWJs
aXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFN0b3JhZ2VQcm9jZXNz
UHJveHkmKTsKICAgICBib29sIGlzU2VydmljZVdvcmtlcih1aW50NjRfdCBwYWdlSUQpIGNvbnN0
IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclByb2Nlc3MgJiYgbV9zZXJ2aWNlV29ya2VyUHJvY2Vz
cy0+cGFnZUlEKCkgPT0gcGFnZUlEOyB9CiAgICAgU2VydmljZVdvcmtlclByb2Nlc3NQcm94eSog
c2VydmljZVdvcmtlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUHJvY2Vz
czsgfQogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2Vy
KGJvb2wgYWxsb3dzKSB7IG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JTZXJ2aWNlV29ya2Vy
ID0gYWxsb3dzOyB9CkBAIC00MjIsMTAgKzQyMiw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdWlu
dDY0X3QgcmVnaXN0ZXJQcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIoRnVuY3Rpb248dm9pZChX
ZWJQcm9jZXNzUG9vbCYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lzdGVyUHJvY2Vzc1Bv
b2xDcmVhdGlvbkxpc3RlbmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOwogCi0jaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0
aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbik7Ci0jZW5kaWYKLQogcHJpdmF0
ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwZThmZDA5NDk5NjhiYWU3YjA1OTUyZWUz
NGEwYjcyZTE5YzliZWZmLi42MTdhNjM5ZWQ4OWNkZTVhYTRkODE4NTg0NmFhMzFhNjFjNWQ2ODM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAgLTU3
Myw3ICs1NzMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OgogCiB2b2lkIFdlYlByb2Nlc3NQ
cm94eTo6Z2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJiByZXBs
eSkKIHsKLSAgICBtX3Byb2Nlc3NQb29sLT5nZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oV1RG
TW92ZShyZXBseSkpOworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVj
dGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzKCksIFdURk1vdmUocmVwbHkpKTsKIH0KIAogI2lm
ICFQTEFURk9STShDT0NPQSkKQEAgLTEyMjcsMTEgKzEyMjcsNCBAQCBjb25zdCBIYXNoU2V0PFN0
cmluZz4mIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1QYXRoc1dpdGhBc3N1bWVkUmVhZEFjY2Vz
cygpCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKLXZvaWQgV2ViUHJv
Y2Vzc1Byb3h5OjpkaWRHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFj
aG1lbnQmIGNvbm5lY3Rpb24pCi17Ci0gICAgbV9wcm9jZXNzUG9vbC0+ZGlkR2V0V29ya2VyQ29u
dGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQotI2VuZGlmCi0KIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApp
bmRleCBlMjhjZGIyOThjMzNkN2I5YjQ1MGU0NmViMmJiOThiNWFhZmU2ODkyLi4zNjk3MmE1MzFk
NTQ1NWYxZDhlYmI1OTE5NTdhMTI0OGRiN2E1ZDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICB1bnNp
Z25lZCBwYWdlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VNYXAuc2l6ZSgpOyB9CiAgICAg
dW5zaWduZWQgdmlzaWJsZVBhZ2VDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlzaWJsZVBhZ2VD
b3VudGVyLnZhbHVlKCk7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9j
ZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHZvaWQgYWRkVmlzaXRlZExpbmtT
dG9yZShWaXNpdGVkTGlua1N0b3JlJik7CiAgICAgdm9pZCBhZGRXZWJVc2VyQ29udGVudENvbnRy
b2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGRpZERlc3Ryb3lWaXNpdGVkTGlua1N0b3JlKFZpc2l0
ZWRMaW5rU3RvcmUmKTsKQEAgLTE4MiwxMCArMTg0LDYgQEAgcHVibGljOgogICAgIGJvb2wgaXNV
bmRlck1lbW9yeVByZXNzdXJlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VuZGVyTWVtb3J5UHJlc3N1
cmU7IH0KICAgICB2b2lkIGRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRXaGlsZUFjdGl2ZSgp
OwogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlkR2V0V29ya2VyQ29u
dGV4dENvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uKTsKLSNlbmRp
ZgotCiAgICAgdm9pZCBwcm9jZXNzVGVybWluYXRlZCgpOwogCiAgICAgdm9pZCBkaWRFeGNlZWRD
UFVMaW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE5MWJlNGEyM2Q5YjU5NzJhNTRlMDRlYjhkYjkwOTdlN2Qz
M2Y4MTcuLmFkNjljNTJmNDAwYzg2NWYzYTQ5ZWJmMGZmZGJkMmM1MmVkZWMyNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4K
QEAgLTU0LDggKzU0LDQgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2Vp
dmVyIHsKIAogICAgIE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZChib29sIGlzVW5kZXJNZW1v
cnlQcmVzc3VyZSkKICAgICBEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0V2hpbGVBY3RpdmUo
KQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIERpZEdldFdvcmtlckNvbnRleHRD
b25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uKQotI2VuZGlmCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNz
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0
b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZDU5Mzg3NjQ1NzYyOTc3MDVjMWQzMmEz
YzdhODhlNTkwYmQ5YWFmMy4uYjVlOWY3ZDljZjJhMTQ4MmY3MDk1ZTdiMmYxMjU0ZTRlZDdmYzE5
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9y
YWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAtMzMsNyArMzMsMTAg
QEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViU1dDbGllbnRDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2FnZXMuaCIKKyNpbmNs
dWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJTZXJ2aWNlV29y
a2VyUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1hbmFnZXIuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNzMsNiAr
NzYsMTIgQEAgdm9pZCBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6ZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgV2ViU2VydmljZVdvcmtl
clByb3ZpZGVyOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU2VydmljZVdvcmtlckNsaWVudEZldGNo
TWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAg
ICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2FnZXM6OldlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpIHsKKyAgICAgICAg
QVNTRVJUKFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rpb24oKSk7CisgICAg
ICAgIGlmIChhdXRvKiBjb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gPSBTV0NvbnRleHRNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiY+KCpjb250ZXh0TWFuYWdlckNvbm5lY3Rpb24pLmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47Cisg
ICAgfQogI2VuZGlmCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmIxMDU5ZjkwZTQ2N2ExNTZmNDZjMDZhNWJm
Y2NmMzdhMzE3NmE5MS4uYzQ3YzhiNzE3OTgxZGQyYTQ1ODM3ZWMzNjEwNTBkNzM4MmRiNzM5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtNjY5LDYgKzY2OSw3
IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBj
b25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAgICAgfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQorICAgIC8vIEZJWE1FOiBSZW1vdmU/CiAgICAgaWYgKGRlY29kZXIubWVzc2FnZVJl
Y2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIEFTU0VSVChTV0NvbnRleHRNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpOwogICAgICAgICBpZiAoYXV0byogY29udGV4dE1h
bmFnZXJDb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuY29ubmVjdGlv
bigpKQpAQCAtMTYzNSwzMCArMTYzNiwxMyBAQCBMaWJXZWJSVENOZXR3b3JrJiBXZWJQcm9jZXNz
OjpsaWJXZWJSVENOZXR3b3JrKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQotdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbih1aW50NjRfdCBw
YWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQordm9pZCBXZWJQcm9jZXNz
Ojplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3ModWludDY0
X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKLSNpZiBVU0Uo
VU5JWF9ET01BSU5fU09DS0VUUykKLSAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29j
a2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7Ci0g
ICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyKHNvY2tl
dFBhaXIuc2VydmVyKTsKLSAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkNsaWVudFBvcnQo
c29ja2V0UGFpci5jbGllbnQpOwotI2VsaWYgT1MoREFSV0lOKQotICAgIG1hY2hfcG9ydF90IGxp
c3RlbmluZ1BvcnQ7Ci0gICAgaWYgKG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigp
LCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpICE9IEtFUk5fU1VDQ0VT
UykKLSAgICAgICAgQ1JBU0goKTsKLQotICAgIGlmIChtYWNoX3BvcnRfaW5zZXJ0X3JpZ2h0KG1h
Y2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1BvcnQsIGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZ
UEVfTUFLRV9TRU5EKSAhPSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIENSQVNIKCk7Ci0KLSAgICBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIobGlzdGVuaW5n
UG9ydCk7Ci0gICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25DbGllbnRQb3J0KGxpc3Rlbmlu
Z1BvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKLSNlbHNlCi0gICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZgotCi0gICAgYXV0byB3b3JrZXJDb250ZXh0Q29ubmVj
dGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlvbihjb25uZWN0aW9u
SWRlbnRpZmllciwgKnRoaXMpOwotICAgIHdvcmtlckNvbnRleHRDb25uZWN0aW9uLT5vcGVuKCk7
Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0Q29ubmVjdGlvbihzdGQ6Om1h
a2VfdW5pcXVlPFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uPihXVEZNb3ZlKHdvcmtlckNv
bnRleHRDb25uZWN0aW9uKSwgcGFnZUlELCBzdG9yZSkpOwotICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6RGlkR2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29ubmVjdGlvbkNsaWVudFBv
cnQpLCAwKTsKKyAgICAvLyBXZSBhcmUgaW4gdGhlIFNlcnZpY2UgV29ya2VyIGNvbnRleHQgcHJv
Y2VzcyBhbmQgdGhlIGNhbGwgYmVsb3cgZXN0YWJsaXNoZXMgb3VyIGNvbm5lY3Rpb24gdG8gdGhl
IFN0b3JhZ2UgUHJvY2VzcworICAgIC8vIGJ5IGNhbGxpbmcgd2ViVG9TdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb24uIFNXQ29udGV4dE1hbmFnZXIgbmVlZHMgdG8gdXNlIHRoZSBzYW1lIHVuZGVybHlp
bmcgSVBDOjpDb25uZWN0aW9uIGFzIHRoZQorICAgIC8vIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uIGZvciBzeW5jaHJvbml6YXRpb24gcHVycG9zZXMuCisgICAgYXV0byYgaXBjQ29ubmVj
dGlvbiA9IHdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKTsKKyAg
ICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRDb25uZWN0aW9uKHN0ZDo6bWFrZV91
bmlxdWU8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24+KGlwY0Nvbm5lY3Rpb24sIHBhZ2VJ
RCwgc3RvcmUpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3Mu
aAppbmRleCAzMjU5MGExZTRjYTVhOTYxMjg0ZDUzYjkxMjQxOGMwYzI2NWZiMGUxLi40Mzk2ZDgw
YWRjYzk2MTY0ODJjNGQxYTZiNmU3OTIzZDVjNTQ1ZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKQEAgLTI5Nyw3ICsyOTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0
TmV0d29ya1Byb3h5U2V0dGluZ3MoY29uc3QgV2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRp
bmdzJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBnZXRX
b3JrZXJDb250ZXh0Q29ubmVjdGlvbih1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmKTsKKyAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9T
dG9yYWdlUHJvY2Vzcyh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
KTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUGFnZUNhY2hlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4IDc1OGE1ZTZmODk0
YTViOWQ3NjI3MmFlY2QyM2E1NzUyOGYwMGIzNTUuLjllY2Y4ZTUxMzEwYTFhMDY5NDM1YThjNzhl
YmJkZjI3YjI4NzhlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
cm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLm1lc3NhZ2VzLmluCkBAIC0xMTQsNiArMTE0LDYgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vz
cyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LSAgICBHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbih1aW50NjRfdCBwYWdlSUQsIHN0cnVjdCBX
ZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmUpCisgICAgRXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKHVpbnQ2NF90IHBhZ2VJRCwgc3RydWN0IFdl
YktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327881</attachid>
            <date>2017-11-29 11:49:43 -0800</date>
            <delta_ts>2017-11-29 11:57:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180147-20171129114942.patch</filename>
            <type>text/plain</type>
            <size>28847</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFkZmJhNWQ5NTgyMDA0NmNm
NjFiMDJhM2E3YWZjZDJlMDhjZmY0YTAuLmZhZDVjN2M3MmFmMGE5MzUyODljZmNmNDcxY2VlMWI5
NjM5NjMxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTctMTEtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbiAmIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBzaG91bGQgdXNlIHRoZSBz
YW1lIHVuZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiAmIFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBzaG91bGQgdXNlIHRoZSBzYW1lIHVuZGVybHlp
bmcgSVBDOjpDb25uZWN0aW9uLgorICAgICAgICBPdGhlcndpc2UsIHdlIGhhdmUgd2l0aCAyIElQ
Qzo6Q29ubmVjdGlvbnMgYmV0d2VlbiB0aGUgU3RvcmFnZVByb2Nlc3MgYW5kIHRoZSBTZXJ2aWNl
V29ya2VyIChha2EgQ29udGV4dCkgcHJvY2VzcywKKyAgICAgICAgd2hpY2ggbWFrZXMgc3luY2hy
b25pemF0aW9uIG9mIElQQyBtZXNzYWdlcyBkaWZmaWN1bHQuCisKKyAgICAgICAgKiBTdG9yYWdl
UHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9j
ZXNzOjpjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oOgorICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnN0YXJ0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5Ojplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdl
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRTdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZXN0YWJs
aXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdl
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc1NlcnZpY2VXb3JrZXJQcm9j
ZXNzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAxNy0x
MS0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGVuc3VyZSpD
b25uZWN0aW9uKCkgbWV0aG9kcyBvbiBXZWJQcm9jZXNzIHNob3VsZCByZXR1cm4gYSByZWZlcmVu
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAK
aW5kZXggMTdlMGU3NDcyZDUwZGRjMzBkMmQ5ODUwNmE0NTdlODhjNjJkYWU5Zi4uNmU3ZDA2NGQy
ZDE5OGI0YjU0NzNkMDE3MWEzZjhhYTBjYWZkNjA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lk
IFN0b3JhZ2VQcm9jZXNzOjpwZXJmb3JtTmV4dFN0b3JhZ2VUYXNrKCkKICAgICB0YXNrLnBlcmZv
cm1UYXNrKCk7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uKCkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcykKIHsKICNpZiBV
U0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIg
c29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7
CkBAIC0yMDgsNiArMjA4LDE5IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNl
bmRpZgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIGlmIChpc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzICYmICFtX3N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25u
ZWN0aW9uKTsKKyAgICAgICAgbV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uID0gV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjcmVhdGUobV9zdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbnMubGFzdCgpLT5jb25uZWN0aW9uKCkpOworICAgICAgICBtX3dhaXRpbmdGb3JTZXJ2ZXJU
b0NvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiA9IGZhbHNlOworCisgICAgICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IG1fc3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zKQorICAgICAgICAg
ICAgY29ubmVjdGlvbi0+d29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uQ3JlYXRlZCgpOwor
ICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGlzU2VydmljZVdvcmtlclByb2Nlc3MpOwor
I2VuZGlmCiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtMzgxLDMzICszOTQsNyBAQCB2b2lkIFN0
b3JhZ2VQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCkKICAgICAgICAg
cmV0dXJuOwogICAgIAogICAgIG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25u
ZWN0aW9uID0gdHJ1ZTsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rp
b24oKSwgMCk7Ci19Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEdldFdvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmJiBlbmNvZGVkQ29ubmVjdGlvbklkZW50
aWZpZXIpCi17Ci0gICAgQVNTRVJUKG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3ND
b25uZWN0aW9uKTsKLSAgICBtX3dhaXRpbmdGb3JTZXJ2ZXJUb0NvbnRleHRQcm9jZXNzQ29ubmVj
dGlvbiA9IGZhbHNlOwotCi0jaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCi0gICAgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOwotI2VsaWYgT1MoREFSV0lO
KQotICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihl
bmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKLSNlbHNlCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0jZW5kaWYKLQotICAgIGlmIChJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZp
ZXJJc051bGwoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7Ci0gICAgICAgIExPR19FUlJPUigiU3Rv
cmFnZVByb2Nlc3M6OmRpZEdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiAtIFJlY2Vp
dmVkIG51bGwgY29ubmVjdGlvbiBpZGVudGlmaWVyIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBhdXRvIGlwY0Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVu
dENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsKLSAgICBpcGNDb25uZWN0
aW9uLT5vcGVuKCk7Ci0gICAgbV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uID0gV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjcmVhdGUoV1RGTW92ZShpcGNDb25uZWN0aW9uKSk7Ci0g
ICAgCi0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV9zdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbnMpCi0gICAgICAgIGNvbm5lY3Rpb24tPndvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVj
dGlvbkNyZWF0ZWQoKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlv
blRvU3RvcmFnZVByb2Nlc3MoKSwgMCk7CiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEZh
aWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKaW5kZXggNGNiMmJkZDU2Yzg4YTBkMWE4YWFmZjdl
Mjg4ODEzYmYxZDgzODhhYS4uODE1ODdiMGNhYjA0YjQzYmVhZDIwZTg3YTU4MTE3ZjNlY2MzODgz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApA
QCAtOTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25u
ZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYpOwogI2VuZGlmCiAKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisKIHByaXZhdGU6CiAgICAgU3RvcmFnZVByb2Nlc3MoKTsKIApAQCAtMTA5LDExICsxMTEs
MTAgQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CiAKICAgICAvLyBNZXNzYWdlIEhhbmRsZXJzCiAgICAgdm9pZCBpbml0aWFs
aXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYpOwotICAgIHZvaWQgY3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAg
ICB2b2lkIGNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNl
V29ya2VyUHJvY2Vzcyk7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CkBAIC0xMjMsOCArMTI0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkmJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
Ci0gICAgdm9pZCBkaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRh
Y2htZW50JiYgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKTsKLQogICAgIHZvaWQgZGlkUmVj
ZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IGZiNWU0ZDhiMDczYTYzMWQ3Y2NiMTExYjZmOTU1OTRiMWNkMTRi
YWEuLjk5Mjc3ZDFmMmUxNzU4ZDhjOGI0YjQyMDA1NGZiYTdlMmQwZGE1NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtMjUsNyArMjUsNyBAQCBtZXNzYWdlcyAtPiBTdG9yYWdlUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgSW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoc3RydWN0IFdlYktpdDo6
U3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cykKIAogICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBh
IFdlYlByb2Nlc3MKLSAgICBDcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCisg
ICAgQ3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzKQogCiAgICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
dWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNp
bmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtMzYsOCArMzYsNiBAQCBtZXNzYWdlcyAtPiBT
dG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICBEaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpCi0KICAgICBEaWROb3RIYW5kbGVGZXRjaChX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiAgICAgRGlkRmFpbEZldGNoKFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKICAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDEzYTc3ZGJl
YjRmYzMwZDFmYjBhM2YxZWI3NTcwNTkzZjQxMGIwMGIuLjBjZjgzZmY1MmJhMTVkN2Q5Y2M2ZmEy
NjA1NTZlYjEzMDY1NjI3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nl
c3MuaCIKKyNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudE1l
c3NhZ2VzLmgiCkBAIC02OSw2ICs3MCwxMSBAQCB2b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CisgICAgICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU3RvcmFnZVBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJJREJD
b25uZWN0aW9ucy5maW5kKGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
ZTZiYzRjMmFmYzY4N2E5ZmMxMzE3ZTgzMGRhMzE3YjA2MzgwMGYyZi4uOGRmN2Q5ODdiMDJhODQz
YzM3MzdmOTYxNGYzNTc0OGQ2ODUxN2ZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NM
YXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYKIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
OjpzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihtX3NlcnZpY2VX
b3JrZXJQYWdlSUQsIHN0b3JlKSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKG1fc2Vydmlj
ZVdvcmtlclBhZ2VJRCwgc3RvcmUpLCAwKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBj
aGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LmgKaW5kZXggMTE4NmI3YTJjNWY2NDkwZmE0NjIwNWUwZTJmMmEzNjE4MGZi
NDNjZi4uMWFjNDU1NjJhNzMzYjY5YTFmZDFjOThhY2YyNTEzZDYwNDYwMWRkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApA
QCAtNDEsMTEgKzQxLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmKTsKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3Nl
cnZpY2VXb3JrZXJQYWdlSUQ7IH0KIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICAvLyBDaGls
ZFByb2Nlc3NQcm94eQogICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6
OkxhdW5jaE9wdGlvbnMmKSBmaW5hbDsKIAotcHJpdmF0ZToKKyAgICBib29sIGlzU2VydmljZVdv
cmtlclByb2Nlc3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKICAgICBTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSYpOwog
ICAgIHVpbnQ2NF90IG1fc2VydmljZVdvcmtlclBhZ2VJRCB7IDAgfTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCA5ODQyNWQxODg1YTZiZjdmZjYzMjI1NTY2N2QwY2E5MGMzMGQxZDFmLi40YzBhZDYw
ZDlmYTAxNDc1NWQ1Y2U0MGY2MjZjYzNkNjAzMzQ4Mzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAKQEAgLTEx
MSw3ICsxMTEsNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgc2VuZChNZXNzYWdlczo6
U3RvcmFnZVByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhzZXNzaW9uSUQsIGRh
dGFUeXBlcywgb3JpZ2lucywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFN0b3JhZ2VQcm9j
ZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYg
cmVwbHkpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVj
dGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJiByZXBs
eSkKIHsKICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBs
eSkpOwogCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpnZXRT
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHIKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpD
cmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwLCBJUEM6OlNlbmRPcHRpb246
OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgc2VuZChN
ZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MpLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNo
TWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHZvaWQgU3RvcmFnZVBy
b2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKQEAgLTIxNSwyNiArMjE1LDE2
IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NM
YXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29uCiAgICAgfQogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytpKQotICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6Q3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpD
cmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihmYWxzZSksIDApOwogICAgIAogICAg
IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7CiB9CiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFdvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbigpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmVzdGFibGlzaFdv
cmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcygpCiB7Ci0gICAgQVNTRVJUKCFt
X3dhaXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgbV93YWl0aW5n
T25Xb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24gPSB0cnVlOwotICAgIAotICAgIG1fcHJv
Y2Vzc1Bvb2wuZ2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKCp0aGlzKTsKKyAgICBt
X3Byb2Nlc3NQb29sLmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJv
Y2VzcygqdGhpcyk7CiB9Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkR2V0V29ya2Vy
Q29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlv
bikKLXsKLSAgICBtX3dhaXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiA9IGZh
bHNlOwotICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRHZXRXb3JrZXJDb250
ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbiksIDApOwotfQotCiAjZW5kaWYKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5oCmluZGV4IGZjOTE3MTkzZDkxOWJhMDhkNDE5ODJi
ZDYxZGJlMzhhMjI3YjBiYmUuLjI2ZGVlODc4OGY1NjkxN2QwNjZjMWNiZGJhZGJjMmUwNTk1NWE5
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NQcm94eS5oCkBAIC01NSwxMSArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAKLSAgICB2b2lkIGdldFN0
b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYpOwotCi0jaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25u
ZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbik7Ci0jZW5kaWYKKyAgICB2
b2lkIGdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nl
c3MsIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CiAKIHByaXZhdGU6CiAgICAgU3RvcmFnZVByb2Nlc3NQ
cm94eShXZWJQcm9jZXNzUG9vbCYpOwpAQCAtODQsOCArODAsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZ2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotICAgIHZvaWQgZ2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKCk7Ci0g
ICAgYm9vbCBtX3dhaXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiB7IGZhbHNl
IH07CisgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVBy
b2Nlc3MoKTsKICNlbmRpZgogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiOWZjZDE5OTczZDM5YmJmODg2NDQwMDcxZTBj
ZTlmNzFkNDczMmJmLi5jMjEyYjIyNjk3NGExYmNmNTk2N2E0ZDY1YmQ0MmU1ZDBlMzI4MzAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMiw2ICszMiw2IEBAIG1lc3NhZ2Vz
IC0+IFN0b3JhZ2VQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0
aW9uKCkKKyAgICBFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nl
c3MoKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggOTkxMTVlMjA0ODIwY2U2Nzg3YzE4MzYwMzQ0YzFhZDk4NzVkN2QwMy4uYjliYjdh
NDE5ZmQzODk0ODU1NDg4MTU4OWQ0NTU2YzE4MzdhZTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTY2LDExICs1NjYsMTEgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6ZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKFdlYnNp
dGVEYXRhU3RvcmUqIHIKICAgICBtX3N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9y
YWdlUHJvY2Vzczo6SW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUocmVsZXZhbnREYXRhU3RvcmUt
PnN0b3JhZ2VQcm9jZXNzUGFyYW1ldGVycygpKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkp
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCiB7CiAgICAg
ZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKG51bGxwdHIpOwogCi0gICAg
bV9zdG9yYWdlUHJvY2Vzcy0+Z2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUocmVw
bHkpKTsKKyAgICBtX3N0b3JhZ2VQcm9jZXNzLT5nZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24o
aXNTZXJ2aWNlV29ya2VyUHJvY2VzcywgV1RGTW92ZShyZXBseSkpOwogfQogCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpzdG9yYWdlUHJvY2Vzc0NyYXNoZWQoU3RvcmFnZVByb2Nlc3NQcm94eSogc3Rv
cmFnZVByb2Nlc3NQcm94eSkKQEAgLTU4Niw3ICs1ODYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpzdG9yYWdlUHJvY2Vzc0NyYXNoZWQoU3RvcmFnZVByb2Nlc3NQcm94eSogc3RvcmFnZVByb2Nl
c3NQcgogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQcm9jZXNzUG9v
bDo6Z2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKFN0b3JhZ2VQcm9jZXNzUHJveHkm
IHByb3h5KQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5l
Y3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFN0b3JhZ2VQcm9jZXNzUHJveHkmIHByb3h5KQogewogICAg
IEFTU0VSVF9VTlVTRUQocHJveHksICZwcm94eSA9PSBtX3N0b3JhZ2VQcm9jZXNzKTsKIApAQCAt
NjAyLDEzICs2MDIsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRXb3JrZXJDb250ZXh0UHJv
Y2Vzc0Nvbm5lY3Rpb24oU3RvcmFnZVByb2Nlc3NQcm94eSYgcHJveAogICAgIG1fcHJvY2Vzc2Vz
LmFwcGVuZChXVEZNb3ZlKHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkpKTsKICAgICBtX3NlcnZp
Y2VXb3JrZXJQcm9jZXNzLT5zdGFydChtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCku
c3RvcmUoKSk7CiB9Ci0KLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmRpZEdldFdvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb24pCi17Ci0g
ICAgaWYgKCFtX3N0b3JhZ2VQcm9jZXNzKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zdG9yYWdl
UHJvY2Vzcy0+ZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb24p
OwotfQogI2VuZGlmCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OndpbGxTdGFydFVzaW5nUHJpdmF0
ZUJyb3dzaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4
IDMzYzgyMWQwNDA4Y2NjYTM3NTk3N2YzZmY4YjgxNGZkOWVkMWE5ZGQuLjQxYWEzYzM4YjQ0NDky
NGY2NzhhNDZhY2ZlNjQ4OTc1YTcyOTg2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtMzE5LDEwICszMTksMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBl
bnN1cmVTdG9yYWdlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSog
cmVsZXZhbnREYXRhU3RvcmUpOwogICAgIFN0b3JhZ2VQcm9jZXNzUHJveHkqIHN0b3JhZ2VQcm9j
ZXNzKCkgeyByZXR1cm4gbV9zdG9yYWdlUHJvY2Vzcy5nZXQoKTsgfQotICAgIHZvaWQgZ2V0U3Rv
cmFnZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRT
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CisgICAgdm9pZCBnZXRT
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBSZWY8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHk+JiYpOwogICAgIHZvaWQgc3RvcmFnZVByb2Nlc3NDcmFzaGVkKFN0b3JhZ2VQ
cm9jZXNzUHJveHkqKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBnZXRX
b3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oU3RvcmFnZVByb2Nlc3NQcm94eSYpOworICAg
IHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFN0
b3JhZ2VQcm9jZXNzUHJveHkmKTsKICAgICBib29sIGlzU2VydmljZVdvcmtlcih1aW50NjRfdCBw
YWdlSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclByb2Nlc3MgJiYgbV9zZXJ2aWNl
V29ya2VyUHJvY2Vzcy0+cGFnZUlEKCkgPT0gcGFnZUlEOyB9CiAgICAgU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNl
V29ya2VyUHJvY2VzczsgfQogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JT
ZXJ2aWNlV29ya2VyKGJvb2wgYWxsb3dzKSB7IG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JT
ZXJ2aWNlV29ya2VyID0gYWxsb3dzOyB9CkBAIC00MjIsMTAgKzQyMiw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdWludDY0X3QgcmVnaXN0ZXJQcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIoRnVu
Y3Rpb248dm9pZChXZWJQcm9jZXNzUG9vbCYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lz
dGVyUHJvY2Vzc1Bvb2xDcmVhdGlvbkxpc3RlbmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOwogCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlkR2V0V29ya2VyQ29udGV4dFBy
b2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbik7Ci0jZW5k
aWYKLQogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwZThmZDA5NDk5Njhi
YWU3YjA1OTUyZWUzNGEwYjcyZTE5YzliZWZmLi42MTdhNjM5ZWQ4OWNkZTVhYTRkODE4NTg0NmFh
MzFhNjFjNWQ2ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKQEAgLTU3Myw3ICs1NzMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OgogCiB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6Z2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRS
ZXBseT4mJiByZXBseSkKIHsKLSAgICBtX3Byb2Nlc3NQb29sLT5nZXRTdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb24oV1RGTW92ZShyZXBseSkpOworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFN0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzKCksIFdURk1vdmUocmVwbHkp
KTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKQEAgLTEyMjcsMTEgKzEyMjcsNCBAQCBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1QYXRoc1dpdGhBc3N1
bWVkUmVhZEFjY2VzcygpCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihjb25z
dCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb24pCi17Ci0gICAgbV9wcm9jZXNzUG9vbC0+ZGlk
R2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQotI2VuZGlm
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCBlMjhjZGIyOThjMzNkN2I5YjQ1MGU0NmViMmJiOThiNWFhZmU2ODky
Li4zNjk3MmE1MzFkNTQ1NWYxZDhlYmI1OTE5NTdhMTI0OGRiN2E1ZDgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMyw4IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBwYWdlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VNYXAuc2l6
ZSgpOyB9CiAgICAgdW5zaWduZWQgdmlzaWJsZVBhZ2VDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
dmlzaWJsZVBhZ2VDb3VudGVyLnZhbHVlKCk7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZp
Y2VXb3JrZXJQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHZvaWQgYWRk
VmlzaXRlZExpbmtTdG9yZShWaXNpdGVkTGlua1N0b3JlJik7CiAgICAgdm9pZCBhZGRXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGRpZERlc3Ryb3lWaXNpdGVkTGlu
a1N0b3JlKFZpc2l0ZWRMaW5rU3RvcmUmKTsKQEAgLTE4MiwxMCArMTg0LDYgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VuZGVy
TWVtb3J5UHJlc3N1cmU7IH0KICAgICB2b2lkIGRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRX
aGlsZUFjdGl2ZSgpOwogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlk
R2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0
aW9uKTsKLSNlbmRpZgotCiAgICAgdm9pZCBwcm9jZXNzVGVybWluYXRlZCgpOwogCiAgICAgdm9p
ZCBkaWRFeGNlZWRDUFVMaW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE5MWJlNGEyM2Q5YjU5NzJhNTRlMDRl
YjhkYjkwOTdlN2QzM2Y4MTcuLmFkNjljNTJmNDAwYzg2NWYzYTQ5ZWJmMGZmZGJkMmM1MmVkZWMy
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KQEAgLTU0LDggKzU0LDQgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5
IExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZChib29s
IGlzVW5kZXJNZW1vcnlQcmVzc3VyZSkKICAgICBEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0
V2hpbGVBY3RpdmUoKQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIERpZEdldFdv
cmtlckNvbnRleHRDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uKQotI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0
b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZDU5Mzg3NjQ1NzYy
OTc3MDVjMWQzMmEzYzdhODhlNTkwYmQ5YWFmMy4uYjVlOWY3ZDljZjJhMTQ4MmY3MDk1ZTdiMmYx
MjU0ZTRlZDdmYzE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
MzMsNyArMzMsMTAgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1h
bmFnZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtNzMsNiArNzYsMTIgQEAgdm9pZCBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgV2Vi
U2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU2VydmljZVdvcmtl
ckNsaWVudEZldGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgQVNTRVJUKFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rp
b24oKSk7CisgICAgICAgIGlmIChhdXRvKiBjb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gPSBTV0Nv
bnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpCisgICAgICAgICAgICBzdGF0
aWNfY2FzdDxXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiY+KCpjb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24pLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQogI2VuZGlmCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggY2Y0ZDE5ZjUzNjUzMmNi
YzcxMjhmZmI2Y2NjMWQ3Njk1NzY5NThhNy4uYWQwMDgwZjgwYmI2ZWQ4YTBjNTgyZTMwYWMwYjEw
NzM0NDk0YjliYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NjQ2LDYgKzY0Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAgICAgfQogCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIC8vIEZJWE1FOiBSZW1vdmU/CiAgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIEFTU0VSVChTV0Nv
bnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpOwogICAgICAgICBpZiAoYXV0
byogY29udGV4dE1hbmFnZXJDb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkuY29ubmVjdGlvbigpKQpAQCAtMTYxNiwzMCArMTYxNywxMyBAQCBMaWJXZWJSVENOZXR3b3Jr
JiBXZWJQcm9jZXNzOjpsaWJXZWJSVENOZXR3b3JrKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlv
bih1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQordm9p
ZCBXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVBy
b2Nlc3ModWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
IHsKLSNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICBJUEM6OkNvbm5lY3Rpb246OlNv
Y2tldFBhaXIgc29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25u
ZWN0aW9uKCk7Ci0gICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKHNvY2tldFBhaXIuc2VydmVyKTsKLSAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkNsaWVudFBvcnQoc29ja2V0UGFpci5jbGllbnQpOwotI2VsaWYgT1MoREFSV0lOKQotICAgIG1h
Y2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7Ci0gICAgaWYgKG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNo
X3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpICE9
IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgQ1JBU0goKTsKLQotICAgIGlmIChtYWNoX3BvcnRfaW5z
ZXJ0X3JpZ2h0KG1hY2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1BvcnQsIGxpc3RlbmluZ1BvcnQs
IE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSAhPSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIENSQVNI
KCk7Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIobGlzdGVuaW5nUG9ydCk7Ci0gICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25DbGllbnRQ
b3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKLSNlbHNlCi0gICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZgotCi0gICAgYXV0byB3b3JrZXJD
b250ZXh0Q29ubmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlv
bihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOwotICAgIHdvcmtlckNvbnRleHRDb25uZWN0
aW9uLT5vcGVuKCk7Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0Q29ubmVj
dGlvbihzdGQ6Om1ha2VfdW5pcXVlPFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uPihXVEZN
b3ZlKHdvcmtlckNvbnRleHRDb25uZWN0aW9uKSwgcGFnZUlELCBzdG9yZSkpOwotICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkR2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29ubmVj
dGlvbkNsaWVudFBvcnQpLCAwKTsKKyAgICAvLyBXZSBhcmUgaW4gdGhlIFNlcnZpY2UgV29ya2Vy
IGNvbnRleHQgcHJvY2VzcyBhbmQgdGhlIGNhbGwgYmVsb3cgZXN0YWJsaXNoZXMgb3VyIGNvbm5l
Y3Rpb24gdG8gdGhlIFN0b3JhZ2UgUHJvY2VzcworICAgIC8vIGJ5IGNhbGxpbmcgd2ViVG9TdG9y
YWdlUHJvY2Vzc0Nvbm5lY3Rpb24uIFNXQ29udGV4dE1hbmFnZXIgbmVlZHMgdG8gdXNlIHRoZSBz
YW1lIHVuZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uIGFzIHRoZQorICAgIC8vIFdlYlRvU3RvcmFn
ZVByb2Nlc3NDb25uZWN0aW9uIGZvciBzeW5jaHJvbml6YXRpb24gcHVycG9zZXMuCisgICAgYXV0
byYgaXBjQ29ubmVjdGlvbiA9IGVuc3VyZVdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKCkt
PmNvbm5lY3Rpb24oKTsKKyAgICBTV0NvbnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRDb25u
ZWN0aW9uKHN0ZDo6bWFrZV91bmlxdWU8V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24+KGlw
Y0Nvbm5lY3Rpb24sIHBhZ2VJRCwgc3RvcmUpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAxMzFlMTdlZDE4YWVmMTI5MmM4MDQyYWQ4NWJkNjY3
ZjEyZTUwMTcxLi4xNTU2ZWZjMGJlNTM3NTQ0ZTMxZjNlM2FlZmFlOTgzYmI4ZTFiYTYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTI5Nyw3ICsyOTcsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgc2V0TmV0d29ya1Byb3h5U2V0dGluZ3MoY29uc3QgV2ViQ29yZTo6U291
cE5ldHdvcmtQcm94eVNldHRpbmdzJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCi0gICAgdm9pZCBnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbih1aW50NjRfdCBwYWdlSUQs
IGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKTsKKyAgICB2b2lkIGVzdGFibGlzaFdvcmtlckNv
bnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2Vzcyh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUmKTsKICNlbmRpZgogCiAgICAgdm9pZCByZWxlYXNlUGFnZUNhY2hl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmlu
CmluZGV4IDc1OGE1ZTZmODk0YTViOWQ3NjI3MmFlY2QyM2E1NzUyOGYwMGIzNTUuLjllY2Y4ZTUx
MzEwYTFhMDY5NDM1YThjNzhlYmJkZjI3YjI4NzhlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0xMTQsNiArMTE0LDYgQEAgbWVz
c2FnZXMgLT4gV2ViUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKLSAgICBHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbih1aW50NjRf
dCBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OldlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmUpCisgICAg
RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKHVpbnQ2NF90
IHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKICNlbmRp
ZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327883</attachid>
            <date>2017-11-29 11:57:31 -0800</date>
            <delta_ts>2017-11-29 13:11:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180147-20171129115730.patch</filename>
            <type>text/plain</type>
            <size>28846</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFkZmJhNWQ5NTgyMDA0NmNm
NjFiMDJhM2E3YWZjZDJlMDhjZmY0YTAuLmZhZDVjN2M3MmFmMGE5MzUyODljZmNmNDcxY2VlMWI5
NjM5NjMxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMTctMTEtMjkgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbiAmIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBzaG91bGQgdXNlIHRoZSBz
YW1lIHVuZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODAxNDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbiAmIFdl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbiBzaG91bGQgdXNlIHRoZSBzYW1lIHVuZGVybHlp
bmcgSVBDOjpDb25uZWN0aW9uLgorICAgICAgICBPdGhlcndpc2UsIHdlIGhhdmUgd2l0aCAyIElQ
Qzo6Q29ubmVjdGlvbnMgYmV0d2VlbiB0aGUgU3RvcmFnZVByb2Nlc3MgYW5kIHRoZSBTZXJ2aWNl
V29ya2VyIChha2EgQ29udGV4dCkgcHJvY2VzcywKKyAgICAgICAgd2hpY2ggbWFrZXMgc3luY2hy
b25pemF0aW9uIG9mIElQQyBtZXNzYWdlcyBkaWZmaWN1bHQuCisKKyAgICAgICAgKiBTdG9yYWdl
UHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VQcm9j
ZXNzOjpjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBTdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5oOgorICAgICAgICAqIFN0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFN0b3JhZ2VQ
cm9jZXNzL1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHk6OnN0YXJ0KToKKyAgICAgICAgKiBV
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9y
YWdlUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpTdG9yYWdlUHJvY2Vzc1Byb3h5Ojplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29u
bmVjdGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdl
UHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpnZXRTdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZXN0YWJs
aXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdl
UHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojppc1NlcnZpY2VXb3JrZXJQcm9j
ZXNzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29u
bmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uOjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVj
dGlvblRvU3RvcmFnZVByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKwogMjAxNy0x
MS0yOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIGVuc3VyZSpD
b25uZWN0aW9uKCkgbWV0aG9kcyBvbiBXZWJQcm9jZXNzIHNob3VsZCByZXR1cm4gYSByZWZlcmVu
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nl
c3MuY3BwIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAK
aW5kZXggMTdlMGU3NDcyZDUwZGRjMzBkMmQ5ODUwNmE0NTdlODhjNjJkYWU5Zi4uNmU3ZDA2NGQy
ZDE5OGI0YjU0NzNkMDE3MWEzZjhhYTBjYWZkNjA5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9T
dG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lk
IFN0b3JhZ2VQcm9jZXNzOjpwZXJmb3JtTmV4dFN0b3JhZ2VUYXNrKCkKICAgICB0YXNrLnBlcmZv
cm1UYXNrKCk7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uKCkKK3ZvaWQgU3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3JhZ2VUb1dl
YlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNlV29ya2VyUHJvY2VzcykKIHsKICNpZiBV
U0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICBJUEM6OkNvbm5lY3Rpb246OlNvY2tldFBhaXIg
c29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7
CkBAIC0yMDgsNiArMjA4LDE5IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmNyZWF0ZVN0b3JhZ2VU
b1dlYlByb2Nlc3NDb25uZWN0aW9uKCkKICNlbHNlCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKICNl
bmRpZgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIGlmIChpc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzICYmICFtX3N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5pc0VtcHR5KCkp
IHsKKyAgICAgICAgQVNTRVJUKG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25u
ZWN0aW9uKTsKKyAgICAgICAgbV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uID0gV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjcmVhdGUobV9zdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVj
dGlvbnMubGFzdCgpLT5jb25uZWN0aW9uKCkpOworICAgICAgICBtX3dhaXRpbmdGb3JTZXJ2ZXJU
b0NvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiA9IGZhbHNlOworCisgICAgICAgIGZvciAoYXV0byYg
Y29ubmVjdGlvbiA6IG1fc3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25zKQorICAgICAgICAg
ICAgY29ubmVjdGlvbi0+d29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uQ3JlYXRlZCgpOwor
ICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGlzU2VydmljZVdvcmtlclByb2Nlc3MpOwor
I2VuZGlmCiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtMzgxLDMzICszOTQsNyBAQCB2b2lkIFN0
b3JhZ2VQcm9jZXNzOjpjcmVhdGVTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uKCkKICAgICAgICAg
cmV0dXJuOwogICAgIAogICAgIG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3NDb25u
ZWN0aW9uID0gdHJ1ZTsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rp
b24oKSwgMCk7Ci19Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEdldFdvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmJiBlbmNvZGVkQ29ubmVjdGlvbklkZW50
aWZpZXIpCi17Ci0gICAgQVNTRVJUKG1fd2FpdGluZ0ZvclNlcnZlclRvQ29udGV4dFByb2Nlc3ND
b25uZWN0aW9uKTsKLSAgICBtX3dhaXRpbmdGb3JTZXJ2ZXJUb0NvbnRleHRQcm9jZXNzQ29ubmVj
dGlvbiA9IGZhbHNlOwotCi0jaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCi0gICAgSVBDOjpD
b25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyID0gZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOwotI2VsaWYgT1MoREFSV0lO
KQotICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihl
bmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKLSNlbHNlCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0jZW5kaWYKLQotICAgIGlmIChJUEM6OkNvbm5lY3Rpb246OmlkZW50aWZp
ZXJJc051bGwoY29ubmVjdGlvbklkZW50aWZpZXIpKSB7Ci0gICAgICAgIExPR19FUlJPUigiU3Rv
cmFnZVByb2Nlc3M6OmRpZEdldFdvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiAtIFJlY2Vp
dmVkIG51bGwgY29ubmVjdGlvbiBpZGVudGlmaWVyIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBhdXRvIGlwY0Nvbm5lY3Rpb24gPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVu
dENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKTsKLSAgICBpcGNDb25uZWN0
aW9uLT5vcGVuKCk7Ci0gICAgbV9zZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uID0gV2ViU1dTZXJ2
ZXJUb0NvbnRleHRDb25uZWN0aW9uOjpjcmVhdGUoV1RGTW92ZShpcGNDb25uZWN0aW9uKSk7Ci0g
ICAgCi0gICAgZm9yIChhdXRvJiBjb25uZWN0aW9uIDogbV9zdG9yYWdlVG9XZWJQcm9jZXNzQ29u
bmVjdGlvbnMpCi0gICAgICAgIGNvbm5lY3Rpb24tPndvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVj
dGlvbkNyZWF0ZWQoKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlv
blRvU3RvcmFnZVByb2Nlc3MoKSwgMCk7CiB9CiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmRpZEZh
aWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmgKaW5kZXggNGNiMmJkZDU2Yzg4YTBkMWE4YWFmZjdl
Mjg4ODEzYmYxZDgzODhhYS4uODE1ODdiMGNhYjA0YjQzYmVhZDIwZTg3YTU4MTE3ZjNlY2MzODgz
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vz
cy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaApA
QCAtOTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25u
ZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYpOwogI2VuZGlmCiAKKyAgICB2b2lkIGRpZFJl
Y2VpdmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jik7CisKIHByaXZhdGU6CiAgICAgU3RvcmFnZVByb2Nlc3MoKTsKIApAQCAtMTA5LDExICsxMTEs
MTAgQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVTdG9yYWdlUHJvY2Vzc01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBD
OjpEZWNvZGVyJik7CiAKICAgICAvLyBNZXNzYWdlIEhhbmRsZXJzCiAgICAgdm9pZCBpbml0aWFs
aXplV2Vic2l0ZURhdGFTdG9yZShjb25zdCBTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cyYpOwotICAgIHZvaWQgY3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAg
ICB2b2lkIGNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGJvb2wgaXNTZXJ2aWNl
V29ya2VyUHJvY2Vzcyk7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2NF90
IGNhbGxiYWNrSUQpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQs
IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHN0ZDo6Y2hyb25v
OjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgdWludDY0X3QgY2FsbGJh
Y2tJRCk7CkBAIC0xMjMsOCArMTI0LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldFNhbmRi
b3hFeHRlbnNpb25zRm9yQmxvYkZpbGVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkmJik7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
Ci0gICAgdm9pZCBkaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpBdHRh
Y2htZW50JiYgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKTsKLQogICAgIHZvaWQgZGlkUmVj
ZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3QgZmV0Y2hJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNl
Jik7CiAgICAgdm9pZCBkaWRSZWNlaXZlRmV0Y2hEYXRhKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllciwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgaW50NjRfdCBlbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgdm9pZCBkaWRSZWNl
aXZlRmV0Y2hGb3JtRGF0YShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIGNvbnN0IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3Mu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNz
Lm1lc3NhZ2VzLmluCmluZGV4IGZiNWU0ZDhiMDczYTYzMWQ3Y2NiMTExYjZmOTU1OTRiMWNkMTRi
YWEuLjk5Mjc3ZDFmMmUxNzU4ZDhjOGI0YjQyMDA1NGZiYTdlMmQwZGE1NmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdl
cy5pbgpAQCAtMjUsNyArMjUsNyBAQCBtZXNzYWdlcyAtPiBTdG9yYWdlUHJvY2VzcyBMZWdhY3lS
ZWNlaXZlciB7CiAgICAgSW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUoc3RydWN0IFdlYktpdDo6
U3RvcmFnZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgcHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cykKIAogICAgICMgQ3JlYXRlcyBhIGNvbm5lY3Rpb24gZm9yIGNvbW11bmljYXRpb24gd2l0aCBh
IFdlYlByb2Nlc3MKLSAgICBDcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCisg
ICAgQ3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3Jr
ZXJQcm9jZXNzKQogCiAgICAgRmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywg
dWludDY0X3QgY2FsbGJhY2tJRCkKICAgICBEZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJLaXQ6OldlYnNpdGVEYXRhVHlwZT4gd2Vic2l0ZURh
dGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNp
bmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKQpAQCAtMzYsOCArMzYsNiBAQCBtZXNzYWdlcyAtPiBT
dG9yYWdlUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKLSAgICBEaWRHZXRXb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpCi0KICAgICBEaWROb3RIYW5kbGVGZXRjaChX
ZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIpCiAgICAgRGlkRmFpbEZldGNoKFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIHVpbnQ2NF90IGZldGNoSWRlbnRpZmllcikKICAgICBEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UgcmVzcG9uc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCmluZGV4IDEzYTc3ZGJl
YjRmYzMwZDFmYjBhM2YxZWI3NTcwNTkzZjQxMGIwMGIuLjBjZjgzZmY1MmJhMTVkN2Q5Y2M2ZmEy
NjA1NTZlYjEzMDY1NjI3NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U3RvcmFnZVByb2Nlc3MvU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3RvcmFnZVByb2Nl
c3MuaCIKKyNpbmNsdWRlICJTdG9yYWdlUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3Rv
cmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYklEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oIgogI2luY2x1ZGUgIldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudE1l
c3NhZ2VzLmgiCkBAIC02OSw2ICs3MCwxMSBAQCB2b2lkIFN0b3JhZ2VUb1dlYlByb2Nlc3NDb25u
ZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3RpbwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKGRlY29kZXIubWVzc2FnZVJlY2VpdmVyTmFt
ZSgpID09IE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7
CisgICAgICAgIFN0b3JhZ2VQcm9jZXNzOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU3RvcmFnZVBy
b2Nlc3NNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAgICByZXR1cm47CisgICAg
fQorCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgaWYgKGRlY29kZXIubWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Om1l
c3NhZ2VSZWNlaXZlck5hbWUoKSkgewogICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbV93ZWJJREJD
b25uZWN0aW9ucy5maW5kKGRlY29kZXIuZGVzdGluYXRpb25JRCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
ZTZiYzRjMmFmYzY4N2E5ZmMxMzE3ZTgzMGRhMzE3YjA2MzgwMGYyZi4uOGRmN2Q5ODdiMDJhODQz
YzM3MzdmOTYxNGYzNTc0OGQ2ODUxN2ZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
dm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NM
YXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYKIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vzc1Byb3h5
OjpzdGFydChjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKIHsKLSAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQcm9jZXNzOjpHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihtX3NlcnZpY2VX
b3JrZXJQYWdlSUQsIHN0b3JlKSwgMCk7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6
RXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKG1fc2Vydmlj
ZVdvcmtlclBhZ2VJRCwgc3RvcmUpLCAwKTsKIH0KIAogdm9pZCBTZXJ2aWNlV29ya2VyUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodWludDY0X3QgcGFnZUlE
LCB1aW50NjRfdCBmcmFtZUlELCBSZWY8QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eT4mJiBj
aGFsbGVuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
UHJvY2Vzc1Byb3h5LmgKaW5kZXggMTE4NmI3YTJjNWY2NDkwZmE0NjIwNWUwZTJmMmEzNjE4MGZi
NDNjZi4uMWFjNDU1NjJhNzMzYjY5YTFmZDFjOThhY2YyNTEzZDYwNDYwMWRkMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU2VydmljZVdvcmtlclByb2Nlc3NQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1NlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkuaApA
QCAtNDEsMTEgKzQxLDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHN0YXJ0KGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmKTsKICAgICB1aW50NjRfdCBwYWdlSUQoKSBjb25zdCB7IHJldHVybiBtX3Nl
cnZpY2VXb3JrZXJQYWdlSUQ7IH0KIAotcHJvdGVjdGVkOgorcHJpdmF0ZToKICAgICAvLyBDaGls
ZFByb2Nlc3NQcm94eQogICAgIHZvaWQgZ2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6
OkxhdW5jaE9wdGlvbnMmKSBmaW5hbDsKIAotcHJpdmF0ZToKKyAgICBib29sIGlzU2VydmljZVdv
cmtlclByb2Nlc3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CisKICAgICBTZXJ2aWNl
V29ya2VyUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSYpOwog
ICAgIHVpbnQ2NF90IG1fc2VydmljZVdvcmtlclBhZ2VJRCB7IDAgfTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCA5ODQyNWQxODg1YTZiZjdmZjYzMjI1NTY2N2QwY2E5MGMzMGQxZDFmLi40YzBhZDYw
ZDlmYTAxNDc1NWQ1Y2U0MGY2MjZjYzNkNjAzMzQ4Mzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAKQEAgLTEx
MSw3ICsxMTEsNyBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmRlbGV0ZVdlYnNpdGVEYXRh
Rm9yT3JpZ2lucyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgc2VuZChNZXNzYWdlczo6
U3RvcmFnZVByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhzZXNzaW9uSUQsIGRh
dGFUeXBlcywgb3JpZ2lucywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFN0b3JhZ2VQcm9j
ZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYg
cmVwbHkpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVj
dGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nlc3MsIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJiByZXBs
eSkKIHsKICAgICBtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBs
eSkpOwogCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpnZXRT
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHIKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpD
cmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwLCBJUEM6OlNlbmRPcHRpb246
OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CisgICAgc2VuZChN
ZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0
aW9uKGlzU2VydmljZVdvcmtlclByb2Nlc3MpLCAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNo
TWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHZvaWQgU3RvcmFnZVBy
b2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikKQEAgLTIxNSwyNiArMjE1LDE2
IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NM
YXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29uCiAgICAgfQogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0czsgKytpKQotICAgICAgICBz
ZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6Q3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oKSwgMCk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpD
cmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihmYWxzZSksIDApOwogICAgIAogICAg
IG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25SZXF1ZXN0cyA9IDA7CiB9CiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCi12b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFdvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbigpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmVzdGFibGlzaFdv
cmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJvY2VzcygpCiB7Ci0gICAgQVNTRVJUKCFt
X3dhaXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbik7Ci0gICAgbV93YWl0aW5n
T25Xb3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24gPSB0cnVlOwotICAgIAotICAgIG1fcHJv
Y2Vzc1Bvb2wuZ2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKCp0aGlzKTsKKyAgICBt
X3Byb2Nlc3NQb29sLmVzdGFibGlzaFdvcmtlckNvbnRleHRDb25uZWN0aW9uVG9TdG9yYWdlUHJv
Y2VzcygqdGhpcyk7CiB9Ci0KLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkR2V0V29ya2Vy
Q29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlv
bikKLXsKLSAgICBtX3dhaXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiA9IGZh
bHNlOwotICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpEaWRHZXRXb3JrZXJDb250
ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oY29ubmVjdGlvbiksIDApOwotfQotCiAjZW5kaWYKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94eS5oCmluZGV4IGZjOTE3MTkzZDkxOWJhMDhkNDE5ODJi
ZDYxZGJlMzhhMjI3YjBiYmUuLjI2ZGVlODc4OGY1NjkxN2QwNjZjMWNiZGJhZGJjMmUwNTk1NWE5
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NQcm94eS5oCkBAIC01NSwxMSArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxl
dGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4s
IHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSwgV1RG
OjpGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogICAgIHZvaWQgZGVsZXRl
V2Vic2l0ZURhdGFGb3JPcmlnaW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFUeXBlPiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mLCBXVEY6
OkZ1bmN0aW9uPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CiAKLSAgICB2b2lkIGdldFN0
b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYpOwotCi0jaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25u
ZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbik7Ci0jZW5kaWYKKyAgICB2
b2lkIGdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihib29sIGlzU2VydmljZVdvcmtlclByb2Nl
c3MsIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CiAKIHByaXZhdGU6CiAgICAgU3RvcmFnZVByb2Nlc3NQ
cm94eShXZWJQcm9jZXNzUG9vbCYpOwpAQCAtODQsOCArODAsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgZ2V0U2FuZGJveEV4dGVuc2lvbnNGb3JCbG9iRmlsZXModWludDY0X3QgcmVxdWVzdElELCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwogI2VuZGlmCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQotICAgIHZvaWQgZ2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKCk7Ci0g
ICAgYm9vbCBtX3dhaXRpbmdPbldvcmtlckNvbnRleHRQcm9jZXNzQ29ubmVjdGlvbiB7IGZhbHNl
IH07CisgICAgdm9pZCBlc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVBy
b2Nlc3MoKTsKICNlbmRpZgogCiAgICAgLy8gUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZVBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiOWZjZDE5OTczZDM5YmJmODg2NDQwMDcxZTBj
ZTlmNzFkNDczMmJmLi5jMjEyYjIyNjk3NGExYmNmNTk2N2E0ZDY1YmQ0MmU1ZDBlMzI4MzAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMiw2ICszMiw2IEBAIG1lc3NhZ2Vz
IC0+IFN0b3JhZ2VQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogI2VuZGlmCiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0
aW9uKCkKKyAgICBFc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nl
c3MoKQogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggOTkxMTVlMjA0ODIwY2U2Nzg3YzE4MzYwMzQ0YzFhZDk4NzVkN2QwMy4uYjliYjdh
NDE5ZmQzODk0ODU1NDg4MTU4OWQ0NTU2YzE4MzdhZTcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTY2LDExICs1NjYsMTEgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6ZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKFdlYnNp
dGVEYXRhU3RvcmUqIHIKICAgICBtX3N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9y
YWdlUHJvY2Vzczo6SW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUocmVsZXZhbnREYXRhU3RvcmUt
PnN0b3JhZ2VQcm9jZXNzUGFyYW1ldGVycygpKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkp
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBp
c1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCiB7CiAgICAg
ZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKG51bGxwdHIpOwogCi0gICAg
bV9zdG9yYWdlUHJvY2Vzcy0+Z2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUocmVw
bHkpKTsKKyAgICBtX3N0b3JhZ2VQcm9jZXNzLT5nZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24o
aXNTZXJ2aWNlV29ya2VyUHJvY2VzcywgV1RGTW92ZShyZXBseSkpOwogfQogCiB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpzdG9yYWdlUHJvY2Vzc0NyYXNoZWQoU3RvcmFnZVByb2Nlc3NQcm94eSogc3Rv
cmFnZVByb2Nlc3NQcm94eSkKQEAgLTU4Niw3ICs1ODYsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29s
OjpzdG9yYWdlUHJvY2Vzc0NyYXNoZWQoU3RvcmFnZVByb2Nlc3NQcm94eSogc3RvcmFnZVByb2Nl
c3NQcgogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQcm9jZXNzUG9v
bDo6Z2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKFN0b3JhZ2VQcm9jZXNzUHJveHkm
IHByb3h5KQordm9pZCBXZWJQcm9jZXNzUG9vbDo6ZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5l
Y3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFN0b3JhZ2VQcm9jZXNzUHJveHkmIHByb3h5KQogewogICAg
IEFTU0VSVF9VTlVTRUQocHJveHksICZwcm94eSA9PSBtX3N0b3JhZ2VQcm9jZXNzKTsKIApAQCAt
NjAyLDEzICs2MDIsNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXRXb3JrZXJDb250ZXh0UHJv
Y2Vzc0Nvbm5lY3Rpb24oU3RvcmFnZVByb2Nlc3NQcm94eSYgcHJveAogICAgIG1fcHJvY2Vzc2Vz
LmFwcGVuZChXVEZNb3ZlKHNlcnZpY2VXb3JrZXJQcm9jZXNzUHJveHkpKTsKICAgICBtX3NlcnZp
Y2VXb3JrZXJQcm9jZXNzLT5zdGFydChtX2RlZmF1bHRQYWdlR3JvdXAtPnByZWZlcmVuY2VzKCku
c3RvcmUoKSk7CiB9Ci0KLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmRpZEdldFdvcmtlckNvbnRleHRQ
cm9jZXNzQ29ubmVjdGlvbihjb25zdCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb24pCi17Ci0g
ICAgaWYgKCFtX3N0b3JhZ2VQcm9jZXNzKQotICAgICAgICByZXR1cm47Ci0gICAgbV9zdG9yYWdl
UHJvY2Vzcy0+ZGlkR2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb24p
OwotfQogI2VuZGlmCiAKIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OndpbGxTdGFydFVzaW5nUHJpdmF0
ZUJyb3dzaW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4
IDMzYzgyMWQwNDA4Y2NjYTM3NTk3N2YzZmY4YjgxNGZkOWVkMWE5ZGQuLjQxYWEzYzM4YjQ0NDky
NGY2NzhhNDZhY2ZlNjQ4OTc1YTcyOTg2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaApAQCAtMzE5LDEwICszMTksMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBl
bnN1cmVTdG9yYWdlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSog
cmVsZXZhbnREYXRhU3RvcmUpOwogICAgIFN0b3JhZ2VQcm9jZXNzUHJveHkqIHN0b3JhZ2VQcm9j
ZXNzKCkgeyByZXR1cm4gbV9zdG9yYWdlUHJvY2Vzcy5nZXQoKTsgfQotICAgIHZvaWQgZ2V0U3Rv
cmFnZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRT
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CisgICAgdm9pZCBnZXRT
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oYm9vbCBpc1NlcnZpY2VXb3JrZXJQcm9jZXNzLCBSZWY8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpE
ZWxheWVkUmVwbHk+JiYpOwogICAgIHZvaWQgc3RvcmFnZVByb2Nlc3NDcmFzaGVkKFN0b3JhZ2VQ
cm9jZXNzUHJveHkqKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCi0gICAgdm9pZCBnZXRX
b3JrZXJDb250ZXh0UHJvY2Vzc0Nvbm5lY3Rpb24oU3RvcmFnZVByb2Nlc3NQcm94eSYpOworICAg
IHZvaWQgZXN0YWJsaXNoV29ya2VyQ29udGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKFN0
b3JhZ2VQcm9jZXNzUHJveHkmKTsKICAgICBib29sIGlzU2VydmljZVdvcmtlcih1aW50NjRfdCBw
YWdlSUQpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclByb2Nlc3MgJiYgbV9zZXJ2aWNl
V29ya2VyUHJvY2Vzcy0+cGFnZUlEKCkgPT0gcGFnZUlEOyB9CiAgICAgU2VydmljZVdvcmtlclBy
b2Nlc3NQcm94eSogc2VydmljZVdvcmtlclByb3h5KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNl
V29ya2VyUHJvY2VzczsgfQogICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JT
ZXJ2aWNlV29ya2VyKGJvb2wgYWxsb3dzKSB7IG1fYWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JT
ZXJ2aWNlV29ya2VyID0gYWxsb3dzOyB9CkBAIC00MjIsMTAgKzQyMiw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdWludDY0X3QgcmVnaXN0ZXJQcm9jZXNzUG9vbENyZWF0aW9uTGlzdGVuZXIoRnVu
Y3Rpb248dm9pZChXZWJQcm9jZXNzUG9vbCYpPiYmKTsKICAgICBzdGF0aWMgdm9pZCB1bnJlZ2lz
dGVyUHJvY2Vzc1Bvb2xDcmVhdGlvbkxpc3RlbmVyKHVpbnQ2NF90IGlkZW50aWZpZXIpOwogCi0j
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlkR2V0V29ya2VyQ29udGV4dFBy
b2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVjdGlvbik7Ci0jZW5k
aWYKLQogcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwZThmZDA5NDk5Njhi
YWU3YjA1OTUyZWUzNGEwYjcyZTE5YzliZWZmLi42MTdhNjM5ZWQ4OWNkZTVhYTRkODE4NTg0NmFh
MzFhNjFjNWQ2ODM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5jcHAKQEAgLTU3Myw3ICs1NzMsNyBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OgogCiB2b2lk
IFdlYlByb2Nlc3NQcm94eTo6Z2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdl
czo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRS
ZXBseT4mJiByZXBseSkKIHsKLSAgICBtX3Byb2Nlc3NQb29sLT5nZXRTdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb24oV1RGTW92ZShyZXBseSkpOworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldFN0b3JhZ2VQ
cm9jZXNzQ29ubmVjdGlvbihpc1NlcnZpY2VXb3JrZXJQcm9jZXNzKCksIFdURk1vdmUocmVwbHkp
KTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKQEAgLTEyMjcsMTEgKzEyMjcsNCBAQCBjb25z
dCBIYXNoU2V0PFN0cmluZz4mIFdlYlByb2Nlc3NQcm94eTo6cGxhdGZvcm1QYXRoc1dpdGhBc3N1
bWVkUmVhZEFjY2VzcygpCiB9CiAjZW5kaWYKIAotI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
LXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRHZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlvbihjb25z
dCBJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb24pCi17Ci0gICAgbV9wcm9jZXNzUG9vbC0+ZGlk
R2V0V29ya2VyQ29udGV4dFByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwotfQotI2VuZGlm
Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAppbmRleCBlMjhjZGIyOThjMzNkN2I5YjQ1MGU0NmViMmJiOThiNWFhZmU2ODky
Li4zNjk3MmE1MzFkNTQ1NWYxZDhlYmI1OTE5NTdhMTI0OGRiN2E1ZDgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMTAzLDYgKzEwMyw4IEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBwYWdlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VNYXAuc2l6
ZSgpOyB9CiAgICAgdW5zaWduZWQgdmlzaWJsZVBhZ2VDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1f
dmlzaWJsZVBhZ2VDb3VudGVyLnZhbHVlKCk7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBpc1NlcnZp
Y2VXb3JrZXJQcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHZvaWQgYWRk
VmlzaXRlZExpbmtTdG9yZShWaXNpdGVkTGlua1N0b3JlJik7CiAgICAgdm9pZCBhZGRXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXJQcm94eShXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94eSYsIFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIGRpZERlc3Ryb3lWaXNpdGVkTGlu
a1N0b3JlKFZpc2l0ZWRMaW5rU3RvcmUmKTsKQEAgLTE4MiwxMCArMTg0LDYgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNVbmRlck1lbW9yeVByZXNzdXJlKCkgY29uc3QgeyByZXR1cm4gbV9pc1VuZGVy
TWVtb3J5UHJlc3N1cmU7IH0KICAgICB2b2lkIGRpZEV4Y2VlZEluYWN0aXZlTWVtb3J5TGltaXRX
aGlsZUFjdGl2ZSgpOwogCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIHZvaWQgZGlk
R2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25uZWN0
aW9uKTsKLSNlbmRpZgotCiAgICAgdm9pZCBwcm9jZXNzVGVybWluYXRlZCgpOwogCiAgICAgdm9p
ZCBkaWRFeGNlZWRDUFVMaW1pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDE5MWJlNGEyM2Q5YjU5NzJhNTRlMDRl
YjhkYjkwOTdlN2QzM2Y4MTcuLmFkNjljNTJmNDAwYzg2NWYzYTQ5ZWJmMGZmZGJkMmM1MmVkZWMy
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4KQEAgLTU0LDggKzU0LDQgQEAgbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5
IExlZ2FjeVJlY2VpdmVyIHsKIAogICAgIE1lbW9yeVByZXNzdXJlU3RhdHVzQ2hhbmdlZChib29s
IGlzVW5kZXJNZW1vcnlQcmVzc3VyZSkKICAgICBEaWRFeGNlZWRJbmFjdGl2ZU1lbW9yeUxpbWl0
V2hpbGVBY3RpdmUoKQotCi0jaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQotICAgIERpZEdldFdv
cmtlckNvbnRleHRDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uKQotI2VuZGlm
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0
b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggZDU5Mzg3NjQ1NzYy
OTc3MDVjMWQzMmEzYzdhODhlNTkwYmQ5YWFmMy4uYjVlOWY3ZDljZjJhMTQ4MmY3MDk1ZTdiMmYx
MjU0ZTRlZDdmYzE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmNwcApAQCAt
MzMsNyArMzMsMTAgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViU1dD
bGllbnRDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViU1dDbGllbnRDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJX
ZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NXQ29udGV4dE1h
bmFnZXIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwpAQCAtNzMsNiArNzYsMTIgQEAgdm9pZCBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW8KICAgICAgICAgV2Vi
U2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5kaWRSZWNlaXZlU2VydmljZVdvcmtl
ckNsaWVudEZldGNoTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1lKCkgPT0gTWVzc2Fn
ZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkp
IHsKKyAgICAgICAgQVNTRVJUKFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLmNvbm5lY3Rp
b24oKSk7CisgICAgICAgIGlmIChhdXRvKiBjb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gPSBTV0Nv
bnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpCisgICAgICAgICAgICBzdGF0
aWNfY2FzdDxXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiY+KCpjb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24pLmRpZFJlY2VpdmVNZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOworICAgICAg
ICByZXR1cm47CisgICAgfQogI2VuZGlmCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggY2Y0ZDE5ZjUzNjUzMmNi
YzcxMjhmZmI2Y2NjMWQ3Njk1NzY5NThhNy4uZjAyYzUzYjVhZDA0ZmJjNWEwODIyODNhNGRkMjYy
Njg2ZTcxZGQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAt
NjQ2LDYgKzY0Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6OkRlY29kZXImIGRlCiAgICAgfQogCiAjaWYgRU5B
QkxFKFNFUlZJQ0VfV09SS0VSKQorICAgIC8vIEZJWE1FOiBSZW1vdmU/CiAgICAgaWYgKGRlY29k
ZXIubWVzc2FnZVJlY2VpdmVyTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKSB7CiAgICAgICAgIEFTU0VSVChTV0Nv
bnRleHRNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb25uZWN0aW9uKCkpOwogICAgICAgICBpZiAoYXV0
byogY29udGV4dE1hbmFnZXJDb25uZWN0aW9uID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9u
KCkuY29ubmVjdGlvbigpKQpAQCAtMTYxNiwzMCArMTYxNywxMyBAQCBMaWJXZWJSVENOZXR3b3Jr
JiBXZWJQcm9jZXNzOjpsaWJXZWJSVENOZXR3b3JrKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfV09SS0VSKQotdm9pZCBXZWJQcm9jZXNzOjpnZXRXb3JrZXJDb250ZXh0Q29ubmVjdGlv
bih1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQordm9p
ZCBXZWJQcm9jZXNzOjplc3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVBy
b2Nlc3ModWludDY0X3QgcGFnZUlELCBjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
IHsKLSNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICBJUEM6OkNvbm5lY3Rpb246OlNv
Y2tldFBhaXIgc29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25u
ZWN0aW9uKCk7Ci0gICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVu
dGlmaWVyKHNvY2tldFBhaXIuc2VydmVyKTsKLSAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkNsaWVudFBvcnQoc29ja2V0UGFpci5jbGllbnQpOwotI2VsaWYgT1MoREFSV0lOKQotICAgIG1h
Y2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7Ci0gICAgaWYgKG1hY2hfcG9ydF9hbGxvY2F0ZShtYWNo
X3Rhc2tfc2VsZigpLCBNQUNIX1BPUlRfUklHSFRfUkVDRUlWRSwgJmxpc3RlbmluZ1BvcnQpICE9
IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgQ1JBU0goKTsKLQotICAgIGlmIChtYWNoX3BvcnRfaW5z
ZXJ0X3JpZ2h0KG1hY2hfdGFza19zZWxmKCksIGxpc3RlbmluZ1BvcnQsIGxpc3RlbmluZ1BvcnQs
IE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKSAhPSBLRVJOX1NVQ0NFU1MpCi0gICAgICAgIENSQVNI
KCk7Ci0KLSAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIobGlzdGVuaW5nUG9ydCk7Ci0gICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25DbGllbnRQ
b3J0KGxpc3RlbmluZ1BvcnQsIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKLSNlbHNlCi0gICAg
UkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSNlbmRpZgotCi0gICAgYXV0byB3b3JrZXJD
b250ZXh0Q29ubmVjdGlvbiA9IElQQzo6Q29ubmVjdGlvbjo6Y3JlYXRlU2VydmVyQ29ubmVjdGlv
bihjb25uZWN0aW9uSWRlbnRpZmllciwgKnRoaXMpOwotICAgIHdvcmtlckNvbnRleHRDb25uZWN0
aW9uLT5vcGVuKCk7Ci0gICAgU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0Q29ubmVj
dGlvbihzdGQ6Om1ha2VfdW5pcXVlPFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uPihXVEZN
b3ZlKHdvcmtlckNvbnRleHRDb25uZWN0aW9uKSwgcGFnZUlELCBzdG9yZSkpOwotICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6OldlYlByb2Nlc3NQcm94eTo6RGlkR2V0V29ya2VyQ29udGV4dENvbm5lY3Rpb24oY29ubmVj
dGlvbkNsaWVudFBvcnQpLCAwKTsKKyAgICAvLyBXZSBhcmUgaW4gdGhlIFNlcnZpY2UgV29ya2Vy
IGNvbnRleHQgcHJvY2VzcyBhbmQgdGhlIGNhbGwgYmVsb3cgZXN0YWJsaXNoZXMgb3VyIGNvbm5l
Y3Rpb24gdG8gdGhlIFN0b3JhZ2UgUHJvY2VzcworICAgIC8vIGJ5IGNhbGxpbmcgd2ViVG9TdG9y
YWdlUHJvY2Vzc0Nvbm5lY3Rpb24uIFNXQ29udGV4dE1hbmFnZXIgbmVlZHMgdG8gdXNlIHRoZSBz
YW1lIHVuZGVybHlpbmcgSVBDOjpDb25uZWN0aW9uIGFzIHRoZQorICAgIC8vIFdlYlRvU3RvcmFn
ZVByb2Nlc3NDb25uZWN0aW9uIGZvciBzeW5jaHJvbml6YXRpb24gcHVycG9zZXMuCisgICAgYXV0
byYgaXBjQ29ubmVjdGlvbiA9IGVuc3VyZVdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKCku
Y29ubmVjdGlvbigpOworICAgIFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNldENvbm5l
Y3Rpb24oc3RkOjptYWtlX3VuaXF1ZTxXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbj4oaXBj
Q29ubmVjdGlvbiwgcGFnZUlELCBzdG9yZSkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IDEzMWUxN2VkMThhZWYxMjkyYzgwNDJhZDg1YmQ2Njdm
MTJlNTAxNzEuLjE1NTZlZmMwYmU1Mzc1NDRlMzFmM2UzYWVmYWU5ODNiYjhlMWJhNjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtMjk3LDcgKzI5Nyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXROZXR3b3JrUHJveHlTZXR0aW5ncyhjb25zdCBXZWJDb3JlOjpTb3Vw
TmV0d29ya1Byb3h5U2V0dGluZ3MmKTsKICNlbmRpZgogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKLSAgICB2b2lkIGdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKHVpbnQ2NF90IHBhZ2VJRCwg
Y29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpOworICAgIHZvaWQgZXN0YWJsaXNoV29ya2VyQ29u
dGV4dENvbm5lY3Rpb25Ub1N0b3JhZ2VQcm9jZXNzKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2Vi
UHJlZmVyZW5jZXNTdG9yZSYpOwogI2VuZGlmCiAKICAgICB2b2lkIHJlbGVhc2VQYWdlQ2FjaGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
aW5kZXggNzU4YTVlNmY4OTRhNWI5ZDc2MjcyYWVjZDIzYTU3NTI4ZjAwYjM1NS4uOWVjZjhlNTEz
MTBhMWEwNjk0MzVhOGM3OGViYmRmMjdiMjg3OGVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTExNCw2ICsxMTQsNiBAQCBtZXNz
YWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQotICAgIEdldFdvcmtlckNvbnRleHRDb25uZWN0aW9uKHVpbnQ2NF90
IHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZSBzdG9yZSkKKyAgICBF
c3RhYmxpc2hXb3JrZXJDb250ZXh0Q29ubmVjdGlvblRvU3RvcmFnZVByb2Nlc3ModWludDY0X3Qg
cGFnZUlELCBzdHJ1Y3QgV2ViS2l0OjpXZWJQcmVmZXJlbmNlc1N0b3JlIHN0b3JlKQogI2VuZGlm
CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>