<?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>232818</bug_id>
          
          <creation_ts>2021-11-08 09:35:46 -0800</creation_ts>
          <short_desc>Make it possible to toggle several experimental media features when GPU Process is enabled</short_desc>
          <delta_ts>2021-11-08 18:12:21 -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>Media</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1812651</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-08 09:35:46 -0800</bug_when>
    <thetext>In particular, these features:

• OpusDecoderEnabled (Opus audio decoder)
• VorbisDecoderEnabled (Vorbis audio decoder)
• WebMFormatReaderEnabled (WebM format reader)
• WebMParserEnabled (WebM MSE parser)
• MediaSourceInlinePaintingEnabled (Experimental MediaSource Inline Painting)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812700</commentid>
    <comment_count>1</comment_count>
      <attachid>443572</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-08 10:50:21 -0800</bug_when>
    <thetext>Created attachment 443572
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812875</commentid>
    <comment_count>2</comment_count>
      <attachid>443572</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2021-11-08 15:17:17 -0800</bug_when>
    <thetext>Comment on attachment 443572
For EWS

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

&gt; Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:590
&gt; +    for (auto page : webProcess.pages()) {

While this is still a wild layering problem, it&apos;s strictly better than using the WebPageGroup prefs.

I think you removed a bit too much of the &quot;omg here be dragons&quot; comment though; the caveats in your changelog should be mentioned here too.

&gt; Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:-670
&gt; -    setScreenProperties(WebCore::collectScreenProperties());

as you pointed out yourself, you lost canSendMessage here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812883</commentid>
    <comment_count>3</comment_count>
      <attachid>443572</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-08 15:28:14 -0800</bug_when>
    <thetext>Comment on attachment 443572
For EWS

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

Thanks for the review!

&gt;&gt; Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:590
&gt;&gt; +    for (auto page : webProcess.pages()) {
&gt; 
&gt; While this is still a wild layering problem, it&apos;s strictly better than using the WebPageGroup prefs.
&gt; 
&gt; I think you removed a bit too much of the &quot;omg here be dragons&quot; comment though; the caveats in your changelog should be mentioned here too.

Yes — definitely agreed! I&apos;ll leave this comment behind:

// FIXME: It&apos;s not ideal that these features are controlled by preferences-level feature flags (i.e. per-web view), but there is only one GPU process and the runtime-enabled features backing these preferences are process-wide. We should refactor each of these features so that they aren&apos;t process-global, and then reimplement this feature flag propagation to the GPU Process in a way that respects the settings of the page that is hosting each media element.
// For the time being, each of the below features are enabled in the GPU Process if it is enabled by at least one web page&apos;s preferences. In practice, all web pages&apos; preferences should agree on these feature flag values.

&gt;&gt; Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp:-670
&gt;&gt; -    setScreenProperties(WebCore::collectScreenProperties());
&gt; 
&gt; as you pointed out yourself, you lost canSendMessage here.

Fixed!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812885</commentid>
    <comment_count>4</comment_count>
      <attachid>443619</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-11-08 15:31:13 -0800</bug_when>
    <thetext>Created attachment 443619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812958</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-08 18:11:21 -0800</bug_when>
    <thetext>Committed r285477 (244001@main): &lt;https://commits.webkit.org/244001@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443619.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1812959</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-08 18:12:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/85182754&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443572</attachid>
            <date>2021-11-08 10:50:21 -0800</date>
            <delta_ts>2021-11-08 15:17:17 -0800</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-232818-20211108105020.patch</filename>
            <type>text/plain</type>
            <size>10872</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQwMGEyZDA1NTQxZGZmMGNj
ZjZiMzNlMGFhY2VjYTkwMmRmYWI4NDkuLmZmNTUyMGVlMzk4YzhjYWRhNTA4ZGM3MmYzZDkyMWI4
YTNlZDAxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMTEtMDggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byB0b2dnbGUgc2V2ZXJhbCBleHBlcmltZW50YWwgbWVkaWEgZmVhdHVyZXMgd2hlbiBHUFUg
UHJvY2VzcyBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI4MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZWZhY3RvciBhIGJpdCBvZiBsb2dpYyBhcm91bmQgYEdQVVByb2Nlc3NQcm94
eTo6dXBkYXRlUHJlZmVyZW5jZXNgLCBzdWNoIHRoYXQgdGhlIGV4cGVyaW1lbnRhbCBmZWF0dXJl
cyB0aGF0CisgICAgICAgIGFyZSBzZXQgdW5kZXJuZWF0aCB0aGlzIG1ldGhvZCBjYW4gYmUgdG9n
Z2xlZCBieSBjaGVja2luZyBvciB1bmNoZWNraW5nIHRoZSBwcmVmZXJlbmNlIGluIHRoZSBleHBl
cmltZW50YWwKKyAgICAgICAgZmVhdHVyZXMgbWVudSBpbiBTYWZhcmksIGFuZCB0aGVuIHJlc3Rh
cnRpbmcgU2FmYXJpIChvciBzaW1wbHkga2lsbGluZyBhbmQgcmVsYXVuY2hpbmcgdGhlIEdQVSBw
cm9jZXNzKS4KKworICAgICAgICBBcyBkZXRhaWxlZCBpbiB0aGUgZXhpc3RpbmcgRklYTUUsIHdl
IGN1cnJlbnRseSBjb25zdWx0IHRoZSBnbG9iYWwgV2ViUGFnZUdyb3VwcycgV2ViUHJlZmVyZW5j
ZXMsIHdoaWNoIGRvIG5vdAorICAgICAgICBhY2NvdW50IGZvciBjaGFuZ2VzIHRvIHRoZSBleHBl
cmltZW50YWwgZmVhdHVyZSBkZWZhdWx0cyBzaW5jZSB0aGV5IGluaXRpYWxpemUgdGhlaXIgb3du
IFdlYlByZWZlcmVuY2VzIHRoYXQKKyAgICAgICAgYXJlICgxKSBwcmVmaXhlZCB3aXRoIGEgdW5p
cXVlIGlkZW50aWZpZXIsIGFuZCAoMikgaGF2ZSBga2V5UHJlZml4YCBhbmQgYGdsb2JhbERlYnVn
S2V5UHJlZml4YCB0aGF0IGFyZQorICAgICAgICBkaWZmZXJlbnQgZnJvbSBub3JtYWwgV2ViUHJl
ZmVyZW5jZXMgb24gV2ViUGFnZVByb3h5LgorCisgICAgICAgIEluc3RlYWQsIHdlIGNhbiBhZGQg
c29tZSBwbHVtYmluZyB0byBwcm92aWRlIGEgV2ViUHJvY2Vzc1Byb3h5IHRvIGB1cGRhdGVQcmVm
ZXJlbmNlcygpYCwgYW5kIHVzZSB0aGlzIHRvCisgICAgICAgIGRldGVybWluZSB3aGV0aGVyIHdl
IG5lZWQgdG8gZW5hYmxlIGFueSBleHBlcmltZW50YWwgZmVhdHVyZXMgYnkgaXRlcmF0aW5nIG92
ZXIgZWFjaCBXZWJQYWdlUHJveHkncyBwcmVmZXJlbmNlcworICAgICAgICBhbmQgZW5hYmxpbmcg
ZWFjaCBmZWF0dXJlIGlmIGl0J3MgZW5hYmxlZCBieSBhdCBsZWFzdCBvbmUgd2ViIHBhZ2UgKHJv
dWdobHkgbWF0Y2hpbmcgdGhlIGN1cnJlbnQgYmVoYXZpb3IpLgorICAgICAgICBXaGlsZSBpdCdz
IHN0aWxsIG5vdCBpZGVhbCwgdGhlc2UgZmVhdHVyZXMgYXJlIGFsbCBwcm9jZXNzLWdsb2JhbCBh
bmQgdGhlcmUgaXMgb25seSBvbmUgR1BVIHByb2Nlc3MsIHNvIGluIGxpZXUKKyAgICAgICAgb2Yg
bW9yZSBleHRlbnNpdmUgcmVmYWN0b3JpbmcgYXJvdW5kIHRoZXNlIG1lZGlhIGZlYXR1cmUgZmxh
Z3MsIGl0IG1ha2VzIHNlbnNlIHRvIGp1c3QgdHVybiB0aGVtIG9uIGlmIGl0J3MKKyAgICAgICAg
ZW5hYmxlZCBpbiBhbnkgaW5kaXZpZHVhbCBpbnN0YW5jZSBvZiBXZWJQcmVmZXJlbmNlcy4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzc1Byb3h5OjpnZXRPckNyZWF0ZSk6CisKKyAgICAgICAgSG9pc3QgdGhl
IGNhbGwgdG8gYHVwZGF0ZVByZWZlcmVuY2VzKClgIG91dCBvZiB0aGlzIG1ldGhvZCBhbmQgaW50
byBgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZUdQVVByb2Nlc3NgIGluc3RlYWQsCisgICAgICAgIHNv
IHRoYXQgd2UgY2FuIHBhc3MgaW4gV2ViUHJvY2Vzc1Byb3h5LgorCisgICAgICAgIChXZWJLaXQ6
OkdQVVByb2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCisgICAgICAgIFNlZSBhYm92
ZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NQcm94eTo6
dXBkYXRlU2NyZWVuUHJvcGVydGllc0lmTmVlZGVkKToKKworICAgICAgICBTcGxpdCBvdXQgbG9n
aWMgdG8gdXBkYXRlIHNjcmVlbiBwcm9wZXJ0aWVzIGludG8gYSBzZXBhcmF0ZSBtZXRob2QsIHNv
IHRoYXQgd2UgZG9uJ3QgZW5kIHVwIHVubmVjZXNzYXJpbHkKKyAgICAgICAgY29tcHV0aW5nIGFu
ZCBzZW5kaW5nIHJlZHVuZGFudCBzY3JlZW4gcHJvcGVydGllcyBgV2ViUHJvY2Vzc1Bvb2w6OmVu
c3VyZUdQVVByb2Nlc3MoKWAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjplbnN1cmVHUFVQcm9jZXNzKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorCiAyMDIxLTExLTA3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEVuYWJsaW5nICJt
ZWRpYSBzb3VyY2UgaW5saW5lIHBhaW50aW5nIiBieSBkZWZhdWx0IHNob3VsZCB3b3JrIHdoZW4g
dXNpbmcgR1BVIFByb2Nlc3MgZm9yIG1lZGlhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmluZGV4IGJkZWZmNDA5ZTI5OWZhNWZiM2ZiNTg5ODdh
ODA4OTJkYjQwZTBiYzEuLjhiNTEzOGFlOWRhMmQyY2NiZWM0MTUzYjU3NzMxMWQyNGM4MjdhMGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3Bw
CkBAIC0xMDgsNyArMTA4LDYgQEAgUmVmPEdQVVByb2Nlc3NQcm94eT4gR1BVUHJvY2Vzc1Byb3h5
OjpnZXRPckNyZWF0ZSgpCiAgICAgICAgIHJldHVybiAqZXhpc3RpbmdHUFVQcm9jZXNzOwogICAg
IH0KICAgICBhdXRvIGdwdVByb2Nlc3MgPSBhZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7
Ci0gICAgZ3B1UHJvY2Vzcy0+dXBkYXRlUHJlZmVyZW5jZXMoKTsKICAgICBzaW5nbGV0b24oKSA9
IGdwdVByb2Nlc3M7CiAgICAgcmV0dXJuIGdwdVByb2Nlc3M7CiB9CkBAIC01ODEsOTMgKzU4MCw1
OSBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6c2V0U2NyZWVuUHJvcGVydGllcyhjb25zdCBTY3Jl
ZW5Qcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQogfQogI2VuZGlmCiAKLXZvaWQgR1BVUHJvY2Vzc1By
b3h5Ojp1cGRhdGVQcmVmZXJlbmNlcygpCit2b2lkIEdQVVByb2Nlc3NQcm94eTo6dXBkYXRlUHJl
ZmVyZW5jZXMoV2ViUHJvY2Vzc1Byb3h5JiB3ZWJQcm9jZXNzKQogewogICAgIGlmICghY2FuU2Vu
ZE1lc3NhZ2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkg
JiYgRU5BQkxFKFZQOSkKLSAgICBib29sIGhhc0VuYWJsZWRXZWJNUGFyc2VyID0gZmFsc2U7Ci0j
ZW5kaWYKLQotI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCi0gICAgYm9vbCBoYXNFbmFi
bGVkV2ViTUZvcm1hdFJlYWRlciA9IGZhbHNlOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoT1BVUykK
LSAgICBib29sIGhhc0VuYWJsZWRPcHVzID0gZmFsc2U7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShW
T1JCSVMpCi0gICAgYm9vbCBoYXNFbmFibGVkVm9yYmlzID0gZmFsc2U7Ci0jZW5kaWYKLQotI2lm
IEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkK
LSAgICBib29sIGhhc0VuYWJsZWRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nID0gZmFsc2U7Ci0j
ZW5kaWYKLQogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgY29uc2lkZXIgY29uc29saWRhdGluZyB0
aGVzZSBpbnRvIGEgc2luZ2xlIHN0cnVjdCBhbmQgcHJvcGFnYXRpbmcgaXQgdG8gdGhlIEdQVSBw
cm9jZXNzIGFzIGEgc2luZ2xlIElQQyBtZXNzYWdlLAogICAgIC8vIGluc3RlYWQgb2Ygc2VuZGlu
ZyBvbmUgbWVzc2FnZSBmb3IgZWFjaCBwcmVmZXJlbmNlLgotICAgIC8vCi0gICAgLy8gRklYTUU6
IEFkZGl0aW9uYWxseSwgaXQgc2VlbXMgd3JvbmcgdG8gY29uc3VsdCBwcmVmZXJlbmNlcyBvbiBX
ZWJQYWdlR3JvdXAgcmF0aGVyIHRoYW4gV2ViUHJlZmVyZW5jZXMgY29ycmVzcG9uZGluZyB0byBl
YWNoIHBhZ2UuCi0gICAgLy8gVGhpcyBlZmZlY3RpdmVseSBtZWFucyB0aGF0IGVhY2ggb2YgdGhl
IGJlbG93IHByZWZlcmVuY2VzIHdpbGwgYWx3YXlzIGJlIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1
ZSBhbmQgY2Fubm90IGJlIHRvZ2dsZWQgdGhyb3VnaCB0aGUKLSAgICAvLyBkZXZlbG9wIG1lbnUg
b3IgdXNlciBkZWZhdWx0cywgc2luY2UgdGhlIGRlZmF1bHRzIGZvciBlYWNoIGdyb3VwIGFyZSBw
cmVmaXhlZCB3aXRoIGEgdW5pcXVlIGlkZW50aWZpZXIuCi0gICAgLy8KLSAgICAvLyBTaW5jZSBl
YWNoIG9mIHRoZXNlIGZlYXR1cmVzIGFwcGx5IHRvIHRoZSBlbnRpcmUgR1BVIHByb2Nlc3MgYXQg
b25jZSAoaS5lLiB0aGV5IGFmZmVjdCBhbGwgd2ViIHBhZ2VzIHVzaW5nIHRoZSBHUFUgcHJvY2Vz
cyksIHdlCi0gICAgLy8gY291bGQgaW5zdGVhZCByZWZhY3RvciB0aGlzIHNvIHRoYXQgd2UgaXRl
cmF0ZSB0aHJvdWdoIGFsbCB3ZWIgcGFnZXMnIHByZWZlcmVuY2VzIHdoZW4gaW5pdGlhbGl6aW5n
IHRoZSBHUFUgcHJvY2VzcyBmb3IgdGhlIGZpcnN0Ci0gICAgLy8gdGltZSwgYW5kIHRoZW4gdXBk
YXRlIHRoZXNlIGZsYWdzIHdoZW4gY3JlYXRpbmcgbmV3IHdlYiBwYWdlcy4KLSAgICBXZWJQYWdl
R3JvdXA6OmZvckVhY2goWyZdIChhdXRvJiBncm91cCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICgh
Z3JvdXAucHJlZmVyZW5jZXMoKS51c2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkpCi0gICAg
ICAgICAgICByZXR1cm47CisgICAgZm9yIChhdXRvIHBhZ2UgOiB3ZWJQcm9jZXNzLnBhZ2VzKCkp
IHsKKyAgICAgICAgYXV0byYgcHJlZmVyZW5jZXMgPSBwYWdlLT5wcmVmZXJlbmNlcygpOworICAg
ICAgICBpZiAoIXByZWZlcmVuY2VzLnVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAjaWYgRU5BQkxFKE9QVVMpCi0gICAgICAgIGlmIChncm91
cC5wcmVmZXJlbmNlcygpLm9wdXNEZWNvZGVyRW5hYmxlZCgpKQotICAgICAgICAgICAgaGFzRW5h
YmxlZE9wdXMgPSB0cnVlOworICAgICAgICBpZiAoIW1faGFzRW5hYmxlZE9wdXMgJiYgcHJlZmVy
ZW5jZXMub3B1c0RlY29kZXJFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIG1faGFzRW5hYmxlZE9w
dXMgPSB0cnVlOworICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0T3B1
c0RlY29kZXJFbmFibGVkKG1faGFzRW5hYmxlZE9wdXMpLCAwKTsKKyAgICAgICAgfQogI2VuZGlm
CiAKICNpZiBFTkFCTEUoVk9SQklTKQotICAgICAgICBpZiAoZ3JvdXAucHJlZmVyZW5jZXMoKS52
b3JiaXNEZWNvZGVyRW5hYmxlZCgpKQotICAgICAgICAgICAgaGFzRW5hYmxlZFZvcmJpcyA9IHRy
dWU7CisgICAgICAgIGlmICghbV9oYXNFbmFibGVkVm9yYmlzICYmIHByZWZlcmVuY2VzLnZvcmJp
c0RlY29kZXJFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIG1faGFzRW5hYmxlZFZvcmJpcyA9IHRy
dWU7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRWb3JiaXNEZWNv
ZGVyRW5hYmxlZChtX2hhc0VuYWJsZWRWb3JiaXMpLCAwKTsKKyAgICAgICAgfQogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQotICAgICAgICBpZiAoZ3JvdXAucHJlZmVy
ZW5jZXMoKS53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKQotICAgICAgICAgICAgaGFzRW5hYmxl
ZFdlYk1Gb3JtYXRSZWFkZXIgPSB0cnVlOwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKSAmJiBFTkFCTEUoVlA5KQotICAgICAgICBpZiAoZ3JvdXAucHJlZmVyZW5jZXMoKS53ZWJN
UGFyc2VyRW5hYmxlZCgpKQotICAgICAgICAgICAgaGFzRW5hYmxlZFdlYk1QYXJzZXIgPSB0cnVl
OwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKEFWU0FNUExFQlVG
RkVSVklERU9PVVRQVVQpCi0gICAgICAgIGlmIChncm91cC5wcmVmZXJlbmNlcygpLm1lZGlhU291
cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKCkpCi0gICAgICAgICAgICBoYXNFbmFibGVkTWVkaWFT
b3VyY2VJbmxpbmVQYWludGluZyA9IHRydWU7CisgICAgICAgIGlmICghbV9oYXNFbmFibGVkV2Vi
TUZvcm1hdFJlYWRlciAmJiBwcmVmZXJlbmNlcy53ZWJNRm9ybWF0UmVhZGVyRW5hYmxlZCgpKSB7
CisgICAgICAgICAgICBtX2hhc0VuYWJsZWRXZWJNRm9ybWF0UmVhZGVyID0gdHJ1ZTsKKyAgICAg
ICAgICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNldFdlYk1Gb3JtYXRSZWFkZXJFbmFi
bGVkKG1faGFzRW5hYmxlZFdlYk1Gb3JtYXRSZWFkZXIpLCAwKTsKKyAgICAgICAgfQogI2VuZGlm
Ci0gICAgfSk7CiAKICNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBFTkFCTEUoVlA5KQotICAg
IHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNldFdlYk1QYXJzZXJFbmFibGVkKGhhc0VuYWJs
ZWRXZWJNUGFyc2VyKSwgMCk7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFE
RVIpCi0gICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0V2ViTUZvcm1hdFJlYWRlckVu
YWJsZWQoaGFzRW5hYmxlZFdlYk1Gb3JtYXRSZWFkZXIpLCAwKTsKLSNlbmRpZgotCi0jaWYgRU5B
QkxFKE9QVVMpCi0gICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0T3B1c0RlY29kZXJF
bmFibGVkKGhhc0VuYWJsZWRPcHVzKSwgMCk7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShWT1JCSVMp
Ci0gICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0Vm9yYmlzRGVjb2RlckVuYWJsZWQo
aGFzRW5hYmxlZFZvcmJpcyksIDApOworICAgICAgICBpZiAoIW1faGFzRW5hYmxlZFdlYk1QYXJz
ZXIgJiYgcHJlZmVyZW5jZXMud2ViTVBhcnNlckVuYWJsZWQoKSkgeworICAgICAgICAgICAgbV9o
YXNFbmFibGVkV2ViTVBhcnNlciA9IHRydWU7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpH
UFVQcm9jZXNzOjpTZXRXZWJNUGFyc2VyRW5hYmxlZChtX2hhc0VuYWJsZWRXZWJNUGFyc2VyKSwg
MCk7CisgICAgICAgIH0KICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFW
RShBVlNBTVBMRUJVRkZFUlZJREVPT1VUUFVUKQotICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nl
c3M6OlNldE1lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKGhhc0VuYWJsZWRNZWRpYVNv
dXJjZUlubGluZVBhaW50aW5nKSwgMCk7CisgICAgICAgIGlmICghbV9oYXNFbmFibGVkTWVkaWFT
b3VyY2VJbmxpbmVQYWludGluZyAmJiBwcmVmZXJlbmNlcy5tZWRpYVNvdXJjZUlubGluZVBhaW50
aW5nRW5hYmxlZCgpKSB7CisgICAgICAgICAgICBtX2hhc0VuYWJsZWRNZWRpYVNvdXJjZUlubGlu
ZVBhaW50aW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6
OlNldE1lZGlhU291cmNlSW5saW5lUGFpbnRpbmdFbmFibGVkKG1faGFzRW5hYmxlZE1lZGlhU291
cmNlSW5saW5lUGFpbnRpbmcpLCAwKTsKKyAgICAgICAgfQogI2VuZGlmCisgICAgfQorfQogCit2
b2lkIEdQVVByb2Nlc3NQcm94eTo6dXBkYXRlU2NyZWVuUHJvcGVydGllc0lmTmVlZGVkKCkKK3sK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgc2V0U2NyZWVuUHJvcGVydGllcyhXZWJDb3JlOjpjb2xs
ZWN0U2NyZWVuUHJvcGVydGllcygpKTsKKyAgICBzZXRTY3JlZW5Qcm9wZXJ0aWVzKGNvbGxlY3RT
Y3JlZW5Qcm9wZXJ0aWVzKCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaAppbmRleCBlMDZiYTU3YmUyNDdlYmIzOTBmOTBiOTNj
Y2Y3NjY0OWZmOTUzYWVmLi4zMGRkZDZiN2EyZjdiNzcxNTNkMGE3OWExNDFiNmJhNThmYzcxYmRh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94eS5oCkBA
IC05Myw3ICs5Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFNjcmVlblByb3BlcnRpZXMoY29u
c3QgV2ViQ29yZTo6U2NyZWVuUHJvcGVydGllcyYpOwogI2VuZGlmCiAKLSAgICB2b2lkIHVwZGF0
ZVByZWZlcmVuY2VzKCk7CisgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhXZWJQcm9jZXNzUHJv
eHkmKTsKKyAgICB2b2lkIHVwZGF0ZVNjcmVlblByb3BlcnRpZXNJZk5lZWRlZCgpOwogCiAgICAg
dm9pZCB0ZXJtaW5hdGVGb3JUZXN0aW5nKCk7CiAgICAgdm9pZCB3ZWJQcm9jZXNzQ29ubmVjdGlv
bkNvdW50Rm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHVpbnQ2NF90KT4mJik7CkBA
IC0xNTEsNiArMTUyLDI3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1NlbnRNaWNyb3Bob25l
U2FuZGJveEV4dGVuc2lvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhc1NlbnROZXR3b3JrUHJv
Y2Vzc1hQQ0VuZHBvaW50IHsgZmFsc2UgfTsKICNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NP
VVJDRSkgJiYgRU5BQkxFKFZQOSkKKyAgICBib29sIG1faGFzRW5hYmxlZFdlYk1QYXJzZXIgeyBm
YWxzZSB9OworI2VuZGlmCisKKyNpZiBFTkFCTEUoV0VCTV9GT1JNQVRfUkVBREVSKQorICAgIGJv
b2wgbV9oYXNFbmFibGVkV2ViTUZvcm1hdFJlYWRlciB7IGZhbHNlIH07CisjZW5kaWYKKworI2lm
IEVOQUJMRShPUFVTKQorICAgIGJvb2wgbV9oYXNFbmFibGVkT3B1cyB7IGZhbHNlIH07CisjZW5k
aWYKKworI2lmIEVOQUJMRShWT1JCSVMpCisgICAgYm9vbCBtX2hhc0VuYWJsZWRWb3JiaXMgeyBm
YWxzZSB9OworI2VuZGlmCisKKyNpZiBFTkFCTEUoTUVESUFfU09VUkNFKSAmJiBIQVZFKEFWU0FN
UExFQlVGRkVSVklERU9PVVRQVVQpCisgICAgYm9vbCBtX2hhc0VuYWJsZWRNZWRpYVNvdXJjZUlu
bGluZVBhaW50aW5nIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgSGFzaFNldDxQQUw6OlNlc3Np
b25JRD4gbV9zZXNzaW9uSURzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCmluZGV4IDQ5MjBlNmM2YWFjN2M0NWEyZDlkZjQzZGE0OGUyMzE4MTE5NjJm
YWMuLmY2ODAzOGRmYmM5Mjg0YzI2MzA4MzUxOTE0ZWQ1M2I4NjVjN2MwN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTQzNiw4ICs0MzYsMTIgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2VydmljZVdvcmtlclByb2Nlc3NDcmFzaGVkKFdlYlByb2Nl
c3NQcm94eSYgcHJveHkpCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogR1BVUHJvY2Vzc1Byb3h5
JiBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJlR1BVUHJvY2VzcygpCiB7Ci0gICAgaWYgKCFtX2dwdVBy
b2Nlc3MpCisgICAgaWYgKCFtX2dwdVByb2Nlc3MpIHsKICAgICAgICAgbV9ncHVQcm9jZXNzID0g
R1BVUHJvY2Vzc1Byb3h5OjpnZXRPckNyZWF0ZSgpOworICAgICAgICBmb3IgKGF1dG8mIHByb2Nl
c3MgOiBtX3Byb2Nlc3NlcykKKyAgICAgICAgICAgIG1fZ3B1UHJvY2Vzcy0+dXBkYXRlUHJlZmVy
ZW5jZXMocHJvY2Vzcyk7CisgICAgICAgIG1fZ3B1UHJvY2Vzcy0+dXBkYXRlU2NyZWVuUHJvcGVy
dGllc0lmTmVlZGVkKCk7CisgICAgfQogICAgIHJldHVybiAqbV9ncHVQcm9jZXNzOwogfQogCkBA
IC0xMTA0LDggKzExMDgsMTAgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Bvb2w6OmNy
ZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToKICAgICAgICAgbV93
ZWJQcm9jZXNzQ2FjaGUtPnVwZGF0ZUNhcGFjaXR5KCp0aGlzKTsKIAogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKLSAgICBpZiAoYXV0byogZ3B1UHJvY2VzcyA9IEdQVVByb2Nlc3NQcm94eTo6c2lu
Z2xldG9uSWZDcmVhdGVkKCkpCi0gICAgICAgIGdwdVByb2Nlc3MtPnVwZGF0ZVByZWZlcmVuY2Vz
KCk7CisgICAgaWYgKGF1dG8qIGdwdVByb2Nlc3MgPSBHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRv
bklmQ3JlYXRlZCgpKSB7CisgICAgICAgIGdwdVByb2Nlc3MtPnVwZGF0ZVByZWZlcmVuY2VzKCpw
cm9jZXNzKTsKKyAgICAgICAgZ3B1UHJvY2Vzcy0+dXBkYXRlU2NyZWVuUHJvcGVydGllc0lmTmVl
ZGVkKCk7CisgICAgfQogI2VuZGlmCiAKICAgICByZXR1cm4gcGFnZTsK
</data>
<flag name="review"
          id="468376"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443619</attachid>
            <date>2021-11-08 15:31:13 -0800</date>
            <delta_ts>2021-11-08 18:11:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232818-20211108153112.patch</filename>
            <type>text/plain</type>
            <size>11614</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1NDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI1NDQ1N2U1NDJkYWRjNDg5
NTdmMTZlYjA1YjY2ODhiZTg5OTg5NjQuLjQ0NGNiYjgyMTFkZjBlZTJlYTlmZDYwYjBiMTc2YjIy
NTNhZGM3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMjEtMTEtMDggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBpdCBwb3NzaWJs
ZSB0byB0b2dnbGUgc2V2ZXJhbCBleHBlcmltZW50YWwgbWVkaWEgZmVhdHVyZXMgd2hlbiBHUFUg
UHJvY2VzcyBpcyBlbmFibGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzI4MTgKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisg
ICAgICAgIFJlZmFjdG9yIGEgYml0IG9mIGxvZ2ljIGFyb3VuZCBgR1BVUHJvY2Vzc1Byb3h5Ojp1
cGRhdGVQcmVmZXJlbmNlc2AsIHN1Y2ggdGhhdCB0aGUgZXhwZXJpbWVudGFsIGZlYXR1cmVzIHRo
YXQKKyAgICAgICAgYXJlIHNldCB1bmRlcm5lYXRoIHRoaXMgbWV0aG9kIGNhbiBiZSB0b2dnbGVk
IGJ5IGNoZWNraW5nIG9yIHVuY2hlY2tpbmcgdGhlIHByZWZlcmVuY2UgaW4gdGhlIGV4cGVyaW1l
bnRhbAorICAgICAgICBmZWF0dXJlcyBtZW51IGluIFNhZmFyaSwgYW5kIHRoZW4gcmVzdGFydGlu
ZyBTYWZhcmkgKG9yIHNpbXBseSBraWxsaW5nIGFuZCByZWxhdW5jaGluZyB0aGUgR1BVIHByb2Nl
c3MpLgorCisgICAgICAgIEFzIGRldGFpbGVkIGluIHRoZSBleGlzdGluZyBGSVhNRSwgd2UgY3Vy
cmVudGx5IGNvbnN1bHQgdGhlIGdsb2JhbCBXZWJQYWdlR3JvdXBzJyBXZWJQcmVmZXJlbmNlcywg
d2hpY2ggZG8gbm90CisgICAgICAgIGFjY291bnQgZm9yIGNoYW5nZXMgdG8gdGhlIGV4cGVyaW1l
bnRhbCBmZWF0dXJlIGRlZmF1bHRzIHNpbmNlIHRoZXkgaW5pdGlhbGl6ZSB0aGVpciBvd24gV2Vi
UHJlZmVyZW5jZXMgdGhhdAorICAgICAgICBhcmUgKDEpIHByZWZpeGVkIHdpdGggYSB1bmlxdWUg
aWRlbnRpZmllciwgYW5kICgyKSBoYXZlIGBrZXlQcmVmaXhgIGFuZCBgZ2xvYmFsRGVidWdLZXlQ
cmVmaXhgIHRoYXQgYXJlCisgICAgICAgIGRpZmZlcmVudCBmcm9tIG5vcm1hbCBXZWJQcmVmZXJl
bmNlcyBvbiBXZWJQYWdlUHJveHkuCisKKyAgICAgICAgSW5zdGVhZCwgd2UgY2FuIGFkZCBzb21l
IHBsdW1iaW5nIHRvIHByb3ZpZGUgYSBXZWJQcm9jZXNzUHJveHkgdG8gYHVwZGF0ZVByZWZlcmVu
Y2VzKClgLCBhbmQgdXNlIHRoaXMgdG8KKyAgICAgICAgZGV0ZXJtaW5lIHdoZXRoZXIgd2UgbmVl
ZCB0byBlbmFibGUgYW55IGV4cGVyaW1lbnRhbCBmZWF0dXJlcyBieSBpdGVyYXRpbmcgb3ZlciBl
YWNoIFdlYlBhZ2VQcm94eSdzIHByZWZlcmVuY2VzCisgICAgICAgIGFuZCBlbmFibGluZyBlYWNo
IGZlYXR1cmUgaWYgaXQncyBlbmFibGVkIGJ5IGF0IGxlYXN0IG9uZSB3ZWIgcGFnZSAocm91Z2hs
eSBtYXRjaGluZyB0aGUgY3VycmVudCBiZWhhdmlvcikuCisgICAgICAgIFdoaWxlIGl0J3Mgc3Rp
bGwgbm90IGlkZWFsLCB0aGVzZSBmZWF0dXJlcyBhcmUgYWxsIHByb2Nlc3MtZ2xvYmFsIGFuZCB0
aGVyZSBpcyBvbmx5IG9uZSBHUFUgcHJvY2Vzcywgc28gaW4gbGlldQorICAgICAgICBvZiBtb3Jl
IGV4dGVuc2l2ZSByZWZhY3RvcmluZyBhcm91bmQgdGhlc2UgbWVkaWEgZmVhdHVyZSBmbGFncywg
aXQgbWFrZXMgc2Vuc2UgdG8ganVzdCB0dXJuIHRoZW0gb24gaWYgaXQncworICAgICAgICBlbmFi
bGVkIGluIGFueSBpbmRpdmlkdWFsIGluc3RhbmNlIG9mIFdlYlByZWZlcmVuY2VzLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0
OjpHUFVQcm9jZXNzUHJveHk6OmdldE9yQ3JlYXRlKToKKworICAgICAgICBIb2lzdCB0aGUgY2Fs
bCB0byBgdXBkYXRlUHJlZmVyZW5jZXMoKWAgb3V0IG9mIHRoaXMgbWV0aG9kIGFuZCBpbnRvIGBX
ZWJQcm9jZXNzUG9vbDo6ZW5zdXJlR1BVUHJvY2Vzc2AgaW5zdGVhZCwKKyAgICAgICAgc28gdGhh
dCB3ZSBjYW4gcGFzcyBpbiBXZWJQcm9jZXNzUHJveHkuCisKKyAgICAgICAgKFdlYktpdDo6R1BV
UHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlcyk6CisKKyAgICAgICAgU2VlIGFib3ZlIGZv
ciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc1Byb3h5Ojp1cGRh
dGVTY3JlZW5Qcm9wZXJ0aWVzSWZOZWVkZWQpOgorCisgICAgICAgIFNwbGl0IG91dCBsb2dpYyB0
byB1cGRhdGUgc2NyZWVuIHByb3BlcnRpZXMgaW50byBhIHNlcGFyYXRlIG1ldGhvZCwgc28gdGhh
dCB3ZSBkb24ndCBlbmQgdXAgdW5uZWNlc3NhcmlseQorICAgICAgICBjb21wdXRpbmcgYW5kIHNl
bmRpbmcgcmVkdW5kYW50IHNjcmVlbiBwcm9wZXJ0aWVzIGBXZWJQcm9jZXNzUG9vbDo6ZW5zdXJl
R1BVUHJvY2VzcygpYC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZUdQVVByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZSk6CisKIDIwMjEtMTEtMDggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgV0tTeW50aGV0aWNUYXBH
ZXN0dXJlUmVjb2duaXplcidzIGFjdGlvbiB0YXJnZXRzIHNob3VsZCBiZSB3ZWFrIHBvaW50ZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCmlu
ZGV4IGJkZWZmNDA5ZTI5OWZhNWZiM2ZiNTg5ODdhODA4OTJkYjQwZTBiYzEuLjE4YmI1NzNhMzQ2
MjRkODkwY2M1NjdmYzQwNTQ2NWRkN2JhMDE1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuY3BwCkBAIC0xMDgsNyArMTA4LDYgQEAgUmVmPEdQ
VVByb2Nlc3NQcm94eT4gR1BVUHJvY2Vzc1Byb3h5OjpnZXRPckNyZWF0ZSgpCiAgICAgICAgIHJl
dHVybiAqZXhpc3RpbmdHUFVQcm9jZXNzOwogICAgIH0KICAgICBhdXRvIGdwdVByb2Nlc3MgPSBh
ZG9wdFJlZigqbmV3IEdQVVByb2Nlc3NQcm94eSk7Ci0gICAgZ3B1UHJvY2Vzcy0+dXBkYXRlUHJl
ZmVyZW5jZXMoKTsKICAgICBzaW5nbGV0b24oKSA9IGdwdVByb2Nlc3M7CiAgICAgcmV0dXJuIGdw
dVByb2Nlc3M7CiB9CkBAIC01ODEsOTMgKzU4MCw2OCBAQCB2b2lkIEdQVVByb2Nlc3NQcm94eTo6
c2V0U2NyZWVuUHJvcGVydGllcyhjb25zdCBTY3JlZW5Qcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQog
fQogI2VuZGlmCiAKLXZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmVmZXJlbmNlcygpCit2
b2lkIEdQVVByb2Nlc3NQcm94eTo6dXBkYXRlUHJlZmVyZW5jZXMoV2ViUHJvY2Vzc1Byb3h5JiB3
ZWJQcm9jZXNzKQogewogICAgIGlmICghY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAgICAgcmV0dXJu
OwogCi0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgRU5BQkxFKFZQOSkKLSAgICBib29sIGhh
c0VuYWJsZWRXZWJNUGFyc2VyID0gZmFsc2U7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShXRUJNX0ZP
Uk1BVF9SRUFERVIpCi0gICAgYm9vbCBoYXNFbmFibGVkV2ViTUZvcm1hdFJlYWRlciA9IGZhbHNl
OwotI2VuZGlmCi0KLSNpZiBFTkFCTEUoT1BVUykKLSAgICBib29sIGhhc0VuYWJsZWRPcHVzID0g
ZmFsc2U7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShWT1JCSVMpCi0gICAgYm9vbCBoYXNFbmFibGVk
Vm9yYmlzID0gZmFsc2U7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhB
VkUoQVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkKLSAgICBib29sIGhhc0VuYWJsZWRNZWRpYVNv
dXJjZUlubGluZVBhaW50aW5nID0gZmFsc2U7Ci0jZW5kaWYKLQogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgY29uc2lkZXIgY29uc29saWRhdGluZyB0aGVzZSBpbnRvIGEgc2luZ2xlIHN0cnVjdCBh
bmQgcHJvcGFnYXRpbmcgaXQgdG8gdGhlIEdQVSBwcm9jZXNzIGFzIGEgc2luZ2xlIElQQyBtZXNz
YWdlLAogICAgIC8vIGluc3RlYWQgb2Ygc2VuZGluZyBvbmUgbWVzc2FnZSBmb3IgZWFjaCBwcmVm
ZXJlbmNlLgotICAgIC8vCi0gICAgLy8gRklYTUU6IEFkZGl0aW9uYWxseSwgaXQgc2VlbXMgd3Jv
bmcgdG8gY29uc3VsdCBwcmVmZXJlbmNlcyBvbiBXZWJQYWdlR3JvdXAgcmF0aGVyIHRoYW4gV2Vi
UHJlZmVyZW5jZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIHBhZ2UuCi0gICAgLy8gVGhpcyBlZmZl
Y3RpdmVseSBtZWFucyB0aGF0IGVhY2ggb2YgdGhlIGJlbG93IHByZWZlcmVuY2VzIHdpbGwgYWx3
YXlzIGJlIHNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZSBhbmQgY2Fubm90IGJlIHRvZ2dsZWQgdGhy
b3VnaCB0aGUKLSAgICAvLyBkZXZlbG9wIG1lbnUgb3IgdXNlciBkZWZhdWx0cywgc2luY2UgdGhl
IGRlZmF1bHRzIGZvciBlYWNoIGdyb3VwIGFyZSBwcmVmaXhlZCB3aXRoIGEgdW5pcXVlIGlkZW50
aWZpZXIuCi0gICAgLy8KLSAgICAvLyBTaW5jZSBlYWNoIG9mIHRoZXNlIGZlYXR1cmVzIGFwcGx5
IHRvIHRoZSBlbnRpcmUgR1BVIHByb2Nlc3MgYXQgb25jZSAoaS5lLiB0aGV5IGFmZmVjdCBhbGwg
d2ViIHBhZ2VzIHVzaW5nIHRoZSBHUFUgcHJvY2VzcyksIHdlCi0gICAgLy8gY291bGQgaW5zdGVh
ZCByZWZhY3RvciB0aGlzIHNvIHRoYXQgd2UgaXRlcmF0ZSB0aHJvdWdoIGFsbCB3ZWIgcGFnZXMn
IHByZWZlcmVuY2VzIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBHUFUgcHJvY2VzcyBmb3IgdGhlIGZp
cnN0Ci0gICAgLy8gdGltZSwgYW5kIHRoZW4gdXBkYXRlIHRoZXNlIGZsYWdzIHdoZW4gY3JlYXRp
bmcgbmV3IHdlYiBwYWdlcy4KLSAgICBXZWJQYWdlR3JvdXA6OmZvckVhY2goWyZdIChhdXRvJiBn
cm91cCkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghZ3JvdXAucHJlZmVyZW5jZXMoKS51c2VHUFVQ
cm9jZXNzRm9yTWVkaWFFbmFibGVkKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgLy8gRklY
TUU6IEl0J3Mgbm90IGlkZWFsIHRoYXQgdGhlc2UgZmVhdHVyZXMgYXJlIGNvbnRyb2xsZWQgYnkg
cHJlZmVyZW5jZXMtbGV2ZWwgZmVhdHVyZSBmbGFncyAoaS5lLiBwZXItd2ViIHZpZXcpLCBidXQg
dGhlcmUgaXMgb25seQorICAgIC8vIG9uZSBHUFUgcHJvY2VzcyBhbmQgdGhlIHJ1bnRpbWUtZW5h
YmxlZCBmZWF0dXJlcyBiYWNraW5nIHRoZXNlIHByZWZlcmVuY2VzIGFyZSBwcm9jZXNzLXdpZGUu
IFdlIHNob3VsZCByZWZhY3RvciBlYWNoIG9mIHRoZXNlIGZlYXR1cmVzCisgICAgLy8gc28gdGhh
dCB0aGV5IGFyZW4ndCBwcm9jZXNzLWdsb2JhbCwgYW5kIHRoZW4gcmVpbXBsZW1lbnQgdGhpcyBm
ZWF0dXJlIGZsYWcgcHJvcGFnYXRpb24gdG8gdGhlIEdQVSBQcm9jZXNzIGluIGEgd2F5IHRoYXQg
cmVzcGVjdHMgdGhlCisgICAgLy8gc2V0dGluZ3Mgb2YgdGhlIHBhZ2UgdGhhdCBpcyBob3N0aW5n
IGVhY2ggbWVkaWEgZWxlbWVudC4KKyAgICAvLyBGb3IgdGhlIHRpbWUgYmVpbmcsIGVhY2ggb2Yg
dGhlIGJlbG93IGZlYXR1cmVzIGFyZSBlbmFibGVkIGluIHRoZSBHUFUgUHJvY2VzcyBpZiBpdCBp
cyBlbmFibGVkIGJ5IGF0IGxlYXN0IG9uZSB3ZWIgcGFnZSdzIHByZWZlcmVuY2VzLgorICAgIC8v
IEluIHByYWN0aWNlLCBhbGwgd2ViIHBhZ2VzJyBwcmVmZXJlbmNlcyBzaG91bGQgYWdyZWUgb24g
dGhlc2UgZmVhdHVyZSBmbGFnIHZhbHVlcy4KKyAgICBmb3IgKGF1dG8gcGFnZSA6IHdlYlByb2Nl
c3MucGFnZXMoKSkgeworICAgICAgICBhdXRvJiBwcmVmZXJlbmNlcyA9IHBhZ2UtPnByZWZlcmVu
Y2VzKCk7CisgICAgICAgIGlmICghcHJlZmVyZW5jZXMudXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5h
YmxlZCgpKQorICAgICAgICAgICAgY29udGludWU7CiAKICNpZiBFTkFCTEUoT1BVUykKLSAgICAg
ICAgaWYgKGdyb3VwLnByZWZlcmVuY2VzKCkub3B1c0RlY29kZXJFbmFibGVkKCkpCi0gICAgICAg
ICAgICBoYXNFbmFibGVkT3B1cyA9IHRydWU7CisgICAgICAgIGlmICghbV9oYXNFbmFibGVkT3B1
cyAmJiBwcmVmZXJlbmNlcy5vcHVzRGVjb2RlckVuYWJsZWQoKSkgeworICAgICAgICAgICAgbV9o
YXNFbmFibGVkT3B1cyA9IHRydWU7CisgICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9j
ZXNzOjpTZXRPcHVzRGVjb2RlckVuYWJsZWQobV9oYXNFbmFibGVkT3B1cyksIDApOworICAgICAg
ICB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShWT1JCSVMpCi0gICAgICAgIGlmIChncm91cC5wcmVm
ZXJlbmNlcygpLnZvcmJpc0RlY29kZXJFbmFibGVkKCkpCi0gICAgICAgICAgICBoYXNFbmFibGVk
Vm9yYmlzID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFtX2hhc0VuYWJsZWRWb3JiaXMgJiYgcHJlZmVy
ZW5jZXMudm9yYmlzRGVjb2RlckVuYWJsZWQoKSkgeworICAgICAgICAgICAgbV9oYXNFbmFibGVk
Vm9yYmlzID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNl
dFZvcmJpc0RlY29kZXJFbmFibGVkKG1faGFzRW5hYmxlZFZvcmJpcyksIDApOworICAgICAgICB9
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCi0gICAgICAgIGlmIChn
cm91cC5wcmVmZXJlbmNlcygpLndlYk1Gb3JtYXRSZWFkZXJFbmFibGVkKCkpCi0gICAgICAgICAg
ICBoYXNFbmFibGVkV2ViTUZvcm1hdFJlYWRlciA9IHRydWU7Ci0jZW5kaWYKLQotI2lmIEVOQUJM
RShNRURJQV9TT1VSQ0UpICYmIEVOQUJMRShWUDkpCi0gICAgICAgIGlmIChncm91cC5wcmVmZXJl
bmNlcygpLndlYk1QYXJzZXJFbmFibGVkKCkpCi0gICAgICAgICAgICBoYXNFbmFibGVkV2ViTVBh
cnNlciA9IHRydWU7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEhBVkUo
QVZTQU1QTEVCVUZGRVJWSURFT09VVFBVVCkKLSAgICAgICAgaWYgKGdyb3VwLnByZWZlcmVuY2Vz
KCkubWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoKSkKLSAgICAgICAgICAgIGhhc0Vu
YWJsZWRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nID0gdHJ1ZTsKKyAgICAgICAgaWYgKCFtX2hh
c0VuYWJsZWRXZWJNRm9ybWF0UmVhZGVyICYmIHByZWZlcmVuY2VzLndlYk1Gb3JtYXRSZWFkZXJF
bmFibGVkKCkpIHsKKyAgICAgICAgICAgIG1faGFzRW5hYmxlZFdlYk1Gb3JtYXRSZWFkZXIgPSB0
cnVlOworICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0V2ViTUZvcm1h
dFJlYWRlckVuYWJsZWQobV9oYXNFbmFibGVkV2ViTUZvcm1hdFJlYWRlciksIDApOworICAgICAg
ICB9CiAjZW5kaWYKLSAgICB9KTsKIAogI2lmIEVOQUJMRShNRURJQV9TT1VSQ0UpICYmIEVOQUJM
RShWUDkpCi0gICAgc2VuZChNZXNzYWdlczo6R1BVUHJvY2Vzczo6U2V0V2ViTVBhcnNlckVuYWJs
ZWQoaGFzRW5hYmxlZFdlYk1QYXJzZXIpLCAwKTsKLSNlbmRpZgotCi0jaWYgRU5BQkxFKFdFQk1f
Rk9STUFUX1JFQURFUikKLSAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRXZWJNRm9y
bWF0UmVhZGVyRW5hYmxlZChoYXNFbmFibGVkV2ViTUZvcm1hdFJlYWRlciksIDApOwotI2VuZGlm
Ci0KLSNpZiBFTkFCTEUoT1BVUykKLSAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRP
cHVzRGVjb2RlckVuYWJsZWQoaGFzRW5hYmxlZE9wdXMpLCAwKTsKLSNlbmRpZgotCi0jaWYgRU5B
QkxFKFZPUkJJUykKLSAgICBzZW5kKE1lc3NhZ2VzOjpHUFVQcm9jZXNzOjpTZXRWb3JiaXNEZWNv
ZGVyRW5hYmxlZChoYXNFbmFibGVkVm9yYmlzKSwgMCk7CisgICAgICAgIGlmICghbV9oYXNFbmFi
bGVkV2ViTVBhcnNlciAmJiBwcmVmZXJlbmNlcy53ZWJNUGFyc2VyRW5hYmxlZCgpKSB7CisgICAg
ICAgICAgICBtX2hhc0VuYWJsZWRXZWJNUGFyc2VyID0gdHJ1ZTsKKyAgICAgICAgICAgIHNlbmQo
TWVzc2FnZXM6OkdQVVByb2Nlc3M6OlNldFdlYk1QYXJzZXJFbmFibGVkKG1faGFzRW5hYmxlZFdl
Yk1QYXJzZXIpLCAwKTsKKyAgICAgICAgfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU09V
UkNFKSAmJiBIQVZFKEFWU0FNUExFQlVGRkVSVklERU9PVVRQVVQpCi0gICAgc2VuZChNZXNzYWdl
czo6R1BVUHJvY2Vzczo6U2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQoaGFzRW5h
YmxlZE1lZGlhU291cmNlSW5saW5lUGFpbnRpbmcpLCAwKTsKKyAgICAgICAgaWYgKCFtX2hhc0Vu
YWJsZWRNZWRpYVNvdXJjZUlubGluZVBhaW50aW5nICYmIHByZWZlcmVuY2VzLm1lZGlhU291cmNl
SW5saW5lUGFpbnRpbmdFbmFibGVkKCkpIHsKKyAgICAgICAgICAgIG1faGFzRW5hYmxlZE1lZGlh
U291cmNlSW5saW5lUGFpbnRpbmcgPSB0cnVlOworICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6
R1BVUHJvY2Vzczo6U2V0TWVkaWFTb3VyY2VJbmxpbmVQYWludGluZ0VuYWJsZWQobV9oYXNFbmFi
bGVkTWVkaWFTb3VyY2VJbmxpbmVQYWludGluZyksIDApOworICAgICAgICB9CiAjZW5kaWYKKyAg
ICB9Cit9CiAKK3ZvaWQgR1BVUHJvY2Vzc1Byb3h5Ojp1cGRhdGVTY3JlZW5Qcm9wZXJ0aWVzSWZO
ZWVkZWQoKQorewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBzZXRTY3JlZW5Qcm9wZXJ0aWVzKFdl
YkNvcmU6OmNvbGxlY3RTY3JlZW5Qcm9wZXJ0aWVzKCkpOworICAgIGlmICghY2FuU2VuZE1lc3Nh
Z2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0U2NyZWVuUHJvcGVydGllcyhjb2xsZWN0
U2NyZWVuUHJvcGVydGllcygpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9HUFUvR1BVUHJvY2Vzc1Byb3h5LmgKaW5kZXggZTA2YmE1N2JlMjQ3ZWJiMzkwZjkwYjkz
Y2NmNzY2NDlmZjk1M2FlZi4uMzBkZGQ2YjdhMmY3Yjc3MTUzZDBhNzlhMTQxYjZiYTU4ZmM3MWJk
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR1BVL0dQVVByb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dQVS9HUFVQcm9jZXNzUHJveHkuaApA
QCAtOTMsNyArOTMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JlZW5Qcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlNjcmVlblByb3BlcnRpZXMmKTsKICNlbmRpZgogCi0gICAgdm9pZCB1cGRh
dGVQcmVmZXJlbmNlcygpOworICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoV2ViUHJvY2Vzc1By
b3h5Jik7CisgICAgdm9pZCB1cGRhdGVTY3JlZW5Qcm9wZXJ0aWVzSWZOZWVkZWQoKTsKIAogICAg
IHZvaWQgdGVybWluYXRlRm9yVGVzdGluZygpOwogICAgIHZvaWQgd2ViUHJvY2Vzc0Nvbm5lY3Rp
b25Db3VudEZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCh1aW50NjRfdCk+JiYpOwpA
QCAtMTUxLDYgKzE1MiwyNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNTZW50TWljcm9waG9u
ZVNhbmRib3hFeHRlbnNpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNTZW50TmV0d29ya1By
b2Nlc3NYUENFbmRwb2ludCB7IGZhbHNlIH07CiAjZW5kaWYKKworI2lmIEVOQUJMRShNRURJQV9T
T1VSQ0UpICYmIEVOQUJMRShWUDkpCisgICAgYm9vbCBtX2hhc0VuYWJsZWRXZWJNUGFyc2VyIHsg
ZmFsc2UgfTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKFdFQk1fRk9STUFUX1JFQURFUikKKyAgICBi
b29sIG1faGFzRW5hYmxlZFdlYk1Gb3JtYXRSZWFkZXIgeyBmYWxzZSB9OworI2VuZGlmCisKKyNp
ZiBFTkFCTEUoT1BVUykKKyAgICBib29sIG1faGFzRW5hYmxlZE9wdXMgeyBmYWxzZSB9OworI2Vu
ZGlmCisKKyNpZiBFTkFCTEUoVk9SQklTKQorICAgIGJvb2wgbV9oYXNFbmFibGVkVm9yYmlzIHsg
ZmFsc2UgfTsKKyNlbmRpZgorCisjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkgJiYgSEFWRShBVlNB
TVBMRUJVRkZFUlZJREVPT1VUUFVUKQorICAgIGJvb2wgbV9oYXNFbmFibGVkTWVkaWFTb3VyY2VJ
bmxpbmVQYWludGluZyB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIEhhc2hTZXQ8UEFMOjpTZXNz
aW9uSUQ+IG1fc2Vzc2lvbklEczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCA0OTIwZTZjNmFhYzdjNDVhMmQ5ZGY0M2RhNDhlMjMxODExOTYy
ZmFjLi5mNjgwMzhkZmJjOTI4NGMyNjMwODM1MTkxNGVkNTNiODY1YzdjMDdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00MzYsOCArNDM2LDEyIEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlcnZpY2VXb3JrZXJQcm9jZXNzQ3Jhc2hlZChXZWJQcm9j
ZXNzUHJveHkmIHByb3h5KQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIEdQVVByb2Nlc3NQcm94
eSYgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZUdQVVByb2Nlc3MoKQogewotICAgIGlmICghbV9ncHVQ
cm9jZXNzKQorICAgIGlmICghbV9ncHVQcm9jZXNzKSB7CiAgICAgICAgIG1fZ3B1UHJvY2VzcyA9
IEdQVVByb2Nlc3NQcm94eTo6Z2V0T3JDcmVhdGUoKTsKKyAgICAgICAgZm9yIChhdXRvJiBwcm9j
ZXNzIDogbV9wcm9jZXNzZXMpCisgICAgICAgICAgICBtX2dwdVByb2Nlc3MtPnVwZGF0ZVByZWZl
cmVuY2VzKHByb2Nlc3MpOworICAgICAgICBtX2dwdVByb2Nlc3MtPnVwZGF0ZVNjcmVlblByb3Bl
cnRpZXNJZk5lZWRlZCgpOworICAgIH0KICAgICByZXR1cm4gKm1fZ3B1UHJvY2VzczsKIH0KIApA
QCAtMTEwNCw4ICsxMTA4LDEwIEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpj
cmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAgIG1f
d2ViUHJvY2Vzc0NhY2hlLT51cGRhdGVDYXBhY2l0eSgqdGhpcyk7CiAKICNpZiBFTkFCTEUoR1BV
X1BST0NFU1MpCi0gICAgaWYgKGF1dG8qIGdwdVByb2Nlc3MgPSBHUFVQcm9jZXNzUHJveHk6OnNp
bmdsZXRvbklmQ3JlYXRlZCgpKQotICAgICAgICBncHVQcm9jZXNzLT51cGRhdGVQcmVmZXJlbmNl
cygpOworICAgIGlmIChhdXRvKiBncHVQcm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0
b25JZkNyZWF0ZWQoKSkgeworICAgICAgICBncHVQcm9jZXNzLT51cGRhdGVQcmVmZXJlbmNlcygq
cHJvY2Vzcyk7CisgICAgICAgIGdwdVByb2Nlc3MtPnVwZGF0ZVNjcmVlblByb3BlcnRpZXNJZk5l
ZWRlZCgpOworICAgIH0KICNlbmRpZgogCiAgICAgcmV0dXJuIHBhZ2U7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>