<?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>154351</bug_id>
          
          <creation_ts>2016-02-17 12:23:23 -0800</creation_ts>
          <short_desc>Modern IDB: Encoder/Decoder/Messaging scaffolding for WK2 IPC</short_desc>
          <delta_ts>2016-02-17 12:42:57 -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>Safari 9</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>
    
    <blocked>153808</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1165671</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 12:23:23 -0800</bug_when>
    <thetext>Modern IDB: Encoder/Decoder/Messaging scaffolding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165673</commentid>
    <comment_count>1</comment_count>
      <attachid>271578</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 12:26:01 -0800</bug_when>
    <thetext>Created attachment 271578
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165680</commentid>
    <comment_count>2</comment_count>
      <attachid>271578</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-02-17 12:38:23 -0800</bug_when>
    <thetext>Comment on attachment 271578
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=271578&amp;action=review

&gt; Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h:143
&gt; +        request.m_requestIdentifier = std::make_unique&lt;IDBResourceIdentifier&gt;(identifier);

There ought to be a better way to do this without requiring the use of the copy constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165681</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 12:39:37 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 271578 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271578&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h:143
&gt; &gt; +        request.m_requestIdentifier = std::make_unique&lt;IDBResourceIdentifier&gt;(identifier);
&gt; 
&gt; There ought to be a better way to do this without requiring the use of the
&gt; copy constructor.

As discussed in person, but here for the record: YES PLEASE... MessageEncoder and MessageDecoder should have built-in ways for encoding/decoding &quot;optionally null objects on the heap&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165684</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-02-17 12:39:56 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Comment on attachment 271578 [details]
&gt; &gt; Patch v1
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=271578&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/Modules/indexeddb/shared/IDBRequestData.h:143
&gt; &gt; &gt; +        request.m_requestIdentifier = std::make_unique&lt;IDBResourceIdentifier&gt;(identifier);
&gt; &gt; 
&gt; &gt; There ought to be a better way to do this without requiring the use of the
&gt; &gt; copy constructor.
&gt; 
&gt; As discussed in person, but here for the record: YES PLEASE...
&gt; MessageEncoder and MessageDecoder should have built-in ways for
&gt; encoding/decoding &quot;optionally null objects on the heap&quot;

But, outside the scope of this patch to add that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165687</commentid>
    <comment_count>5</comment_count>
      <attachid>271578</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-17 12:42:53 -0800</bug_when>
    <thetext>Comment on attachment 271578
Patch v1

Clearing flags on attachment: 271578

Committed r196715: &lt;http://trac.webkit.org/changeset/196715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165688</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-17 12:42:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271578</attachid>
            <date>2016-02-17 12:26:01 -0800</date>
            <delta_ts>2016-02-17 12:42:53 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>21256</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MjhhZjQ5Li4wMWE4OGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAg
QEAKKzIwMTYtMDItMTcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vZGVybiBJREI6IEVuY29kZXIvRGVjb2Rlci9NZXNzYWdpbmcgc2NhZmZvbGRpbmcgZm9y
IFdLMiBJUEMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNTQzNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBjaGFuZ2UgaW4gYmVoYXZpb3IgeWV0OyBKdXN0IGxheWluZyB0aGUgZ3JvdW5kd29yay4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oOgor
ICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjplbmNvZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlmaWVyOjpkZWNvZGUpOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ3Vyc29ySW5mbzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkN1cnNvckluZm86OmRlY29kZSk6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJJbmRleEluZm8uaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4SW5m
bzo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4SW5mbzo6ZGVjb2RlKToKKyAg
ICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3Jl
SW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVJbmZvOjplbmNvZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVJbmZvOjpkZWNvZGUpOgorICAgICAgICAK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVxdWVzdERhdGEuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlJlcXVlc3REYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCUmVxdWVzdERhdGE6OmRlY29kZSk6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlJlc291cmNlSWRlbnRpZmllcjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlJlc291cmNlSWRlbnRpZmllcjo6ZGVjb2RlKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViQ29y
ZTo6SURCVHJhbnNhY3Rpb25JbmZvOjplbmNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25JbmZvOjpkZWNvZGUpOgorCiAyMDE2LTAyLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMTk2NjQ4KTogd2luZG93LnNob3dN
b2RhbERpYWxvZyBpcyBubyBsb25nZXIgdW5kZWZpbmVkIGlmIHRoZSBjbGllbnQgZG9lcyBub3Qg
YWxsb3cgc2hvd2luZyBtb2RhbCBkaWFsb2cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKaW5kZXggOGNmZjI4My4u
ZjllZjAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKQEAgLTk0LDYgKzk0LDkgQEAgcHVibGljOgogCiAg
ICAgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiBy
b290RGlyZWN0b3J5KSBjb25zdDsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQkRhdGFiYXNlSWRlbnRpZmllciYpOworCiAjaWZu
ZGVmIE5ERUJVRwogICAgIFN0cmluZyBkZWJ1Z1N0cmluZygpIGNvbnN0OwogI2VuZGlmCkBAIC0x
MTYsNiArMTE5LDI3IEBAIHN0cnVjdCBJREJEYXRhYmFzZUlkZW50aWZpZXJIYXNoVHJhaXRzIDog
V1RGOjpTaW1wbGVDbGFzc0hhc2hUcmFpdHM8SURCRGF0YWJhc2VJCiAgICAgc3RhdGljIGJvb2wg
aXNFbXB0eVZhbHVlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgaW5mbykgeyByZXR1cm4g
aW5mby5pc0VtcHR5KCk7IH0KIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIElE
QkRhdGFiYXNlSWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBtX2RhdGFiYXNlTmFtZSA8PCBtX29wZW5pbmdPcmlnaW4gPDwgbV9tYWlu
RnJhbWVPcmlnaW47Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIElEQkRhdGFi
YXNlSWRlbnRpZmllcjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkRhdGFiYXNlSWRlbnRp
ZmllciYgaWRlbnRpZmllcikKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlkZW50aWZpZXIu
bV9kYXRhYmFzZU5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGlkZW50aWZpZXIubV9vcGVuaW5nT3JpZ2luKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpZGVudGlmaWVyLm1fbWFpbkZyYW1lT3Jp
Z2luKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uaAppbmRl
eCBkMWE0OTE5Li45YTFjZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JJbmZvLmgKQEAgLTgxLDggKzgxLDggQEAgcHJp
dmF0ZToKIAogICAgIElEQlJlc291cmNlSWRlbnRpZmllciBtX2N1cnNvcklkZW50aWZpZXI7CiAg
ICAgSURCUmVzb3VyY2VJZGVudGlmaWVyIG1fdHJhbnNhY3Rpb25JZGVudGlmaWVyOwotICAgIHVp
bnQ2NF90IG1fb2JqZWN0U3RvcmVJZGVudGlmaWVyOwotICAgIHVpbnQ2NF90IG1fc291cmNlSWRl
bnRpZmllcjsKKyAgICB1aW50NjRfdCBtX29iamVjdFN0b3JlSWRlbnRpZmllciB7IDAgfTsKKyAg
ICB1aW50NjRfdCBtX3NvdXJjZUlkZW50aWZpZXIgeyAwIH07CiAKICAgICBJREJLZXlSYW5nZURh
dGEgbV9yYW5nZTsKIApAQCAtOTEsOSArOTEsNDQgQEAgcHJpdmF0ZToKICAgICBJbmRleGVkREI6
OkN1cnNvclR5cGUgbV90eXBlOwogfTsKIAotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gYm9vbCBJ
REJDdXJzb3JJbmZvOjpkZWNvZGUoRGVjb2RlciYsIElEQkN1cnNvckluZm8mKQordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCQ3Vyc29ySW5mbzo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGVuY29kZXIgPDwgbV9jdXJzb3JJ
ZGVudGlmaWVyIDw8IG1fdHJhbnNhY3Rpb25JZGVudGlmaWVyIDw8IG1fb2JqZWN0U3RvcmVJZGVu
dGlmaWVyIDw8IG1fc291cmNlSWRlbnRpZmllciA8PCBtX3JhbmdlOworCisgICAgZW5jb2Rlci5l
bmNvZGVFbnVtKG1fc291cmNlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obV9kaXJlY3Rpb24p
OworICAgIGVuY29kZXIuZW5jb2RlRW51bShtX3R5cGUpOworfQorCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorYm9vbCBJREJDdXJzb3JJbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURC
Q3Vyc29ySW5mbyYgaW5mbykKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9jdXJz
b3JJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShpbmZvLm1fdHJhbnNhY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1fb2JqZWN0U3RvcmVJZGVudGlm
aWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShp
bmZvLm1fc291cmNlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX3JhbmdlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oaW5mby5tX3NvdXJjZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKGluZm8ubV9kaXJlY3Rp
b24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51
bShpbmZvLm1fdHlwZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVl
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmgKaW5kZXggZjJhM2JhMi4u
ZDM5ZDJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkluZGV4SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJJbmRleEluZm8uaApAQCAtNjMsOSArNjMsMzQgQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fbXVsdGlFbnRyeSB7IGZhbHNlIH07CiB9OwogCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBib29sIElEQkluZGV4SW5mbzo6ZGVjb2RlKERlY29kZXImLCBJREJJbmRleEluZm8mKQordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCSW5kZXhJbmZvOjplbmNvZGUoRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgZW5jb2RlciA8PCBtX2lk
ZW50aWZpZXIgPDwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIgPDwgbV9uYW1lIDw8IG1fa2V5UGF0
aCA8PCBtX3VuaXF1ZSA8PCBtX211bHRpRW50cnk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29k
ZXI+Citib29sIElEQkluZGV4SW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkluZGV4
SW5mbyYgaW5mbykKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9pZGVudGlmaWVy
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZv
Lm1fb2JqZWN0U3RvcmVJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1fbmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX2tleVBhdGgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV91bmlxdWUpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9tdWx0
aUVudHJ5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uaAppbmRleCAyNjcw
OWEzLi44ZWZjNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5oCkBAIC04MCw5ICs4MCwzNCBA
QCBwcml2YXRlOgogCiB9OwogCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBib29sIElEQk9iamVj
dFN0b3JlSW5mbzo6ZGVjb2RlKERlY29kZXImLCBJREJPYmplY3RTdG9yZUluZm8mKQordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCT2JqZWN0U3RvcmVJbmZvOjplbmNvZGUoRW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgZW5jb2RlciA8PCBt
X2lkZW50aWZpZXIgPDwgbV9uYW1lIDw8IG1fa2V5UGF0aCA8PCBtX2F1dG9JbmNyZW1lbnQgPDwg
bV9tYXhJbmRleElEIDw8IG1faW5kZXhNYXA7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+
Citib29sIElEQk9iamVjdFN0b3JlSW5mbzo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQk9i
amVjdFN0b3JlSW5mbyYgaW5mbykKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9p
ZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShpbmZvLm1fbmFtZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoaW5mby5tX2tleVBhdGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGluZm8ubV9hdXRvSW5jcmVtZW50KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpbmZvLm1fbWF4SW5kZXhJRCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5t
X2luZGV4TWFwKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlcXVlc3REYXRhLmgKaW5kZXggNmY0OTYyYi4u
MTg4OTc3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlcXVlc3REYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQlJlcXVlc3REYXRhLmgKQEAgLTg3LDkgKzg3LDgxIEBAIHByaXZhdGU6CiAg
ICAgSW5kZXhlZERCOjpSZXF1ZXN0VHlwZSBtX3JlcXVlc3RUeXBlIHsgSW5kZXhlZERCOjpSZXF1
ZXN0VHlwZTo6T3RoZXIgfTsKIH07CiAKLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+IGJvb2wgSURC
UmVxdWVzdERhdGE6OmRlY29kZShEZWNvZGVyJiwgSURCUmVxdWVzdERhdGEmKQordGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCUmVxdWVzdERhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogewotICAgIHJldHVybiBmYWxzZTsKKyAgICBlbmNvZGVyIDw8IG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIgPDwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIgPDwgbV9pbmRl
eElkZW50aWZpZXIgPDwgbV9kYXRhYmFzZUlkZW50aWZpZXIgPDwgbV9yZXF1ZXN0ZWRWZXJzaW9u
OworCisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1faW5kZXhSZWNvcmRUeXBlKTsKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0obV9yZXF1ZXN0VHlwZSk7CisKKyAgICBlbmNvZGVyIDw8ICEhbV9yZXF1
ZXN0SWRlbnRpZmllcjsKKyAgICBpZiAobV9yZXF1ZXN0SWRlbnRpZmllcikKKyAgICAgICAgZW5j
b2RlciA8PCAqbV9yZXF1ZXN0SWRlbnRpZmllcjsKKworICAgIGVuY29kZXIgPDwgISFtX3RyYW5z
YWN0aW9uSWRlbnRpZmllcjsKKyAgICBpZiAobV90cmFuc2FjdGlvbklkZW50aWZpZXIpCisgICAg
ICAgIGVuY29kZXIgPDwgKm1fdHJhbnNhY3Rpb25JZGVudGlmaWVyOworCisgICAgZW5jb2RlciA8
PCAhIW1fY3Vyc29ySWRlbnRpZmllcjsKKyAgICBpZiAobV9jdXJzb3JJZGVudGlmaWVyKQorICAg
ICAgICBlbmNvZGVyIDw8ICptX2N1cnNvcklkZW50aWZpZXI7Cit9CisKK3RlbXBsYXRlPGNsYXNz
IERlY29kZXI+Citib29sIElEQlJlcXVlc3REYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2Rlciwg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3QpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXF1
ZXN0Lm1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QubV9vYmplY3RTdG9yZUlkZW50aWZp
ZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
cXVlc3QubV9pbmRleElkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QubV9kYXRhYmFzZUlkZW50aWZpZXIpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlcXVlc3QubV9yZXF1
ZXN0ZWRWZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0ocmVxdWVzdC5tX2luZGV4UmVjb3JkVHlwZSkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlcXVlc3QubV9yZXF1ZXN0VHlw
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGJvb2wgaGFzT2JqZWN0OworCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZShoYXNPYmplY3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKGhhc09iamVjdCkgeworICAgICAgICBJREJSZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShpZGVudGlmaWVyKSkKKyAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVxdWVzdC5tX3JlcXVlc3RJZGVudGlmaWVyID0g
c3RkOjptYWtlX3VuaXF1ZTxJREJSZXNvdXJjZUlkZW50aWZpZXI+KGlkZW50aWZpZXIpOworICAg
IH0KKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzT2JqZWN0KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGlmIChoYXNPYmplY3QpIHsKKyAgICAgICAgSURCUmVzb3VyY2VJZGVudGlm
aWVyIGlkZW50aWZpZXI7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaWRlbnRpZmllcikp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJlcXVlc3QubV90cmFuc2FjdGlv
bklkZW50aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQlJlc291cmNlSWRlbnRpZmllcj4oaWRl
bnRpZmllcik7CisgICAgfQorCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNPYmplY3QpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGhhc09iamVjdCkgeworICAgICAgICBJREJS
ZXNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcjsKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmVxdWVz
dC5tX2N1cnNvcklkZW50aWZpZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPElEQlJlc291cmNlSWRlbnRp
Zmllcj4oaWRlbnRpZmllcik7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuaAppbmRleCAyNzhi
ZmYyLi40MTQxMzQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5oCkBAIC0xMTgsOSAr
MTE4LDIyIEBAIHN0cnVjdCBJREJSZXNvdXJjZUlkZW50aWZpZXJIYXNoVHJhaXRzIDogV1RGOjpD
dXN0b21IYXNoVHJhaXRzPElEQlJlc291cmNlSWRlbnRpCiAgICAgfQogfTsKIAotdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gYm9vbCBJREJSZXNvdXJjZUlkZW50aWZpZXI6OmRlY29kZShEZWNvZGVy
JiwgSURCUmVzb3VyY2VJZGVudGlmaWVyJikKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IElEQlJlc291cmNlSWRlbnRpZmllcjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGVuY29kZXIgPDwgbV9pZGJDb25uZWN0aW9uSWRlbnRp
ZmllciA8PCBtX3Jlc291cmNlTnVtYmVyOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgor
Ym9vbCBJREJSZXNvdXJjZUlkZW50aWZpZXI6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIGlkZW50aWZpZXIpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShpZGVudGlmaWVyLm1faWRiQ29ubmVjdGlvbklkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGlkZW50aWZpZXIubV9yZXNvdXJjZU51
bWJlcikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCVHJhbnNhY3Rpb25JbmZvLmgKaW5kZXggODdhMjZh
My4uNmRiYjgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlRyYW5zYWN0aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJUcmFuc2FjdGlvbkluZm8uaApAQCAtODAsOSArODAsMjkgQEAg
cHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX29yaWdpbmFs
RGF0YWJhc2VJbmZvOwogfTsKIAotdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gYm9vbCBJREJUcmFu
c2FjdGlvbkluZm86OmRlY29kZShEZWNvZGVyJiwgSURCVHJhbnNhY3Rpb25JbmZvJikKK3RlbXBs
YXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIElEQlRyYW5zYWN0aW9uSW5mbzo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGVuY29kZXIgPDwg
bV9pZGVudGlmaWVyIDw8IG1fbmV3VmVyc2lvbiA8PCBtX29iamVjdFN0b3JlczsKKyAgICBlbmNv
ZGVyLmVuY29kZUVudW0obV9tb2RlKTsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jv
b2wgSURCVHJhbnNhY3Rpb25JbmZvOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCVHJhbnNh
Y3Rpb25JbmZvJiBpbmZvKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaW5mby5tX2lkZW50
aWZpZXIpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KGluZm8ubV9uZXdWZXJzaW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShpbmZvLm1fb2JqZWN0U3RvcmVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0oaW5mby5tX21vZGUpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IGFmNDI4OTYuLjNiN2RkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzNiBAQAorMjAxNi0wMi0xNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgTW9kZXJuIElEQjogRW5jb2Rlci9EZWNvZGVyL01lc3NhZ2luZyBzY2FmZm9sZGlu
ZyBmb3IgV0syIElQQy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1NDM1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIGNoYW5nZSBpbiBiZWhhdmlvciB5ZXQ7IEp1c3QgbGF5aW5nIHRoZSBncm91bmR3
b3JrLgorCisgICAgICAgIEltcGxlbWVudCBpbiBhbGwgb2YgdGhlIGNsaWVudC0+c2VydmVyIG1l
c3NhZ2Ugc2VuZHMsIHJlcXVpcmluZyBtYW55IEVuY29kZXIvRGVjb2RlcnMgZm9yCisgICAgICAg
IElEQiBvYmplY3RzIHRvIGFsc28gYmUgaW1wbGVtZW50ZWQ6CisgICAgICAgICogV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlRGF0YWJhc2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5EYXRhYmFzZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2Fj
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29tbWl0
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlT2JqZWN0U3RvcmUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNsZWFyT2JqZWN0
U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0
ZUluZGV4KToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxl
dGVJbmRleCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6cHV0
T3JBZGQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldFJl
Y29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0Q291
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZVJl
Y29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkN1
cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6aXRlcmF0
ZUN1cnNvcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZXN0
YWJsaXNoVHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRPcGVuQW5kVXBncmFkZU5lZWRlZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VF
dmVudCk6CisKIDIwMTYtMDItMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBDb3B5IGh0dHAgYm9keSB3aGVuIGJlaW5nIHJlZGlyZWN0ZWQg
d2l0aCAzMDggd2l0aCBOZXR3b3JrU2Vzc2lvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25Ub1NlcnZlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCA5NTkyY2ZmLi5mMDVmOGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29u
bmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFi
YXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMjgsNyArMjgs
OSBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJEYXRhUmVm
ZXJlbmNlLmgiCiAjaW5jbHVkZSAiRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uTWVzc2Fn
ZXMuaCIKKyNpbmNsdWRlICJXZWJJREJDb25uZWN0aW9uVG9DbGllbnRNZXNzYWdlcy5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oPgpAQCAt
ODUsODQgKzg3LDEwNiBAQCBJREJDbGllbnQ6OklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpjb3JlQ29ubmVjdGlvblRvU2VydgogICAgIHJldHVybiAqbV9j
b25uZWN0aW9uVG9TZXJ2ZXI7CiB9CiAKLXZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
ZWxldGVEYXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1Nl
cnZlcjo6ZGVsZXRlRGF0YWJhc2UoSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhKQogeworICAg
IHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6RGVsZXRlRGF0YWJhc2Uo
cmVxdWVzdERhdGEpKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5E
YXRhYmFzZShJREJSZXF1ZXN0RGF0YSYpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
b3BlbkRhdGFiYXNlKElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKIHsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6Ok9wZW5EYXRhYmFzZShyZXF1ZXN0RGF0
YSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6YWJvcnRUcmFuc2FjdGlv
bihJREJSZXNvdXJjZUlkZW50aWZpZXImKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6
OmFib3J0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpB
Ym9ydFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcikpOwogfQogCi12b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y29tbWl0VHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJZGVudGlm
aWVyJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpjb21taXRUcmFuc2FjdGlvbihJ
REJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkNvbW1pdFRyYW5zYWN0aW9uKHRy
YW5zYWN0aW9uSWRlbnRpZmllcikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZGlkRmluaXNoSGFuZGxpbmdWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJikKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRGaW5pc2hIYW5k
bGluZ1ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllcikKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9u
VG9DbGllbnQ6OkRpZEZpbmlzaEhhbmRsaW5nVmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKHRyYW5z
YWN0aW9uSWRlbnRpZmllcikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6
Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RT
dG9yZUluZm8mKQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZU9iamVjdFN0
b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCT2JqZWN0U3Rv
cmVJbmZvJiBpbmZvKQogeworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0Ns
aWVudDo6Q3JlYXRlT2JqZWN0U3RvcmUocmVxdWVzdERhdGEsIGluZm8pKTsKIH0KIAotdm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVl
c3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCit2b2lkIFdlYklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKIHsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkRlbGV0ZU9iamVjdFN0b3JlKHJlcXVl
c3REYXRhLCBvYmplY3RTdG9yZU5hbWUpKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXI6OmNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y2xl
YXJPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIHVpbnQ2NF90
IG9iamVjdFN0b3JlSWRlbnRpZmllcikKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25u
ZWN0aW9uVG9DbGllbnQ6OkNsZWFyT2JqZWN0U3RvcmUocmVxdWVzdERhdGEsIG9iamVjdFN0b3Jl
SWRlbnRpZmllcikpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Y3JlYXRl
SW5kZXgoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJJbmRleEluZm8mKQordm9pZCBX
ZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNyZWF0ZUluZGV4KGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvKQogeworICAgIHNlbmQoTWVz
c2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6Q3JlYXRlSW5kZXgocmVxdWVzdERhdGEs
IGluZm8pKTsKIH0KIAotdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZUluZGV4
KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIGluZGV4TmFtZSkKK3ZvaWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
ZWxldGVJbmRleChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpCiB7CisgICAgc2Vu
ZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpEZWxldGVJbmRleChyZXF1ZXN0
RGF0YSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleE5hbWUpKTsKIH0KIAotdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgSURC
S2V5KiwgU2VyaWFsaXplZFNjcmlwdFZhbHVlJiwgY29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9y
ZU92ZXJ3cml0ZU1vZGUpCit2b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6cHV0T3JBZGQo
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBJREJLZXkqIGtleSwgU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlJiB2YWx1ZSwgY29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0
ZU1vZGUgbW9kZSkKIHsKKyAgICBJREJLZXlEYXRhIGtleURhdGEoa2V5KTsKKyAgICBJUEM6OkRh
dGFSZWZlcmVuY2UgdmFsdWVEYXRhKHZhbHVlLmRhdGEoKSk7CisgICAgc2VuZChNZXNzYWdlczo6
V2ViSURCQ29ubmVjdGlvblRvQ2xpZW50OjpQdXRPckFkZChyZXF1ZXN0RGF0YSwga2V5RGF0YSwg
dmFsdWVEYXRhLCBtb2RlICE9IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlOjpO
b092ZXJ3cml0ZSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0UmVj
b3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikKK3ZvaWQg
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQogeworICAgIHNlbmQo
TWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6R2V0UmVjb3JkKHJlcXVlc3REYXRh
LCByYW5nZSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0Q291bnQo
Y29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKQordm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiByYW5nZSkKIHsKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGllbnQ6OkdldENvdW50KHJlcXVlc3REYXRhLCByYW5n
ZSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGVsZXRlUmVjb3JkKGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikKK3ZvaWQgV2ViSURC
Q29ubmVjdGlvblRvU2VydmVyOjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQogeworICAgIHNlbmQoTWVz
c2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6RGVsZXRlUmVjb3JkKHJlcXVlc3REYXRh
LCByYW5nZSkpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6b3BlbkN1cnNv
cihjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQkN1cnNvckluZm8mKQordm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhLCBjb25zdCBJREJDdXJzb3JJbmZvJiBpbmZvKQogeworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6T3BlbkN1cnNvcihyZXF1ZXN0RGF0YSwgaW5m
bykpOwogfQogCi12b2lkIFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6aXRlcmF0ZUN1cnNvcihj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCB1bnNpZ25lZCBsb25nIGNv
dW50KQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Oml0ZXJhdGVDdXJzb3IoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXksIHVuc2ln
bmVkIGxvbmcgY291bnQpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50OjpJdGVyYXRlQ3Vyc29yKHJlcXVlc3REYXRhLCBrZXksIGNvdW50KSk7CiB9CiAKLXZv
aWQgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjplc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRf
dCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8m
KQordm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmVzdGFibGlzaFRyYW5zYWN0aW9uKHVp
bnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlRyYW5zYWN0aW9u
SW5mbyYgaW5mbykKIHsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJJREJDb25uZWN0aW9uVG9DbGll
bnQ6OkVzdGFibGlzaFRyYW5zYWN0aW9uKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGlu
Zm8pKTsKIH0KIAogdm9pZCBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRhdGFiYXNlQ29ubmVj
dGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKQogeworICAg
IHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6RGF0YWJhc2VDb25uZWN0
aW9uQ2xvc2VkKGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpKTsKIH0KIAogdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OmFib3J0T3BlbkFuZFVwZ3JhZGVOZWVkZWQodWludDY0X3Qg
ZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIpCiB7CisgICAgc2VuZChNZXNzYWdlczo6V2ViSURCQ29u
bmVjdGlvblRvQ2xpZW50OjpBYm9ydE9wZW5BbmRVcGdyYWRlTmVlZGVkKGRhdGFiYXNlQ29ubmVj
dGlvbklkZW50aWZpZXIsIHRyYW5zYWN0aW9uSWRlbnRpZmllcikpOwogfQogCiB2b2lkIFdlYklE
QkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBk
YXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHJlcXVlc3RJZGVudGlmaWVyKQogeworICAgIHNlbmQoTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rp
b25Ub0NsaWVudDo6RGlkRmlyZVZlcnNpb25DaGFuZ2VFdmVudChkYXRhYmFzZUNvbm5lY3Rpb25J
ZGVudGlmaWVyLCByZXF1ZXN0SWRlbnRpZmllcikpOwogfQogCiB2b2lkIFdlYklEQkNvbm5lY3Rp
b25Ub1NlcnZlcjo6ZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVzdWx0RGF0YSYpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>