<?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>180543</bug_id>
          
          <creation_ts>2017-12-07 13:05:30 -0800</creation_ts>
          <short_desc>Read registrations in from disk</short_desc>
          <delta_ts>2017-12-07 17:31:10 -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>Service Workers</component>
          <version>Other</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>aestes</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1379232</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-07 13:05:30 -0800</bug_when>
    <thetext>Basic beginnings of reading registrations in from disk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379352</commentid>
    <comment_count>1</comment_count>
      <attachid>328752</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-12-07 16:28:59 -0800</bug_when>
    <thetext>Created attachment 328752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379390</commentid>
    <comment_count>2</comment_count>
      <attachid>328752</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-07 17:27:04 -0800</bug_when>
    <thetext>Comment on attachment 328752
Patch

Clearing flags on attachment: 328752

Committed r225661: &lt;https://trac.webkit.org/changeset/225661&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379391</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-07 17:27:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1379393</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-07 17:31:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/35924504&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328752</attachid>
            <date>2017-12-07 16:28:59 -0800</date>
            <delta_ts>2017-12-07 17:27:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180543-20171207162858.patch</filename>
            <type>text/plain</type>
            <size>23437</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTRjZTllZTZmMjViNTM0
NDk0YmIzOGY1MDI2MTBjMGFiYjA1MTE3MS4uYmQ4MmJkM2E5ZjNjMTBiZDMyMTg5Y2U2MDVhMmM1
ZGUxYTZkYzY0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE3LTEyLTA3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWFkIHJlZ2lzdHJhdGlv
bnMgaW4gZnJvbSBkaXNrLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgwNTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzIChOb3QgdGVzdGFibGUgcXVpdGUgeWV0KQorCisgICAgICAg
IE9uIGxhdW5jaCwgcmVhZCB0aHJvdWdoIHRoZSBkYXRhYmFzZS4KKworICAgICAgICBTZXQgdXAg
ZW5vdWdoIG9iamVjdHMgaW4gdGhlIFNXU2VydmVyIG5lY2Vzc2FyeSB0byBjYXVzZSBmZXRjaGVz
IGFuZCBwb3N0TWVzc2FnZXMgdG8KKyAgICAgICAgZ28gdG8gYSB3b3JrZXIgdGhhdCBoYXMgbmV2
ZXIgcnVuIGJlZm9yZS4KKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHRE
YXRhOjppc29sYXRlZENvcHkgY29uc3QpOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJD
b250ZXh0RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YTo6ZGVjb2RlKToKKworICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXk6OnRvRGF0YWJhc2VLZXkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleTo6ZnJvbURhdGFiYXNlS2V5KToKKyAg
ICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oOgor
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdUb1VwZGF0ZVZpYUNhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OnN0cmluZ1RvV29ya2VyVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWdpc3Ry
YXRpb25EYXRhYmFzZTo6ZG9QdXNoQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZWdpc3Ry
YXRpb25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3JlOjpSZWdpc3Ry
YXRpb25EYXRhYmFzZTo6YWRkUmVnaXN0cmF0aW9uVG9TdG9yZSk6CisgICAgICAgICogd29ya2Vy
cy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oOgorCisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZWdpc3RyYXRpb25TdG9yZTo6UmVnaXN0cmF0aW9uU3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVnaXN0cmF0aW9uU3RvcmU6OmFkZFJlZ2lzdHJhdGlvbkZyb21EYXRhYmFzZSk6Cisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oOgorCisg
ICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uRnJvbVN0b3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNXU2VydmVyOjpTV1NlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpTV1NlcnZlcjo6
dXBkYXRlV29ya2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyOjp0cnlJbnN0YWxsQ29u
dGV4dERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0
YSk6CisgICAgICAgIChXZWJDb3JlOjpnZW5lcmF0ZVNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmg6CisK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg6
CisKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyV29ya2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNXU2VydmVyV29ya2VyOjpjb250ZXh0RGF0YSBjb25zdCk6CisK
IDIwMTctMTItMDcgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtXUEVdW0dUS10gRnJlZXplIFdlYktpdCB2ZXJzaW9uIGluIHVzZXIgYWdlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGV4dERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5jcHAKaW5kZXggYmI1ZWIyMGQyOWU4M2Y2MWYwOGFmZmQ3OTAxMTQ1
MWJlYmI3ODZiYi4uN2YwYWJiZTI0NzYyMjkxZWQ1YjlmMTRmMzhkMjlmY2EyYmZmZjExYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YS5jcHAKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjpp
c29sYXRlZENvcHkoKSBjb25zdAogewotICAgIHJldHVybiB7IGpvYkRhdGFJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb24uaXNvbGF0ZWRDb3B5KCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzY3Jp
cHQuaXNvbGF0ZWRDb3B5KCksIHNjcmlwdFVSTC5pc29sYXRlZENvcHkoKSwgd29ya2VyVHlwZSB9
OworICAgIHJldHVybiB7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uaXNvbGF0ZWRD
b3B5KCksIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBzY3JpcHQuaXNvbGF0ZWRDb3B5KCksIHNj
cmlwdFVSTC5pc29sYXRlZENvcHkoKSwgd29ya2VyVHlwZSwgbG9hZGVkRnJvbURpc2sgfTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250ZXh0RGF0YS5oCmluZGV4IDgwNTA3NDFk
OWZkNTkwMTgyNTcxYWEyMTc0MGVkNDVmNTA3MWVkMTIuLmYzZmUwZGMxNGJlN2EyMjIyMzhmNzNm
ZWRjMjM1NWNhMGRjYjM3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGV4dERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRleHREYXRhLmgKQEAgLTQyLDYgKzQyLDcgQEAg
c3RydWN0IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSB7CiAgICAgU3RyaW5nIHNjcmlwdDsKICAg
ICBVUkwgc2NyaXB0VVJMOwogICAgIFdvcmtlclR5cGUgd29ya2VyVHlwZTsKKyAgICBib29sIGxv
YWRlZEZyb21EaXNrOwogICAgIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+IGRlY29kZShEZWNvZGVyJik7
CkBAIC01Miw3ICs1Myw3IEBAIHN0cnVjdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEgewogdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgU2VydmljZVdvcmtlckNvbnRleHREYXRhOjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGpvYkRhdGFJZGVu
dGlmaWVyIDw8IHJlZ2lzdHJhdGlvbiA8PCBzZXJ2aWNlV29ya2VySWRlbnRpZmllciA8PCBzY3Jp
cHQgPDwgc2NyaXB0VVJMIDw8IHdvcmtlclR5cGU7CisgICAgZW5jb2RlciA8PCBqb2JEYXRhSWRl
bnRpZmllciA8PCByZWdpc3RyYXRpb24gPDwgc2VydmljZVdvcmtlcklkZW50aWZpZXIgPDwgc2Ny
aXB0IDw8IHNjcmlwdFVSTCA8PCB3b3JrZXJUeXBlIDw8IGxvYWRlZEZyb21EaXNrOwogfQogCiB0
ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgpAQCAtODMsOCArODQsMTIgQEAgc3RkOjpvcHRpb25hbDxT
ZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YTo6ZGVjb2Rl
KERlY29kZXIKICAgICBXb3JrZXJUeXBlIHdvcmtlclR5cGU7CiAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUVudW0od29ya2VyVHlwZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
Ci0gICAgcmV0dXJuIHt7IFdURk1vdmUoKmpvYkRhdGFJZGVudGlmaWVyKSwgV1RGTW92ZSgqcmVn
aXN0cmF0aW9uKSwgV1RGTW92ZSgqc2VydmljZVdvcmtlcklkZW50aWZpZXIpLCBXVEZNb3ZlKHNj
cmlwdCksIFdURk1vdmUoc2NyaXB0VVJMKSwgd29ya2VyVHlwZSB9fTsKKworICAgIGJvb2wgbG9h
ZGVkRnJvbURpc2s7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShsb2FkZWRGcm9tRGlzaykpCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4ge3sgV1RGTW92ZSgqam9i
RGF0YUlkZW50aWZpZXIpLCBXVEZNb3ZlKCpyZWdpc3RyYXRpb24pLCBXVEZNb3ZlKCpzZXJ2aWNl
V29ya2VySWRlbnRpZmllciksIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShzY3JpcHRVUkwpLCB3
b3JrZXJUeXBlLCBsb2FkZWRGcm9tRGlza319OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbktleS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleS5jcHAKaW5kZXggNGI5YWNhNDg3M2Y4ZGVkODFiYjY3
NzFiMmU0YmI0MTBkNTZiZGRkZC4uMmM4OWRkNGMxOTcyYTc1N2UzNWNhOWQyYTNmNWFmYTViYzVj
NDg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25LZXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmNwcApAQCAtODAsNyArODAsNDUgQEAg
c3RhdGljIGNvbnN0IGNoYXIgc2VwYXJhdG9yQ2hhcmFjdGVyID0gJ18nOwogCiBTdHJpbmcgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbktleTo6dG9EYXRhYmFzZUtleSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1ha2VTdHJpbmcobV90b3BPcmlnaW4ucHJvdG9jb2wsIHNlcGFyYXRvckNoYXJhY3Rl
ciwgbV90b3BPcmlnaW4uaG9zdCwgc2VwYXJhdG9yQ2hhcmFjdGVyLCBtX3RvcE9yaWdpbi5wb3J0
LnZhbHVlX29yKDApLCBzZXBhcmF0b3JDaGFyYWN0ZXIsIG1fc2NvcGUucGF0aCgpKTsKKyAgICBp
ZiAobV90b3BPcmlnaW4ucG9ydCkKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcobV90b3BPcmln
aW4ucHJvdG9jb2wsIHNlcGFyYXRvckNoYXJhY3RlciwgbV90b3BPcmlnaW4uaG9zdCwgc2VwYXJh
dG9yQ2hhcmFjdGVyLCBTdHJpbmc6Om51bWJlcihtX3RvcE9yaWdpbi5wb3J0LnZhbHVlKCkpLCBz
ZXBhcmF0b3JDaGFyYWN0ZXIsIG1fc2NvcGUuc3RyaW5nKCkpOworICAgIHJldHVybiBtYWtlU3Ry
aW5nKG1fdG9wT3JpZ2luLnByb3RvY29sLCBzZXBhcmF0b3JDaGFyYWN0ZXIsIG1fdG9wT3JpZ2lu
Lmhvc3QsIHNlcGFyYXRvckNoYXJhY3Rlciwgc2VwYXJhdG9yQ2hhcmFjdGVyLCBtX3Njb3BlLnN0
cmluZygpKTsKK30KKworc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5
PiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5Ojpmcm9tRGF0YWJhc2VLZXkoY29uc3QgU3Ry
aW5nJiBrZXkpCit7CisgICAgYXV0byBmaXJzdCA9IGtleS5maW5kKHNlcGFyYXRvckNoYXJhY3Rl
ciwgMCk7CisgICAgYXV0byBzZWNvbmQgPSBrZXkuZmluZChzZXBhcmF0b3JDaGFyYWN0ZXIsIGZp
cnN0ICsgMSk7CisgICAgYXV0byB0aGlyZCA9IGtleS5maW5kKHNlcGFyYXRvckNoYXJhY3Rlciwg
c2Vjb25kICsgMSk7CisKKyAgICBpZiAoZmlyc3QgPT0gc2Vjb25kIHx8IHNlY29uZCA9PSB0aGly
ZCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8dWlu
dDE2X3Q+IHNob3J0UG9ydDsKKworICAgIC8vIElmIHRoZXJlJ3MgYSBnYXAgYmV0d2VlbiB0aGly
ZCBhbmQgc2Vjb25kLCB3ZSBleHBlY3QgdG8gaGF2ZSBhIHBvcnQgdG8gZGVjb2RlCisgICAgaWYg
KHRoaXJkIC0gc2Vjb25kID4gMSkgeworICAgICAgICBib29sIG9rOworICAgICAgICB1bnNpZ25l
ZCBwb3J0OworICAgICAgICBpZiAoa2V5LmlzOEJpdCgpKQorICAgICAgICAgICAgcG9ydCA9IGNo
YXJhY3RlcnNUb1VJbnRTdHJpY3Qoa2V5LmNoYXJhY3RlcnM4KCkgKyBzZWNvbmQgKyAxLCB0aGly
ZCAtIHNlY29uZCAtIDEgLCAmb2spOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwb3J0ID0g
Y2hhcmFjdGVyc1RvVUludFN0cmljdChrZXkuY2hhcmFjdGVyczE2KCkgKyBzZWNvbmQgKyAxLCB0
aGlyZCAtIHNlY29uZCAtIDEsICZvayk7CisKKyAgICAgICAgaWYgKCFvaykKKyAgICAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAgICAgaWYgKHBvcnQgPiBzdGQ6Om51bWVyaWNf
bGltaXRzPHVpbnQxNl90Pjo6bWF4KCkpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHNob3J0UG9ydCA9IHN0YXRpY19jYXN0PHVpbnQxNl90Pihwb3J0KTsKKyAg
ICB9CisKKyAgICBhdXRvIHNjb3BlID0gVVJMIHsgVVJMKCksIGtleS5zdWJzdHJpbmcodGhpcmQg
KyAxKSB9OworICAgIGlmICghc2NvcGUuaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworCisgICAgcmV0dXJuIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkgeyB7IGtl
eS5zdWJzdHJpbmcoMCwgZmlyc3QpLCBrZXkuc3Vic3RyaW5nKGZpcnN0ICsgMSwgc2Vjb25kIC0g
Zmlyc3QgLSAxKSwgc2hvcnRQb3J0IH0sIFdURk1vdmUoc2NvcGUpIH07CiB9CiAKICNpZm5kZWYg
TkRFQlVHCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkuaAppbmRleCBjMTcxNzVhODRlMWM0YTA4ZTEw
NzA0MDkyZmYzZWFkNGNiMGVmYTRmLi4xNGVjNWZhM2JiOTBlZTcyYWIyMjAxODZhMWRhYWI1NWYz
ZDYzMWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbktleS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5LmgKQEAgLTU1LDYgKzU1LDcgQEAgcHVi
bGljOgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXk+IGRlY29kZShEZWNvZGVyJik7CiAKICAgICBTdHJp
bmcgdG9EYXRhYmFzZUtleSgpIGNvbnN0OworICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25LZXk+IGZyb21EYXRhYmFzZUtleShjb25zdCBTdHJpbmcmKTsK
IAogI2lmbmRlZiBOREVCVUcKICAgICBTdHJpbmcgbG9nZ2luZ1N0cmluZygpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRp
b25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1Jl
Z2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCAxNWEzM2U3ZDIyN2FmZGZjNGIyNTlhMzdkM2Q5
OGQwN2Y3NzZmODhkLi42NjE1YTRhNTRkMWI5N2I2Y2JjMGY1MWQxNTQ2MTIyYjRhZWU1MTdkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJh
dGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtMTY1LDYgKzE2NSwxOCBAQCBzdGF0aWMg
U3RyaW5nIHVwZGF0ZVZpYUNhY2hlVG9TdHJpbmcoU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hl
IHVwZGF0ZSkKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCitzdGF0aWMg
c3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGU+IHN0cmluZ1RvVXBkYXRl
VmlhQ2FjaGUoY29uc3QgU3RyaW5nJiB1cGRhdGUpCit7CisgICAgaWYgKHVwZGF0ZSA9PSAiSW1w
b3J0cyIpCisgICAgICAgIHJldHVybiBTZXJ2aWNlV29ya2VyVXBkYXRlVmlhQ2FjaGU6OkltcG9y
dHM7CisgICAgaWYgKHVwZGF0ZSA9PSAiQWxsIikKKyAgICAgICAgcmV0dXJuIFNlcnZpY2VXb3Jr
ZXJVcGRhdGVWaWFDYWNoZTo6QWxsOworICAgIGlmICh1cGRhdGUgPT0gIk5vbmUiKQorICAgICAg
ICByZXR1cm4gU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlOjpOb25lOworCisgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKK30KKwogc3RhdGljIFN0cmluZyB3b3JrZXJUeXBlVG9TdHJpbmcoV29y
a2VyVHlwZSB3b3JrZXJUeXBlKQogewogICAgIHN3aXRjaCAod29ya2VyVHlwZSkgewpAQCAtMTc3
LDYgKzE4OSwxNiBAQCBzdGF0aWMgU3RyaW5nIHdvcmtlclR5cGVUb1N0cmluZyhXb3JrZXJUeXBl
IHdvcmtlclR5cGUpCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAorc3Rh
dGljIHN0ZDo6b3B0aW9uYWw8V29ya2VyVHlwZT4gc3RyaW5nVG9Xb3JrZXJUeXBlKGNvbnN0IFN0
cmluZyYgdHlwZSkKK3sKKyAgICBpZiAodHlwZSA9PSAiQ2xhc3NpYyIpCisgICAgICAgIHJldHVy
biBXb3JrZXJUeXBlOjpDbGFzc2ljOworICAgIGlmICh0eXBlID09ICJNb2R1bGUiKQorICAgICAg
ICByZXR1cm4gV29ya2VyVHlwZTo6TW9kdWxlOworCisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
K30KKwogdm9pZCBSZWdpc3RyYXRpb25EYXRhYmFzZTo6cHVzaENoYW5nZXMoVmVjdG9yPFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YT4mJiBkYXRhcykKIHsKICAgICBwb3N0VGFzayhjcmVhdGVDcm9z
c1RocmVhZFRhc2soKnRoaXMsICZSZWdpc3RyYXRpb25EYXRhYmFzZTo6ZG9QdXNoQ2hhbmdlcywg
ZGF0YXMpKTsKQEAgLTE5MSw3ICsyMTMsNyBAQCB2b2lkIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjpk
b1B1c2hDaGFuZ2VzKFZlY3RvcjxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+JiYgZGF0YQogCiAg
ICAgU1FMaXRlU3RhdGVtZW50IHNxbCgqbV9kYXRhYmFzZSwgQVNDSUlMaXRlcmFsKCJJTlNFUlQg
SU5UTyBSZWNvcmRzIFZBTFVFUyAoPywgPywgPywgPywgPywgPywgPywgPywgPykiKSk7CiAgICAg
aWYgKHNxbC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKSB7Ci0gICAgICAgIExPR19FUlJPUigiRmFp
bGVkIHRvIHByZXBhcmVkIHN0YXRlbWVudCB0byBzdG9yZSByZWdpc3RyYXRpb24gZGF0YSBpbnRv
IHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksIG1fZGF0
YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gcHJl
cGFyZSBzdGF0ZW1lbnQgdG8gc3RvcmUgcmVnaXN0cmF0aW9uIGRhdGEgaW50byByZWNvcmRzIHRh
YmxlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0
RXJyb3JNc2coKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIzMSwxMCArMjUzLDUw
IEBAIHZvaWQgUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmRvUHVzaENoYW5nZXMoVmVjdG9yPFNlcnZp
Y2VXb3JrZXJDb250ZXh0RGF0YT4mJiBkYXRhCiBTdHJpbmcgUmVnaXN0cmF0aW9uRGF0YWJhc2U6
OmltcG9ydFJlY29yZHMoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQKKworICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fZGF0YWJhc2Us
IEFTQ0lJTGl0ZXJhbCgiU0VMRUNUICogRlJPTSBSZWNvcmRzOyIpKTsKKyAgICBpZiAoc3FsLnBy
ZXBhcmUoKSAhPSBTUUxJVEVfT0spCisgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiRmFp
bGVkIHRvIHByZXBhcmUgc3RhdGVtZW50IHRvIHJldHJpZXZlIHJlZ2lzdHJhdGlvbnMgZnJvbSBy
ZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFi
YXNlLT5sYXN0RXJyb3JNc2coKSk7CisKKyAgICBpbnQgcmVzdWx0ID0gc3FsLnN0ZXAoKTsKKwor
ICAgIGZvciAoOyByZXN1bHQgPT0gU1FMSVRFX1JPVzsgcmVzdWx0ID0gc3FsLnN0ZXAoKSkgewor
ICAgICAgICBhdXRvIGtleSA9IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXk6OmZyb21EYXRh
YmFzZUtleShzcWwuZ2V0Q29sdW1uVGV4dCgwKSk7CisgICAgICAgIGF1dG8gb3JpZ2luVVJMID0g
VVJMIHsgVVJMKCksIHNxbC5nZXRDb2x1bW5UZXh0KDEpIH07CisgICAgICAgIGF1dG8gc2NvcGVQ
YXRoID0gc3FsLmdldENvbHVtblRleHQoMik7CisgICAgICAgIGF1dG8gdG9wT3JpZ2luID0gU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tRGF0YWJhc2VJZGVudGlmaWVyKHNxbC5nZXRDb2x1bW5UZXh0
KDMpKTsKKyAgICAgICAgYXV0byBsYXN0VXBkYXRlQ2hlY2tUaW1lID0gV2FsbFRpbWU6OmZyb21S
YXdTZWNvbmRzKHNxbC5nZXRDb2x1bW5Eb3VibGUoNCkpOworICAgICAgICBhdXRvIHVwZGF0ZVZp
YUNhY2hlID0gc3RyaW5nVG9VcGRhdGVWaWFDYWNoZShzcWwuZ2V0Q29sdW1uVGV4dCg1KSk7Cisg
ICAgICAgIGF1dG8gc2NyaXB0VVJMID0gVVJMIHsgVVJMKCksIHNxbC5nZXRDb2x1bW5UZXh0KDYp
IH07CisgICAgICAgIGF1dG8gc2NyaXB0ID0gc3FsLmdldENvbHVtblRleHQoNyk7CisgICAgICAg
IGF1dG8gd29ya2VyVHlwZSA9IHN0cmluZ1RvV29ya2VyVHlwZShzcWwuZ2V0Q29sdW1uVGV4dCg4
KSk7CisKKyAgICAgICAgLy8gVmFsaWRhdGUgdGhlIGlucHV0IGZvciB0aGlzIHJlZ2lzdHJhdGlv
bi4KKyAgICAgICAgLy8gSWYgYW55IHBhcnQgb2YgdGhpcyBpbnB1dCBpcyBpbnZhbGlkLCBsZXQn
cyBza2lwIHRoaXMgcmVnaXN0cmF0aW9uLgorICAgICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHJl
dHVybiBhbiBlcnJvciBza2lwcGluZyAqYWxsKiByZWdpc3RyYXRpb25zPworICAgICAgICBpZiAo
IWtleSB8fCAhb3JpZ2luVVJMLmlzVmFsaWQoKSB8fCAhdG9wT3JpZ2luIHx8ICF1cGRhdGVWaWFD
YWNoZSB8fCAhc2NyaXB0VVJMLmlzVmFsaWQoKSB8fCAhd29ya2VyVHlwZSkKKyAgICAgICAgICAg
IGNvbnRpbnVlOworCisgICAgICAgIGF1dG8gd29ya2VySWRlbnRpZmllciA9IGdlbmVyYXRlT2Jq
ZWN0SWRlbnRpZmllcjxTZXJ2aWNlV29ya2VySWRlbnRpZmllclR5cGU+KCk7CisgICAgICAgIGF1
dG8gcmVnaXN0cmF0aW9uSWRlbnRpZmllciA9IGdlbmVyYXRlT2JqZWN0SWRlbnRpZmllcjxTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllclR5cGU+KCk7CisgICAgICAgIGF1dG8gc2Vy
dmljZVdvcmtlckRhdGEgPSBTZXJ2aWNlV29ya2VyRGF0YSB7IHdvcmtlcklkZW50aWZpZXIsIHNj
cmlwdFVSTCwgU2VydmljZVdvcmtlclN0YXRlOjpBY3RpdmF0ZWQsICp3b3JrZXJUeXBlLCByZWdp
c3RyYXRpb25JZGVudGlmaWVyIH07CisgICAgICAgIGF1dG8gcmVnaXN0cmF0aW9uID0gU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEgeyBXVEZNb3ZlKCprZXkpLCByZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBVUkwob3JpZ2luVVJMLCBzY29wZVBhdGgpLCAqdXBkYXRlVmlhQ2FjaGUsIGxhc3RV
cGRhdGVDaGVja1RpbWUsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHNlcnZp
Y2VXb3JrZXJEYXRhKSB9OworICAgICAgICBhdXRvIGNvbnRleHREYXRhID0gU2VydmljZVdvcmtl
ckNvbnRleHREYXRhIHsgc3RkOjpudWxsb3B0LCBXVEZNb3ZlKHJlZ2lzdHJhdGlvbiksIHdvcmtl
cklkZW50aWZpZXIsIFdURk1vdmUoc2NyaXB0KSwgV1RGTW92ZShzY3JpcHRVUkwpLCAqd29ya2Vy
VHlwZSwgdHJ1ZSB9OworCisgICAgICAgIHBvc3RUYXNrUmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRU
YXNrKCp0aGlzLCAmUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmFkZFJlZ2lzdHJhdGlvblRvU3RvcmUs
IFdURk1vdmUoY29udGV4dERhdGEpKSk7CisgICAgfQorCisgICAgaWYgKHJlc3VsdCAhPSBTUUxJ
VEVfRE9ORSkKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJGYWlsZWQgdG8gaW1wb3J0
IGF0IGxlYXN0IG9uZSByZWdpc3RyYXRpb24gZnJvbSByZWNvcmRzIHRhYmxlICglaSkgLSAlcyIs
IG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisK
ICAgICByZXR1cm4geyB9OwogfQogCit2b2lkIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjphZGRSZWdp
c3RyYXRpb25Ub1N0b3JlKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGNvbnRleHQpCit7Cisg
ICAgbV9zdG9yZS5hZGRSZWdpc3RyYXRpb25Gcm9tRGF0YWJhc2UoV1RGTW92ZShjb250ZXh0KSk7
Cit9CisKIHZvaWQgUmVnaXN0cmF0aW9uRGF0YWJhc2U6OmRhdGFiYXNlRmFpbGVkVG9PcGVuKCkK
IHsKICAgICBtX3N0b3JlLmRhdGFiYXNlRmFpbGVkVG9PcGVuKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFi
YXNlLmgKaW5kZXggNzYzZmM3Nzg0ZmM4MDZkNDY3MmZiNDg4ZjVmOTkzZGM2YzdkNTRhYy4uNjM2
NDkxNDc2ZGU5M2YwNmI1YmUxYTAzY2VmMWZmMDJmMGI4Zjk2NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0
YWJhc2UuaApAQCAtNTIsOCArNTIsOSBAQCBwcml2YXRlOgogICAgIFN0cmluZyBlbnN1cmVWYWxp
ZFJlY29yZHNUYWJsZSgpOwogICAgIFN0cmluZyBpbXBvcnRSZWNvcmRzKCk7CiAgICAgdm9pZCBk
b1B1c2hDaGFuZ2VzKFZlY3RvcjxTZXJ2aWNlV29ya2VyQ29udGV4dERhdGE+JiYpOwotICAgIAor
CiAgICAgLy8gUmVwbGllcyB0byB0aGUgbWFpbiB0aHJlYWQKKyAgICB2b2lkIGFkZFJlZ2lzdHJh
dGlvblRvU3RvcmUoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYpOwogICAgIHZvaWQgZGF0YWJh
c2VGYWlsZWRUb09wZW4oKTsKICAgICB2b2lkIGRhdGFiYXNlT3BlbmVkQW5kUmVjb3Jkc0ltcG9y
dGVkKCk7IAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1JlZ2lzdHJhdGlvblN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuY3BwCmluZGV4IDk3M2NmNDA4NTEzZjhiNDgxZjBl
NDNlYzE5MDY1MzA5NmMxNTA3NjcuLjI2NGU1NWU5NTRjYzdhZDM0Yjk4NTlkYzU2Mjk5YmUwZjI3
MjIwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
UmVnaXN0cmF0aW9uU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuY3BwCkBAIC0zMiw4ICszMiw5IEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVnaXN0cmF0aW9uU3RvcmU6OlJlZ2lzdHJhdGlvblN0b3JlKGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VEaXJlY3RvcnkpCi0gICAgOiBtX2RhdGFiYXNlKCp0aGlzLCBk
YXRhYmFzZURpcmVjdG9yeSkKK1JlZ2lzdHJhdGlvblN0b3JlOjpSZWdpc3RyYXRpb25TdG9yZShT
V1NlcnZlciYgc2VydmVyLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KQorICAgIDog
bV9zZXJ2ZXIoc2VydmVyKQorICAgICwgbV9kYXRhYmFzZSgqdGhpcywgZGF0YWJhc2VEaXJlY3Rv
cnkpCiAgICAgLCBtX2RhdGFiYXNlUHVzaFRpbWVyKCp0aGlzLCAmUmVnaXN0cmF0aW9uU3RvcmU6
OnB1c2hDaGFuZ2VzVG9EYXRhYmFzZSkKIHsKIH0KQEAgLTc1LDYgKzc2LDExIEBAIHZvaWQgUmVn
aXN0cmF0aW9uU3RvcmU6OnJlbW92ZVJlZ2lzdHJhdGlvbihTV1NlcnZlclJlZ2lzdHJhdGlvbiYg
cmVnaXN0cmF0aW9uKQogICAgIHNjaGVkdWxlRGF0YWJhc2VQdXNoSWZOZWNlc3NhcnkoKTsKIH0K
IAordm9pZCBSZWdpc3RyYXRpb25TdG9yZTo6YWRkUmVnaXN0cmF0aW9uRnJvbURhdGFiYXNlKFNl
cnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmIGNvbnRleHQpCit7CisgICAgbV9zZXJ2ZXIuYWRkUmVn
aXN0cmF0aW9uRnJvbVN0b3JlKFdURk1vdmUoY29udGV4dCkpOworfQorCiB2b2lkIFJlZ2lzdHJh
dGlvblN0b3JlOjpkYXRhYmFzZUZhaWxlZFRvT3BlbigpCiB7CiAgICAgLy8gRklYTUU6IEhhbmRs
ZSBlcnJvciBpbiBzb21lIGFwcHJvcHJpYXRlIG1hbm5lci4KQEAgLTg0LDcgKzkwLDcgQEAgdm9p
ZCBSZWdpc3RyYXRpb25TdG9yZTo6ZGF0YWJhc2VPcGVuZWRBbmRSZWNvcmRzSW1wb3J0ZWQoKQog
ewogICAgIC8vIEZJWE1FOiBPbmNlIHdlIGFjdHVhbGx5IGRvIHRoZSBpbXBvcnRzLCBjb25jbHVk
ZSB0aGUgaW1wb3J0aW5nIHBoYXNlIGhlcmUuCiB9Ci0gICAgCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUuaCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uU3RvcmUu
aAppbmRleCA4ZGJmZDIzNGFmYTFhZTdjM2FkOGVjYmIyOGMyODMwMTdhM2ZjYmVlLi41ODNmYTUx
MTZmMjAyODY1MzMxZTc3ZDM2MTliMTdhOTcyYzBmMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvblN0b3JlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25TdG9yZS5oCkBA
IC0zNywxMiArMzcsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBTV1NlcnZl
cjsKIGNsYXNzIFNXU2VydmVyUmVnaXN0cmF0aW9uOwogCiBjbGFzcyBSZWdpc3RyYXRpb25TdG9y
ZSB7CiBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBSZWdp
c3RyYXRpb25TdG9yZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlRGlyZWN0b3J5KTsKKyAgICBleHBs
aWNpdCBSZWdpc3RyYXRpb25TdG9yZShTV1NlcnZlciYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VE
aXJlY3RvcnkpOwogICAgIH5SZWdpc3RyYXRpb25TdG9yZSgpOwogCiAgICAgLy8gQ2FsbGJhY2tz
IGZyb20gdGhlIFNXU2VydmVyCkBAIC01MCw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
bW92ZVJlZ2lzdHJhdGlvbihTV1NlcnZlclJlZ2lzdHJhdGlvbiYpOwogCiAgICAgLy8gQ2FsbGJh
Y2tzIGZyb20gdGhlIGRhdGFiYXNlCisgICAgdm9pZCBhZGRSZWdpc3RyYXRpb25Gcm9tRGF0YWJh
c2UoU2VydmljZVdvcmtlckNvbnRleHREYXRhJiYpOwogICAgIHZvaWQgZGF0YWJhc2VGYWlsZWRU
b09wZW4oKTsKICAgICB2b2lkIGRhdGFiYXNlT3BlbmVkQW5kUmVjb3Jkc0ltcG9ydGVkKCk7CiAK
QEAgLTU3LDYgKzU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlRGF0YWJhc2VQdXNo
SWZOZWNlc3NhcnkoKTsKICAgICB2b2lkIHB1c2hDaGFuZ2VzVG9EYXRhYmFzZSgpOwogCisgICAg
U1dTZXJ2ZXImIG1fc2VydmVyOwogICAgIFJlZ2lzdHJhdGlvbkRhdGFiYXNlIG1fZGF0YWJhc2U7
CiAKICAgICBIYXNoTWFwPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXksIFNlcnZpY2VXb3Jr
ZXJDb250ZXh0RGF0YT4gbV91cGRhdGVkUmVnaXN0cmF0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKaW5kZXggYTFlYzAyN2Vk
M2IwZTRjYTgxNGE3ZDAxZDFkNjkyZGJkMTRiZDA3OC4uNzlkMWZjNThjZTZhMGVhMTQwNDYwY2Qx
ZDkwYzYzMTc0MzM1YWE2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKQEAgLTQ4LDExICs0OCw2IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotc3RhdGljIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGdlbmVyYXRlU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIoKQotewotICAgIHJldHVybiBnZW5lcmF0ZU9iamVjdElkZW50aWZp
ZXI8U2VydmljZVdvcmtlcklkZW50aWZpZXJUeXBlPigpOwotfQotCiBzdGF0aWMgU2Vjb25kcyB0
ZXJtaW5hdGlvbkRlbGF5IHsgMTBfcyB9OwogCiBTV1NlcnZlcjo6Q29ubmVjdGlvbjo6Q29ubmVj
dGlvbihTV1NlcnZlciYgc2VydmVyKQpAQCAtMTAzLDYgKzk4LDEyIEBAIFNXU2VydmVyUmVnaXN0
cmF0aW9uKiBTV1NlcnZlcjo6Z2V0UmVnaXN0cmF0aW9uKGNvbnN0IFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25LCiAgICAgcmV0dXJuIG1fcmVnaXN0cmF0aW9ucy5nZXQocmVnaXN0cmF0aW9uS2V5
KTsKIH0KIAordm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9uRnJvbVN0b3JlKFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YSYmIGRhdGEpCit7CisgICAgYWRkUmVnaXN0cmF0aW9uKHN0ZDo6bWFr
ZV91bmlxdWU8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+KCp0aGlzLCBkYXRhLnJlZ2lzdHJhdGlvbi5r
ZXksIGRhdGEucmVnaXN0cmF0aW9uLnVwZGF0ZVZpYUNhY2hlLCBkYXRhLnJlZ2lzdHJhdGlvbi5z
Y29wZVVSTCwgZGF0YS5zY3JpcHRVUkwpKTsKKyAgICB0cnlJbnN0YWxsQ29udGV4dERhdGEoV1RG
TW92ZShkYXRhKSk7Cit9CisKIHZvaWQgU1dTZXJ2ZXI6OmFkZFJlZ2lzdHJhdGlvbihzdGQ6OnVu
aXF1ZV9wdHI8U1dTZXJ2ZXJSZWdpc3RyYXRpb24+JiYgcmVnaXN0cmF0aW9uKQogewogICAgIGF1
dG8ga2V5ID0gcmVnaXN0cmF0aW9uLT5rZXkoKTsKQEAgLTE5OCw3ICsxOTksNyBAQCB2b2lkIFNX
U2VydmVyOjpDb25uZWN0aW9uOjpzeW5jVGVybWluYXRlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVu
dGlmaWVyIGlkZW50aWZpZQogCiBTV1NlcnZlcjo6U1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3JpZ2lu
U3RvcmU+JiYgb3JpZ2luU3RvcmUsIGNvbnN0IFN0cmluZyYgcmVnaXN0cmF0aW9uRGF0YWJhc2VE
aXJlY3RvcnkpCiAgICAgOiBtX29yaWdpblN0b3JlKFdURk1vdmUob3JpZ2luU3RvcmUpKQotICAg
ICwgbV9yZWdpc3RyYXRpb25TdG9yZShyZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSkKKyAg
ICAsIG1fcmVnaXN0cmF0aW9uU3RvcmUoKnRoaXMsIHJlZ2lzdHJhdGlvbkRhdGFiYXNlRGlyZWN0
b3J5KQogewogICAgIFVOVVNFRF9QQVJBTShyZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSk7
CiAgICAgYWxsU2VydmVycygpLmFkZCh0aGlzKTsKQEAgLTQwNSwxMSArNDA2LDEzIEBAIHZvaWQg
U1dTZXJ2ZXI6OnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24oQ29ubmVjdGlv
biYgY29ubmVjdGlvbiwgU2VyCiB2b2lkIFNXU2VydmVyOjp1cGRhdGVXb3JrZXIoQ29ubmVjdGlv
biYsIGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllciYgam9iRGF0YUlkZW50aWZp
ZXIsIFNXU2VydmVyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24sIGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHNjcmlwdCwgV29ya2VyVHlwZSB0eXBlKQogewogICAgIHJlZ2lzdHJhdGlv
bi5zZXRMYXN0VXBkYXRlVGltZShXYWxsVGltZTo6bm93KCkpOworICAgIHRyeUluc3RhbGxDb250
ZXh0RGF0YSh7IGpvYkRhdGFJZGVudGlmaWVyLCByZWdpc3RyYXRpb24uZGF0YSgpLCBnZW5lcmF0
ZU9iamVjdElkZW50aWZpZXI8U2VydmljZVdvcmtlcklkZW50aWZpZXJUeXBlPigpLCBzY3JpcHQs
IHVybCwgdHlwZSwgZmFsc2UgfSk7Cit9CiAKLSAgICBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEg
ZGF0YSA9IHsgam9iRGF0YUlkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbi5kYXRhKCksIGdlbmVyYXRl
U2VydmljZVdvcmtlcklkZW50aWZpZXIoKSwgc2NyaXB0LCB1cmwsIHR5cGUgfTsKLQordm9pZCBT
V1NlcnZlcjo6dHJ5SW5zdGFsbENvbnRleHREYXRhKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYm
IGRhdGEpCit7CiAgICAgLy8gUmlnaHQgbm93IHdlIG9ubHkgZXZlciBrZWVwIHVwIHRvIG9uZSBj
b25uZWN0aW9uIHRvIG9uZSBTVyBjb250ZXh0IHByb2Nlc3MuCi0gICAgLy8gQW5kIGl0IHNob3Vs
ZCBhbHdheXMgZXhpc3QgaWYgd2UncmUgY2FsbGluZyB1cGRhdGVXb3JrZXIKKyAgICAvLyBBbmQg
aXQgc2hvdWxkIGFsd2F5cyBleGlzdCBpZiB3ZSdyZSB0cnlpbmcgdG8gaW5zdGFsbCBjb250ZXh0
IGRhdGEuCiAgICAgYXV0byogY29ubmVjdGlvbiA9IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bjo6Z2xvYmFsU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpOwogICAgIGlmICghY29ubmVjdGlv
bikgewogICAgICAgICBtX3BlbmRpbmdDb250ZXh0RGF0YXMuYXBwZW5kKFdURk1vdmUoZGF0YSkp
OwpAQCAtNDM4LDcgKzQ0MSw4IEBAIHZvaWQgU1dTZXJ2ZXI6OnNlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb25DcmVhdGVkKCkKIAogdm9pZCBTV1NlcnZlcjo6aW5zdGFsbENvbnRleHREYXRhKGNvbnN0
IFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYgZGF0YSkKIHsKLSAgICBtX3JlZ2lzdHJhdGlvblN0
b3JlLnVwZGF0ZVJlZ2lzdHJhdGlvbihkYXRhKTsKKyAgICBpZiAoIWRhdGEubG9hZGVkRnJvbURp
c2spCisgICAgICAgIG1fcmVnaXN0cmF0aW9uU3RvcmUudXBkYXRlUmVnaXN0cmF0aW9uKGRhdGEp
OwogCiAgICAgYXV0byogY29ubmVjdGlvbiA9IFNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbjo6
Z2xvYmFsU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbigpOwogICAgIEFTU0VSVChjb25uZWN0aW9u
KTsKQEAgLTQ0NiwxMCArNDUwLDE4IEBAIHZvaWQgU1dTZXJ2ZXI6Omluc3RhbGxDb250ZXh0RGF0
YShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmIGRhdGEpCiAgICAgYXV0byogcmVnaXN0
cmF0aW9uID0gbV9yZWdpc3RyYXRpb25zLmdldChkYXRhLnJlZ2lzdHJhdGlvbi5rZXkpOwogICAg
IFJFTEVBU0VfQVNTRVJUKHJlZ2lzdHJhdGlvbik7CiAKLSAgICBhdXRvIHJlc3VsdCA9IG1fcnVu
bmluZ09yVGVybWluYXRpbmdXb3JrZXJzLmFkZChkYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBTV1NlcnZlcldvcmtlcjo6Y3JlYXRlKCp0aGlzLCAqcmVnaXN0cmF0aW9uLCBjb25uZWN0aW9u
LT5pZGVudGlmaWVyKCksIGRhdGEuc2NyaXB0VVJMLCBkYXRhLnNjcmlwdCwgZGF0YS53b3JrZXJU
eXBlLCBkYXRhLnNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKSk7Ci0gICAgQVNTRVJUKHJlc3VsdC5p
c05ld0VudHJ5KTsKKyAgICBhdXRvIHdvcmtlciA9IFNXU2VydmVyV29ya2VyOjpjcmVhdGUoKnRo
aXMsICpyZWdpc3RyYXRpb24sIGNvbm5lY3Rpb24tPmlkZW50aWZpZXIoKSwgZGF0YS5zY3JpcHRV
UkwsIGRhdGEuc2NyaXB0LCBkYXRhLndvcmtlclR5cGUsIGRhdGEuc2VydmljZVdvcmtlcklkZW50
aWZpZXIpOwogCi0gICAgcmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS0+c2V0U3RhdGUoU1dTZXJ2ZXJX
b3JrZXI6OlN0YXRlOjpSdW5uaW5nKTsKKyAgICAvLyBXZSBkb24ndCBpbW1lZGlhdGVseSBsYXVu
Y2ggYWxsIHdvcmtlcnMgdGhhdCB3ZXJlIGp1c3QgcmVhZCBpbiBmcm9tIGRpc2ssCisgICAgLy8g
YXMgaXQgaXMgdW5saWtlbHkgdGhleSB3aWxsIGJlIG5lZWRlZCBpbW1lZGlhdGVseS4KKyAgICBp
ZiAoZGF0YS5sb2FkZWRGcm9tRGlzaykgeworICAgICAgICByZWdpc3RyYXRpb24tPnVwZGF0ZVJl
Z2lzdHJhdGlvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZTo6QWN0aXZlLCB3
b3JrZXIucHRyKCkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgd29ya2VyLT5zZXRT
dGF0ZShTV1NlcnZlcldvcmtlcjo6U3RhdGU6OlJ1bm5pbmcpOworICAgIGF1dG8gcmVzdWx0ID0g
bV9ydW5uaW5nT3JUZXJtaW5hdGluZ1dvcmtlcnMuYWRkKGRhdGEuc2VydmljZVdvcmtlcklkZW50
aWZpZXIsIFdURk1vdmUod29ya2VyKSk7CisgICAgQVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3Vs
dC5pc05ld0VudHJ5KTsKIAogICAgIGNvbm5lY3Rpb24tPmluc3RhbGxTZXJ2aWNlV29ya2VyQ29u
dGV4dChkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuaAppbmRleCA5ODU0ZWJmMjI2ZDIwNTQzZGUyZTI2MzdjM2ViNDE3OTEwMjYy
YWE3Li43OTZlZDhmZjQ2ODlkMzE3NTNjZWFiYzI3NDNiZmViYWRlN2MxNTdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCkBAIC0xNjgs
NiArMTY4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q2xpZW50QWN0aXZlV29ya2VyKFNlcnZp
Y2VXb3JrZXJDbGllbnRJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAg
dm9pZCByZXNvbHZlUmVnaXN0cmF0aW9uUmVhZHlSZXF1ZXN0cyhTV1NlcnZlclJlZ2lzdHJhdGlv
biYpOwogCisgICAgdm9pZCBhZGRSZWdpc3RyYXRpb25Gcm9tU3RvcmUoU2VydmljZVdvcmtlckNv
bnRleHREYXRhJiYpOworCiBwcml2YXRlOgogICAgIHZvaWQgcmVnaXN0ZXJDb25uZWN0aW9uKENv
bm5lY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJDb25uZWN0aW9uKENvbm5lY3Rpb24mKTsK
QEAgLTE4NSw2ICsxODcsNyBAQCBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIFNXU2VydmVy
UmVnaXN0cmF0aW9uKiBkb1JlZ2lzdHJhdGlvbk1hdGNoaW5nKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCk7CiAgICAgYm9vbCBydW5TZXJ2
aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKIAorICAgIHZvaWQgdHJ5SW5zdGFs
bENvbnRleHREYXRhKFNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSYmKTsKICAgICB2b2lkIGluc3Rh
bGxDb250ZXh0RGF0YShjb25zdCBTZXJ2aWNlV29ya2VyQ29udGV4dERhdGEmKTsKIAogICAgIFNX
U2VydmVyUmVnaXN0cmF0aW9uKiByZWdpc3RyYXRpb25Gcm9tU2VydmljZVdvcmtlcklkZW50aWZp
ZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4
IDY4ZWQ5NzBjZmQ1NGJmY2QwMjQxNTFhNjIyOWIzOTIyNTJhZTU0ZDcuLmYxNGRmNWMzZmQ0ODA1
Yzg3ZDczOWFhZmI5YmQyZWQyMzUzNzQwOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAg
LTQyLDYgKzQyLDcgQEAgY2xhc3MgU1dTZXJ2ZXJXb3JrZXI7CiBlbnVtIGNsYXNzIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb25TdGF0ZTsKIGVudW0gY2xhc3MgU2VydmljZVdvcmtlclN0YXRlOwog
c3RydWN0IEV4Y2VwdGlvbkRhdGE7CitzdHJ1Y3QgU2VydmljZVdvcmtlckNvbnRleHREYXRhOwog
c3RydWN0IFNlcnZpY2VXb3JrZXJGZXRjaFJlc3VsdDsKIAogY2xhc3MgU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlcldvcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyV29ya2VyLmNwcAppbmRleCBjOWM5YWFmY2JiMWQ5MGE4OGYwMTRkNDRjODVl
ZDlkOGViMzgyNTI0Li5iNTZkNzI0MmIzOTNkNDk1ZGU1ZGZkMDZlNWU4ZWQ0OGRiNjY5OGIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
V29ya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NX
U2VydmVyV29ya2VyLmNwcApAQCAtNjUsNyArNjUsNyBAQCBTZXJ2aWNlV29ya2VyQ29udGV4dERh
dGEgU1dTZXJ2ZXJXb3JrZXI6OmNvbnRleHREYXRhKCkgY29uc3QKICAgICBhdXRvKiByZWdpc3Ry
YXRpb24gPSBtX3NlcnZlci5nZXRSZWdpc3RyYXRpb24obV9yZWdpc3RyYXRpb25LZXkpOwogICAg
IEFTU0VSVChyZWdpc3RyYXRpb24pOwogCi0gICAgcmV0dXJuIHsgc3RkOjpudWxsb3B0LCByZWdp
c3RyYXRpb24tPmRhdGEoKSwgbV9kYXRhLmlkZW50aWZpZXIsIG1fc2NyaXB0LCBtX2RhdGEuc2Ny
aXB0VVJMLCBtX2RhdGEudHlwZSB9OworICAgIHJldHVybiB7IHN0ZDo6bnVsbG9wdCwgcmVnaXN0
cmF0aW9uLT5kYXRhKCksIG1fZGF0YS5pZGVudGlmaWVyLCBtX3NjcmlwdCwgbV9kYXRhLnNjcmlw
dFVSTCwgbV9kYXRhLnR5cGUsIGZhbHNlIH07CiB9CiAKIHZvaWQgU1dTZXJ2ZXJXb3JrZXI6OnRl
cm1pbmF0ZSgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>