<?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>212758</bug_id>
          
          <creation_ts>2020-06-04 10:09:08 -0700</creation_ts>
          <short_desc>[IPC] Adopt enum class for PluginProcessType and PluginProcessSandboxPolicy</short_desc>
          <delta_ts>2020-06-11 13:38:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=212827</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=212846</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=213093</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>211988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>useafterfree</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1659141</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-04 10:09:08 -0700</bug_when>
    <thetext>Adopt EnumTraits and enum class for PluginProcessType and PluginProcessSandboxPolicy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659218</commentid>
    <comment_count>1</comment_count>
      <attachid>401057</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-04 11:44:10 -0700</bug_when>
    <thetext>Created attachment 401057
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659220</commentid>
    <comment_count>2</comment_count>
      <attachid>401057</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-04 11:46:15 -0700</bug_when>
    <thetext>Comment on attachment 401057
Patch v1

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

&gt; Source/WebKit/Shared/Plugins/PluginProcessAttributes.h:33
&gt; +enum class PluginProcessType : uint8_t {

How did you choose uint8_t vs. bool for this?

&gt; Source/WebKit/Shared/Plugins/PluginProcessAttributes.h:38
&gt; +enum class PluginProcessSandboxPolicy : uint8_t {

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659224</commentid>
    <comment_count>3</comment_count>
      <attachid>401057</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-04 11:50:23 -0700</bug_when>
    <thetext>Comment on attachment 401057
Patch v1

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

&gt;&gt; Source/WebKit/Shared/Plugins/PluginProcessAttributes.h:33
&gt;&gt; +enum class PluginProcessType : uint8_t {
&gt; 
&gt; How did you choose uint8_t vs. bool for this?

This didn&apos;t seen like a `bool` concept, but maybe I should be thinking in terms of storage size, not whether it&apos;s a Boolean concept.  I can change it if you prefer.

&gt;&gt; Source/WebKit/Shared/Plugins/PluginProcessAttributes.h:38
&gt;&gt; +enum class PluginProcessSandboxPolicy : uint8_t {
&gt; 
&gt; Ditto.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659278</commentid>
    <comment_count>4</comment_count>
      <attachid>401057</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-06-04 13:12:07 -0700</bug_when>
    <thetext>Comment on attachment 401057
Patch v1

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

&gt;&gt;&gt; Source/WebKit/Shared/Plugins/PluginProcessAttributes.h:38
&gt;&gt;&gt; +enum class PluginProcessSandboxPolicy : uint8_t {
&gt;&gt; 
&gt;&gt; Ditto.
&gt; 
&gt; Ditto.

If you use a boolean for storage, you don&apos;t need EnumTraits, because IPC knows there are only two valid values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659289</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-04 13:23:21 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 401057 [details]
&gt; Patch v1
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=401057&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/Shared/Plugins/PluginProcessAttributes.h:38
&gt; &gt;&gt;&gt; +enum class PluginProcessSandboxPolicy : uint8_t {
&gt; &gt;&gt; 
&gt; &gt;&gt; Ditto.
&gt; &gt; 
&gt; &gt; Ditto.
&gt; 
&gt; If you use a boolean for storage, you don&apos;t need EnumTraits, because IPC
&gt; knows there are only two valid values.

I&apos;m curious whether IPC checks for 0x0 and 0x1, or just 0x0 and any value with any bit set.  The latter seems less desirable to me if that&apos;s how it&apos;s implemented.  (I&apos;m not sure where to look for the implementation off the top of my head.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659299</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-06-04 13:34:06 -0700</bug_when>
    <thetext>This is the implementation:
return !t || t == 1;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659434</commentid>
    <comment_count>7</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-04 17:50:26 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #6)
&gt; This is the implementation:
&gt; return !t || t == 1;

Thanks!  I remembered after I posted the last comment that this was a change to Source/WTF/wtf/EnumTraits.h in Bug 190731.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659436</commentid>
    <comment_count>8</comment_count>
      <attachid>401105</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-04 17:59:58 -0700</bug_when>
    <thetext>Created attachment 401105
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659486</commentid>
    <comment_count>9</comment_count>
      <attachid>401105</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-04 22:30:44 -0700</bug_when>
    <thetext>Comment on attachment 401105
Patch for landing

Marking cq+ since all bots are green except JSC, but there are no changes affecting JSC in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659487</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-04 22:36:37 -0700</bug_when>
    <thetext>Committed r262598: &lt;https://trac.webkit.org/changeset/262598&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 401105.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1659589</commentid>
    <comment_count>11</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-06-05 08:04:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/64029049&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401057</attachid>
            <date>2020-06-04 11:44:10 -0700</date>
            <delta_ts>2020-06-04 18:03:43 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-212758-20200604114426.patch</filename>
            <type>text/plain</type>
            <size>19218</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjNmU1YTFkNWYyMTJlOTY1
ZGM4MTZlOTA0YjNjODBjZmQzN2JiYmMuLmJkMjY1MzI2YmFhMGI5MjU4MDg3ZWQ1NjZiMjA0ZmM5
ODBkZTA1YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMjAtMDYtMDQgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBbSVBDXSBBZG9wdCBFbnVtVHJh
aXRzIGFuZCBlbnVtIGNsYXNzIGZvciBQbHVnaW5Qcm9jZXNzVHlwZSBhbmQgUGx1Z2luUHJvY2Vz
c1NhbmRib3hQb2xpY3kKKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIxMjc1OD4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdW1tYXJ5Ogor
ICAgICAgICAtIENvbnZlcnQgUGx1Z2luUHJvY2Vzc1R5cGUgYW5kIFBsdWdpblByb2Nlc3NTYW5k
Ym94UG9saWN5IHRvCisgICAgICAgICAgZW51bSBjbGFzcy4KKyAgICAgICAgLSBBZGQgRW51bVRy
YWl0czw+IGZvciBib3RoIHR5cGVzLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvUGx1
Z2luUHJvY2Vzc01hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzczo6cGxhdGZv
cm1Jbml0aWFsaXplUGx1Z2luUHJvY2Vzcyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0F0dHJpYnV0
ZXMuaDoKKyAgICAgICAgKCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNz
TWFuYWdlcjo6ZmV0Y2hXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nl
c3NNYW5hZ2VyOjpkZWxldGVXZWJzaXRlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3NNYW5hZ2VyOjpkZWxldGVXZWJzaXRlRGF0YUZvckhvc3ROYW1lcyk6CisgICAgICAgICog
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zV2l0aEF0
dHJpYnV0ZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6Y3JlYXRlUGx1Z2luKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6Y2FuUGx1Z2luSGFuZGxlUmVzcG9uc2UpOgorCiAyMDIwLTA2LTAyICBDaHJpc3RvcGhl
ciBSZWlkICA8Y2hyaXMucmVpZEBzb255LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OW3IyNjA4
NDRdOiBbR1RLXVtXUEVdIEluc3BlY3RvciBHUmVzb3VyY2Ugbm8gbG9uZ2VyIHVwZGF0ZWQgYWZ0
ZXIgV2ViSW5zcGVjdG9yVUkgZmlsZSB1cGRhdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1Bs
dWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KaW5kZXggMGY4YWEzMWZjYmMxNzg4
ZWNiMTIxMzhhNmJiNGU4M2VmMTdhMjE2MC4uZjBlYWQ2NGYwZTA5ZTE5YTllODZkMjUzNjkwNmY3
ZDQ3MWRlMGY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9Q
bHVnaW5Qcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMv
UGx1Z2luUHJvY2Vzc01hYy5tbQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKQEAgLTM4NCw3ICszODQsNyBAQCBzdGF0aWMgdm9pZCBtdXRlQXVkaW8odm9pZCkKIHZv
aWQgUGx1Z2luUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Q
cm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKIHsKICAgICBtX2NvbXBvc2l0
aW5nUmVuZGVyU2VydmVyUG9ydCA9IFdURk1vdmUocGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBv
c2l0aW5nUG9ydCk7Ci0gICAgaWYgKHBhcmFtZXRlcnMucHJvY2Vzc1R5cGUgPT0gUGx1Z2luUHJv
Y2Vzc1R5cGVTbmFwc2hvdCkKKyAgICBpZiAocGFyYW1ldGVycy5wcm9jZXNzVHlwZSA9PSBQbHVn
aW5Qcm9jZXNzVHlwZTo6U25hcHNob3QpCiAgICAgICAgIG11dGVBdWRpbygpOwogCiAgICAgW05T
VVJMQ2FjaGUgc2V0U2hhcmVkVVJMQ2FjaGU6YWRvcHROUyhbW05TVVJMQ2FjaGUgYWxsb2NdCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAzZmRkODA0OWQ0OTYw
OGJhZWQwYWUwNmU2ZWJkMDcxNGMxNzg2OTJhLi5lNTU2ODFjMzRmNWE2NDY3ZmYyOGIzNDIyNjk2
MGIyNzEzMWJkZjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21l
c3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkK
QEAgLTI0MCw2ICsyNDAsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNs
YXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpNRE5TUmVnaXN0ZXJJZGVudGlmaWVyJywKICAgICAg
ICAgJ1dlYktpdDo6TWVkaWFQbGF5ZXJQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCiAgICAgICAg
ICdXZWJLaXQ6Ok1lZGlhUmVjb3JkZXJJZGVudGlmaWVyJywKKyAgICAgICAgJ1dlYktpdDo6UGx1
Z2luUHJvY2Vzc1R5cGUnLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVBdWRpb0Rlc3RpbmF0aW9u
SWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlJlbW90ZUF1ZGlvU2Vzc2lvbklkZW50aWZp
ZXInLAogICAgICAgICAnV2ViS2l0OjpSZW1vdGVDRE1JZGVudGlmaWVyJywKQEAgLTY2MSw2ICs2
NjIsNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6UGFn
ZVN0YXRlJzogWyciU2Vzc2lvblN0YXRlLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OlBheW1lbnRT
ZXR1cENvbmZpZ3VyYXRpb24nOiBbJyJQYXltZW50U2V0dXBDb25maWd1cmF0aW9uV2ViS2l0Lmgi
J10sCiAgICAgICAgICdXZWJLaXQ6OlBheW1lbnRTZXR1cEZlYXR1cmVzJzogWyciQXBwbGVQYXlQ
YXltZW50U2V0dXBGZWF0dXJlc1dlYktpdC5oIiddLAorICAgICAgICAnV2ViS2l0OjpQbHVnaW5Q
cm9jZXNzVHlwZSc6IFsnIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiJ10sCiAgICAgICAgICdX
ZWJLaXQ6OlJlc3BlY3RTZWxlY3Rpb25BbmNob3InOiBbJyJHZXN0dXJlVHlwZXMuaCInXSwKICAg
ICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uRmxhZ3MnOiBbJyJHZXN0dXJlVHlwZXMuaCInXSwKICAg
ICAgICAgJ1dlYktpdDo6U2VsZWN0aW9uVG91Y2gnOiBbJyJHZXN0dXJlVHlwZXMuaCInXSwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0F0dHJp
YnV0ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0F0dHJp
YnV0ZXMuaAppbmRleCBiNGU3ODA4YWJiYmU1MWQ1MDEyMTFkODdiMDJkZDVkNDI1YTM5MDZkLi45
ZTc3Yzk3OGFhMmNhZGM5ODBhMGEyODg2NTQ1NzRiN2I0ODdmZWI5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIz
LDIxICsyMywyMSBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAK
LSNpZm5kZWYgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXNfaAotI2RlZmluZSBQbHVnaW5Qcm9jZXNz
QXR0cmlidXRlc19oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIlBsdWdpbk1vZHVsZUluZm8u
aCIKKyNpbmNsdWRlIDx3dGYvRW51bVRyYWl0cy5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
ZW51bSBQbHVnaW5Qcm9jZXNzVHlwZSB7Ci0gICAgUGx1Z2luUHJvY2Vzc1R5cGVOb3JtYWwsCi0g
ICAgUGx1Z2luUHJvY2Vzc1R5cGVTbmFwc2hvdCwKK2VudW0gY2xhc3MgUGx1Z2luUHJvY2Vzc1R5
cGUgOiB1aW50OF90IHsKKyAgICBOb3JtYWwsCisgICAgU25hcHNob3QsCiB9OwogCi1lbnVtIFBs
dWdpblByb2Nlc3NTYW5kYm94UG9saWN5IHsKLSAgICBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGlj
eU5vcm1hbCwKLSAgICBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeVVuc2FuZGJveGVkLAorZW51
bSBjbGFzcyBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSA6IHVpbnQ4X3QgeworICAgIE5vcm1h
bCwKKyAgICBVbnNhbmRib3hlZCwKIH07CiAKIHN0cnVjdCBQbHVnaW5Qcm9jZXNzQXR0cmlidXRl
cyB7CkBAIC00OCw0ICs0OCwyMiBAQCBzdHJ1Y3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMgewog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI2VuZGlmIC8vIFBsdWdpblByb2Nlc3NBdHRyaWJ1
dGVzX2gKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdl
YktpdDo6UGx1Z2luUHJvY2Vzc1R5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVz
PAorICAgIFdlYktpdDo6UGx1Z2luUHJvY2Vzc1R5cGUsCisgICAgV2ViS2l0OjpQbHVnaW5Qcm9j
ZXNzVHlwZTo6Tm9ybWFsLAorICAgIFdlYktpdDo6UGx1Z2luUHJvY2Vzc1R5cGU6OlNuYXBzaG90
CisgICAgPjsKK307CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViS2l0OjpQbHVn
aW5Qcm9jZXNzU2FuZGJveFBvbGljeT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8
CisgICAgV2ViS2l0OjpQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSwKKyAgICBXZWJLaXQ6OlBs
dWdpblByb2Nlc3NTYW5kYm94UG9saWN5OjpOb3JtYWwsCisgICAgV2ViS2l0OjpQbHVnaW5Qcm9j
ZXNzU2FuZGJveFBvbGljeTo6VW5zYW5kYm94ZWQKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc01hbmFnZXIuY3BwCmluZGV4IDExOTNjYzZiZTZhYmY5Yjg4YTZlYzA2MmYyODcy
MThmODNjNTQxODYuLmZiNzIyYmM1YWRmYmNlMjk2MjI4ZjcwNTkyYTIyYmU5MmVjOTBkYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMTA1LDcgKzEwNSw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc01h
bmFnZXI6OnJlbW92ZVBsdWdpblByb2Nlc3NQcm94eShQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdp
blByCiAKIHZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OmZldGNoV2Vic2l0ZURhdGEoY29uc3Qg
UGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlv
bj4gZmV0Y2hPcHRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFZlY3RvcjxTdHJpbmc+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRvIHRva2VuID0gcGx1Z2luUHJvY2Vzc1Rva2Vu
KHBsdWdpbiwgUGx1Z2luUHJvY2Vzc1R5cGVOb3JtYWwsIFBsdWdpblByb2Nlc3NTYW5kYm94UG9s
aWN5Tm9ybWFsKTsKKyAgICBhdXRvIHRva2VuID0gcGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwg
UGx1Z2luUHJvY2Vzc1R5cGU6Ok5vcm1hbCwgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3k6Ok5v
cm1hbCk7CiAgICAgYXV0byBwbHVnaW5Qcm9jZXNzID0gZmV0Y2hPcHRpb25zLmNvbnRhaW5zKFdl
YnNpdGVEYXRhRmV0Y2hPcHRpb246OkRvTm90Q3JlYXRlUHJvY2Vzc2VzKSA/IGdldFBsdWdpblBy
b2Nlc3ModG9rZW4pIDogZ2V0T3JDcmVhdGVQbHVnaW5Qcm9jZXNzKHRva2VuKTsKICAgICBpZiAo
IXBsdWdpblByb2Nlc3MpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKQEAgLTEx
NywxMyArMTE3LDEzIEBAIHZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OmZldGNoV2Vic2l0ZURh
dGEoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBPcHRpCiAKIHZvaWQgUGx1Z2luUHJv
Y2Vzc01hbmFnZXI6OmRlbGV0ZVdlYnNpdGVEYXRhKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBs
dWdpbiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewotICAgIFBsdWdpblByb2Nlc3NQcm94eSogcGx1Z2luUHJvY2Vz
cyA9IGdldE9yQ3JlYXRlUGx1Z2luUHJvY2VzcyhwbHVnaW5Qcm9jZXNzVG9rZW4ocGx1Z2luLCBQ
bHVnaW5Qcm9jZXNzVHlwZU5vcm1hbCwgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3lOb3JtYWwp
KTsKKyAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3MgPSBnZXRPckNyZWF0ZVBs
dWdpblByb2Nlc3MocGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgUGx1Z2luUHJvY2Vzc1R5cGU6
Ok5vcm1hbCwgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3k6Ok5vcm1hbCkpOwogICAgIHBsdWdp
blByb2Nlc3MtPmRlbGV0ZVdlYnNpdGVEYXRhKG1vZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6ZGVsZXRlV2Vi
c2l0ZURhdGFGb3JIb3N0TmFtZXMoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgaG9zdE5hbWVzLFdURjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKLSAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3Mg
PSBnZXRPckNyZWF0ZVBsdWdpblByb2Nlc3MocGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgUGx1
Z2luUHJvY2Vzc1R5cGVOb3JtYWwsIFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5Tm9ybWFsKSk7
CisgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KiBwbHVnaW5Qcm9jZXNzID0gZ2V0T3JDcmVhdGVQbHVn
aW5Qcm9jZXNzKHBsdWdpblByb2Nlc3NUb2tlbihwbHVnaW4sIFBsdWdpblByb2Nlc3NUeXBlOjpO
b3JtYWwsIFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5OjpOb3JtYWwpKTsKICAgICBwbHVnaW5Q
cm9jZXNzLT5kZWxldGVXZWJzaXRlRGF0YUZvckhvc3ROYW1lcyhob3N0TmFtZXMsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ2MDY3NjZjNjkzODM4
NWEyYjNjM2RkMzNmOWM2ZTJlYzBmMTU0OTUuLjJjY2E2ZDk4Y2RhOGEyOWRlMmRiNTk3OWQzZWE1
NDg2Y2YwNmE0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBQbHVn
aW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6
OkNvbm5lY3Rpb246OkkKICAgICAKICAgICBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJz
IHBhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5wcm9jZXNzVHlwZSA9IG1fcGx1Z2luUHJvY2Vz
c0F0dHJpYnV0ZXMucHJvY2Vzc1R5cGU7Ci0gICAgaWYgKHBhcmFtZXRlcnMucHJvY2Vzc1R5cGUg
PT0gUGx1Z2luUHJvY2Vzc1R5cGVTbmFwc2hvdCkgeworICAgIGlmIChwYXJhbWV0ZXJzLnByb2Nl
c3NUeXBlID09IFBsdWdpblByb2Nlc3NUeXBlOjpTbmFwc2hvdCkgewogICAgICAgICBwYXJhbWV0
ZXJzLm1pbmltdW1MaWZldGltZSA9IHNuYXBzaG90dGluZ01pbmltdW1MaWZldGltZTsKICAgICAg
ICAgcGFyYW1ldGVycy50ZXJtaW5hdGlvblRpbWVvdXQgPSBzbmFwc2hvdHRpbmdTaHV0ZG93blRp
bWVvdXQ7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQppbmRleCAyY2U3YjU3
NTMyMTQ5YmZmZjRkYTk3ZWVmOTUyZjY5ZTZlNTdjMzJlLi42MDI0YTBkNmQ4ZjBiNzFiODM0Yjk4
OTNiMzg0NWRiNjI0ZDYyYWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
bHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjksNyAr
NjksNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25z
V2l0aEF0dHJpYnV0ZXMoUHJvY2Vzc0xhdW5jaGVyOgogICAgIGlmIChQbHVnaW5Qcm9jZXNzTWFu
YWdlcjo6c2luZ2xldG9uKCkuZXhwZXJpbWVudGFsUGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxl
ZCgpKQogICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgi
ZXhwZXJpbWVudGFsLXNhbmRib3gtcGx1Z2luIiwgIjEiKTsKIAotICAgIGlmIChwbHVnaW5Qcm9j
ZXNzQXR0cmlidXRlcy5zYW5kYm94UG9saWN5ID09IFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5
VW5zYW5kYm94ZWQpIHsKKyAgICBpZiAocGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMuc2FuZGJveFBv
bGljeSA9PSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeTo6VW5zYW5kYm94ZWQpIHsKICAgICAg
ICAgaWYgKCFjdXJyZW50UHJvY2Vzc0lzU2FuZGJveGVkKCkpCiAgICAgICAgICAgICBsYXVuY2hP
cHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiZGlzYWJsZS1zYW5kYm94IiwgIjEi
KTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
aW5kZXggMGZjOWI4ZTVjZDAzNjQ4ZWYxYjkzZGJiZTRhYzQxZjAzNjlkZDY4Ny4uNGVmYzNhMzg3
YjE2OGIyOTQzMThhYjBmMGE2MjUyMDgyMjYxMjQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yNzczLDcgKzI3NzMsNyBAQCBXZWJQcmVmZXJlbmNlc1N0
b3JlIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNTdG9yZSgpIGNvbnN0CiB9CiAKICNpZiBFTkFC
TEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLXZvaWQgV2ViUGFnZVByb3h5OjpmaW5kUGx1Z2luKGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcm
IHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBw
YWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucywgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbjo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQbHVnaW5Qcm9j
ZXNzVHlwZSBwcm9jZXNzVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxv
d09ubHlBcHBsaWNhdGlvblBsdWdpbnMsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVn
aW46OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJv
dGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTI4MDMsMTMgKzI4MDMsMTMgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJv
Y2Vzc1R5cGUsIGNvbnMKICNlbmRpZgogCiAgICAgYXV0byBmaW5kUGx1Z2luQ29tcGxldGlvbiA9
IFtwcm9jZXNzVHlwZSwgcmVwbHkgPSBXVEZNb3ZlKHJlcGx5KSwgbmV3TWltZVR5cGUgPSBXVEZN
b3ZlKG5ld01pbWVUeXBlKSwgcGx1Z2luID0gV1RGTW92ZShwbHVnaW4pXSAodWludDMyX3QgcGx1
Z2luTG9hZFBvbGljeSwgY29uc3QgU3RyaW5nJiB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSBt
dXRhYmxlIHsKLSAgICAgICAgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgcGx1Z2luUHJvY2Vz
c1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeU5vcm1hbDsKKyAgICAg
ICAgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kg
PSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeTo6Tm9ybWFsOwogICAgICAgICBzd2l0Y2ggKHBs
dWdpbkxvYWRQb2xpY3kpIHsKICAgICAgICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkTm9ybWFsbHk6
Ci0gICAgICAgICAgICBwbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSA9IFBsdWdpblByb2Nlc3NT
YW5kYm94UG9saWN5Tm9ybWFsOworICAgICAgICAgICAgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xp
Y3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeTo6Tm9ybWFsOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgUGx1Z2luTW9kdWxlTG9hZFVuc2FuZGJveGVkOgotICAgICAgICAg
ICAgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGlj
eVVuc2FuZGJveGVkOworICAgICAgICAgICAgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQ
bHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeTo6VW5zYW5kYm94ZWQ7CiAgICAgICAgICAgICBicmVh
azsKIAogICAgICAgICBjYXNlIFBsdWdpbk1vZHVsZUJsb2NrZWRGb3JTZWN1cml0eToKQEAgLTI4
MTgsNyArMjgxOCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpmaW5kUGx1Z2luKGNvbnN0IFN0cmlu
ZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBjb25zCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICByZXBseShQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2lu
Z2xldG9uKCkucGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgc3RhdGljX2Nhc3Q8UGx1Z2luUHJv
Y2Vzc1R5cGU+KHByb2Nlc3NUeXBlKSwgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kpLCBuZXdN
aW1lVHlwZSwgcGx1Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgZmFs
c2UpOworICAgICAgICByZXBseShQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkucGx1
Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgcHJvY2Vzc1R5cGUsIHBsdWdpblByb2Nlc3NTYW5kYm94
UG9saWN5KSwgbmV3TWltZVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZhaWxhYmlsaXR5RGVz
Y3JpcHRpb24sIGZhbHNlKTsKICAgICB9OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDdiYTlmOGI1ZWMwNzcwMjMwYjNkMjll
NWI3YWUwZjY1YjdlNjVjNzIuLmUxNWU4YmE2MDE2M2Q2YzcxYTk0ZTU2NzQ2YTM5MWJlOGRjMzVk
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC00MSw2ICs0MSw3
IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiUGFnZUxvYWRTdGF0ZS5o
IgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSAiUG9saWN5
RGVjaXNpb24uaCIKICNpbmNsdWRlICJQcm9jZXNzVGVybWluYXRpb25SZWFzb24uaCIKICNpbmNs
dWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCkBAIC0yMjA0LDcgKzIyMDUsNyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGZpbmRQ
bHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBT
dHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luRGVsYXllZFJlcGx5JiYpOworICAgIHZv
aWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBXZWJLaXQ6OlBsdWdpblByb2Nl
c3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0
cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0
aW9uUGx1Z2lucywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbkRlbGF5ZWRSZXBs
eSYmKTsKICNlbmRpZgogCiAjaWYgVVNFKFFVSUNLX0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMmQyM2U0YjY2MGI4NmU2
Nzg2NDUwZWUzNzNkMjVjYWMxNWI4ZWM3ZS4uZDkzNTAyYTU4ZDY5MDdkODNkNWM2Mjc4YWZjMGQz
ZTVjOGI5NTQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtNDQ5LDcgKzQ0OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQotICAgIEZpbmRQ
bHVnaW4oU3RyaW5nIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgU3RyaW5nIHVybFN0
cmluZywgU3RyaW5nIGZyYW1lVVJMU3RyaW5nLCBTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBh
bGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMpIC0+ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4sIFN0cmluZyBuZXdNSU1FVHlwZSwgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5n
IHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGJvb2wgaXNVbnN1cHBvcnRlZCkgU3luY2hyb25v
dXMKKyAgICBGaW5kUGx1Z2luKFN0cmluZyBtaW1lVHlwZSwgV2ViS2l0OjpQbHVnaW5Qcm9jZXNz
VHlwZSBwcm9jZXNzVHlwZSwgU3RyaW5nIHVybFN0cmluZywgU3RyaW5nIGZyYW1lVVJMU3RyaW5n
LCBTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMp
IC0+ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmluZyBuZXdNSU1FVHlwZSwgdWlu
dDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24s
IGJvb2wgaXNVbnN1cHBvcnRlZCkgU3luY2hyb25vdXMKICNlbmRpZgogCiAgICAgRGlkVXBkYXRl
QWN0aXZpdHlTdGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDYwYjBlYTc5NjJkZTczNmJiMGJhNTM5ZmUxNDIxN2JjNGJjMGQ5MjcuLmY4
ZjJjYTY2YTZiZWExZDhkMjZmOGQwOTdhNjFjMTFhZjQzNDU4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMDA0LDkgKzEwMDQsOSBAQCBS
ZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1M
UGx1Z0luRWxlbWVudCogcGx1Z2luRQogI2lmIEVOQUJMRShQUklNQVJZX1NOQVBTSE9UVEVEX1BM
VUdJTl9IRVVSSVNUSUMpCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z2luSW1hZ2VF
bGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudD4oKnBsdWdpbkVsZW1lbnQp
OwogICAgIHVuc2lnbmVkIHBsdWdpbkFyZWEgPSAwOwotICAgIFBsdWdpblByb2Nlc3NUeXBlIHBy
b2Nlc3NUeXBlID0gcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVs
ZW1lbnQ6OldhaXRpbmdGb3JTbmFwc2hvdCAmJiAhKHBsdWdJbklzUHJpbWFyeVNpemUocGx1Z2lu
SW1hZ2VFbGVtZW50LCBwbHVnaW5BcmVhKSAmJiAhcGx1Z0luSW50ZXJzZWN0c1NlYXJjaFJlY3Qo
cGx1Z2luSW1hZ2VFbGVtZW50KSkgPyBQbHVnaW5Qcm9jZXNzVHlwZVNuYXBzaG90IDogUGx1Z2lu
UHJvY2Vzc1R5cGVOb3JtYWw7CisgICAgUGx1Z2luUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBw
bHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA9PSBIVE1MUGx1Z0luRWxlbWVudDo6V2FpdGlu
Z0ZvclNuYXBzaG90ICYmICEocGx1Z0luSXNQcmltYXJ5U2l6ZShwbHVnaW5JbWFnZUVsZW1lbnQs
IHBsdWdpbkFyZWEpICYmICFwbHVnSW5JbnRlcnNlY3RzU2VhcmNoUmVjdChwbHVnaW5JbWFnZUVs
ZW1lbnQpKSA/IFBsdWdpblByb2Nlc3NUeXBlOjpTbmFwc2hvdCA6IFBsdWdpblByb2Nlc3NUeXBl
OjpOb3JtYWw7CiAjZWxzZQotICAgIFBsdWdpblByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gcGx1
Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1lbnQ6OldhaXRpbmdG
b3JTbmFwc2hvdCA/IFBsdWdpblByb2Nlc3NUeXBlU25hcHNob3QgOiBQbHVnaW5Qcm9jZXNzVHlw
ZU5vcm1hbDsKKyAgICBQbHVnaW5Qcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSA9IHBsdWdpbkVsZW1l
bnQtPmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVnSW5FbGVtZW50OjpXYWl0aW5nRm9yU25hcHNo
b3QgPyBQbHVnaW5Qcm9jZXNzVHlwZTo6U25hcHNob3QgOiBQbHVnaW5Qcm9jZXNzVHlwZTo6Tm9y
bWFsOwogI2VuZGlmCiAKICAgICBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFm
cmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmFyZVBsdWdpbnNFbmFibGVkKCk7CkBAIC0xMDE1
LDcgKzEwMTUsNyBAQCBSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJh
bWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRQogICAgIHVpbnQzMl90IHBsdWdp
bkxvYWRQb2xpY3k7CiAgICAgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb247CiAgICAg
Ym9vbCBpc1Vuc3VwcG9ydGVkOwotICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RmluZFBsdWdpbihwYXJhbWV0ZXJzLm1pbWVUeXBlLCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4ocHJvY2Vzc1R5cGUpLCBwYXJhbWV0ZXJzLnVybC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcs
IHBhZ2VVUkxTdHJpbmcsIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyksIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5KHBsdWdpblByb2Nlc3NUb2tlbiwgbmV3TUlN
RVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGlzVW5z
dXBwb3J0ZWQpKSkKKyAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZp
bmRQbHVnaW4ocGFyYW1ldGVycy5taW1lVHlwZSwgcHJvY2Vzc1R5cGUsIHBhcmFtZXRlcnMudXJs
LnN0cmluZygpLCBmcmFtZVVSTFN0cmluZywgcGFnZVVSTFN0cmluZywgYWxsb3dPbmx5QXBwbGlj
YXRpb25QbHVnaW5zKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbjo6UmVwbHko
cGx1Z2luUHJvY2Vzc1Rva2VuLCBuZXdNSU1FVHlwZSwgcGx1Z2luTG9hZFBvbGljeSwgdW5hdmFp
bGFiaWxpdHlEZXNjcmlwdGlvbiwgaXNVbnN1cHBvcnRlZCkpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIFBsdWdpbk1vZHVsZUxvYWRQb2xpY3kgbG9hZFBvbGljeSA9IHN0YXRpY19j
YXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBsdWdpbkxvYWRQb2xpY3kpOwpAQCAtNTMwMiw3
ICs1MzAyLDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5QbHVnaW5IYW5kbGVSZXNwb25zZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAgICBTdHJpbmcgbmV3TUlNRVR5cGU7CiAgICAg
U3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb247CiAgICAgYm9vbCBpc1Vuc3VwcG9ydGVk
ID0gZmFsc2U7Ci0gICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5k
UGx1Z2luKHJlc3BvbnNlLm1pbWVUeXBlKCksIFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsLCByZXNw
b25zZS51cmwoKS5zdHJpbmcoKSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIHJlc3BvbnNlLnVy
bCgpLnN0cmluZygpLCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpGaW5kUGx1Z2luOjpSZXBseShwbHVnaW5Qcm9jZXNzVG9rZW4sIG5ld01JTUVU
eXBlLCBwbHVnaW5Mb2FkUG9saWN5LCB1bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uLCBpc1Vuc3Vw
cG9ydGVkKSkpCisgICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5k
UGx1Z2luKHJlc3BvbnNlLm1pbWVUeXBlKCksIFBsdWdpblByb2Nlc3NUeXBlOjpOb3JtYWwsIHJl
c3BvbnNlLnVybCgpLnN0cmluZygpLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgcmVzcG9uc2Uu
dXJsKCkuc3RyaW5nKCksIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyksIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5KHBsdWdpblByb2Nlc3NUb2tlbiwgbmV3TUlN
RVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGlzVW5z
dXBwb3J0ZWQpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQVNTRVJUKCFpc1Vuc3Vw
cG9ydGVkKTsK
</data>
<flag name="review"
          id="416447"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>401105</attachid>
            <date>2020-06-04 17:59:58 -0700</date>
            <delta_ts>2020-06-04 22:36:37 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-212758-20200604180016.patch</filename>
            <type>text/plain</type>
            <size>18618</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJjNmU1YTFkNWYyMTJlOTY1
ZGM4MTZlOTA0YjNjODBjZmQzN2JiYmMuLmQxMjA0YzZhNDlhMTFjYTI5YmE0ZTFiYjEzODA3MmZm
MWYyMGRhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMjAtMDYtMDQgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBbSVBDXSBBZG9wdCBlbnVtIGNs
YXNzIGZvciBQbHVnaW5Qcm9jZXNzVHlwZSBhbmQgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kK
KyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzIxMjc1OD4KKworICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL1BsdWdpblBy
b2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsYXRmb3JtSW5p
dGlhbGl6ZVBsdWdpblByb2Nlc3MpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2Vz
LnB5OgorICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmg6
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NUeXBlKTogQ29udmVydCB0byBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSk6IERpdHRv
LgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6OmZldGNoV2Vic2l0ZURhdGEp
OgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6ZGVsZXRlV2Vic2l0ZURh
dGEpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6ZGVsZXRlV2Vic2l0
ZURhdGFGb3JIb3N0TmFtZXMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6ZGlk
RmluaXNoTGF1bmNoaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2lu
UHJvY2Vzc1Byb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6
OnBsYXRmb3JtR2V0TGF1bmNoT3B0aW9uc1dpdGhBdHRyaWJ1dGVzKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpm
aW5kUGx1Z2luKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNyZWF0
ZVBsdWdpbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblBsdWdpbkhhbmRsZVJlc3Bv
bnNlKToKKwogMjAyMC0wNi0wMiAgQ2hyaXN0b3BoZXIgUmVpZCAgPGNocmlzLnJlaWRAc29ueS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTltyMjYwODQ0XTogW0dUS11bV1BFXSBJbnNwZWN0b3Ig
R1Jlc291cmNlIG5vIGxvbmdlciB1cGRhdGVkIGFmdGVyIFdlYkluc3BlY3RvclVJIGZpbGUgdXBk
YXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Q
cm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdC9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9j
ZXNzTWFjLm1tCmluZGV4IDBmOGFhMzFmY2JjMTc4OGVjYjEyMTM4YTZiYjRlODNlZjE3YTIxNjAu
LmYwZWFkNjRmMGUwOWUxOWE5ZTg2ZDI1MzY5MDZmN2Q0NzFkZTBmNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NNYWMubW0KQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zODQsNyArMzg0LDcgQEAg
c3RhdGljIHZvaWQgbXV0ZUF1ZGlvKHZvaWQpCiB2b2lkIFBsdWdpblByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYm
IHBhcmFtZXRlcnMpCiB7CiAgICAgbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQgPSBXVEZN
b3ZlKHBhcmFtZXRlcnMuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQpOwotICAgIGlmIChwYXJh
bWV0ZXJzLnByb2Nlc3NUeXBlID09IFBsdWdpblByb2Nlc3NUeXBlU25hcHNob3QpCisgICAgaWYg
KHBhcmFtZXRlcnMucHJvY2Vzc1R5cGUgPT0gUGx1Z2luUHJvY2Vzc1R5cGU6OlNuYXBzaG90KQog
ICAgICAgICBtdXRlQXVkaW8oKTsKIAogICAgIFtOU1VSTENhY2hlIHNldFNoYXJlZFVSTENhY2hl
OmFkb3B0TlMoW1tOU1VSTENhY2hlIGFsbG9jXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggM2ZkZDgwNDlkNDk2MDhiYWVkMGFlMDZlNmViZDA3MTRjMTc4Njky
YS4uZTU1NjgxYzM0ZjVhNjQ2N2ZmMjhiMzQyMjY5NjBiMjcxMzFiZGY0NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yNDAsNiArMjQwLDcgQEAgZGVmIHR5
cGVzX3RoYXRfY2Fubm90X2JlX2ZvcndhcmRfZGVjbGFyZWQoKToKICAgICAgICAgJ1dlYktpdDo6
TUROU1JlZ2lzdGVySWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6Ok1lZGlhUGxheWVyUHJp
dmF0ZVJlbW90ZUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpNZWRpYVJlY29yZGVySWRl
bnRpZmllcicsCisgICAgICAgICdXZWJLaXQ6OlBsdWdpblByb2Nlc3NUeXBlJywKICAgICAgICAg
J1dlYktpdDo6UmVtb3RlQXVkaW9EZXN0aW5hdGlvbklkZW50aWZpZXInLAogICAgICAgICAnV2Vi
S2l0OjpSZW1vdGVBdWRpb1Nlc3Npb25JZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6UmVt
b3RlQ0RNSWRlbnRpZmllcicsCkBAIC02NjEsNiArNjYyLDcgQEAgZGVmIGhlYWRlcnNfZm9yX3R5
cGUodHlwZSk6CiAgICAgICAgICdXZWJLaXQ6OlBhZ2VTdGF0ZSc6IFsnIlNlc3Npb25TdGF0ZS5o
IiddLAogICAgICAgICAnV2ViS2l0OjpQYXltZW50U2V0dXBDb25maWd1cmF0aW9uJzogWyciUGF5
bWVudFNldHVwQ29uZmlndXJhdGlvbldlYktpdC5oIiddLAogICAgICAgICAnV2ViS2l0OjpQYXlt
ZW50U2V0dXBGZWF0dXJlcyc6IFsnIkFwcGxlUGF5UGF5bWVudFNldHVwRmVhdHVyZXNXZWJLaXQu
aCInXSwKKyAgICAgICAgJ1dlYktpdDo6UGx1Z2luUHJvY2Vzc1R5cGUnOiBbJyJQbHVnaW5Qcm9j
ZXNzQXR0cmlidXRlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpSZXNwZWN0U2VsZWN0aW9uQW5j
aG9yJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OlNlbGVjdGlvbkZs
YWdzJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJLaXQ6OlNlbGVjdGlvblRv
dWNoJzogWyciR2VzdHVyZVR5cGVzLmgiJ10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmggYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgKaW5kZXggYjRlNzgwOGFiYmJl
NTFkNTAxMjExZDg3YjAyZGQ1ZDQyNWEzOTA2ZC4uMjFjOTUyYTY2M2I5YzY0NmIzMDMxNjljYjZm
OGJkZDc4OGEyNDA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvUGx1Z2lucy9Q
bHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywyMSArMjMsMjEgQEAKICAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFBsdWdpblByb2Nlc3NBdHRy
aWJ1dGVzX2gKLSNkZWZpbmUgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXNfaAorI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJQbHVnaW5Nb2R1bGVJbmZvLmgiCisjaW5jbHVkZSA8d3RmL0VudW1UcmFp
dHMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWVudW0gUGx1Z2luUHJvY2Vzc1R5cGUgewot
ICAgIFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsLAotICAgIFBsdWdpblByb2Nlc3NUeXBlU25hcHNo
b3QsCitlbnVtIGNsYXNzIFBsdWdpblByb2Nlc3NUeXBlIDogYm9vbCB7CisgICAgTm9ybWFsLAor
ICAgIFNuYXBzaG90LAogfTsKIAotZW51bSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSB7Ci0g
ICAgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3lOb3JtYWwsCi0gICAgUGx1Z2luUHJvY2Vzc1Nh
bmRib3hQb2xpY3lVbnNhbmRib3hlZCwKK2VudW0gY2xhc3MgUGx1Z2luUHJvY2Vzc1NhbmRib3hQ
b2xpY3kgOiBib29sIHsKKyAgICBOb3JtYWwsCisgICAgVW5zYW5kYm94ZWQsCiB9OwogCiBzdHJ1
Y3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMgewpAQCAtNDcsNSArNDcsMyBAQCBzdHJ1Y3QgUGx1
Z2luUHJvY2Vzc0F0dHJpYnV0ZXMgewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNl
bmRpZiAvLyBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCmluZGV4IDEx
OTNjYzZiZTZhYmY5Yjg4YTZlYzA2MmYyODcyMThmODNjNTQxODYuLmZiNzIyYmM1YWRmYmNlMjk2
MjI4ZjcwNTkyYTIyYmU5MmVjOTBkYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTA1LDcgKzEw
NSw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnJlbW92ZVBsdWdpblByb2Nlc3NQcm94
eShQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByCiAKIHZvaWQgUGx1Z2luUHJvY2Vzc01hbmFn
ZXI6OmZldGNoV2Vic2l0ZURhdGEoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBPcHRp
b25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBXVEY6OkZ1bmN0aW9u
PHZvaWQgKFZlY3RvcjxTdHJpbmc+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBhdXRv
IHRva2VuID0gcGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgUGx1Z2luUHJvY2Vzc1R5cGVOb3Jt
YWwsIFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5Tm9ybWFsKTsKKyAgICBhdXRvIHRva2VuID0g
cGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgUGx1Z2luUHJvY2Vzc1R5cGU6Ok5vcm1hbCwgUGx1
Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3k6Ok5vcm1hbCk7CiAgICAgYXV0byBwbHVnaW5Qcm9jZXNz
ID0gZmV0Y2hPcHRpb25zLmNvbnRhaW5zKFdlYnNpdGVEYXRhRmV0Y2hPcHRpb246OkRvTm90Q3Jl
YXRlUHJvY2Vzc2VzKSA/IGdldFBsdWdpblByb2Nlc3ModG9rZW4pIDogZ2V0T3JDcmVhdGVQbHVn
aW5Qcm9jZXNzKHRva2VuKTsKICAgICBpZiAoIXBsdWdpblByb2Nlc3MpIHsKICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoeyB9KTsKQEAgLTExNywxMyArMTE3LDEzIEBAIHZvaWQgUGx1Z2luUHJv
Y2Vzc01hbmFnZXI6OmZldGNoV2Vic2l0ZURhdGEoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1
Z2luLCBPcHRpCiAKIHZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OmRlbGV0ZVdlYnNpdGVEYXRh
KGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwg
V1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFBsdWdp
blByb2Nlc3NQcm94eSogcGx1Z2luUHJvY2VzcyA9IGdldE9yQ3JlYXRlUGx1Z2luUHJvY2Vzcyhw
bHVnaW5Qcm9jZXNzVG9rZW4ocGx1Z2luLCBQbHVnaW5Qcm9jZXNzVHlwZU5vcm1hbCwgUGx1Z2lu
UHJvY2Vzc1NhbmRib3hQb2xpY3lOb3JtYWwpKTsKKyAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBs
dWdpblByb2Nlc3MgPSBnZXRPckNyZWF0ZVBsdWdpblByb2Nlc3MocGx1Z2luUHJvY2Vzc1Rva2Vu
KHBsdWdpbiwgUGx1Z2luUHJvY2Vzc1R5cGU6Ok5vcm1hbCwgUGx1Z2luUHJvY2Vzc1NhbmRib3hQ
b2xpY3k6Ok5vcm1hbCkpOwogICAgIHBsdWdpblByb2Nlc3MtPmRlbGV0ZVdlYnNpdGVEYXRhKG1v
ZGlmaWVkU2luY2UsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBQbHVn
aW5Qcm9jZXNzTWFuYWdlcjo6ZGVsZXRlV2Vic2l0ZURhdGFGb3JIb3N0TmFtZXMoY29uc3QgUGx1
Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgaG9zdE5hbWVzLFdU
Rjo6RnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBQbHVnaW5Q
cm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3MgPSBnZXRPckNyZWF0ZVBsdWdpblByb2Nlc3MocGx1
Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgUGx1Z2luUHJvY2Vzc1R5cGVOb3JtYWwsIFBsdWdpblBy
b2Nlc3NTYW5kYm94UG9saWN5Tm9ybWFsKSk7CisgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KiBwbHVn
aW5Qcm9jZXNzID0gZ2V0T3JDcmVhdGVQbHVnaW5Qcm9jZXNzKHBsdWdpblByb2Nlc3NUb2tlbihw
bHVnaW4sIFBsdWdpblByb2Nlc3NUeXBlOjpOb3JtYWwsIFBsdWdpblByb2Nlc3NTYW5kYm94UG9s
aWN5OjpOb3JtYWwpKTsKICAgICBwbHVnaW5Qcm9jZXNzLT5kZWxldGVXZWJzaXRlRGF0YUZvckhv
c3ROYW1lcyhob3N0TmFtZXMsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJv
eHkuY3BwCmluZGV4IGQ2MDY3NjZjNjkzODM4NWEyYjNjM2RkMzNmOWM2ZTJlYzBmMTU0OTUuLjJj
Y2E2ZDk4Y2RhOGEyOWRlMmRiNTk3OWQzZWE1NDg2Y2YwNmE0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0yMzYsNyArMjM2LDcgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5j
aGluZyhQcm9jZXNzTGF1bmNoZXIqLCBJUEM6OkNvbm5lY3Rpb246OkkKICAgICAKICAgICBQbHVn
aW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAgICAgcGFyYW1ldGVycy5w
cm9jZXNzVHlwZSA9IG1fcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMucHJvY2Vzc1R5cGU7Ci0gICAg
aWYgKHBhcmFtZXRlcnMucHJvY2Vzc1R5cGUgPT0gUGx1Z2luUHJvY2Vzc1R5cGVTbmFwc2hvdCkg
eworICAgIGlmIChwYXJhbWV0ZXJzLnByb2Nlc3NUeXBlID09IFBsdWdpblByb2Nlc3NUeXBlOjpT
bmFwc2hvdCkgewogICAgICAgICBwYXJhbWV0ZXJzLm1pbmltdW1MaWZldGltZSA9IHNuYXBzaG90
dGluZ01pbmltdW1MaWZldGltZTsKICAgICAgICAgcGFyYW1ldGVycy50ZXJtaW5hdGlvblRpbWVv
dXQgPSBzbmFwc2hvdHRpbmdTaHV0ZG93blRpbWVvdXQ7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94
eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nl
c3NQcm94eU1hYy5tbQppbmRleCAyY2U3YjU3NTMyMTQ5YmZmZjRkYTk3ZWVmOTUyZjY5ZTZlNTdj
MzJlLi42MDI0YTBkNmQ4ZjBiNzFiODM0Yjk4OTNiMzg0NWRiNjI0ZDYyYWM1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJv
Y2Vzc1Byb3h5TWFjLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtNjksNyArNjksNyBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94
eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zV2l0aEF0dHJpYnV0ZXMoUHJvY2Vzc0xhdW5jaGVy
OgogICAgIGlmIChQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuZXhwZXJpbWVudGFs
UGx1Z0luU2FuZGJveFByb2ZpbGVzRW5hYmxlZCgpKQogICAgICAgICBsYXVuY2hPcHRpb25zLmV4
dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFkZCgiZXhwZXJpbWVudGFsLXNhbmRib3gtcGx1Z2luIiwg
IjEiKTsKIAotICAgIGlmIChwbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5zYW5kYm94UG9saWN5ID09
IFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5VW5zYW5kYm94ZWQpIHsKKyAgICBpZiAocGx1Z2lu
UHJvY2Vzc0F0dHJpYnV0ZXMuc2FuZGJveFBvbGljeSA9PSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBv
bGljeTo6VW5zYW5kYm94ZWQpIHsKICAgICAgICAgaWYgKCFjdXJyZW50UHJvY2Vzc0lzU2FuZGJv
eGVkKCkpCiAgICAgICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRh
LmFkZCgiZGlzYWJsZS1zYW5kYm94IiwgIjEiKTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMGZjOWI4ZTVjZDAzNjQ4ZWYxYjkzZGJi
ZTRhYzQxZjAzNjlkZDY4Ny4uNGVmYzNhMzg3YjE2OGIyOTQzMThhYjBmMGE2MjUyMDgyMjYxMjQy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yNzczLDcg
KzI3NzMsNyBAQCBXZWJQcmVmZXJlbmNlc1N0b3JlIFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNT
dG9yZSgpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLXZvaWQg
V2ViUGFnZVByb3h5OjpmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90
IHByb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBmcmFt
ZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3RyaW5nLCBib29sIGFsbG93T25seUFw
cGxpY2F0aW9uUGx1Z2lucywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbjo6RGVs
YXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZmluZFBsdWdpbihjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBQbHVnaW5Qcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMsIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewog
ICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKQEAgLTI4
MDMsMTMgKzI4MDMsMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnMKICNlbmRpZgogCiAgICAg
YXV0byBmaW5kUGx1Z2luQ29tcGxldGlvbiA9IFtwcm9jZXNzVHlwZSwgcmVwbHkgPSBXVEZNb3Zl
KHJlcGx5KSwgbmV3TWltZVR5cGUgPSBXVEZNb3ZlKG5ld01pbWVUeXBlKSwgcGx1Z2luID0gV1RG
TW92ZShwbHVnaW4pXSAodWludDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgY29uc3QgU3RyaW5nJiB1
bmF2YWlsYWJpbGl0eURlc2NyaXB0aW9uKSBtdXRhYmxlIHsKLSAgICAgICAgUGx1Z2luUHJvY2Vz
c1NhbmRib3hQb2xpY3kgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNz
U2FuZGJveFBvbGljeU5vcm1hbDsKKyAgICAgICAgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kg
cGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeTo6
Tm9ybWFsOwogICAgICAgICBzd2l0Y2ggKHBsdWdpbkxvYWRQb2xpY3kpIHsKICAgICAgICAgY2Fz
ZSBQbHVnaW5Nb2R1bGVMb2FkTm9ybWFsbHk6Ci0gICAgICAgICAgICBwbHVnaW5Qcm9jZXNzU2Fu
ZGJveFBvbGljeSA9IFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5Tm9ybWFsOworICAgICAgICAg
ICAgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGlj
eTo6Tm9ybWFsOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUGx1Z2luTW9kdWxl
TG9hZFVuc2FuZGJveGVkOgotICAgICAgICAgICAgcGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kg
PSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeVVuc2FuZGJveGVkOworICAgICAgICAgICAgcGx1
Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeTo6VW5z
YW5kYm94ZWQ7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFBsdWdpbk1vZHVs
ZUJsb2NrZWRGb3JTZWN1cml0eToKQEAgLTI4MTgsNyArMjgxOCw3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIHVpbnQzMl90IHByb2Nlc3NU
eXBlLCBjb25zCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICByZXBs
eShQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkucGx1Z2luUHJvY2Vzc1Rva2VuKHBs
dWdpbiwgc3RhdGljX2Nhc3Q8UGx1Z2luUHJvY2Vzc1R5cGU+KHByb2Nlc3NUeXBlKSwgcGx1Z2lu
UHJvY2Vzc1NhbmRib3hQb2xpY3kpLCBuZXdNaW1lVHlwZSwgcGx1Z2luTG9hZFBvbGljeSwgdW5h
dmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgZmFsc2UpOworICAgICAgICByZXBseShQbHVnaW5Qcm9j
ZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkucGx1Z2luUHJvY2Vzc1Rva2VuKHBsdWdpbiwgcHJvY2Vz
c1R5cGUsIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5KSwgbmV3TWltZVR5cGUsIHBsdWdpbkxv
YWRQb2xpY3ksIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGZhbHNlKTsKICAgICB9OwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDdiYTlmOGI1ZWMwNzcwMjMwYjNkMjllNWI3YWUwZjY1YjdlNjVjNzIuLmUxNWU4YmE2MDE2
M2Q2YzcxYTk0ZTU2NzQ2YTM5MWJlOGRjMzVkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5o
IgogI2luY2x1ZGUgIk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiUGFnZUxvYWRTdGF0ZS5oIgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRy
aWJ1dGVzLmgiCiAjaW5jbHVkZSAiUG9saWN5RGVjaXNpb24uaCIKICNpbmNsdWRlICJQcm9jZXNz
VGVybWluYXRpb25SZWFzb24uaCIKICNpbmNsdWRlICJQcm9jZXNzVGhyb3R0bGVyLmgiCkBAIC0y
MjA0LDcgKzIyMDUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoTkVUU0NBUEVf
UExVR0lOX0FQSSkKLSAgICB2b2lkIGZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
dWludDMyX3QgcHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxs
b3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1
Z2luRGVsYXllZFJlcGx5JiYpOworICAgIHZvaWQgZmluZFBsdWdpbihjb25zdCBTdHJpbmcmIG1p
bWVUeXBlLCBXZWJLaXQ6OlBsdWdpblByb2Nlc3NUeXBlLCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgU3RyaW5nJiBmcmFtZVVSTFN0cmluZywgY29uc3QgU3RyaW5nJiBwYWdlVVJMU3Ry
aW5nLCBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucywgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RmluZFBsdWdpbkRlbGF5ZWRSZXBseSYmKTsKICNlbmRpZgogCiAjaWYgVVNFKFFVSUNL
X0xPT0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggMmQyM2U0YjY2MGI4NmU2Nzg2NDUwZWUzNzNkMjVjYWMxNWI4ZWM3ZS4uZDkz
NTAyYTU4ZDY5MDdkODNkNWM2Mjc4YWZjMGQzZTVjOGI5NTQzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDQ5LDcgKzQ0OSw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQotICAgIEZpbmRQbHVnaW4oU3RyaW5nIG1pbWVUeXBlLCB1aW50MzJf
dCBwcm9jZXNzVHlwZSwgU3RyaW5nIHVybFN0cmluZywgU3RyaW5nIGZyYW1lVVJMU3RyaW5nLCBT
dHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMpIC0+
ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmluZyBuZXdNSU1FVHlwZSwgdWludDMy
X3QgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGJv
b2wgaXNVbnN1cHBvcnRlZCkgU3luY2hyb25vdXMKKyAgICBGaW5kUGx1Z2luKFN0cmluZyBtaW1l
VHlwZSwgV2ViS2l0OjpQbHVnaW5Qcm9jZXNzVHlwZSBwcm9jZXNzVHlwZSwgU3RyaW5nIHVybFN0
cmluZywgU3RyaW5nIGZyYW1lVVJMU3RyaW5nLCBTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBh
bGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMpIC0+ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4sIFN0cmluZyBuZXdNSU1FVHlwZSwgdWludDMyX3QgcGx1Z2luTG9hZFBvbGljeSwgU3RyaW5n
IHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRpb24sIGJvb2wgaXNVbnN1cHBvcnRlZCkgU3luY2hyb25v
dXMKICNlbmRpZgogCiAgICAgRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDYwYjBlYTc5NjJkZTczNmJi
MGJhNTM5ZmUxNDIxN2JjNGJjMGQ5MjcuLmY4ZjJjYTY2YTZiZWExZDhkMjZmOGQwOTdhNjFjMTFh
ZjQzNDU4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC0xMDA0LDkgKzEwMDQsOSBAQCBSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQ
bHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRQogI2lmIEVO
QUJMRShQUklNQVJZX1NOQVBTSE9UVEVEX1BMVUdJTl9IRVVSSVNUSUMpCiAgICAgSFRNTFBsdWdJ
bkltYWdlRWxlbWVudCYgcGx1Z2luSW1hZ2VFbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbklt
YWdlRWxlbWVudD4oKnBsdWdpbkVsZW1lbnQpOwogICAgIHVuc2lnbmVkIHBsdWdpbkFyZWEgPSAw
OwotICAgIFBsdWdpblByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gcGx1Z2luRWxlbWVudC0+ZGlz
cGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1lbnQ6OldhaXRpbmdGb3JTbmFwc2hvdCAmJiAh
KHBsdWdJbklzUHJpbWFyeVNpemUocGx1Z2luSW1hZ2VFbGVtZW50LCBwbHVnaW5BcmVhKSAmJiAh
cGx1Z0luSW50ZXJzZWN0c1NlYXJjaFJlY3QocGx1Z2luSW1hZ2VFbGVtZW50KSkgPyBQbHVnaW5Q
cm9jZXNzVHlwZVNuYXBzaG90IDogUGx1Z2luUHJvY2Vzc1R5cGVOb3JtYWw7CisgICAgUGx1Z2lu
UHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBwbHVnaW5FbGVtZW50LT5kaXNwbGF5U3RhdGUoKSA9
PSBIVE1MUGx1Z0luRWxlbWVudDo6V2FpdGluZ0ZvclNuYXBzaG90ICYmICEocGx1Z0luSXNQcmlt
YXJ5U2l6ZShwbHVnaW5JbWFnZUVsZW1lbnQsIHBsdWdpbkFyZWEpICYmICFwbHVnSW5JbnRlcnNl
Y3RzU2VhcmNoUmVjdChwbHVnaW5JbWFnZUVsZW1lbnQpKSA/IFBsdWdpblByb2Nlc3NUeXBlOjpT
bmFwc2hvdCA6IFBsdWdpblByb2Nlc3NUeXBlOjpOb3JtYWw7CiAjZWxzZQotICAgIFBsdWdpblBy
b2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0g
SFRNTFBsdWdJbkVsZW1lbnQ6OldhaXRpbmdGb3JTbmFwc2hvdCA/IFBsdWdpblByb2Nlc3NUeXBl
U25hcHNob3QgOiBQbHVnaW5Qcm9jZXNzVHlwZU5vcm1hbDsKKyAgICBQbHVnaW5Qcm9jZXNzVHlw
ZSBwcm9jZXNzVHlwZSA9IHBsdWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVn
SW5FbGVtZW50OjpXYWl0aW5nRm9yU25hcHNob3QgPyBQbHVnaW5Qcm9jZXNzVHlwZTo6U25hcHNo
b3QgOiBQbHVnaW5Qcm9jZXNzVHlwZTo6Tm9ybWFsOwogI2VuZGlmCiAKICAgICBib29sIGFsbG93
T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFmcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmFy
ZVBsdWdpbnNFbmFibGVkKCk7CkBAIC0xMDE1LDcgKzEwMTUsNyBAQCBSZWZQdHI8UGx1Z2luPiBX
ZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVudCog
cGx1Z2luRQogICAgIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3k7CiAgICAgU3RyaW5nIHVuYXZh
aWxhYmlsaXR5RGVzY3JpcHRpb247CiAgICAgYm9vbCBpc1Vuc3VwcG9ydGVkOwotICAgIGlmICgh
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbihwYXJhbWV0ZXJzLm1p
bWVUeXBlLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4ocHJvY2Vzc1R5cGUpLCBwYXJhbWV0ZXJzLnVy
bC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcsIGFsbG93T25seUFwcGxp
Y2F0aW9uUGx1Z2lucyksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5
KHBsdWdpblByb2Nlc3NUb2tlbiwgbmV3TUlNRVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZh
aWxhYmlsaXR5RGVzY3JpcHRpb24sIGlzVW5zdXBwb3J0ZWQpKSkKKyAgICBpZiAoIXNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW4ocGFyYW1ldGVycy5taW1lVHlwZSwg
cHJvY2Vzc1R5cGUsIHBhcmFtZXRlcnMudXJsLnN0cmluZygpLCBmcmFtZVVSTFN0cmluZywgcGFn
ZVVSTFN0cmluZywgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zKSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RmluZFBsdWdpbjo6UmVwbHkocGx1Z2luUHJvY2Vzc1Rva2VuLCBuZXdNSU1FVHlw
ZSwgcGx1Z2luTG9hZFBvbGljeSwgdW5hdmFpbGFiaWxpdHlEZXNjcmlwdGlvbiwgaXNVbnN1cHBv
cnRlZCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFBsdWdpbk1vZHVsZUxvYWRQ
b2xpY3kgbG9hZFBvbGljeSA9IHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xpY3k+KHBs
dWdpbkxvYWRQb2xpY3kpOwpAQCAtNTMwMiw3ICs1MzAyLDcgQEAgYm9vbCBXZWJQYWdlOjpjYW5Q
bHVnaW5IYW5kbGVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKICAg
ICBTdHJpbmcgbmV3TUlNRVR5cGU7CiAgICAgU3RyaW5nIHVuYXZhaWxhYmlsaXR5RGVzY3JpcHRp
b247CiAgICAgYm9vbCBpc1Vuc3VwcG9ydGVkID0gZmFsc2U7Ci0gICAgaWYgKCFzZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luKHJlc3BvbnNlLm1pbWVUeXBlKCksIFBs
dWdpblByb2Nlc3NUeXBlTm9ybWFsLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgcmVzcG9uc2Uu
dXJsKCkuc3RyaW5nKCksIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCBhbGxvd09ubHlBcHBsaWNh
dGlvblBsdWdpbnMpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luOjpSZXBseShw
bHVnaW5Qcm9jZXNzVG9rZW4sIG5ld01JTUVUeXBlLCBwbHVnaW5Mb2FkUG9saWN5LCB1bmF2YWls
YWJpbGl0eURlc2NyaXB0aW9uLCBpc1Vuc3VwcG9ydGVkKSkpCisgICAgaWYgKCFzZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5kUGx1Z2luKHJlc3BvbnNlLm1pbWVUeXBlKCksIFBs
dWdpblByb2Nlc3NUeXBlOjpOb3JtYWwsIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXNwb25z
ZS51cmwoKS5zdHJpbmcoKSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIGFsbG93T25seUFwcGxp
Y2F0aW9uUGx1Z2lucyksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5
KHBsdWdpblByb2Nlc3NUb2tlbiwgbmV3TUlNRVR5cGUsIHBsdWdpbkxvYWRQb2xpY3ksIHVuYXZh
aWxhYmlsaXR5RGVzY3JpcHRpb24sIGlzVW5zdXBwb3J0ZWQpKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgQVNTRVJUKCFpc1Vuc3VwcG9ydGVkKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>