<?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>152577</bug_id>
          
          <creation_ts>2015-12-28 15:24:54 -0800</creation_ts>
          <short_desc>Modern IDB: Rename IDBServerOperation to ServerOpenDBRequest</short_desc>
          <delta_ts>2015-12-28 16:51:14 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1151492</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-28 15:24:54 -0800</bug_when>
    <thetext>Modern IDB: Rename IDBServerOperation to ServerOpenDBRequest

The role of the class ended up being only about open/delete requests, so it really shadows IDBOpenDBRequest on the client side.

This will help future functionality on the class actually make sense.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151493</commentid>
    <comment_count>1</comment_count>
      <attachid>267968</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-28 15:55:21 -0800</bug_when>
    <thetext>Created attachment 267968
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151494</commentid>
    <comment_count>2</comment_count>
      <attachid>267969</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-28 16:01:58 -0800</bug_when>
    <thetext>Created attachment 267969
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151498</commentid>
    <comment_count>3</comment_count>
      <attachid>267969</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-28 16:51:11 -0800</bug_when>
    <thetext>Comment on attachment 267969
Patch for landing

Clearing flags on attachment: 267969

Committed r194433: &lt;http://trac.webkit.org/changeset/194433&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151499</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-28 16:51:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267968</attachid>
            <date>2015-12-28 15:55:21 -0800</date>
            <delta_ts>2015-12-28 16:01:58 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>28090</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZGUyNTU2YS4uNmY2NjhiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg3OSw3ICs4NzksNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAogICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCi0gICAgTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSW5kZXhWYWx1ZUVudHJ5LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRl
