<?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>221543</bug_id>
          
          <creation_ts>2021-02-08 04:10:43 -0800</creation_ts>
          <short_desc>[SOUP] Simplify ResourceRequest and ResourceResponse</short_desc>
          <delta_ts>2021-02-10 01:42: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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>220508</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1726590</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-02-08 04:10:43 -0800</bug_when>
    <thetext>There&apos;s unused code there and it can be refactored a bit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726595</commentid>
    <comment_count>1</comment_count>
      <attachid>419573</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-02-08 04:33:33 -0800</bug_when>
    <thetext>Created attachment 419573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1726630</commentid>
    <comment_count>2</comment_count>
      <attachid>419573</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2021-02-08 07:13:10 -0800</bug_when>
    <thetext>Comment on attachment 419573
Patch

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

&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:63
&gt; +    GRefPtr&lt;SoupMessage&gt; soupMessage = adoptGRef(soup_message_new_from_uri(httpMethod().ascii().data(), uri.get()));

I would have used “auto” here because the “adoptGRef()” + “soup_message_new_foo()”
calls already make it quite clear that the inferred type will be “GRefPtr&lt;SoupMessage&gt;”
No strong preference, though.

&gt; Source/WebCore/platform/network/soup/ResourceRequestSoup.cpp:-174
&gt; -

Nice to see some code go away \o/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727472</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-02-10 01:41:26 -0800</bug_when>
    <thetext>Committed r272641: &lt;https://trac.webkit.org/changeset/272641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1727473</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-10 01:42:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74180921&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419573</attachid>
            <date>2021-02-08 04:33:33 -0800</date>
            <delta_ts>2021-02-08 07:13:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-soup-request-response.diff</filename>
            <type>text/plain</type>
            <size>29673</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYWRlZTg2ZjJmYWIuLmEyMzIwMDRiODU1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQ0IEBACisyMDIxLTAyLTA4ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbU09VUF0gU2ltcGxpZnkgUmVzb3VyY2VSZXF1ZXN0IGFu
