<?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>161441</bug_id>
          
          <creation_ts>2016-08-31 10:35:26 -0700</creation_ts>
          <short_desc>Should have a way for clients to specify which page loads should use content extensions</short_desc>
          <delta_ts>2016-09-06 09:57:13 -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>Page Loading</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>bweinstein</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1224991</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-08-31 10:35:26 -0700</bug_when>
    <thetext>Should have a way for clients to specify which page loads should use content extensions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224992</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-08-31 10:36:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/28098075&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1224996</commentid>
    <comment_count>2</comment_count>
      <attachid>287519</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-08-31 10:55:53 -0700</bug_when>
    <thetext>Created attachment 287519
[PATCH] Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225062</commentid>
    <comment_count>3</comment_count>
      <attachid>287519</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-31 13:28:24 -0700</bug_when>
    <thetext>Comment on attachment 287519
[PATCH] Fix

Do we really want this to be synchronous and in the InjectedBundle?  That means that each InjectedBundle would need to have enough information to immediately decide if we want to use content extensions for this URL, or it would need to send synchronous IPC.  We designed content extensions to not need either of these performance reducing things.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225068</commentid>
    <comment_count>4</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-08-31 13:36:06 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 287519 [details]
&gt; [PATCH] Fix
&gt; 
&gt; Do we really want this to be synchronous and in the InjectedBundle?  That
&gt; means that each InjectedBundle would need to have enough information to
&gt; immediately decide if we want to use content extensions for this URL, or it
&gt; would need to send synchronous IPC.  We designed content extensions to not
&gt; need either of these performance reducing things.

In this case, the client is pushing the information to each injected bundle when it is updated, so the injected bundle always has the correct state of the world w.r.t. sites that shouldn’t use content blockers.

Another option is to push all of the information about which pages to disable content blockers on to WebKit/WebCore, but I’m not sure if that’s necessarily cleaner than what we are doing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225096</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-31 14:46:25 -0700</bug_when>
    <thetext>I&apos;m concerned about pushing long lists of URLs to each new WebProcess every time we make a new tab.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225101</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-08-31 14:57:07 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I&apos;m concerned about pushing long lists of URLs to each new WebProcess every
&gt; time we make a new tab.

I agree with this concern in theory, but in practice:

- It wouldn&apos;t necessarily need a list of URLs, it could use high level domains
- I don&apos;t know how many domains users would store in practice.

Is there some code I can look at for how we would share one copy of this data across all web processes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225260</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-08-31 23:23:29 -0700</bug_when>
    <thetext>Perhaps this could be determined at decidePolicyForNavigationAction decision time in the UIProcess. It might be generally useful to be able to override functionality at that time, so adding a mechanism for it could be useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225261</commentid>
    <comment_count>8</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-08-31 23:27:12 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Perhaps this could be determined at decidePolicyForNavigationAction decision
&gt; time in the UIProcess. It might be generally useful to be able to override
&gt; functionality at that time, so adding a mechanism for it could be useful.

That is an interesting idea! WKPageSetUserContentExtensionsEnabled seems to exist, but doesn&apos;t appear to be implemented.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225264</commentid>
    <comment_count>9</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-08-31 23:31:34 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Perhaps this could be determined at decidePolicyForNavigationAction decision
&gt; &gt; time in the UIProcess. It might be generally useful to be able to override
&gt; &gt; functionality at that time, so adding a mechanism for it could be useful.
&gt; 
&gt; That is an interesting idea! WKPageSetUserContentExtensionsEnabled seems to
&gt; exist, but doesn&apos;t appear to be implemented.

But that might not be the way we would want to implement disabling content blockers for that load anyways, just something I noticed when clicking around.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225273</commentid>
    <comment_count>10</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2016-08-31 23:39:37 -0700</bug_when>
    <thetext>Another concern is whether or not the main resource load will have already started by the time the UI Process handles the decidePolicyForNavigationAction call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225395</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-09-01 10:56:25 -0700</bug_when>
    <thetext>decidePolicyForNavigationAction is initiated from didReceiveResponse in the NetworkProcess, which means it&apos;s too late; the main resource request has already been sent with content blockers applied</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225928</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-09-02 13:46:06 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; decidePolicyForNavigationAction is initiated from didReceiveResponse in the