eFZhbHVlU3RvcmUuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtODg5LDYgKzg4OCw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SW5kZXhDdXJzb3IuY3Bw
CiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNvci5jcHAKKyAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3BlbkRCUmVxdWVzdC5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNWU2ZWY0Li4yODBmNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTUtMTItMjggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IFJlbmFtZSBJREJTZXJ2ZXJPcGVyYXRpb24gdG8gU2VydmVyT3BlbkRC
UmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MjU3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cyAoUmVmYWN0b3IsIG5vIGJlaGF2aW9yIGNoYW5nZSkKKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TZXJ2ZXJPcGVuREJS
ZXF1ZXN0LmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9JREJTZXJ2ZXJPcGVyYXRpb24uY3BwLgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpTZXJ2ZXJPcGVuREJSZXF1ZXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTZXJ2ZXJPcGVuREJSZXF1ZXN0OjpTZXJ2ZXJPcGVuREJSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U2VydmVyT3BlbkRCUmVxdWVzdDo6aXNPcGVuUmVxdWVz
dCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNlcnZlck9wZW5EQlJlcXVlc3Q6Omlz
RGVsZXRlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNlcnZlck9wZW5E
QlJlcXVlc3Q6Om5vdGlmeURlbGV0ZVJlcXVlc3RCbG9ja2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U2VydmVyT3BlbkRCUmVxdWVzdDo6bm90aWZ5RGlkRGVsZXRlRGF0YWJhc2Up
OgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3Bl
bkRCUmVxdWVzdC5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5oLgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpTZXJ2ZXJPcGVuREJSZXF1ZXN0Ojpjb25uZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U2VydmVyT3BlbkRCUmVxdWVzdDo6cmVxdWVzdERhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTZXJ2ZXJPcGVuREJSZXF1ZXN0OjpoYXNOb3RpZmllZERlbGV0
ZVJlcXVlc3RCbG9ja2VkKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2U6Om9wZW5EYXRhYmFzZUNvbm5lY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVu
T3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJh
c2U6OnBlcmZvcm1DdXJyZW50RGVsZXRlT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmhhbmRsZURhdGFiYXNlT3BlcmF0aW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVDdXJy
ZW50T3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6OmhhbmRsZURlbGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlOjpzdGFydFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlDb25uZWN0aW9uc09m
VmVyc2lvbkNoYW5nZUZvclVwZ3JhZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZTo6b3BlcmF0aW9uQW5kVHJhbnNhY3Rpb25UaW1lckZpcmVkKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKyAg
ICAgICAgCiAyMDE1LTEyLTI3ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2hvdWxkIG5ldmVyIGJlIHJlYWNoZWQgZmFpbHVyZSBpbiBXZWJDb3JlOjpSZW5kZXJF
bGVtZW50OjpjbGVhckxheW91dFJvb3RJZk5lZWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NlcnZlck9wZW5EQlJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NlcnZlck9wZW5EQlJlcXVlc3Qu
Y3BwCmluZGV4IGUyMmU1OWUuLmFjNzY4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TZXJ2ZXJPcGVuREJSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3BlbkRCUmVxdWVzdC5j
cHAKQEAgLTI0LDcgKzI0LDcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSURCU2VydmVyT3BlcmF0aW9uLmgiCisjaW5jbHVkZSAiU2VydmVyT3BlbkRCUmVxdWVzdC5o
IgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTM0LDI4ICszNCwyOCBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKLVJlZjxJREJTZXJ2
ZXJPcGVyYXRpb24+IElEQlNlcnZlck9wZXJhdGlvbjo6Y3JlYXRlKElEQkNvbm5lY3Rpb25Ub0Ns
aWVudCYgY29ubmVjdGlvbiwgY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQorUmVm
PFNlcnZlck9wZW5EQlJlcXVlc3Q+IFNlcnZlck9wZW5EQlJlcXVlc3Q6OmNyZWF0ZShJREJDb25u
ZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24sIGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBJREJTZXJ2ZXJPcGVyYXRpb24oY29u
bmVjdGlvbiwgcmVxdWVzdERhdGEpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZXJ2ZXJP
cGVuREJSZXF1ZXN0KGNvbm5lY3Rpb24sIHJlcXVlc3REYXRhKSk7CiB9CiAKLUlEQlNlcnZlck9w
ZXJhdGlvbjo6SURCU2VydmVyT3BlcmF0aW9uKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVj
dGlvbiwgY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQorU2VydmVyT3BlbkRCUmVx
dWVzdDo6U2VydmVyT3BlbkRCUmVxdWVzdChJREJDb25uZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rp
b24sIGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKICAgICA6IG1fY29ubmVjdGlv
bihjb25uZWN0aW9uKQogICAgICwgbV9yZXF1ZXN0RGF0YShyZXF1ZXN0RGF0YSkKIHsKIH0KIAot
Ym9vbCBJREJTZXJ2ZXJPcGVyYXRpb246OmlzT3BlblJlcXVlc3QoKSBjb25zdAorYm9vbCBTZXJ2
ZXJPcGVuREJSZXF1ZXN0Ojppc09wZW5SZXF1ZXN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9y
ZXF1ZXN0RGF0YS5pc09wZW5SZXF1ZXN0KCk7CiB9CiAKLWJvb2wgSURCU2VydmVyT3BlcmF0aW9u
Ojppc0RlbGV0ZVJlcXVlc3QoKSBjb25zdAorYm9vbCBTZXJ2ZXJPcGVuREJSZXF1ZXN0Ojppc0Rl
bGV0ZVJlcXVlc3QoKSBjb25zdAogewogICAgIHJldHVybiBtX3JlcXVlc3REYXRhLmlzRGVsZXRl
UmVxdWVzdCgpOwogfQogCi12b2lkIElEQlNlcnZlck9wZXJhdGlvbjo6bm90aWZ5RGVsZXRlUmVx
dWVzdEJsb2NrZWQodWludDY0X3QgY3VycmVudFZlcnNpb24pCit2b2lkIFNlcnZlck9wZW5EQlJl
cXVlc3Q6Om5vdGlmeURlbGV0ZVJlcXVlc3RCbG9ja2VkKHVpbnQ2NF90IGN1cnJlbnRWZXJzaW9u
KQogewogICAgIEFTU0VSVChpc0RlbGV0ZVJlcXVlc3QoKSk7CiAgICAgQVNTRVJUKCFtX25vdGlm
aWVkRGVsZXRlUmVxdWVzdEJsb2NrZWQpOwpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIElEQlNlcnZl
ck9wZXJhdGlvbjo6bm90aWZ5RGVsZXRlUmVxdWVzdEJsb2NrZWQodWludDY0X3QgY3VycmVudFZl
cnNpb24pCiAgICAgbV9ub3RpZmllZERlbGV0ZVJlcXVlc3RCbG9ja2VkID0gdHJ1ZTsKIH0KIAot
dm9pZCBJREJTZXJ2ZXJPcGVyYXRpb246Om5vdGlmeURpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElE
QkRhdGFiYXNlSW5mbyYgaW5mbykKK3ZvaWQgU2VydmVyT3BlbkRCUmVxdWVzdDo6bm90aWZ5RGlk
RGVsZXRlRGF0YWJhc2UoY29uc3QgSURCRGF0YWJhc2VJbmZvJiBpbmZvKQogewogICAgIEFTU0VS
VChpc0RlbGV0ZVJlcXVlc3QoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TZXJ2ZXJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3BlbkRCUmVxdWVzdC5oCmluZGV4IDNk
ZWE1MmQuLmNhODY3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TZXJ2ZXJPcGVuREJSZXF1ZXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NlcnZlck9wZW5EQlJlcXVlc3QuaApAQCAtMjMsOCArMjMs
OCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYg
SURCU2VydmVyT3BlcmF0aW9uX2gKLSNkZWZpbmUgSURCU2VydmVyT3BlcmF0aW9uX2gKKyNpZm5k
ZWYgU2VydmVyT3BlbkRCUmVxdWVzdF9oCisjZGVmaW5lIFNlcnZlck9wZW5EQlJlcXVlc3RfaAog
CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKQEAgLTM5LDkgKzM5LDkgQEAgY2xhc3Mg
SURCRGF0YWJhc2VJbmZvOwogCiBuYW1lc3BhY2UgSURCU2VydmVyIHsKIAotY2xhc3MgSURCU2Vy
dmVyT3BlcmF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8SURCU2VydmVyT3BlcmF0aW9uPiB7Citj
bGFzcyBTZXJ2ZXJPcGVuREJSZXF1ZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8U2VydmVyT3BlbkRC
UmVxdWVzdD4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8SURCU2VydmVyT3BlcmF0aW9uPiBj
cmVhdGUoSURCQ29ubmVjdGlvblRvQ2xpZW50JiwgY29uc3QgSURCUmVxdWVzdERhdGEmKTsKKyAg
ICBzdGF0aWMgUmVmPFNlcnZlck9wZW5EQlJlcXVlc3Q+IGNyZWF0ZShJREJDb25uZWN0aW9uVG9D
bGllbnQmLCBjb25zdCBJREJSZXF1ZXN0RGF0YSYpOwogCiAgICAgSURCQ29ubmVjdGlvblRvQ2xp
ZW50JiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CiAgICAgY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0RGF0YTsg
fQpAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNOb3RpZmllZERlbGV0ZVJl
cXVlc3RCbG9ja2VkKCkgY29uc3QgeyByZXR1cm4gbV9ub3RpZmllZERlbGV0ZVJlcXVlc3RCbG9j
a2VkOyB9CiAKIHByaXZhdGU6Ci0gICAgSURCU2VydmVyT3BlcmF0aW9uKElEQkNvbm5lY3Rpb25U
b0NsaWVudCYsIGNvbnN0IElEQlJlcXVlc3REYXRhJik7CisgICAgU2VydmVyT3BlbkRCUmVxdWVz
dChJREJDb25uZWN0aW9uVG9DbGllbnQmLCBjb25zdCBJREJSZXF1ZXN0RGF0YSYpOwogCiAgICAg
SURCQ29ubmVjdGlvblRvQ2xpZW50JiBtX2Nvbm5lY3Rpb247CiAgICAgSURCUmVxdWVzdERhdGEg
bV9yZXF1ZXN0RGF0YTsKQEAgLTY2LDQgKzY2LDQgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQotI2VuZGlmIC8v
IElEQlNlcnZlck9wZXJhdGlvbl9oCisjZW5kaWYgLy8gU2VydmVyT3BlbkRCUmVxdWVzdF9oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBhMDBhMGUyLi41YjQ1MGM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAKQEAgLTY4LDggKzY4LDggQEAgY29uc3QgSURCRGF0YWJhc2VJbmZv
JiBVbmlxdWVJREJEYXRhYmFzZTo6aW5mbygpIGNvbnN0CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6Om9wZW5EYXRhYmFzZUNvbm5lY3Rpb24oSURCQ29ubmVjdGlvblRvQ2xpZW50JiBjb25uZWN0
aW9uLCBjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCiB7Ci0gICAgYXV0byBvcGVy
YXRpb24gPSBJREJTZXJ2ZXJPcGVyYXRpb246OmNyZWF0ZShjb25uZWN0aW9uLCByZXF1ZXN0RGF0
YSk7Ci0gICAgbV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRpb25zLmFwcGVuZChXVEY6Om1vdmUob3Bl
cmF0aW9uKSk7CisgICAgYXV0byBvcGVyYXRpb24gPSBTZXJ2ZXJPcGVuREJSZXF1ZXN0OjpjcmVh
dGUoY29ubmVjdGlvbiwgcmVxdWVzdERhdGEpOworICAgIG1fcGVuZGluZ09wZW5EQlJlcXVlc3Rz
LmFwcGVuZChXVEY6Om1vdmUob3BlcmF0aW9uKSk7CiAKICAgICAvLyBBbiBvcGVuIG9wZXJhdGlv
biBpcyBhbHJlYWR5IGluIHByb2dyZXNzLCBzbyB3ZSBjYW4ndCBwb3NzaWJseSBoYW5kbGUgdGhp
cyBvbmUgeWV0LgogICAgIGlmIChtX2lzT3BlbmluZ0JhY2tpbmdTdG9yZSkKQEAgLTEwMCw4ICsx
MDAsOCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3VycmVudE9wZW5PcGVyYXRp
b24oKQogewogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OnBl
cmZvcm1DdXJyZW50T3Blbk9wZXJhdGlvbiIpOwogCi0gICAgQVNTRVJUKG1fY3VycmVudE9wZXJh
dGlvbik7Ci0gICAgQVNTRVJUKG1fY3VycmVudE9wZXJhdGlvbi0+aXNPcGVuUmVxdWVzdCgpKTsK
KyAgICBBU1NFUlQobV9jdXJyZW50T3BlbkRCUmVxdWVzdCk7CisgICAgQVNTRVJUKG1fY3VycmVu
dE9wZW5EQlJlcXVlc3QtPmlzT3BlblJlcXVlc3QoKSk7CiAKICAgICBpZiAoIW1fZGF0YWJhc2VJ
bmZvKSB7CiAgICAgICAgIG1faXNPcGVuaW5nQmFja2luZ1N0b3JlID0gdHJ1ZTsKQEAgLTEyMCwy
OSArMTIwLDI5IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DdXJyZW50T3Blbk9w
ZXJhdGlvbigpCiAgICAgLy8gMy4zLjEgT3BlbmluZyBhIGRhdGFiYXNlCiAgICAgLy8gSWYgcmVx
dWVzdGVkIHZlcnNpb24gaXMgdW5kZWZpbmVkLCB0aGVuIGxldCByZXF1ZXN0ZWQgdmVyc2lvbiBi
ZSAxIGlmIGRiIHdhcyBjcmVhdGVkIGluIHRoZSBwcmV2aW91cyBzdGVwLAogICAgIC8vIG9yIHRo
ZSBjdXJyZW50IHZlcnNpb24gb2YgZGIgb3RoZXJ3aXNlLgotICAgIHVpbnQ2NF90IHJlcXVlc3Rl
ZFZlcnNpb24gPSBtX2N1cnJlbnRPcGVyYXRpb24tPnJlcXVlc3REYXRhKCkucmVxdWVzdGVkVmVy
c2lvbigpOworICAgIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24gPSBtX2N1cnJlbnRPcGVuREJS
ZXF1ZXN0LT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RlZFZlcnNpb24oKTsKICAgICBpZiAoIXJlcXVl
c3RlZFZlcnNpb24pCiAgICAgICAgIHJlcXVlc3RlZFZlcnNpb24gPSBtX2RhdGFiYXNlSW5mby0+
dmVyc2lvbigpID8gbV9kYXRhYmFzZUluZm8tPnZlcnNpb24oKSA6IDE7CiAKICAgICAvLyAzLjMu
MSBPcGVuaW5nIGEgZGF0YWJhc2UKICAgICAvLyBJZiB0aGUgZGF0YWJhc2UgdmVyc2lvbiBoaWdo
ZXIgdGhhbiB0aGUgcmVxdWVzdGVkIHZlcnNpb24sIGFib3J0IHRoZXNlIHN0ZXBzIGFuZCByZXR1
cm4gYSBWZXJzaW9uRXJyb3IuCiAgICAgaWYgKHJlcXVlc3RlZFZlcnNpb24gPCBtX2RhdGFiYXNl
SW5mby0+dmVyc2lvbigpKSB7Ci0gICAgICAgIGF1dG8gcmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6
ZXJyb3IobV9jdXJyZW50T3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVy
KCksIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpWZXJzaW9uRXJyb3IpKTsKLSAgICAg
ICAgbV9jdXJyZW50T3BlcmF0aW9uLT5jb25uZWN0aW9uKCkuZGlkT3BlbkRhdGFiYXNlKHJlc3Vs
dCk7Ci0gICAgICAgIG1fY3VycmVudE9wZXJhdGlvbiA9IG51bGxwdHI7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6ZXJyb3IobV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+cmVx
dWVzdERhdGEoKS5yZXF1ZXN0SWRlbnRpZmllcigpLCBJREJFcnJvcihJREJEYXRhYmFzZUV4Y2Vw
dGlvbjo6VmVyc2lvbkVycm9yKSk7CisgICAgICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPmNv
bm5lY3Rpb24oKS5kaWRPcGVuRGF0YWJhc2UocmVzdWx0KTsKKyAgICAgICAgbV9jdXJyZW50T3Bl
bkRCUmVxdWVzdCA9IG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJl
ZjxVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24+IGNvbm5lY3Rpb24gPSBVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgbV9jdXJyZW50T3BlcmF0aW9uLT5jb25uZWN0
aW9uKCkpOworICAgIFJlZjxVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24+IGNvbm5lY3Rpb24g
PSBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb246OmNyZWF0ZSgqdGhpcywgbV9jdXJyZW50T3Bl
bkRCUmVxdWVzdC0+Y29ubmVjdGlvbigpKTsKICAgICBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b24qIHJhd0Nvbm5lY3Rpb24gPSAmY29ubmVjdGlvbi5nZXQoKTsKIAogICAgIGlmIChyZXF1ZXN0
ZWRWZXJzaW9uID09IG1fZGF0YWJhc2VJbmZvLT52ZXJzaW9uKCkpIHsKICAgICAgICAgYWRkT3Bl
bkRhdGFiYXNlQ29ubmVjdGlvbihXVEY6Om1vdmUoY29ubmVjdGlvbikpOwogCi0gICAgICAgIGF1
dG8gcmVzdWx0ID0gSURCUmVzdWx0RGF0YTo6b3BlbkRhdGFiYXNlU3VjY2VzcyhtX2N1cnJlbnRP
cGVyYXRpb24tPnJlcXVlc3REYXRhKCkucmVxdWVzdElkZW50aWZpZXIoKSwgKnJhd0Nvbm5lY3Rp
b24pOwotICAgICAgICBtX2N1cnJlbnRPcGVyYXRpb24tPmNvbm5lY3Rpb24oKS5kaWRPcGVuRGF0
YWJhc2UocmVzdWx0KTsKLSAgICAgICAgbV9jdXJyZW50T3BlcmF0aW9uID0gbnVsbHB0cjsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSBJREJSZXN1bHREYXRhOjpvcGVuRGF0YWJhc2VTdWNjZXNzKG1f
Y3VycmVudE9wZW5EQlJlcXVlc3QtPnJlcXVlc3REYXRhKCkucmVxdWVzdElkZW50aWZpZXIoKSwg
KnJhd0Nvbm5lY3Rpb24pOworICAgICAgICBtX2N1cnJlbnRPcGVuREJSZXF1ZXN0LT5jb25uZWN0
aW9uKCkuZGlkT3BlbkRhdGFiYXNlKHJlc3VsdCk7CisgICAgICAgIG1fY3VycmVudE9wZW5EQlJl
cXVlc3QgPSBudWxscHRyOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNjEsNyArMTYx
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVuT3BlcmF0aW9u
KCkKICAgICBub3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5nZUZvclVwZ3JhZGUoKTsKIAog
ICAgIC8vIEFuZCB3ZSBub3RpZnkgdGhpcyBPcGVuREJSZXF1ZXN0IHRoYXQgaXQgaXMgYmxvY2tl
ZCB1bnRpbCB0aG9zZSBjb25uZWN0aW9ucyBjbG9zZS4KLSAgICBtX3ZlcnNpb25DaGFuZ2VEYXRh
YmFzZUNvbm5lY3Rpb24tPmNvbm5lY3Rpb25Ub0NsaWVudCgpLm5vdGlmeU9wZW5EQlJlcXVlc3RC
bG9ja2VkKG1fY3VycmVudE9wZXJhdGlvbi0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0SWRlbnRpZmll
cigpLCBtX2RhdGFiYXNlSW5mby0+dmVyc2lvbigpLCByZXF1ZXN0ZWRWZXJzaW9uKTsKKyAgICBt
X3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24tPmNvbm5lY3Rpb25Ub0NsaWVudCgpLm5v
dGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPnJlcXVlc3RE
YXRhKCkucmVxdWVzdElkZW50aWZpZXIoKSwgbV9kYXRhYmFzZUluZm8tPnZlcnNpb24oKSwgcmVx
dWVzdGVkVmVyc2lvbik7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DdXJy
ZW50RGVsZXRlT3BlcmF0aW9uKCkKQEAgLTE2OSw4ICsxNjksOCBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpwZXJmb3JtQ3VycmVudERlbGV0ZU9wZXJhdGlvbigpCiAgICAgTE9HKEluZGV4ZWRE
QiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnREZWxldGVPcGVyYXRp
b24iKTsKIAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7Ci0gICAgQVNTRVJUKG1fY3VycmVu
dE9wZXJhdGlvbik7Ci0gICAgQVNTRVJUKG1fY3VycmVudE9wZXJhdGlvbi0+aXNEZWxldGVSZXF1
ZXN0KCkpOworICAgIEFTU0VSVChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KTsKKyAgICBBU1NFUlQo
bV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+aXNEZWxldGVSZXF1ZXN0KCkpOwogCiAgICAgaWYgKGhh
c0FueU9wZW5Db25uZWN0aW9ucygpKSB7CiAgICAgICAgIC8vIEV4YWN0bHkgb25jZSwgbm90aWZ5
IGFsbCBvcGVuIGNvbm5lY3Rpb25zIG9mIHRoZSBwZW5kaW5nIGRlbGV0aW9uLgpAQCAtMTc5LDgg
KzE3OSw4IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DdXJyZW50RGVsZXRlT3Bl
cmF0aW9uKCkKICAgICAgICAgICAgIG1faGFzTm90aWZpZWRDb25uZWN0aW9uc09mRGVsZXRlID0g
dHJ1ZTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghbV9jdXJyZW50T3BlcmF0aW9uLT5oYXNO
b3RpZmllZERlbGV0ZVJlcXVlc3RCbG9ja2VkKCkpCi0gICAgICAgICAgICBtX2N1cnJlbnRPcGVy
YXRpb24tPm5vdGlmeURlbGV0ZVJlcXVlc3RCbG9ja2VkKG1fZGF0YWJhc2VJbmZvLT52ZXJzaW9u
KCkpOworICAgICAgICBpZiAoIW1fY3VycmVudE9wZW5EQlJlcXVlc3QtPmhhc05vdGlmaWVkRGVs
ZXRlUmVxdWVzdEJsb2NrZWQoKSkKKyAgICAgICAgICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3Qt
Pm5vdGlmeURlbGV0ZVJlcXVlc3RCbG9ja2VkKG1fZGF0YWJhc2VJbmZvLT52ZXJzaW9uKCkpOwog
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xOTAsMTIgKzE5MCwxMiBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3VycmVudERlbGV0ZU9wZXJhdGlvbigpCiAgICAgQVNTRVJU
KG1fcGVuZGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkpOwogICAgIEFTU0VSVChtX29wZW5EYXRh
YmFzZUNvbm5lY3Rpb25zLmlzRW1wdHkoKSk7CiAKLSAgICBtX2N1cnJlbnRPcGVyYXRpb24tPm5v
dGlmeURpZERlbGV0ZURhdGFiYXNlKCptX2RhdGFiYXNlSW5mbyk7Ci0gICAgbV9jdXJyZW50T3Bl
cmF0aW9uID0gbnVsbHB0cjsKKyAgICBtX2N1cnJlbnRPcGVuREJSZXF1ZXN0LT5ub3RpZnlEaWRE
ZWxldGVEYXRhYmFzZSgqbV9kYXRhYmFzZUluZm8pOworICAgIG1fY3VycmVudE9wZW5EQlJlcXVl
c3QgPSBudWxscHRyOwogICAgIG1faGFzTm90aWZpZWRDb25uZWN0aW9uc09mRGVsZXRlID0gZmFs
c2U7CiAgICAgbV9kZWxldGVQZW5kaW5nID0gZmFsc2U7CiAKLSAgICBpZiAobV9wZW5kaW5nRGF0
YWJhc2VPcGVyYXRpb25zLmlzRW1wdHkoKSkKKyAgICBpZiAobV9wZW5kaW5nT3BlbkRCUmVxdWVz
dHMuaXNFbXB0eSgpKQogICAgICAgICBtX3NlcnZlci5kZWxldGVVbmlxdWVJREJEYXRhYmFzZSgq
dGhpcyk7CiAgICAgZWxzZQogICAgICAgICBpbnZva2VPcGVyYXRpb25BbmRUcmFuc2FjdGlvblRp
bWVyKCk7CkBAIC0yMDQsNDMgKzIwNCw0MyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJm
b3JtQ3VycmVudERlbGV0ZU9wZXJhdGlvbigpCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpoYW5k
bGVEYXRhYmFzZU9wZXJhdGlvbnMoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0g
ICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJh
c2VPcGVyYXRpb25zIC0gVGhlcmUgYXJlICV6dSBwZW5kaW5nIiwgbV9wZW5kaW5nRGF0YWJhc2VP
cGVyYXRpb25zLnNpemUoKSk7CisgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJE
YXRhYmFzZTo6aGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zIC0gVGhlcmUgYXJlICV6dSBwZW5kaW5n
IiwgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuc2l6ZSgpKTsKIAotICAgIGlmIChtX3ZlcnNpb25D
aGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24gfHwgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gfHwg
bV9jdXJyZW50T3BlcmF0aW9uKSB7CisgICAgaWYgKG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29u
bmVjdGlvbiB8fCBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiB8fCBtX2N1cnJlbnRPcGVuREJS
ZXF1ZXN0KSB7CiAgICAgICAgIC8vIFdlIGNhbid0IHN0YXJ0IGFueSBuZXcgb3Blbi1kYXRhYmFz
ZSBvcGVyYXRpb25zIHJpZ2h0IG5vdywgYnV0IHdlIG1pZ2h0IGJlIGFibGUgdG8gc3RhcnQgaGFu
ZGxpbmcgYSBkZWxldGUgb3BlcmF0aW9uLgotICAgICAgICBpZiAoIW1fY3VycmVudE9wZXJhdGlv
biAmJiAhbV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRpb25zLmlzRW1wdHkoKSAmJiBtX3BlbmRpbmdE
YXRhYmFzZU9wZXJhdGlvbnMuZmlyc3QoKS0+aXNEZWxldGVSZXF1ZXN0KCkpCi0gICAgICAgICAg
ICBtX2N1cnJlbnRPcGVyYXRpb24gPSBtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnMudGFrZUZp
cnN0KCk7CisgICAgICAgIGlmICghbV9jdXJyZW50T3BlbkRCUmVxdWVzdCAmJiAhbV9wZW5kaW5n
T3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpICYmIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLmZpcnN0
KCktPmlzRGVsZXRlUmVxdWVzdCgpKQorICAgICAgICAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVz
dCA9IG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnRha2VGaXJzdCgpOwogCiAgICAgICAgIC8vIFNv
bWUgb3BlcmF0aW9ucyAoc3VjaCBhcyB0aGUgZmlyc3Qgb3BlbiBvcGVyYXRpb24gYWZ0ZXIgYSBk
ZWxldGUpIHJlcXVpcmUgbXVsdGlwbGUgcGFzc2VzIHRvIGNvbXBsZXRlbHkgaGFuZGxlCi0gICAg
ICAgIGlmIChtX2N1cnJlbnRPcGVyYXRpb24pCisgICAgICAgIGlmIChtX2N1cnJlbnRPcGVuREJS
ZXF1ZXN0KQogICAgICAgICAgICAgaGFuZGxlQ3VycmVudE9wZXJhdGlvbigpOwogCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRpb25zLmlz
RW1wdHkoKSkKKyAgICBpZiAobV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuaXNFbXB0eSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2N1cnJlbnRPcGVyYXRpb24gPSBtX3BlbmRpbmdEYXRhYmFz
ZU9wZXJhdGlvbnMudGFrZUZpcnN0KCk7Ci0gICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRh
dGFiYXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMgLSBQb3BwZWQgYW4gb3BlcmF0aW9uLCBu
b3cgdGhlcmUgYXJlICV6dSBwZW5kaW5nIiwgbV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRpb25zLnNp
emUoKSk7CisgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdCA9IG1fcGVuZGluZ09wZW5EQlJlcXVl
c3RzLnRha2VGaXJzdCgpOworICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6
aGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zIC0gUG9wcGVkIGFuIG9wZXJhdGlvbiwgbm93IHRoZXJl
IGFyZSAlenUgcGVuZGluZyIsIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLnNpemUoKSk7CiAKICAg
ICBoYW5kbGVDdXJyZW50T3BlcmF0aW9uKCk7CiB9CiAKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmhhbmRsZUN1cnJlbnRPcGVyYXRpb24oKQogewotICAgIEFTU0VSVChtX2N1cnJlbnRPcGVyYXRp
b24pOworICAgIEFTU0VSVChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KTsKIAogICAgIFJlZlB0cjxV
bmlxdWVJREJEYXRhYmFzZT4gcHJvdGVjdG9yKHRoaXMpOwogCi0gICAgaWYgKG1fY3VycmVudE9w
ZXJhdGlvbi0+aXNPcGVuUmVxdWVzdCgpKQorICAgIGlmIChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0
LT5pc09wZW5SZXF1ZXN0KCkpCiAgICAgICAgIHBlcmZvcm1DdXJyZW50T3Blbk9wZXJhdGlvbigp
OwotICAgIGVsc2UgaWYgKG1fY3VycmVudE9wZXJhdGlvbi0+aXNEZWxldGVSZXF1ZXN0KCkpCisg
ICAgZWxzZSBpZiAobV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+aXNEZWxldGVSZXF1ZXN0KCkpCiAg
ICAgICAgIHBlcmZvcm1DdXJyZW50RGVsZXRlT3BlcmF0aW9uKCk7CiAgICAgZWxzZQogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIAotICAgIGlmICghbV9jdXJyZW50T3BlcmF0aW9uKQor
ICAgIGlmICghbV9jdXJyZW50T3BlbkRCUmVxdWVzdCkKICAgICAgICAgaW52b2tlT3BlcmF0aW9u
QW5kVHJhbnNhY3Rpb25UaW1lcigpOwogfQogCkBAIC0yOTIsNyArMjkyLDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6aGFuZGxlRGVsZXRlKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVj
dGlvbiwgY29uc3QgSUQKIHsKICAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRh
dGFiYXNlOjpoYW5kbGVEZWxldGUiKTsKIAotICAgIG1fcGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9u
cy5hcHBlbmQoSURCU2VydmVyT3BlcmF0aW9uOjpjcmVhdGUoY29ubmVjdGlvbiwgcmVxdWVzdERh
dGEpKTsKKyAgICBtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5hcHBlbmQoU2VydmVyT3BlbkRCUmVx
dWVzdDo6Y3JlYXRlKGNvbm5lY3Rpb24sIHJlcXVlc3REYXRhKSk7CiAgICAgaGFuZGxlRGF0YWJh
c2VPcGVyYXRpb25zKCk7CiB9CiAKQEAgLTMwMSwxMSArMzAxLDExIEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKCkKICAgICBMT0coSW5kZXhl
ZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpzdGFydFZlcnNpb25DaGFuZ2VUcmFuc2Fj
dGlvbiIpOwogCiAgICAgQVNTRVJUKCFtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbik7Ci0gICAg
QVNTRVJUKG1fY3VycmVudE9wZXJhdGlvbik7Ci0gICAgQVNTRVJUKG1fY3VycmVudE9wZXJhdGlv
bi0+aXNPcGVuUmVxdWVzdCgpKTsKKyAgICBBU1NFUlQobV9jdXJyZW50T3BlbkRCUmVxdWVzdCk7
CisgICAgQVNTRVJUKG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPmlzT3BlblJlcXVlc3QoKSk7CiAg
ICAgQVNTRVJUKG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbik7CiAKLSAgICBhdXRv
IG9wZXJhdGlvbiA9IFdURjo6bW92ZShtX2N1cnJlbnRPcGVyYXRpb24pOworICAgIGF1dG8gb3Bl
cmF0aW9uID0gV1RGOjptb3ZlKG1fY3VycmVudE9wZW5EQlJlcXVlc3QpOwogCiAgICAgdWludDY0
X3QgcmVxdWVzdGVkVmVyc2lvbiA9IG9wZXJhdGlvbi0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0ZWRW
ZXJzaW9uKCk7CiAgICAgaWYgKCFyZXF1ZXN0ZWRWZXJzaW9uKQpAQCAtMzMxLDExICszMzEsMTEg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YmVnaW5UcmFuc2FjdGlvbkluQmFja2luZ1N0b3Jl
KGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYKIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6bm90
aWZ5Q29ubmVjdGlvbnNPZlZlcnNpb25DaGFuZ2VGb3JVcGdyYWRlKCkKIHsKLSAgICBBU1NFUlQo
bV9jdXJyZW50T3BlcmF0aW9uKTsKLSAgICBBU1NFUlQobV9jdXJyZW50T3BlcmF0aW9uLT5pc09w
ZW5SZXF1ZXN0KCkpOworICAgIEFTU0VSVChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KTsKKyAgICBB
U1NFUlQobV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+aXNPcGVuUmVxdWVzdCgpKTsKICAgICBBU1NF
UlQobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKIAotICAgIG5vdGlmeUNvbm5l
Y3Rpb25zT2ZWZXJzaW9uQ2hhbmdlKG1fY3VycmVudE9wZXJhdGlvbi0+cmVxdWVzdERhdGEoKS5y
ZXF1ZXN0ZWRWZXJzaW9uKCkpOworICAgIG5vdGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdl
KG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPnJlcXVlc3REYXRhKCkucmVxdWVzdGVkVmVyc2lvbigp
KTsKIH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6bm90aWZ5Q29ubmVjdGlvbnNPZlZlcnNp
b25DaGFuZ2UodWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbikKQEAgLTk4NCwxMCArOTg0LDEwIEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZXJhdGlvbkFuZFRyYW5zYWN0aW9uVGltZXJGaXJl
ZCgpCiAKICAgICAvLyBUaGUgY3VycmVudCBvcGVyYXRpb24gbWlnaHQgcmVxdWlyZSBtdWx0aXBs
ZSBhdHRlbXB0cyB0byBoYW5kbGUsIHNvIHRyeSB0bwogICAgIC8vIG1ha2UgZnVydGhlciBwcm9n
cmVzcyBvbiBpdCBub3cuCi0gICAgaWYgKG1fY3VycmVudE9wZXJhdGlvbikKKyAgICBpZiAobV9j
dXJyZW50T3BlbkRCUmVxdWVzdCkKICAgICAgICAgaGFuZGxlQ3VycmVudE9wZXJhdGlvbigpOwog
Ci0gICAgaWYgKCFtX2N1cnJlbnRPcGVyYXRpb24pCisgICAgaWYgKCFtX2N1cnJlbnRPcGVuREJS
ZXF1ZXN0KQogICAgICAgICBoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMoKTsKIAogICAgIGJvb2wg
aGFkRGVmZXJyZWRUcmFuc2FjdGlvbnMgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5k
ZXggMTI2ODFkZS4uNGY1YTI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTMzLDcgKzMz
LDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJJREJE
YXRhYmFzZUluZm8uaCIKICNpbmNsdWRlICJJREJHZXRSZXN1bHQuaCIKLSNpbmNsdWRlICJJREJT
ZXJ2ZXJPcGVyYXRpb24uaCIKKyNpbmNsdWRlICJTZXJ2ZXJPcGVuREJSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiVGhyZWFkU2FmZURhdGFCdWZmZXIuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oIgpAQCAtMTc3LDggKzE3Nyw4IEBAIHBy
aXZhdGU6CiAgICAgSURCU2VydmVyJiBtX3NlcnZlcjsKICAgICBJREJEYXRhYmFzZUlkZW50aWZp
ZXIgbV9pZGVudGlmaWVyOwogICAgIAotICAgIERlcXVlPFJlZjxJREJTZXJ2ZXJPcGVyYXRpb24+
PiBtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnM7Ci0gICAgUmVmUHRyPElEQlNlcnZlck9wZXJh
dGlvbj4gbV9jdXJyZW50T3BlcmF0aW9uOworICAgIERlcXVlPFJlZjxTZXJ2ZXJPcGVuREJSZXF1
ZXN0Pj4gbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHM7CisgICAgUmVmUHRyPFNlcnZlck9wZW5EQlJl
cXVlc3Q+IG1fY3VycmVudE9wZW5EQlJlcXVlc3Q7CiAKICAgICBIYXNoU2V0PFJlZlB0cjxVbmlx
dWVJREJEYXRhYmFzZUNvbm5lY3Rpb24+PiBtX29wZW5EYXRhYmFzZUNvbm5lY3Rpb25zOwogICAg
IEhhc2hTZXQ8UmVmUHRyPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4+IG1fY2xvc2VQZW5k
aW5nRGF0YWJhc2VDb25uZWN0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YTI2YmY5Li40YjJiYWYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMDMy
LDYgKzIwMzIsOCBAQAogCQk1MTZEN0Q3MDFCQjVGMEJEMDBBRjdDNzcgLyogSURCQ29ubmVjdGlv
blRvU2VydmVyRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxODVGQ0JEMUJCNUNCNzcwMDEyODk4RiAvKiBJREJDb25uZWN0aW9uVG9TZXJ2
ZXJEZWxlZ2F0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTUxNkQ3RDcxMUJCNUYwQkQwMEFGN0M3NyAvKiBJREJDb25uZWN0aW9uVG9DbGllbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2RDdE
NkQxQkI1RjA2NTAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAgKi87IH07CiAJ
CTUxNkQ3RDcyMUJCNUYwQkQwMEFGN0M3NyAvKiBJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2RDdE
NkUxQkI1RjA2NTAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTE2RjdGNkQx
QzMxRTM5QTAwRjExMURDIC8qIFNlcnZlck9wZW5EQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkY3RjZDMUMzMUM3OUQwMEYxMTFEQyAv
KiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNTE2RjdGNkUxQzMxRTM5QzAwRjExMURDIC8qIFNlcnZlck9wZW5E
QlJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE2RjdGNkIxQzMxQzc5RDAwRjExMURDIC8qIFNlcnZlck9wZW5EQlJlcXVlc3QuY3BwICov
OyB9OwogCQk1MTcxMzhFRjFCRUQxRDFBMDAwRDVGMDEgLyogSW5kZXhLZXkuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE3MTM4RUQxQkVEMUQxNzAw
MEQ1RjAxIC8qIEluZGV4S2V5LmNwcCAqLzsgfTsKIAkJNTE3MTM4RjAxQkVEMUQxQTAwMEQ1RjAx
IC8qIEluZGV4S2V5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTcxMzhFRTFCRUQxRDE3MDAwRDVGMDEgLyogSW5kZXhLZXkuaCAqLzsgfTsKIAkJNTE3
MTM4RjcxQkYxMjhCQjAwMEQ1RjAxIC8qIEluZGV4VmFsdWVTdG9yZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTcxMzhGNTFCRjEyMjYyMDAwRDVG
MDEgLyogSW5kZXhWYWx1ZVN0b3JlLmNwcCAqLzsgfTsKQEAgLTIxMTYsOCArMjExOCw2IEBACiAJ
CTUxODVGQ0JCMUJCNENCRjgwMDEyODk4RiAvKiBJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEE1OEYwMUJBQjcyMEYwMEMxOTI4MiAv
KiBJREJTZXJ2ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk1MTg4NjRFMDFCQkFGNTcxMDBFNTQwQzkgLyogVW5pcXVlSURCRGF0YWJhc2UuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4ODY0REUx
QkJBRjMwRjAwRTU0MEM5IC8qIFVuaXF1ZUlEQkRhdGFiYXNlLmNwcCAqLzsgfTsKIAkJNTE4ODY0
RTExQkJBRjU3NDAwRTU0MEM5IC8qIFVuaXF1ZUlEQkRhdGFiYXNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg4NjRERjFCQkFGMzBGMDBFNTQwQzkg
LyogVW5pcXVlSURCRGF0YWJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwotCQk1MTg4NjRFNjFCQkI0QjgzMDBFNTQwQzkgLyogSURCU2VydmVyT3Bl
cmF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxODg2NEU0MUJCQjRCN0UwMEU1NDBDOSAvKiBJREJTZXJ2ZXJPcGVyYXRpb24uY3BwICovOyB9
OwotCQk1MTg4NjRFNzFCQkI0QjgzMDBFNTQwQzkgLyogSURCU2VydmVyT3BlcmF0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg4NjRFNTFCQkI0
QjdFMDBFNTQwQzkgLyogSURCU2VydmVyT3BlcmF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTE4OUYwMUQxMEIzN0JEOTAwRjNDNzM5IC8q
IEpTUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTg5RjAxQjEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNw
cCAqLzsgfTsKIAkJNTE4OUYwMUUxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE4OUYwMUMx
MEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5oICovOyB9OwogCQk1MTg5RjBERTEw
QjQ2QjBFMDBGM0M3MzkgLyogUG9wU3RhdGVFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg5RjBERDEwQjQ2QjBFMDBGM0M3MzkgLyogUG9w
U3RhdGVFdmVudC5jcHAgKi87IH07CkBAIC05NDg1LDYgKzk0ODUsOCBAQAogCQk1MTZDNjIyNDE5
NTBFMkI5MDAzMzdFNzUgLyogSlNHYW1lcGFkRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gSlNHYW1lcGFkRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTE2RDdENkQxQkI1RjA2NTAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJDb25uZWN0aW9uVG9DbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTZEN0Q2RTFCQjVGMDY1MDBB
RjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTE2RjdGNkIxQzMxQzc5RDAwRjExMURDIC8qIFNlcnZl
ck9wZW5EQlJlcXVlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VydmVyT3BlbkRCUmVxdWVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
NkY3RjZDMUMzMUM3OUQwMEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZlck9wZW5EQlJlcXVlc3QuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3MTM4RUQxQkVEMUQxNzAwMEQ1RjAxIC8qIEluZGV4S2V5
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluZGV4S2V5LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3MTM4RUUxQkVEMUQxNzAwMEQ1RjAxIC8q
IEluZGV4S2V5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluZGV4S2V5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNzEzOEY1MUJGMTIyNjIwMDBENUYwMSAv
KiBJbmRleFZhbHVlU3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5kZXhWYWx1ZVN0b3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk1
MTgsOCArOTUyMCw2IEBACiAJCTUxODVGQ0JEMUJCNUNCNzcwMDEyODk4RiAvKiBJREJDb25uZWN0
aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
REJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTg4NjRERTFCQkFGMzBGMDBFNTQwQzkgLyogVW5pcXVlSURCRGF0YWJhc2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pcXVlSURCRGF0YWJhc2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg4NjRERjFCQkFGMzBGMDBFNTQwQzkg
LyogVW5pcXVlSURCRGF0YWJhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VW5pcXVlSURCRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTE4ODY0
RTQxQkJCNEI3RTAwRTU0MEM5IC8qIElEQlNlcnZlck9wZXJhdGlvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJREJTZXJ2ZXJPcGVyYXRpb24uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk1MTg4NjRFNTFCQkI0QjdFMDBFNTQwQzkgLyogSURCU2Vy
dmVyT3BlcmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQlNlcnZl
ck9wZXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTg5RjAxQjEwQjM3
QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTUG9wU3RhdGVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxODlGMDFDMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNQb3BTdGF0ZUV2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODlGMEREMTBCNDZCMEUwMEYzQzczOSAvKiBQb3BT
dGF0ZUV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBvcFN0
YXRlRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY5MTIsOCArMTY5
MTIsNiBAQAogCQkJCTUxNkQ3RDZFMUJCNUYwNjUwMEFGN0M3NyAvKiBJREJDb25uZWN0aW9uVG9D
bGllbnREZWxlZ2F0ZS5oICovLAogCQkJCTUxMEE1OEVGMUJBQjcyMEYwMEMxOTI4MiAvKiBJREJT
ZXJ2ZXIuY3BwICovLAogCQkJCTUxMEE1OEYwMUJBQjcyMEYwMEMxOTI4MiAvKiBJREJTZXJ2ZXIu
aCAqLywKLQkJCQk1MTg4NjRFNDFCQkI0QjdFMDBFNTQwQzkgLyogSURCU2VydmVyT3BlcmF0aW9u
LmNwcCAqLywKLQkJCQk1MTg4NjRFNTFCQkI0QjdFMDBFNTQwQzkgLyogSURCU2VydmVyT3BlcmF0
aW9uLmggKi8sCiAJCQkJNTFFRUFBNzExQkVGRkE3OTAwMjE4MDA4IC8qIEluZGV4VmFsdWVFbnRy
eS5jcHAgKi8sCiAJCQkJNTFFRUFBNzIxQkVGRkE3OTAwMjE4MDA4IC8qIEluZGV4VmFsdWVFbnRy
eS5oICovLAogCQkJCTUxNzEzOEY1MUJGMTIyNjIwMDBENUYwMSAvKiBJbmRleFZhbHVlU3RvcmUu
Y3BwICovLApAQCAtMTY5MzIsNiArMTY5MzAsOCBAQAogCQkJCTUxNzcxREZEMUJEQjQ3NTYwMENB
RThFNCAvKiBNZW1vcnlPYmplY3RTdG9yZS5oICovLAogCQkJCTUxNzEzOTAzMUJGNjRERTMwMDBE
NUYwMSAvKiBNZW1vcnlPYmplY3RTdG9yZUN1cnNvci5jcHAgKi8sCiAJCQkJNTE3MTM5MDQxQkY2
NERFMzAwMEQ1RjAxIC8qIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmggKi8sCisJCQkJNTE2RjdG
NkIxQzMxQzc5RDAwRjExMURDIC8qIFNlcnZlck9wZW5EQlJlcXVlc3QuY3BwICovLAorCQkJCTUx
NkY3RjZDMUMzMUM3OUQwMEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggKi8sCiAJCQkJ
NTE4ODY0REUxQkJBRjMwRjAwRTU0MEM5IC8qIFVuaXF1ZUlEQkRhdGFiYXNlLmNwcCAqLywKIAkJ
CQk1MTg4NjRERjFCQkFGMzBGMDBFNTQwQzkgLyogVW5pcXVlSURCRGF0YWJhc2UuaCAqLywKIAkJ
CQk1MTk4RjdBMjFCQkRBQTI5MDBFMkNDNUYgLyogVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
LmNwcCAqLywKQEAgLTI1MjMzLDYgKzI1MjMzLDcgQEAKIAkJCQk4NUU3MTFBRTBBQzVENTM1MDA1
MzI3MEYgLyogRE9NSFRNTEhlYWRpbmdFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg1RUNCRUYxMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MSFJFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NUU3MTFBRjBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEhSRWxlbWVu
dEludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTZGN0Y2RDFDMzFFMzlBMDBGMTExREMg
LyogU2VydmVyT3BlbkRCUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5OTJFQkMwQUE1
MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIdG1sRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
ODVFNzExQjAwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxIdG1sRWxlbWVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NURGODE5OTBBQTc3RTRCMDA0ODZBRDcgLyogRE9NSFRNTElG
cmFtZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjU4NjAsNyArMjU4NjEsNiBAQAogCQkJ
CTUxODVGQ0JCMUJCNENCRjgwMDEyODk4RiAvKiBJREJTZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTUxODVGQ0FCMUJCNEM0RTgwMDEyODk4RiAvKiBJREJTZXJ2ZXJDb25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTcxMzkwODFCRjY0REVGMDAwRDVGMDEgLyogTWVtb3J5Q3Vyc29y
LmggaW4gSGVhZGVycyAqLywKLQkJCQk1MTg4NjRFNzFCQkI0QjgzMDBFNTQwQzkgLyogSURCU2Vy
dmVyT3BlcmF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTg1RkNBRDFCQjRDNEU4MDAxMjg5
OEYgLyogSURCVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRjQxQTc0MUJBNzNC
NUIwMDJFMDUzQiAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxRjQxQTc2MUJBNzNCNUIwMDJFMDUzQiAvKiBJREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRp
b25zLmggaW4gSGVhZGVycyAqLywKQEAgLTI5NDc0LDcgKzI5NDc0LDYgQEAKIAkJCQk1MTQ1QjEw
OTFCQzQ4RTJFMDBFODYyMTkgLyogSURCUmVzb3VyY2VJZGVudGlmaWVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxRDcyMzZDMUJCNjE3NDkwMDQ3OENBMyAvKiBJREJSZXN1bHREYXRhLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTUxODVGQ0JBMUJCNENCRjgwMDEyODk4RiAvKiBJREJTZXJ2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNTE4ODY0RTYxQkJCNEI4MzAwRTU0MEM5IC8qIElEQlNl
cnZlck9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTg1RkNBQzFCQjRDNEU4MDAx
Mjg5OEYgLyogSURCVHJhbnNhY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGNDFBNzMx
QkE3M0I1QjAwMkUwNTNCIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk1MUY0MUE3NTFCQTczQjVCMDAyRTA1M0IgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5k
T3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTMwNDA2LDYgKzMwNDA1LDcgQEAKIAkJ
CQlDRDNBNDk1RTE3QTlEMDFCMDAyNzRFNDIgLyogTWVkaWFTb3VyY2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQ0RDOEI1QTYxODA0NzRGNzAwMTZFNjg1IC8qIE1lZGlhU291cmNlUHJpdmF0ZUFW
Rk9iakMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDRDYxRkU2NzE3OTRBQURCMDA0MTAxRUIgLyog
TWVkaWFTb3VyY2VSZWdpc3RyeS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTZGN0Y2RTFDMzFF
MzlDMDBGMTExREMgLyogU2VydmVyT3BlbkRCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwN0M1OUI2ODE3Rjc4NEJBMDAwRkJDQkIgLyogTWVkaWFTb3VyY2VTZXR0aW5ncy5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQkwNzhFMDhGRjE3RDE0Q0VFMDA0MjBBQTEgLyogTWVkaWFTdHJlYW0u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDc4RTA5NEIxN0QxNzA5NjAwNDIwQUExIC8qIE1lZGlh
U3RyZWFtQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="review"
          id="292933"
          type_id="1"
          status="+"
          setter="aestes"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267969</attachid>
            <date>2015-12-28 16:01:58 -0800</date>
            <delta_ts>2015-12-28 16:51:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>36357</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjRkMzMxZS4uZDI0MjkzYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTg3NCw3ICs4NzQsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAKICAgICBNb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcAogICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCi0gICAgTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSW5kZXhWYWx1ZUVudHJ5LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JbmRl