ZCBSZXNvdXJjZVJlc3BvbnNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjE1NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGVyZSdzIHVudXNlZCBjb2RlIHRoZXJlIGFuZCBpdCBjYW4gYmUgcmVmYWN0
b3JlZC4KKworICAgICAgICAtIFJlc291cmNlUmVxdWVzdDoKKyAgICAgICAgICAtIFJlbW92ZSB1
bnVzZWQgbWVtYmVyIG1fc291cEZsYWdzLgorICAgICAgICAgIC0gUmVtb3ZlIHVwZGF0ZVNvdXBN
ZXNzYWdlKCkgdGhhdCBpcyBhbHdheXMgY2FsbGVkIGFmdGVyIGEgU291cE1lc3NhZ2UgaGFzIGJl
ZW4gY3JlYXRlZCBhbmQgYWRkCisgICAgICAgICAgICBjcmVhdGVTb3VwTWVzc2FnZSgpIHRvIHJl
dHVybiBhIG5ldyBTb3VwTWVzc2FnZS4KKyAgICAgICAgICAtIFNldCB0aGUgbWVzc2FnZSBwcmlv
cml0eSBpbiB0aGUgY3JlYXRlU291cE1lc3NhZ2UoKSB0b28uCisgICAgICAgICAgLSBSZW1vdmUg
dXBkYXRlRnJvbVNvdXBNZXNzYWdlKCkgdGhhdCBpcyBjdXJlbnRseSB1c2VkIG9ubHkgYnkgV2Vi
U29ja2V0cyB0byB1cGRhdGUgdGhlIHJlcXVlc3QgaGVhZGVycyBhZnRlcgorICAgICAgICAgICAg
dGhlIHJlcXVlc3QgaXMgc2VudCB0byBpbmNsdWRlIGNvb2tpZXMgYW5kIG90aGVyIGhlYWRlcnMg
c2V0IGJ5IGxpYnNvdXAuIFdlIGNhbiBzaW1wbHkgdXNlCisgICAgICAgICAgICB1cGRhdGVGcm9t
U291cE1lc3NhZ2VIZWFkZXJzKCkgZm9yIHRoYXQgY2FzZSBpbnN0ZWFkLgorCisgICAgICAgIC0g
UmVzb3VyY2VSZXNwb25zZToKKyAgICAgICAgICAtIFJlbW92ZSB1bnVzZWQgbWVtYmVyIG1fc291
cEZsYWdzLgorICAgICAgICAgIC0gUmVtb3ZlIHVwZGF0ZUZyb21Tb3VwTWVzc2FnZSgpIHRoYXQg
aXMgYWx3YXlzIHVzZWQgd2l0aCBhIG5ld2x5IGNyZWF0ZWQgUmVzb3VyY2VSZXNwb25zZSBhbmQg
dXNlIHRoZQorICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSBjb25zdHJ1Y3RvciB0aGF0IHJl
Y2VpdmVzIGEgU291cE1lc3NhZ2UgaW5zdGVhZC4KKyAgICAgICAgICAtIFNuaWZmZWQgY29udGVu
dCB0eXBlIGlzIG5vdyByZWNlaXZlZCBhcyBhbiBvcHRpb25hbCBwYXJhbWV0ZXIgb2YgdGhlIFJl
c291cmNlUmVzcG9uc2UgY29uc3RydWN0b3IgdGhhdAorICAgICAgICAgICAgcmVjZWl2ZXMgYSBT
b3VwTWVzc2FnZSwgYW5kIHVzZWQgdG8gc2V0IHRoZSBNSU1FIHR5cGUgYW5kIHRleHQgZW5jb2Rp
bmcuCisgICAgICAgICAgLSBSZW1vdmUgdW51c2VkIGNlcnRpZmljYXRlIGluZm8gZ2V0dGVycyBh
bmQgdGhlIGVuY29kZS9kZWNvZGUgbWV0aG9kcyB0aGF0IGFyZSBubyBsb25nZXIgbmVlZGVkLgor
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0OjplbmNvZGVXaXRoUGxhdGZvcm1EYXRhIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6ZGVjb2RlV2l0aFBsYXRm
b3JtRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVz
dFNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9Tb3VwTWVzc2FnZVByaW9yaXR5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdDo6Y3JlYXRlU291cE1lc3NhZ2UgY29uc3Qp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNlLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnNvdXBNZXNzYWdlQ2VydGlmaWNhdGUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZTo6c291cE1lc3NhZ2VU
TFNFcnJvcnMgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlOjpS
ZXNvdXJjZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2U6OnVw
ZGF0ZVNvdXBNZXNzYWdlSGVhZGVycyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKToKKwogMjAyMS0wMi0wNSAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NP
VVBdIEZpeCBlcnJvciBoYW5kbGluZyBpbiBXZWJLaXRGb3JtRGF0YUlucHV0U3RyZWFtCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1
ZXN0LmgKaW5kZXggZjJiMTUyMGY1NmM4Li42OTg3MTVlNTMwY2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXF1ZXN0LmgKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJQYWdlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlJl
c291cmNlUmVxdWVzdEJhc2UuaCIKICNpbmNsdWRlICJVUkxTb3VwLmgiCisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTU3LDYgKzU4LDgg
QEAgcHVibGljOgogICAgIHsKICAgICB9CiAKKyAgICBHUmVmUHRyPFNvdXBNZXNzYWdlPiBjcmVh
dGVTb3VwTWVzc2FnZShCbG9iUmVnaXN0cnlJbXBsJikgY29uc3Q7CisKICAgICB2b2lkIHVwZGF0
ZUZyb21EZWxlZ2F0ZVByZXNlcnZpbmdPbGRQcm9wZXJ0aWVzKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgZGVsZWdhdGVQcm92aWRlZFJlcXVlc3QpIHsgKnRoaXMgPSBkZWxlZ2F0ZVByb3ZpZGVkUmVx
dWVzdDsgfQogCiAgICAgYm9vbCBhY2NlcHRFbmNvZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYWNj
ZXB0RW5jb2Rpbmc7IH0KQEAgLTY0LDEzICs2Nyw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBk
YXRlU291cE1lc3NhZ2VIZWFkZXJzKFNvdXBNZXNzYWdlSGVhZGVycyopIGNvbnN0OwogICAgIHZv
aWQgdXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2FnZUhlYWRlcnMqKTsKLSAg
ICB2b2lkIHVwZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiwgQmxvYlJlZ2lzdHJ5SW1wbCYp
IGNvbnN0OwotICAgIHZvaWQgdXBkYXRlRnJvbVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKik7Ci0K
LSAgICBTb3VwTWVzc2FnZUZsYWdzIHNvdXBNZXNzYWdlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBt
X3NvdXBGbGFnczsgfQotICAgIHZvaWQgc2V0U291cE1lc3NhZ2VGbGFncyhTb3VwTWVzc2FnZUZs
YWdzIHNvdXBGbGFncykgeyBtX3NvdXBGbGFncyA9IHNvdXBGbGFnczsgfQotCi0gICAgR1VuaXF1
ZVB0cjxTb3VwVVJJPiBjcmVhdGVTb3VwVVJJKCkgY29uc3Q7CiAKICAgICB0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPiB2b2lkIGVuY29kZVdpdGhQbGF0Zm9ybURhdGEoRW5jb2RlciYpIGNvbnN0Owog
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IFdBUk5fVU5VU0VEX1JFVFVSTiBib29sIGRlY29k
ZVdpdGhQbGF0Zm9ybURhdGEoRGVjb2RlciYpOwpAQCAtNzgsOCArNzQsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBSZXNvdXJjZVJlcXVlc3RCYXNlOwogCi0gICAgYm9v
bCBtX2FjY2VwdEVuY29kaW5nIHsgdHJ1ZSB9OwotICAgIFNvdXBNZXNzYWdlRmxhZ3MgbV9zb3Vw
RmxhZ3MgeyBzdGF0aWNfY2FzdDxTb3VwTWVzc2FnZUZsYWdzPigwKSB9OworICAgIEdVbmlxdWVQ
dHI8U291cFVSST4gY3JlYXRlU291cFVSSSgpIGNvbnN0OwogCiAgICAgdm9pZCB1cGRhdGVTb3Vw
TWVzc2FnZU1lbWJlcnMoU291cE1lc3NhZ2UqKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZVNvdXBN
ZXNzYWdlQm9keShTb3VwTWVzc2FnZSosIEJsb2JSZWdpc3RyeUltcGwmKSBjb25zdDsKQEAgLTg5
LDYgKzg0LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvVXBkYXRlUmVzb3VyY2VIVFRQQm9keSgp
IHsgfQogCiAgICAgdm9pZCBkb1BsYXRmb3JtU2V0QXNJc29sYXRlZENvcHkoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JikgeyB9CisKKyAgICBib29sIG1fYWNjZXB0RW5jb2RpbmcgeyB0cnVlIH07CiB9
OwogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgpAQCAtMTAzLDcgKzEwMCw2IEBAIHZvaWQgUmVz
b3VyY2VSZXF1ZXN0OjplbmNvZGVXaXRoUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0CiAgICAgaWYgKG1faHR0cEJvZHkpCiAgICAgICAgIGVuY29kZXIgPDwgbV9odHRwQm9keS0+
ZmxhdHRlblRvU3RyaW5nKCk7CiAKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQzMl90
PihtX3NvdXBGbGFncyk7CiAgICAgZW5jb2RlciA8PCBzdGF0aWNfY2FzdDxib29sPihtX2FjY2Vw
dEVuY29kaW5nKTsKIH0KIApAQCAtMTIzLDExICsxMTksNiBAQCBib29sIFJlc291cmNlUmVxdWVz
dDo6ZGVjb2RlV2l0aFBsYXRmb3JtRGF0YShEZWNvZGVyJiBkZWNvZGVyKQogICAgICAgICBzZXRI
VFRQQm9keShGb3JtRGF0YTo6Y3JlYXRlKGh0dHBCb2R5LnV0ZjgoKSkpOwogICAgIH0KIAotICAg
IHVpbnQzMl90IHNvdXBNZXNzYWdlRmxhZ3M7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShzb3Vw
TWVzc2FnZUZsYWdzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIG1fc291cEZsYWdzID0g
c3RhdGljX2Nhc3Q8U291cE1lc3NhZ2VGbGFncz4oc291cE1lc3NhZ2VGbGFncyk7Ci0KICAgICBi
b29sIGFjY2VwdEVuY29kaW5nOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYWNjZXB0RW5jb2Rp
bmcpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMzYsMjQgKzEyNyw1IEBAIGJvb2wgUmVz
b3VyY2VSZXF1ZXN0OjpkZWNvZGVXaXRoUGxhdGZvcm1EYXRhKERlY29kZXImIGRlY29kZXIpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLWlubGluZSBTb3VwTWVzc2FnZVByaW9yaXR5IHRvU291cE1l
c3NhZ2VQcmlvcml0eShSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKLXsKLSAgICBzd2l0
Y2ggKHByaW9yaXR5KSB7Ci0gICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eTo6VmVyeUxvdzoK
LSAgICAgICAgcmV0dXJuIFNPVVBfTUVTU0FHRV9QUklPUklUWV9WRVJZX0xPVzsKLSAgICBjYXNl
IFJlc291cmNlTG9hZFByaW9yaXR5OjpMb3c6Ci0gICAgICAgIHJldHVybiBTT1VQX01FU1NBR0Vf
UFJJT1JJVFlfTE9XOwotICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHk6Ok1lZGl1bToKLSAg
ICAgICAgcmV0dXJuIFNPVVBfTUVTU0FHRV9QUklPUklUWV9OT1JNQUw7Ci0gICAgY2FzZSBSZXNv
dXJjZUxvYWRQcmlvcml0eTo6SGlnaDoKLSAgICAgICAgcmV0dXJuIFNPVVBfTUVTU0FHRV9QUklP
UklUWV9ISUdIOwotICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJpb3JpdHk6OlZlcnlIaWdoOgotICAg
ICAgICByZXR1cm4gU09VUF9NRVNTQUdFX1BSSU9SSVRZX1ZFUllfSElHSDsKLSAgICB9Ci0KLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gU09VUF9NRVNTQUdFX1BSSU9SSVRZ
X1ZFUllfTE9XOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RTb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVlc3RT
b3VwLmNwcAppbmRleCBlYzMzZmZmNGE0MzEuLmFiMTRkMTFjOGE1NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlcXVl
c3RTb3VwLmNwcApAQCAtMzYsNiArMzYsNjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitz
dGF0aWMgaW5saW5lIFNvdXBNZXNzYWdlUHJpb3JpdHkgdG9Tb3VwTWVzc2FnZVByaW9yaXR5KFJl
c291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5KQoreworICAgIHN3aXRjaCAocHJpb3JpdHkpIHsK
KyAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5OjpWZXJ5TG93OgorICAgICAgICByZXR1cm4g
U09VUF9NRVNTQUdFX1BSSU9SSVRZX1ZFUllfTE9XOworICAgIGNhc2UgUmVzb3VyY2VMb2FkUHJp
b3JpdHk6OkxvdzoKKyAgICAgICAgcmV0dXJuIFNPVVBfTUVTU0FHRV9QUklPUklUWV9MT1c7Cisg
ICAgY2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eTo6TWVkaXVtOgorICAgICAgICByZXR1cm4gU09V
UF9NRVNTQUdFX1BSSU9SSVRZX05PUk1BTDsKKyAgICBjYXNlIFJlc291cmNlTG9hZFByaW9yaXR5
OjpIaWdoOgorICAgICAgICByZXR1cm4gU09VUF9NRVNTQUdFX1BSSU9SSVRZX0hJR0g7CisgICAg
Y2FzZSBSZXNvdXJjZUxvYWRQcmlvcml0eTo6VmVyeUhpZ2g6CisgICAgICAgIHJldHVybiBTT1VQ
X01FU1NBR0VfUFJJT1JJVFlfVkVSWV9ISUdIOworICAgIH0KKworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKK0dSZWZQdHI8U291cE1lc3NhZ2U+IFJlc291cmNlUmVxdWVz
dDo6Y3JlYXRlU291cE1lc3NhZ2UoQmxvYlJlZ2lzdHJ5SW1wbCYgYmxvYlJlZ2lzdHJ5KSBjb25z
dAoreworICAgIGF1dG8gdXJpID0gY3JlYXRlU291cFVSSSgpOworICAgIGlmICghdXJpKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIEdSZWZQdHI8U291cE1lc3NhZ2U+IHNvdXBNZXNz
YWdlID0gYWRvcHRHUmVmKHNvdXBfbWVzc2FnZV9uZXdfZnJvbV91cmkoaHR0cE1ldGhvZCgpLmFz
Y2lpKCkuZGF0YSgpLCB1cmkuZ2V0KCkpKTsKKworICAgIHNvdXBfbWVzc2FnZV9zZXRfcHJpb3Jp
dHkoc291cE1lc3NhZ2UuZ2V0KCksIHRvU291cE1lc3NhZ2VQcmlvcml0eShwcmlvcml0eSgpKSk7
CisKKyAgICB1cGRhdGVTb3VwTWVzc2FnZUhlYWRlcnMoc291cE1lc3NhZ2UtPnJlcXVlc3RfaGVh
ZGVycyk7CisKKyAgICBhdXRvIGZpcnN0UGFydHkgPSB1cmxUb1NvdXBVUkkoZmlyc3RQYXJ0eUZv
ckNvb2tpZXMoKSk7CisgICAgaWYgKGZpcnN0UGFydHkpCisgICAgICAgIHNvdXBfbWVzc2FnZV9z
ZXRfZmlyc3RfcGFydHkoc291cE1lc3NhZ2UuZ2V0KCksIGZpcnN0UGFydHkuZ2V0KCkpOworCisj
aWYgU09VUF9DSEVDS19WRVJTSU9OKDIsIDY5LCA5MCkKKyAgICBpZiAoIWlzU2FtZVNpdGVVbnNw
ZWNpZmllZCgpKSB7CisgICAgICAgIGlmIChpc1NhbWVTaXRlKCkpIHsKKyAgICAgICAgICAgIGF1
dG8gc2l0ZUZvckNvb2tpZXMgPSB1cmxUb1NvdXBVUkkobV91cmwpOworICAgICAgICAgICAgc291
cF9tZXNzYWdlX3NldF9zaXRlX2Zvcl9jb29raWVzKHNvdXBNZXNzYWdlLmdldCgpLCBzaXRlRm9y
Q29va2llcy5nZXQoKSk7CisgICAgICAgIH0KKyAgICAgICAgc291cF9tZXNzYWdlX3NldF9pc190
b3BfbGV2ZWxfbmF2aWdhdGlvbihzb3VwTWVzc2FnZS5nZXQoKSwgaXNUb3BTaXRlKCkpOworICAg
IH0KKyNlbmRpZgorCisgICAgaWYgKCFhY2NlcHRFbmNvZGluZygpKQorICAgICAgICBzb3VwX21l
c3NhZ2VfZGlzYWJsZV9mZWF0dXJlKHNvdXBNZXNzYWdlLmdldCgpLCBTT1VQX1RZUEVfQ09OVEVO
VF9ERUNPREVSKTsKKyAgICBpZiAoIWFsbG93Q29va2llcygpKQorICAgICAgICBzb3VwX21lc3Nh
Z2VfZGlzYWJsZV9mZWF0dXJlKHNvdXBNZXNzYWdlLmdldCgpLCBTT1VQX1RZUEVfQ09PS0lFX0pB
Uik7CisKKyAgICB1cGRhdGVTb3VwTWVzc2FnZUJvZHkoc291cE1lc3NhZ2UuZ2V0KCksIGJsb2JS
ZWdpc3RyeSk7CisKKyAgICByZXR1cm4gc291cE1lc3NhZ2U7Cit9CisKIHZvaWQgUmVzb3VyY2VS
ZXF1ZXN0Ojp1cGRhdGVTb3VwTWVzc2FnZUJvZHkoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBC
bG9iUmVnaXN0cnlJbXBsJiBibG9iUmVnaXN0cnkpIGNvbnN0CiB7CiAgICAgYXV0byogZm9ybURh
dGEgPSBodHRwQm9keSgpOwpAQCAtNzUsMzIgKzEyOSw2IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0
Ojp1cGRhdGVTb3VwTWVzc2FnZUJvZHkoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlLCBCbG9iUmVn
aXN0CiAgICAgQVNTRVJUKGxlbmd0aCA9PSBzdGF0aWNfY2FzdDx1aW50NjRfdD4oc291cE1lc3Nh
Z2UtPnJlcXVlc3RfYm9keS0+bGVuZ3RoKSk7CiB9CiAKLXZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1
cGRhdGVTb3VwTWVzc2FnZU1lbWJlcnMoU291cE1lc3NhZ2UqIHNvdXBNZXNzYWdlKSBjb25zdAot
ewotICAgIHVwZGF0ZVNvdXBNZXNzYWdlSGVhZGVycyhzb3VwTWVzc2FnZS0+cmVxdWVzdF9oZWFk
ZXJzKTsKLQotICAgIEdVbmlxdWVQdHI8U291cFVSST4gZmlyc3RQYXJ0eSA9IHVybFRvU291cFVS
SShmaXJzdFBhcnR5Rm9yQ29va2llcygpKTsKLSAgICBpZiAoZmlyc3RQYXJ0eSkKLSAgICAgICAg
c291cF9tZXNzYWdlX3NldF9maXJzdF9wYXJ0eShzb3VwTWVzc2FnZSwgZmlyc3RQYXJ0eS5nZXQo
KSk7Ci0KLSNpZiBTT1VQX0NIRUNLX1ZFUlNJT04oMiwgNjksIDkwKQotICAgIGlmICghaXNTYW1l
U2l0ZVVuc3BlY2lmaWVkKCkpIHsKLSAgICAgICAgaWYgKGlzU2FtZVNpdGUoKSkgewotICAgICAg
ICAgICAgR1VuaXF1ZVB0cjxTb3VwVVJJPiBzaXRlRm9yQ29va2llcyA9IHVybFRvU291cFVSSSht
X3VybCk7Ci0gICAgICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3NpdGVfZm9yX2Nvb2tpZXMoc291
cE1lc3NhZ2UsIHNpdGVGb3JDb29raWVzLmdldCgpKTsKLSAgICAgICAgfQotICAgICAgICBzb3Vw
X21lc3NhZ2Vfc2V0X2lzX3RvcF9sZXZlbF9uYXZpZ2F0aW9uKHNvdXBNZXNzYWdlLCBpc1RvcFNp
dGUoKSk7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBzb3VwX21lc3NhZ2Vfc2V0X2ZsYWdzKHNvdXBN
ZXNzYWdlLCBtX3NvdXBGbGFncyk7Ci0KLSAgICBpZiAoIWFjY2VwdEVuY29kaW5nKCkpCi0gICAg
ICAgIHNvdXBfbWVzc2FnZV9kaXNhYmxlX2ZlYXR1cmUoc291cE1lc3NhZ2UsIFNPVVBfVFlQRV9D
T05URU5UX0RFQ09ERVIpOwotICAgIGlmICghYWxsb3dDb29raWVzKCkpCi0gICAgICAgIHNvdXBf
bWVzc2FnZV9kaXNhYmxlX2ZlYXR1cmUoc291cE1lc3NhZ2UsIFNPVVBfVFlQRV9DT09LSUVfSkFS
KTsKLX0KLQogdm9pZCBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlSGVhZGVycyhT
b3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZXJzKSBjb25zdAogewogICAgIGNvbnN0IEhUVFBI
ZWFkZXJNYXAmIGhlYWRlcnMgPSBodHRwSGVhZGVyRmllbGRzKCk7CkBAIC0xMjIsNTYgKzE1MCw2
IEBAIHZvaWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKFNv
dXBNZXNzYWdlSGVhZGVycyogc291cEhlYWRlCiAgICAgICAgIG1faHR0cEhlYWRlckZpZWxkcy5z
ZXQoU3RyaW5nKGhlYWRlck5hbWUpLCBTdHJpbmcoaGVhZGVyVmFsdWUpKTsKIH0KIAotdm9pZCBS
ZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZVNvdXBNZXNzYWdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2Fn
ZSwgQmxvYlJlZ2lzdHJ5SW1wbCYgYmxvYlJlZ2lzdHJ5KSBjb25zdAotewotICAgIGdfb2JqZWN0
X3NldChzb3VwTWVzc2FnZSwgU09VUF9NRVNTQUdFX01FVEhPRCwgaHR0cE1ldGhvZCgpLmFzY2lp
KCkuZGF0YSgpLCBOVUxMKTsKLQotICAgIEdVbmlxdWVQdHI8U291cFVSST4gdXJpID0gY3JlYXRl
U291cFVSSSgpOwotICAgIHNvdXBfbWVzc2FnZV9zZXRfdXJpKHNvdXBNZXNzYWdlLCB1cmkuZ2V0
KCkpOwotCi0gICAgdXBkYXRlU291cE1lc3NhZ2VNZW1iZXJzKHNvdXBNZXNzYWdlKTsKLSAgICB1
cGRhdGVTb3VwTWVzc2FnZUJvZHkoc291cE1lc3NhZ2UsIGJsb2JSZWdpc3RyeSk7Ci19Ci0KLXZv
aWQgUmVzb3VyY2VSZXF1ZXN0Ojp1cGRhdGVGcm9tU291cE1lc3NhZ2UoU291cE1lc3NhZ2UqIHNv
dXBNZXNzYWdlKQotewotICAgIGJvb2wgc2hvdWxkUG9ydEJlUmVzZXRUb1plcm8gPSBtX3VybC5w
b3J0KCkgJiYgIW1fdXJsLnBvcnQoKS52YWx1ZSgpOwotICAgIG1fdXJsID0gc291cFVSSVRvVVJM
KHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNzYWdlKSk7Ci0KLSAgICAvLyBTb3VwVVJJIGNh
bm5vdCBkaWZmZXJlbmlhdGUgYmV0d2VlbiBhbiBleHBsaWNpdGx5IHNwZWNpZmllZCBwb3J0IDAg
YW5kCi0gICAgLy8gbm8gcG9ydCBzcGVjaWZpZWQuCi0gICAgaWYgKHNob3VsZFBvcnRCZVJlc2V0
VG9aZXJvKQotICAgICAgICBtX3VybC5zZXRQb3J0KDApOwotCi0gICAgbV9odHRwTWV0aG9kID0g
U3RyaW5nKHNvdXBNZXNzYWdlLT5tZXRob2QpOwotCi0gICAgdXBkYXRlRnJvbVNvdXBNZXNzYWdl
SGVhZGVycyhzb3VwTWVzc2FnZS0+cmVxdWVzdF9oZWFkZXJzKTsKLQotICAgIGlmIChzb3VwTWVz
c2FnZS0+cmVxdWVzdF9ib2R5LT5kYXRhKQotICAgICAgICBtX2h0dHBCb2R5ID0gRm9ybURhdGE6
OmNyZWF0ZShzb3VwTWVzc2FnZS0+cmVxdWVzdF9ib2R5LT5kYXRhLCBzb3VwTWVzc2FnZS0+cmVx
dWVzdF9ib2R5LT5sZW5ndGgpOwotCi0gICAgaWYgKFNvdXBVUkkqIGZpcnN0UGFydHkgPSBzb3Vw
X21lc3NhZ2VfZ2V0X2ZpcnN0X3BhcnR5KHNvdXBNZXNzYWdlKSkKLSAgICAgICAgbV9maXJzdFBh
cnR5Rm9yQ29va2llcyA9IHNvdXBVUklUb1VSTChmaXJzdFBhcnR5KTsKLQotI2lmIFNPVVBfQ0hF
Q0tfVkVSU0lPTigyLCA2OSwgOTApCi0gICAgc2V0SXNUb3BTaXRlKHNvdXBfbWVzc2FnZV9nZXRf
aXNfdG9wX2xldmVsX25hdmlnYXRpb24oc291cE1lc3NhZ2UpKTsKLQotICAgIGlmIChTb3VwVVJJ
KiBzaXRlRm9yQ29va2llcyA9IHNvdXBfbWVzc2FnZV9nZXRfc2l0ZV9mb3JfY29va2llcyhzb3Vw
TWVzc2FnZSkpCi0gICAgICAgIHNldElzU2FtZVNpdGUoYXJlUmVnaXN0cmFibGVEb21haW5zRXF1
YWwoc291cFVSSVRvVVJMKHNpdGVGb3JDb29raWVzKSwgbV91cmwpKTsKLSAgICBlbHNlCi0gICAg
ICAgIG1fc2FtZVNpdGVEaXNwb3NpdGlvbiA9IFNhbWVTaXRlRGlzcG9zaXRpb246OlVuc3BlY2lm
aWVkOwotI2Vsc2UKLSAgICBtX3NhbWVTaXRlRGlzcG9zaXRpb24gPSBTYW1lU2l0ZURpc3Bvc2l0
aW9uOjpVbnNwZWNpZmllZDsKLSNlbmRpZgotCi0gICAgbV9zb3VwRmxhZ3MgPSBzb3VwX21lc3Nh
Z2VfZ2V0X2ZsYWdzKHNvdXBNZXNzYWdlKTsKLQotI2lmIFNPVVBfQ0hFQ0tfVkVSU0lPTigyLCA3
MSwgMCkKLSAgICBtX2FjY2VwdEVuY29kaW5nID0gIXNvdXBfbWVzc2FnZV9pc19mZWF0dXJlX2Rp
c2FibGVkKHNvdXBNZXNzYWdlLCBTT1VQX1RZUEVfQ09OVEVOVF9ERUNPREVSKTsKLSAgICBtX2Fs
bG93Q29va2llcyA9ICFzb3VwX21lc3NhZ2VfaXNfZmVhdHVyZV9kaXNhYmxlZChzb3VwTWVzc2Fn
ZSwgU09VUF9UWVBFX0NPT0tJRV9KQVIpOwotI2VuZGlmCi19Ci0KIHVuc2lnbmVkIGluaXRpYWxp
emVNYXhpbXVtSFRUUENvbm5lY3Rpb25Db3VudFBlckhvc3QoKQogewogICAgIC8vIFNvdXAgaGFz
IGl0cyBvd24gcXVldWUgY29udHJvbDsgaXQgd2FudHMgdG8gaGF2ZSBhbGwgcmVxdWVzdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJl
c3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VS
ZXNwb25zZS5oCmluZGV4IGUyMjdiMThjN2E0Zi4uNTg4MDVmMzdlZGJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VSZXNwb25zZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3BvbnNl
LmgKQEAgLTI5LDg0ICsyOSwzNyBAQAogCiAjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+CiAjaW5j
bHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlIDogcHVibGlj
IFJlc291cmNlUmVzcG9uc2VCYXNlIHsKIHB1YmxpYzoKLSAgICBSZXNvdXJjZVJlc3BvbnNlKCkK
LSAgICAgICAgOiBSZXNvdXJjZVJlc3BvbnNlQmFzZSgpCi0gICAgICAgICwgbV9zb3VwRmxhZ3Mo
c3RhdGljX2Nhc3Q8U291cE1lc3NhZ2VGbGFncz4oMCkpCi0gICAgICAgICwgbV90bHNFcnJvcnMo
c3RhdGljX2Nhc3Q8R1Rsc0NlcnRpZmljYXRlRmxhZ3M+KDApKQotICAgIHsKLSAgICB9CisgICAg
UmVzb3VyY2VSZXNwb25zZSgpID0gZGVmYXVsdDsKIAogICAgIFJlc291cmNlUmVzcG9uc2UoY29u
c3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGxvbmcgbG9uZyBleHBlY3RlZExl
bmd0aCwgY29uc3QgU3RyaW5nJiB0ZXh0RW5jb2RpbmdOYW1lKQogICAgICAgICA6IFJlc291cmNl
UmVzcG9uc2VCYXNlKHVybCwgbWltZVR5cGUsIGV4cGVjdGVkTGVuZ3RoLCB0ZXh0RW5jb2RpbmdO
YW1lKQotICAgICAgICAsIG1fc291cEZsYWdzKHN0YXRpY19jYXN0PFNvdXBNZXNzYWdlRmxhZ3M+
KDApKQotICAgICAgICAsIG1fdGxzRXJyb3JzKHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZs
YWdzPigwKSkKICAgICB7CiAgICAgfQogCi0gICAgUmVzb3VyY2VSZXNwb25zZShTb3VwTWVzc2Fn
ZSogc291cE1lc3NhZ2UpCi0gICAgICAgIDogUmVzb3VyY2VSZXNwb25zZUJhc2UoKQotICAgICAg
ICAsIG1fc291cEZsYWdzKHN0YXRpY19jYXN0PFNvdXBNZXNzYWdlRmxhZ3M+KDApKQotICAgICAg
ICAsIG1fdGxzRXJyb3JzKHN0YXRpY19jYXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPigwKSkKLSAg
ICB7Ci0gICAgICAgIHVwZGF0ZUZyb21Tb3VwTWVzc2FnZShzb3VwTWVzc2FnZSk7Ci0gICAgfQor
ICAgIFJlc291cmNlUmVzcG9uc2UoU291cE1lc3NhZ2UqLCBjb25zdCBDU3RyaW5nJiBzbmlmZmVk
Q29udGVudFR5cGUgPSBDU3RyaW5nKCkpOwogCiAgICAgdm9pZCB1cGRhdGVTb3VwTWVzc2FnZUhl
YWRlcnMoU291cE1lc3NhZ2VIZWFkZXJzKikgY29uc3Q7Ci0gICAgdm9pZCB1cGRhdGVGcm9tU291
cE1lc3NhZ2UoU291cE1lc3NhZ2UqKTsKLSAgICB2b2lkIHVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhl
YWRlcnMoY29uc3QgU291cE1lc3NhZ2VIZWFkZXJzKik7Ci0KLSAgICBTb3VwTWVzc2FnZUZsYWdz
IHNvdXBNZXNzYWdlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX3NvdXBGbGFnczsgfQotICAgIHZv
aWQgc2V0U291cE1lc3NhZ2VGbGFncyhTb3VwTWVzc2FnZUZsYWdzIHNvdXBGbGFncykgeyBtX3Nv
dXBGbGFncyA9IHNvdXBGbGFnczsgfQotCi0gICAgY29uc3QgU3RyaW5nJiBzbmlmZmVkQ29udGVu
dFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3NuaWZmZWRDb250ZW50VHlwZTsgfQotICAgIHZvaWQg
c2V0U25pZmZlZENvbnRlbnRUeXBlKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgbV9zbmlmZmVkQ29u
dGVudFR5cGUgPSB2YWx1ZTsgfQorICAgIHZvaWQgdXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVy
cyhTb3VwTWVzc2FnZUhlYWRlcnMqKTsKIAogICAgIEdUbHNDZXJ0aWZpY2F0ZSogc291cE1lc3Nh
Z2VDZXJ0aWZpY2F0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2VydGlmaWNhdGUuZ2V0KCk7IH0KLSAg
ICB2b2lkIHNldFNvdXBNZXNzYWdlQ2VydGlmaWNhdGUoR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZp
Y2F0ZSkgeyBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7IH0KLQogICAgIEdUbHNDZXJ0aWZp
Y2F0ZUZsYWdzIHNvdXBNZXNzYWdlVExTRXJyb3JzKCkgY29uc3QgeyByZXR1cm4gbV90bHNFcnJv
cnM7IH0KLSAgICB2b2lkIHNldFNvdXBNZXNzYWdlVExTRXJyb3JzKEdUbHNDZXJ0aWZpY2F0ZUZs
YWdzIHRsc0Vycm9ycykgeyBtX3Rsc0Vycm9ycyA9IHRsc0Vycm9yczsgfQotCi0gICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBXQVJOX1VOVVNFRF9SRVRVUk4gYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFJlc291cmNlUmVzcG9uc2UmKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xh
c3MgUmVzb3VyY2VSZXNwb25zZUJhc2U7CiAKLSAgICBTb3VwTWVzc2FnZUZsYWdzIG1fc291cEZs
YWdzOwogICAgIFN0cmluZyBtX3NuaWZmZWRDb250ZW50VHlwZTsKICAgICBHUmVmUHRyPEdUbHND
ZXJ0aWZpY2F0ZT4gbV9jZXJ0aWZpY2F0ZTsKLSAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyBtX3Rs
c0Vycm9yczsKKyAgICBHVGxzQ2VydGlmaWNhdGVGbGFncyBtX3Rsc0Vycm9ycyB7IHN0YXRpY19j
YXN0PEdUbHNDZXJ0aWZpY2F0ZUZsYWdzPigwKSB9OwogCiAgICAgdm9pZCBkb1VwZGF0ZVJlc291
cmNlUmVzcG9uc2UoKSB7IH0KICAgICBTdHJpbmcgcGxhdGZvcm1TdWdnZXN0ZWRGaWxlbmFtZSgp
IGNvbnN0OwogICAgIENlcnRpZmljYXRlSW5mbyBwbGF0Zm9ybUNlcnRpZmljYXRlSW5mbygpIGNv
bnN0OwogfTsKIAotdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KLXZvaWQgUmVzb3VyY2VSZXNwb25z
ZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0gICAgUmVzb3VyY2VSZXNwb25z
ZUJhc2U6OmVuY29kZShlbmNvZGVyKTsKLSAgICBlbmNvZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2
NF90PihtX3NvdXBGbGFncyk7Ci19Ci0KLXRlbXBsYXRlPGNsYXNzIERlY29kZXI+Ci1ib29sIFJl
c291cmNlUmVzcG9uc2U6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKLXsKLSAgICBpZiAoIVJlc291cmNlUmVzcG9uc2VCYXNlOjpkZWNvZGUoZGVj
b2RlciwgcmVzcG9uc2UpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgT3B0aW9uYWw8dWlu
dDY0X3Q+IHNvdXBGbGFnczsKLSAgICBkZWNvZGVyID4+IHNvdXBGbGFnczsKLSAgICBpZiAoIXNv
dXBGbGFncykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIEZJWE1FOiBWZXJpZnkgdGhh
dCB0aGlzIGlzIGEgdmFsaWQgdmFsdWUgZm9yIFNvdXBNZXNzYWdlRmxhZ3MuCi0gICAgcmVzcG9u
c2UubV9zb3VwRmxhZ3MgPSBzdGF0aWNfY2FzdDxTb3VwTWVzc2FnZUZsYWdzPigqc291cEZsYWdz
KTsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9u
c2VTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZVJlc3BvbnNlU291cC5jcHAKaW5kZXggOTE4NWU2NzM5OGFlLi5iNzQzMjI3ODY1ZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZVJlc3Bv
bnNlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jl
c291cmNlUmVzcG9uc2VTb3VwLmNwcApAQCAtMzQsMTMgKzM0LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi12b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZVNvdXBNZXNzYWdlSGVhZGVy
cyhTb3VwTWVzc2FnZUhlYWRlcnMqIHNvdXBIZWFkZXJzKSBjb25zdAotewotICAgIGZvciAoY29u
c3QgYXV0byYgaGVhZGVyIDogaHR0cEhlYWRlckZpZWxkcygpKQotICAgICAgICBzb3VwX21lc3Nh
Z2VfaGVhZGVyc19hcHBlbmQoc291cEhlYWRlcnMsIGhlYWRlci5rZXkudXRmOCgpLmRhdGEoKSwg
aGVhZGVyLnZhbHVlLnV0ZjgoKS5kYXRhKCkpOwotfQotCi12b2lkIFJlc291cmNlUmVzcG9uc2U6
OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UpCitSZXNvdXJj
ZVJlc3BvbnNlOjpSZXNvdXJjZVJlc3BvbnNlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgY29u
c3QgQ1N0cmluZyYgc25pZmZlZENvbnRlbnRUeXBlKQogewogICAgIG1fdXJsID0gc291cFVSSVRv
VVJMKHNvdXBfbWVzc2FnZV9nZXRfdXJpKHNvdXBNZXNzYWdlKSk7CiAKQEAgLTU1LDQwICs0OSw0
MCBAQCB2b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZShTb3VwTWVz
c2FnZSogc291cE1lc3NhZ2UpCiAgICAgbV9odHRwU3RhdHVzQ29kZSA9IHNvdXBNZXNzYWdlLT5z
dGF0dXNfY29kZTsKICAgICBzZXRIVFRQU3RhdHVzVGV4dChzb3VwTWVzc2FnZS0+cmVhc29uX3Bo
cmFzZSk7CiAKLSAgICBtX3NvdXBGbGFncyA9IHNvdXBfbWVzc2FnZV9nZXRfZmxhZ3Moc291cE1l
c3NhZ2UpOwotCiAgICAgR1Rsc0NlcnRpZmljYXRlKiBjZXJ0aWZpY2F0ZSA9IDA7CiAgICAgc291
cF9tZXNzYWdlX2dldF9odHRwc19zdGF0dXMoc291cE1lc3NhZ2UsICZjZXJ0aWZpY2F0ZSwgJm1f
dGxzRXJyb3JzKTsKICAgICBtX2NlcnRpZmljYXRlID0gY2VydGlmaWNhdGU7CiAKICAgICB1cGRh
dGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKHNvdXBNZXNzYWdlLT5yZXNwb25zZV9oZWFkZXJzKTsK
KworICAgIFN0cmluZyBjb250ZW50VHlwZTsKKyAgICBjb25zdCBjaGFyKiBvZmZpY2lhbFR5cGUg
PSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKHNvdXBNZXNzYWdlLT5yZXNwb25zZV9oZWFk
ZXJzLCAiQ29udGVudC1UeXBlIik7CisgICAgaWYgKCFzbmlmZmVkQ29udGVudFR5cGUuaXNOdWxs
KCkgJiYgbV9odHRwU3RhdHVzQ29kZSAhPSBTT1VQX1NUQVRVU19OT1RfTU9ESUZJRUQgJiYgc25p
ZmZlZENvbnRlbnRUeXBlICE9IG9mZmljaWFsVHlwZSkKKyAgICAgICAgY29udGVudFR5cGUgPSBz
bmlmZmVkQ29udGVudFR5cGUuZGF0YSgpOworICAgIGVsc2UKKyAgICAgICAgY29udGVudFR5cGUg
PSBvZmZpY2lhbFR5cGU7CisgICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1lZGlh
VHlwZShjb250ZW50VHlwZSkpOworICAgIGlmIChtX21pbWVUeXBlLmlzRW1wdHkoKSAmJiBtX2h0
dHBTdGF0dXNDb2RlICE9IFNPVVBfU1RBVFVTX05PVF9NT0RJRklFRCkKKyAgICAgICAgc2V0TWlt
ZVR5cGUoTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKG1fdXJsLnBhdGgoKS50b1N0
cmluZygpKSk7CisgICAgc2V0VGV4dEVuY29kaW5nTmFtZShleHRyYWN0Q2hhcnNldEZyb21NZWRp
YVR5cGUoY29udGVudFR5cGUpKTsKKworICAgIHNldEV4cGVjdGVkQ29udGVudExlbmd0aChzb3Vw
X21lc3NhZ2VfaGVhZGVyc19nZXRfY29udGVudF9sZW5ndGgoc291cE1lc3NhZ2UtPnJlc3BvbnNl
X2hlYWRlcnMpKTsKIH0KIAotdm9pZCBSZXNvdXJjZVJlc3BvbnNlOjp1cGRhdGVGcm9tU291cE1l
c3NhZ2VIZWFkZXJzKGNvbnN0IFNvdXBNZXNzYWdlSGVhZGVycyogbWVzc2FnZUhlYWRlcnMpCit2
b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZVNvdXBNZXNzYWdlSGVhZGVycyhTb3VwTWVzc2Fn
ZUhlYWRlcnMqIHNvdXBIZWFkZXJzKSBjb25zdAoreworICAgIGZvciAoY29uc3QgYXV0byYgaGVh
ZGVyIDogaHR0cEhlYWRlckZpZWxkcygpKQorICAgICAgICBzb3VwX21lc3NhZ2VfaGVhZGVyc19h
cHBlbmQoc291cEhlYWRlcnMsIGhlYWRlci5rZXkudXRmOCgpLmRhdGEoKSwgaGVhZGVyLnZhbHVl
LnV0ZjgoKS5kYXRhKCkpOworfQorCit2b2lkIFJlc291cmNlUmVzcG9uc2U6OnVwZGF0ZUZyb21T
b3VwTWVzc2FnZUhlYWRlcnMoU291cE1lc3NhZ2VIZWFkZXJzKiBzb3VwSGVhZGVycykKIHsKLSAg
ICBTb3VwTWVzc2FnZUhlYWRlcnMqIGhlYWRlcnMgPSBjb25zdF9jYXN0PFNvdXBNZXNzYWdlSGVh
ZGVycyo+KG1lc3NhZ2VIZWFkZXJzKTsKICAgICBTb3VwTWVzc2FnZUhlYWRlcnNJdGVyIGhlYWRl
cnNJdGVyOwogICAgIGNvbnN0IGNoYXIqIGhlYWRlck5hbWU7CiAgICAgY29uc3QgY2hhciogaGVh
ZGVyVmFsdWU7Ci0KLSAgICAvLyB1cGRhdGVGcm9tU291cE1lc3NhZ2UgY291bGQgYmUgY2FsbGVk
IHNldmVyYWwgdGltZXMgZm9yIHRoZSBzYW1lIFJlc291cmNlUmVzcG9uc2Ugb2JqZWN0LAotICAg
IC8vIHRodXMsIHdlIG5lZWQgdG8gY2xlYXIgb2xkIGhlYWRlciB2YWx1ZXMgYW5kIHVwZGF0ZSBt
X2h0dHBIZWFkZXJGaWVsZHMgZnJvbSBzb3VwTWVzc2FnZSBoZWFkZXJzLgotICAgIG1faHR0cEhl
YWRlckZpZWxkcy5jbGVhcigpOwotCi0gICAgc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9pbml0
KCZoZWFkZXJzSXRlciwgaGVhZGVycyk7CisgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfaXRlcl9p
bml0KCZoZWFkZXJzSXRlciwgc291cEhlYWRlcnMpOwogICAgIHdoaWxlIChzb3VwX21lc3NhZ2Vf
aGVhZGVyc19pdGVyX25leHQoJmhlYWRlcnNJdGVyLCAmaGVhZGVyTmFtZSwgJmhlYWRlclZhbHVl
KSkKICAgICAgICAgYWRkSFRUUEhlYWRlckZpZWxkKFN0cmluZyhoZWFkZXJOYW1lKSwgU3RyaW5n
KGhlYWRlclZhbHVlKSk7Ci0KLSAgICBTdHJpbmcgY29udGVudFR5cGU7Ci0gICAgY29uc3QgY2hh
ciogb2ZmaWNpYWxUeXBlID0gc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAi
Q29udGVudC1UeXBlIik7Ci0gICAgaWYgKCFtX3NuaWZmZWRDb250ZW50VHlwZS5pc0VtcHR5KCkg
JiYgbV9zbmlmZmVkQ29udGVudFR5cGUgIT0gb2ZmaWNpYWxUeXBlKQotICAgICAgICBjb250ZW50
VHlwZSA9IG1fc25pZmZlZENvbnRlbnRUeXBlOwotICAgIGVsc2UKLSAgICAgICAgY29udGVudFR5
cGUgPSBvZmZpY2lhbFR5cGU7Ci0gICAgc2V0TWltZVR5cGUoZXh0cmFjdE1JTUVUeXBlRnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkpOwotICAgIHNldFRleHRFbmNvZGluZ05hbWUoZXh0cmFjdENo
YXJzZXRGcm9tTWVkaWFUeXBlKGNvbnRlbnRUeXBlKSk7Ci0KLSAgICBzZXRFeHBlY3RlZENvbnRl
bnRMZW5ndGgoc291cF9tZXNzYWdlX2hlYWRlcnNfZ2V0X2NvbnRlbnRfbGVuZ3RoKGhlYWRlcnMp
KTsKIH0KIAogQ2VydGlmaWNhdGVJbmZvIFJlc291cmNlUmVzcG9uc2U6OnBsYXRmb3JtQ2VydGlm
aWNhdGVJbmZvKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNTRlYTFjODJlMDYzLi4xNzc0YzQ3ZmM5M2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDItMDggIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtTT1VQXSBTaW1wbGlmeSBSZXNv
dXJjZVJlcXVlc3QgYW5kIFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTU0MworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgUmVzb3VyY2VSZXF1ZXN0IGFuZCBSZXNv
dXJjZVJlc3BvbnNlIEFQSS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6
OmNyZWF0ZVJlcXVlc3QpOiBVc2UgUmVzb3VyY2VSZXF1ZXN0OjpjcmVhdGVTb3VwTWVzc2FnZSgp
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjpkaWRTZW5kUmVxdWVzdCk6
IFVzZSBSZXNvdXJjZVJlc3BvbnNlIHBhc3NpbmcgdGhlIFNvdXBNZXNzYWdlIGFuZCBzbmlmZmVk
IGNvbnRlbnQgdHlwZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6ZGlk
UmVxdWVzdE5leHRQYXJ0KTogQ3JlYXRlIGEgUmVzb3VyY2VSZXNwb25zZSBwYXNzaW5nIHRoZSB1
cmwsIGNvbnRlbnQgdHlwZSwKKyAgICAgICAgZXhwZWN0ZWQgbGVuZ3RoIGFuZCB0ZXh0IGVuY29k
aW5nLiBUaGVuIGNhbGwgUmVzb3VyY2VSZXNwb25zZTo6dXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVh
ZGVycygpIHRvIHNldCB0aGUgaGVhZGVycy4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3Vw
L05ldHdvcmtTZXNzaW9uU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9u
U291cDo6Y3JlYXRlV2ViU29ja2V0VGFzayk6IFVzZSBSZXNvdXJjZVJlcXVlc3Q6OmNyZWF0ZVNv
dXBNZXNzYWdlKCkgYW5kIHBhc3MgdGhlCisgICAgICAgIFJlc291cmNlUmVxdWVzdCB0byBXZWJT
b2NrZXRUYXNrIGNvbnN0cnVjdG9yLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvV2Vi
U29ja2V0VGFza1NvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpXZWJT
b2NrZXRUYXNrKTogU2F2ZSB0aGUgUmVzb3VyY2VSZXF1ZXN0IGFuZCB0aGVuIGp1c3QgY2FsbAor
ICAgICAgICBSZXNvdXJjZVJlcXVlc3Q6OnVwZGF0ZUZyb21Tb3VwTWVzc2FnZUhlYWRlcnMoKSB0
byB1cGRhdGUgdGhlIGhlYWRlcnMgYWZ0ZXIgdGhlIHJlc3BvbnNlIGhhcyBiZWVuIHNlbnQgYnkg
bGlic291cC4KKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0VGFzazo6ZGlkQ29ubmVjdCk6IFVz
ZSBSZXNvdXJjZVJlc3BvbnNlIGNvbnN0cnVjdG9yIHdpdGggdGhlIFNvdXBNZXNzYWdlIGRpcmVj
dGx5LgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRUYXNrOjpkaWRGYWlsKTogRGl0dG8uCisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oOgorCiAyMDIx
LTAyLTA1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBSRUdSRVNTSU9OKHIyNzE4NzkpIFtTT1VQXSB3ZWJydGMvZGF0YWNoYW5uZWwvZ2F0aGVy
LWNhbmRpZGF0ZXMtbmV0d29ya3Byb2Nlc3MtY3Jhc2guaHRtbCBpcyBjcmFzaGluZyBpbiBkZWJ1
ZyBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAv
TmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggMzkwMTVmOTAwYjJkLi41YmEyYjFhZjkzNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHAKQEAgLTEyMSwxNyArMTIxLDE0IEBAIHZvaWQgTmV0d29ya0Rh
dGFUYXNrU291cDo6Y3JlYXRlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXYXNC
bG9ja2luZ0NvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBHVW5pcXVlUHRyPFNvdXBV
Ukk+IHNvdXBVUkkgPSBtX2N1cnJlbnRSZXF1ZXN0LmNyZWF0ZVNvdXBVUkkoKTsKLSAgICBpZiAo
IXNvdXBVUkkgfHwgIVNPVVBfVVJJX1ZBTElEX0ZPUl9IVFRQKHNvdXBVUkkuZ2V0KCkpKSB7Cisg
ICAgcmVzdHJpY3RSZXF1ZXN0UmVmZXJyZXJUb09yaWdpbklmTmVlZGVkKG1fY3VycmVudFJlcXVl
c3QpOworCisgICAgbV9zb3VwTWVzc2FnZSA9IG1fY3VycmVudFJlcXVlc3QuY3JlYXRlU291cE1l
c3NhZ2UobV9zZXNzaW9uLT5ibG9iUmVnaXN0cnkoKSk7CisgICAgaWYgKCFtX3NvdXBNZXNzYWdl
KSB7CiAgICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICByZXN0cmljdFJlcXVlc3RSZWZlcnJlclRvT3JpZ2luSWZO
ZWVkZWQobV9jdXJyZW50UmVxdWVzdCk7Ci0KLSAgICBtX3NvdXBNZXNzYWdlID0gYWRvcHRHUmVm
KHNvdXBfbWVzc2FnZV9uZXdfZnJvbV91cmkoU09VUF9NRVRIT0RfR0VULCBzb3VwVVJJLmdldCgp
KSk7Ci0gICAgbV9jdXJyZW50UmVxdWVzdC51cGRhdGVTb3VwTWVzc2FnZShtX3NvdXBNZXNzYWdl
LmdldCgpLCBtX3Nlc3Npb24tPmJsb2JSZWdpc3RyeSgpKTsKLQogICAgIHVuc2lnbmVkIG1lc3Nh
Z2VGbGFncyA9IFNPVVBfTUVTU0FHRV9OT19SRURJUkVDVDsKICAgICBpZiAobV9zaG91bGRDb250
ZW50U25pZmYgPT0gQ29udGVudFNuaWZmaW5nUG9saWN5OjpEb05vdFNuaWZmQ29udGVudCkKICAg
ICAgICAgc291cF9tZXNzYWdlX2Rpc2FibGVfZmVhdHVyZShtX3NvdXBNZXNzYWdlLmdldCgpLCBT
T1VQX1RZUEVfQ09OVEVOVF9TTklGRkVSKTsKQEAgLTE0NSw3ICsxNDIsNiBAQCB2b2lkIE5ldHdv
cmtEYXRhVGFza1NvdXA6OmNyZWF0ZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
V2FzQmxvY2tpbmdDbwogI2VuZGlmCiAgICAgfQogICAgIHNvdXBfbWVzc2FnZV9zZXRfZmxhZ3Mo
bV9zb3VwTWVzc2FnZS5nZXQoKSwgc3RhdGljX2Nhc3Q8U291cE1lc3NhZ2VGbGFncz4oc291cF9t
ZXNzYWdlX2dldF9mbGFncyhtX3NvdXBNZXNzYWdlLmdldCgpKSB8IG1lc3NhZ2VGbGFncykpOwot
ICAgIHNvdXBfbWVzc2FnZV9zZXRfcHJpb3JpdHkobV9zb3VwTWVzc2FnZS5nZXQoKSwgdG9Tb3Vw
TWVzc2FnZVByaW9yaXR5KG1fY3VycmVudFJlcXVlc3QucHJpb3JpdHkoKSkpOwogCiAjaWYgRU5B
QkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykKICAgICBib29sIHNob3VsZEJsb2NrQ29va2ll
cyA9IHdhc0Jsb2NraW5nQ29va2llcyA9PSBXYXNCbG9ja2luZ0Nvb2tpZXM6OlllcyA/IHRydWUg
OiBtX3N0b3JlZENyZWRlbnRpYWxzUG9saWN5ID09IFN0b3JlZENyZWRlbnRpYWxzUG9saWN5OjpF
cGhlbWVyYWxTdGF0ZWxlc3M7CkBAIC0zNzQsMTEgKzM3MCw3IEBAIHZvaWQgTmV0d29ya0RhdGFU
YXNrU291cDo6c2VuZFJlcXVlc3RDYWxsYmFjayhTb3VwU2Vzc2lvbiogc291cFNlc3Npb24sIEdB
c3luY1JlCiAKIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6ZGlkU2VuZFJlcXVlc3QoR1JlZlB0
cjxHSW5wdXRTdHJlYW0+JiYgaW5wdXRTdHJlYW0pCiB7Ci0gICAgaWYgKCFtX3NuaWZmZWRDb250
ZW50VHlwZS5pc051bGwoKSAmJiBtX3NvdXBNZXNzYWdlLT5zdGF0dXNfY29kZSAhPSBTT1VQX1NU
QVRVU19OT1RfTU9ESUZJRUQpCi0gICAgICAgIG1fcmVzcG9uc2Uuc2V0U25pZmZlZENvbnRlbnRU
eXBlKG1fc25pZmZlZENvbnRlbnRUeXBlLmRhdGEoKSk7Ci0gICAgbV9yZXNwb25zZS51cGRhdGVG
cm9tU291cE1lc3NhZ2UobV9zb3VwTWVzc2FnZS5nZXQoKSk7Ci0gICAgaWYgKG1fcmVzcG9uc2Uu
bWltZVR5cGUoKS5pc0VtcHR5KCkgJiYgbV9zb3VwTWVzc2FnZS0+c3RhdHVzX2NvZGUgIT0gU09V
UF9TVEFUVVNfTk9UX01PRElGSUVEKQotICAgICAgICBtX3Jlc3BvbnNlLnNldE1pbWVUeXBlKE1J
TUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aChtX3Jlc3BvbnNlLnVybCgpLnBhdGgoKS50
b1N0cmluZygpKSk7CisgICAgbV9yZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9zb3VwTWVz
c2FnZS5nZXQoKSwgbV9zbmlmZmVkQ29udGVudFR5cGUpOwogCiAgICAgaWYgKHNob3VsZFN0YXJ0
SFRUUFJlZGlyZWN0aW9uKCkpIHsKICAgICAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1vdmUoaW5w
dXRTdHJlYW0pOwpAQCAtOTAwLDkgKzg5MiwxMSBAQCB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmRpZFJlcXVlc3ROZXh0UGFydChHUmVmUHRyPEdJbnB1dFN0cmVhbT4mJiBpbnB1dFN0cmVhbQog
ewogICAgIEFTU0VSVCghbV9pbnB1dFN0cmVhbSk7CiAgICAgbV9pbnB1dFN0cmVhbSA9IFdURk1v
dmUoaW5wdXRTdHJlYW0pOwotICAgIG1fcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7Ci0g
ICAgbV9yZXNwb25zZS5zZXRVUkwobV9maXJzdFJlcXVlc3QudXJsKCkpOwotICAgIG1fcmVzcG9u
c2UudXBkYXRlRnJvbVNvdXBNZXNzYWdlSGVhZGVycyhzb3VwX211bHRpcGFydF9pbnB1dF9zdHJl
YW1fZ2V0X2hlYWRlcnMobV9tdWx0aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSkpOworICAgIGF1dG8q
IGhlYWRlcnMgPSBzb3VwX211bHRpcGFydF9pbnB1dF9zdHJlYW1fZ2V0X2hlYWRlcnMobV9tdWx0
aXBhcnRJbnB1dFN0cmVhbS5nZXQoKSk7CisgICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gc291cF9t
ZXNzYWdlX2hlYWRlcnNfZ2V0X29uZShoZWFkZXJzLCAiQ29udGVudC1UeXBlIik7CisgICAgbV9y
ZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UobV9maXJzdFJlcXVlc3QudXJsKCksIGV4dHJhY3RN
SU1FVHlwZUZyb21NZWRpYVR5cGUoY29udGVudFR5cGUpLAorICAgICAgICBzb3VwX21lc3NhZ2Vf
aGVhZGVyc19nZXRfY29udGVudF9sZW5ndGgoaGVhZGVycyksIGV4dHJhY3RDaGFyc2V0RnJvbU1l
ZGlhVHlwZShjb250ZW50VHlwZSkpOworICAgIG1fcmVzcG9uc2UudXBkYXRlRnJvbVNvdXBNZXNz
YWdlSGVhZGVycyhoZWFkZXJzKTsKICAgICBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZSgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Nlc3Npb25Tb3VwLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3
b3JrU2Vzc2lvblNvdXAuY3BwCmluZGV4IDY2ZmYzNmVlYzJkYi4uMDU5YTFkZDExYzA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25T
b3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nl
c3Npb25Tb3VwLmNwcApAQCAtMTIzLDE1ICsxMjMsMTMgQEAgc3RhdGljIHZvaWQgd2ViU29ja2V0
TWVzc2FnZU5ldHdvcmtFdmVudENhbGxiYWNrKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSwgR1Nv
Y2sKIAogc3RkOjp1bmlxdWVfcHRyPFdlYlNvY2tldFRhc2s+IE5ldHdvcmtTZXNzaW9uU291cDo6
Y3JlYXRlV2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHByb3RvY29sKQogewotICAg
IEdVbmlxdWVQdHI8U291cFVSST4gc291cFVSSSA9IHJlcXVlc3QuY3JlYXRlU291cFVSSSgpOwot
ICAgIGlmICghc291cFVSSSkKKyAgICBHUmVmUHRyPFNvdXBNZXNzYWdlPiBzb3VwTWVzc2FnZSA9
IHJlcXVlc3QuY3JlYXRlU291cE1lc3NhZ2UoYmxvYlJlZ2lzdHJ5KCkpOworICAgIGlmICghc291
cE1lc3NhZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgR1JlZlB0cjxTb3VwTWVz
c2FnZT4gc291cE1lc3NhZ2UgPSBhZG9wdEdSZWYoc291cF9tZXNzYWdlX25ld19mcm9tX3VyaShT
T1VQX01FVEhPRF9HRVQsIHNvdXBVUkkuZ2V0KCkpKTsKLSAgICByZXF1ZXN0LnVwZGF0ZVNvdXBN
ZXNzYWdlKHNvdXBNZXNzYWdlLmdldCgpLCBibG9iUmVnaXN0cnkoKSk7CiAgICAgaWYgKHJlcXVl
c3QudXJsKCkucHJvdG9jb2xJcygid3NzIikpCiAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3Qoc291
cE1lc3NhZ2UuZ2V0KCksICJuZXR3b3JrLWV2ZW50IiwgR19DQUxMQkFDSyh3ZWJTb2NrZXRNZXNz
YWdlTmV0d29ya0V2ZW50Q2FsbGJhY2spLCB0aGlzKTsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxX
ZWJTb2NrZXRUYXNrPihjaGFubmVsLCBzb3VwU2Vzc2lvbigpLCBzb3VwTWVzc2FnZS5nZXQoKSwg
cHJvdG9jb2wpOworICAgIHJldHVybiBtYWtlVW5pcXVlPFdlYlNvY2tldFRhc2s+KGNoYW5uZWws
IHJlcXVlc3QsIHNvdXBTZXNzaW9uKCksIHNvdXBNZXNzYWdlLmdldCgpLCBwcm90b2NvbCk7CiB9
CiAKIHZvaWQgTmV0d29ya1Nlc3Npb25Tb3VwOjpzZXRJZ25vcmVUTFNFcnJvcnMoYm9vbCBpZ25v
cmVUTFNFcnJvcnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3Nv
dXAvV2ViU29ja2V0VGFza1NvdXAuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
b3VwL1dlYlNvY2tldFRhc2tTb3VwLmNwcAppbmRleCAzMWJmYjk0ZmEwMWMuLmIzMzFhMjkwNmU4
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tl
dFRhc2tTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvV2Vi
U29ja2V0VGFza1NvdXAuY3BwCkBAIC0zOCw4ICszOCw5IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1XZWJTb2NrZXRUYXNrOjpXZWJTb2NrZXRUYXNrKE5ldHdvcmtTb2NrZXRDaGFubmVsJiBj
aGFubmVsLCBTb3VwU2Vzc2lvbiogc2Vzc2lvbiwgU291cE1lc3NhZ2UqIG1zZywgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCkKK1dlYlNvY2tldFRhc2s6OldlYlNvY2tldFRhc2soTmV0d29ya1NvY2tl
dENoYW5uZWwmIGNoYW5uZWwsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgU291cFNlc3Npb24qIHNlc3Npb24sIFNvdXBNZXNzYWdlKiBtc2csIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2wpCiAgICAgOiBtX2NoYW5uZWwoY2hhbm5lbCkKKyAgICAsIG1fcmVxdWVzdChyZXF1
ZXN0KQogICAgICwgbV9oYW5kc2hha2VNZXNzYWdlKG1zZykKICAgICAsIG1fY2FuY2VsbGFibGUo
YWRvcHRHUmVmKGdfY2FuY2VsbGFibGVfbmV3KCkpKQogICAgICwgbV9kZWxheUZhaWxUaW1lcihS
dW5Mb29wOjptYWluKCksIHRoaXMsICZXZWJTb2NrZXRUYXNrOjpkZWxheUZhaWxUaW1lckZpcmVk
KQpAQCAtODAsOSArODEsOCBAQCBXZWJTb2NrZXRUYXNrOjpXZWJTb2NrZXRUYXNrKE5ldHdvcmtT
b2NrZXRDaGFubmVsJiBjaGFubmVsLCBTb3VwU2Vzc2lvbiogc2Vzc2lvbgogICAgICAgICB9LCB0
aGlzKTsKIAogICAgIGdfc2lnbmFsX2Nvbm5lY3QobXNnLCAic3RhcnRpbmciLCBHX0NBTExCQUNL
KCtbXShTb3VwTWVzc2FnZSogbXNnLCBXZWJTb2NrZXRUYXNrKiB0YXNrKSB7Ci0gICAgICAgIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0OwotICAgICAgICByZXF1ZXN0LnVwZGF0ZUZy
b21Tb3VwTWVzc2FnZShtc2cpOwotICAgICAgICB0YXNrLT5tX2NoYW5uZWwuZGlkU2VuZEhhbmRz
aGFrZVJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSk7CisgICAgICAgIHRhc2stPm1fcmVxdWVzdC51
cGRhdGVGcm9tU291cE1lc3NhZ2VIZWFkZXJzKG1zZy0+cmVxdWVzdF9oZWFkZXJzKTsKKyAgICAg
ICAgdGFzay0+bV9jaGFubmVsLmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0KFdURk1vdmUodGFzay0+
bV9yZXF1ZXN0KSk7CiAgICAgfSksIHRoaXMpOwogfQogCkBAIC0xMzIsOSArMTMyLDcgQEAgdm9p
ZCBXZWJTb2NrZXRUYXNrOjpkaWRDb25uZWN0KEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbikKIAogICAgIG1fY2hhbm5lbC5kaWRDb25uZWN0KHNvdXBfd2Vic29j
a2V0X2Nvbm5lY3Rpb25fZ2V0X3Byb3RvY29sKG1fY29ubmVjdGlvbi5nZXQoKSksIGFjY2VwdGVk
RXh0ZW5zaW9ucygpKTsKIAotICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7
Ci0gICAgcmVzcG9uc2UudXBkYXRlRnJvbVNvdXBNZXNzYWdlKG1faGFuZHNoYWtlTWVzc2FnZS5n
ZXQoKSk7Ci0gICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25zZShXVEZNb3Zl
KHJlc3BvbnNlKSk7CisgICAgbV9jaGFubmVsLmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25zZSht
X2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCkpOwogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5l
Y3RfYnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwogICAgIG1faGFuZHNo
YWtlTWVzc2FnZSA9IG51bGxwdHI7CiB9CkBAIC0xNzIsOSArMTcwLDcgQEAgdm9pZCBXZWJTb2Nr
ZXRUYXNrOjpkaWRGYWlsKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogCiAgICAgbV9yZWNl
aXZlZERpZEZhaWwgPSB0cnVlOwogICAgIGlmIChtX2hhbmRzaGFrZU1lc3NhZ2UpIHsKLSAgICAg
ICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKLSAgICAgICAgcmVzcG9uc2Uu
dXBkYXRlRnJvbVNvdXBNZXNzYWdlKG1faGFuZHNoYWtlTWVzc2FnZS5nZXQoKSk7Ci0gICAgICAg
IG1fY2hhbm5lbC5kaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UoV1RGTW92ZShyZXNwb25zZSkp
OworICAgICAgICBtX2NoYW5uZWwuZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNlKG1faGFuZHNo
YWtlTWVzc2FnZS5nZXQoKSk7CiAgICAgICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3Rf
YnlfZGF0YShtX2hhbmRzaGFrZU1lc3NhZ2UuZ2V0KCksIHRoaXMpOwogICAgICAgICBtX2hhbmRz
aGFrZU1lc3NhZ2UgPSBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL1dlYlNvY2tldFRhc2tTb3VwLmgKaW5kZXggMDg4OTIzOTU5ZmU0
Li41Y2QyNzVmYzZiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c291cC9XZWJTb2NrZXRUYXNrU291cC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc291cC9XZWJTb2NrZXRUYXNrU291cC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgogI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgogI2luY2x1ZGUgPHd0Zi9S
dW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgpAQCAtMzYsNyArMzcsNyBA
QCBjbGFzcyBOZXR3b3JrU29ja2V0Q2hhbm5lbDsKIGNsYXNzIFdlYlNvY2tldFRhc2sgewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIFdlYlNvY2tldFRhc2soTmV0
d29ya1NvY2tldENoYW5uZWwmLCBTb3VwU2Vzc2lvbiosIFNvdXBNZXNzYWdlKiwgY29uc3QgU3Ry
aW5nJiBwcm90b2NvbCk7CisgICAgV2ViU29ja2V0VGFzayhOZXR3b3JrU29ja2V0Q2hhbm5lbCYs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFNvdXBTZXNzaW9uKiwgU291cE1lc3Nh
Z2UqLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKICAgICB+V2ViU29ja2V0VGFzaygpOwogCiAg
ICAgdm9pZCBzZW5kU3RyaW5nKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CkBAIC01OSw2ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGlj
IHZvaWQgZGlkQ2xvc2VDYWxsYmFjayhXZWJTb2NrZXRUYXNrKik7CiAKICAgICBOZXR3b3JrU29j
a2V0Q2hhbm5lbCYgbV9jaGFubmVsOworICAgIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBtX3Jl
cXVlc3Q7CiAgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gbV9oYW5kc2hha2VNZXNzYWdlOwogICAg
IEdSZWZQdHI8U291cFdlYnNvY2tldENvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKICAgICBHUmVm
UHRyPEdDYW5jZWxsYWJsZT4gbV9jYW5jZWxsYWJsZTsK
</data>
<flag name="review"
          id="437839"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>