&gt; NetworkProcess, which means it&apos;s too late; the main resource request has
&gt; already been sent with content blockers applied

We do the initial decidePolicyForNavigationAction before talking to the NetworkProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226158</commentid>
    <comment_count>13</comment_count>
      <attachid>287519</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-03 13:00:24 -0700</bug_when>
    <thetext>Comment on attachment 287519
[PATCH] Fix

Clearing flags on attachment: 287519

Committed r205407: &lt;http://trac.webkit.org/changeset/205407&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226159</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-09-03 13:00:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226553</commentid>
    <comment_count>15</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-09-05 20:20:38 -0700</bug_when>
    <thetext>I don&apos;t this this is the correct direction for this feature. Please roll this out so we can continue our discussion of ways to get this functionality without additional bundle SPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1226722</commentid>
    <comment_count>16</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2016-09-06 09:57:13 -0700</bug_when>
    <thetext>Reverted r205407 for reason:

Not the correct way to implement this functionality

Committed r205487: &lt;http://trac.webkit.org/changeset/205487&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287519</attachid>
            <date>2016-08-31 10:55:53 -0700</date>
            <delta_ts>2016-09-03 13:00:24 -0700</delta_ts>
            <desc>[PATCH] Fix</desc>
            <filename>shouldUseContentExtensions.patch</filename>
            <type>text/plain</type>
            <size>15973</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTExOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA4LTMxICBCcmlhbiBX
ZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KKworICAgICAgICBDb25zdWx0IHdpdGgg
dGhlIEZyYW1lTG9hZGVyQ2xpZW50IGFib3V0IHdoZXRoZXIgb3Igbm90IGNvbnRlbnQgZXh0ZW5z
aW9ucyBzaG91bGQgYmUgZW5hYmxlZCB3aGVuIGxvYWRpbmcgdGhpcyBVUkwuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0NDEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudExv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRlcjo6c3RhcnRMb2FkaW5n
TWFpblJlc291cmNlKTogSWYgY29udGVudCBleHRlbnNpb25zIGFyZW4ndCBhbHJlYWR5IGRpc2Fi
bGVkLCBjb25zdWx0IHdpdGggdGhlCisgICAgICAgIEZyYW1lTG9hZGVyQ2xpZW50IGFib3V0IHdo
ZXRoZXIgb3Igbm90IHdlIHNob3VsZCB1c2UgY29udGVudCBleHRlbnNpb25zIGZvciB0aGlzIFVS
TC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDogQWRkIHRoZSBGcmFtZUxv
YWRlckNsaWVudCBjYWxsIHRvIGRldGVybWluZSBpZiB3ZSBzaG91bGQgdXNlIGNvbnRlbnQgZXh0
ZW5zaW9ucyBmb3IgYSBnaXZlbgorICAgICAgICBVUkwuLi4KKyAgICAgICAgKiBsb2FkZXIvRW1w
dHlDbGllbnRzLmg6IC4uLiBBbmQgYWRkIGEgc3R1YiBpbXBsZW1lbnRhdGlvbi4KKwogMjAxNi0w
OC0yOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgW0ZldGNo
IEFQSV0gUmVzcG9uc2UgY2xvbmluZyBzaG91bGQgc3RydWN0dXJlQ2xvbmUgd2hlbiB0ZWVpbmcg
UmVzcG9uc2Ugc3RyZWFtCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2Fk
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRl
ci5jcHAJKHJldmlzaW9uIDIwNTExOSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVu
dExvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NzgsNiArMTQ3OCwxMSBAQCB2b2lkIERv
Y3VtZW50TG9hZGVyOjpzdGFydExvYWRpbmdNYWluUmVzCiAgICAgbV9jb250ZW50RmlsdGVyID0g
IW1fc3Vic3RpdHV0ZURhdGEuaXNWYWxpZCgpID8gQ29udGVudEZpbHRlcjo6Y3JlYXRlKCp0aGlz
KSA6IG51bGxwdHI7CiAjZW5kaWYKIAorI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisg
ICAgaWYgKG1fdXNlckNvbnRlbnRFeHRlbnNpb25zRW5hYmxlZCkKKyAgICAgICAgbV91c2VyQ29u
dGVudEV4dGVuc2lvbnNFbmFibGVkID0gZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkuc2hvdWxkVXNl
Q29udGVudEV4dGVuc2lvbnNGb3JVUkwobV9yZXF1ZXN0LnVybCgpKTsKKyNlbmRpZgorCiAgICAg
Ly8gRklYTUU6IElzIHRoZXJlIGFueSB3YXkgdGhlIGV4dHJhIGZpZWxkcyBjb3VsZCBoYXZlIG5v
dCBiZWVuIGFkZGVkIGJ5IG5vdz8KICAgICAvLyBJZiBub3QsIGl0IHdvdWxkIGJlIGdyZWF0IHRv
IHJlbW92ZSB0aGlzIGxpbmUgb2YgY29kZS4KICAgICAvLyBOb3RlIHRoYXQgY3VycmVudGx5LCBz
b21lIHJlcXVlc3RzIG1heSBoYXZlIGluY29ycmVjdCBleHRyYSBmaWVsZHMgZXZlbiBpZiB0aGlz
IGZ1bmN0aW9uIGhhcyBiZWVuIGNhbGxlZCwKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9F
bXB0eUNsaWVudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmgJKHJldmlzaW9uIDIwNTExOSkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0
eUNsaWVudHMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAzLDYgKzMwMywxMCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaXNwYXRjaERpZEZpbmlzaExvYWQoKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGRp
c3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoTGF5b3V0TWlsZXN0b25lcykgb3ZlcnJpZGUg
eyB9CiAKKyNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQorICAgIGJvb2wgc2hvdWxkVXNl
Q29udGVudEV4dGVuc2lvbnNGb3JVUkwoY29uc3QgVVJMJikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQorI2VuZGlmCisKICAgICBGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdm9pZCBkaXNw
YXRjaFNob3coKSBvdmVycmlkZSB7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDIwNTExOSkKKysrIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNiArMTczLDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlk
RmluaXNoRGF0YURldGVjdGlvbihOU0FycmF5ICpkZXRlY3Rpb25SZXN1bHRzKSA9IDA7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCisgICAgICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRVc2VDb250ZW50RXh0ZW5zaW9uc0ZvclVSTChjb25zdCBVUkwmKSA9IDA7CisjZW5k
aWYKKwogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRMYXlvdXQoKSB7IH0KICAgICAg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUoTGF5b3V0TWls
ZXN0b25lcykgeyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNTExOSkKKysrIFNvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2
LTA4LTMxICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KKworICAgICAg
ICBJbXBsZW1lbnQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZUNvbnRlbnRFeHRlbnNp
b25zRm9yVVJMIGFuZCBjb25zdWx0IHRoZSBJbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0NDEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ29udGVudEV4dGVuc2lvbnNGb3JVUkwgb25seSBjb25z
dWx0cyB0aGUgaW5qZWN0ZWQgYnVuZGxlLCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8KKyAgICAg
ICAgZGVmZXIgdGhlIGxvYWRpbmcgb2YgZXZlcnkgbWFpbiByZXNvdXJjZSB0byBjb25zdWx0IHdp
dGggdGhlIFVJIFByb2Nlc3MgYWJvdXQgd2hldGhlciBvciBub3Qgd2Ugc2hvdWxkIHVzZSBjb250
ZW50CisgICAgICAgIGV4dGVuc2lvbnMgZm9yIHRoZSBsb2FkLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaDogQnVt
cCB0aGUgbGF0ZXN0IHZlcnNpb24gdG8gV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjkgYW5kCisg
ICAgICAgIGFkZCBXS0J1bmRsZVBhZ2VTaG91bGRVc2VDb250ZW50RXh0ZW5zaW9uc0ZvclVSTENh
bGxiYWNrLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGVQ
YWdlTG9hZGVyQ2xpZW50OjpzaG91bGRVc2VDb250ZW50RXh0ZW5zaW9uc0ZvclVSTCk6IEFzayB0
aGUgY2xpZW50IGlmIHdlIHNob3VsZCB1c2UgY29udGVudAorICAgICAgICBleHRlbnNpb25zIGZv
ciB0aGlzIFVSTC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ29udGVudEV4dGVuc2lvbnNGb3JVUkwpOiBPbmx5IGNv
bnN1bHQgd2l0aCB0aGUgaW5qZWN0ZWQgYnVuZGxlIGFib3V0IHdoZXRoZXIKKyAgICAgICAgb3Ig
bm90IHdlIHNob3VsZCB1c2UgY29udGVudCBleHRlbnNpb25zIGZvciB0aGlzIFVSTC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50Lmg6CisK
IDIwMTYtMDgtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGRvZXMgbm90IHdvcmsgaW4g
V2F5bGFuZApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmNwcAkocmV2aXNpb24gMjA1MTE5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNTYsNSArMzU2LDE1IEBAIEFQSTo6U3RyaW5nKiBJbmplY3RlZEJ1bmRs
ZVBhZ2VMb2FkZXJDbGkKICAgICBXS1N0cmluZ1JlZiB1c2VyQWdlbnQgPSBtX2NsaWVudC51c2Vy
QWdlbnRGb3JVUkwodG9BUEkoZnJhbWUpLCB0b0FQSSh1cmwpLCBtX2NsaWVudC5iYXNlLmNsaWVu
dEluZm8pOwogICAgIHJldHVybiB0b0ltcGwodXNlckFnZW50KTsKIH0KLSAgICAKKworI2lmIEVO
QUJMRShDT05URU5UX0VYVEVOU0lPTlMpCitib29sIEluamVjdGVkQnVuZGxlUGFnZUxvYWRlckNs
aWVudDo6c2hvdWxkVXNlQ29udGVudEV4dGVuc2lvbnNGb3JVUkwoV2ViUGFnZSogcGFnZSwgQVBJ
OjpVUkwqIHVybCkgY29uc3QKK3sKKyAgICBpZiAoIW1fY2xpZW50LnNob3VsZFVzZUNvbnRlbnRF
eHRlbnNpb25zRm9yVVJMKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHJldHVybiBtX2Ns
aWVudC5zaG91bGRVc2VDb250ZW50RXh0ZW5zaW9uc0ZvclVSTCh0b0FQSShwYWdlKSwgdG9BUEko
dXJsKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2Fk
ZXJDbGllbnQuaAkocmV2aXNpb24gMjA1MTE5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgQ2xpZW50VHJhaXRzPFdLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dEJhc2U+IHsKLSAgICB0eXBlZGVmIHN0ZDo6dHVwbGU8V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
VjAsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYxLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRW
MiwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjMsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY0
LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNSwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjYs
IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY3LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWOD4g
VmVyc2lvbnM7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dFYwLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWMSwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50
VjIsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFYzLCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRW
NCwgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjUsIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY2
LCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWNywgV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50Vjgs
IFdLQnVuZGxlUGFnZUxvYWRlckNsaWVudFY5PiBWZXJzaW9uczsKIH07CiB9CiAKQEAgLTEwMiw2
ICsxMDIsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCB3aWxsRGVzdHJveUZyYW1lKFdlYlBhZ2Uq
LCBXZWJGcmFtZSopOwogICAgIEFQSTo6U3RyaW5nKiB1c2VyQWdlbnRGb3JVUkwoV2ViRnJhbWUq
LCBBUEk6OlVSTCopIGNvbnN0OworCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKyAg
ICBib29sIHNob3VsZFVzZUNvbnRlbnRFeHRlbnNpb25zRm9yVVJMKFdlYlBhZ2UqLCBBUEk6OlVS
TCopIGNvbnN0OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
TG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAkocmV2aXNpb24g
MjA1MTE5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIs
NyBAQCB0eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VGZWF0dXJlc1VzZWRJCiB0eXBlZGVmIHZv
aWQgKCpXS0J1bmRsZVBhZ2VXaWxsTG9hZFVSTFJlcXVlc3RDYWxsYmFjaykoV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1R5cGVSZWYgdXNlckRhdGEsIGNv
bnN0IHZvaWQgKmNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbExv
YWREYXRhUmVxdWVzdENhbGxiYWNrKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3QsIFdLRGF0YVJlZiBkYXRhLCBXS1N0cmluZ1JlZiBNSU1FVHlwZSwgV0tTdHJp
bmdSZWYgZW5jb2RpbmdOYW1lLCBXS1VSTFJlZiB1bnJlYWNoYWJsZVVSTCwgV0tUeXBlUmVmIHVz
ZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgV0tTdHJpbmdSZWYgKCpX
S0J1bmRsZVBhZ2VVc2VyQWdlbnRGb3JVUkxDYWxsYmFjaykoV0tCdW5kbGVGcmFtZVJlZiBmcmFt
ZSwgV0tVUkxSZWYgdXJsLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAo
KldLQnVuZGxlUGFnZVNob3VsZFVzZUNvbnRlbnRFeHRlbnNpb25zRm9yVVJMQ2FsbGJhY2spKFdL
QnVuZGxlUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiB1cmwsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8p
OwogCiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRCYXNlIHsKICAgICBp
bnQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB2ZXJzaW9uOwpAQCAtNDY0LDQgKzQ2NSw2NiBAQCB0eXBlZGVmIHN0cnVj
dCBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWCiAgICAgV0tCdW5kbGVQYWdlVXNlckFnZW50Rm9y
VVJMQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlckFnZW50
Rm9yVVJMOwogfSBXS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnRWODsKIAordHlwZWRlZiBzdHJ1Y3Qg
V0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50VjkgeworICAgIFdLQnVuZGxlUGFnZUxvYWRlckNsaWVu
dEJhc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2U7Cisg
ICAgCisgICAgLy8gVmVyc2lvbiAwLgorICAgIFdLQnVuZGxlUGFnZURpZFN0YXJ0UHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgIGRpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVDYWxsYmFjayAgZGlkUmVjZWl2ZVNlcnZlclJl
ZGlyZWN0Rm9yUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRmFp
bFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgZGlk
RmFpbFByb3Zpc2lvbmFsTG9hZFdpdGhFcnJvckZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURp
ZENvbW1pdExvYWRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGRpZENvbW1pdExvYWRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRGaW5pc2hEb2N1bWVu
dExvYWRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRGaW5pc2hMb2FkRm9yRnJhbWVD
YWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWRGaW5pc2hMb2FkRm9yRnJh
bWU7CisgICAgV0tCdW5kbGVQYWdlRGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgZGlkRmFpbExvYWRXaXRoRXJyb3JGb3JGcmFtZTsKKyAg
ICBXS0J1bmRsZVBhZ2VEaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yRnJhbWU7CisgICAg
V0tCdW5kbGVQYWdlRGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWVDYWxsYmFjayAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGlkUmVjZWl2ZVRpdGxlRm9yRnJhbWU7CisgICAgV0tCdW5kbGVQYWdl
RGlkRmlyc3RMYXlvdXRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZGlkRmlyc3RMYXlvdXRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICBkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWRSZW1vdmVG
cmFtZUZyb21IaWVyYXJjaHlDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICBkaWRSZW1v
dmVGcmFtZUZyb21IaWVyYXJjaHk7CisgICAgV0tCdW5kbGVQYWdlRGlkRGlzcGxheUluc2VjdXJl
Q29udGVudEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgZGlkRGlzcGxheUluc2Vj
dXJlQ29udGVudEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZFJ1bkluc2VjdXJlQ29udGVu
dEZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgIGRpZFJ1bkluc2VjdXJlQ29u
dGVudEZvckZyYW1lOworICAgIFdLQnVuZGxlUGFnZURpZENsZWFyV2luZG93T2JqZWN0Rm9yRnJh
bWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgIGRpZENsZWFyV2luZG93T2JqZWN0Rm9y
RnJhbWU7CisgICAgV0tCdW5kbGVQYWdlRGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFtZUNh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgZGlkQ2FuY2VsQ2xpZW50UmVkaXJlY3RGb3JGcmFt
ZTsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICB3aWxsUGVyZm9ybUNsaWVudFJlZGlyZWN0Rm9yRnJhbWU7
CisgICAgV0tCdW5kbGVQYWdlRGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWU7CisgICAg
CisgICAgLy8gVmVyc2lvbiAxLgorICAgIFdLQnVuZGxlUGFnZURpZExheW91dEZvckZyYW1lQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZExheW91dEZvckZyYW1l
OworICAgIHZvaWQgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRpZE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dF91
bmF2YWlsYWJsZTsKKyAgICBXS0J1bmRsZVBhZ2VEaWREZXRlY3RYU1NGb3JGcmFtZUNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWREZXRlY3RYU1NGb3JGcmFtZTsKKyAg
ICBXS0J1bmRsZVBhZ2VTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICBzaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbTsKKyAgICBXS0J1
bmRsZVBhZ2VHbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lQ2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICBnbG9iYWxPYmplY3RJc0F2YWlsYWJsZUZvckZyYW1lOworICAgIFdLQnVuZGxl
UGFnZVdpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJvbUdsb2JhbE9iamVjdENhbGxi
YWNrICAgIHdpbGxEaXNjb25uZWN0RE9NV2luZG93RXh0ZW5zaW9uRnJvbUdsb2JhbE9iamVjdDsK
KyAgICBXS0J1bmRsZVBhZ2VEaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2JhbE9i
amVjdENhbGxiYWNrICAgICAgICBkaWRSZWNvbm5lY3RET01XaW5kb3dFeHRlbnNpb25Ub0dsb2Jh
bE9iamVjdDsKKyAgICBXS0J1bmRsZVBhZ2VXaWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRPTVdp
bmRvd0V4dGVuc2lvbkNhbGxiYWNrICAgICAgICB3aWxsRGVzdHJveUdsb2JhbE9iamVjdEZvckRP
TVdpbmRvd0V4dGVuc2lvbjsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDIKKyAgICBXS0J1bmRsZVBh
Z2VEaWRGaW5pc2hQcm9ncmVzc0NhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkaWRGaW5pc2hQcm9ncmVzczsKKyAgICBXS0J1bmRsZVBhZ2VTaG91bGRGb3JjZVVuaXZl
cnNhbEFjY2Vzc0Zyb21Mb2NhbFVSTENhbGxiYWNrICAgICAgICAgICAgICBzaG91bGRGb3JjZVVu
aXZlcnNhbEFjY2Vzc0Zyb21Mb2NhbFVSTDsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDMKKyAgICB2
b2lkICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBkaWRSZWNlaXZlSW50ZW50Rm9yRnJhbWVfdW5hdmFpbGFibGU7CisgICAg
dm9pZCAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWVfdW5hdmFpbGFibGU7
CisgICAgCisgICAgLy8gVmVyc2lvbiA0CisgICAgV0tCdW5kbGVQYWdlRGlkTGF5b3V0Q2FsbGJh
Y2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkTGF5b3V0Owor
ICAgIAorICAgIC8vIFZlcnNpb24gNQorICAgIFdLQnVuZGxlUGFnZUZlYXR1cmVzVXNlZEluUGFn
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZlYXR1cmVzVXNlZElu
UGFnZTsKKyAgICAKKyAgICAvLyBWZXJzaW9uIDYKKyAgICBXS0J1bmRsZVBhZ2VXaWxsTG9hZFVS
TFJlcXVlc3RDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsTG9h
ZFVSTFJlcXVlc3Q7CisgICAgV0tCdW5kbGVQYWdlV2lsbExvYWREYXRhUmVxdWVzdENhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbExvYWREYXRhUmVxdWVzdDsKKyAg
ICAKKyAgICAvLyBWZXJzaW9uIDcKKyAgICB2b2lkICogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWxsRGVzdHJveUZyYW1l
X3VuYXZhaWxhYmxlOworICAgIAorICAgIC8vIFZlcnNpb24gOAorICAgIFdLQnVuZGxlUGFnZVVz
ZXJBZ2VudEZvclVSTENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVzZXJBZ2VudEZvclVSTDsKKworICAgIC8vIFZlcnNpb24gOQorICAgIFdLQnVuZGxlUGFnZVNo
b3VsZFVzZUNvbnRlbnRFeHRlbnNpb25zRm9yVVJMQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
IHNob3VsZFVzZUNvbnRlbnRFeHRlbnNpb25zRm9yVVJMOworfSBXS0J1bmRsZVBhZ2VMb2FkZXJD
bGllbnRWOTsKKworCiAjZW5kaWYgLy8gV0tCdW5kbGVQYWdlTG9hZGVyQ2xpZW50X2gKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCShyZXZpc2lvbiAyMDUxMTkpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjM1LDYgKzYzNSwxOCBAQCB2b2lkIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZExhCiAgICAgfQogfQogCisjaWYgRU5BQkxFKENPTlRF
TlRfRVhURU5TSU9OUykKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFVzZUNvbnRl
bnRFeHRlbnNpb25zRm9yVVJMKGNvbnN0IFVSTCYgdXJsKQoreworICAgIFdlYlBhZ2UqIHdlYlBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIC8vIEp1c3Qgc2VuZCB0aGUgcmVxdWVzdCB0byB0aGUgaW5qZWN0ZWQgYnVu
ZGxlIGNsaWVudCBiZWNhdXNlIHdlIGRvbid0IGhhdmUgdGltZSB0byB3YWl0IGZvciBhIHJlc3Bv
bnNlIGZyb20gdGhlIFVJIFByb2Nlc3MuCisgICAgcmV0dXJuIHdlYlBhZ2UtPmluamVjdGVkQnVu
ZGxlTG9hZGVyQ2xpZW50KCkuc2hvdWxkVXNlQ29udGVudEV4dGVuc2lvbnNGb3JVUkwod2ViUGFn
ZSwgQVBJOjpVUkw6OmNyZWF0ZSh1cmwuc3RyaW5nKCkpLnB0cigpKTsKK30KKyNlbmRpZgorCiBG
cmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2Ug
PSBtX2ZyYW1lLT5wYWdlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShy
ZXZpc2lvbiAyMDUxMTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUs
MTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUo
V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcykgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNwYXRjaERp
ZExheW91dCgpIG92ZXJyaWRlOwogCisjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKKyAg
ICBib29sIHNob3VsZFVzZUNvbnRlbnRFeHRlbnNpb25zRm9yVVJMKGNvbnN0IFdlYkNvcmU6OlVS
TCYpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpc3BhdGNoU2hvdygpIG92ZXJyaWRlOwogICAgIApJbmRleDogU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwko
cmV2aXNpb24gMjA1MjU1KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDgtMzEgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3
ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBhIHN0dWIgdmVyc2lvbiBv
ZiBGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkVXNlQ29udGVudEV4dGVuc2lvbnNGb3JVUkwuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKwogMjAxNi0wOC0zMSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgV0syIEdhbWVwYWQgcHJvdmlkZXIgb24g
aU9TLgpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiAyMDUxMTkpCisrKyBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTgsNiArMTE4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNwYXRjaERpZEZp
bmlzaExvYWQoKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoRGlkUmVhY2hMYXlvdXRNaWxl
c3RvbmUoV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcykgb3ZlcnJpZGU7CiAKKyNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQorICAgIGJvb2wgc2hvdWxkVXNlQ29udGVudEV4dGVuc2lvbnNG
b3JVUkwoY29uc3QgV2ViQ29yZTo6VVJMJikgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorI2Vu
ZGlmCisKICAgICBXZWJDb3JlOjpGcmFtZSogZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IFdlYkNv
cmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoU2hvdygp
IG92ZXJyaWRlOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>