eFZhbHVlU3RvcmUuY3BwCiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtODg0LDYgKzg4Myw3IEBAIHNldChXZWJDb3JlX1NP
VVJDRVMKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SW5kZXhDdXJzb3IuY3Bw
CiAgICAgTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcAogICAg
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZUN1cnNvci5jcHAKKyAg
ICBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3BlbkRCUmVxdWVzdC5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAKICAgICBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1MTg4MjkwLi4wMTBhMmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTUtMTItMjggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IFJlbmFtZSBJREJTZXJ2ZXJPcGVyYXRpb24gdG8gU2VydmVyT3BlbkRC
UmVxdWVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MjU3NworCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0ZXMuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIChSZWZhY3Rvciwgbm8gYmVoYXZpb3IgY2hhbmdlKQorCisgICAgICAgICogQ01h
a2VMaXN0cy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NlcnZlck9wZW5EQlJlcXVl
c3QuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlck9wZXJhdGlvbi5jcHAuCisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlNlcnZlck9wZW5EQlJlcXVlc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNlcnZlck9wZW5EQlJlcXVlc3Q6OlNlcnZlck9wZW5EQlJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTZXJ2ZXJPcGVuREJSZXF1ZXN0Ojppc09wZW5SZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U2VydmVyT3BlbkRCUmVxdWVzdDo6aXNEZWxl
dGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U2VydmVyT3BlbkRCUmVx
dWVzdDo6bm90aWZ5RGVsZXRlUmVxdWVzdEJsb2NrZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTZXJ2ZXJPcGVuREJSZXF1ZXN0Ojpub3RpZnlEaWREZWxldGVEYXRhYmFzZSk6Cisg
ICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TZXJ2ZXJPcGVuREJS
ZXF1ZXN0Lmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyT3BlcmF0aW9uLmguCisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlNlcnZlck9wZW5EQlJlcXVlc3Q6OmNvbm5lY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTZXJ2ZXJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0RGF0YSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlNlcnZlck9wZW5EQlJlcXVlc3Q6Omhhc05vdGlmaWVkRGVsZXRlUmVx
dWVzdEJsb2NrZWQpOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlQ29ubmVjdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3VycmVudE9wZW5PcGVy
YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybUN1cnJlbnREZWxldGVPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmhhbmRsZUN1cnJlbnRP
cGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6aGFuZGxlRGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Om5vdGlmeUNvbm5lY3Rpb25zT2ZWZXJz
aW9uQ2hhbmdlRm9yVXBncmFkZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlOjpvcGVyYXRpb25BbmRUcmFuc2FjdGlvblRpbWVyRmlyZWQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAg
ICAKIDIwMTUtMTItMjggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFtDTWFrZV1bRUZMXSBGaXggYnVpbGQgYnJlYWtzIHdoZW4gZW5hYmxpbmcgR0FN
RVBBRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlck9wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyT3BlcmF0aW9uLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggZTIyZTU5ZS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyT3BlcmF0aW9uLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc3
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSURC
U2VydmVyT3BlcmF0aW9uLmgiCi0KLSNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLQotI2lu
Y2x1ZGUgIklEQlJlc3VsdERhdGEuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgSURCU2VydmVyIHsKLQotUmVmPElEQlNlcnZl
ck9wZXJhdGlvbj4gSURCU2VydmVyT3BlcmF0aW9uOjpjcmVhdGUoSURCQ29ubmVjdGlvblRvQ2xp
ZW50JiBjb25uZWN0aW9uLCBjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCi17Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCU2VydmVyT3BlcmF0aW9uKGNvbm5lY3Rpb24sIHJl
cXVlc3REYXRhKSk7Ci19Ci0KLUlEQlNlcnZlck9wZXJhdGlvbjo6SURCU2VydmVyT3BlcmF0aW9u
KElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29ubmVjdGlvbiwgY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhKQotICAgIDogbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX3Jl
cXVlc3REYXRhKHJlcXVlc3REYXRhKQotewotfQotCi1ib29sIElEQlNlcnZlck9wZXJhdGlvbjo6
aXNPcGVuUmVxdWVzdCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fcmVxdWVzdERhdGEuaXNPcGVu
UmVxdWVzdCgpOwotfQotCi1ib29sIElEQlNlcnZlck9wZXJhdGlvbjo6aXNEZWxldGVSZXF1ZXN0
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9yZXF1ZXN0RGF0YS5pc0RlbGV0ZVJlcXVlc3QoKTsK
LX0KLQotdm9pZCBJREJTZXJ2ZXJPcGVyYXRpb246Om5vdGlmeURlbGV0ZVJlcXVlc3RCbG9ja2Vk
KHVpbnQ2NF90IGN1cnJlbnRWZXJzaW9uKQotewotICAgIEFTU0VSVChpc0RlbGV0ZVJlcXVlc3Qo
KSk7Ci0gICAgQVNTRVJUKCFtX25vdGlmaWVkRGVsZXRlUmVxdWVzdEJsb2NrZWQpOwotCi0gICAg
bV9jb25uZWN0aW9uLm5vdGlmeU9wZW5EQlJlcXVlc3RCbG9ja2VkKG1fcmVxdWVzdERhdGEucmVx
dWVzdElkZW50aWZpZXIoKSwgY3VycmVudFZlcnNpb24sIDApOwotICAgIG1fbm90aWZpZWREZWxl
dGVSZXF1ZXN0QmxvY2tlZCA9IHRydWU7Ci19Ci0KLXZvaWQgSURCU2VydmVyT3BlcmF0aW9uOjpu
b3RpZnlEaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJEYXRhYmFzZUluZm8mIGluZm8pCi17Ci0g
ICAgQVNTRVJUKGlzRGVsZXRlUmVxdWVzdCgpKTsKLQotICAgIG1fY29ubmVjdGlvbi5kaWREZWxl
dGVEYXRhYmFzZShJREJSZXN1bHREYXRhOjpkZWxldGVEYXRhYmFzZVN1Y2Nlc3MobV9yZXF1ZXN0
RGF0YS5yZXF1ZXN0SWRlbnRpZmllcigpLCBpbmZvKSk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIElE
QlNlcnZlcgotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VydmVyT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyT3BlcmF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDNkZWE1MmQuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlck9wZXJhdGlvbi5oCisrKyAvZGV2L251bGwKQEAgLTEs
NjkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSURCU2VydmVyT3BlcmF0aW9uX2gKLSNk
ZWZpbmUgSURCU2VydmVyT3BlcmF0aW9uX2gKLQotI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQotCi0jaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCi0jaW5jbHVkZSAiSURCUmVx
dWVzdERhdGEuaCIKLSNpbmNsdWRlIDx3dGYvUmVmLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJREJEYXRhYmFzZUluZm87Ci0K
LW5hbWVzcGFjZSBJREJTZXJ2ZXIgewotCi1jbGFzcyBJREJTZXJ2ZXJPcGVyYXRpb24gOiBwdWJs
aWMgUmVmQ291bnRlZDxJREJTZXJ2ZXJPcGVyYXRpb24+IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPElEQlNlcnZlck9wZXJhdGlvbj4gY3JlYXRlKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYsIGNv
bnN0IElEQlJlcXVlc3REYXRhJik7Ci0KLSAgICBJREJDb25uZWN0aW9uVG9DbGllbnQmIGNvbm5l
Y3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KLSAgICBjb25zdCBJREJSZXF1ZXN0RGF0
YSYgcmVxdWVzdERhdGEoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3REYXRhOyB9Ci0KLSAgICBi
b29sIGlzT3BlblJlcXVlc3QoKSBjb25zdDsKLSAgICBib29sIGlzRGVsZXRlUmVxdWVzdCgpIGNv
bnN0OwotCi0gICAgdm9pZCBub3RpZnlEZWxldGVSZXF1ZXN0QmxvY2tlZCh1aW50NjRfdCBjdXJy
ZW50VmVyc2lvbik7Ci0gICAgdm9pZCBub3RpZnlEaWREZWxldGVEYXRhYmFzZShjb25zdCBJREJE
YXRhYmFzZUluZm8mKTsKLSAgICBib29sIGhhc05vdGlmaWVkRGVsZXRlUmVxdWVzdEJsb2NrZWQo
KSBjb25zdCB7IHJldHVybiBtX25vdGlmaWVkRGVsZXRlUmVxdWVzdEJsb2NrZWQ7IH0KLQotcHJp
dmF0ZToKLSAgICBJREJTZXJ2ZXJPcGVyYXRpb24oSURCQ29ubmVjdGlvblRvQ2xpZW50JiwgY29u
c3QgSURCUmVxdWVzdERhdGEmKTsKLQotICAgIElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgbV9jb25u
ZWN0aW9uOwotICAgIElEQlJlcXVlc3REYXRhIG1fcmVxdWVzdERhdGE7Ci0KLSAgICBib29sIG1f
bm90aWZpZWREZWxldGVSZXF1ZXN0QmxvY2tlZCB7IGZhbHNlIH07Ci19OwotCi19IC8vIG5hbWVz
cGFjZSBJREJTZXJ2ZXIKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQotI2VuZGlmIC8vIElEQlNlcnZlck9wZXJhdGlvbl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3Bl
bkRCUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
U2VydmVyT3BlbkRCUmVxdWVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYWM3Njg2YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TZXJ2ZXJPcGVuREJSZXF1ZXN0LmNwcApAQCAtMCwwICsxLDc3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNlcnZlck9wZW5EQlJl
cXVlc3QuaCIKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURC
UmVzdWx0RGF0YS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKK25hbWVzcGFjZSBJREJTZXJ2ZXIgeworCitSZWY8U2VydmVyT3BlbkRCUmVxdWVz
dD4gU2VydmVyT3BlbkRCUmVxdWVzdDo6Y3JlYXRlKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYgY29u
bmVjdGlvbiwgY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQoreworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNlcnZlck9wZW5EQlJlcXVlc3QoY29ubmVjdGlvbiwgcmVxdWVzdERh
dGEpKTsKK30KKworU2VydmVyT3BlbkRCUmVxdWVzdDo6U2VydmVyT3BlbkRCUmVxdWVzdChJREJD
b25uZWN0aW9uVG9DbGllbnQmIGNvbm5lY3Rpb24sIGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSkKKyAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICwgbV9yZXF1ZXN0
RGF0YShyZXF1ZXN0RGF0YSkKK3sKK30KKworYm9vbCBTZXJ2ZXJPcGVuREJSZXF1ZXN0Ojppc09w
ZW5SZXF1ZXN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0RGF0YS5pc09wZW5SZXF1
ZXN0KCk7Cit9CisKK2Jvb2wgU2VydmVyT3BlbkRCUmVxdWVzdDo6aXNEZWxldGVSZXF1ZXN0KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9yZXF1ZXN0RGF0YS5pc0RlbGV0ZVJlcXVlc3QoKTsKK30K
Kwordm9pZCBTZXJ2ZXJPcGVuREJSZXF1ZXN0Ojpub3RpZnlEZWxldGVSZXF1ZXN0QmxvY2tlZCh1
aW50NjRfdCBjdXJyZW50VmVyc2lvbikKK3sKKyAgICBBU1NFUlQoaXNEZWxldGVSZXF1ZXN0KCkp
OworICAgIEFTU0VSVCghbV9ub3RpZmllZERlbGV0ZVJlcXVlc3RCbG9ja2VkKTsKKworICAgIG1f
Y29ubmVjdGlvbi5ub3RpZnlPcGVuREJSZXF1ZXN0QmxvY2tlZChtX3JlcXVlc3REYXRhLnJlcXVl
c3RJZGVudGlmaWVyKCksIGN1cnJlbnRWZXJzaW9uLCAwKTsKKyAgICBtX25vdGlmaWVkRGVsZXRl
UmVxdWVzdEJsb2NrZWQgPSB0cnVlOworfQorCit2b2lkIFNlcnZlck9wZW5EQlJlcXVlc3Q6Om5v
dGlmeURpZERlbGV0ZURhdGFiYXNlKGNvbnN0IElEQkRhdGFiYXNlSW5mbyYgaW5mbykKK3sKKyAg
ICBBU1NFUlQoaXNEZWxldGVSZXF1ZXN0KCkpOworCisgICAgbV9jb25uZWN0aW9uLmRpZERlbGV0
ZURhdGFiYXNlKElEQlJlc3VsdERhdGE6OmRlbGV0ZURhdGFiYXNlU3VjY2VzcyhtX3JlcXVlc3RE
YXRhLnJlcXVlc3RJZGVudGlmaWVyKCksIGluZm8pKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSURC
U2VydmVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TZXJ2ZXJPcGVuREJSZXF1ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3BlbkRCUmVxdWVzdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmNhODY3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU2VydmVyT3BlbkRCUmVxdWVzdC5oCkBAIC0wLDAg
KzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNlcnZlck9wZW5EQlJlcXVlc3RfaAorI2Rl
ZmluZSBTZXJ2ZXJPcGVuREJSZXF1ZXN0X2gKKworI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQorCisjaW5jbHVkZSAiSURCQ29ubmVjdGlvblRvQ2xpZW50LmgiCisjaW5jbHVkZSAiSURCUmVx
dWVzdERhdGEuaCIKKyNpbmNsdWRlIDx3dGYvUmVmLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBJREJEYXRhYmFzZUluZm87CisK
K25hbWVzcGFjZSBJREJTZXJ2ZXIgeworCitjbGFzcyBTZXJ2ZXJPcGVuREJSZXF1ZXN0IDogcHVi
bGljIFJlZkNvdW50ZWQ8U2VydmVyT3BlbkRCUmVxdWVzdD4geworcHVibGljOgorICAgIHN0YXRp
YyBSZWY8U2VydmVyT3BlbkRCUmVxdWVzdD4gY3JlYXRlKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYs
IGNvbnN0IElEQlJlcXVlc3REYXRhJik7CisKKyAgICBJREJDb25uZWN0aW9uVG9DbGllbnQmIGNv
bm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KKyAgICBjb25zdCBJREJSZXF1ZXN0
RGF0YSYgcmVxdWVzdERhdGEoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3REYXRhOyB9CisKKyAg
ICBib29sIGlzT3BlblJlcXVlc3QoKSBjb25zdDsKKyAgICBib29sIGlzRGVsZXRlUmVxdWVzdCgp
IGNvbnN0OworCisgICAgdm9pZCBub3RpZnlEZWxldGVSZXF1ZXN0QmxvY2tlZCh1aW50NjRfdCBj
dXJyZW50VmVyc2lvbik7CisgICAgdm9pZCBub3RpZnlEaWREZWxldGVEYXRhYmFzZShjb25zdCBJ
REJEYXRhYmFzZUluZm8mKTsKKyAgICBib29sIGhhc05vdGlmaWVkRGVsZXRlUmVxdWVzdEJsb2Nr
ZWQoKSBjb25zdCB7IHJldHVybiBtX25vdGlmaWVkRGVsZXRlUmVxdWVzdEJsb2NrZWQ7IH0KKwor
cHJpdmF0ZToKKyAgICBTZXJ2ZXJPcGVuREJSZXF1ZXN0KElEQkNvbm5lY3Rpb25Ub0NsaWVudCYs
IGNvbnN0IElEQlJlcXVlc3REYXRhJik7CisKKyAgICBJREJDb25uZWN0aW9uVG9DbGllbnQmIG1f
Y29ubmVjdGlvbjsKKyAgICBJREJSZXF1ZXN0RGF0YSBtX3JlcXVlc3REYXRhOworCisgICAgYm9v
bCBtX25vdGlmaWVkRGVsZXRlUmVxdWVzdEJsb2NrZWQgeyBmYWxzZSB9OworfTsKKworfSAvLyBu
YW1lc3BhY2UgSURCU2VydmVyCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKKyNlbmRpZiAvLyBTZXJ2ZXJPcGVuREJSZXF1ZXN0X2gK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9Vbmlx
dWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDA3YWQ1NGEuLmJiMDc5MTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtNjgsOCArNjgsOCBAQCBjb25zdCBJREJEYXRhYmFzZUlu
Zm8mIFVuaXF1ZUlEQkRhdGFiYXNlOjppbmZvKCkgY29uc3QKIAogdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6b3BlbkRhdGFiYXNlQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQmIGNvbm5l
Y3Rpb24sIGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKIHsKLSAgICBhdXRvIG9w
ZXJhdGlvbiA9IElEQlNlcnZlck9wZXJhdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb24sIHJlcXVlc3RE
YXRhKTsKLSAgICBtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnMuYXBwZW5kKFdURjo6bW92ZShv
cGVyYXRpb24pKTsKKyAgICBhdXRvIG9wZXJhdGlvbiA9IFNlcnZlck9wZW5EQlJlcXVlc3Q6OmNy
ZWF0ZShjb25uZWN0aW9uLCByZXF1ZXN0RGF0YSk7CisgICAgbV9wZW5kaW5nT3BlbkRCUmVxdWVz
dHMuYXBwZW5kKFdURjo6bW92ZShvcGVyYXRpb24pKTsKIAogICAgIC8vIEFuIG9wZW4gb3BlcmF0
aW9uIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHNvIHdlIGNhbid0IHBvc3NpYmx5IGhhbmRsZSB0
aGlzIG9uZSB5ZXQuCiAgICAgaWYgKG1faXNPcGVuaW5nQmFja2luZ1N0b3JlKQpAQCAtMTAwLDgg
KzEwMCw4IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DdXJyZW50T3Blbk9wZXJh
dGlvbigpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybUN1cnJlbnRPcGVuT3BlcmF0aW9uIik7CiAKLSAgICBBU1NFUlQobV9jdXJyZW50T3Bl
cmF0aW9uKTsKLSAgICBBU1NFUlQobV9jdXJyZW50T3BlcmF0aW9uLT5pc09wZW5SZXF1ZXN0KCkp
OworICAgIEFTU0VSVChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KTsKKyAgICBBU1NFUlQobV9jdXJy
ZW50T3BlbkRCUmVxdWVzdC0+aXNPcGVuUmVxdWVzdCgpKTsKIAogICAgIGlmICghbV9kYXRhYmFz
ZUluZm8pIHsKICAgICAgICAgbV9pc09wZW5pbmdCYWNraW5nU3RvcmUgPSB0cnVlOwpAQCAtMTIw
LDI5ICsxMjAsMjkgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnRPcGVu
T3BlcmF0aW9uKCkKICAgICAvLyAzLjMuMSBPcGVuaW5nIGEgZGF0YWJhc2UKICAgICAvLyBJZiBy
ZXF1ZXN0ZWQgdmVyc2lvbiBpcyB1bmRlZmluZWQsIHRoZW4gbGV0IHJlcXVlc3RlZCB2ZXJzaW9u
IGJlIDEgaWYgZGIgd2FzIGNyZWF0ZWQgaW4gdGhlIHByZXZpb3VzIHN0ZXAsCiAgICAgLy8gb3Ig
dGhlIGN1cnJlbnQgdmVyc2lvbiBvZiBkYiBvdGhlcndpc2UuCi0gICAgdWludDY0X3QgcmVxdWVz
dGVkVmVyc2lvbiA9IG1fY3VycmVudE9wZXJhdGlvbi0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0ZWRW
ZXJzaW9uKCk7CisgICAgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbiA9IG1fY3VycmVudE9wZW5E
QlJlcXVlc3QtPnJlcXVlc3REYXRhKCkucmVxdWVzdGVkVmVyc2lvbigpOwogICAgIGlmICghcmVx
dWVzdGVkVmVyc2lvbikKICAgICAgICAgcmVxdWVzdGVkVmVyc2lvbiA9IG1fZGF0YWJhc2VJbmZv
LT52ZXJzaW9uKCkgPyBtX2RhdGFiYXNlSW5mby0+dmVyc2lvbigpIDogMTsKIAogICAgIC8vIDMu
My4xIE9wZW5pbmcgYSBkYXRhYmFzZQogICAgIC8vIElmIHRoZSBkYXRhYmFzZSB2ZXJzaW9uIGhp
Z2hlciB0aGFuIHRoZSByZXF1ZXN0ZWQgdmVyc2lvbiwgYWJvcnQgdGhlc2Ugc3RlcHMgYW5kIHJl
dHVybiBhIFZlcnNpb25FcnJvci4KICAgICBpZiAocmVxdWVzdGVkVmVyc2lvbiA8IG1fZGF0YWJh
c2VJbmZvLT52ZXJzaW9uKCkpIHsKLSAgICAgICAgYXV0byByZXN1bHQgPSBJREJSZXN1bHREYXRh
OjplcnJvcihtX2N1cnJlbnRPcGVyYXRpb24tPnJlcXVlc3REYXRhKCkucmVxdWVzdElkZW50aWZp
ZXIoKSwgSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OlZlcnNpb25FcnJvcikpOwotICAg
ICAgICBtX2N1cnJlbnRPcGVyYXRpb24tPmNvbm5lY3Rpb24oKS5kaWRPcGVuRGF0YWJhc2UocmVz
dWx0KTsKLSAgICAgICAgbV9jdXJyZW50T3BlcmF0aW9uID0gbnVsbHB0cjsKKyAgICAgICAgYXV0
byByZXN1bHQgPSBJREJSZXN1bHREYXRhOjplcnJvcihtX2N1cnJlbnRPcGVuREJSZXF1ZXN0LT5y
ZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVyKCksIElEQkVycm9yKElEQkRhdGFiYXNlRXhj
ZXB0aW9uOjpWZXJzaW9uRXJyb3IpKTsKKyAgICAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+
Y29ubmVjdGlvbigpLmRpZE9wZW5EYXRhYmFzZShyZXN1bHQpOworICAgICAgICBtX2N1cnJlbnRP
cGVuREJSZXF1ZXN0ID0gbnVsbHB0cjsKIAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
UmVmPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4gY29ubmVjdGlvbiA9IFVuaXF1ZUlEQkRh
dGFiYXNlQ29ubmVjdGlvbjo6Y3JlYXRlKCp0aGlzLCBtX2N1cnJlbnRPcGVyYXRpb24tPmNvbm5l
Y3Rpb24oKSk7CisgICAgUmVmPFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4gY29ubmVjdGlv
biA9IFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6Y3JlYXRlKCp0aGlzLCBtX2N1cnJlbnRP
cGVuREJSZXF1ZXN0LT5jb25uZWN0aW9uKCkpOwogICAgIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbiogcmF3Q29ubmVjdGlvbiA9ICZjb25uZWN0aW9uLmdldCgpOwogCiAgICAgaWYgKHJlcXVl
c3RlZFZlcnNpb24gPT0gbV9kYXRhYmFzZUluZm8tPnZlcnNpb24oKSkgewogICAgICAgICBhZGRP
cGVuRGF0YWJhc2VDb25uZWN0aW9uKFdURjo6bW92ZShjb25uZWN0aW9uKSk7CiAKLSAgICAgICAg
YXV0byByZXN1bHQgPSBJREJSZXN1bHREYXRhOjpvcGVuRGF0YWJhc2VTdWNjZXNzKG1fY3VycmVu
dE9wZXJhdGlvbi0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0SWRlbnRpZmllcigpLCAqcmF3Q29ubmVj
dGlvbik7Ci0gICAgICAgIG1fY3VycmVudE9wZXJhdGlvbi0+Y29ubmVjdGlvbigpLmRpZE9wZW5E
YXRhYmFzZShyZXN1bHQpOwotICAgICAgICBtX2N1cnJlbnRPcGVyYXRpb24gPSBudWxscHRyOwor
ICAgICAgICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERhdGE6Om9wZW5EYXRhYmFzZVN1Y2Nlc3Mo
bV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0SWRlbnRpZmllcigp
LCAqcmF3Q29ubmVjdGlvbik7CisgICAgICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPmNvbm5l
Y3Rpb24oKS5kaWRPcGVuRGF0YWJhc2UocmVzdWx0KTsKKyAgICAgICAgbV9jdXJyZW50T3BlbkRC
UmVxdWVzdCA9IG51bGxwdHI7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE2MSw3ICsx
NjEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3VycmVudE9wZW5PcGVyYXRp
b24oKQogICAgIG5vdGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdlRm9yVXBncmFkZSgpOwog
CiAgICAgLy8gQW5kIHdlIG5vdGlmeSB0aGlzIE9wZW5EQlJlcXVlc3QgdGhhdCBpdCBpcyBibG9j
a2VkIHVudGlsIHRob3NlIGNvbm5lY3Rpb25zIGNsb3NlLgotICAgIG1fdmVyc2lvbkNoYW5nZURh
dGFiYXNlQ29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xpZW50KCkubm90aWZ5T3BlbkRCUmVxdWVz
dEJsb2NrZWQobV9jdXJyZW50T3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlm
aWVyKCksIG1fZGF0YWJhc2VJbmZvLT52ZXJzaW9uKCksIHJlcXVlc3RlZFZlcnNpb24pOworICAg
IG1fdmVyc2lvbkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbi0+Y29ubmVjdGlvblRvQ2xpZW50KCku
bm90aWZ5T3BlbkRCUmVxdWVzdEJsb2NrZWQobV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+cmVxdWVz
dERhdGEoKS5yZXF1ZXN0SWRlbnRpZmllcigpLCBtX2RhdGFiYXNlSW5mby0+dmVyc2lvbigpLCBy
ZXF1ZXN0ZWRWZXJzaW9uKTsKIH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1
cnJlbnREZWxldGVPcGVyYXRpb24oKQpAQCAtMTY5LDggKzE2OSw4IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OnBlcmZvcm1DdXJyZW50RGVsZXRlT3BlcmF0aW9uKCkKICAgICBMT0coSW5kZXhl
ZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtQ3VycmVudERlbGV0ZU9wZXJh
dGlvbiIpOwogCiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKLSAgICBBU1NFUlQobV9jdXJy
ZW50T3BlcmF0aW9uKTsKLSAgICBBU1NFUlQobV9jdXJyZW50T3BlcmF0aW9uLT5pc0RlbGV0ZVJl
cXVlc3QoKSk7CisgICAgQVNTRVJUKG1fY3VycmVudE9wZW5EQlJlcXVlc3QpOworICAgIEFTU0VS
VChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0LT5pc0RlbGV0ZVJlcXVlc3QoKSk7CiAKICAgICBpZiAo
aGFzQW55T3BlbkNvbm5lY3Rpb25zKCkpIHsKICAgICAgICAgLy8gRXhhY3RseSBvbmNlLCBub3Rp
ZnkgYWxsIG9wZW4gY29ubmVjdGlvbnMgb2YgdGhlIHBlbmRpbmcgZGVsZXRpb24uCkBAIC0xNzks
OCArMTc5LDggQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUN1cnJlbnREZWxldGVP
cGVyYXRpb24oKQogICAgICAgICAgICAgbV9oYXNOb3RpZmllZENvbm5lY3Rpb25zT2ZEZWxldGUg
PSB0cnVlOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFtX2N1cnJlbnRPcGVyYXRpb24tPmhh
c05vdGlmaWVkRGVsZXRlUmVxdWVzdEJsb2NrZWQoKSkKLSAgICAgICAgICAgIG1fY3VycmVudE9w
ZXJhdGlvbi0+bm90aWZ5RGVsZXRlUmVxdWVzdEJsb2NrZWQobV9kYXRhYmFzZUluZm8tPnZlcnNp
b24oKSk7CisgICAgICAgIGlmICghbV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+aGFzTm90aWZpZWRE
ZWxldGVSZXF1ZXN0QmxvY2tlZCgpKQorICAgICAgICAgICAgbV9jdXJyZW50T3BlbkRCUmVxdWVz
dC0+bm90aWZ5RGVsZXRlUmVxdWVzdEJsb2NrZWQobV9kYXRhYmFzZUluZm8tPnZlcnNpb24oKSk7
CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE5MCwxMiArMTkwLDEyIEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DdXJyZW50RGVsZXRlT3BlcmF0aW9uKCkKICAgICBBU1NF
UlQobV9wZW5kaW5nVHJhbnNhY3Rpb25zLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUKG1fb3BlbkRh
dGFiYXNlQ29ubmVjdGlvbnMuaXNFbXB0eSgpKTsKIAotICAgIG1fY3VycmVudE9wZXJhdGlvbi0+
bm90aWZ5RGlkRGVsZXRlRGF0YWJhc2UoKm1fZGF0YWJhc2VJbmZvKTsKLSAgICBtX2N1cnJlbnRP
cGVyYXRpb24gPSBudWxscHRyOworICAgIG1fY3VycmVudE9wZW5EQlJlcXVlc3QtPm5vdGlmeURp
ZERlbGV0ZURhdGFiYXNlKCptX2RhdGFiYXNlSW5mbyk7CisgICAgbV9jdXJyZW50T3BlbkRCUmVx
dWVzdCA9IG51bGxwdHI7CiAgICAgbV9oYXNOb3RpZmllZENvbm5lY3Rpb25zT2ZEZWxldGUgPSBm
YWxzZTsKICAgICBtX2RlbGV0ZVBlbmRpbmcgPSBmYWxzZTsKIAotICAgIGlmIChtX3BlbmRpbmdE
YXRhYmFzZU9wZXJhdGlvbnMuaXNFbXB0eSgpKQorICAgIGlmIChtX3BlbmRpbmdPcGVuREJSZXF1
ZXN0cy5pc0VtcHR5KCkpCiAgICAgICAgIG1fc2VydmVyLmRlbGV0ZVVuaXF1ZUlEQkRhdGFiYXNl
KCp0aGlzKTsKICAgICBlbHNlCiAgICAgICAgIGludm9rZU9wZXJhdGlvbkFuZFRyYW5zYWN0aW9u
VGltZXIoKTsKQEAgLTIwNCw0MyArMjA0LDQzIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBl
cmZvcm1DdXJyZW50RGVsZXRlT3BlcmF0aW9uKCkKIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Omhh
bmRsZURhdGFiYXNlT3BlcmF0aW9ucygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
LSAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVEYXRh
YmFzZU9wZXJhdGlvbnMgLSBUaGVyZSBhcmUgJXp1IHBlbmRpbmciLCBtX3BlbmRpbmdEYXRhYmFz
ZU9wZXJhdGlvbnMuc2l6ZSgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlE
QkRhdGFiYXNlOjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMgLSBUaGVyZSBhcmUgJXp1IHBlbmRp
bmciLCBtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5zaXplKCkpOwogCi0gICAgaWYgKG1fdmVyc2lv
bkNoYW5nZURhdGFiYXNlQ29ubmVjdGlvbiB8fCBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiB8
fCBtX2N1cnJlbnRPcGVyYXRpb24pIHsKKyAgICBpZiAobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VD
b25uZWN0aW9uIHx8IG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uIHx8IG1fY3VycmVudE9wZW5E
QlJlcXVlc3QpIHsKICAgICAgICAgLy8gV2UgY2FuJ3Qgc3RhcnQgYW55IG5ldyBvcGVuLWRhdGFi
YXNlIG9wZXJhdGlvbnMgcmlnaHQgbm93LCBidXQgd2UgbWlnaHQgYmUgYWJsZSB0byBzdGFydCBo
YW5kbGluZyBhIGRlbGV0ZSBvcGVyYXRpb24uCi0gICAgICAgIGlmICghbV9jdXJyZW50T3BlcmF0
aW9uICYmICFtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnMuaXNFbXB0eSgpICYmIG1fcGVuZGlu
Z0RhdGFiYXNlT3BlcmF0aW9ucy5maXJzdCgpLT5pc0RlbGV0ZVJlcXVlc3QoKSkKLSAgICAgICAg
ICAgIG1fY3VycmVudE9wZXJhdGlvbiA9IG1fcGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9ucy50YWtl
Rmlyc3QoKTsKKyAgICAgICAgaWYgKCFtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ICYmICFtX3BlbmRp
bmdPcGVuREJSZXF1ZXN0cy5pc0VtcHR5KCkgJiYgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuZmly
c3QoKS0+aXNEZWxldGVSZXF1ZXN0KCkpCisgICAgICAgICAgICBtX2N1cnJlbnRPcGVuREJSZXF1
ZXN0ID0gbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMudGFrZUZpcnN0KCk7CiAKICAgICAgICAgLy8g
U29tZSBvcGVyYXRpb25zIChzdWNoIGFzIHRoZSBmaXJzdCBvcGVuIG9wZXJhdGlvbiBhZnRlciBh
IGRlbGV0ZSkgcmVxdWlyZSBtdWx0aXBsZSBwYXNzZXMgdG8gY29tcGxldGVseSBoYW5kbGUKLSAg
ICAgICAgaWYgKG1fY3VycmVudE9wZXJhdGlvbikKKyAgICAgICAgaWYgKG1fY3VycmVudE9wZW5E
QlJlcXVlc3QpCiAgICAgICAgICAgICBoYW5kbGVDdXJyZW50T3BlcmF0aW9uKCk7CiAKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnMu
aXNFbXB0eSgpKQorICAgIGlmIChtX3BlbmRpbmdPcGVuREJSZXF1ZXN0cy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIG1fY3VycmVudE9wZXJhdGlvbiA9IG1fcGVuZGluZ0RhdGFi
YXNlT3BlcmF0aW9ucy50YWtlRmlyc3QoKTsKLSAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURC
RGF0YWJhc2U6OmhhbmRsZURhdGFiYXNlT3BlcmF0aW9ucyAtIFBvcHBlZCBhbiBvcGVyYXRpb24s
IG5vdyB0aGVyZSBhcmUgJXp1IHBlbmRpbmciLCBtX3BlbmRpbmdEYXRhYmFzZU9wZXJhdGlvbnMu
c2l6ZSgpKTsKKyAgICBtX2N1cnJlbnRPcGVuREJSZXF1ZXN0ID0gbV9wZW5kaW5nT3BlbkRCUmVx
dWVzdHMudGFrZUZpcnN0KCk7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNl
OjpoYW5kbGVEYXRhYmFzZU9wZXJhdGlvbnMgLSBQb3BwZWQgYW4gb3BlcmF0aW9uLCBub3cgdGhl
cmUgYXJlICV6dSBwZW5kaW5nIiwgbV9wZW5kaW5nT3BlbkRCUmVxdWVzdHMuc2l6ZSgpKTsKIAog
ICAgIGhhbmRsZUN1cnJlbnRPcGVyYXRpb24oKTsKIH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6aGFuZGxlQ3VycmVudE9wZXJhdGlvbigpCiB7Ci0gICAgQVNTRVJUKG1fY3VycmVudE9wZXJh
dGlvbik7CisgICAgQVNTRVJUKG1fY3VycmVudE9wZW5EQlJlcXVlc3QpOwogCiAgICAgUmVmUHRy
PFVuaXF1ZUlEQkRhdGFiYXNlPiBwcm90ZWN0b3IodGhpcyk7CiAKLSAgICBpZiAobV9jdXJyZW50
T3BlcmF0aW9uLT5pc09wZW5SZXF1ZXN0KCkpCisgICAgaWYgKG1fY3VycmVudE9wZW5EQlJlcXVl
c3QtPmlzT3BlblJlcXVlc3QoKSkKICAgICAgICAgcGVyZm9ybUN1cnJlbnRPcGVuT3BlcmF0aW9u
KCk7Ci0gICAgZWxzZSBpZiAobV9jdXJyZW50T3BlcmF0aW9uLT5pc0RlbGV0ZVJlcXVlc3QoKSkK
KyAgICBlbHNlIGlmIChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0LT5pc0RlbGV0ZVJlcXVlc3QoKSkK
ICAgICAgICAgcGVyZm9ybUN1cnJlbnREZWxldGVPcGVyYXRpb24oKTsKICAgICBlbHNlCiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCi0gICAgaWYgKCFtX2N1cnJlbnRPcGVyYXRpb24p
CisgICAgaWYgKCFtX2N1cnJlbnRPcGVuREJSZXF1ZXN0KQogICAgICAgICBpbnZva2VPcGVyYXRp
b25BbmRUcmFuc2FjdGlvblRpbWVyKCk7CiB9CiAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVEZWxldGUoSURCQ29ubmVjdGlvblRvQ2xpZW50JiBjb25u
ZWN0aW9uLCBjb25zdCBJRAogewogICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURC
RGF0YWJhc2U6OmhhbmRsZURlbGV0ZSIpOwogCi0gICAgbV9wZW5kaW5nRGF0YWJhc2VPcGVyYXRp
b25zLmFwcGVuZChJREJTZXJ2ZXJPcGVyYXRpb246OmNyZWF0ZShjb25uZWN0aW9uLCByZXF1ZXN0
RGF0YSkpOworICAgIG1fcGVuZGluZ09wZW5EQlJlcXVlc3RzLmFwcGVuZChTZXJ2ZXJPcGVuREJS
ZXF1ZXN0OjpjcmVhdGUoY29ubmVjdGlvbiwgcmVxdWVzdERhdGEpKTsKICAgICBoYW5kbGVEYXRh
YmFzZU9wZXJhdGlvbnMoKTsKIH0KIApAQCAtMzAxLDExICszMDEsMTEgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6c3RhcnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oKQogICAgIExPRyhJbmRl
eGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uIik7CiAKICAgICBBU1NFUlQoIW1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKTsKLSAg
ICBBU1NFUlQobV9jdXJyZW50T3BlcmF0aW9uKTsKLSAgICBBU1NFUlQobV9jdXJyZW50T3BlcmF0
aW9uLT5pc09wZW5SZXF1ZXN0KCkpOworICAgIEFTU0VSVChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0
KTsKKyAgICBBU1NFUlQobV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+aXNPcGVuUmVxdWVzdCgpKTsK
ICAgICBBU1NFUlQobV92ZXJzaW9uQ2hhbmdlRGF0YWJhc2VDb25uZWN0aW9uKTsKIAotICAgIGF1
dG8gb3BlcmF0aW9uID0gV1RGOjptb3ZlKG1fY3VycmVudE9wZXJhdGlvbik7CisgICAgYXV0byBv
cGVyYXRpb24gPSBXVEY6Om1vdmUobV9jdXJyZW50T3BlbkRCUmVxdWVzdCk7CiAKICAgICB1aW50
NjRfdCByZXF1ZXN0ZWRWZXJzaW9uID0gb3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3Rl
ZFZlcnNpb24oKTsKICAgICBpZiAoIXJlcXVlc3RlZFZlcnNpb24pCkBAIC0zMzEsMTEgKzMzMSwx
MSBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpiZWdpblRyYW5zYWN0aW9uSW5CYWNraW5nU3Rv
cmUoY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJgogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpu
b3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5nZUZvclVwZ3JhZGUoKQogewotICAgIEFTU0VS
VChtX2N1cnJlbnRPcGVyYXRpb24pOwotICAgIEFTU0VSVChtX2N1cnJlbnRPcGVyYXRpb24tPmlz
T3BlblJlcXVlc3QoKSk7CisgICAgQVNTRVJUKG1fY3VycmVudE9wZW5EQlJlcXVlc3QpOworICAg
IEFTU0VSVChtX2N1cnJlbnRPcGVuREJSZXF1ZXN0LT5pc09wZW5SZXF1ZXN0KCkpOwogICAgIEFT
U0VSVChtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24pOwogCi0gICAgbm90aWZ5Q29u
bmVjdGlvbnNPZlZlcnNpb25DaGFuZ2UobV9jdXJyZW50T3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgp
LnJlcXVlc3RlZFZlcnNpb24oKSk7CisgICAgbm90aWZ5Q29ubmVjdGlvbnNPZlZlcnNpb25DaGFu
Z2UobV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+cmVxdWVzdERhdGEoKS5yZXF1ZXN0ZWRWZXJzaW9u
KCkpOwogfQogCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlDb25uZWN0aW9uc09mVmVy
c2lvbkNoYW5nZSh1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKQpAQCAtOTg0LDEwICs5ODQsMTAg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlcmF0aW9uQW5kVHJhbnNhY3Rpb25UaW1lckZp
cmVkKCkKIAogICAgIC8vIFRoZSBjdXJyZW50IG9wZXJhdGlvbiBtaWdodCByZXF1aXJlIG11bHRp
cGxlIGF0dGVtcHRzIHRvIGhhbmRsZSwgc28gdHJ5IHRvCiAgICAgLy8gbWFrZSBmdXJ0aGVyIHBy
b2dyZXNzIG9uIGl0IG5vdy4KLSAgICBpZiAobV9jdXJyZW50T3BlcmF0aW9uKQorICAgIGlmICht
X2N1cnJlbnRPcGVuREJSZXF1ZXN0KQogICAgICAgICBoYW5kbGVDdXJyZW50T3BlcmF0aW9uKCk7
CiAKLSAgICBpZiAoIW1fY3VycmVudE9wZXJhdGlvbikKKyAgICBpZiAoIW1fY3VycmVudE9wZW5E
QlJlcXVlc3QpCiAgICAgICAgIGhhbmRsZURhdGFiYXNlT3BlcmF0aW9ucygpOwogCiAgICAgYm9v
bCBoYWREZWZlcnJlZFRyYW5zYWN0aW9ucyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApp
bmRleCAxMjY4MWRlLi40ZjVhMjRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApAQCAtMzMsNyAr
MzMsNyBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklE
QkRhdGFiYXNlSW5mby5oIgogI2luY2x1ZGUgIklEQkdldFJlc3VsdC5oIgotI2luY2x1ZGUgIklE
QlNlcnZlck9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIlNlcnZlck9wZW5EQlJlcXVlc3QuaCIKICNp
bmNsdWRlICJUaHJlYWRTYWZlRGF0YUJ1ZmZlci5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5j
bHVkZSAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmgiCkBAIC0xNzcsOCArMTc3LDggQEAg
cHJpdmF0ZToKICAgICBJREJTZXJ2ZXImIG1fc2VydmVyOwogICAgIElEQkRhdGFiYXNlSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CiAgICAgCi0gICAgRGVxdWU8UmVmPElEQlNlcnZlck9wZXJhdGlv
bj4+IG1fcGVuZGluZ0RhdGFiYXNlT3BlcmF0aW9uczsKLSAgICBSZWZQdHI8SURCU2VydmVyT3Bl
cmF0aW9uPiBtX2N1cnJlbnRPcGVyYXRpb247CisgICAgRGVxdWU8UmVmPFNlcnZlck9wZW5EQlJl
cXVlc3Q+PiBtX3BlbmRpbmdPcGVuREJSZXF1ZXN0czsKKyAgICBSZWZQdHI8U2VydmVyT3BlbkRC
UmVxdWVzdD4gbV9jdXJyZW50T3BlbkRCUmVxdWVzdDsKIAogICAgIEhhc2hTZXQ8UmVmUHRyPFVu
aXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbj4+IG1fb3BlbkRhdGFiYXNlQ29ubmVjdGlvbnM7CiAg
ICAgSGFzaFNldDxSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uPj4gbV9jbG9zZVBl
bmRpbmdEYXRhYmFzZUNvbm5lY3Rpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRhMjZiZjkuLjRiMmJhZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIw
MzIsNiArMjAzMiw4IEBACiAJCTUxNkQ3RDcwMUJCNUYwQkQwMEFGN0M3NyAvKiBJREJDb25uZWN0
aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTE4NUZDQkQxQkI1Q0I3NzAwMTI4OThGIC8qIElEQkNvbm5lY3Rpb25Ub1Nl
cnZlckRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTE2RDdENzExQkI1RjBCRDAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTZE
N0Q2RDFCQjVGMDY1MDBBRjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCAqLzsgfTsK
IAkJNTE2RDdENzIxQkI1RjBCRDAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVn
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTZE
N0Q2RTFCQjVGMDY1MDBBRjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MTZGN0Y2
RDFDMzFFMzlBMDBGMTExREMgLyogU2VydmVyT3BlbkRCUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2RjdGNkMxQzMxQzc5RDAwRjExMURD
IC8qIFNlcnZlck9wZW5EQlJlcXVlc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk1MTZGN0Y2RTFDMzFFMzlDMDBGMTExREMgLyogU2VydmVyT3Bl
bkRCUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MTZGN0Y2QjFDMzFDNzlEMDBGMTExREMgLyogU2VydmVyT3BlbkRCUmVxdWVzdC5jcHAg
Ki87IH07CiAJCTUxNzEzOEVGMUJFRDFEMUEwMDBENUYwMSAvKiBJbmRleEtleS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTcxMzhFRDFCRUQxRDE3
MDAwRDVGMDEgLyogSW5kZXhLZXkuY3BwICovOyB9OwogCQk1MTcxMzhGMDFCRUQxRDFBMDAwRDVG
MDEgLyogSW5kZXhLZXkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUxNzEzOEVFMUJFRDFEMTcwMDBENUYwMSAvKiBJbmRleEtleS5oICovOyB9OwogCQk1
MTcxMzhGNzFCRjEyOEJCMDAwRDVGMDEgLyogSW5kZXhWYWx1ZVN0b3JlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNzEzOEY1MUJGMTIyNjIwMDBE
NUYwMSAvKiBJbmRleFZhbHVlU3RvcmUuY3BwICovOyB9OwpAQCAtMjExNiw4ICsyMTE4LDYgQEAK
IAkJNTE4NUZDQkIxQkI0Q0JGODAwMTI4OThGIC8qIElEQlNlcnZlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwQTU4RjAxQkFCNzIwRjAwQzE5Mjgy
IC8qIElEQlNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTUxODg2NEUwMUJCQUY1NzEwMEU1NDBDOSAvKiBVbmlxdWVJREJEYXRhYmFzZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg4NjRE
RTFCQkFGMzBGMDBFNTQwQzkgLyogVW5pcXVlSURCRGF0YWJhc2UuY3BwICovOyB9OwogCQk1MTg4
NjRFMTFCQkFGNTc0MDBFNTQwQzkgLyogVW5pcXVlSURCRGF0YWJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODg2NERGMUJCQUYzMEYwMEU1NDBD
OSAvKiBVbmlxdWVJREJEYXRhYmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCTUxODg2NEU2MUJCQjRCODMwMEU1NDBDOSAvKiBJREJTZXJ2ZXJP
cGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTE4ODY0RTQxQkJCNEI3RTAwRTU0MEM5IC8qIElEQlNlcnZlck9wZXJhdGlvbi5jcHAgKi87
IH07Ci0JCTUxODg2NEU3MUJCQjRCODMwMEU1NDBDOSAvKiBJREJTZXJ2ZXJPcGVyYXRpb24uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODg2NEU1MUJC
QjRCN0UwMEU1NDBDOSAvKiBJREJTZXJ2ZXJPcGVyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTg5RjAxRDEwQjM3QkQ5MDBGM0M3Mzkg
LyogSlNQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxODlGMDFCMTBCMzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQu
Y3BwICovOyB9OwogCQk1MTg5RjAxRTEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTg5RjAx
QzEwQjM3QkQ5MDBGM0M3MzkgLyogSlNQb3BTdGF0ZUV2ZW50LmggKi87IH07CiAJCTUxODlGMERF
MTBCNDZCMEUwMEYzQzczOSAvKiBQb3BTdGF0ZUV2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxODlGMEREMTBCNDZCMEUwMEYzQzczOSAvKiBQ
b3BTdGF0ZUV2ZW50LmNwcCAqLzsgfTsKQEAgLTk0ODUsNiArOTQ4NSw4IEBACiAJCTUxNkM2MjI0
MTk1MEUyQjkwMDMzN0U3NSAvKiBKU0dhbWVwYWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU0dhbWVwYWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTZEN0Q2RDFCQjVGMDY1MDBBRjdDNzcgLyogSURCQ29ubmVjdGlvblRvQ2xpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQkNvbm5lY3Rpb25Ub0Ns
aWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNkQ3RDZFMUJCNUYwNjUw
MEFGN0M3NyAvKiBJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MTZGN0Y2QjFDMzFDNzlEMDBGMTExREMgLyogU2Vy
dmVyT3BlbkRCUmVxdWVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTE2RjdGNkMxQzMxQzc5RDAwRjExMURDIC8qIFNlcnZlck9wZW5EQlJlcXVlc3QuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmVyT3BlbkRCUmVxdWVzdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTcxMzhFRDFCRUQxRDE3MDAwRDVGMDEgLyogSW5kZXhL
ZXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5kZXhLZXkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTcxMzhFRTFCRUQxRDE3MDAwRDVGMDEg
LyogSW5kZXhLZXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5kZXhLZXku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3MTM4RjUxQkYxMjI2MjAwMEQ1RjAx
IC8qIEluZGV4VmFsdWVTdG9yZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJbmRleFZhbHVlU3RvcmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
OTUxOCw4ICs5NTIwLDYgQEAKIAkJNTE4NUZDQkQxQkI1Q0I3NzAwMTI4OThGIC8qIElEQkNvbm5l
Y3Rpb25Ub1NlcnZlckRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IElEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxODg2NERFMUJCQUYzMEYwMEU1NDBDOSAvKiBVbmlxdWVJREJEYXRhYmFzZS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlxdWVJREJEYXRhYmFzZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODg2NERGMUJCQUYzMEYwMEU1NDBD
OSAvKiBVbmlxdWVJREJEYXRhYmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBVbmlxdWVJREJEYXRhYmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MTg4
NjRFNDFCQkI0QjdFMDBFNTQwQzkgLyogSURCU2VydmVyT3BlcmF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcnZlck9wZXJhdGlvbi5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUxODg2NEU1MUJCQjRCN0UwMEU1NDBDOSAvKiBJREJT
ZXJ2ZXJPcGVyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCU2Vy
dmVyT3BlcmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxODlGMDFCMTBC
MzdCRDkwMEYzQzczOSAvKiBKU1BvcFN0YXRlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNQb3BTdGF0ZUV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTE4OUYwMUMxMEIzN0JEOTAwRjNDNzM5IC8qIEpTUG9wU3RhdGVFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1BvcFN0YXRlRXZlbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE4OUYwREQxMEI0NkIwRTAwRjNDNzM5IC8qIFBv
cFN0YXRlRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUG9w
U3RhdGVFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjkxMiw4ICsx
NjkxMiw2IEBACiAJCQkJNTE2RDdENkUxQkI1RjA2NTAwQUY3Qzc3IC8qIElEQkNvbm5lY3Rpb25U
b0NsaWVudERlbGVnYXRlLmggKi8sCiAJCQkJNTEwQTU4RUYxQkFCNzIwRjAwQzE5MjgyIC8qIElE
QlNlcnZlci5jcHAgKi8sCiAJCQkJNTEwQTU4RjAxQkFCNzIwRjAwQzE5MjgyIC8qIElEQlNlcnZl
ci5oICovLAotCQkJCTUxODg2NEU0MUJCQjRCN0UwMEU1NDBDOSAvKiBJREJTZXJ2ZXJPcGVyYXRp
b24uY3BwICovLAotCQkJCTUxODg2NEU1MUJCQjRCN0UwMEU1NDBDOSAvKiBJREJTZXJ2ZXJPcGVy
YXRpb24uaCAqLywKIAkJCQk1MUVFQUE3MTFCRUZGQTc5MDAyMTgwMDggLyogSW5kZXhWYWx1ZUVu
dHJ5LmNwcCAqLywKIAkJCQk1MUVFQUE3MjFCRUZGQTc5MDAyMTgwMDggLyogSW5kZXhWYWx1ZUVu
dHJ5LmggKi8sCiAJCQkJNTE3MTM4RjUxQkYxMjI2MjAwMEQ1RjAxIC8qIEluZGV4VmFsdWVTdG9y
ZS5jcHAgKi8sCkBAIC0xNjkzMiw2ICsxNjkzMCw4IEBACiAJCQkJNTE3NzFERkQxQkRCNDc1NjAw
Q0FFOEU0IC8qIE1lbW9yeU9iamVjdFN0b3JlLmggKi8sCiAJCQkJNTE3MTM5MDMxQkY2NERFMzAw
MEQ1RjAxIC8qIE1lbW9yeU9iamVjdFN0b3JlQ3Vyc29yLmNwcCAqLywKIAkJCQk1MTcxMzkwNDFC
RjY0REUzMDAwRDVGMDEgLyogTWVtb3J5T2JqZWN0U3RvcmVDdXJzb3IuaCAqLywKKwkJCQk1MTZG
N0Y2QjFDMzFDNzlEMDBGMTExREMgLyogU2VydmVyT3BlbkRCUmVxdWVzdC5jcHAgKi8sCisJCQkJ
NTE2RjdGNkMxQzMxQzc5RDAwRjExMURDIC8qIFNlcnZlck9wZW5EQlJlcXVlc3QuaCAqLywKIAkJ
CQk1MTg4NjRERTFCQkFGMzBGMDBFNTQwQzkgLyogVW5pcXVlSURCRGF0YWJhc2UuY3BwICovLAog
CQkJCTUxODg2NERGMUJCQUYzMEYwMEU1NDBDOSAvKiBVbmlxdWVJREJEYXRhYmFzZS5oICovLAog
CQkJCTUxOThGN0EyMUJCREFBMjkwMEUyQ0M1RiAvKiBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rp
b24uY3BwICovLApAQCAtMjUyMzMsNiArMjUyMzMsNyBAQAogCQkJCTg1RTcxMUFFMEFDNUQ1MzUw
MDUzMjcwRiAvKiBET01IVE1MSGVhZGluZ0VsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODVFQ0JFRjEwQUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxIUkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1RTcxMUFGMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1MSFJFbGVt
ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCTUxNkY3RjZEMUMzMUUzOUEwMEYxMTFE
QyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTk5MkVCQzBB
QTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk4NUU3MTFCMDBBQzVENTM1MDA1MzI3MEYgLyogRE9NSFRNTEh0bWxFbGVtZW50SW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1REY4MTk5MEFBNzdFNEIwMDQ4NkFENyAvKiBET01IVE1M
SUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTg2MCw3ICsyNTg2MSw2IEBACiAJ
CQkJNTE4NUZDQkIxQkI0Q0JGODAwMTI4OThGIC8qIElEQlNlcnZlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE4NUZDQUIxQkI0QzRFODAwMTI4OThGIC8qIElEQlNlcnZlckNvbm5lY3Rpb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTUxNzEzOTA4MUJGNjRERUYwMDBENUYwMSAvKiBNZW1vcnlDdXJz
b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxODg2NEU3MUJCQjRCODMwMEU1NDBDOSAvKiBJREJT
ZXJ2ZXJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxODVGQ0FEMUJCNEM0RTgwMDEy
ODk4RiAvKiBJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGNDFBNzQxQkE3
M0I1QjAwMkUwNTNCIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNTFGNDFBNzYxQkE3M0I1QjAwMkUwNTNCIC8qIElEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJh
dGlvbnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjk0NzQsNyArMjk0NzQsNiBAQAogCQkJCTUxNDVC
MTA5MUJDNDhFMkUwMEU4NjIxOSAvKiBJREJSZXNvdXJjZUlkZW50aWZpZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTFENzIzNkMxQkI2MTc0OTAwNDc4Q0EzIC8qIElEQlJlc3VsdERhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTE4NUZDQkExQkI0Q0JGODAwMTI4OThGIC8qIElEQlNlcnZl
ci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk1MTg4NjRFNjFCQkI0QjgzMDBFNTQwQzkgLyogSURC
U2VydmVyT3BlcmF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxODVGQ0FDMUJCNEM0RTgw
MDEyODk4RiAvKiBJREJUcmFuc2FjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUY0MUE3
MzFCQTczQjVCMDAyRTA1M0IgLyogSURCVHJhbnNhY3Rpb25CYWNrZW5kLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxRjQxQTc1MUJBNzNCNUIwMDJFMDUzQiAvKiBJREJUcmFuc2FjdGlvbkJhY2tl
bmRPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzA0MDYsNiArMzA0MDUsNyBAQAog
CQkJCUNEM0E0OTVFMTdBOUQwMUIwMDI3NEU0MiAvKiBNZWRpYVNvdXJjZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlDREM4QjVBNjE4MDQ3NEY3MDAxNkU2ODUgLyogTWVkaWFTb3VyY2VQcml2YXRl
QVZGT2JqQy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUNENjFGRTY3MTc5NEFBREIwMDQxMDFFQiAv
KiBNZWRpYVNvdXJjZVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxNkY3RjZFMUMz
MUUzOUMwMEYxMTFEQyAvKiBTZXJ2ZXJPcGVuREJSZXF1ZXN0LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTA3QzU5QjY4MTdGNzg0QkEwMDBGQkNCQiAvKiBNZWRpYVNvdXJjZVNldHRpbmdzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA3OEUwOEZGMTdEMTRDRUUwMDQyMEFBMSAvKiBNZWRpYVN0cmVh
bS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNzhFMDk0QjE3RDE3MDk2MDA0MjBBQTEgLyogTWVk
aWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>